diff --git a/.github/workflows/build-container.yaml b/.github/workflows/build-container.yaml index 5287642a55..55045d86a0 100644 --- a/.github/workflows/build-container.yaml +++ b/.github/workflows/build-container.yaml @@ -5,8 +5,10 @@ on: branches: - master - develop + - kopff - release23 - release33 + - release40 jobs: build: diff --git a/README.md b/README.md index 730b6ee8f4..a0f4b969f6 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ digital signage network, or single screen, open source and free to use. [![Licence](https://img.shields.io/github/license/xibosignage/xibo-cms)]() -Copyright (C) 2006-2023 Xibo Signage Ltd and Contributors. +Copyright (C) 2006-2024 Xibo Signage Ltd and Contributors. Xibo is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. @@ -69,10 +69,12 @@ git clone git@github.com:/xibo-cms.git xibo-cms ### Branches -We maintain the following branches. To contribute to Xibo please also use the `develop` branch as your base. +We maintain the following branches. To contribute to Xibo please use the `develop` branch as your base. -- develop: Work in progress toward 4.0.x +- kopff: Work in progress toward 4.2.x +- develop: Bug fixes for 4.1.x - master: Currently 4.0 +- release40: Bug fixes for 4.0 - release33: Bug fixes for 3.3 - release23: Bug fixes for 2.3 - release18: Archive of 1.8 diff --git a/bin/locale.php b/bin/locale.php index 44fae9e378..486725ba49 100644 --- a/bin/locale.php +++ b/bin/locale.php @@ -95,10 +95,10 @@ function __($original) $sanitizerService = new \Xibo\Helper\SanitizerService(); // Create a new base dependency service -$baseDepenencyService = new \Xibo\Service\BaseDependenciesService(); -$baseDepenencyService->setConfig(new MockConfigService()); -$baseDepenencyService->setStore(new MockPdoStorageServiceForModuleFactory()); -$baseDepenencyService->setSanitizer($sanitizerService); +$baseDependencyService = new \Xibo\Service\BaseDependenciesService(); +$baseDependencyService->setConfig(new MockConfigService()); +$baseDependencyService->setStore(new MockPdoStorageServiceForModuleFactory()); +$baseDependencyService->setSanitizer($sanitizerService); $moduleFactory = new \Xibo\Factory\ModuleFactory( '', @@ -106,7 +106,7 @@ function __($original) $view, new MockConfigService(), ); -$moduleFactory->useBaseDependenciesService($baseDepenencyService); +$moduleFactory->useBaseDependenciesService($baseDependencyService); // Get all module $modules = $moduleFactory->getAll(); @@ -114,9 +114,9 @@ function __($original) $pool, $view, ); -$moduleTemplateFactory->useBaseDependenciesService($baseDepenencyService); +$moduleTemplateFactory->useBaseDependenciesService($baseDependencyService); // Get all module templates -$moduleTemplates = $moduleTemplateFactory->getAll(); +$moduleTemplates = $moduleTemplateFactory->getAll(null, false); // -------------- // Create translation file diff --git a/cypress/e2e/Layout/Editor/layout_editor_clock.cy.js b/cypress/e2e/Layout/Editor/layout_editor_clock.cy.js index bb4e229e4e..1930cca09a 100644 --- a/cypress/e2e/Layout/Editor/layout_editor_clock.cy.js +++ b/cypress/e2e/Layout/Editor/layout_editor_clock.cy.js @@ -28,6 +28,11 @@ describe('Layout Designer', function() { it('should create a new layout and be redirected to the layout designer, add/delete analogue clock', function() { cy.intercept('/playlist/widget/*').as('saveWidget'); + cy.intercept({ + method: 'DELETE', + url: '/region/*', + }).as('deleteWidget'); + cy.visit('/layout/view'); cy.get('button[href="/layout"]').click(); @@ -76,6 +81,10 @@ describe('Layout Designer', function() { // Delete cy.get('#layout-viewer .designer-region .widget-preview[data-type="widget_clock-analogue"]').parents('.designer-region').rightclick(); cy.get('[data-title="Delete"]').click(); + cy.contains('Yes').click(); + + // Wait until the widget has been deleted + cy.wait('@deleteWidget'); cy.get('#layout-viewer .designer-region .widget-preview[data-type="widget_clock-analogue"]').should('not.exist'); }); }); diff --git a/cypress/e2e/Layout/Editor/layout_editor_dataset.cy.js b/cypress/e2e/Layout/Editor/layout_editor_dataset.cy.js index 14b55eee26..426af4175c 100644 --- a/cypress/e2e/Layout/Editor/layout_editor_dataset.cy.js +++ b/cypress/e2e/Layout/Editor/layout_editor_dataset.cy.js @@ -29,6 +29,11 @@ describe('Layout Designer', function() { // Create and alias for load dataset cy.intercept('/dataset?start=*').as('loadDatasets'); + cy.intercept({ + method: 'DELETE', + url: '/region/*', + }).as('deleteWidget'); + cy.visit('/layout/view'); cy.get('button[href="/layout"]').click(); @@ -50,25 +55,29 @@ describe('Layout Designer', function() { cy.wait('@loadDatasets'); // Type the dataset name - cy.get('.select2-container--open input[type="search"]').type('test'); + cy.get('.select2-container--open input[type="search"]').type('8 items'); // Wait for datasets to load cy.wait('@loadDatasets'); - cy.get('.select2-container--open').contains('test'); - cy.get('.select2-container--open .select2-results > ul > li:first').contains('test').click(); - + cy.get('.select2-container--open').contains('8 items'); + cy.get('.select2-container--open .select2-results > ul > li:first').contains('8 items').click(); + cy.get('[name="lowerLimit"]').clear().type('1'); cy.get('[name="upperLimit"]').clear().type('10'); - cy.get('.order-clause-row > :nth-child(2) > .form-control').select('Text', {force: true}); + cy.get('.order-clause-row > :nth-child(2) > .form-control').select('Col1', {force: true}); cy.get('.order-clause-row > .btn').click(); - cy.get(':nth-child(2) > :nth-child(2) > .form-control').select('Number', {force: true}); + cy.get(':nth-child(2) > :nth-child(2) > .form-control').select('Col2', {force: true}); // ------------- // -------------Appearance Tab cy.get('.nav-link[href="#appearanceTab"]').click(); + // Check if dataset exists exactly two columns + cy.get('#columnsOut') + .find('li') + .should('have.length', 2) + // Select columns available/ move them to columns selected - cy.get('#columnsOut>li:first').should('have.attr', 'id').and('equal', '1'); cy.get('#columnsOut>li:first') .trigger('mousedown', { which: 1, @@ -80,7 +89,6 @@ describe('Layout Designer', function() { }); cy.get('#columnsIn').click(); - cy.get('#columnsOut>li:first').should('have.attr', 'id').and('equal', '2'); cy.get('#columnsOut>li:first') .trigger('mousedown', { which: 1, @@ -99,6 +107,10 @@ describe('Layout Designer', function() { cy.get('#layout-viewer .designer-region .widget-preview[data-type="widget_dataset"]').parents('.designer-region').rightclick(); cy.get('[data-title="Delete"]').click(); + cy.contains('Yes').click(); + + // Wait until the widget has been deleted + cy.wait('@deleteWidget'); cy.get('#layout-viewer .designer-region .widget-preview[data-type="widget_dataset"]').should('not.exist'); }); }); diff --git a/cypress/e2e/Layout/Editor/layout_editor_rss_ticker.cy.js b/cypress/e2e/Layout/Editor/layout_editor_rss_ticker.cy.js index 79a230eb72..a6d452b75a 100644 --- a/cypress/e2e/Layout/Editor/layout_editor_rss_ticker.cy.js +++ b/cypress/e2e/Layout/Editor/layout_editor_rss_ticker.cy.js @@ -26,6 +26,11 @@ describe('Layout Designer', function() { }); it('should create a new layout and be redirected to the layout designer, add/delete RSS ticker widget', function() { + cy.intercept({ + method: 'DELETE', + url: '/region/*', + }).as('deleteWidget'); + cy.visit('/layout/view'); cy.get('button[href="/layout"]').click(); @@ -64,12 +69,16 @@ describe('Layout Designer', function() { cy.get('[name="itemImageFit"]').select('Fill', {force: true}); cy.get('[name="effect"]').select('Fade', {force: true}); cy.get('[name="speed"]').clear().type('500'); - cy.get('.cke_editable_inline').focus().clear(); - cy.get('.cke_editable_inline').type('No data to show').trigger('change'); + // Update CKEditor value + cy.updateCKEditor('noDataMessage', 'No data to show'); cy.get('[name="copyright"]').clear().type('Xibo').trigger('change'); cy.get('#layout-viewer .designer-region .widget-preview[data-type="widget_rss-ticker"]').parents('.designer-region').rightclick(); cy.get('[data-title="Delete"]').click(); + cy.contains('Yes').click(); + + // Wait until the widget has been deleted + cy.wait('@deleteWidget'); cy.get('#layout-viewer .designer-region .widget-preview[data-type="widget_rss-ticker"]').should('not.exist'); }); }); diff --git a/cypress/support/commands.js b/cypress/support/commands.js index b88c55c73e..3a4108b415 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -864,3 +864,19 @@ Cypress.Commands.add('openToolbarMenuForPlaylist', function(menuIdx) { } }); }); + + +/** + * Update data on CKEditor instance + * @param {string} ckeditorId + * @param {string} value + */ +Cypress.Commands.add('updateCKEditor', function(ckeditorId, value) { + cy.get('textarea[name="' + ckeditorId + '"]').invoke('prop', 'id').then((id) => { + cy.window().then((win) => { + win.formHelpers.getCKEditorInstance( + id, + ).setData(value); + }); + }); +}); diff --git a/db/migrations/20231128144300_real_time_data_migration.php b/db/migrations/20231128144300_real_time_data_migration.php new file mode 100644 index 0000000000..3bfb807847 --- /dev/null +++ b/db/migrations/20231128144300_real_time_data_migration.php @@ -0,0 +1,55 @@ +. + */ + +use Phinx\Migration\AbstractMigration; + +/** + * Migrations for new real-time data + * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace + */ +class RealTimeDataMigration extends AbstractMigration +{ + public function change(): void + { + $this->table('dataset') + ->addColumn('isRealTime', 'integer', [ + 'limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY, + 'default' => 0, + 'null' => false, + ]) + ->save(); + + $this->table('schedule') + ->addColumn('dataSetId', 'integer', [ + 'limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_REGULAR, + 'default' => null, + 'null' => true + ]) + ->addColumn('dataSetParams', 'text', [ + 'limit' => \Phinx\Db\Adapter\MysqlAdapter::TEXT_REGULAR, + 'default' => null, + 'null' => true + ]) + ->addForeignKey('dataSetId', 'dataset', 'dataSetId') + ->save(); + } +} diff --git a/db/migrations/20231213120700_schedule_criteria_migration.php b/db/migrations/20231213120700_schedule_criteria_migration.php new file mode 100644 index 0000000000..21cd2f0bfb --- /dev/null +++ b/db/migrations/20231213120700_schedule_criteria_migration.php @@ -0,0 +1,57 @@ +. + */ + +use Phinx\Migration\AbstractMigration; + +/** + * Migrations for schedule criteria + * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace + */ +class ScheduleCriteriaMigration extends AbstractMigration +{ + public function change(): void + { + $this->table('schedule_criteria') + ->addColumn('eventId', 'integer', [ + 'limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_REGULAR, + 'null' => false, + ]) + ->addColumn('type', 'string', [ + 'limit' => 20, + 'null' => false, + ]) + ->addColumn('metric', 'string', [ + 'limit' => 20, + 'null' => false, + ]) + ->addColumn('condition', 'string', [ + 'limit' => 20, + 'null' => false, + ]) + ->addColumn('value', 'string', [ + 'limit' => 255, + 'null' => false, + ]) + ->addForeignKey('eventId', 'schedule', 'eventId') + ->save(); + } +} diff --git a/db/migrations/20231220155800_user_module_templates_migration.php b/db/migrations/20231220155800_user_module_templates_migration.php new file mode 100644 index 0000000000..9cc00b9b8a --- /dev/null +++ b/db/migrations/20231220155800_user_module_templates_migration.php @@ -0,0 +1,61 @@ +. + */ + +use Phinx\Migration\AbstractMigration; + +/** + * Migrations for adding user supplied module templates + * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace + */ +class UserModuleTemplatesMigration extends AbstractMigration +{ + public function change(): void + { + $this->table('module_templates') + ->addColumn('templateId', 'string', [ + 'limit' => 50, + 'null' => false, + ]) + ->addColumn('dataType', 'string', [ + 'limit' => 50, + 'null' => false, + ]) + ->addColumn('xml', 'text', [ + 'limit' => \Phinx\Db\Adapter\MysqlAdapter::TEXT_MEDIUM, + 'null' => false, + ]) + ->addColumn('enabled', 'integer', [ + 'limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY, + 'null' => false, + 'default' => 1, + ]) + ->addColumn('ownerId', 'integer') + ->addForeignKey('ownerId', 'user', 'userId') + ->save(); + + $this->table('permissionentity') + ->insert([ + ['entity' => 'Xibo\Entity\ModuleTemplate'] + ]) + ->save(); + } +} diff --git a/db/migrations/20240227100600_menuboard_field_lengths_migration.php b/db/migrations/20240227100600_menuboard_field_lengths_migration.php new file mode 100644 index 0000000000..1ff74f4190 --- /dev/null +++ b/db/migrations/20240227100600_menuboard_field_lengths_migration.php @@ -0,0 +1,46 @@ +. + */ + +use Phinx\Migration\AbstractMigration; + +/** + * Migration for adjusting the field length of the menu board product description/allergyInfo + * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace + */ +class MenuboardFieldLengthsMigration extends AbstractMigration +{ + public function change(): void + { + $this->table('menu_product') + ->changeColumn('description', 'text', [ + 'limit' => \Phinx\Db\Adapter\MysqlAdapter::TEXT_REGULAR, + 'default' => null, + 'null' => true, + ]) + ->changeColumn('allergyInfo', 'text', [ + 'limit' => \Phinx\Db\Adapter\MysqlAdapter::TEXT_REGULAR, + 'default' => null, + 'null' => true, + ]) + ->save(); + } +} diff --git a/db/migrations/20240227102400_missing_indexes_migration.php b/db/migrations/20240227102400_missing_indexes_migration.php new file mode 100644 index 0000000000..0ada9fe6c0 --- /dev/null +++ b/db/migrations/20240227102400_missing_indexes_migration.php @@ -0,0 +1,51 @@ +. + */ + +use Phinx\Migration\AbstractMigration; + +/** + * Migration for adding missing indexes + * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace + */ +class MissingIndexesMigration extends AbstractMigration +{ + public function change(): void + { + $region = $this->table('region'); + if (!$region->hasForeignKey('layoutId')) { + // Take care of orphaned regions + $this->execute('DELETE FROM `region` WHERE `layoutId` NOT IN (SELECT `layoutId` FROM `layout`)'); + + // Add the FK + $region + ->addForeignKey('layoutId', 'layout', 'layoutId') + ->save(); + } + + $playlist = $this->table('playlist'); + if (!$playlist->hasIndex('regionId')) { + $playlist + ->addIndex('regionId') + ->save(); + } + } +} diff --git a/db/migrations/20240408121908_display_alerts_migration.php b/db/migrations/20240408121908_display_alerts_migration.php new file mode 100644 index 0000000000..29071a4208 --- /dev/null +++ b/db/migrations/20240408121908_display_alerts_migration.php @@ -0,0 +1,50 @@ +. + */ + +use Phinx\Migration\AbstractMigration; + +/** + * Migration for adding more columns to displayevent table. + * Add a new column on Command table for createAlertOn. + * Add a new column on lkcommanddisplayprofile for createAlertOn. + * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace + */ +class DisplayAlertsMigration extends AbstractMigration +{ + public function change(): void + { + $this->table('displayevent') + ->changeColumn('start', 'integer', ['null' => true]) + ->addColumn('eventTypeId', 'integer', ['null' => false, 'default' => 1]) + ->addColumn('refId', 'integer', ['null' => true, 'default' => null]) + ->addColumn('detail', 'text', ['null' => true, 'default' => null]) + ->save(); + + $this->table('command') + ->addColumn('createAlertOn', 'string', ['null' => false, 'default' => 'never']) + ->save(); + + $this->table('lkcommanddisplayprofile') + ->addColumn('createAlertOn', 'string', ['null' => true, 'default' => null]) + ->save(); + } +} diff --git a/db/migrations/20240422111609_notification_types_migration.php b/db/migrations/20240422111609_notification_types_migration.php new file mode 100644 index 0000000000..e2eac45eaf --- /dev/null +++ b/db/migrations/20240422111609_notification_types_migration.php @@ -0,0 +1,72 @@ +. + */ + +use Phinx\Migration\AbstractMigration; + +/** + * Add new notification type column + * Add new notification email options for user groups + * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace + */ +class NotificationTypesMigration extends AbstractMigration +{ + public function change(): void + { + $this->table('notification') + ->removeColumn('isEmail') + ->addColumn('type', 'string', ['null' => false, 'default' => 'unknown', 'limit' => 50]) + ->save(); + + $this->table('group') + ->addColumn( + 'isDataSetNotification', + 'integer', + ['limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY, 'default' => 0] + ) + ->addColumn( + 'isLayoutNotification', + 'integer', + ['limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY, 'default' => 0] + ) + ->addColumn( + 'isLibraryNotification', + 'integer', + ['limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY, 'default' => 0] + ) + ->addColumn( + 'isReportNotification', + 'integer', + ['limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY, 'default' => 0] + ) + ->addColumn( + 'isScheduleNotification', + 'integer', + ['limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY, 'default' => 0] + ) + ->addColumn( + 'isCustomNotification', + 'integer', + ['limit' => \Phinx\Db\Adapter\MysqlAdapter::INT_TINY, 'default' => 0] + ) + ->save(); + } +} diff --git a/db/migrations/20240430112500_canvas_duration_fix_migration.php b/db/migrations/20240430112500_canvas_duration_fix_migration.php new file mode 100644 index 0000000000..a69cd0cf04 --- /dev/null +++ b/db/migrations/20240430112500_canvas_duration_fix_migration.php @@ -0,0 +1,37 @@ +. + */ + +use Phinx\Migration\AbstractMigration; + +/** + * Migration to fix the Canvas duration which mistakenly got added as 60s instead of 1s + * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace + */ +class CanvasDurationFixMigration extends AbstractMigration +{ + public function change(): void + { + $this->execute('UPDATE `module` SET `defaultDuration` = 1, `enabled` = 1 WHERE `moduleId` = :moduleId', [ + 'moduleId' => 'core-canvas', + ]); + } +} diff --git a/db/migrations/20240501111721_session_history_migration.php b/db/migrations/20240501111721_session_history_migration.php new file mode 100644 index 0000000000..5a26bc9176 --- /dev/null +++ b/db/migrations/20240501111721_session_history_migration.php @@ -0,0 +1,49 @@ +. + */ + +use Phinx\Migration\AbstractMigration; + +/** + * Migration to Add a new table for session_history + * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace + */ +class SessionHistoryMigration extends AbstractMigration +{ + public function change(): void + { + $this->table('session_history', ['id' => 'sessionId']) + ->addColumn('ipAddress', 'string', ['limit' => 50, 'null' => true, 'default' => null]) + ->addColumn('userAgent', 'string', ['limit' => 255, 'null' => true, 'default' => null]) + ->addColumn('startTime', 'datetime', ['null' => true, 'default' => null]) + ->addColumn('userId', 'integer', ['null' => true, 'default' => null]) + ->addIndex('userId') + ->create(); + + $this->table('auditlog') + ->addColumn('sessionHistoryId', 'integer', ['null' => true, 'default' => null]) + ->save(); + + $this->table('log') + ->addColumn('sessionHistoryId', 'integer', ['null' => true, 'default' => null]) + ->save(); + } +} diff --git a/db/migrations/20240605101251_auditing_api_requests_migration.php b/db/migrations/20240605101251_auditing_api_requests_migration.php new file mode 100644 index 0000000000..38205a23af --- /dev/null +++ b/db/migrations/20240605101251_auditing_api_requests_migration.php @@ -0,0 +1,52 @@ +. + */ + +use Phinx\Migration\AbstractMigration; + +/** + * Migration to Add a new table for session_history + * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace + */ +class AuditingApiRequestsMigration extends AbstractMigration +{ + public function change(): void + { + $this->table('application_requests_history', ['id' => 'requestId']) + ->addColumn('userId', 'integer', ['null' => true, 'default' => null]) + ->addColumn('applicationId', 'string', ['limit' => 255, 'null' => true, 'default' => null]) + ->addColumn('url', 'string', ['limit' => 255, 'null' => true, 'default' => null]) + ->addColumn('method', 'string', ['limit' => 20, 'null' => true, 'default' => null]) + ->addColumn('startTime', 'datetime', ['null' => true, 'default' => null]) + ->addColumn('endTime', 'datetime', ['null' => true, 'default' => null]) + ->addColumn('duration', 'integer', ['null' => true, 'default' => null]) + ->addIndex('userId') + ->create(); + + $this->table('auditlog') + ->addColumn('requestId', 'integer', ['null' => true, 'default' => null]) + ->save(); + + $this->table('log') + ->addColumn('requestId', 'integer', ['null' => true, 'default' => null]) + ->save(); + } +} diff --git a/db/migrations/20240612112949_add_switch_delay_and_video_pause_delay_to_sync_group.php b/db/migrations/20240612112949_add_switch_delay_and_video_pause_delay_to_sync_group.php new file mode 100755 index 0000000000..11159187da --- /dev/null +++ b/db/migrations/20240612112949_add_switch_delay_and_video_pause_delay_to_sync_group.php @@ -0,0 +1,38 @@ +. + */ + +use Phinx\Migration\AbstractMigration; + +/** + * Added syncSwitchDelay and syncVideoPauseDelay columns to Sync Groups + * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace + */ +class AddSwitchDelayAndVideoPauseDelayToSyncGroup extends AbstractMigration +{ + public function change(): void + { + $this->table('syncgroup') + ->addColumn('syncSwitchDelay', 'integer', ['null' => false, 'default' => 1]) + ->addColumn('syncVideoPauseDelay', 'integer', ['null' => true, 'default' => null]) + ->update(); + } +} diff --git a/db/migrations/20240614031633_update_switch_delay_and_video_pause_delay_migration.php b/db/migrations/20240614031633_update_switch_delay_and_video_pause_delay_migration.php new file mode 100755 index 0000000000..355af17ef8 --- /dev/null +++ b/db/migrations/20240614031633_update_switch_delay_and_video_pause_delay_migration.php @@ -0,0 +1,38 @@ +. + */ + +use Phinx\Migration\AbstractMigration; + +/** + * Updated syncSwitchDelay and syncVideoPauseDelay columns to accept null values + * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace + */ +class UpdateSwitchDelayAndVideoPauseDelayMigration extends AbstractMigration +{ + public function change(): void + { + $this->table('syncgroup') + ->changeColumn('syncSwitchDelay', 'integer', ['null' => true, 'default' => null]) + ->changeColumn('syncVideoPauseDelay', 'integer', ['null' => true, 'default' => null]) + ->update(); + } +} diff --git a/db/migrations/20240615155000_widget_fallback_data_migration.php b/db/migrations/20240615155000_widget_fallback_data_migration.php new file mode 100644 index 0000000000..0a3e66ceb9 --- /dev/null +++ b/db/migrations/20240615155000_widget_fallback_data_migration.php @@ -0,0 +1,49 @@ +. + */ + +use Phinx\Db\Adapter\MysqlAdapter; +use Phinx\Migration\AbstractMigration; + +/** + * Migration to add a new table for modelling widget fallback data + * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace + */ +class WidgetFallbackDataMigration extends AbstractMigration +{ + public function change(): void + { + $this->table('widgetdata') + ->addColumn('widgetId', 'integer', ['null' => false]) + ->addColumn('data', 'text', [ + 'limit' => MysqlAdapter::TEXT_MEDIUM, + 'null' => true, + 'default' => null, + ]) + ->addColumn('displayOrder', 'integer', [ + 'limit' => MysqlAdapter::INT_MEDIUM, + ]) + ->addColumn('createdDt', 'datetime', ['null' => true, 'default' => null]) + ->addColumn('modifiedDt', 'datetime', ['null' => true, 'default' => null]) + ->addForeignKey('widgetId', 'widget', 'widgetId') + ->create(); + } +} diff --git a/db/migrations/20240617040320_add_o_s_details_to_display_table_migration.php b/db/migrations/20240617040320_add_o_s_details_to_display_table_migration.php new file mode 100755 index 0000000000..51476defd5 --- /dev/null +++ b/db/migrations/20240617040320_add_o_s_details_to_display_table_migration.php @@ -0,0 +1,41 @@ +. + */ + +use Phinx\Migration\AbstractMigration; + +/** + * Migration to Add osVersion, osSdk, manufacturer, brand, model columns to Display table + * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace + */ +class AddOSDetailsToDisplayTableMigration extends AbstractMigration +{ + public function change(): void + { + $this->table('display') + ->addColumn('osVersion', 'string', ['default' => null, 'null' => true]) + ->addColumn('osSdk', 'string', ['default' => null, 'null' => true]) + ->addColumn('manufacturer', 'string', ['default' => null, 'null' => true]) + ->addColumn('brand', 'string', ['default' => null, 'null' => true]) + ->addColumn('model', 'string', ['default' => null, 'null' => true]) + ->save(); + } +} diff --git a/db/migrations/20240717043020_add_data_connector_source_to_dataset_table_migration.php b/db/migrations/20240717043020_add_data_connector_source_to_dataset_table_migration.php new file mode 100644 index 0000000000..e12a3c9da4 --- /dev/null +++ b/db/migrations/20240717043020_add_data_connector_source_to_dataset_table_migration.php @@ -0,0 +1,37 @@ +. + */ + +use Phinx\Migration\AbstractMigration; + +/** + * Migration to add data source column to the dataset table. + * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace + */ +class AddDataConnectorSourceToDatasetTableMigration extends AbstractMigration +{ + public function change(): void + { + $this->table('dataset') + ->addColumn('dataConnectorSource', 'string', ['default' => null, 'null' => true]) + ->save(); + } +} diff --git a/db/migrations/20240717113400_add_last_used_time_to_session_history_table_migration.php b/db/migrations/20240717113400_add_last_used_time_to_session_history_table_migration.php new file mode 100755 index 0000000000..764c80b90b --- /dev/null +++ b/db/migrations/20240717113400_add_last_used_time_to_session_history_table_migration.php @@ -0,0 +1,37 @@ +. + */ + +use Phinx\Migration\AbstractMigration; + +/** + * Migration to add lastUsedTime in session_history table + * @phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace + */ +class AddLastUsedTimeToSessionHistoryTableMigration extends AbstractMigration +{ + public function change(): void + { + $this->table('session_history') + ->addColumn('lastUsedTime', 'datetime', ['null' => true, 'default' => null]) + ->save(); + } +} diff --git a/docker/etc/apache2/sites-available/000-default.conf b/docker/etc/apache2/sites-available/000-default.conf index 1f99fe02f8..762f518aa6 100644 --- a/docker/etc/apache2/sites-available/000-default.conf +++ b/docker/etc/apache2/sites-available/000-default.conf @@ -46,7 +46,6 @@ ServerTokens OS # Hardening Header always append X-Frame-Options SAMEORIGIN Header always append X-Content-Type-Options nosniff - Header always append Content-Security-Policy "frame-ancestors 'self'" # Alias /xibo /var/www/cms/web diff --git a/lib/Connector/DataConnectorScriptProviderInterface.php b/lib/Connector/DataConnectorScriptProviderInterface.php new file mode 100644 index 0000000000..48533ffe7d --- /dev/null +++ b/lib/Connector/DataConnectorScriptProviderInterface.php @@ -0,0 +1,53 @@ +. + */ + +namespace Xibo\Connector; + +/** + * Interface for handling the DataConnectorScriptRequestEvent. + * + * Provides methods for connectors to supply their data connector JS code. + * + * These methods should be used together: + * - Use getConnectorId() to retrieve the unique identifier of the connector provided in the event. + * - Check if the connector's ID matches the ID provided in the event. + * - If the IDs match, use setScript() to provide the JavaScript code for the data connector. + * + * This ensures that the correct script is supplied by the appropriate connector. + */ +interface DataConnectorScriptProviderInterface +{ + /** + * Get the unique identifier of the connector that is selected as the data source for the dataset. + * + * @return string + */ + public function getConnectorId(): string; + + /** + * Set the data connector JavaScript code provided by the connector. Requires real time. + * + * @param string $script JavaScript code + * @return void + */ + public function setScript(string $script): void; +} diff --git a/lib/Connector/DataConnectorSourceProviderInterface.php b/lib/Connector/DataConnectorSourceProviderInterface.php new file mode 100644 index 0000000000..0b863b89f3 --- /dev/null +++ b/lib/Connector/DataConnectorSourceProviderInterface.php @@ -0,0 +1,43 @@ +. + */ + +namespace Xibo\Connector; + +use InvalidArgumentException; + +/** + * Interface for handling the DataConnectorSourceRequestEvent. + * + * Registers connectors that provide data connector JavaScript (JS). + */ +interface DataConnectorSourceProviderInterface +{ + /** + * Adds/Registers a connector, that would provide a data connector JS, to the event. + * Implementations should use $this->getSourceName() as the $id and $this->getTitle() as the $name. + * + * @param string $id + * @param string $name + * @throws InvalidArgumentException if a duplicate ID or name is found. + */ + public function addDataConnectorSource(string $id, string $name): void; +} diff --git a/lib/Connector/OpenWeatherMapConnector.php b/lib/Connector/OpenWeatherMapConnector.php index 26ca577f18..ddb76239da 100644 --- a/lib/Connector/OpenWeatherMapConnector.php +++ b/lib/Connector/OpenWeatherMapConnector.php @@ -26,7 +26,11 @@ use GuzzleHttp\Exception\RequestException; use Illuminate\Support\Str; use Symfony\Component\EventDispatcher\EventDispatcherInterface; +use Xibo\Event\ScheduleCriteriaRequestEvent; +use Xibo\Event\ScheduleCriteriaRequestInterface; use Xibo\Event\WidgetDataRequestEvent; +use Xibo\Event\XmdsWeatherRequestEvent; +use Xibo\Support\Exception\ConfigurationException; use Xibo\Support\Exception\GeneralException; use Xibo\Support\Sanitizer\SanitizerInterface; use Xibo\Widget\DataType\Forecast; @@ -54,6 +58,8 @@ class OpenWeatherMapConnector implements ConnectorInterface public function registerWithDispatcher(EventDispatcherInterface $dispatcher): ConnectorInterface { $dispatcher->addListener(WidgetDataRequestEvent::$NAME, [$this, 'onDataRequest']); + $dispatcher->addListener(ScheduleCriteriaRequestEvent::$NAME, [$this, 'onScheduleCriteriaRequest']); + $dispatcher->addListener(XmdsWeatherRequestEvent::$NAME, [$this, 'onXmdsWeatherRequest']); return $this; } @@ -88,6 +94,7 @@ public function processSettingsForm(SanitizerInterface $params, array $settings) $settings['owmApiKey'] = $params->getString('owmApiKey'); $settings['owmIsPaidPlan'] = $params->getCheckbox('owmIsPaidPlan'); $settings['cachePeriod'] = $params->getInt('cachePeriod'); + $settings['xmdsCachePeriod'] = $params->getInt('xmdsCachePeriod'); } return $settings; } @@ -161,8 +168,23 @@ private function getWeatherData(DataProviderInterface $dataProvider) $data = $this->queryApi($this->apiUrl . $this->forecastCurrent . $url, $cacheExpire); $data['current'] = $this->parseCurrentIntoFormat($data); - $timezoneOffset = (int)$data['timezone'] / 3600; - $this->timezone = (new \DateTimeZone(($timezoneOffset < 0 ? '-' : '+') . abs($timezoneOffset)))->getName(); + // initialize timezone + $timezoneOffset = (int)$data['timezone']; + + // Calculate the number of whole hours in the offset + $offsetHours = floor($timezoneOffset / 3600); + + // Calculate the remaining minutes after extracting the whole hours + $offsetMinutes = ($timezoneOffset % 3600) / 60; + + // Determine the sign of the offset (positive or negative) + $sign = $offsetHours < 0 ? '-' : '+'; + + // Ensure the format is as follows: +/-hh:mm + $formattedOffset = sprintf("%s%02d:%02d", $sign, abs($offsetHours), abs($offsetMinutes)); + + // Get the timezone name + $this->timezone = (new \DateTimeZone($formattedOffset))->getName(); // Pick out the country $country = $data['sys']['country'] ?? null; @@ -217,6 +239,7 @@ private function getWeatherData(DataProviderInterface $dataProvider) $this->currentDay->temperatureUnit = $unit['tempUnit'] ?: 'C'; $this->currentDay->windSpeedUnit = $unit['windUnit'] ?: 'KPH'; $this->currentDay->visibilityDistanceUnit = $unit['visibilityUnit'] ?: 'km'; + $this->currentDay->location = $data['name'] ?? ''; $this->processItemIntoDay($this->currentDay, $data['current'], $units, true); $countForecast = 0; @@ -231,6 +254,7 @@ private function getWeatherData(DataProviderInterface $dataProvider) $day->temperatureUnit = $this->currentDay->temperatureUnit; $day->windSpeedUnit = $this->currentDay->windSpeedUnit; $day->visibilityDistanceUnit = $this->currentDay->visibilityDistanceUnit; + $day->location = $this->currentDay->location; $this->processItemIntoDay($day, $dayItem, $units); $forecasts[] = $day; @@ -631,4 +655,240 @@ private static function cardinalDirections() 'NW' => [292.5, 337.5] ]; } + + /** + * @param ScheduleCriteriaRequestInterface $event + * @return void + * @throws ConfigurationException + */ + public function onScheduleCriteriaRequest(ScheduleCriteriaRequestInterface $event): void + { + // Initialize Open Weather Schedule Criteria parameters + $event->addType('weather', __('Weather')) + ->addMetric('weather_condition', __('Weather Condition')) + ->addValues('dropdown', [ + 'clear_sky' => __('Clear Sky'), + 'few_clouds' => __('Few Clouds'), + 'scattered_clouds' => __('Scattered Clouds'), + 'broken_clouds' => __('Broken Clouds'), + 'shower_rain' => __('Shower Rain'), + 'rain' => __('Rain'), + 'thunderstorm' => __('Thunderstorm'), + 'snow' => __('Snow'), + 'mist' => __('Mist') + ]) + ->addMetric('temperature_imperial', __('Temperature (Imperial)')) + ->addValues('number', []) + ->addMetric('temperature_metric', __('Temperature (Metric)')) + ->addValues('number', []) + ->addMetric('apparent_temperature_imperial', __('Apparent Temperature (Imperial)')) + ->addValues('number', []) + ->addMetric('apparent_temperature_metric', __('Apparent Temperature (Metric)')) + ->addValues('number', []) + ->addMetric('wind_speed', __('Wind Speed')) + ->addValues('number', []) + ->addMetric('wind_direction', __('Wind Direction')) + ->addValues('dropdown', [ + 'N' => __('North'), + 'NNE ' => __('North-Northeast'), + 'NE' => __('Northeast'), + 'ENE' => __('East-Northeast'), + 'E' => __('East'), + 'ESE' => __('East-Southeast'), + 'SE' => __('Southeast'), + 'SSE' => __('South-Southeast'), + 'S' => __('South'), + 'SSW' => __('South-Southwest'), + 'SW' => __('Southwest'), + 'WSW' => __('West-Southwest'), + 'W' => __('West'), + 'WNW' => __('West-Northwest'), + 'NW' => __('Northwest'), + 'NNW' => __('North-Northwest'), + ]) + ->addMetric('wind_bearing', __('Wind Bearing')) + ->addValues('number', []) + ->addMetric('humidity', __('Humidity (Percent)')) + ->addValues('number', []) + ->addMetric('pressure', __('Pressure')) + ->addValues('number', []) + ->addMetric('visibility', __('Visibility')) + ->addValues('number', []); + } + + /** + * @param $item + * @param $unit + * @param $requestUnit + * @return array + */ + private function processXmdsWeatherData($item, $unit, $requestUnit): array + { + $windSpeedUnit = $unit['windUnit'] ?? 'KPH'; + $visibilityDistanceUnit = $unit['visibilityUnit'] ?? 'km'; + + // var to store output/response + $data = array(); + + // format the weather condition + $data['weather_condition'] = str_replace(' ', '_', strtolower($item['weather'][0]['main'])); + + // Temperature + // imperial = F + // metric = C + $tempImperial = $item['temp']; + $apparentTempImperial = $item['feels_like']; + + // Convert F to C + $tempMetric = ($tempImperial - 32) * 5 / 9; + $apparentTempMetric = ($apparentTempImperial - 32) * 5 / 9; + + // Round those temperature values + $data['temperature_imperial'] = round($tempImperial, 0); + $data['apparent_temperature_imperial'] = round($apparentTempImperial, 0); + $data['temperature_metric'] = round($tempMetric, 0); + $data['apparent_temperature_metric'] = round($apparentTempMetric, 0); + + + // Humidity + $data['humidity'] = $item['humidity']; + + // Pressure + // received in hPa, display in mB + $data['pressure'] = $item['pressure'] / 100; + + // Wind + // metric = meters per second + // imperial = miles per hour + $data['wind_speed'] = $item['wind_speed'] ?? $item['speed'] ?? null; + $data['wind_bearing'] = $item['wind_deg'] ?? $item['deg'] ?? null; + + if ($requestUnit === 'metric' && $windSpeedUnit !== 'MPS') { + // We have MPS and need to go to something else + if ($windSpeedUnit === 'MPH') { + // Convert MPS to MPH + $data['wind_speed'] = round($data['wind_speed'] * 2.237, 2); + } else if ($windSpeedUnit === 'KPH') { + // Convert MPS to KPH + $data['wind_speed'] = round($data['wind_speed'] * 3.6, 2); + } + } else if ($requestUnit === 'imperial' && $windSpeedUnit !== 'MPH') { + if ($windSpeedUnit === 'MPS') { + // Convert MPH to MPS + $data['wind_speed'] = round($data['wind_speed'] / 2.237, 2); + } else if ($windSpeedUnit === 'KPH') { + // Convert MPH to KPH + $data['wind_speed'] = round($data['wind_speed'] * 1.609344, 2); + } + } + + // Wind direction + $data['wind_direction'] = '--'; + if ($data['wind_bearing'] !== null && $data['wind_bearing'] !== 0) { + foreach (self::cardinalDirections() as $dir => $angles) { + if ($data['wind_bearing'] >= $angles[0] && $data['wind_bearing'] < $angles[1]) { + $data['wind_direction'] = $dir; + break; + } + } + } + + // Visibility + // metric = meters + // imperial = meters? + $data['visibility'] = $item['visibility'] ?? '--'; + + if ($data['visibility'] !== '--') { + // Always in meters + if ($visibilityDistanceUnit === 'mi') { + // Convert meters to miles + $data['visibility'] = $data['visibility'] / 1609; + } else { + if ($visibilityDistanceUnit === 'km') { + // Convert meters to KM + $data['visibility'] = $data['visibility'] / 1000; + } + } + } + + return $data; + } + + /** + * @param XmdsWeatherRequestEvent $event + * @return void + * @throws GeneralException|\SoapFault + */ + public function onXmdsWeatherRequest(XmdsWeatherRequestEvent $event): void + { + // check for API Key + if (empty($this->getSetting('owmApiKey'))) { + $this->getLogger()->debug('onXmdsWeatherRequest: Open Weather Map not configured.'); + + throw new \SoapFault( + 'Receiver', + 'Open Weather Map API key is not configured' + ); + } + + $latitude = $event->getLatitude(); + $longitude = $event->getLongitude(); + + // Cache expiry date + $cacheExpire = Carbon::now()->addHours($this->getSetting('xmdsCachePeriod')); + + // use imperial as the default units, so we can get the right value when converting to metric + $units = 'imperial'; + + // Temperature and Wind Speed Unit Mappings + $unit = $this->getUnit('auto'); + + // Build the URL + $url = '?lat=' . $latitude + . '&lon=' . $longitude + . '&units=' . $units + . '&appid=[API_KEY]'; + + // check API plan + if ($this->getSetting('owmIsPaidPlan') ?? 0 == 1) { + // use weather data endpoints for Paid Plan + $data = $this->queryApi($this->apiUrl . $this->forecastCurrent . $url, $cacheExpire); + $data['current'] = $this->parseCurrentIntoFormat($data); + + // Pick out the country + $country = $data['sys']['country'] ?? null; + + // If we don't have a unit, then can we base it on the timezone we got back? + if ($country !== null) { + // Pick out some countries to set the units + if ($country === 'GB') { + $unit = $this->getUnit('uk2'); + } else if ($country === 'US') { + $unit = $this->getUnit('us'); + } else if ($country === 'CA') { + $unit = $this->getUnit('ca'); + } else { + $unit = $this->getUnit('si'); + } + } + } else { + // We use one call API 3.0 for Free Plan + $data = $this->queryApi($this->apiUrl . $this->forecastCombinedV3 . $url, $cacheExpire); + + // Country based on timezone (this is harder than using the real country) + if (Str::startsWith($data['timezone'], 'America')) { + $unit = $this->getUnit('us'); + } else if ($data['timezone'] === 'Europe/London') { + $unit = $this->getUnit('uk2'); + } else { + $unit = $this->getUnit('si'); + } + } + + // process weather data + $weatherData = $this->processXmdsWeatherData($data['current'], $unit, 'imperial'); + + // Set the processed weather data in the event as a JSON-encoded string + $event->setWeatherData(json_encode($weatherData)); + } } diff --git a/lib/Connector/PixabayConnector.php b/lib/Connector/PixabayConnector.php index 0792814cbb..5e62b0704b 100644 --- a/lib/Connector/PixabayConnector.php +++ b/lib/Connector/PixabayConnector.php @@ -1,8 +1,8 @@ addListener('connector.provider.library', [$this, 'onLibraryProvider']); $dispatcher->addListener('connector.provider.library.import', [$this, 'onLibraryImport']); + $dispatcher->addListener('connector.provider.library.list', [$this, 'onLibraryList']); return $this; } @@ -98,139 +100,142 @@ public function onLibraryProvider(LibraryProviderEvent $event) return; } - // We do! Let's get some results from Pixabay - // first we look at paging - $start = $event->getStart(); - $perPage = $event->getLength(); - if ($start == 0) { - $page = 1; - } else { - $page = floor($start / $perPage) + 1; - } - - $query = [ - 'key' => $apiKey, - 'page' => $page, - 'per_page' => $perPage, - 'safesearch' => 'true' - ]; - - // Now we handle any other search - if ($event->getOrientation() === 'landscape') { - $query['orientation'] = 'horizontal'; - } else if ($event->getOrientation() === 'portrait') { - $query['orientation'] = 'vertical'; - } - - if (!empty($event->getSearch())) { - $query['q'] = urlencode($event->getSearch()); - } - - // Pixabay either returns images or videos, not both. - if (count($event->getTypes()) !== 1) { - return; - } - - $type = $event->getTypes()[0]; - if (!in_array($type, ['image', 'video'])) { - return; - } + // was Pixabay requested? + if ($event->getProviderName() === $this->getSourceName()) { + // We do! Let's get some results from Pixabay + // first we look at paging + $start = $event->getStart(); + $perPage = $event->getLength(); + if ($start == 0) { + $page = 1; + } else { + $page = floor($start / $perPage) + 1; + } - // Pixabay require a 24-hour cache of each result set. - $key = md5($type . '_' . json_encode($query)); - $cache = $this->getPool()->getItem($key); - $body = $cache->get(); + $query = [ + 'key' => $apiKey, + 'page' => $page, + 'per_page' => $perPage, + 'safesearch' => 'true' + ]; - if ($cache->isMiss()) { - $this->getLogger()->debug('onLibraryProvider: cache miss, generating.'); + // Now we handle any other search + if ($event->getOrientation() === 'landscape') { + $query['orientation'] = 'horizontal'; + } else if ($event->getOrientation() === 'portrait') { + $query['orientation'] = 'vertical'; + } - // Make the request - $request = $this->getClient()->request('GET', $baseUrl . ($type === 'video' ? 'videos' : ''), [ - 'query' => $query - ]); + if (!empty($event->getSearch())) { + $query['q'] = urlencode($event->getSearch()); + } - $body = $request->getBody()->getContents(); - if (empty($body)) { - $this->getLogger()->debug('onLibraryProvider: Empty body'); + // Pixabay either returns images or videos, not both. + if (count($event->getTypes()) !== 1) { return; } - $body = json_decode($body); - if ($body === null || $body === false) { - $this->getLogger()->debug('onLibraryProvider: non-json body or empty body returned.'); + $type = $event->getTypes()[0]; + if (!in_array($type, ['image', 'video'])) { return; } - // Cache for next time - $cache->set($body); - $cache->expiresAt(Carbon::now()->addHours(24)); - $this->getPool()->saveDeferred($cache); - } else { - $this->getLogger()->debug('onLibraryProvider: serving from cache.'); - } + // Pixabay require a 24-hour cache of each result set. + $key = md5($type . '_' . json_encode($query)); + $cache = $this->getPool()->getItem($key); + $body = $cache->get(); - $providerDetails = new ProviderDetails(); - $providerDetails->id = 'pixabay'; - $providerDetails->link = 'https://pixabay.com'; - $providerDetails->logoUrl = '/theme/default/img/connectors/pixabay_logo.svg'; - $providerDetails->backgroundColor = ''; + if ($cache->isMiss()) { + $this->getLogger()->debug('onLibraryProvider: cache miss, generating.'); - // Process each hit into a search result and add it to the overall results we've been given. - foreach ($body->hits as $result) { - $searchResult = new SearchResult(); - // TODO: add more info - $searchResult->source = $this->getSourceName(); - $searchResult->id = $result->id; - $searchResult->title = $result->tags; - $searchResult->provider = $providerDetails; - - if ($type === 'video') { - $searchResult->type = 'video'; - $searchResult->thumbnail = $result->videos->tiny->url; - $searchResult->duration = $result->duration; - if (!empty($result->videos->large)) { - $searchResult->download = $result->videos->large->url; - $searchResult->width = $result->videos->large->width; - $searchResult->height = $result->videos->large->height; - $searchResult->fileSize = $result->videos->large->size; - } else if (!empty($result->videos->medium)) { - $searchResult->download = $result->videos->medium->url; - $searchResult->width = $result->videos->medium->width; - $searchResult->height = $result->videos->medium->height; - $searchResult->fileSize = $result->videos->medium->size; - } else if (!empty($result->videos->small)) { - $searchResult->download = $result->videos->small->url; - $searchResult->width = $result->videos->small->width; - $searchResult->height = $result->videos->small->height; - $searchResult->fileSize = $result->videos->small->size; - } else { - $searchResult->download = $result->videos->tiny->url; - $searchResult->width = $result->videos->tiny->width; - $searchResult->height = $result->videos->tiny->height; - $searchResult->fileSize = $result->videos->tiny->size; + // Make the request + $request = $this->getClient()->request('GET', $baseUrl . ($type === 'video' ? 'videos' : ''), [ + 'query' => $query + ]); + + $body = $request->getBody()->getContents(); + if (empty($body)) { + $this->getLogger()->debug('onLibraryProvider: Empty body'); + return; } - if (!empty($result->picture_id ?? null)) { - // Try the old way (at some point this stopped working and went to the thumbnail approach above - $searchResult->videoThumbnailUrl = str_replace( - 'pictureId', - $result->picture_id, - 'https://i.vimeocdn.com/video/pictureId_960x540.png' - ); - } else { - // Use the medium thumbnail if we have it, otherwise the tiny one. - $searchResult->videoThumbnailUrl = $result->videos->medium->thumbnail - ?? $result->videos->tiny->thumbnail; + $body = json_decode($body); + if ($body === null || $body === false) { + $this->getLogger()->debug('onLibraryProvider: non-json body or empty body returned.'); + return; } + + // Cache for next time + $cache->set($body); + $cache->expiresAt(Carbon::now()->addHours(24)); + $this->getPool()->saveDeferred($cache); } else { - $searchResult->type = 'image'; - $searchResult->thumbnail = $result->previewURL; - $searchResult->download = $result->fullHDURL ?? $result->largeImageURL; - $searchResult->width = $result->imageWidth; - $searchResult->height = $result->imageHeight; - $searchResult->fileSize = $result->imageSize; + $this->getLogger()->debug('onLibraryProvider: serving from cache.'); + } + + $providerDetails = new ProviderDetails(); + $providerDetails->id = 'pixabay'; + $providerDetails->link = 'https://pixabay.com'; + $providerDetails->logoUrl = '/theme/default/img/connectors/pixabay_logo.svg'; + $providerDetails->iconUrl = '/theme/default/img/connectors/pixabay_logo_square.svg'; + $providerDetails->backgroundColor = ''; + + // Process each hit into a search result and add it to the overall results we've been given. + foreach ($body->hits as $result) { + $searchResult = new SearchResult(); + $searchResult->source = $this->getSourceName(); + $searchResult->id = $result->id; + $searchResult->title = $result->tags; + $searchResult->provider = $providerDetails; + + if ($type === 'video') { + $searchResult->type = 'video'; + $searchResult->thumbnail = $result->videos->tiny->url; + $searchResult->duration = $result->duration; + if (!empty($result->videos->large)) { + $searchResult->download = $result->videos->large->url; + $searchResult->width = $result->videos->large->width; + $searchResult->height = $result->videos->large->height; + $searchResult->fileSize = $result->videos->large->size; + } else if (!empty($result->videos->medium)) { + $searchResult->download = $result->videos->medium->url; + $searchResult->width = $result->videos->medium->width; + $searchResult->height = $result->videos->medium->height; + $searchResult->fileSize = $result->videos->medium->size; + } else if (!empty($result->videos->small)) { + $searchResult->download = $result->videos->small->url; + $searchResult->width = $result->videos->small->width; + $searchResult->height = $result->videos->small->height; + $searchResult->fileSize = $result->videos->small->size; + } else { + $searchResult->download = $result->videos->tiny->url; + $searchResult->width = $result->videos->tiny->width; + $searchResult->height = $result->videos->tiny->height; + $searchResult->fileSize = $result->videos->tiny->size; + } + + if (!empty($result->picture_id ?? null)) { + // Try the old way (at some point this stopped working and went to the thumbnail approach above + $searchResult->videoThumbnailUrl = str_replace( + 'pictureId', + $result->picture_id, + 'https://i.vimeocdn.com/video/pictureId_960x540.png' + ); + } else { + // Use the medium thumbnail if we have it, otherwise the tiny one. + $searchResult->videoThumbnailUrl = $result->videos->medium->thumbnail + ?? $result->videos->tiny->thumbnail; + } + } else { + $searchResult->type = 'image'; + $searchResult->thumbnail = $result->previewURL; + $searchResult->download = $result->fullHDURL ?? $result->largeImageURL; + $searchResult->width = $result->imageWidth; + $searchResult->height = $result->imageHeight; + $searchResult->fileSize = $result->imageSize; + } + $event->addResult($searchResult); } - $event->addResult($searchResult); } } @@ -246,4 +251,24 @@ public function onLibraryImport(LibraryProviderImportEvent $event) } } } + + public function onLibraryList(LibraryProviderListEvent $event) + { + $this->getLogger()->debug('onLibraryList:event'); + + if (empty($this->getSetting('apiKey'))) { + $this->getLogger()->debug('onLibraryList: No api key'); + return; + } + + $providerDetails = new ProviderDetails(); + $providerDetails->id = 'pixabay'; + $providerDetails->link = 'https://pixabay.com'; + $providerDetails->logoUrl = '/theme/default/img/connectors/pixabay_logo.svg'; + $providerDetails->iconUrl = '/theme/default/img/connectors/pixabay_logo_square.svg'; + $providerDetails->backgroundColor = ''; + $providerDetails->mediaTypes = ['image', 'video']; + + $event->addProvider($providerDetails); + } } diff --git a/lib/Connector/ProviderDetails.php b/lib/Connector/ProviderDetails.php index 8abc2313d3..b444bf82fa 100644 --- a/lib/Connector/ProviderDetails.php +++ b/lib/Connector/ProviderDetails.php @@ -1,6 +1,6 @@ $this->message, 'link' => $this->link, 'logoUrl' => $this->logoUrl, - 'backgroundColor' => $this->backgroundColor + 'iconUrl' => $this->iconUrl, + 'backgroundColor' => $this->backgroundColor, + 'mediaTypes' => $this->mediaTypes ]; } } diff --git a/lib/Connector/XiboExchangeConnector.php b/lib/Connector/XiboExchangeConnector.php index 6b576ea285..d7d405bf65 100644 --- a/lib/Connector/XiboExchangeConnector.php +++ b/lib/Connector/XiboExchangeConnector.php @@ -93,7 +93,7 @@ public function onTemplateProvider(TemplateProviderEvent $event) $this->getLogger()->debug('XiboExchangeConnector: onTemplateProvider'); // Get a cache of the layouts.json file, or request one from download. - $uri = 'https://download.xibosignage.com/layouts_v4.json'; + $uri = 'https://download.xibosignage.com/layouts_v4_1.json'; $key = md5($uri); $cache = $this->getPool()->getItem($key); $body = $cache->get(); @@ -132,19 +132,36 @@ public function onTemplateProvider(TemplateProviderEvent $event) $providerDetails = new ProviderDetails(); $providerDetails->id = $this->getSourceName(); $providerDetails->logoUrl = $this->getThumbnail(); + $providerDetails->iconUrl = $this->getThumbnail(); $providerDetails->message = $this->getTitle(); $providerDetails->backgroundColor = ''; + // parse the templates based on orientation filter. + if (!empty($event->getOrientation())) { + $templates = []; + foreach ($body as $template) { + if (!empty($template->orientation) && + Str::contains($template->orientation, $event->getOrientation(), true) + ) { + $templates[] = $template; + } + } + } else { + $templates = $body; + } + // Filter the body based on search param. if (!empty($event->getSearch())) { $filtered = []; - foreach ($body as $template) { - if (Str::contains($template->title, $event->getSearch())) { + foreach ($templates as $template) { + if (Str::contains($template->title, $event->getSearch(), true)) { $filtered[] = $template; continue; } - if (!empty($template->description) && Str::contains($template->description, $event->getSearch())) { + if (!empty($template->description) && + Str::contains($template->description, $event->getSearch(), true) + ) { $filtered[] = $template; continue; } @@ -156,9 +173,18 @@ public function onTemplateProvider(TemplateProviderEvent $event) } } } else { - $filtered = $body; + $filtered = $templates; } + // sort, featured first, otherwise alphabetically. + usort($filtered, function ($a, $b) { + if (property_exists($a, 'isFeatured') && property_exists($b, 'isFeatured')) { + return $b->isFeatured <=> $a->isFeatured; + } else { + return $a->title <=> $b->title; + } + }); + for ($i = $start; $i < ($start + $perPage - 1) && $i < count($filtered); $i++) { $searchResult = $this->createSearchResult($filtered[$i]); $searchResult->provider = $providerDetails; @@ -204,6 +230,10 @@ private function createSearchResult($template) : SearchResult $searchResult->orientation = $template->orientation; } + if (property_exists($template, 'isFeatured')) { + $searchResult->isFeatured = $template->isFeatured; + } + // Thumbnail $searchResult->thumbnail = $template->thumbnailUrl; $searchResult->download = $template->downloadUrl; diff --git a/lib/Connector/XiboSspConnector.php b/lib/Connector/XiboSspConnector.php index 45b109e03c..0b2b657198 100644 --- a/lib/Connector/XiboSspConnector.php +++ b/lib/Connector/XiboSspConnector.php @@ -442,7 +442,7 @@ public function activity(SanitizerInterface $params): array 'fromDt' => $fromDt->toAtomString(), 'toDt' => $toDt->toAtomString(), 'displayId' => $params->getInt('displayId'), - 'campaignId' => $params->getString('campaignId'), + 'campaignId' => $params->getString('partnerId'), ], ]); @@ -463,6 +463,22 @@ public function activity(SanitizerInterface $params): array ]; } + /** + * Available Partners + */ + public function getAvailablePartnersFilter(SanitizerInterface $params): array + { + try { + return $this->getAvailablePartners() ?? []; + } catch (\Exception $e) { + $this->getLogger()->error('activity: e = ' . $e->getMessage()); + } + + return [ + 'data' => [], + 'recordsTotal' => 0, + ]; + } // // diff --git a/lib/Controller/AuditLog.php b/lib/Controller/AuditLog.php index 69bf9e594e..aa76689ac0 100644 --- a/lib/Controller/AuditLog.php +++ b/lib/Controller/AuditLog.php @@ -1,6 +1,6 @@ getString('message'); $filterIpAddress = $sanitizedParams->getString('ipAddress'); - $search = []; - if ($filterFromDt != null && $filterFromDt == $filterToDt) { $filterToDt->addDay(); } @@ -98,30 +96,21 @@ function grid(Request $request, Response $response) $filterToDt = Carbon::now(); } - $search['fromTimeStamp'] = $filterFromDt->format('U'); - $search['toTimeStamp'] = $filterToDt->format('U'); - - if ($filterUser != '') { - $search['userName'] = $filterUser; - } - - if ($filterEntity != '') { - $search['entity'] = $filterEntity; - } - - if ($filterEntityId != null) { - $search['entityId'] = $filterEntityId; - } - - if ($filterMessage != '') { - $search['message'] = $filterMessage; - } - - if ($filterIpAddress != '') { - $search['ipAddress'] = $filterIpAddress; - } - - $rows = $this->auditLogFactory->query($this->gridRenderSort($sanitizedParams), $this->gridRenderFilter($search, $sanitizedParams)); + $search = [ + 'fromTimeStamp' => $filterFromDt->format('U'), + 'toTimeStamp' => $filterToDt->format('U'), + 'userName' => $filterUser, + 'entity' => $filterEntity, + 'entityId' => $filterEntityId, + 'message' => $filterMessage, + 'ipAddress' => $filterIpAddress, + 'sessionHistoryId' => $sanitizedParams->getInt('sessionHistoryId') + ]; + + $rows = $this->auditLogFactory->query( + $this->gridRenderSort($sanitizedParams), + $this->gridRenderFilter($search, $sanitizedParams) + ); // Do some post processing foreach ($rows as $row) { diff --git a/lib/Controller/Command.php b/lib/Controller/Command.php index b2d94d4e5d..a6847ed506 100644 --- a/lib/Controller/Command.php +++ b/lib/Controller/Command.php @@ -369,6 +369,14 @@ public function deleteForm(Request $request, Response $response, $id) * type="string", * required=false * ), + * @SWG\Parameter( + * name="createAlertOn", + * in="formData", + * description="On command execution, when should a Display alert be created? + * success, failure, always or never", + * type="string", + * required=false + * ), * @SWG\Response( * response=201, * description="successful operation", @@ -398,6 +406,7 @@ public function add(Request $request, Response $response) $command->userId = $this->getUser()->userId; $command->commandString = $sanitizedParams->getString('commandString'); $command->validationString = $sanitizedParams->getString('validationString'); + $command->createAlertOn = $sanitizedParams->getString('createAlertOn', ['default' => 'never']); $availableOn = $sanitizedParams->getArray('availableOn'); if (empty($availableOn)) { $command->availableOn = null; @@ -476,6 +485,14 @@ public function add(Request $request, Response $response) * type="string", * required=false * ), + * @SWG\Parameter( + * name="createAlertOn", + * in="formData", + * description="On command execution, when should a Display alert be created? + * success, failure, always or never", + * type="string", + * required=false + * ), * @SWG\Response( * response=200, * description="successful operation", @@ -496,6 +513,7 @@ public function edit(Request $request, Response $response, $id) $command->description = $sanitizedParams->getString('description'); $command->commandString = $sanitizedParams->getString('commandString'); $command->validationString = $sanitizedParams->getString('validationString'); + $command->createAlertOn = $sanitizedParams->getString('createAlertOn', ['default' => 'never']); $availableOn = $sanitizedParams->getArray('availableOn'); if (empty($availableOn)) { $command->availableOn = null; @@ -552,7 +570,7 @@ public function delete(Request $request, Response $response, $id) throw new AccessDeniedException(); } - $this->getDispatcher()->dispatch(CommandDeleteEvent::$NAME, new CommandDeleteEvent($command)); + $this->getDispatcher()->dispatch(new CommandDeleteEvent($command), CommandDeleteEvent::$NAME); $command->delete(); diff --git a/lib/Controller/DataSet.php b/lib/Controller/DataSet.php index ad19aeaf95..960e472171 100644 --- a/lib/Controller/DataSet.php +++ b/lib/Controller/DataSet.php @@ -21,8 +21,13 @@ */ namespace Xibo\Controller; +use GuzzleHttp\Client; +use GuzzleHttp\Exception\RequestException; +use Illuminate\Support\Str; use Slim\Http\Response as Response; use Slim\Http\ServerRequest as Request; +use Xibo\Event\DataConnectorScriptRequestEvent; +use Xibo\Event\DataConnectorSourceRequestEvent; use Xibo\Factory\DataSetColumnFactory; use Xibo\Factory\DataSetFactory; use Xibo\Factory\FolderFactory; @@ -128,6 +133,13 @@ public function displayPage(Request $request, Response $response) * required=false * ), * @SWG\Parameter( + * name="isRealTime", + * in="query", + * description="Filter by real time", + * type="integer", + * required=false + * ), + * @SWG\Parameter( * name="userId", * in="query", * description="Filter by user Id", @@ -165,12 +177,13 @@ public function grid(Request $request, Response $response) // Embed? $embed = ($sanitizedParams->getString('embed') != null) ? explode(',', $sanitizedParams->getString('embed')) : []; - + $filter = [ 'dataSetId' => $sanitizedParams->getInt('dataSetId'), 'dataSet' => $sanitizedParams->getString('dataSet'), 'useRegexForName' => $sanitizedParams->getCheckbox('useRegexForName'), 'code' => $sanitizedParams->getString('code'), + 'isRealTime' => $sanitizedParams->getInt('isRealTime'), 'userId' => $sanitizedParams->getInt('userId'), 'folderId' => $sanitizedParams->getInt('folderId'), 'logicalOperatorName' => $sanitizedParams->getString('logicalOperatorName'), @@ -221,6 +234,17 @@ public function grid(Request $request, Response $response) 'text' => __('View RSS') ); + if ($this->getUser()->featureEnabled('dataset.realtime') && $dataSet->isRealTime === 1) { + $dataSet->buttons[] = [ + 'id' => 'dataset_button_view_data_connector', + 'url' => $this->urlFor($request, 'dataSet.dataConnector.view', [ + 'id' => $dataSet->dataSetId + ]), + 'class' => 'XiboRedirectButton', + 'text' => __('View Data Connector'), + ]; + } + // Divider $dataSet->buttons[] = ['divider' => true]; @@ -250,6 +274,27 @@ public function grid(Request $request, Response $response) 'text' => __('Edit') ); + if ($this->getUser()->featureEnabled('folder.view')) { + // Select Folder + $dataSet->buttons[] = [ + 'id' => 'dataSet_button_selectfolder', + 'url' => $this->urlFor($request, 'dataSet.selectfolder.form', ['id' => $dataSet->dataSetId]), + 'text' => __('Select Folder'), + 'multi-select' => true, + 'dataAttributes' => [ + [ + 'name' => 'commit-url', + 'value' => $this->urlFor($request, 'dataSet.selectfolder', ['id' => $dataSet->dataSetId]) + ], + ['name' => 'commit-method', 'value' => 'put'], + ['name' => 'id', 'value' => 'dataSet_button_selectfolder'], + ['name' => 'text', 'value' => __('Move to Folder')], + ['name' => 'rowtitle', 'value' => $dataSet->dataSet], + ['name' => 'form-callback', 'value' => 'moveFolderMultiSelectFormOpen'] + ] + ]; + } + $dataSet->buttons[] = [ 'id' => 'dataset_button_csv_export', 'linkType' => '_self', 'external' => true, @@ -271,7 +316,10 @@ public function grid(Request $request, Response $response) } } - if ($user->checkDeleteable($dataSet) && $dataSet->isLookup == 0) { + if ($user->checkDeleteable($dataSet) + && $dataSet->isLookup == 0 + && ($dataSet->isRealTime === 0 || $this->getUser()->featureEnabled('dataset.realtime')) + ) { $dataSet->buttons[] = ['divider' => true]; // Delete DataSet $dataSet->buttons[] = [ @@ -335,9 +383,18 @@ public function grid(Request $request, Response $response) */ public function addForm(Request $request, Response $response) { + + // Dispatch an event to initialize list of data sources for data connectors + $event = new DataConnectorSourceRequestEvent(); + $this->getDispatcher()->dispatch($event, DataConnectorSourceRequestEvent::$NAME); + + // Retrieve data connector sources from the event + $dataConnectorSources = $event->getDataConnectorSources(); + $this->getState()->template = 'dataset-form-add'; $this->getState()->setData([ 'dataSets' => $this->dataSetFactory->query(), + 'dataConnectorSources' => $dataConnectorSources, ]); return $this->render($request, $response); @@ -381,6 +438,20 @@ public function addForm(Request $request, Response $response) * required=true * ), * @SWG\Parameter( + * name="isRealTime", + * in="formData", + * description="Is this a real time DataSet?", + * type="integer", + * required=true + * ), + * @SWG\Parameter( + * name="dataConnectorSource", + * in="formData", + * description="Source of the data connector", + * type="string", + * required=true + * ), + * @SWG\Parameter( * name="method", * in="formData", * description="The Request Method GET or POST", @@ -521,6 +592,13 @@ public function addForm(Request $request, Response $response) * required=false * ), * @SWG\Parameter( + * name="dataConnectorScript", + * in="formData", + * description="If isRealTime then provide a script to connect to the data source", + * type="string", + * required=false + * ), + * @SWG\Parameter( * name="folderId", * in="formData", * description="Folder ID to which this object should be assigned to", @@ -556,6 +634,8 @@ public function add(Request $request, Response $response) $dataSet->description = $sanitizedParams->getString('description'); $dataSet->code = $sanitizedParams->getString('code'); $dataSet->isRemote = $sanitizedParams->getCheckbox('isRemote'); + $dataSet->isRealTime = $sanitizedParams->getCheckbox('isRealTime'); + $dataSet->dataConnectorSource = $sanitizedParams->getString('dataConnectorSource'); $dataSet->userId = $this->getUser()->userId; // Folders @@ -642,11 +722,23 @@ public function editForm(Request $request, Response $response, $id) throw new AccessDeniedException(); } + // Dispatch an event to initialize list of data sources for data connectors + $event = new DataConnectorSourceRequestEvent(); + $this->getDispatcher()->dispatch($event, DataConnectorSourceRequestEvent::$NAME); + + // Retrieve data sources from the event + $dataConnectorSources = $event->getDataConnectorSources(); + + // retrieve the columns of the selected dataset + $dataSet->getColumn(); + // Set the form $this->getState()->template = 'dataset-form-edit'; $this->getState()->setData([ 'dataSet' => $dataSet, 'dataSets' => $this->dataSetFactory->query(), + 'script' => $dataSet->getScript(), + 'dataConnectorSources' => $dataConnectorSources ]); return $this->render($request, $response); @@ -706,6 +798,20 @@ public function editForm(Request $request, Response $response, $id) * required=true * ), * @SWG\Parameter( + * name="isRealTime", + * in="formData", + * description="Is this a real time DataSet?", + * type="integer", + * required=true + * ), + * @SWG\Parameter( + * name="dataConnectorSource", + * in="formData", + * description="Source of the data connector", + * type="string", + * required=true + * ), + * @SWG\Parameter( * name="method", * in="formData", * description="The Request Method GET or POST", @@ -846,6 +952,13 @@ public function editForm(Request $request, Response $response, $id) * required=false * ), * @SWG\Parameter( + * name="dataConnectorScript", + * in="formData", + * description="If isRealTime then provide a script to connect to the data source", + * type="string", + * required=false + * ), + * @SWG\Parameter( * name="folderId", * in="formData", * description="Folder ID to which this object should be assigned to", @@ -872,6 +985,8 @@ public function edit(Request $request, Response $response, $id) $dataSet->description = $sanitizedParams->getString('description'); $dataSet->code = $sanitizedParams->getString('code'); $dataSet->isRemote = $sanitizedParams->getCheckbox('isRemote'); + $dataSet->isRealTime = $sanitizedParams->getCheckbox('isRealTime'); + $dataSet->dataConnectorSource = $sanitizedParams->getString('dataConnectorSource'); $dataSet->folderId = $sanitizedParams->getInt('folderId', ['default' => $dataSet->folderId]); if ($dataSet->hasPropertyChanged('folderId')) { @@ -902,7 +1017,9 @@ public function edit(Request $request, Response $response, $id) $dataSet->ignoreFirstRow = $sanitizedParams->getCheckbox('ignoreFirstRow'); $dataSet->rowLimit = $sanitizedParams->getInt('rowLimit'); $dataSet->limitPolicy = $sanitizedParams->getString('limitPolicy') ?? 'stop'; - $dataSet->csvSeparator = ($dataSet->sourceId === 2) ? $sanitizedParams->getString('csvSeparator') ?? ',' : null; + $dataSet->csvSeparator = ($dataSet->sourceId === 2) + ? $sanitizedParams->getString('csvSeparator') ?? ',' + : null; } $dataSet->save(); @@ -917,6 +1034,68 @@ public function edit(Request $request, Response $response, $id) return $this->render($request, $response); } + /** + * Edit DataSet Data Connector + * @param Request $request + * @param Response $response + * @param $id + * @return \Psr\Http\Message\ResponseInterface|Response + * @throws GeneralException + * + * @SWG\Put( + * path="/dataset/dataConnector/{dataSetId}", + * operationId="dataSetDataConnectorEdit", + * tags={"dataset"}, + * summary="Edit DataSet Data Connector", + * description="Edit a DataSet Data Connector", + * @SWG\Parameter( + * name="dataSetId", + * in="path", + * description="The DataSet ID", + * type="integer", + * required=true + * ), + * @SWG\Parameter( + * name="dataConnectorScript", + * in="formData", + * description="If isRealTime then provide a script to connect to the data source", + * type="string", + * required=false + * ), + * @SWG\Response( + * response=200, + * description="successful operation", + * @SWG\Schema(ref="#/definitions/DataSet") + * ) + * ) + */ + public function updateDataConnector(Request $request, Response $response, $id) + { + $dataSet = $this->dataSetFactory->getById($id); + $sanitizedParams = $this->getSanitizer($request->getParams()); + + if (!$this->getUser()->checkEditable($dataSet)) { + throw new AccessDeniedException(); + } + + if ($dataSet->isRealTime === 1) { + // Set the script. + $dataSet->saveScript($sanitizedParams->getParam('dataConnectorScript')); + $dataSet->notify(); + } else { + throw new InvalidArgumentException(__('This DataSet does not have a data connector'), 'isRealTime'); + } + + // Return + $this->getState()->hydrate([ + 'message' => sprintf(__('Edited %s'), $dataSet->dataSet), + 'id' => $dataSet->dataSetId, + 'data' => $dataSet + ]); + + return $this->render($request, $response); + } + /** * DataSet Delete * @param Request $request @@ -1005,6 +1184,107 @@ public function delete(Request $request, Response $response, $id) return $this->render($request, $response); } + /** + * Select Folder Form + * @param Request $request + * @param Response $response + * @param int $id + * @return \Psr\Http\Message\ResponseInterface|Response + * @throws AccessDeniedException + * @throws GeneralException + * @throws NotFoundException + * @throws \Xibo\Support\Exception\ControllerNotImplemented + */ + public function selectFolderForm(Request $request, Response $response, $id) + { + // Get the data set + $dataSet = $this->dataSetFactory->getById($id); + + // Check Permissions + if (!$this->getUser()->checkEditable($dataSet)) { + throw new AccessDeniedException(); + } + + $data = [ + 'dataSet' => $dataSet + ]; + + $this->getState()->template = 'dataset-form-selectfolder'; + $this->getState()->setData($data); + + return $this->render($request, $response); + } + + /** + * @SWG\Put( + * path="/dataset/{id}/selectfolder", + * operationId="dataSetSelectFolder", + * tags={"dataSet"}, + * summary="DataSet Select folder", + * description="Select Folder for DataSet", + * @SWG\Parameter( + * name="menuId", + * in="path", + * description="The DataSet ID", + * type="integer", + * required=true + * ), + * @SWG\Parameter( + * name="folderId", + * in="formData", + * description="Folder ID to which this object should be assigned to", + * type="integer", + * required=true + * ), + * @SWG\Response( + * response=200, + * description="successful operation", + * @SWG\Schema(ref="#/definitions/DataSet") + * ) + * ) + * + * @param Request $request + * @param Response $response + * @param int $id + * @return \Psr\Http\Message\ResponseInterface|Response + * @throws AccessDeniedException + * @throws GeneralException + * @throws InvalidArgumentException + * @throws NotFoundException + * @throws \Xibo\Support\Exception\ControllerNotImplemented + */ + public function selectFolder(Request $request, Response $response, $id) + { + // Get the DataSet + $dataSet = $this->dataSetFactory->getById($id); + + // Check Permissions + if (!$this->getUser()->checkEditable($dataSet)) { + throw new AccessDeniedException(); + } + + $folderId = $this->getSanitizer($request->getParams())->getInt('folderId'); + + if ($folderId === 1) { + $this->checkRootFolderAllowSave(); + } + + $dataSet->folderId = $folderId; + $folder = $this->folderFactory->getById($dataSet->folderId); + $dataSet->permissionsFolderId = ($folder->getPermissionFolderId() == null) ? $folder->id : $folder->getPermissionFolderId(); + + // Save + $dataSet->save(); + + // Return + $this->getState()->hydrate([ + 'httpStatus' => 204, + 'message' => sprintf(__('DataSet %s moved to Folder %s'), $dataSet->dataSet, $folder->text) + ]); + + return $this->render($request, $response); + } + /** * Copy DataSet Form * @param Request $request @@ -1348,28 +1628,33 @@ public function importJson(Request $request, Response $response, $id) // Check unique keys to see if this is an update if (!empty($data['uniqueKeys']) && is_array($data['uniqueKeys'])) { - // Build a filter to select existing records $filter = ''; + $params = []; + $i = 0; foreach ($data['uniqueKeys'] as $uniqueKey) { if (isset($rowToAdd[$uniqueKey])) { - $filter .= 'AND `' . $uniqueKey . '` = \'' . $rowToAdd[$uniqueKey] . '\' '; + $i++; + $filter .= 'AND `' . $uniqueKey . '` = :uniqueKey_' . $i . ' '; + $params['uniqueKey_' . $i] = $rowToAdd[$uniqueKey]; } } $filter = trim($filter, 'AND'); // Use the unique keys to look up this row and see if it exists - $existingRows = $dataSet->getData(['filter' => $filter], ['includeFormulaColumns' => false, 'requireTotal' => false]); + $existingRows = $dataSet->getData( + ['filter' => $filter], + ['includeFormulaColumns' => false, 'requireTotal' => false], + $params, + ); if (count($existingRows) > 0) { foreach ($existingRows as $existingRow) { $dataSet->editRow($existingRow['id'], array_merge($existingRow, $rowToAdd)); } - } - else { + } else { $dataSet->addRow($rowToAdd); } - } else { $dataSet->addRow($rowToAdd); } @@ -1566,4 +1851,135 @@ public function clearCache(Request $request, Response $response, $id) return $this->render($request, $response); } + + /** + * Real-time data script editor + * @param Request $request + * @param Response $response + * @param $id + * @return Response + * @throws GeneralException + */ + public function dataConnectorView(Request $request, Response $response, $id): Response + { + $dataSet = $this->dataSetFactory->getById($id); + + if (!$this->getUser()->checkEditable($dataSet)) { + throw new AccessDeniedException(); + } + + $dataSet->load(); + + if ($dataSet->dataConnectorSource == 'user_defined') { + // retrieve the user defined javascript + $script = $dataSet->getScript(); + } else { + // Dispatch the event to get the script from the connector + $event = new DataConnectorScriptRequestEvent($dataSet); + $this->getDispatcher()->dispatch($event, DataConnectorScriptRequestEvent::$NAME); + $script = $dataSet->getScript(); + } + + $this->getState()->template = 'dataset-data-connector-page'; + $this->getState()->setData([ + 'dataSet' => $dataSet, + 'script' => $script, + ]); + + return $this->render($request, $response); + } + + /** + * Real-time data script test + * @param Request $request + * @param Response $response + * @param $id + * @return Response + * @throws GeneralException + */ + public function dataConnectorTest(Request $request, Response $response, $id): Response + { + $dataSet = $this->dataSetFactory->getById($id); + + if (!$this->getUser()->checkEditable($dataSet)) { + throw new AccessDeniedException(); + } + + $dataSet->load(); + + $this->getState()->template = 'dataset-data-connector-test-page'; + $this->getState()->setData([ + 'dataSet' => $dataSet, + 'script' => $dataSet->getScript(), + ]); + + return $this->render($request, $response); + } + + /** + * Real-time data script test + * @param Request $request + * @param Response $response + * @param $id + * @return Response + * @throws GeneralException + */ + public function dataConnectorRequest(Request $request, Response $response, $id): Response + { + $dataSet = $this->dataSetFactory->getById($id); + + if (!$this->getUser()->checkEditable($dataSet)) { + throw new AccessDeniedException(); + } + + $params = $this->getSanitizer($request->getParams()); + $url = $params->getString('url'); + $method = $params->getString('method', ['default' => 'GET']); + $headers = $params->getArray('headers'); + $body = $params->getArray('body'); + + // Verify that the requested URL appears in the script somewhere. + $script = $dataSet->getScript(); + + if (!Str::contains($script, $url)) { + throw new InvalidArgumentException(__('URL not found in data connector script'), 'url'); + } + + // Make the request + $options = []; + if (is_array($headers)) { + $options['headers'] = $headers; + } + + if ($method === 'GET') { + $options['query'] = $body; + } else { + $options['body'] = $body; + } + + $this->getLog()->debug('dataConnectorRequest: making request with options ' . var_export($options, true)); + + // Use guzzle to make the request + try { + $client = new Client(); + $remoteResponse = $client->request($method, $url, $options); + + // Format the response + $response->getBody()->write($remoteResponse->getBody()->getContents()); + $response = $response->withAddedHeader('Content-Type', $remoteResponse->getHeader('Content-Type')[0]); + $response = $response->withStatus($remoteResponse->getStatusCode()); + } catch (RequestException $exception) { + $this->getLog()->error('dataConnectorRequest: error with request: ' . $exception->getMessage()); + + if ($exception->hasResponse()) { + $remoteResponse = $exception->getResponse(); + $response = $response->withStatus($remoteResponse->getStatusCode()); + $response->getBody()->write($remoteResponse->getBody()->getContents()); + } else { + $response = $response->withStatus(500); + } + } + + return $response; + } } diff --git a/lib/Controller/DataSetData.php b/lib/Controller/DataSetData.php index a25c0c0ec6..94cfbcaaa2 100644 --- a/lib/Controller/DataSetData.php +++ b/lib/Controller/DataSetData.php @@ -1,6 +1,6 @@ getColumn() as $column) { /* @var \Xibo\Entity\DataSetColumn $column */ if ($column->dataSetColumnTypeId == 1) { + $i++; if ($sanitizedParams->getString($column->heading) != null) { - $filter .= 'AND ' . $column->heading . ' LIKE \'%' . $sanitizedParams->getString($column->heading) . '%\' '; + $filter .= 'AND `' . $column->heading . '` LIKE :heading_' . $i . ' '; + $params['heading_' . $i] = '%' . $sanitizedParams->getString($column->heading) . '%'; } } } @@ -146,12 +150,16 @@ public function grid(Request $request, Response $response, $id) $filter = $this->gridRenderFilter(['filter' => $request->getParam('filter', $filter)], $sanitizedParams); try { - $data = $dataSet->getData([ - 'order' => $sorting, - 'start' => $filter['start'], - 'size' => $filter['length'], - 'filter' => $filter['filter'] - ]); + $data = $dataSet->getData( + [ + 'order' => $sorting, + 'start' => $filter['start'], + 'size' => $filter['length'], + 'filter' => $filter['filter'] + ], + [], + $params, + ); } catch (\Exception $e) { $data = ['exception' => __('Error getting DataSet data, failed with following message: ') . $e->getMessage()]; $this->getLog()->error('Error getting DataSet data, failed with following message: ' . $e->getMessage()); diff --git a/lib/Controller/Developer.php b/lib/Controller/Developer.php new file mode 100644 index 0000000000..ba43d13bef --- /dev/null +++ b/lib/Controller/Developer.php @@ -0,0 +1,698 @@ +. + */ +namespace Xibo\Controller; + +use Psr\Http\Message\ResponseInterface; +use Slim\Http\Response as Response; +use Slim\Http\ServerRequest as Request; +use Xibo\Factory\ModuleFactory; +use Xibo\Factory\ModuleTemplateFactory; +use Xibo\Helper\SendFile; +use Xibo\Service\MediaService; +use Xibo\Service\UploadService; +use Xibo\Support\Exception\AccessDeniedException; +use Xibo\Support\Exception\ConfigurationException; +use Xibo\Support\Exception\ControllerNotImplemented; +use Xibo\Support\Exception\GeneralException; +use Xibo\Support\Exception\InvalidArgumentException; +use Xibo\Support\Exception\NotFoundException; + +/** + * Class Module + * @package Xibo\Controller + */ +class Developer extends Base +{ + public function __construct( + private readonly ModuleFactory $moduleFactory, + private readonly ModuleTemplateFactory $moduleTemplateFactory + ) { + } + + /** + * Display the module templates page + * @param Request $request + * @param Response $response + * @return \Slim\Http\Response + * @throws \Xibo\Support\Exception\GeneralException + */ + public function displayTemplatePage(Request $request, Response $response): Response + { + $this->getState()->template = 'developer-template-page'; + + return $this->render($request, $response); + } + + /** + * Show Module templates in a grid + * @param \Slim\Http\ServerRequest $request + * @param \Slim\Http\Response $response + * @return \Slim\Http\Response + * @throws \Xibo\Support\Exception\GeneralException + */ + public function templateGrid(Request $request, Response $response): Response + { + $params = $this->getSanitizer($request->getParams()); + + $templates = $this->moduleTemplateFactory->loadUserTemplates( + $this->gridRenderSort($params), + $this->gridRenderFilter( + [ + 'id' => $params->getInt('id'), + 'templateId' => $params->getString('templateId'), + 'dataType' => $params->getString('dataType'), + ], + $params + ) + ); + + foreach ($templates as $template) { + if ($this->isApi($request)) { + break; + } + + $template->includeProperty('buttons'); + + if ($this->getUser()->checkEditable($template) && + $this->getUser()->featureEnabled('developer.edit') + ) { + // Edit button + $template->buttons[] = [ + 'id' => 'template_button_edit', + 'url' => $this->urlFor($request, 'developer.templates.view.edit', ['id' => $template->id]), + 'text' => __('Edit'), + 'class' => 'XiboRedirectButton', + ]; + + $template->buttons[] = [ + 'id' => 'template_button_export', + 'linkType' => '_self', 'external' => true, + 'url' => $this->urlFor($request, 'developer.templates.export', ['id' => $template->id]), + 'text' => __('Export XML'), + ]; + + $template->buttons[] = [ + 'id' => 'template_button_copy', + 'url' => $this->urlFor($request, 'developer.templates.form.copy', ['id' => $template->id]), + 'text' => __('Copy'), + ]; + } + + if ($this->getUser()->featureEnabled('developer.edit') && + $this->getUser()->checkPermissionsModifyable($template) + ) { + $template->buttons[] = ['divider' => true]; + // Permissions for Module Template + $template->buttons[] = [ + 'id' => 'template_button_permissions', + 'url' => $this->urlFor( + $request, + 'user.permissions.form', + ['entity' => 'ModuleTemplate', 'id' => $template->id] + ), + 'text' => __('Share'), + 'multi-select' => true, + 'dataAttributes' => [ + [ + 'name' => 'commit-url', + 'value' => $this->urlFor( + $request, + 'user.permissions.multi', + ['entity' => 'ModuleTemplate', 'id' => $template->id] + ) + ], + ['name' => 'commit-method', 'value' => 'post'], + ['name' => 'id', 'value' => 'template_button_permissions'], + ['name' => 'text', 'value' => __('Share')], + ['name' => 'rowtitle', 'value' => $template->templateId], + ['name' => 'sort-group', 'value' => 2], + ['name' => 'custom-handler', 'value' => 'XiboMultiSelectPermissionsFormOpen'], + [ + 'name' => 'custom-handler-url', + 'value' => $this->urlFor( + $request, + 'user.permissions.multi.form', + ['entity' => 'ModuleTemplate'] + ) + ], + ['name' => 'content-id-name', 'value' => 'id'] + ] + ]; + } + + if ($this->getUser()->checkDeleteable($template) && + $this->getUser()->featureEnabled('developer.delete') + ) { + $template->buttons[] = ['divider' => true]; + // Delete button + $template->buttons[] = [ + 'id' => 'template_button_delete', + 'url' => $this->urlFor($request, 'developer.templates.form.delete', ['id' => $template->id]), + 'text' => __('Delete'), + 'multi-select' => true, + 'dataAttributes' => [ + [ + 'name' => 'commit-url', + 'value' => $this->urlFor( + $request, + 'developer.templates.delete', + ['id' => $template->id] + ) + ], + ['name' => 'commit-method', 'value' => 'delete'], + ['name' => 'id', 'value' => 'template_button_delete'], + ['name' => 'text', 'value' => __('Delete')], + ['name' => 'sort-group', 'value' => 1], + ['name' => 'rowtitle', 'value' => $template->templateId] + ] + ]; + } + } + + $this->getState()->template = 'grid'; + $this->getState()->recordsTotal = $this->moduleTemplateFactory->countLast(); + $this->getState()->setData($templates); + + return $this->render($request, $response); + } + + /** + * Shows an add form for a module template + * @param Request $request + * @param Response $response + * @return \Slim\Http\Response + * @throws \Xibo\Support\Exception\GeneralException + */ + public function templateAddForm(Request $request, Response $response): Response + { + $this->getState()->template = 'developer-template-form-add'; + return $this->render($request, $response); + } + + /** + * Display the module template page + * @param Request $request + * @param Response $response + * @param mixed $id The template ID to edit. + * @return \Slim\Http\Response + * @throws \Xibo\Support\Exception\GeneralException + */ + public function displayTemplateEditPage(Request $request, Response $response, $id): Response + { + $template = $this->moduleTemplateFactory->getUserTemplateById($id); + if ($template->ownership !== 'user') { + throw new AccessDeniedException(); + } + + $this->getState()->template = 'developer-template-edit-page'; + $this->getState()->setData([ + 'template' => $template, + 'propertiesJSON' => json_encode($template->properties), + ]); + + return $this->render($request, $response); + } + + /** + * Add a module template + * @param Request $request + * @param Response $response + * @return \Slim\Http\Response + * @throws \Xibo\Support\Exception\GeneralException + */ + public function templateAdd(Request $request, Response $response): Response + { + // When adding a template we just save the XML + $params = $this->getSanitizer($request->getParams()); + + $templateId = $params->getString('templateId', ['throw' => function () { + throw new InvalidArgumentException(__('Please supply a unique template ID'), 'templateId'); + }]); + $title = $params->getString('title', ['throw' => function () { + throw new InvalidArgumentException(__('Please supply a title'), 'title'); + }]); + $dataType = $params->getString('dataType', ['throw' => function () { + throw new InvalidArgumentException(__('Please supply a data type'), 'dataType'); + }]); + $showIn = $params->getString('showIn', ['throw' => function () { + throw new InvalidArgumentException( + __('Please select relevant editor which should show this Template'), + 'showIn' + ); + }]); + + // do we have a template selected? + if (!empty($params->getString('copyTemplateId'))) { + // get the selected template + $copyTemplate = $this->moduleTemplateFactory->getByDataTypeAndId( + $dataType, + $params->getString('copyTemplateId') + ); + + // get the template xml and load to document. + $xml = new \DOMDocument(); + $xml->loadXML($copyTemplate->getXml()); + + // get template node, make adjustments from the form + $templateNode = $xml->getElementsByTagName('template')[0]; + $this->setNode($xml, 'id', $templateId, false, $templateNode); + $this->setNode($xml, 'title', $title, false, $templateNode); + $this->setNode($xml, 'showIn', $showIn, false, $templateNode); + + // create template with updated xml. + $template = $this->moduleTemplateFactory->createUserTemplate($xml->saveXML()); + } else { + // The most basic template possible. + $template = $this->moduleTemplateFactory->createUserTemplate(' + '); + } + + $template->ownerId = $this->getUser()->userId; + $template->save(); + + $this->getState()->hydrate([ + 'httpState' => 201, + 'message' => __('Added'), + 'id' => $template->id, + ]); + + return $this->render($request, $response); + } + + /** + * Edit a module template + * @param Request $request + * @param Response $response + * @param $id + * @return Response + * @throws \Xibo\Support\Exception\GeneralException + */ + public function templateEdit(Request $request, Response $response, $id): Response + { + $template = $this->moduleTemplateFactory->getUserTemplateById($id); + + $params = $this->getSanitizer($request->getParams()); + $templateId = $params->getString('templateId', ['throw' => function () { + throw new InvalidArgumentException(__('Please supply a unique template ID'), 'templateId'); + }]); + $title = $params->getString('title', ['throw' => function () { + throw new InvalidArgumentException(__('Please supply a title'), 'title'); + }]); + $dataType = $params->getString('dataType', ['throw' => function () { + throw new InvalidArgumentException(__('Please supply a data type'), 'dataType'); + }]); + $showIn = $params->getString('showIn', ['throw' => function () { + throw new InvalidArgumentException( + __('Please select relevant editor which should show this Template'), + 'showIn' + ); + }]); + + $template->dataType = $dataType; + $template->isEnabled = $params->getCheckbox('enabled'); + + // TODO: validate? + $twig = $params->getParam('twig'); + $hbs = $params->getParam('hbs'); + $style = $params->getParam('style'); + $head = $params->getParam('head'); + $properties = $params->getParam('properties'); + $onTemplateRender = $params->getParam('onTemplateRender'); + $onTemplateVisible = $params->getParam('onTemplateVisible'); + + // We need to edit the XML we have for this template. + $document = $template->getDocument(); + + // Root nodes + $template->templateId = $templateId; + $this->setNode($document, 'id', $templateId, false); + $this->setNode($document, 'title', $title, false); + $this->setNode($document, 'showIn', $showIn, false); + $this->setNode($document, 'dataType', $dataType, false); + $this->setNode($document, 'onTemplateRender', $onTemplateRender); + $this->setNode($document, 'onTemplateVisible', $onTemplateVisible); + + // Stencil nodes. + $stencilNodes = $document->getElementsByTagName('stencil'); + if ($stencilNodes->count() <= 0) { + $stencilNode = $document->createElement('stencil'); + $document->documentElement->appendChild($stencilNode); + } else { + $stencilNode = $stencilNodes[0]; + } + + $this->setNode($document, 'twig', $twig, true, $stencilNode); + $this->setNode($document, 'hbs', $hbs, true, $stencilNode); + $this->setNode($document, 'style', $style, true, $stencilNode); + $this->setNode($document, 'head', $head, true, $stencilNode); + + // Properties. + // this is different because we want to replace the properties node with a new one. + if (!empty($properties)) { + // parse json and create a new properties node + $newPropertiesXml = $this->moduleTemplateFactory->parseJsonPropertiesToXml($properties); + + $propertiesNodes = $document->getElementsByTagName('properties'); + + if ($propertiesNodes->count() <= 0) { + $document->documentElement->appendChild( + $document->importNode($newPropertiesXml->documentElement, true) + ); + } else { + $document->documentElement->replaceChild( + $document->importNode($newPropertiesXml->documentElement, true), + $propertiesNodes[0] + ); + } + } + + // All done. + $template->setXml($document->saveXML()); + $template->save(); + + if ($params->getCheckbox('isInvalidateWidget')) { + $template->invalidate(); + } + + $this->getState()->hydrate([ + 'message' => sprintf(__('Edited %s'), $template->title), + 'id' => $template->id, + ]); + + return $this->render($request, $response); + } + + /** + * Helper function to set a node. + * @param \DOMDocument $document + * @param string $node + * @param string $value + * @param bool $cdata + * @param \DOMElement|null $childNode + * @return void + * @throws \DOMException + */ + private function setNode( + \DOMDocument $document, + string $node, + string $value, + bool $cdata = true, + ?\DOMElement $childNode = null + ): void { + $addTo = $childNode ?? $document->documentElement; + + $nodes = $addTo->getElementsByTagName($node); + if ($nodes->count() <= 0) { + if ($cdata) { + $element = $document->createElement($node); + $cdata = $document->createCDATASection($value); + $element->appendChild($cdata); + } else { + $element = $document->createElement($node, $value); + } + + $addTo->appendChild($element); + } else { + /** @var \DOMElement $element */ + $element = $nodes[0]; + if ($cdata) { + $cdata = $document->createCDATASection($value); + $element->textContent = $value; + + if ($element->firstChild !== null) { + $element->replaceChild($cdata, $element->firstChild); + } else { + //$element->textContent = ''; + $element->appendChild($cdata); + } + } else { + $element->textContent = $value; + } + } + } + + public function getAvailableDataTypes(Request $request, Response $response) + { + $params = $this->getSanitizer($request->getParams()); + $dataTypes = $this->moduleFactory->getAllDataTypes(); + + if ($params->getString('dataType') !== null) { + foreach ($dataTypes as $dataType) { + if ($dataType->id === $params->getString('dataType')) { + $dataTypes = [$dataType]; + } + } + } + + $this->getState()->template = 'grid'; + $this->getState()->recordsTotal = 0; + $this->getState()->setData($dataTypes); + + return $this->render($request, $response); + } + + /** + * Export module template + * @param Request $request + * @param Response $response + * @param $id + * @return ResponseInterface|Response + * @throws AccessDeniedException + * @throws ControllerNotImplemented + * @throws GeneralException + * @throws NotFoundException + */ + public function templateExport(Request $request, Response $response, $id): Response|ResponseInterface + { + $template = $this->moduleTemplateFactory->getUserTemplateById($id); + + if ($template->ownership !== 'user') { + throw new AccessDeniedException(); + } + + $tempFileName = $this->getConfig()->getSetting('LIBRARY_LOCATION') . 'temp/' . $template->templateId . '.xml'; + + $template->getDocument()->save($tempFileName); + + $this->setNoOutput(true); + + return $this->render($request, SendFile::decorateResponse( + $response, + $this->getConfig()->getSetting('SENDFILE_MODE'), + $tempFileName, + $template->templateId . '.xml' + )->withHeader('Content-Type', 'text/xml;charset=utf-8')); + } + + /** + * Import xml file and create module template + * @param Request $request + * @param Response $response + * @return ResponseInterface|Response + * @throws ControllerNotImplemented + * @throws GeneralException + * @throws ConfigurationException + */ + public function templateImport(Request $request, Response $response): Response|ResponseInterface + { + $this->getLog()->debug('Import Module Template'); + + $libraryFolder = $this->getConfig()->getSetting('LIBRARY_LOCATION'); + + // Make sure the library exists + MediaService::ensureLibraryExists($libraryFolder); + + $options = [ + 'upload_dir' => $libraryFolder . 'temp/', + 'accept_file_types' => '/\.xml/i', + 'libraryQuotaFull' => false, + ]; + + $this->getLog()->debug('Hand off to Upload Handler with options: ' . json_encode($options)); + + // Hand off to the Upload Handler provided by jquery-file-upload + $uploadService = new UploadService($libraryFolder . 'temp/', $options, $this->getLog(), $this->getState()); + $uploadHandler = $uploadService->createUploadHandler(); + + $uploadHandler->setPostProcessor(function ($file, $uploadHandler) use ($libraryFolder) { + // Return right away if the file already has an error. + if (!empty($file->error)) { + return $file; + } + + $this->getUser()->isQuotaFullByUser(true); + + $filePath = $libraryFolder . 'temp/' . $file->fileName; + + // load the xml from uploaded file + $xml = new \DOMDocument(); + $xml->load($filePath); + + // Add the Template + $moduleTemplate = $this->moduleTemplateFactory->createUserTemplate($xml->saveXML()); + $moduleTemplate->ownerId = $this->getUser()->userId; + $moduleTemplate->save(); + + // Tidy up the temporary file + @unlink($filePath); + + return $file; + }); + + $uploadHandler->post(); + + $this->setNoOutput(true); + + return $this->render($request, $response); + } + + /** + * Show module template copy form + * @param Request $request + * @param Response $response + * @param $id + * @return Response|ResponseInterface + * @throws AccessDeniedException + * @throws ControllerNotImplemented + * @throws GeneralException + * @throws InvalidArgumentException + * @throws NotFoundException + */ + public function templateCopyForm(Request $request, Response $response, $id): Response|ResponseInterface + { + $moduleTemplate = $this->moduleTemplateFactory->getUserTemplateById($id); + + if (!$this->getUser()->checkViewable($moduleTemplate)) { + throw new AccessDeniedException(); + } + + $this->getState()->template = 'developer-template-form-copy'; + $this->getState()->setData([ + 'template' => $moduleTemplate, + ]); + + return $this->render($request, $response); + } + + /** + * Copy module template + * @param Request $request + * @param Response $response + * @param $id + * @return Response|ResponseInterface + * @throws AccessDeniedException + * @throws ControllerNotImplemented + * @throws GeneralException + * @throws InvalidArgumentException + * @throws NotFoundException + */ + public function templateCopy(Request $request, Response $response, $id): Response|ResponseInterface + { + $moduleTemplate = $this->moduleTemplateFactory->getUserTemplateById($id); + + if (!$this->getUser()->checkViewable($moduleTemplate)) { + throw new AccessDeniedException(); + } + + $params = $this->getSanitizer($request->getParams()); + + $newTemplate = clone $moduleTemplate; + $newTemplate->templateId = $params->getString('templateId'); + $newTemplate->save(); + + // Return + $this->getState()->hydrate([ + 'httpStatus' => 201, + 'message' => sprintf(__('Copied as %s'), $newTemplate->templateId), + 'id' => $newTemplate->id, + 'data' => $newTemplate + ]); + + return $this->render($request, $response); + } + + /** + * Show module template delete form + * @param Request $request + * @param Response $response + * @param $id + * @return Response|ResponseInterface + * @throws AccessDeniedException + * @throws ControllerNotImplemented + * @throws GeneralException + * @throws InvalidArgumentException + * @throws NotFoundException + */ + public function templateDeleteForm(Request $request, Response $response, $id): Response|ResponseInterface + { + $moduleTemplate = $this->moduleTemplateFactory->getUserTemplateById($id); + + if (!$this->getUser()->checkDeleteable($moduleTemplate)) { + throw new AccessDeniedException(); + } + + $this->getState()->template = 'developer-template-form-delete'; + $this->getState()->setData([ + 'template' => $moduleTemplate, + ]); + + return $this->render($request, $response); + } + + /** + * Delete module template + * @param Request $request + * @param Response $response + * @param $id + * @return Response|ResponseInterface + * @throws AccessDeniedException + * @throws ControllerNotImplemented + * @throws GeneralException + * @throws InvalidArgumentException + * @throws NotFoundException + */ + public function templateDelete(Request $request, Response $response, $id): Response|ResponseInterface + { + $moduleTemplate = $this->moduleTemplateFactory->getUserTemplateById($id); + + if (!$this->getUser()->checkDeleteable($moduleTemplate)) { + throw new AccessDeniedException(); + } + + $moduleTemplate->delete(); + + // Return + $this->getState()->hydrate([ + 'httpStatus' => 204, + 'message' => sprintf(__('Deleted %s'), $moduleTemplate->templateId) + ]); + + return $this->render($request, $response); + } +} diff --git a/lib/Controller/Display.php b/lib/Controller/Display.php index 3ba8d1ec52..2c6f0911e5 100644 --- a/lib/Controller/Display.php +++ b/lib/Controller/Display.php @@ -504,6 +504,7 @@ public function getFilters(SanitizerInterface $parsedQueryParams): array 'syncGroupIdMembers' => $parsedQueryParams->getInt('syncGroupIdMembers'), 'xmrRegistered' => $parsedQueryParams->getInt('xmrRegistered'), 'isPlayerSupported' => $parsedQueryParams->getInt('isPlayerSupported'), + 'displayGroupIds' => $parsedQueryParams->getIntArray('displayGroupIds'), ]; } @@ -1004,33 +1005,36 @@ public function grid(Request $request, Response $response) ); } - if ($this->getUser()->featureEnabled('displays.modify') - && $this->getUser()->checkEditable($display) + // Check if limited view access is allowed + if (($this->getUser()->featureEnabled('displays.modify') && $this->getUser()->checkEditable($display)) + || $this->getUser()->featureEnabled('displays.limitedView') ) { - if ($this->getUser()->featureEnabled('layout.view')) { - $display->buttons[] = [ - 'id' => 'display_button_layouts_jump', - 'linkType' => '_self', - 'external' => true, - 'url' => $this->urlFor($request, 'layout.view') - . '?activeDisplayGroupId=' . $display->displayGroupId, - 'text' => __('Jump to Scheduled Layouts') - ]; - } + if ($this->getUser()->checkEditable($display)) { + if ($this->getUser()->featureEnabled('layout.view')) { + $display->buttons[] = [ + 'id' => 'display_button_layouts_jump', + 'linkType' => '_self', + 'external' => true, + 'url' => $this->urlFor($request, 'layout.view') + . '?activeDisplayGroupId=' . $display->displayGroupId, + 'text' => __('Jump to Scheduled Layouts') + ]; + } - // File Associations - $display->buttons[] = array( - 'id' => 'displaygroup_button_fileassociations', - 'url' => $this->urlFor($request, 'displayGroup.media.form', ['id' => $display->displayGroupId]), - 'text' => __('Assign Files') - ); + // File Associations + $display->buttons[] = array( + 'id' => 'displaygroup_button_fileassociations', + 'url' => $this->urlFor($request, 'displayGroup.media.form', ['id' => $display->displayGroupId]), + 'text' => __('Assign Files') + ); - // Layout Assignments - $display->buttons[] = array( - 'id' => 'displaygroup_button_layout_associations', - 'url' => $this->urlFor($request, 'displayGroup.layout.form', ['id' => $display->displayGroupId]), - 'text' => __('Assign Layouts') - ); + // Layout Assignments + $display->buttons[] = array( + 'id' => 'displaygroup_button_layout_associations', + 'url' => $this->urlFor($request, 'displayGroup.layout.form', ['id' => $display->displayGroupId]), + 'text' => __('Assign Layouts') + ); + } // Screen Shot $display->buttons[] = [ @@ -1084,43 +1088,45 @@ public function grid(Request $request, Response $response) ] ]; - // Trigger webhook - $display->buttons[] = [ - 'id' => 'display_button_trigger_webhook', - 'url' => $this->urlFor( - $request, - 'displayGroup.trigger.webhook.form', - ['id' => $display->displayGroupId] - ), - 'text' => __('Trigger a web hook'), - 'multi-select' => true, - 'dataAttributes' => [ - [ - 'name' => 'commit-url', - 'value' => $this->urlFor( - $request, - 'displayGroup.action.trigger.webhook', - ['id' => $display->displayGroupId] - ) - ], - ['name' => 'commit-method', 'value' => 'post'], - ['name' => 'id', 'value' => 'display_button_trigger_webhook'], - ['name' => 'sort-group', 'value' => 3], - ['name' => 'text', 'value' => __('Trigger a web hook')], - ['name' => 'rowtitle', 'value' => $display->display], - ['name' => 'form-callback', 'value' => 'triggerWebhookMultiSelectFormOpen'] - ] - ]; - - if ($this->getUser()->isSuperAdmin()) { + if ($this->getUser()->checkEditable($display)) { + // Trigger webhook $display->buttons[] = [ - 'id' => 'display_button_purgeAll', - 'url' => $this->urlFor($request, 'display.purge.all.form', ['id' => $display->displayId]), - 'text' => __('Purge All') + 'id' => 'display_button_trigger_webhook', + 'url' => $this->urlFor( + $request, + 'displayGroup.trigger.webhook.form', + ['id' => $display->displayGroupId] + ), + 'text' => __('Trigger a web hook'), + 'multi-select' => true, + 'dataAttributes' => [ + [ + 'name' => 'commit-url', + 'value' => $this->urlFor( + $request, + 'displayGroup.action.trigger.webhook', + ['id' => $display->displayGroupId] + ) + ], + ['name' => 'commit-method', 'value' => 'post'], + ['name' => 'id', 'value' => 'display_button_trigger_webhook'], + ['name' => 'sort-group', 'value' => 3], + ['name' => 'text', 'value' => __('Trigger a web hook')], + ['name' => 'rowtitle', 'value' => $display->display], + ['name' => 'form-callback', 'value' => 'triggerWebhookMultiSelectFormOpen'] + ] ]; - } - $display->buttons[] = ['divider' => true]; + if ($this->getUser()->isSuperAdmin()) { + $display->buttons[] = [ + 'id' => 'display_button_purgeAll', + 'url' => $this->urlFor($request, 'display.purge.all.form', ['id' => $display->displayId]), + 'text' => __('Purge All') + ]; + } + + $display->buttons[] = ['divider' => true]; + } } if ($this->getUser()->featureEnabled('displays.modify') @@ -1377,10 +1383,19 @@ function editForm(Request $request, Response $response, $id) : null; $display->setUnmatchedProperty('auditingUntilIso', $auditingUntilIso); + // display profile dates + $displayProfile = $display->getDisplayProfile(); + // Get the settings from the profile $profile = $display->getSettings(); $displayTypes = $this->displayTypeFactory->query(); + $elevateLogsUntil = $displayProfile->getSetting('elevateLogsUntil'); + $elevateLogsUntilIso = !empty($elevateLogsUntil) + ? Carbon::createFromTimestamp($elevateLogsUntil)->format(DateFormatHelper::getSystemFormat()) + : null; + $displayProfile->setUnmatchedProperty('elevateLogsUntilIso', $elevateLogsUntilIso); + // Get a list of timezones $timeZones = []; foreach (DateFormatHelper::timezoneList() as $key => $value) { @@ -1450,7 +1465,7 @@ function editForm(Request $request, Response $response, $id) $this->getState()->template = 'display-form-edit'; $this->getState()->setData([ 'display' => $display, - 'displayProfile' => $display->getDisplayProfile(), + 'displayProfile' => $displayProfile, 'lockOptions' => json_decode($display->getDisplayProfile()->getSetting('lockOptions', '[]'), true), 'layouts' => $layouts, 'profiles' => $this->displayProfileFactory->query(null, array('type' => $display->clientType)), @@ -2177,7 +2192,8 @@ public function screenShot(Request $request, Response $response, $id) { $display = $this->displayFactory->getById($id); - if (!$this->getUser()->checkViewable($display)) { + // Allow limited view access + if (!$this->getUser()->checkViewable($display) && !$this->getUser()->featureEnabled('displays.limitedView')) { throw new AccessDeniedException(); } @@ -2237,7 +2253,8 @@ public function requestScreenShotForm(Request $request, Response $response, $id) { $display = $this->displayFactory->getById($id); - if (!$this->getUser()->checkViewable($display)) { + // Allow limited view access + if (!$this->getUser()->checkViewable($display) && !$this->getUser()->featureEnabled('displays.limitedView')) { throw new AccessDeniedException(); } @@ -2295,7 +2312,8 @@ public function requestScreenShot(Request $request, Response $response, $id) { $display = $this->displayFactory->getById($id); - if (!$this->getUser()->checkViewable($display)) { + // Allow limited view access + if (!$this->getUser()->checkViewable($display) && !$this->getUser()->featureEnabled('displays.limitedView')) { throw new AccessDeniedException(); } @@ -2463,6 +2481,8 @@ public function validateDisplays($displays) $event = $this->displayEventFactory->createEmpty(); $event->displayId = $display->displayId; $event->start = $display->lastAccessed; + // eventTypeId 1 is for Display up/down events. + $event->eventTypeId = 1; $event->save(); } @@ -2534,7 +2554,8 @@ public function validateDisplays($displays) $notification = $this->notificationFactory->createSystemNotification( $subject, $body, - Carbon::now() + Carbon::now(), + 'display' ); // Add in any displayNotificationGroups, with permissions diff --git a/lib/Controller/DisplayGroup.php b/lib/Controller/DisplayGroup.php index 370de447e0..7de67df679 100644 --- a/lib/Controller/DisplayGroup.php +++ b/lib/Controller/DisplayGroup.php @@ -1,6 +1,6 @@ $parsedQueryParams->getInt('displayGroupId'), + 'displayGroupIds' => $parsedQueryParams->getIntArray('displayGroupIds'), 'displayGroup' => $parsedQueryParams->getString('displayGroup'), 'useRegexForName' => $parsedQueryParams->getCheckbox('useRegexForName'), 'displayId' => $parsedQueryParams->getInt('displayId'), @@ -394,11 +399,11 @@ public function grid(Request $request, Response $response) ]; } - $group->buttons[] = ['divider' => true]; - if ($this->getUser()->featureEnabled('displaygroup.modify') && $this->getUser()->checkEditable($group) ) { + $group->buttons[] = ['divider' => true]; + // File Associations $group->buttons[] = [ 'id' => 'displaygroup_button_fileassociations', @@ -455,11 +460,16 @@ public function grid(Request $request, Response $response) ]; } - if ($this->getUser()->featureEnabled('displaygroup.modify') - && $this->getUser()->checkEditable($group) + // Check if limited view access is allowed + if (($this->getUser()->featureEnabled('displaygroup.modify') && $this->getUser()->checkEditable($group)) + || $this->getUser()->featureEnabled('displaygroup.limitedView') ) { - $group->buttons[] = ['divider' => true]; + if ($this->getUser()->checkEditable($group)) { + $group->buttons[] = ['divider' => true]; + } + + // Send command $group->buttons[] = [ 'id' => 'displaygroup_button_command', 'url' => $this->urlFor($request, 'displayGroup.command.form', ['id' => $group->displayGroupId]), @@ -483,6 +493,7 @@ public function grid(Request $request, Response $response) ] ]; + // Collect Now $group->buttons[] = [ 'id' => 'displaygroup_button_collectNow', 'url' => $this->urlFor($request, 'displayGroup.collectNow.form', ['id' => $group->displayGroupId]), @@ -500,32 +511,34 @@ public function grid(Request $request, Response $response) ] ]; - // Trigger webhook - $group->buttons[] = [ - 'id' => 'displaygroup_button_trigger_webhook', - 'url' => $this->urlFor( - $request, - 'displayGroup.trigger.webhook.form', - ['id' => $group->displayGroupId] - ), - 'text' => __('Trigger a web hook'), - 'multi-select' => true, - 'dataAttributes' => [ - [ - 'name' => 'commit-url', - 'value' => $this->urlFor( - $request, - 'displayGroup.action.trigger.webhook', - ['id' => $group->displayGroupId] - ) - ], - ['name' => 'commit-method', 'value' => 'post'], - ['name' => 'id', 'value' => 'displaygroup_button_trigger_webhook'], - ['name' => 'text', 'value' => __('Trigger a web hook')], - ['name' => 'rowtitle', 'value' => $group->displayGroup], - ['name' => 'form-callback', 'value' => 'triggerWebhookMultiSelectFormOpen'] - ] - ]; + if ($this->getUser()->checkEditable($group)) { + // Trigger webhook + $group->buttons[] = [ + 'id' => 'displaygroup_button_trigger_webhook', + 'url' => $this->urlFor( + $request, + 'displayGroup.trigger.webhook.form', + ['id' => $group->displayGroupId] + ), + 'text' => __('Trigger a web hook'), + 'multi-select' => true, + 'dataAttributes' => [ + [ + 'name' => 'commit-url', + 'value' => $this->urlFor( + $request, + 'displayGroup.action.trigger.webhook', + ['id' => $group->displayGroupId] + ) + ], + ['name' => 'commit-method', 'value' => 'post'], + ['name' => 'id', 'value' => 'displaygroup_button_trigger_webhook'], + ['name' => 'text', 'value' => __('Trigger a web hook')], + ['name' => 'rowtitle', 'value' => $group->displayGroup], + ['name' => 'form-callback', 'value' => 'triggerWebhookMultiSelectFormOpen'] + ] + ]; + } } } @@ -1944,7 +1957,12 @@ public function collectNowForm(Request $request, Response $response, $id) { $displayGroup = $this->displayGroupFactory->getById($id); - if (!$this->getUser()->checkEditable($displayGroup)) { + // Non-destructive edit-only feature; allow limited view access + if ( + !$this->getUser()->checkEditable($displayGroup) + && !$this->getUser()->featureEnabled('displays.limitedView') + && !$this->getUser()->featureEnabled('displaygroup.limitedView') + ) { throw new AccessDeniedException(); } @@ -1990,7 +2008,12 @@ public function collectNow(Request $request, Response $response, $id) { $displayGroup = $this->displayGroupFactory->getById($id); - if (!$this->getUser()->checkEditable($displayGroup)) { + // Non-destructive edit-only feature; allow limited view access + if ( + !$this->getUser()->checkEditable($displayGroup) + && !$this->getUser()->featureEnabled('displays.limitedView') + && !$this->getUser()->featureEnabled('displaygroup.limitedView') + ) { throw new AccessDeniedException(); } @@ -2418,7 +2441,11 @@ public function commandForm(Request $request, Response $response, $id) { $displayGroup = $this->displayGroupFactory->getById($id); - if (!$this->getUser()->checkEditable($displayGroup)) { + // Non-destructive edit-only feature; allow limited view access + if ( + !$this->getUser()->checkEditable($displayGroup) + && !$this->getUser()->featureEnabled('displaygroup.limitedView') + ) { throw new AccessDeniedException(); } @@ -2479,7 +2506,11 @@ public function command(Request $request, Response $response, $id) $displayGroup = $this->displayGroupFactory->getById($id); $sanitizedParams = $this->getSanitizer($request->getParams()); - if (!$this->getUser()->checkEditable($displayGroup)) { + // Non-destructive edit-only feature; allow limited view access + if ( + !$this->getUser()->checkEditable($displayGroup) + && !$this->getUser()->featureEnabled('displaygroup.limitedView') + ) { throw new AccessDeniedException(); } @@ -2870,4 +2901,109 @@ public function triggerWebhook(Request $request, Response $response, $id) return $this->render($request, $response); } + + /** + * @SWG\Post( + * path="/displaygroup/criteria[/{displayGroupId}]", + * operationId="ScheduleCriteriaUpdate", + * tags={"displayGroup"}, + * summary="Action: Push Criteria Update", + * description="Send criteria updates to the specified DisplayGroup or to all displays if displayGroupId is not + * provided.", + * @SWG\Parameter( + * name="displayGroupId", + * in="path", + * description="The display group id", + * type="integer", + * required=true + * ), + * @SWG\Parameter( + * name="criteriaUpdates", + * in="body", + * description="The criteria updates to send to the Player", + * required=true, + * @SWG\Schema( + * type="array", + * @SWG\Items( + * type="object", + * @SWG\Property(property="metric", type="string"), + * @SWG\Property(property="value", type="string"), + * @SWG\Property(property="ttl", type="integer") + * ) + * ) + * ), + * @SWG\Response( + * response=204, + * description="Successful operation" + * ), + * @SWG\Response( + * response=400, + * description="Invalid criteria format" + * ) + * ) + * + * @param Request $request + * @param Response $response + * @param int $displayGroupId + * @return ResponseInterface|Response + * @throws ControllerNotImplemented + * @throws GeneralException + * @throws NotFoundException + * @throws PlayerActionException + */ + public function pushCriteriaUpdate(Request $request, Response $response, int $displayGroupId): Response|ResponseInterface + { + $sanitizedParams = $this->getSanitizer($request->getParams()); + + // Get criteria updates + $criteriaUpdates = $sanitizedParams->getArray('criteriaUpdates'); + + // ensure criteria updates exists + if (empty($criteriaUpdates)) { + throw new InvalidArgumentException(__('No criteria found.'), 'criteriaUpdates'); + } + + // Initialize array to hold sanitized criteria updates + $sanitizedCriteriaUpdates = []; + + // Loop through each criterion and sanitize the input + foreach ($criteriaUpdates as $criteria) { + $criteriaSanitizer = $this->getSanitizer($criteria); + + // Sanitize and retrieve the metric, value, and ttl + $metric = $criteriaSanitizer->getString('metric'); + $value = $criteriaSanitizer->getString('value'); + $ttl = $criteriaSanitizer->getInt('ttl'); + + // Ensure each criterion has metric, value, and ttl + if (empty($metric) || empty($value) || !isset($ttl)) { + // Throw an exception if any of the required fields are missing or empty + throw new PlayerActionException( + __('Invalid criteria format. Metric, value, and ttl must all be present and not empty.') + ); + } + + // Add sanitized criteria + $sanitizedCriteriaUpdates[] = [ + 'metric' => $metric, + 'value' => $value, + 'ttl' => abs($ttl) + ]; + } + + // Create and send the player action to displays under the display group + $this->playerAction->sendAction( + $this->displayFactory->getByDisplayGroupId($displayGroupId), + (new ScheduleCriteriaUpdateAction())->setCriteriaUpdates($sanitizedCriteriaUpdates) + ); + + // Return + $this->getState()->hydrate([ + 'httpStatus' => 204, + 'message' => __('Schedule criteria updates sent to players.'), + 'id' => $displayGroupId + ]); + + return $this->render($request, $response); + } } diff --git a/lib/Controller/DisplayProfile.php b/lib/Controller/DisplayProfile.php index fa09978ea6..3d27d9a93a 100644 --- a/lib/Controller/DisplayProfile.php +++ b/lib/Controller/DisplayProfile.php @@ -1,6 +1,6 @@ getSetting('elevateLogsUntil'); + $elevateLogsUntilIso = !empty($elevateLogsUntil) + ? Carbon::createFromTimestamp($elevateLogsUntil)->format(DateFormatHelper::getSystemFormat()) + : null; + $displayProfile->setUnmatchedProperty('elevateLogsUntilIso', $elevateLogsUntilIso); + $this->getState()->template = 'displayprofile-form-edit'; $this->getState()->setData([ 'displayProfile' => $displayProfile, @@ -457,6 +466,7 @@ public function edit(Request $request, Response $response, $id) // Set and assign the command $command->commandString = $parsedParams->getString('commandString_' . $command->commandId); $command->validationString = $parsedParams->getString('validationString_' . $command->commandId); + $command->createAlertOn = $parsedParams->getString('createAlertOn_' . $command->commandId); $displayProfile->assignCommand($command); } else { diff --git a/lib/Controller/DisplayProfileConfigFields.php b/lib/Controller/DisplayProfileConfigFields.php index d6c28b558c..d59a40bb74 100644 --- a/lib/Controller/DisplayProfileConfigFields.php +++ b/lib/Controller/DisplayProfileConfigFields.php @@ -120,6 +120,23 @@ public function editConfigFields($displayProfile, $sanitizedParams, $config = nu $displayProfile->setSetting('logLevel', $sanitizedParams->getString('logLevel'), $ownConfig, $config); } + if ($sanitizedParams->hasParam('elevateLogsUntil')) { + $this->handleChangedSettings( + 'elevateLogsUntil', + ($ownConfig) + ? $displayProfile->getSetting('elevateLogsUntil') + : $display->getSetting('elevateLogsUntil'), + $sanitizedParams->getDate('elevateLogsUntil')?->format('U'), + $changedSettings + ); + $displayProfile->setSetting( + 'elevateLogsUntil', + $sanitizedParams->getDate('elevateLogsUntil')?->format('U'), + $ownConfig, + $config + ); + } + if ($sanitizedParams->hasParam('versionMediaId')) { $this->handleChangedSettings('versionMediaId', ($ownConfig) ? $displayProfile->getSetting('versionMediaId') : $display->getSetting('versionMediaId'), $sanitizedParams->getInt('versionMediaId'), $changedSettings); $displayProfile->setSetting('versionMediaId', $sanitizedParams->getInt('versionMediaId'), $ownConfig, $config); @@ -356,6 +373,23 @@ public function editConfigFields($displayProfile, $sanitizedParams, $config = nu $displayProfile->setSetting('logLevel', $sanitizedParams->getString('logLevel'), $ownConfig, $config); } + if ($sanitizedParams->hasParam('elevateLogsUntil')) { + $this->handleChangedSettings( + 'elevateLogsUntil', + ($ownConfig) + ? $displayProfile->getSetting('elevateLogsUntil') + : $display->getSetting('elevateLogsUntil'), + $sanitizedParams->getDate('elevateLogsUntil')?->format('U'), + $changedSettings + ); + $displayProfile->setSetting( + 'elevateLogsUntil', + $sanitizedParams->getDate('elevateLogsUntil')?->format('U'), + $ownConfig, + $config + ); + } + if ($sanitizedParams->hasParam('logToDiskLocation')){ $this->handleChangedSettings('logToDiskLocation', ($ownConfig) ? $displayProfile->getSetting('logToDiskLocation') : $display->getSetting('logToDiskLocation'), $sanitizedParams->getString('logToDiskLocation'), $changedSettings); $displayProfile->setSetting('logToDiskLocation', $sanitizedParams->getString('logToDiskLocation'), $ownConfig, $config); @@ -524,6 +558,23 @@ public function editConfigFields($displayProfile, $sanitizedParams, $config = nu $displayProfile->setSetting('logLevel', $sanitizedParams->getString('logLevel'), $ownConfig, $config); } + if ($sanitizedParams->hasParam('elevateLogsUntil')) { + $this->handleChangedSettings( + 'elevateLogsUntil', + ($ownConfig) + ? $displayProfile->getSetting('elevateLogsUntil') + : $display->getSetting('elevateLogsUntil'), + $sanitizedParams->getDate('elevateLogsUntil')?->format('U'), + $changedSettings + ); + $displayProfile->setSetting( + 'elevateLogsUntil', + $sanitizedParams->getDate('elevateLogsUntil')?->format('U'), + $ownConfig, + $config + ); + } + if ($sanitizedParams->hasParam('enableShellCommands')) { $this->handleChangedSettings('enableShellCommands',($ownConfig) ? $displayProfile->getSetting('enableShellCommands') : $display->getSetting('enableShellCommands'), $sanitizedParams->getCheckbox('enableShellCommands'), $changedSettings); $displayProfile->setSetting('enableShellCommands', $sanitizedParams->getCheckbox('enableShellCommands'), $ownConfig, $config); @@ -649,6 +700,23 @@ public function editConfigFields($displayProfile, $sanitizedParams, $config = nu $displayProfile->setSetting('logLevel', $sanitizedParams->getString('logLevel'), $ownConfig, $config); } + if ($sanitizedParams->hasParam('elevateLogsUntil')) { + $this->handleChangedSettings( + 'elevateLogsUntil', + ($ownConfig) + ? $displayProfile->getSetting('elevateLogsUntil') + : $display->getSetting('elevateLogsUntil'), + $sanitizedParams->getDate('elevateLogsUntil')?->format('U'), + $changedSettings + ); + $displayProfile->setSetting( + 'elevateLogsUntil', + $sanitizedParams->getDate('elevateLogsUntil')?->format('U'), + $ownConfig, + $config + ); + } + if ($sanitizedParams->hasParam('versionMediaId')) { $this->handleChangedSettings('versionMediaId', ($ownConfig) ? $displayProfile->getSetting('versionMediaId') : $display->getSetting('versionMediaId'), $sanitizedParams->getInt('versionMediaId'), $changedSettings); $displayProfile->setSetting('versionMediaId', $sanitizedParams->getInt('versionMediaId'), $ownConfig, $config); diff --git a/lib/Controller/Fault.php b/lib/Controller/Fault.php index ac2b8b3357..61667649dc 100644 --- a/lib/Controller/Fault.php +++ b/lib/Controller/Fault.php @@ -1,8 +1,8 @@ getUri() . $request->getUri()->getPath(); @@ -85,7 +85,7 @@ function displayPage(Request $request, Response $response) $this->getState()->template = 'fault-page'; $this->getState()->setData($data); - return $this->render($request,$response); + return $this->render($request, $response); } /** @@ -117,7 +117,13 @@ public function collect(Request $request, Response $response) $outputDisplays = $sanitizedParams->getCheckbox('outputDisplays') == 1; $outputDisplayProfile = $sanitizedParams->getCheckbox('outputDisplayProfile') == 1; - if (!$outputVersion && !$outputLog && !$outputEnvCheck && !$outputSettings && !$outputDisplays && !$outputDisplayProfile) { + if (!$outputVersion && + !$outputLog && + !$outputEnvCheck && + !$outputSettings && + !$outputDisplays && + !$outputDisplayProfile + ) { throw new InvalidArgumentException(__('Please select at least one option')); } @@ -136,12 +142,41 @@ public function collect(Request $request, Response $response) if ($outputLog) { $tempLogFile = $this->getConfig()->getSetting('LIBRARY_LOCATION') . 'temp/log_' . Random::generateString(); $out = fopen($tempLogFile, 'w'); - fputcsv($out, ['logId', 'runNo', 'logDate', 'channel', 'page', 'function', 'message', 'display.display', 'type']); - + fputcsv( + $out, + [ + 'logId', + 'runNo', + 'logDate', + 'channel', + 'page', + 'function', + 'message', + 'display.display', + 'type', + 'sessionHistoryId' + ] + ); + + $fromDt = Carbon::now()->subSeconds(60 * 10)->format('U'); // Do some post processing - foreach ($this->logFactory->query(['logId'], ['fromDt' => (Carbon::now()->subSeconds(60 * 10)->format('U'))]) as $row) { + foreach ($this->logFactory->query(['logId'], ['fromDt' => $fromDt]) as $row) { /* @var \Xibo\Entity\LogEntry $row */ - fputcsv($out, [$row->logId, $row->runNo, $row->logDate, $row->channel, $row->page, $row->function, $row->message, $row->display, $row->type]); + fputcsv( + $out, + [ + $row->logId, + $row->runNo, + $row->logDate, + $row->channel, + $row->page, + $row->function, + $row->message, + $row->display, + $row->type, + $row->sessionHistoryId + ] + ); } fclose($out); @@ -159,24 +194,23 @@ public function collect(Request $request, Response $response) // Output Settings if ($outputSettings) { - $zip->addFromString('settings.json', json_encode(array_map(function($element) { + $zip->addFromString('settings.json', json_encode(array_map(function ($element) { return [$element['setting'] => $element['value']]; }, $this->store->select('SELECT setting, `value` FROM `setting`', [])), JSON_PRETTY_PRINT)); } // Output Displays if ($outputDisplays) { - $displays = $this->displayFactory->query(['display']); // Output Profiles if ($outputDisplayProfile) { foreach ($displays as $display) { /** @var \Xibo\Entity\Display $display */ - $display->settingProfile = array_map(function ($element) { + $display->setUnmatchedProperty('settingProfile', array_map(function ($element) { unset($element['helpText']); return $element; - }, $display->getSettings()); + }, $display->getSettings())); } } diff --git a/lib/Controller/Folder.php b/lib/Controller/Folder.php index 9a0231d74f..0d1fdf03e6 100644 --- a/lib/Controller/Folder.php +++ b/lib/Controller/Folder.php @@ -97,6 +97,13 @@ public function displayPage(Request $request, Response $response) * type="string", * required=false * ), + * @SWG\Parameter( + * name="exactFolderName", + * in="query", + * description="Use with gridView, Filter by exact Folder name match", + * type="integer", + * required=false + * ), * @SWG\Response( * response=200, * description="successful operation", @@ -118,6 +125,7 @@ public function grid(Request $request, Response $response, $folderId = null) $folders = $this->folderFactory->query($this->gridRenderSort($params), $this->gridRenderFilter([ 'folderName' => $params->getString('folderName'), 'folderId' => $params->getInt('folderId'), + 'exactFolderName' => $params->getInt('exactFolderName'), ], $params)); $this->getState()->template = 'grid'; diff --git a/lib/Controller/Layout.php b/lib/Controller/Layout.php index 7a63d92ce4..f6f627b50f 100644 --- a/lib/Controller/Layout.php +++ b/lib/Controller/Layout.php @@ -45,6 +45,7 @@ use Xibo\Factory\TagFactory; use Xibo\Factory\UserFactory; use Xibo\Factory\UserGroupFactory; +use Xibo\Factory\WidgetDataFactory; use Xibo\Factory\WidgetFactory; use Xibo\Helper\DateFormatHelper; use Xibo\Helper\Environment; @@ -154,6 +155,7 @@ public function __construct( $pool, MediaServiceInterface $mediaService, WidgetFactory $widgetFactory, + private readonly WidgetDataFactory $widgetDataFactory, PlaylistFactory $playlistFactory, ) { $this->session = $session; @@ -239,7 +241,7 @@ public function displayDesigner(Request $request, Response $response, $id) $resolution = $this->resolutionFactory->getByDimensions($layout->width, $layout->height); } } catch (NotFoundException $notFoundException) { - $this->getLog()->info('Layout Designer with an unknown resolution, we will create it with name: ' . $layout->width . ' x ' . $layout->height); + $this->getLog()->info('Layout Editor with an unknown resolution, we will create it with name: ' . $layout->width . ' x ' . $layout->height); $resolution = $this->resolutionFactory->create($layout->width . ' x ' . $layout->height, (int)$layout->width, (int)$layout->height); $resolution->userId = $this->userFactory->getSystemUser()->userId; @@ -877,12 +879,33 @@ public function applyTemplate(Request $request, Response $response, $id): Respon $this->getDataSetFactory(), '', $this->mediaService, - $layout->folderId + $layout->folderId, + false, ); $template->managePlaylistClosureTable(); $template->manageActions(); + // Handle widget data + $fallback = $layout->getUnmatchedProperty('fallback'); + if ($fallback !== null) { + foreach ($layout->getAllWidgets() as $widget) { + // Did this widget have fallback data included in its export? + if (array_key_exists($widget->tempWidgetId, $fallback)) { + foreach ($fallback[$widget->tempWidgetId] as $item) { + // We create the widget data with the new widgetId + $this->widgetDataFactory + ->create( + $widget->widgetId, + $item['data'] ?? [], + intval($item['displayOrder'] ?? 1), + ) + ->save(); + } + } + } + } + @unlink($event->getFilePath()); } else { $templateId = $sanitizedParams->getInt('templateId'); @@ -1493,6 +1516,7 @@ public function grid(Request $request, Response $response) } $widget->setUnmatchedProperty('moduleName', $module->name); + $widget->setUnmatchedProperty('moduleDataType', $module->dataType); if ($module->regionSpecific == 0) { // Use the media assigned to this widget @@ -1699,7 +1723,8 @@ public function grid(Request $request, Response $response) 'id' => 'layout_button_preview', 'external' => true, 'url' => '#', - 'onclick' => 'createMiniLayoutPreview("' . $this->urlFor($request, 'layout.preview', ['id' => $layout->layoutId]) . '");', + 'onclick' => 'createMiniLayoutPreview', + 'onclickParam' => $this->urlFor($request, 'layout.preview', ['id' => $layout->layoutId]), 'text' => __('Preview Layout') ); @@ -1709,7 +1734,8 @@ public function grid(Request $request, Response $response) 'id' => 'layout_button_preview_draft', 'external' => true, 'url' => '#', - 'onclick' => 'createMiniLayoutPreview("' . $this->urlFor($request, 'layout.preview', ['id' => $layout->layoutId]) . '?isPreviewDraft=true");', + 'onclick' => 'createMiniLayoutPreview', + 'onclickParam' => $this->urlFor($request, 'layout.preview', ['id' => $layout->layoutId]) . '?isPreviewDraft=true', 'text' => __('Preview Draft Layout') ); } @@ -2496,7 +2522,15 @@ public function export(Request $request, Response $response, $id) } $fileName = $this->getConfig()->getSetting('LIBRARY_LOCATION') . 'temp/' . $saveAs . '.zip'; - $layout->toZip($this->dataSetFactory, $fileName, ['includeData' => ($sanitizedParams->getCheckbox('includeData')== 1)]); + $layout->toZip( + $this->dataSetFactory, + $this->widgetDataFactory, + $fileName, + [ + 'includeData' => ($sanitizedParams->getCheckbox('includeData') == 1), + 'includeFallback' => ($sanitizedParams->getCheckbox('includeFallback') == 1), + ] + ); return $this->render($request, SendFile::decorateResponse( $response, @@ -2530,7 +2564,7 @@ public function export(Request $request, Response $response, $id) * @param Request $request * @param Response $response * @return Response - * @throws \Xibo\Support\Exception\ConfigurationException + * @throws \Xibo\Support\Exception\GeneralException */ public function import(Request $request, Response $response) { @@ -2560,6 +2594,7 @@ public function import(Request $request, Response $response) 'userId' => $this->getUser()->userId, 'controller' => $this, 'dataSetFactory' => $this->getDataSetFactory(), + 'widgetDataFactory' => $this->widgetDataFactory, 'image_versions' => [], 'accept_file_types' => '/\.zip$/i', 'libraryLimit' => $libraryLimit, @@ -2569,15 +2604,13 @@ public function import(Request $request, Response $response) 'folderId' => $folderId, ]; - $this->setNoOutput(true); + $this->setNoOutput(); // Hand off to the Upload Handler provided by jquery-file-upload new LayoutUploadHandler($libraryFolder . 'temp/', $this->getLog()->getLoggerInterface(), $options); // Explicitly set the Content-Type header to application/json - $response = $response->withHeader('Content-Type', 'application/json'); - - return $response; + return $response->withHeader('Content-Type', 'application/json'); } /** diff --git a/lib/Controller/Library.php b/lib/Controller/Library.php index 0992a00555..ff07ee7ff4 100644 --- a/lib/Controller/Library.php +++ b/lib/Controller/Library.php @@ -25,6 +25,7 @@ use GuzzleHttp\Client; use Illuminate\Support\Str; use Intervention\Image\ImageManagerStatic as Img; +use Psr\Http\Message\ResponseInterface; use Respect\Validation\Validator as v; use Slim\Http\Response as Response; use Slim\Http\ServerRequest as Request; @@ -36,6 +37,7 @@ use Xibo\Entity\SearchResults; use Xibo\Event\LibraryProviderEvent; use Xibo\Event\LibraryProviderImportEvent; +use Xibo\Event\LibraryProviderListEvent; use Xibo\Event\MediaDeleteEvent; use Xibo\Event\MediaFullLoadEvent; use Xibo\Factory\DisplayFactory; @@ -816,10 +818,10 @@ public function grid(Request $request, Response $response) public function search(Request $request, Response $response): Response { $parsedQueryParams = $this->getSanitizer($request->getQueryParams()); - $provider = $parsedQueryParams->getString('provider', ['default' => 'both']); + $provider = $parsedQueryParams->getString('provider', ['default' => 'local']); $searchResults = new SearchResults(); - if ($provider === 'both' || $provider === 'local') { + if ($provider === 'local') { // Sorting options. // only allow from a preset list $sortCol = match ($parsedQueryParams->getString('sortCol')) { @@ -847,6 +849,7 @@ public function search(Request $request, Response $response): Response 'tags' => $parsedQueryParams->getString('tags'), 'exactTags' => $parsedQueryParams->getCheckbox('exactTags'), 'ownerId' => $parsedQueryParams->getInt('ownerId'), + 'folderId' => $parsedQueryParams->getInt('folderId'), 'assignable' => 1, 'retired' => 0, 'orientation' => $parsedQueryParams->getString('orientation', ['defaultOnEmptyString' => true]) @@ -876,10 +879,8 @@ public function search(Request $request, Response $response): Response // Add the result $searchResults->data[] = $searchResult; } - } - - if ($provider === 'both' || $provider === 'remote') { - $this->getLog()->debug('Dispatching event.'); + } else { + $this->getLog()->debug('Dispatching event, for provider ' . $provider); // Do we have a type filter $types = $parsedQueryParams->getArray('types'); @@ -895,11 +896,12 @@ public function search(Request $request, Response $response): Response $parsedQueryParams->getInt('length', ['default' => 10]), $parsedQueryParams->getString('media'), $types, - $parsedQueryParams->getString('orientation') + $parsedQueryParams->getString('orientation'), + $provider ); try { - $this->getDispatcher()->dispatch($event->getName(), $event); + $this->getDispatcher()->dispatch($event, $event->getName()); } catch (\Exception $exception) { $this->getLog()->error('Library search: Exception in dispatched event: ' . $exception->getMessage()); $this->getLog()->debug($exception->getTraceAsString()); @@ -909,6 +911,23 @@ public function search(Request $request, Response $response): Response return $response->withJson($searchResults); } + /** + * Get list of Library providers with their details. + * + * @param Request $request + * @param Response $response + * @return Response|ResponseInterface + */ + public function providersList(Request $request, Response $response): Response|\Psr\Http\Message\ResponseInterface + { + $event = new LibraryProviderListEvent(); + $this->getDispatcher()->dispatch($event, $event->getName()); + + $providers = $event->getProviders(); + + return $response->withJson($providers); + } + /** * Media Delete Form * @param Request $request @@ -1149,6 +1168,14 @@ public function add(Request $request, Response $response) $folderId = $this->getUser()->homeFolderId; } + if ($parsedBody->getInt('playlistId') !== null) { + $playlist = $this->playlistFactory->getById($parsedBody->getInt('playlistId')); + + if ($playlist->isDynamic === 1) { + throw new InvalidArgumentException(__('This Playlist is dynamically managed so cannot accept manual assignments.'), 'isDynamic'); + } + } + $options = array_merge([ 'oldMediaId' => null, 'updateInLayouts' => 0, @@ -1616,7 +1643,9 @@ public function download(Request $request, Response $response, $id) $downloader->useLogger($this->getLog()->getLoggerInterface()); $params = $this->getSanitizer($request->getParams()); - if ($params->getCheckbox('preview') == 1) { + + // Check if preview is allowed for the module + if ($params->getCheckbox('preview') == 1 && $module->allowPreview === 1) { $this->getLog()->debug('download: preview mode, seeing if we can output an image/video'); // Output a 1px image if we're not allowed to see the media. @@ -2129,7 +2158,8 @@ public function usageLayouts(Request $request, Response $response, $id) 'id' => 'layout_button_preview', 'external' => true, 'url' => '#', - 'onclick' => 'createMiniLayoutPreview("' . $this->urlFor($request, 'layout.preview', ['id' => $layout->layoutId]) . '");', + 'onclick' => 'createMiniLayoutPreview', + 'onclickParam' => $this->urlFor($request, 'layout.preview', ['id' => $layout->layoutId]), 'text' => __('Preview Layout') ); } @@ -2768,6 +2798,9 @@ public function connectorImport(Request $request, Response $response) throw new InvalidArgumentException('Missing or invalid URL', 'url'); } + // This ensures that apiRef will be unique for each provider and resource id + $apiRef = $import->searchResult->provider->id . '_' . $import->searchResult->id; + // Queue this for upload. // Use a module to make sure our type, etc is supported. $module = $this->getModuleFactory()->getByType($import->searchResult->type); @@ -2782,7 +2815,8 @@ public function connectorImport(Request $request, Response $response) : $module->defaultDuration, 'enableStat' => $enableStat, 'folderId' => $folder->getId(), - 'permissionsFolderId' => $folder->permissionsFolderId + 'permissionsFolderId' => $folder->permissionsFolderId, + 'apiRef' => $apiRef ] ); } else { diff --git a/lib/Controller/Login.php b/lib/Controller/Login.php index 234a52afb9..6fbafc63b9 100644 --- a/lib/Controller/Login.php +++ b/lib/Controller/Login.php @@ -147,6 +147,7 @@ public function loginForm(Request $request, Response $response) $session->setIsExpired(0); $session->regenerateSessionId(); $session->setUser($user->userId); + $this->getLog()->setSessionHistoryId($session->get('sessionHistoryId')); // Audit Log $this->getLog()->audit('User', $user->userId, 'Login Granted via token', [ @@ -647,6 +648,8 @@ private function completeLoginFlow($user, Request $request) $session->regenerateSessionId(); $session->setUser($user->userId); + $this->getLog()->setSessionHistoryId($session->get('sessionHistoryId')); + // Audit Log $this->getLog()->audit('User', $user->userId, 'Login Granted', [ 'UserAgent' => $request->getHeader('User-Agent') diff --git a/lib/Controller/Module.php b/lib/Controller/Module.php index 28bd338572..4955466bc4 100644 --- a/lib/Controller/Module.php +++ b/lib/Controller/Module.php @@ -1,6 +1,6 @@ setValueByType($sanitizedParams, null, true); } + // Preview is not allowed for generic file type + if ($module->allowPreview === 0 && $sanitizedParams->getCheckbox('previewEnabled') == 1) { + throw new InvalidArgumentException(__('Preview is disabled')); + } + // Save $module->save(); @@ -330,6 +335,13 @@ public function clearCache(Request $request, Response $response, $id) * type="string", * required=true * ), + * @SWG\Parameter( + * name="type", + * in="query", + * description="Type to return templates for", + * type="string", + * required=false + * ), * @SWG\Response( * response=200, * description="An array of module templates for the provided datatype", @@ -348,9 +360,16 @@ public function templateGrid(Request $request, Response $response, string $dataT throw new InvalidArgumentException(__('Please provide a datatype'), 'dataType'); } + $params = $this->getSanitizer($request->getParams()); + $type = $params->getString('type'); + + $templates = !empty($type) + ? $this->moduleTemplateFactory->getByTypeAndDataType($type, $dataType) + : $this->moduleTemplateFactory->getByDataType($dataType); + $this->getState()->template = 'grid'; $this->getState()->recordsTotal = 0; - $this->getState()->setData($this->moduleTemplateFactory->getByDataType($dataType)); + $this->getState()->setData($templates); return $this->render($request, $response); } diff --git a/lib/Controller/Notification.php b/lib/Controller/Notification.php index 185dc0f754..e602747029 100644 --- a/lib/Controller/Notification.php +++ b/lib/Controller/Notification.php @@ -68,8 +68,13 @@ class Notification extends Base * @param UserGroupFactory $userGroupFactory * @param DisplayNotifyService $displayNotifyService */ - public function __construct($notificationFactory, $userNotificationFactory, $displayGroupFactory, $userGroupFactory, $displayNotifyService) - { + public function __construct( + $notificationFactory, + $userNotificationFactory, + $displayGroupFactory, + $userGroupFactory, + $displayNotifyService + ) { $this->notificationFactory = $notificationFactory; $this->userNotificationFactory = $userNotificationFactory; $this->displayGroupFactory = $displayGroupFactory; @@ -128,16 +133,21 @@ public function interrupt(Request $request, Response $response, $id) */ public function show(Request $request, Response $response, $id) { + $params = $this->getSanitizer($request->getParams()); $notification = $this->userNotificationFactory->getByNotificationId($id); // Mark it as read $notification->setRead(Carbon::now()->format('U')); $notification->save(); - $this->getState()->template = 'notification-form-show'; - $this->getState()->setData(['notification' => $notification]); + if ($params->getCheckbox('multiSelect')) { + return $response->withStatus(201); + } else { + $this->getState()->template = 'notification-form-show'; + $this->getState()->setData(['notification' => $notification]); - return $this->render($request, $response); + return $this->render($request, $response); + } } /** @@ -184,20 +194,27 @@ public function show(Request $request, Response $response, $id) * @throws \Xibo\Support\Exception\GeneralException * @throws \Xibo\Support\Exception\NotFoundException */ - function grid(Request $request, Response $response) + public function grid(Request $request, Response $response): Response|\Psr\Http\Message\ResponseInterface { $sanitizedQueryParams = $this->getSanitizer($request->getQueryParams()); $filter = [ 'notificationId' => $sanitizedQueryParams->getInt('notificationId'), - 'subject' => $sanitizedQueryParams->getString('subject') + 'subject' => $sanitizedQueryParams->getString('subject'), + 'read' => $sanitizedQueryParams->getInt('read'), + 'releaseDt' => $sanitizedQueryParams->getDate('releaseDt')?->format('U'), + 'type' => $sanitizedQueryParams->getString('type'), ]; - $embed = ($sanitizedQueryParams->getString('embed') != null) ? explode(',', $sanitizedQueryParams->getString('embed')) : []; - $notifications = $this->notificationFactory->query($this->gridRenderSort($sanitizedQueryParams), $this->gridRenderFilter($filter, $sanitizedQueryParams)); + $embed = ($sanitizedQueryParams->getString('embed') != null) + ? explode(',', $sanitizedQueryParams->getString('embed')) + : []; - foreach ($notifications as $notification) { - /* @var \Xibo\Entity\Notification $notification */ + $notifications = $this->notificationFactory->query( + $this->gridRenderSort($sanitizedQueryParams), + $this->gridRenderFilter($filter, $sanitizedQueryParams) + ); + foreach ($notifications as $notification) { if (in_array('userGroups', $embed) || in_array('displayGroups', $embed)) { $notification->load([ 'loadUserGroups' => in_array('userGroups', $embed), @@ -205,30 +222,83 @@ function grid(Request $request, Response $response) ]); } - if ($this->isApi($request) || !$this->getUser()->featureEnabled('notification.modify')) + if ($this->isApi($request)) { continue; + } $notification->includeProperty('buttons'); - // Default Layout + // View Notification $notification->buttons[] = [ - 'id' => 'notification_button_edit', - 'url' => $this->urlFor($request,'notification.edit.form', ['id' => $notification->notificationId]), - 'text' => __('Edit') + 'id' => 'notification_button_view', + 'url' => $this->urlFor( + $request, + 'notification.show', + ['id' => $notification->notificationId] + ), + 'text' => __('View'), + 'multi-select' => true, + 'dataAttributes' => [ + [ + 'name' => 'commit-url', + 'value' => $this->urlFor( + $request, + 'notification.show', + ['id' => $notification->notificationId, 'multiSelect' => true] + ), + ], + ['name' => 'commit-method', 'value' => 'get'], + ['name' => 'id', 'value' => 'notification_button_view'], + ['name' => 'text', 'value' => __('Mark as read?')], + ['name' => 'sort-group', 'value' => 1], + ['name' => 'rowtitle', 'value' => $notification->subject] + ] ]; - if ($this->getUser()->checkDeleteable($notification)) { + + // Edit Notification + if ($this->getUser()->checkEditable($notification) && + $this->getUser()->featureEnabled('notification.modify') + ) { + $notification->buttons[] = [ + 'id' => 'notification_button_edit', + 'url' => $this->urlFor( + $request, + 'notification.edit.form', + ['id' => $notification->notificationId] + ), + 'text' => __('Edit') + ]; + } + + // Delete Notifications + if ($this->getUser()->checkDeleteable($notification) && + $this->getUser()->featureEnabled('notification.modify') + ) { + $notification->buttons[] = ['divider' => true]; + $notification->buttons[] = [ 'id' => 'notification_button_delete', - 'url' => $this->urlFor($request,'notification.delete.form', ['id' => $notification->notificationId]), + 'url' => $this->urlFor( + $request, + 'notification.delete.form', + ['id' => $notification->notificationId] + ), 'text' => __('Delete'), 'multi-select' => true, 'dataAttributes' => [ - ['name' => 'commit-url', 'value' => $this->urlFor($request,'notification.delete', ['id' => $notification->notificationId])], + [ + 'name' => 'commit-url', + 'value' => $this->urlFor( + $request, + 'notification.delete', + ['id' => $notification->notificationId] + ) + ], ['name' => 'commit-method', 'value' => 'delete'], ['name' => 'id', 'value' => 'notification_button_delete'], ['name' => 'text', 'value' => __('Delete?')], - ['name' => 'sort-group', 'value' => 1], + ['name' => 'sort-group', 'value' => 2], ['name' => 'rowtitle', 'value' => $notification->subject] ] ]; @@ -258,7 +328,7 @@ public function addForm(Request $request, Response $response) $userGroups = []; $users = []; - foreach ($this->displayGroupFactory->query(['displayGroup'], ['isDisplaySpecific' => -1], $request) as $displayGroup) { + foreach ($this->displayGroupFactory->query(['displayGroup'], ['isDisplaySpecific' => -1]) as $displayGroup) { /* @var \Xibo\Entity\DisplayGroup $displayGroup */ if ($displayGroup->isDisplaySpecific == 1) { @@ -268,7 +338,7 @@ public function addForm(Request $request, Response $response) } } - foreach ($this->userGroupFactory->query(['`group`'], ['isUserSpecific' => -1], $request) as $userGroup) { + foreach ($this->userGroupFactory->query(['`group`'], ['isUserSpecific' => -1]) as $userGroup) { /* @var UserGroup $userGroup */ if ($userGroup->isUserSpecific == 0) { @@ -347,10 +417,10 @@ public function editForm(Request $request, Response $response, $id) 'displayGroups' => $groups, 'users' => $users, 'userGroups' => $userGroups, - 'displayGroupIds' => array_map(function($element) { + 'displayGroupIds' => array_map(function ($element) { return $element->displayGroupId; }, $notification->displayGroups), - 'userGroupIds' => array_map(function($element) { + 'userGroupIds' => array_map(function ($element) { return $element->groupId; }, $notification->userGroups) ]); @@ -401,11 +471,11 @@ public function addAttachment(Request $request, Response $response) // Make sure the library exists MediaService::ensureLibraryExists($this->getConfig()->getSetting('LIBRARY_LOCATION')); - $options = array( + $options = [ 'userId' => $this->getUser()->userId, 'controller' => $this, 'accept_file_types' => '/\.jpg|.jpeg|.png|.bmp|.gif|.zip|.pdf/i' - ); + ]; // Output handled by UploadHandler $this->setNoOutput(true); @@ -452,13 +522,6 @@ public function addAttachment(Request $request, Response $response) * required=false * ), * @SWG\Parameter( - * name="isEmail", - * in="formData", - * description="Flag indicating whether this notification should be emailed.", - * type="integer", - * required=true - * ), - * @SWG\Parameter( * name="isInterrupt", * in="formData", * description="Flag indication whether this notification should interrupt the web portal nativation/login", @@ -516,10 +579,10 @@ public function add(Request $request, Response $response) $notification->releaseDt = $notification->createDt; } - $notification->isEmail = $sanitizedParams->getCheckbox('isEmail'); $notification->isInterrupt = $sanitizedParams->getCheckbox('isInterrupt'); $notification->userId = $this->getUser()->userId; $notification->nonusers = $sanitizedParams->getString('nonusers'); + $notification->type = 'custom'; // Displays and Users to link foreach ($sanitizedParams->getIntArray('displayGroupIds', ['default' => [] ]) as $displayGroupId) { @@ -550,7 +613,9 @@ public function add(Request $request, Response $response) $moved = rename($from, $to); if (!$moved) { - $this->getLog()->info('Cannot move file: ' . $from . ' to ' . $to . ', will try and copy/delete instead.'); + $this->getLog()->info( + 'Cannot move file: ' . $from . ' to ' . $to . ', will try and copy/delete instead.' + ); // Copy $moved = copy($from, $to); @@ -624,13 +689,6 @@ public function add(Request $request, Response $response) * required=true * ), * @SWG\Parameter( - * name="isEmail", - * in="formData", - * description="Flag indicating whether this notification should be emailed.", - * type="integer", - * required=true - * ), - * @SWG\Parameter( * name="isInterrupt", * in="formData", * description="Flag indication whether this notification should interrupt the web portal nativation/login", @@ -675,7 +733,6 @@ public function edit(Request $request, Response $response, $id) $notification->body = $request->getParam('body', ''); $notification->createDt = Carbon::now()->format('U'); $notification->releaseDt = $sanitizedParams->getDate('releaseDt')->format('U'); - $notification->isEmail = $sanitizedParams->getCheckbox('isEmail'); $notification->isInterrupt = $sanitizedParams->getCheckbox('isInterrupt'); $notification->userId = $this->getUser()->userId; $notification->nonusers = $sanitizedParams->getString('nonusers'); diff --git a/lib/Controller/Playlist.php b/lib/Controller/Playlist.php index 3b04978812..f05ceb164d 100644 --- a/lib/Controller/Playlist.php +++ b/lib/Controller/Playlist.php @@ -22,6 +22,7 @@ namespace Xibo\Controller; +use Carbon\Carbon; use Slim\Http\Response as Response; use Slim\Http\ServerRequest as Request; use Xibo\Factory\DisplayFactory; @@ -36,10 +37,12 @@ use Xibo\Factory\UserFactory; use Xibo\Factory\UserGroupFactory; use Xibo\Factory\WidgetFactory; +use Xibo\Helper\DateFormatHelper; use Xibo\Support\Exception\AccessDeniedException; use Xibo\Support\Exception\GeneralException; use Xibo\Support\Exception\InvalidArgumentException; use Xibo\Support\Exception\NotFoundException; +use Xibo\Widget\SubPlaylistItem; /** * Class Playlist @@ -1709,7 +1712,8 @@ public function usageLayouts(Request $request, Response $response, $id) 'id' => 'layout_button_preview', 'external' => true, 'url' => '#', - 'onclick' => 'createMiniLayoutPreview("' . $this->urlFor($request, 'layout.preview', ['id' => $layout->layoutId]) . '");', + 'onclick' => 'createMiniLayoutPreview', + 'onclickParam' => $this->urlFor($request, 'layout.preview', ['id' => $layout->layoutId]), 'text' => __('Preview Layout') ); } @@ -1933,4 +1937,154 @@ private function hasFullScreenLayout(\Xibo\Entity\Playlist $playlist): ?int { return $this->layoutFactory->getLinkedFullScreenLayout('playlist', $playlist->playlistId)?->campaignId; } + + /** + * Convert Layout editor playlist to global playlist. + * Assign this Playlist to the original regionPlaylist via sub-playlist Widget. + * @SWG\Post( + * path="/playlist/{id}/convert", + * operationId="convert", + * tags={"playlist"}, + * summary="Playlist Convert", + * description="Create a global playlist from inline editor Playlist. + * Assign created Playlist via sub-playlist Widget to region Playlist.", + * @SWG\Parameter( + * name="playlistId", + * in="path", + * description="The Playlist ID", + * type="integer", + * required=true + * ), + * @SWG\Parameter( + * name="name", + * in="formData", + * description="Optional name for the global Playlist.", + * type="string", + * required=false + * ), + * @SWG\Response( + * response=201, + * description="successful operation" + * ) + * ) + * @param Request $request + * @param Response $response + * @param $id + * @return Response + * @throws AccessDeniedException + * @throws GeneralException + * @throws InvalidArgumentException + * @throws NotFoundException + */ + public function convert(Request $request, Response $response, $id): Response + { + $params = $this->getSanitizer($request->getParams()); + + // get region playlist + $regionPlaylist = $this->playlistFactory->getById($id); + + // check if it is region playlist + if (!$regionPlaylist->isRegionPlaylist()) { + throw new InvalidArgumentException(__('Not a Region Playlist'), 'playlistId'); + } + + // get the region + $region = $this->regionFactory->getById($regionPlaylist->regionId); + + // make sure this is playlist type region + if ($region->type !== 'playlist') { + throw new InvalidArgumentException(__('Not a Playlist'), 'playlistId'); + } + + // get Layout + $layout = $this->layoutFactory->getByRegionId($regionPlaylist->regionId); + + // check permissions + if (!$this->getUser()->checkEditable($layout)) { + throw new AccessDeniedException(); + } + + // check if it is a draft + if (!$layout->isEditable()) { + throw new InvalidArgumentException( + __('This Layout is not a Draft, please checkout.'), + 'layoutId' + ); + } + + $regionPlaylist->load(); + + // clone region playlist to a new Playlist object + $playlist = clone $regionPlaylist; + $name = $params->getString( + 'name', + ['default' => sprintf(__('Untitled %s'), Carbon::now()->format(DateFormatHelper::getSystemFormat()))] + ); + + $playlist->name = empty($playlist->name) ? $name : $playlist->name; + $playlist->setOwner($this->getUser()->userId); + + if ($playlist->enableStat == null) { + $playlist->enableStat = $this->getConfig()->getSetting('PLAYLIST_STATS_ENABLED_DEFAULT'); + } + + // Save the new playlist + $playlist->save(); + $playlist->updateDuration(); + + // Clone the closure table for the original playlist + $regionPlaylist->cloneClosureTable($playlist->getId()); + + // remove widgets on the region Playlist + foreach ($regionPlaylist->widgets as $widget) { + $widget->delete(); + } + $regionPlaylist->widgets = []; + + $module = $this->moduleFactory->getByType('subplaylist'); + + // create a new sub-playlist Widget + $widget = $this->widgetFactory->create( + $this->getUser()->userId, + $regionPlaylist->playlistId, + 'subplaylist', + $playlist->duration, + $module->schemaVersion + ); + + // save, simulate add + $widget->save(); + + // prepare sub-playlist item + $item = new SubPlaylistItem(); + $item->rowNo = 1; + $item->playlistId = $playlist->playlistId; + $item->spotFill = 'repeat'; + $item->spotLength = ''; + $item->spots = ''; + + $playlistItems[] = $item; + + // update Widget subPlaylists option + $widget->setOptionValue('subPlaylists', 'attrib', json_encode($playlistItems)); + + // Calculate the duration + $widget->calculateDuration($module); + + // Assign the sub-playlist widget to the region playlist + $regionPlaylist->assignWidget($widget); + // Save the region playlist + $regionPlaylist->save(); + + // build Layout xlf + $layout->xlfToDisk(['notify' => true, 'exceptionOnError' => true, 'exceptionOnEmptyRegion' => false]); + + // Success + $this->getState()->hydrate([ + 'httpStatus' => 201, + 'message' => __('Conversion Successful'), + ]); + + return $this->render($request, $response); + } } diff --git a/lib/Controller/Preview.php b/lib/Controller/Preview.php index 0d6c15aba8..6fdaa01313 100644 --- a/lib/Controller/Preview.php +++ b/lib/Controller/Preview.php @@ -69,7 +69,7 @@ public function show(Request $request, Response $response, $id) } if (!$this->getUser()->checkViewable($layout) - || !$this->getUser()->featureEnabled(['layout.view', 'playlist.view']) + || !$this->getUser()->featureEnabled(['layout.view', 'playlist.view', 'campaign.view']) ) { throw new AccessDeniedException(); } @@ -79,7 +79,8 @@ public function show(Request $request, Response $response, $id) $layout = $this->layoutFactory->getByParentId($layout->layoutId); } - $this->getState()->template = 'layout-preview'; + // $this->getState()->template = 'layout-preview'; + $this->getState()->template = 'layout-renderer'; $this->getState()->setData([ 'layout' => $layout, 'previewOptions' => [ diff --git a/lib/Controller/Schedule.php b/lib/Controller/Schedule.php index 7988ec9b79..f59b3fe64e 100644 --- a/lib/Controller/Schedule.php +++ b/lib/Controller/Schedule.php @@ -26,13 +26,16 @@ use Psr\Http\Message\ResponseInterface; use Slim\Http\Response as Response; use Slim\Http\ServerRequest as Request; +use Symfony\Component\EventDispatcher\EventDispatcher; use Xibo\Entity\ScheduleReminder; +use Xibo\Event\ScheduleCriteriaRequestEvent; use Xibo\Factory\CampaignFactory; use Xibo\Factory\CommandFactory; use Xibo\Factory\DayPartFactory; use Xibo\Factory\DisplayFactory; use Xibo\Factory\DisplayGroupFactory; use Xibo\Factory\LayoutFactory; +use Xibo\Factory\ScheduleCriteriaFactory; use Xibo\Factory\ScheduleExclusionFactory; use Xibo\Factory\ScheduleFactory; use Xibo\Factory\ScheduleReminderFactory; @@ -121,7 +124,8 @@ public function __construct( $dayPartFactory, $scheduleReminderFactory, $scheduleExclusionFactory, - SyncGroupFactory $syncGroupFactory + SyncGroupFactory $syncGroupFactory, + private readonly ScheduleCriteriaFactory $scheduleCriteriaFactory ) { $this->session = $session; $this->scheduleFactory = $scheduleFactory; @@ -145,57 +149,11 @@ public function __construct( */ function displayPage(Request $request, Response $response) { - // We need to provide a list of displays - $displayGroupIds = $this->session->get('displayGroupIds'); - - if (!is_array($displayGroupIds)) { - $displayGroupIds = []; - } - - $displayGroups = []; - $displaySpecificDisplayGroups = []; - - // Boolean to check if the option show all was saved in session - $displayGroupsShowAll = false; - - if (count($displayGroupIds) > 0) { - foreach ($displayGroupIds as $displayGroupId) { - if ($displayGroupId == -1) { - // If we have the show all option selected, go no further. - $displayGroupsShowAll = true; - break; - } - - try { - $displayGroup = $this->displayGroupFactory->getById($displayGroupId); - - if ($this->getUser()->checkViewable($displayGroup)) { - if ($displayGroup->isDisplaySpecific === 1) { - $displaySpecificDisplayGroups[] = $displayGroup; - } else { - $displayGroups[] = $displayGroup; - } - } - } catch (NotFoundException $e) { - $this->getLog()->debug( - sprintf( - 'Saved filter option for displayGroupId %d that no longer exists.', - $displayGroupId - ) - ); - } - } - } - // get the default longitude and latitude from CMS options $defaultLat = (float)$this->getConfig()->getSetting('DEFAULT_LAT'); $defaultLong = (float)$this->getConfig()->getSetting('DEFAULT_LONG'); $data = [ - 'displayGroupIds' => $displayGroupIds, - 'displayGroups' => $displayGroups, - 'displaySpecificDisplayGroups' => $displaySpecificDisplayGroups, - 'displayGroupsShowAll' => $displayGroupsShowAll, 'defaultLat' => $defaultLat, 'defaultLong' => $defaultLong, 'eventTypes' => \Xibo\Entity\Schedule::getEventTypesGrid(), @@ -261,16 +219,14 @@ public function eventData(Request $request, Response $response) $sanitizedParams = $this->getSanitizer($request->getParams()); $displayGroupIds = $sanitizedParams->getIntArray('displayGroupIds', ['default' => []]); + $displaySpecificDisplayGroupIds = $sanitizedParams->getIntArray('displaySpecificGroupIds', ['default' => []]); + $originalDisplayGroupIds = array_merge($displayGroupIds, $displaySpecificDisplayGroupIds); $campaignId = $sanitizedParams->getInt('campaignId'); - $originalDisplayGroupIds = $displayGroupIds; $start = $sanitizedParams->getDate('from', ['default' => Carbon::now()->startOfMonth()]); $end = $sanitizedParams->getDate('to', ['default' => Carbon::now()->addMonth()->startOfMonth()]); - // if we have some displayGroupIds then add them to the session info so we can default everything else. - $this->session->set('displayGroupIds', $displayGroupIds); - - if (count($displayGroupIds) <= 0) { + if (count($originalDisplayGroupIds) <= 0) { return $response->withJson(['success' => 1, 'result' => []]); } @@ -278,7 +234,7 @@ public function eventData(Request $request, Response $response) $showLayoutName = ($this->getConfig()->getSetting('SCHEDULE_SHOW_LAYOUT_NAME') == 1); // Permissions check the list of display groups with the user accessible list of display groups - $displayGroupIds = array_diff($displayGroupIds, [-1]); + $resolvedDisplayGroupIds = array_diff($originalDisplayGroupIds, [-1]); if (!$this->getUser()->isSuperAdmin()) { $userDisplayGroupIds = array_map(function ($element) { @@ -288,15 +244,15 @@ public function eventData(Request $request, Response $response) // Reset the list to only those display groups that intersect and if 0 have been provided, only those from // the user list - $displayGroupIds = (count($displayGroupIds) > 0) ? array_intersect($displayGroupIds, $userDisplayGroupIds) : $userDisplayGroupIds; + $resolvedDisplayGroupIds = (count($originalDisplayGroupIds) > 0) ? array_intersect($originalDisplayGroupIds, $userDisplayGroupIds) : $userDisplayGroupIds; $this->getLog()->debug('Resolved list of display groups [' - . json_encode($displayGroupIds) . '] from provided list [' + . json_encode($resolvedDisplayGroupIds) . '] from provided list [' . json_encode($originalDisplayGroupIds) . '] and user list [' . json_encode($userDisplayGroupIds) . ']'); // If we have none, then we do not return any events. - if (count($displayGroupIds) <= 0) { + if (count($resolvedDisplayGroupIds) <= 0) { return $response->withJson(['success' => 1, 'result' => []]); } } @@ -305,7 +261,7 @@ public function eventData(Request $request, Response $response) $filter = [ 'futureSchedulesFrom' => $start->format('U'), 'futureSchedulesTo' => $end->format('U'), - 'displayGroupIds' => $displayGroupIds, + 'displayGroupIds' => $resolvedDisplayGroupIds, 'geoAware' => $sanitizedParams->getInt('geoAware'), 'recurring' => $sanitizedParams->getInt('recurring'), 'eventTypeId' => $sanitizedParams->getInt('eventTypeId'), @@ -815,52 +771,27 @@ private function calculateIntermediates($display, $displayGroup, $eventDisplayGr */ public function addForm(Request $request, Response $response, ?string $from, ?int $id): Response|ResponseInterface { - // Get the display groups added to the session (if there are some) - $displayGroupIds = $this->session->get('displayGroupIds'); - - if (!is_array($displayGroupIds)) { - $displayGroupIds = []; - } - - $displayGroups = []; - - if (count($displayGroupIds) > 0) { - foreach ($displayGroupIds as $displayGroupId) { - if ($displayGroupId == -1) { - continue; - } - - try { - $displayGroup = $this->displayGroupFactory->getById($displayGroupId); - - if ($this->getUser()->checkViewable($displayGroup)) { - $displayGroups[] = $displayGroup; - } - } catch (NotFoundException $e) { - $this->getLog()->debug( - sprintf( - 'Saved filter option for displayGroupId %d that no longer exists.', - $displayGroupId - ) - ); - } - } - } - // get the default longitude and latitude from CMS options $defaultLat = (float)$this->getConfig()->getSetting('DEFAULT_LAT'); $defaultLong = (float)$this->getConfig()->getSetting('DEFAULT_LONG'); + // Dispatch an event to initialize schedule criteria + $event = new ScheduleCriteriaRequestEvent(); + $this->getDispatcher()->dispatch($event, ScheduleCriteriaRequestEvent::$NAME); + + // Retrieve the criteria data from the event + $criteria = $event->getCriteria(); + $addFormData = [ 'dayParts' => $this->dayPartFactory->allWithSystem(), - 'displayGroupIds' => $displayGroupIds, - 'displayGroups' => $displayGroups, 'reminders' => [], 'defaultLat' => $defaultLat, 'defaultLong' => $defaultLong, 'eventTypes' => \Xibo\Entity\Schedule::getEventTypesForm(), 'isScheduleNow' => false, 'relativeTime' => 0, + 'setDisplaysFromFilter' => true, + 'scheduleCriteria' => $criteria ]; $formNowData = []; @@ -879,6 +810,7 @@ public function addForm(Request $request, Response $response, ?string $from, ?in 'readonlySelect' => !($from == 'DisplayGroup'), 'isScheduleNow' => true, 'relativeTime' => 1, + 'setDisplaysFromFilter' => false, ]; } @@ -1089,6 +1021,20 @@ public function addForm(Request $request, Response $response, ?string $from, ?in * type="string", * required=false * ), + * @SWG\Parameter( + * name="dataSetId", + * in="formData", + * description="For Data Connector eventTypeId, the DataSet ID", + * type="integer", + * required=false + * ), + * @SWG\Parameter( + * name="dataSetParams", + * in="formData", + * description="For Data Connector eventTypeId, the DataSet params", + * type="string", + * required=false + * ), * @SWG\Response( * response=201, * description="successful operation", @@ -1166,6 +1112,19 @@ public function add(Request $request, Response $response) $schedule->shareOfVoice = null; } + // Fields only collected for data connector events + if ($schedule->eventTypeId === \Xibo\Entity\Schedule::$DATA_CONNECTOR_EVENT) { + $schedule->dataSetId = $sanitizedParams->getInt('dataSetId', [ + 'throw' => function () { + new InvalidArgumentException( + __('Please select a DataSet'), + 'dataSetId' + ); + } + ]); + $schedule->dataSetParams = $sanitizedParams->getString('dataSetParams'); + } + // API request can provide an array of coordinates or valid GeoJSON, handle both cases here. if ($this->isApi($request) && $schedule->isGeoAware === 1) { if ($sanitizedParams->getArray('geoLocation') != null) { @@ -1268,6 +1227,20 @@ public function add(Request $request, Response $response) ); } + // Schedule Criteria + $criteria = $sanitizedParams->getArray('criteria'); + if (is_array($criteria) && count($criteria) > 0) { + foreach ($criteria as $item) { + $itemParams = $this->getSanitizer($item); + $criterion = $this->scheduleCriteriaFactory->createEmpty(); + $criterion->metric = $itemParams->getString('metric'); + $criterion->type = $itemParams->getString('type'); + $criterion->condition = $itemParams->getString('condition'); + $criterion->value = $itemParams->getString('value'); + $schedule->addOrUpdateCriteria($criterion); + } + } + // Ready to do the add $schedule->setDisplayNotifyService($this->displayFactory->getDisplayNotifyService()); if ($schedule->campaignId != null) { @@ -1360,6 +1333,13 @@ function editForm(Request $request, Response $response, $id) $schedule = $this->scheduleFactory->getById($id); $schedule->load(); + // Dispatch an event to retrieve criteria for scheduling from the OpenWeatherMap connector. + $event = new ScheduleCriteriaRequestEvent(); + $this->getDispatcher()->dispatch($event, ScheduleCriteriaRequestEvent::$NAME); + + // Retrieve the data from the event + $criteria = $event->getCriteria(); + if (!$this->isEventEditable($schedule)) { throw new AccessDeniedException(); } @@ -1423,6 +1403,7 @@ function editForm(Request $request, Response $response, $id) 'eventStart' => $eventStart, 'eventEnd' => $eventEnd, 'eventTypes' => \Xibo\Entity\Schedule::getEventTypesForm(), + 'scheduleCriteria' => $criteria ]); return $this->render($request, $response); @@ -1703,6 +1684,20 @@ public function deleteRecurrence(Request $request, Response $response, $id) * type="string", * required=false * ), + * @SWG\Parameter( + * name="dataSetId", + * in="formData", + * description="For Data Connector eventTypeId, the DataSet ID", + * type="integer", + * required=false + * ), + * @SWG\Parameter( + * name="dataSetParams", + * in="formData", + * description="For Data Connector eventTypeId, the DataSet params", + * type="string", + * required=false + * ), * @SWG\Response( * response=200, * description="successful operation", @@ -1752,21 +1747,21 @@ public function edit(Request $request, Response $response, $id) if ($schedule->eventTypeId === \Xibo\Entity\Schedule::$ACTION_EVENT) { $schedule->actionType = $sanitizedParams->getString('actionType'); $schedule->actionTriggerCode = $sanitizedParams->getString('actionTriggerCode'); + $schedule->commandId = $sanitizedParams->getInt('commandId'); $schedule->actionLayoutCode = $sanitizedParams->getString('actionLayoutCode'); $schedule->campaignId = null; } else { $schedule->actionType = null; $schedule->actionTriggerCode = null; + $schedule->commandId = null; $schedule->actionLayoutCode = null; } - // collect commandId only on Command event - // null commandId otherwise + // collect commandId on Command event + // Retain existing commandId value otherwise if ($schedule->eventTypeId === \Xibo\Entity\Schedule::$COMMAND_EVENT) { $schedule->commandId = $sanitizedParams->getInt('commandId'); $schedule->campaignId = null; - } else { - $schedule->commandId = null; } // Set the parentCampaignId for campaign events @@ -1817,6 +1812,19 @@ public function edit(Request $request, Response $response, $id) $schedule->shareOfVoice = null; } + // Fields only collected for data connector events + if ($schedule->eventTypeId === \Xibo\Entity\Schedule::$DATA_CONNECTOR_EVENT) { + $schedule->dataSetId = $sanitizedParams->getInt('dataSetId', [ + 'throw' => function () { + new InvalidArgumentException( + __('Please select a DataSet'), + 'dataSetId' + ); + } + ]); + $schedule->dataSetParams = $sanitizedParams->getString('dataSetParams'); + } + // API request can provide an array of coordinates or valid GeoJSON, handle both cases here. if ($this->isApi($request) && $schedule->isGeoAware === 1) { if ($sanitizedParams->getArray('geoLocation') != null) { @@ -1899,6 +1907,21 @@ public function edit(Request $request, Response $response, $id) $schedule->recurrenceType = null; } + // Schedule Criteria + $schedule->criteria = []; + $criteria = $sanitizedParams->getArray('criteria'); + if (is_array($criteria)) { + foreach ($criteria as $item) { + $itemParams = $this->getSanitizer($item); + $criterion = $this->scheduleCriteriaFactory->createEmpty(); + $criterion->metric = $itemParams->getString('metric'); + $criterion->type = $itemParams->getString('type'); + $criterion->condition = $itemParams->getString('condition'); + $criterion->value = $itemParams->getString('value'); + $schedule->addOrUpdateCriteria($criterion, $itemParams->getInt('id')); + } + } + // Ready to do the add $schedule->setDisplayNotifyService($this->displayFactory->getDisplayNotifyService()); if ($schedule->campaignId != null) { @@ -2236,7 +2259,8 @@ public function grid(Request $request, Response $response) $params = $this->getSanitizer($request->getParams()); $displayGroupIds = $params->getIntArray('displayGroupIds', ['default' => []]); - $originalDisplayGroupIds = $displayGroupIds; + $displaySpecificDisplayGroupIds = $params->getIntArray('displaySpecificGroupIds', ['default' => []]); + $originalDisplayGroupIds = array_merge($displayGroupIds, $displaySpecificDisplayGroupIds); if (!$this->getUser()->isSuperAdmin()) { $userDisplayGroupIds = array_map(function ($element) { @@ -2246,8 +2270,8 @@ public function grid(Request $request, Response $response) // Reset the list to only those display groups that intersect and if 0 have been provided, only those from // the user list - $displayGroupIds = (count($displayGroupIds) > 0) - ? array_intersect($displayGroupIds, $userDisplayGroupIds) + $resolvedDisplayGroupIds = (count($originalDisplayGroupIds) > 0) + ? array_intersect($originalDisplayGroupIds, $userDisplayGroupIds) : $userDisplayGroupIds; $this->getLog()->debug('Resolved list of display groups [' @@ -2256,13 +2280,15 @@ public function grid(Request $request, Response $response) . json_encode($userDisplayGroupIds) . ']'); // If we have none, then we do not return any events. - if (count($displayGroupIds) <= 0) { + if (count($resolvedDisplayGroupIds) <= 0) { $this->getState()->template = 'grid'; $this->getState()->recordsTotal = $this->scheduleFactory->countLast(); $this->getState()->setData([]); return $this->render($request, $response); } + } else { + $resolvedDisplayGroupIds = $originalDisplayGroupIds; } $events = $this->scheduleFactory->query( @@ -2274,7 +2300,7 @@ public function grid(Request $request, Response $response) 'geoAware' => $params->getInt('geoAware'), 'recurring' => $params->getInt('recurring'), 'campaignId' => $params->getInt('campaignId'), - 'displayGroupIds' => $displayGroupIds, + 'displayGroupIds' => $resolvedDisplayGroupIds, 'name' => $params->getString('name'), 'useRegexForName' => $params->getCheckbox('useRegexForName'), 'logicalOperatorName' => $params->getString('logicalOperatorName'), diff --git a/lib/Controller/SyncGroup.php b/lib/Controller/SyncGroup.php old mode 100644 new mode 100755 index 33a5450a82..da76ce9db4 --- a/lib/Controller/SyncGroup.php +++ b/lib/Controller/SyncGroup.php @@ -1,6 +1,6 @@ name = $params->getString('name'); $syncGroup->ownerId = $this->getUser()->userId; $syncGroup->syncPublisherPort = $params->getInt('syncPublisherPort'); + $syncGroup->syncSwitchDelay = $params->getInt('syncSwitchDelay'); + $syncGroup->syncVideoPauseDelay = $params->getInt('syncVideoPauseDelay'); $syncGroup->folderId = $folder->getId(); $syncGroup->permissionsFolderId = $folder->getPermissionFolderIdOrThis(); @@ -488,6 +490,20 @@ public function editForm(Request $request, Response $response, $id): Response|Re * required=false * ), * @SWG\Parameter( + * name="syncSwitchDelay", + * in="formData", + * description="The delay (in ms) when displaying the changes in content - default 750", + * type="integer", + * required=false + * ), + * @SWG\Parameter( + * name="syncVideoPauseDelay", + * in="formData", + * description="The delay (in ms) before unpausing the video on start - default 100", + * type="integer", + * required=false + * ), + * @SWG\Parameter( * name="leadDisplayId", * in="formData", * description="The ID of the Display that belongs to this Sync Group and should act as a Lead Display", @@ -545,6 +561,8 @@ public function edit(Request $request, Response $response, $id): Response|Respon $syncGroup->name = $params->getString('name'); $syncGroup->syncPublisherPort = $params->getInt('syncPublisherPort'); + $syncGroup->syncSwitchDelay = $params->getInt('syncSwitchDelay'); + $syncGroup->syncVideoPauseDelay = $params->getInt('syncVideoPauseDelay'); $syncGroup->leadDisplayId = $params->getInt('leadDisplayId'); $syncGroup->modifiedBy = $this->getUser()->userId; $syncGroup->folderId = $folder->getId(); @@ -701,4 +719,4 @@ public function fetchDisplays(Request $request, Response $response, $id): Respon return $this->render($request, $response); } -} +} \ No newline at end of file diff --git a/lib/Controller/Template.php b/lib/Controller/Template.php index b905e1f27c..db8e7b9d63 100644 --- a/lib/Controller/Template.php +++ b/lib/Controller/Template.php @@ -113,7 +113,9 @@ public function grid(Request $request, Response $response) { $sanitizedQueryParams = $this->getSanitizer($request->getQueryParams()); // Embed? - $embed = ($sanitizedQueryParams->getString('embed') != null) ? explode(',', $sanitizedQueryParams->getString('embed')) : []; + $embed = ($sanitizedQueryParams->getString('embed') != null) + ? explode(',', $sanitizedQueryParams->getString('embed')) + : []; $templates = $this->layoutFactory->query($this->gridRenderSort($sanitizedQueryParams), $this->gridRenderFilter([ 'excludeTemplates' => 0, @@ -164,12 +166,16 @@ public function grid(Request $request, Response $response) && $this->getUser()->checkEditable($template) ) { // Design Button - $template->buttons[] = array( + $template->buttons[] = [ 'id' => 'layout_button_design', 'linkType' => '_self', 'external' => true, - 'url' => $this->urlFor($request, 'layout.designer', array('id' => $template->layoutId)) . '?isTemplateEditor=1', + 'url' => $this->urlFor( + $request, + 'layout.designer', + ['id' => $template->layoutId] + ) . '?isTemplateEditor=1', 'text' => __('Alter Template') - ); + ]; if ($template->isEditable()) { $template->buttons[] = ['divider' => true]; @@ -197,7 +203,14 @@ public function grid(Request $request, Response $response) 'text' => __('Checkout'), 'dataAttributes' => [ ['name' => 'auto-submit', 'value' => true], - ['name' => 'commit-url', 'value' => $this->urlFor($request, 'layout.checkout', ['id' => $template->layoutId])], + [ + 'name' => 'commit-url', + 'value' => $this->urlFor( + $request, + 'layout.checkout', + ['id' => $template->layoutId] + ) + ], ['name' => 'commit-method', 'value' => 'PUT'] ] ); @@ -220,7 +233,14 @@ public function grid(Request $request, Response $response) 'text' => __('Select Folder'), 'multi-select' => true, 'dataAttributes' => [ - ['name' => 'commit-url', 'value' => $this->urlFor($request, 'campaign.selectfolder', ['id' => $template->campaignId])], + [ + 'name' => 'commit-url', + 'value' => $this->urlFor( + $request, + 'campaign.selectfolder', + ['id' => $template->campaignId] + ) + ], ['name' => 'commit-method', 'value' => 'put'], ['name' => 'id', 'value' => 'campaign_button_selectfolder'], ['name' => 'text', 'value' => __('Move to Folder')], @@ -248,7 +268,14 @@ public function grid(Request $request, Response $response) 'text' => __('Delete'), 'multi-select' => true, 'dataAttributes' => [ - ['name' => 'commit-url', 'value' => $this->urlFor($request, 'layout.delete', ['id' => $template->layoutId])], + [ + 'name' => 'commit-url', + 'value' => $this->urlFor( + $request, + 'layout.delete', + ['id' => $template->layoutId] + ) + ], ['name' => 'commit-method', 'value' => 'delete'], ['name' => 'id', 'value' => 'layout_button_delete'], ['name' => 'text', 'value' => __('Delete')], @@ -266,18 +293,36 @@ public function grid(Request $request, Response $response) // Permissions button $template->buttons[] = [ 'id' => 'layout_button_permissions', - 'url' => $this->urlFor($request, 'user.permissions.form', ['entity' => 'Campaign', 'id' => $template->campaignId]) . '?nameOverride=' . __('Template'), + 'url' => $this->urlFor( + $request, + 'user.permissions.form', + ['entity' => 'Campaign', 'id' => $template->campaignId] + ) . '?nameOverride=' . __('Template'), 'text' => __('Share'), 'multi-select' => true, 'dataAttributes' => [ - ['name' => 'commit-url', 'value' => $this->urlFor($request, 'user.permissions.multi', ['entity' => 'Campaign', 'id' => $template->campaignId])], + [ + 'name' => 'commit-url', + 'value' => $this->urlFor( + $request, + 'user.permissions.multi', + ['entity' => 'Campaign', 'id' => $template->campaignId] + ) + ], ['name' => 'commit-method', 'value' => 'post'], ['name' => 'id', 'value' => 'layout_button_permissions'], ['name' => 'text', 'value' => __('Share')], ['name' => 'rowtitle', 'value' => $template->layout], ['name' => 'sort-group', 'value' => 2], ['name' => 'custom-handler', 'value' => 'XiboMultiSelectPermissionsFormOpen'], - ['name' => 'custom-handler-url', 'value' => $this->urlFor($request, 'user.permissions.multi.form', ['entity' => 'Campaign'])], + [ + 'name' => 'custom-handler-url', + 'value' => $this->urlFor( + $request, + 'user.permissions.multi.form', + ['entity' => 'Campaign'] + ) + ], ['name' => 'content-id-name', 'value' => 'campaignId'] ] ]; @@ -338,6 +383,7 @@ public function search(Request $request, Response $response) 'excludeTemplates' => 0, 'layout' => $sanitizedQueryParams->getString('template'), 'folderId' => $sanitizedQueryParams->getInt('folderId'), + 'orientation' => $sanitizedQueryParams->getString('orientation', ['defaultOnEmptyString' => true]), 'publishedStatusId' => 1 ], $sanitizedQueryParams)); @@ -385,7 +431,8 @@ public function search(Request $request, Response $response) $searchResults, $sanitizedQueryParams->getInt('start', ['default' => 0]), $sanitizedQueryParams->getInt('length', ['default' => 15]), - $sanitizedQueryParams->getString('template') + $sanitizedQueryParams->getString('template'), + $sanitizedQueryParams->getString('orientation'), ); $this->getLog()->debug('Dispatching event. ' . $event->getName()); diff --git a/lib/Controller/User.php b/lib/Controller/User.php index f613667f54..361f3d311c 100644 --- a/lib/Controller/User.php +++ b/lib/Controller/User.php @@ -280,6 +280,8 @@ function grid(Request $request, Response $response) 'userId' => $sanitizedParams->getInt('userId'), 'userTypeId' => $sanitizedParams->getInt('userTypeId'), 'userName' => $sanitizedParams->getString('userName'), + 'firstName' => $sanitizedParams->getString('firstName'), + 'lastName' => $sanitizedParams->getString('lastName'), 'useRegexForName' => $sanitizedParams->getCheckbox('useRegexForName'), 'retired' => $sanitizedParams->getInt('retired'), 'logicalOperatorName' => $sanitizedParams->getString('logicalOperatorName'), @@ -839,9 +841,21 @@ public function edit(Request $request, Response $response, $id) if ($user->retired === 1) { $user->isSystemNotification = 0; $user->isDisplayNotification = 0; + $user->isDataSetNotification = 0; + $user->isCustomNotification = 0; + $user->isLayoutNotification = 0; + $user->isLibraryNotification = 0; + $user->isReportNotification = 0; + $user->isScheduleNotification = 0; } else { $user->isSystemNotification = $sanitizedParams->getCheckbox('isSystemNotification'); $user->isDisplayNotification = $sanitizedParams->getCheckbox('isDisplayNotification'); + $user->isDataSetNotification = $sanitizedParams->getCheckbox('isDataSetNotification'); + $user->isCustomNotification = $sanitizedParams->getCheckbox('isCustomNotification'); + $user->isLayoutNotification = $sanitizedParams->getCheckbox('isLayoutNotification'); + $user->isLibraryNotification = $sanitizedParams->getCheckbox('isLibraryNotification'); + $user->isReportNotification = $sanitizedParams->getCheckbox('isReportNotification'); + $user->isScheduleNotification = $sanitizedParams->getCheckbox('isScheduleNotification'); } } @@ -864,7 +878,10 @@ public function edit(Request $request, Response $response, $id) // Handle enabled features for the homepage. $homepage = $this->userGroupFactory->getHomepageByName($user->homePageId); if (!empty($homepage->feature) && !$user->featureEnabled($homepage->feature)) { - throw new InvalidArgumentException(__('User does not have the enabled Feature for this Dashboard'), 'homePageId'); + throw new InvalidArgumentException( + __('User does not have the enabled Feature for this Dashboard'), + 'homePageId' + ); } $this->getLog()->debug('Homepage validated.'); diff --git a/lib/Controller/UserGroup.php b/lib/Controller/UserGroup.php index a80f7792a4..802c359f03 100644 --- a/lib/Controller/UserGroup.php +++ b/lib/Controller/UserGroup.php @@ -311,10 +311,53 @@ function deleteForm(Request $request, Response $response, $id) * @SWG\Parameter( * name="isDisplayNotification", * in="formData", - * description="Flag (0, 1), should members of this Group receive Display notifications for Displays they have permissions to see", + * description="Flag (0, 1), should members of this Group receive Display notifications + * for Displays they have permissions to see", * type="integer", * required=false * ), + * @SWG\Parameter( + * name="isDataSetNotification", + * in="formData", + * description="Flag (0, 1), should members of this Group receive DataSet notification emails?", + * type="integer", + * required=false + * ), + * @SWG\Parameter( + * name="isLayoutNotification", + * in="formData", + * description="Flag (0, 1), should members of this Group receive Layout notification emails?", + * type="integer", + * required=false + * ), + * @SWG\Parameter( + * name="isLibraryNotification", + * in="formData", + * description="Flag (0, 1), should members of this Group receive Library notification emails?", + * type="integer", + * required=false + * ), + * @SWG\Parameter( + * name="isReportNotification", + * in="formData", + * description="Flag (0, 1), should members of this Group receive Report notification emails?", + * type="integer", + * required=false + * ), + * @SWG\Parameter( + * name="isScheduleNotification", + * in="formData", + * description="Flag (0, 1), should members of this Group receive Schedule notification emails?", + * type="integer", + * required=false + * ), + * @SWG\Parameter( + * name="isCustomNotification", + * in="formData", + * description="Flag (0, 1), should members of this Group receive Custom notification emails?", + * type="integer", + * required=false + * ), * @SWG\Parameter( * name="isShownForAddUser", * in="formData", @@ -347,7 +390,7 @@ function deleteForm(Request $request, Response $response, $id) * @throws \Xibo\Support\Exception\GeneralException * @throws \Xibo\Support\Exception\InvalidArgumentException */ - function add(Request $request, Response $response) + public function add(Request $request, Response $response) { $sanitizedParams = $this->getSanitizer($request->getParams()); @@ -365,6 +408,12 @@ function add(Request $request, Response $response) if ($this->getUser()->userTypeId == 1) { $group->isSystemNotification = $sanitizedParams->getCheckbox('isSystemNotification'); $group->isDisplayNotification = $sanitizedParams->getCheckbox('isDisplayNotification'); + $group->isDataSetNotification = $sanitizedParams->getCheckbox('isDataSetNotification'); + $group->isCustomNotification = $sanitizedParams->getCheckbox('isCustomNotification'); + $group->isLayoutNotification = $sanitizedParams->getCheckbox('isLayoutNotification'); + $group->isLibraryNotification = $sanitizedParams->getCheckbox('isLibraryNotification'); + $group->isReportNotification = $sanitizedParams->getCheckbox('isReportNotification'); + $group->isScheduleNotification = $sanitizedParams->getCheckbox('isScheduleNotification'); $group->isShownForAddUser = $sanitizedParams->getCheckbox('isShownForAddUser'); $group->defaultHomepageId = $sanitizedParams->getString('defaultHomepageId'); } @@ -434,10 +483,53 @@ function add(Request $request, Response $response) * @SWG\Parameter( * name="isDisplayNotification", * in="formData", - * description="Flag (0, 1), should members of this Group receive Display notifications for Displays they have permissions to see", + * description="Flag (0, 1), should members of this Group receive Display notifications + * for Displays they have permissions to see", * type="integer", * required=false * ), + * @SWG\Parameter( + * name="isDataSetNotification", + * in="formData", + * description="Flag (0, 1), should members of this Group receive DataSet notification emails?", + * type="integer", + * required=false + * ), + * @SWG\Parameter( + * name="isLayoutNotification", + * in="formData", + * description="Flag (0, 1), should members of this Group receive Layout notification emails?", + * type="integer", + * required=false + * ), + * @SWG\Parameter( + * name="isLibraryNotification", + * in="formData", + * description="Flag (0, 1), should members of this Group receive Library notification emails?", + * type="integer", + * required=false + * ), + * @SWG\Parameter( + * name="isReportNotification", + * in="formData", + * description="Flag (0, 1), should members of this Group receive Report notification emails?", + * type="integer", + * required=false + * ), + * @SWG\Parameter( + * name="isScheduleNotification", + * in="formData", + * description="Flag (0, 1), should members of this Group receive Schedule notification emails?", + * type="integer", + * required=false + * ), + * @SWG\Parameter( + * name="isCustomNotification", + * in="formData", + * description="Flag (0, 1), should members of this Group receive Custom notification emails?", + * type="integer", + * required=false + * ), * @SWG\Parameter( * name="isShownForAddUser", * in="formData", @@ -472,7 +564,7 @@ function add(Request $request, Response $response) * @throws \Xibo\Support\Exception\InvalidArgumentException * @throws \Xibo\Support\Exception\NotFoundException */ - function edit(Request $request, Response $response, $id) + public function edit(Request $request, Response $response, $id) { // Check permissions if (!$this->getUser()->isSuperAdmin() && !$this->getUser()->isGroupAdmin()) { @@ -496,12 +588,21 @@ function edit(Request $request, Response $response, $id) if ($this->getUser()->userTypeId == 1) { $group->isSystemNotification = $sanitizedParams->getCheckbox('isSystemNotification'); $group->isDisplayNotification = $sanitizedParams->getCheckbox('isDisplayNotification'); + $group->isDataSetNotification = $sanitizedParams->getCheckbox('isDataSetNotification'); + $group->isCustomNotification = $sanitizedParams->getCheckbox('isCustomNotification'); + $group->isLayoutNotification = $sanitizedParams->getCheckbox('isLayoutNotification'); + $group->isLibraryNotification = $sanitizedParams->getCheckbox('isLibraryNotification'); + $group->isReportNotification = $sanitizedParams->getCheckbox('isReportNotification'); + $group->isScheduleNotification = $sanitizedParams->getCheckbox('isScheduleNotification'); $group->isShownForAddUser = $sanitizedParams->getCheckbox('isShownForAddUser'); $group->defaultHomepageId = $sanitizedParams->getString('defaultHomepageId'); // if we have homepage set assign matching feature if it does not already exist if (!empty($group->defaultHomepageId) - && !in_array($this->userGroupFactory->getHomepageByName($group->defaultHomepageId)->feature, $group->features) + && !in_array( + $this->userGroupFactory->getHomepageByName($group->defaultHomepageId)->feature, + $group->features + ) && $group->defaultHomepageId !== 'icondashboard.view' ) { $group->features[] = $this->userGroupFactory->getHomepageByName($group->defaultHomepageId)->feature; @@ -551,7 +652,7 @@ function edit(Request $request, Response $response, $id) * ) * ) */ - function delete(Request $request, Response $response, $id) + public function delete(Request $request, Response $response, $id) { // Check permissions if (!$this->getUser()->isSuperAdmin()) { diff --git a/lib/Controller/Widget.php b/lib/Controller/Widget.php index bd2afe7904..abc8940a15 100644 --- a/lib/Controller/Widget.php +++ b/lib/Controller/Widget.php @@ -37,6 +37,7 @@ use Xibo\Factory\RegionFactory; use Xibo\Factory\TransitionFactory; use Xibo\Factory\WidgetAudioFactory; +use Xibo\Factory\WidgetDataFactory; use Xibo\Factory\WidgetFactory; use Xibo\Helper\DateFormatHelper; use Xibo\Support\Exception\AccessDeniedException; @@ -99,7 +100,8 @@ public function __construct( $widgetFactory, $transitionFactory, $regionFactory, - $widgetAudioFactory + $widgetAudioFactory, + private readonly WidgetDataFactory $widgetDataFactory ) { $this->moduleFactory = $moduleFactory; $this->moduleTemplateFactory = $moduleTemplateFactory; @@ -191,6 +193,10 @@ public function addWidget(Request $request, Response $response, $type, $id) throw new InvalidArgumentException(__('This Layout is not a Draft, please checkout.'), 'layoutId'); } + if ($playlist->isDynamic === 1) { + throw new InvalidArgumentException(__('This Playlist is dynamically managed so cannot accept manual assignments.'), 'isDynamic'); + } + // Load some information about this playlist // loadWidgets = true to keep the ordering correct $playlist->load([ @@ -359,6 +365,7 @@ public function editWidgetForm(Request $request, Response $response, $id) 'name' => $widget->getOptionValue('name', null), 'enableStat' => $widget->getOptionValue('enableStat', null), 'isRepeatData' => $widget->getOptionValue('isRepeatData', null), + 'showFallback' => $widget->getOptionValue('showFallback', null), 'duration' => $widget->duration, 'useDuration' => $widget->useDuration ], @@ -420,6 +427,13 @@ public function editWidgetForm(Request $request, Response $response, $id) * required=false * ), * @SWG\Parameter( + * name="showFallback", + * in="formData", + * description="If this widget requires data and allows fallback data how should that data be returned? (never, always, empty, error)", + * type="string", + * required=false + * ), + * @SWG\Parameter( * name="properties", * in="formData", * description="Add an additional parameter for each of the properties required this module and its template. Use the moduleProperties and moduleTemplateProperties calls to get a list of properties needed", @@ -456,6 +470,10 @@ public function editWidget(Request $request, Response $response, $id) throw new InvalidArgumentException(__('This Layout is not a Draft, please checkout.'), 'layoutId'); } + if ($playlist->isDynamic === 1) { + throw new InvalidArgumentException(__('This Playlist is dynamically managed so cannot accept manual assignments.'), 'isDynamic'); + } + $module = $this->moduleFactory->getByType($widget->type); // Handle common parameters. @@ -467,6 +485,10 @@ public function editWidget(Request $request, Response $response, $id) // Handle special common properties for widgets with data if ($module->isDataProviderExpected()) { $widget->setOptionValue('isRepeatData', 'attrib', $params->getCheckbox('isRepeatData')); + + if ($module->fallbackData === 1) { + $widget->setOptionValue('showFallback', 'attrib', $params->getString('showFallback')); + } } // Validate common parameters if we don't have a validator present. @@ -665,6 +687,10 @@ public function deleteWidget(Request $request, Response $response, $id) throw new InvalidArgumentException(__('This Layout is not a Draft, please checkout.'), 'layoutId'); } + if ($playlist->isDynamic === 1) { + throw new InvalidArgumentException(__('This Playlist is dynamically managed so cannot accept manual assignments.'), 'isDynamic'); + } + // Delete clears these, so cache them. $widgetMedia = $widget->mediaIds; @@ -823,6 +849,10 @@ public function editWidgetTransition(Request $request, Response $response, $type throw new InvalidArgumentException(__('This Layout is not a Draft, please checkout.'), 'layoutId'); } + if ($playlist->isDynamic === 1) { + throw new InvalidArgumentException(__('This Playlist is dynamically managed so cannot accept manual assignments.'), 'isDynamic'); + } + $widget->load(); $sanitizedParams = $this->getSanitizer($request->getParams()); @@ -988,6 +1018,10 @@ public function widgetAudio(Request $request, Response $response, $id) throw new InvalidArgumentException(__('This Layout is not a Draft, please checkout.'), 'layoutId'); } + if ($playlist->isDynamic === 1) { + throw new InvalidArgumentException(__('This Playlist is dynamically managed so cannot accept manual assignments.'), 'isDynamic'); + } + // Are we allowed to do this? if ($widget->type === 'subplaylist') { throw new InvalidArgumentException( @@ -1077,6 +1111,10 @@ public function widgetAudioDelete(Request $request, Response $response, $id) throw new InvalidArgumentException(__('This Layout is not a Draft, please checkout.'), 'layoutId'); } + if ($playlist->isDynamic === 1) { + throw new InvalidArgumentException(__('This Playlist is dynamically managed so cannot accept manual assignments.'), 'isDynamic'); + } + $widget->load(); foreach ($widget->audio as $audio) { @@ -1158,6 +1196,32 @@ public function getData(Request $request, Response $response, $regionId, $id) } } + // Will we use fallback data if available? + $showFallback = $widget->getOptionValue('showFallback', 'never'); + if ($showFallback !== 'never') { + // What data type are we dealing with? + try { + $dataTypeFields = []; + foreach ($this->moduleFactory->getDataTypeById($module->dataType)->fields as $field) { + $dataTypeFields[$field->id] = $field->type; + } + + // Potentially we will, so get the modifiedDt of this fallback data. + $fallbackModifiedDt = $this->widgetDataFactory->getModifiedDtForWidget($widget->widgetId); + + if ($fallbackModifiedDt !== null) { + $this->getLog()->debug('getData: fallback modifiedDt is ' . $fallbackModifiedDt->toAtomString()); + + $dataModifiedDt = max($dataModifiedDt, $fallbackModifiedDt); + } + } catch (NotFoundException) { + $this->getLog()->info('getData: widget will fallback set where the module does not support it'); + $dataTypeFields = null; + } + } else { + $dataTypeFields = null; + } + // Use the cache if we can. if (!$widgetDataProviderCache->decorateWithCache($dataProvider, $cacheKey, $dataModifiedDt) || $widgetDataProviderCache->isCacheMissOrOld() @@ -1166,6 +1230,7 @@ public function getData(Request $request, Response $response, $regionId, $id) $dataProvider->clearData(); $dataProvider->clearMeta(); + $dataProvider->addOrUpdateMeta('showFallback', $showFallback); try { if ($widgetInterface !== null) { @@ -1181,6 +1246,47 @@ public function getData(Request $request, Response $response, $regionId, $id) ); } + // Before caching images, check to see if the data provider is handled + $isFallback = false; + if ($showFallback !== 'never' + && $dataTypeFields !== null + && ( + count($dataProvider->getErrors()) > 0 + || count($dataProvider->getData()) <= 0 + || $showFallback === 'always' + ) + ) { + // Error or no data. + $this->getLog()->debug('getData: eligible for fallback data'); + + // Pull in the fallback data + foreach ($this->widgetDataFactory->getByWidgetId($dataProvider->getWidgetId()) as $item) { + // Handle any special data types in the fallback data + foreach ($item->data as $itemId => $itemData) { + if (!empty($itemData) + && array_key_exists($itemId, $dataTypeFields) + && $dataTypeFields[$itemId] === 'image' + ) { + $item->data[$itemId] = $dataProvider->addLibraryFile($itemData); + } + } + + $dataProvider->addItem($item->data); + + // Indicate we've been handled by fallback data + $isFallback = true; + } + + if ($isFallback) { + $dataProvider->addOrUpdateMeta('includesFallback', true); + } + } + + // Remove fallback data from the cache if no-longer needed + if (!$isFallback) { + $dataProvider->addOrUpdateMeta('includesFallback', false); + } + // Do we have images? $media = $dataProvider->getImages(); if (count($media) > 0) { @@ -1195,10 +1301,12 @@ public function getData(Request $request, Response $response, $regionId, $id) } // Save to cache - if ($dataProvider->isHandled()) { + if ($dataProvider->isHandled() || $isFallback) { $widgetDataProviderCache->saveToCache($dataProvider); } else { // Unhandled data provider. + $this->getLog()->debug('getData: unhandled data provider and no fallback data'); + $message = null; foreach ($dataProvider->getErrors() as $error) { $message .= $error . PHP_EOL; @@ -1322,7 +1430,8 @@ public function getResource(Request $request, Response $response, $regionId, $id $resource, function (string $route, array $data, array $params = []) use ($request) { return $this->urlFor($request, $route, $data, $params); - } + }, + $request, ); $response->getBody()->write($resource); @@ -1444,6 +1553,10 @@ public function widgetExpiry(Request $request, Response $response, $id) throw new InvalidArgumentException(__('This Layout is not a Draft, please checkout.'), 'layoutId'); } + if ($playlist->isDynamic === 1) { + throw new InvalidArgumentException(__('This Playlist is dynamically managed so cannot accept manual assignments.'), 'isDynamic'); + } + $widget->load(); // Pull in the parameters we are expecting from the form. diff --git a/lib/Controller/WidgetData.php b/lib/Controller/WidgetData.php new file mode 100644 index 0000000000..907e7a4ef4 --- /dev/null +++ b/lib/Controller/WidgetData.php @@ -0,0 +1,414 @@ +. + */ + +namespace Xibo\Controller; + +use Slim\Http\Response as Response; +use Slim\Http\ServerRequest as Request; +use Xibo\Factory\ModuleFactory; +use Xibo\Factory\WidgetDataFactory; +use Xibo\Factory\WidgetFactory; +use Xibo\Support\Exception\AccessDeniedException; +use Xibo\Support\Exception\InvalidArgumentException; + +/** + * Controller for managing Widget Data + */ +class WidgetData extends Base +{ + public function __construct( + private readonly WidgetDataFactory $widgetDataFactory, + private readonly WidgetFactory $widgetFactory, + private readonly ModuleFactory $moduleFactory + ) { + } + + // phpcs:disable + /** + * @SWG\Post( + * path="/playlist/widget/data/{id}", + * operationId="getWidgetData", + * tags={"widget"}, + * summary="Get data for Widget", + * description="Return all of the fallback data currently assigned to this Widget", + * @SWG\Parameter( + * name="id", + * in="path", + * description="The Widget ID that this data should be added to", + * type="integer", + * required=true + * ), + * @SWG\Response( + * response=201, + * description="successful operation", + * @SWG\Schema( + * type="array", + * @SWG\Items(ref="#/definitions/WidgetData") + * ) + * ) + * ) + * @throws \Xibo\Support\Exception\GeneralException + */ + // phpcs:enable + public function get(Request $request, Response $response, int $id): Response + { + $widget = $this->widgetFactory->getById($id); + if (!$this->getUser()->checkEditable($widget)) { + throw new AccessDeniedException(__('This Widget is not shared with you with edit permission')); + } + + return $response->withJson($this->widgetDataFactory->getByWidgetId($widget->widgetId)); + } + + // phpcs:disable + /** + * @SWG\Post( + * path="/playlist/widget/data/{id}", + * operationId="addWidgetData", + * tags={"widget"}, + * summary="Add a data to a Widget", + * description="Add fallback data to a data Widget", + * @SWG\Parameter( + * name="id", + * in="path", + * description="The Widget ID that this data should be added to", + * type="integer", + * required=true + * ), + * @SWG\Parameter( + * name="data", + * in="path", + * description="A JSON formatted string containing a single data item for this widget's data type", + * type="string", + * required=true + * ), + * @SWG\Parameter( + * name="displayOrder", + * in="formData", + * description="Optional integer to say which position this data should appear if there is more than one data item", + * type="integer", + * required=false + * ), + * @SWG\Response( + * response=201, + * description="successful operation", + * @SWG\Header( + * header="Location", + * description="Location of the new record", + * type="string" + * ) + * ) + * ) + * @throws \Xibo\Support\Exception\GeneralException + */ + // phpcs:enable + public function add(Request $request, Response $response, int $id): Response + { + // Check that we have permission to edit this widget + $widget = $this->widgetFactory->getById($id); + if (!$this->getUser()->checkEditable($widget)) { + throw new AccessDeniedException(__('This Widget is not shared with you with edit permission')); + } + + // Get the other params. + $params = $this->getSanitizer($request->getParams()); + $widgetData = $this->widgetDataFactory + ->create( + $widget->widgetId, + $this->parseAndValidate($widget, $params->getArray('data')), + $params->getInt('displayOrder', ['default' => 1]), + ) + ->save(); + + // Update the widget modified dt + $widget->modifiedDt = + + // Successful + $this->getState()->hydrate([ + 'httpStatus' => 201, + 'message' => __('Added data for Widget'), + 'id' => $widgetData->id, + 'data' => $widgetData, + ]); + + return $this->render($request, $response); + } + + // phpcs:disable + /** + * @SWG\Put( + * path="/playlist/widget/data/{id}/{dataId}", + * operationId="editWidgetData", + * tags={"widget"}, + * summary="Edit data on a Widget", + * description="Edit fallback data on a data Widget", + * @SWG\Parameter( + * name="id", + * in="path", + * description="The Widget ID that this data is attached to", + * type="integer", + * required=true + * ), + * @SWG\Parameter( + * name="dataId", + * in="path", + * description="The ID of the data to be edited", + * type="integer", + * required=true + * ), + * @SWG\Parameter( + * name="data", + * in="path", + * description="A JSON formatted string containing a single data item for this widget's data type", + * type="string", + * required=true + * ), + * @SWG\Parameter( + * name="displayOrder", + * in="formData", + * description="Optional integer to say which position this data should appear if there is more than one data item", + * type="integer", + * required=false + * ), + * @SWG\Response( + * response=204, + * description="successful operation" + * ) + * ) + * @throws \Xibo\Support\Exception\GeneralException + */ + // phpcs:enable + public function edit(Request $request, Response $response, int $id, int $dataId): Response + { + // Check that we have permission to edit this widget + $widget = $this->widgetFactory->getById($id); + if (!$this->getUser()->checkEditable($widget)) { + throw new AccessDeniedException(__('This Widget is not shared with you with edit permission')); + } + + // Make sure this dataId is for this widget + $widgetData = $this->widgetDataFactory->getById($dataId); + + if ($id !== $widgetData->widgetId) { + throw new AccessDeniedException(__('This widget data does not belong to this widget')); + } + + // Get params and process the edit + $params = $this->getSanitizer($request->getParams()); + $widgetData->data = $this->parseAndValidate($widget, $params->getArray('data')); + $widgetData->displayOrder = $params->getInt('displayOrder', ['default' => 1]); + $widgetData->save(); + + // Successful + $this->getState()->hydrate([ + 'message' => __('Edited data for Widget'), + 'id' => $widgetData->id, + 'data' => $widgetData, + 'httpStatus' => 204, + ]); + + return $this->render($request, $response); + } + + // phpcs:disable + /** + * @SWG\Delete( + * path="/playlist/widget/data/{id}/{dataId}", + * operationId="deleteWidgetData", + * tags={"widget"}, + * summary="Delete data on a Widget", + * description="Delete fallback data on a data Widget", + * @SWG\Parameter( + * name="id", + * in="path", + * description="The Widget ID that this data is attached to", + * type="integer", + * required=true + * ), + * @SWG\Parameter( + * name="dataId", + * in="path", + * description="The ID of the data to be deleted", + * type="integer", + * required=true + * ), + * @SWG\Response( + * response=204, + * description="successful operation" + * ) + * ) + * @throws \Xibo\Support\Exception\GeneralException + */ + // phpcs:enable + public function delete(Request $request, Response $response, int $id, int $dataId): Response + { + // Check that we have permission to edit this widget + $widget = $this->widgetFactory->getById($id); + if (!$this->getUser()->checkEditable($widget)) { + throw new AccessDeniedException(__('This Widget is not shared with you with edit permission')); + } + + // Make sure this dataId is for this widget + $widgetData = $this->widgetDataFactory->getById($dataId); + + if ($id !== $widgetData->widgetId) { + throw new AccessDeniedException(__('This widget data does not belong to this widget')); + } + + // Delete it. + $widgetData->delete(); + + // Successful + $this->getState()->hydrate(['message' => __('Deleted'), 'httpStatus' => 204]); + + return $this->render($request, $response); + } + + // phpcs:disable + /** + * @SWG\Definition( + * definition="WidgetDataOrder", + * @SWG\Property( + * property="dataId", + * type="integer", + * description="Data ID" + * ), + * @SWG\Property( + * property="displayOrder", + * type="integer", + * description="Desired display order" + * ) + * ) + * + * @SWG\Post( + * path="/playlist/widget/data/{id}/order", + * operationId="orderWidgetData", + * tags={"widget"}, + * summary="Update the order of data on a Widget", + * description="Provide all data to be ordered on a widget", + * @SWG\Parameter( + * name="id", + * in="path", + * description="The Widget ID that this data is attached to", + * type="integer", + * required=true + * ), + * @SWG\Parameter( + * name="dataId", + * in="path", + * description="The ID of the data to be deleted", + * type="integer", + * required=true + * ), + * @SWG\Parameter( + * name="order", + * in="body", + * description="An array of any widget data records that should be re-ordered", + * @SWG\Schema( + * type="array", + * @SWG\Items(ref="WidgetDataOrder") + * ), + * required=true + * ), + * @SWG\Response( + * response=204, + * description="successful operation" + * ) + * ) + * @throws \Xibo\Support\Exception\GeneralException + */ + // phpcs:enable + public function setOrder(Request $request, Response $response, int $id): Response + { + // Check that we have permission to edit this widget + $widget = $this->widgetFactory->getById($id); + if (!$this->getUser()->checkEditable($widget)) { + throw new AccessDeniedException(__('This Widget is not shared with you with edit permission')); + } + + // Expect an array of `id` in order. + $params = $this->getSanitizer($request->getParams()); + foreach ($params->getArray('order', ['default' => []]) as $item) { + $itemParams = $this->getSanitizer($item); + + // Make sure this dataId is for this widget + $widgetData = $this->widgetDataFactory->getById($itemParams->getInt('dataId')); + $widgetData->displayOrder = $itemParams->getInt('displayOrder'); + + if ($id !== $widgetData->widgetId) { + throw new AccessDeniedException(__('This widget data does not belong to this widget')); + } + + // Save it + $widgetData->save(); + } + + // Successful + $this->getState()->hydrate([ + 'message' => __('Updated the display order for data on Widget'), + 'id' => $widget->widgetId, + 'httpStatus' => 204, + ]); + + return $this->render($request, $response); + } + + /** + * Parse and validate the data provided in params. + * @throws \Xibo\Support\Exception\InvalidArgumentException + * @throws \Xibo\Support\Exception\NotFoundException + */ + private function parseAndValidate(\Xibo\Entity\Widget $widget, array $item): array + { + // Check that this module is a data widget + $module = $this->moduleFactory->getByType($widget->type); + if (!$module->isDataProviderExpected()) { + throw new InvalidArgumentException(__('This is not a data widget')); + } + + if ($module->fallbackData !== 1) { + throw new InvalidArgumentException(__('Fallback data is not expected for this Widget')); + } + + // Parse out the data string we've been given and make sure it's valid according to this widget's datatype + $data = []; + $params = $this->getSanitizer($item); + + $dataType = $this->moduleFactory->getDataTypeById($module->dataType); + foreach ($dataType->fields as $field) { + if ($field->isRequired && !$params->hasParam($field->id)) { + throw new InvalidArgumentException(sprintf( + 'Data is missing a field called %s', + $field->title + )); + } + + $value = match ($field->type) { + 'number' => $params->getDouble($field->id), + default => $params->getString($field->id), + }; + $data[$field->id] = $value; + } + + return $data; + } +} diff --git a/lib/Dependencies/Controllers.php b/lib/Dependencies/Controllers.php index 8eef97f395..b6fe8a2157 100644 --- a/lib/Dependencies/Controllers.php +++ b/lib/Dependencies/Controllers.php @@ -24,6 +24,9 @@ use Psr\Container\ContainerInterface; +/** + * Helper class to add controllers to DI + */ class Controllers { /** @@ -147,6 +150,14 @@ public static function registerControllersWithDi() $controller->useBaseDependenciesService($c->get('ControllerBaseDependenciesService')); return $controller; }, + '\Xibo\Controller\Developer' => function (ContainerInterface $c) { + $controller = new \Xibo\Controller\Developer( + $c->get('moduleFactory'), + $c->get('moduleTemplateFactory') + ); + $controller->useBaseDependenciesService($c->get('ControllerBaseDependenciesService')); + return $controller; + }, '\Xibo\Controller\Display' => function (ContainerInterface $c) { $controller = new \Xibo\Controller\Display( $c->get('store'), @@ -240,7 +251,8 @@ public static function registerControllersWithDi() $c->get('pool'), $c->get('mediaService'), $c->get('widgetFactory'), - $c->get('playlistFactory') + $c->get('widgetDataFactory'), + $c->get('playlistFactory'), ); $controller->useBaseDependenciesService($c->get('ControllerBaseDependenciesService')); return $controller; @@ -471,7 +483,8 @@ public static function registerControllersWithDi() $c->get('dayPartFactory'), $c->get('scheduleReminderFactory'), $c->get('scheduleExclusionFactory'), - $c->get('syncGroupFactory') + $c->get('syncGroupFactory'), + $c->get('scheduleCriteriaFactory') ); $controller->useBaseDependenciesService($c->get('ControllerBaseDependenciesService')); return $controller; @@ -606,7 +619,17 @@ public static function registerControllersWithDi() $c->get('widgetFactory'), $c->get('transitionFactory'), $c->get('regionFactory'), - $c->get('widgetAudioFactory') + $c->get('widgetAudioFactory'), + $c->get('widgetDataFactory'), + ); + $controller->useBaseDependenciesService($c->get('ControllerBaseDependenciesService')); + return $controller; + }, + '\Xibo\Controller\WidgetData' => function (ContainerInterface $c) { + $controller = new \Xibo\Controller\WidgetData( + $c->get('widgetDataFactory'), + $c->get('widgetFactory'), + $c->get('moduleFactory'), ); $controller->useBaseDependenciesService($c->get('ControllerBaseDependenciesService')); return $controller; diff --git a/lib/Dependencies/Factories.php b/lib/Dependencies/Factories.php index 1c45bf0df0..5f8ba457aa 100644 --- a/lib/Dependencies/Factories.php +++ b/lib/Dependencies/Factories.php @@ -1,6 +1,6 @@ useBaseDependenciesService($c->get('RepositoryBaseDependenciesService')); return $repository; }, + 'apiRequestsFactory' => function (ContainerInterface $c) { + $repository = new \Xibo\Factory\ApplicationRequestsFactory(); + $repository->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService')); + return $repository; + }, 'applicationFactory' => function (ContainerInterface $c) { $repository = new \Xibo\Factory\ApplicationFactory( $c->get('user'), @@ -220,7 +228,8 @@ public static function registerFactoriesWithDi() $c->get('widgetAudioFactory'), $c->get('actionFactory'), $c->get('folderFactory'), - $c->get('fontFactory') + $c->get('fontFactory'), + $c->get('widgetDataFactory'), ); $repository->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService')); @@ -289,9 +298,14 @@ public static function registerFactoriesWithDi() 'moduleTemplateFactory' => function (ContainerInterface $c) { $repository = new \Xibo\Factory\ModuleTemplateFactory( $c->get('pool'), - $c->get('view') + $c->get('view'), ); - $repository->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService')); + $repository + ->setAclDependencies( + $c->get('user'), + $c->get('userFactory') + ) + ->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService')); return $repository; }, 'notificationFactory' => function (ContainerInterface $c) { @@ -387,7 +401,8 @@ public static function registerFactoriesWithDi() $c->get('userFactory'), $c->get('scheduleReminderFactory'), $c->get('scheduleExclusionFactory'), - $c->get('user') + $c->get('user'), + $c->get('scheduleCriteriaFactory') ); $repository->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService')); return $repository; @@ -406,6 +421,11 @@ public static function registerFactoriesWithDi() $repository->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService')); return $repository; }, + 'scheduleCriteriaFactory' => function (ContainerInterface $c) { + $repository = new \Xibo\Factory\ScheduleCriteriaFactory(); + $repository->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService')); + return $repository; + }, 'sessionFactory' => function (ContainerInterface $c) { $repository = new \Xibo\Factory\SessionFactory(); $repository->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService')); @@ -503,6 +523,11 @@ public static function registerFactoriesWithDi() $repository->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService')); return $repository; }, + 'widgetDataFactory' => function (ContainerInterface $c) { + $repository = new \Xibo\Factory\WidgetDataFactory(); + $repository->useBaseDependenciesService($c->get('RepositoryBaseDependenciesService')); + return $repository; + }, ]; } } diff --git a/lib/Entity/ApplicationRequest.php b/lib/Entity/ApplicationRequest.php new file mode 100644 index 0000000000..4406fa74be --- /dev/null +++ b/lib/Entity/ApplicationRequest.php @@ -0,0 +1,94 @@ +. + */ + +namespace Xibo\Entity; + +use Symfony\Component\EventDispatcher\EventDispatcherInterface; +use Xibo\Service\LogServiceInterface; +use Xibo\Storage\StorageServiceInterface; + +class ApplicationRequest implements \JsonSerializable +{ + use EntityTrait; + + /** + * @SWG\Property(description="The request ID") + * @var int + */ + public $requestId; + + /** + * @SWG\Property(description="The user ID") + * @var int + */ + public $userId; + + /** + * @SWG\Property(description="The application ID") + * @var string + */ + public $applicationId; + + /** + * @SWG\Property(description="The request route") + * @var string + */ + public $url; + + /** + * @SWG\Property(description="The request method") + * @var string + */ + public $method; + + /** + * @SWG\Property(description="The request start time") + * @var string + */ + public $startTime; + + /** + * @SWG\Property(description="The request end time") + * @var string + */ + public $endTime; + + /** + * @SWG\Property(description="The request duration") + * @var int + */ + public $duration; + + /** + * Entity constructor. + * @param StorageServiceInterface $store + * @param LogServiceInterface $log + * @param EventDispatcherInterface $dispatcher + */ + public function __construct( + StorageServiceInterface $store, + LogServiceInterface $log, + EventDispatcherInterface $dispatcher + ) { + $this->setCommonDependencies($store, $log, $dispatcher); + } +} diff --git a/lib/Entity/AuditLog.php b/lib/Entity/AuditLog.php index c1cf81169b..03815b25d4 100644 --- a/lib/Entity/AuditLog.php +++ b/lib/Entity/AuditLog.php @@ -1,8 +1,8 @@ validationStringDisplayProfile) ? $this->validationString : $this->validationStringDisplayProfile; + return empty($this->validationStringDisplayProfile) + ? $this->validationString + : $this->validationStringDisplayProfile; + } + + /** + * @return string + */ + public function getCreateAlertOn(): string + { + return empty($this->createAlertOnDisplayProfile) + ? $this->createAlertOn + : $this->createAlertOnDisplayProfile; } /** @@ -210,18 +237,24 @@ public function isReady() public function validate() { if (!v::stringType()->notEmpty()->length(1, 254)->validate($this->command)) { - throw new InvalidArgumentException(__('Please enter a command name between 1 and 254 characters'), - 'command'); + throw new InvalidArgumentException( + __('Please enter a command name between 1 and 254 characters'), + 'command' + ); } if (!v::alpha('_')->NoWhitespace()->notEmpty()->length(1, 50)->validate($this->code)) { - throw new InvalidArgumentException(__('Please enter a code between 1 and 50 characters containing only alpha characters and no spaces'), - 'code'); + throw new InvalidArgumentException( + __('Please enter a code between 1 and 50 characters containing only alpha characters and no spaces'), + 'code' + ); } if (!v::stringType()->length(0, 1000)->validate($this->description)) { - throw new InvalidArgumentException(__('Please enter a description between 1 and 1000 characters'), - 'description'); + throw new InvalidArgumentException( + __('Please enter a description between 1 and 1000 characters'), + 'description' + ); } } @@ -251,14 +284,35 @@ public function save($options = []) */ public function delete() { - $this->getStore()->update('DELETE FROM `command` WHERE `commandId` = :commandId', ['commandId' => $this->commandId]); + $this->getStore()->update( + 'DELETE FROM `command` WHERE `commandId` = :commandId', + ['commandId' => $this->commandId] + ); } private function add() { $this->commandId = $this->getStore()->insert(' - INSERT INTO `command` (`command`, `code`, `description`, `userId`, `commandString`, `validationString`, `availableOn`) - VALUES (:command, :code, :description, :userId, :commandString, :validationString, :availableOn) + INSERT INTO `command` ( + `command`, + `code`, + `description`, + `userId`, + `commandString`, + `validationString`, + `availableOn`, + `createAlertOn` + ) + VALUES ( + :command, + :code, + :description, + :userId, + :commandString, + :validationString, + :availableOn, + :createAlertOn + ) ', [ 'command' => $this->command, 'code' => $this->code, @@ -266,7 +320,8 @@ private function add() 'userId' => $this->userId, 'commandString' => $this->commandString, 'validationString' => $this->validationString, - 'availableOn' => $this->availableOn + 'availableOn' => $this->availableOn, + 'createAlertOn' => $this->createAlertOn ]); } @@ -280,7 +335,8 @@ private function edit() `userId` = :userId, `commandString` = :commandString, `validationString` = :validationString, - `availableOn` = :availableOn + `availableOn` = :availableOn, + `createAlertOn` = :createAlertOn WHERE `commandId` = :commandId ', [ 'command' => $this->command, @@ -290,7 +346,8 @@ private function edit() 'commandId' => $this->commandId, 'commandString' => $this->commandString, 'validationString' => $this->validationString, - 'availableOn' => $this->availableOn + 'availableOn' => $this->availableOn, + 'createAlertOn' => $this->createAlertOn ]); } } \ No newline at end of file diff --git a/lib/Entity/DataSet.php b/lib/Entity/DataSet.php index f68086b420..674f90e7e8 100644 --- a/lib/Entity/DataSet.php +++ b/lib/Entity/DataSet.php @@ -112,6 +112,19 @@ class DataSet implements \JsonSerializable */ public $isRemote = 0; + /** + * @SWG\Property(description="Flag to indicate whether this DataSet is Real time") + * @var int + */ + public $isRealTime = 0; + + /** + * @SWG\Property(description="Indicates the source of the data connector. Requires the Real time flag. Can be null, + * user-defined, or a connector.") + * @var string + */ + public $dataConnectorSource; + /** * @SWG\Property(description="Method to fetch the Data, can be GET or POST") * @var string @@ -467,10 +480,11 @@ public function getUniqueColumnValues($columns) * Get DataSet Data * @param array $filterBy * @param array $options + * @param array $extraParams Extra params to apply to the final query * @return array * @throws NotFoundException */ - public function getData($filterBy = [], $options = []) + public function getData($filterBy = [], $options = [], $extraParams = []) { $sanitizer = $this->getSanitizer($filterBy); @@ -486,8 +500,84 @@ public function getData($filterBy = [], $options = []) 'connection' => 'default' ], $options); - // Params - $params = []; + // Params (start from extraParams supplied) + $params = $extraParams; + + // Fetch display tag value/s + if ($filter != '' && $displayId != 0) { + // Define the regular expression to match [Tag:...] + $pattern = '/\[Tag:[^]]+\]/'; + + // Find all instances of [Tag:...] + preg_match_all($pattern, $filter, $matches); + + // Check if matches were found + if (!empty($matches[0])) { + $displayTags = []; + + // Iterate through the matches and process each tag + foreach ($matches[0] as $tagString) { + // Remove the enclosing [Tag:] brackets + $tagContent = substr($tagString, 5, -1); + + // Explode the tag content by ":" to separate tagName and defaultValue (if present) + $parts = explode(':', $tagContent); + $tagName = $parts[0]; + $defaultTagValue = $parts[1] ?? ''; + + $displayTags[] = [ + 'tagString' => $tagString, + 'tagName' => $tagName, + 'defaultValue' => $defaultTagValue + ]; + } + + $tagCount = 1; + + // Loop through each tag and get the actual tag value from the database + foreach ($displayTags as $tag) { + $tagSanitizer = $this->getSanitizer($tag); + + $tagName = $tagSanitizer->getString('tagName'); + $defaultTagValue = $tagSanitizer->getString('defaultValue'); + $tagString = $tag['tagString']; + + $query = 'SELECT `lktagdisplaygroup`.`value` AS tagValue + FROM `lkdisplaydg` + INNER JOIN `displaygroup` + ON `displaygroup`.displayGroupId = `lkdisplaydg`.displayGroupId + AND `displaygroup`.isDisplaySpecific = 1 + INNER JOIN `lktagdisplaygroup` + ON `lktagdisplaygroup`.displayGroupId = `lkdisplaydg`.displayGroupId + INNER JOIN `tag` ON `lktagdisplaygroup`.tagId = `tag`.tagId + WHERE `lkdisplaydg`.displayId = :displayId + AND `tag`.`tag` = :tagName + LIMIT 1'; + + $tagParams = [ + 'displayId' => $displayId, + 'tagName' => $tagName + ]; + + // Execute the query + $results = $this->getStore()->select($query, $tagParams); + + // Determine the tag value + if (!empty($results)) { + $tagValue = !empty($results[0]['tagValue']) ? $results[0]['tagValue'] : ''; + } else { + // Use default tag value if no tag is found + $tagValue = $defaultTagValue; + } + + // Replace the tag string in the filter with the actual tag value or default value + $filter = str_replace($tagString, ':tagValue_'.$tagCount, $filter); + $params['tagValue_'.$tagCount] = $tagValue; + + $tagCount++; + } + } + } // Sanitize the filter options provided // Get the Latitude and Longitude ( might be used in a formula ) @@ -526,11 +616,21 @@ public function getData($filterBy = [], $options = []) continue; } + $count = 0; $formula = str_ireplace( Sql::DISALLOWED_KEYWORDS, '', - htmlspecialchars_decode($column->formula, ENT_QUOTES) + htmlspecialchars_decode($column->formula, ENT_QUOTES), + $count ); + + if ($count > 0) { + $this->getLog()->error( + 'Formula contains disallowed keywords on DataSet ID ' . $this->dataSetId + ); + continue; + } + $formula = str_replace('[DisplayId]', $displayId, $formula); $heading = str_replace('[DisplayGeoLocation]', $displayGeoLocation, $formula) @@ -953,6 +1053,17 @@ public function delete() throw new InvalidArgumentException(__('Cannot delete because DataSet is in use on one or more Layouts.'), 'dataSetId'); } + if ($this->getStore()->exists(' + SELECT `eventId` + FROM `schedule` + WHERE `dataSetId` = :dataSetId + ', ['dataSetId' => $this->dataSetId])) { + throw new InvalidArgumentException( + __('Cannot delete because DataSet is in use on one or more Data Connector schedules.'), + 'dataSetId' + ); + } + // Delete Permissions foreach ($this->permissions as $permission) { /* @var Permission $permission */ @@ -990,8 +1101,10 @@ public function deleteData() */ private function add() { - $columns = 'DataSet, Description, UserID, `code`, `isLookup`, `isRemote`, `lastDataEdit`, `lastClear`, `folderId`, `permissionsFolderId`'; - $values = ':dataSet, :description, :userId, :code, :isLookup, :isRemote, :lastDataEdit, :lastClear, :folderId, :permissionsFolderId'; + $columns = 'DataSet, Description, UserID, `code`, `isLookup`, `isRemote`, `lastDataEdit`,'; + $columns .= '`lastClear`, `folderId`, `permissionsFolderId`, `isRealTime`, `dataConnectorSource`'; + $values = ':dataSet, :description, :userId, :code, :isLookup, :isRemote,'; + $values .= ':lastDataEdit, :lastClear, :folderId, :permissionsFolderId, :isRealTime, :dataConnectorSource'; $params = [ 'dataSet' => $this->dataSet, @@ -1000,10 +1113,12 @@ private function add() 'code' => ($this->code == '') ? null : $this->code, 'isLookup' => $this->isLookup, 'isRemote' => $this->isRemote, + 'isRealTime' => $this->isRealTime, + 'dataConnectorSource' => $this->dataConnectorSource, 'lastDataEdit' => 0, 'lastClear' => 0, 'folderId' => ($this->folderId === null) ? 1 : $this->folderId, - 'permissionsFolderId' => ($this->permissionsFolderId == null) ? 1 : $this-> permissionsFolderId + 'permissionsFolderId' => ($this->permissionsFolderId == null) ? 1 : $this-> permissionsFolderId, ]; // Insert the extra columns we expect for a remote DataSet @@ -1046,7 +1161,19 @@ private function add() */ private function edit() { - $sql = 'DataSet = :dataSet, Description = :description, userId = :userId, lastDataEdit = :lastDataEdit, `code` = :code, `isLookup` = :isLookup, `isRemote` = :isRemote, `folderId` = :folderId, `permissionsFolderId` = :permissionsFolderId '; + $sql = ' + `DataSet` = :dataSet, + `Description` = :description, + `userId` = :userId, + `lastDataEdit` = :lastDataEdit, + `code` = :code, + `isLookup` = :isLookup, + `isRemote` = :isRemote, + `isRealTime` = :isRealTime, + `dataConnectorSource` = :dataConnectorSource, + `folderId` = :folderId, + `permissionsFolderId` = :permissionsFolderId + '; $params = [ 'dataSetId' => $this->dataSetId, 'dataSet' => $this->dataSet, @@ -1056,6 +1183,8 @@ private function edit() 'code' => $this->code, 'isLookup' => $this->isLookup, 'isRemote' => $this->isRemote, + 'isRealTime' => $this->isRealTime, + 'dataConnectorSource' => $this->dataConnectorSource, 'folderId' => $this->folderId, 'permissionsFolderId' => $this->permissionsFolderId ]; @@ -1151,15 +1280,22 @@ public function addRow($row) $this->lastDataEdit = Carbon::now()->format('U'); // Build a query to insert + $params = []; $keys = array_keys($row); - $keys[] = 'id'; - $values = array_values($row); - $values[] = NULL; + $sql = 'INSERT INTO `dataset_' . $this->dataSetId + . '` (`' . implode('`, `', $keys) . '`) VALUES ('; - $sql = 'INSERT INTO `dataset_' . $this->dataSetId . '` (`' . implode('`, `', $keys) . '`) VALUES (' . implode(',', array_fill(0, count($values), '?')) . ')'; + $i = 0; + foreach ($row as $value) { + $i++; + $sql .= ':value' . $i . ','; + $params['value' . $i] = $value; + } + $sql = rtrim($sql, ','); + $sql .= ')'; - return $this->getStore()->insert($sql, $values); + return $this->getStore()->insert($sql, $params); } /** @@ -1227,4 +1363,32 @@ public function clearCache() $this->getLog()->debug('Force sync detected, clear cache for remote dataSet ID ' . $this->dataSetId); $this->pool->deleteItem('/dataset/cache/' . $this->dataSetId); } + + private function getScriptPath(): string + { + return $this->config->getSetting('LIBRARY_LOCATION') + . 'data_connectors' . DIRECTORY_SEPARATOR + . 'dataSet_' . $this->dataSetId . '.js'; + } + + public function getScript(): string + { + if ($this->isRealTime == 0) { + return ''; + } + + $path = $this->getScriptPath(); + return (file_exists($path)) + ? file_get_contents($path) + : ''; + } + + public function saveScript(string $script): void + { + if ($this->isRealTime == 1) { + $path = $this->getScriptPath(); + file_put_contents($path, $script); + file_put_contents($path . '.md5', md5_file($path)); + } + } } diff --git a/lib/Entity/DataSetColumn.php b/lib/Entity/DataSetColumn.php index 933c5cab07..b153f3b43a 100644 --- a/lib/Entity/DataSetColumn.php +++ b/lib/Entity/DataSetColumn.php @@ -1,6 +1,6 @@ . */ - namespace Xibo\Entity; + use Respect\Validation\Validator as v; use Xibo\Factory\DataSetColumnFactory; use Xibo\Factory\DataSetColumnTypeFactory; @@ -30,6 +30,7 @@ use Xibo\Storage\StorageServiceInterface; use Xibo\Support\Exception\InvalidArgumentException; use Xibo\Support\Exception\NotFoundException; +use Xibo\Widget\Definition\Sql; /** * Class DataSetColumn @@ -299,7 +300,19 @@ public function validate($options = []) && !str_starts_with($this->formula, '$') ) { try { - $formula = str_replace('[DisplayId]', 0, $this->formula); + $count = 0; + $formula = str_ireplace( + Sql::DISALLOWED_KEYWORDS, + '', + htmlspecialchars_decode($this->formula, ENT_QUOTES), + $count + ); + + if ($count > 0) { + throw new InvalidArgumentException(__('Formula contains disallowed keywords.')); + } + + $formula = str_replace('[DisplayId]', 0, $formula); $formula = str_replace('[DisplayGeoLocation]', "ST_GEOMFROMTEXT('POINT(51.504 -0.104)')", $formula); $this->getStore()->select(' @@ -453,7 +466,7 @@ private function sqlDataType() switch ($this->dataTypeId) { case 2: - $dataType = 'FLOAT'; + $dataType = 'DOUBLE'; break; case 3: diff --git a/lib/Entity/Display.php b/lib/Entity/Display.php index 8c04c7abc0..c96a7ebcd0 100644 --- a/lib/Entity/Display.php +++ b/lib/Entity/Display.php @@ -512,6 +512,36 @@ class Display implements \JsonSerializable */ public $syncGroupId; + /** + * @SWG\Property(description="The OS version of the Display") + * @var string + */ + public $osVersion; + + /** + * @SWG\Property(description="The SDK version of the Display") + * @var string + */ + public $osSdk; + + /** + * @SWG\Property(description="The manufacturer of the Display") + * @var string + */ + public $manufacturer; + + /** + * @SWG\Property(description="The brand of the Display") + * @var string + */ + public $brand; + + /** + * @SWG\Property(description="The model of the Display") + * @var string + */ + public $model; + /** @var array The configuration from the Display Profile */ private $profileConfig; @@ -677,6 +707,37 @@ public function isAuditing(): bool return (!empty($this->auditingUntil) && $this->auditingUntil >= Carbon::now()->format('U')); } + /** + * Does this display has elevated log level? + * @return bool + * @throws NotFoundException + */ + public function isElevatedLogging(): bool + { + $elevatedUntil = $this->getSetting('elevateLogsUntil', 0); + + $this->getLog()->debug(sprintf( + 'Testing whether this display has elevated log level. %d vs %d.', + $elevatedUntil, + Carbon::now()->format('U') + )); + + return (!empty($elevatedUntil) && $elevatedUntil >= Carbon::now()->format('U')); + } + + /** + * Get current log level for this Display + * @return string + * @throws NotFoundException + */ + public function getLogLevel(): string + { + $restingLogLevel = $this->getSetting('logLevel', 'error'); + $isElevated = $this->isElevatedLogging(); + + return $isElevated ? 'debug' : $restingLogLevel; + } + /** * Set the Media Status to Incomplete */ @@ -945,8 +1006,8 @@ public function delete() private function add() { $this->displayId = $this->getStore()->insert(' - INSERT INTO display (display, auditingUntil, defaultlayoutid, license, licensed, lastAccessed, inc_schedule, email_alert, alert_timeout, clientAddress, xmrChannel, xmrPubKey, lastCommandSuccess, macAddress, lastChanged, lastWakeOnLanCommandSent, client_type, client_version, client_code, overrideConfig, newCmsAddress, newCmsKey, commercialLicence, lanIpAddress, syncGroupId) - VALUES (:display, :auditingUntil, :defaultlayoutid, :license, :licensed, :lastAccessed, :inc_schedule, :email_alert, :alert_timeout, :clientAddress, :xmrChannel, :xmrPubKey, :lastCommandSuccess, :macAddress, :lastChanged, :lastWakeOnLanCommandSent, :clientType, :clientVersion, :clientCode, :overrideConfig, :newCmsAddress, :newCmsKey, :commercialLicence, :lanIpAddress, :syncGroupId) + INSERT INTO display (display, auditingUntil, defaultlayoutid, license, licensed, lastAccessed, inc_schedule, email_alert, alert_timeout, clientAddress, xmrChannel, xmrPubKey, lastCommandSuccess, macAddress, lastChanged, lastWakeOnLanCommandSent, client_type, client_version, client_code, overrideConfig, newCmsAddress, newCmsKey, commercialLicence, lanIpAddress, syncGroupId, osVersion, osSdk, manufacturer, brand, model) + VALUES (:display, :auditingUntil, :defaultlayoutid, :license, :licensed, :lastAccessed, :inc_schedule, :email_alert, :alert_timeout, :clientAddress, :xmrChannel, :xmrPubKey, :lastCommandSuccess, :macAddress, :lastChanged, :lastWakeOnLanCommandSent, :clientType, :clientVersion, :clientCode, :overrideConfig, :newCmsAddress, :newCmsKey, :commercialLicence, :lanIpAddress, :syncGroupId, :osVersion, :osSdk, :manufacturer, :brand, :model) ', [ 'display' => $this->display, 'auditingUntil' => 0, @@ -973,6 +1034,11 @@ private function add() 'commercialLicence' => $this->commercialLicence, 'lanIpAddress' => empty($this->lanIpAddress) ? null : $this->lanIpAddress, 'syncGroupId' => empty($this->syncGroupId) ? null : $this->syncGroupId, + 'osVersion' => $this->osVersion, + 'osSdk' => $this->osSdk, + 'manufacturer' => $this->manufacturer, + 'brand' => $this->brand, + 'model' => $this->model, ]); @@ -1060,6 +1126,11 @@ private function edit($options = []) screenShotRequested = :screenShotRequested, storageAvailableSpace = :storageAvailableSpace, storageTotalSpace = :storageTotalSpace, + osVersion = :osVersion, + osSdk = :osSdk, + manufacturer = :manufacturer, + brand = :brand, + model = :model, xmrChannel = :xmrChannel, xmrPubKey = :xmrPubKey, `lastCommandSuccess` = :lastCommandSuccess, @@ -1132,7 +1203,12 @@ private function edit($options = []) 'webkeySerial' => empty($this->webkeySerial) ? null : $this->webkeySerial, 'lanIpAddress' => empty($this->lanIpAddress) ? null : $this->lanIpAddress, 'syncGroupId' => empty($this->syncGroupId) ? null : $this->syncGroupId, - 'displayId' => $this->displayId + 'displayId' => $this->displayId, + 'osVersion' => $this->osVersion, + 'osSdk' => $this->osSdk, + 'manufacturer' => $this->manufacturer, + 'brand' => $this->brand, + 'model' => $this->model, ]); // Maintain the Display Group diff --git a/lib/Entity/DisplayEvent.php b/lib/Entity/DisplayEvent.php index 4d6f814461..2c29000200 100644 --- a/lib/Entity/DisplayEvent.php +++ b/lib/Entity/DisplayEvent.php @@ -1,8 +1,8 @@ . */ - namespace Xibo\Entity; + use Carbon\Carbon; +use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Xibo\Service\LogServiceInterface; use Xibo\Storage\StorageServiceInterface; @@ -39,55 +40,186 @@ class DisplayEvent implements \JsonSerializable public $eventDate; public $start; public $end; + public $eventTypeId; + public $refId; + public $detail; /** * Entity constructor. * @param StorageServiceInterface $store * @param LogServiceInterface $log - * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $dispatcher + * @param EventDispatcherInterface $dispatcher */ - public function __construct($store, $log, $dispatcher) - { + public function __construct( + StorageServiceInterface $store, + LogServiceInterface $log, + EventDispatcherInterface $dispatcher + ) { $this->setCommonDependencies($store, $log, $dispatcher); } - public function save() + /** + * Save displayevent + * @return void + */ + public function save(): void { - if ($this->displayEventId == null) + if ($this->displayEventId == null) { $this->add(); - else + } else { $this->edit(); + } } - private function add() + /** + * Add a new displayevent + * @return void + */ + private function add(): void { $this->displayEventId = $this->getStore()->insert(' - INSERT INTO `displayevent` (eventDate, start, end, displayID) - VALUES (:eventDate, :start, :end, :displayId) + INSERT INTO `displayevent` (eventDate, start, end, displayID, eventTypeId, refId, detail) + VALUES (:eventDate, :start, :end, :displayId, :eventTypeId, :refId, :detail) ', [ 'eventDate' => Carbon::now()->format('U'), 'start' => $this->start, 'end' => $this->end, - 'displayId' => $this->displayId + 'displayId' => $this->displayId, + 'eventTypeId' => $this->eventTypeId, + 'refId' => $this->refId, + 'detail' => $this->detail, ]); } - private function edit() + /** + * Edit displayevent + * @return void + */ + private function edit(): void { - $this->getStore()->update('UPDATE `displayevent` SET `end` = :end WHERE statId = :statId', [ - 'displayevent' => $this->displayEventId, 'end' => $this->end + $this->getStore()->update(' + UPDATE displayevent + SET end = :end, + displayId = :displayId, + eventTypeId = :eventTypeId, + refId = :refId, + detail = :detail + WHERE displayEventId = :displayEventId + ', [ + 'displayEventId' => $this->displayEventId, + 'end' => $this->end, + 'displayId' => $this->displayId, + 'eventTypeId' => $this->eventTypeId, + 'refId' => $this->refId, + 'detail' => $this->detail, ]); } + /** - * Record the display coming online - * @param $displayId + * Record end date for specified display and event type. + * @param int $displayId + * @param int|null $date + * @param int $eventTypeId + * @return void */ - public function displayUp($displayId) + public function eventEnd(int $displayId, int $eventTypeId = 1, string $detail = null, ?int $date = null): void { - $this->getStore()->update('UPDATE `displayevent` SET `end` = :toDt WHERE displayId = :displayId AND `end` IS NULL', [ - 'toDt' => Carbon::now()->format('U'), - 'displayId' => $displayId - ]); + $this->getLog()->debug( + sprintf( + 'displayEvent : end display alert for eventType %s and displayId %d', + $this->getEventNameFromId($eventTypeId), + $displayId + ) + ); + + $this->getStore()->update( + "UPDATE `displayevent` SET `end` = :toDt, `detail` = CONCAT_WS('. ', NULLIF(`detail`, ''), :detail) + WHERE displayId = :displayId + AND `end` IS NULL + AND eventTypeId = :eventTypeId", + [ + 'toDt' => $date ?? Carbon::now()->format('U'), + 'displayId' => $displayId, + 'eventTypeId' => $eventTypeId, + 'detail' => $detail, + ] + ); + } + + /** + * Record end date for specified display, event type and refId + * @param int $displayId + * @param int $eventTypeId + * @param int $refId + * @param int|null $date + * @return void + */ + public function eventEndByReference(int $displayId, int $eventTypeId, int $refId, string $detail = null, ?int $date = null): void + { + $this->getLog()->debug( + sprintf( + 'displayEvent : end display alert for refId %d, displayId %d and eventType %s', + $refId, + $displayId, + $this->getEventNameFromId($eventTypeId), + ) + ); + + // When updating the event end, concatenate the end message to the current message + $this->getStore()->update( + "UPDATE `displayevent` SET + `end` = :toDt, + `detail` = CONCAT_WS('. ', NULLIF(`detail`, ''), :detail) + WHERE displayId = :displayId + AND `end` IS NULL + AND eventTypeId = :eventTypeId + AND refId = :refId", + [ + 'toDt' => $date ?? Carbon::now()->format('U'), + 'displayId' => $displayId, + 'eventTypeId' => $eventTypeId, + 'refId' => $refId, + 'detail' => $detail, + ] + ); + } + + /** + * Match event type string from log to eventTypeId in database. + * @param string $eventType + * @return int + */ + public function getEventIdFromString(string $eventType): int + { + return match ($eventType) { + 'Display Up/down' => 1, + 'App Start' => 2, + 'Power Cycle' => 3, + 'Network Cycle' => 4, + 'TV Monitoring' => 5, + 'Player Fault' => 6, + 'Command' => 7, + default => 8 + }; + } + + /** + * Match eventTypeId from database to string event name. + * @param int $eventTypeId + * @return string + */ + public function getEventNameFromId(int $eventTypeId): string + { + return match ($eventTypeId) { + 1 => __('Display Up/down'), + 2 => __('App Start'), + 3 => __('Power Cycle'), + 4 => __('Network Cycle'), + 5 => __('TV Monitoring'), + 6 => __('Player Fault'), + 7 => __('Command'), + default => __('Other') + }; } -} \ No newline at end of file +} diff --git a/lib/Entity/DisplayProfile.php b/lib/Entity/DisplayProfile.php index 9755331002..7b25e3ee3f 100644 --- a/lib/Entity/DisplayProfile.php +++ b/lib/Entity/DisplayProfile.php @@ -1,6 +1,6 @@ getId() == $command->getId()) { $alreadyAssigned->commandString = $command->commandString; $alreadyAssigned->validationString = $command->validationString; + $alreadyAssigned->createAlertOn = $command->createAlertOn; $assigned = true; break; } } - if (!$assigned) + if (!$assigned) { $this->commands[] = $command; + } } /** @@ -481,22 +485,41 @@ private function manageAssignments() foreach ($this->commands as $command) { /* @var Command $command */ $this->getStore()->update(' - INSERT INTO `lkcommanddisplayprofile` (`commandId`, `displayProfileId`, `commandString`, `validationString`) VALUES - (:commandId, :displayProfileId, :commandString, :validationString) ON DUPLICATE KEY UPDATE commandString = :commandString2, validationString = :validationString2 + INSERT INTO `lkcommanddisplayprofile` ( + `commandId`, + `displayProfileId`, + `commandString`, + `validationString`, + `createAlertOn` + ) + VALUES ( + :commandId, + :displayProfileId, + :commandString, + :validationString, + :createAlertOn + ) + ON DUPLICATE KEY UPDATE + commandString = :commandString2, + validationString = :validationString2, + createAlertOn = :createAlertOn2 ', [ 'commandId' => $command->commandId, 'displayProfileId' => $this->displayProfileId, 'commandString' => $command->commandString, 'validationString' => $command->validationString, + 'createAlertOn' => $command->createAlertOn, 'commandString2' => $command->commandString, - 'validationString2' => $command->validationString + 'validationString2' => $command->validationString, + 'createAlertOn2' => $command->createAlertOn ]); } // Unlink $params = ['displayProfileId' => $this->displayProfileId]; - $sql = 'DELETE FROM `lkcommanddisplayprofile` WHERE `displayProfileId` = :displayProfileId AND `commandId` NOT IN (0'; + $sql = 'DELETE FROM `lkcommanddisplayprofile` + WHERE `displayProfileId` = :displayProfileId AND `commandId` NOT IN (0'; $i = 0; foreach ($this->commands as $command) { @@ -554,7 +577,10 @@ public function getCustomEditTemplate() if ($this->isCustom()) { return $this->displayProfileFactory->getCustomEditTemplate($this->getClientType()); } else { - $this->getLog()->error('Attempting to get Custom Edit template for Display Profile ' . $this->getClientType() . ' that is not custom'); + $this->getLog()->error( + 'Attempting to get Custom Edit template for Display Profile ' . + $this->getClientType() . ' that is not custom' + ); return null; } } @@ -563,4 +589,22 @@ public function handleCustomFields($sanitizedParams, $config = null, $display = { return $this->displayProfileFactory->handleCustomFields($this, $sanitizedParams, $config, $display); } + + /** + * Does this display profile has elevated log level? + * @return bool + * @throws NotFoundException + */ + public function isElevatedLogging(): bool + { + $elevatedUntil = $this->getSetting('elevateLogsUntil', 0); + + $this->getLog()->debug(sprintf( + 'Testing whether this display profile has elevated log level. %d vs %d.', + $elevatedUntil, + Carbon::now()->format('U') + )); + + return (!empty($elevatedUntil) && $elevatedUntil >= Carbon::now()->format('U')); + } } diff --git a/lib/Entity/Layout.php b/lib/Entity/Layout.php index 671c44630e..ce6d09cdd6 100644 --- a/lib/Entity/Layout.php +++ b/lib/Entity/Layout.php @@ -39,6 +39,7 @@ use Xibo\Factory\PlaylistFactory; use Xibo\Factory\RegionFactory; use Xibo\Factory\TagFactory; +use Xibo\Factory\WidgetDataFactory; use Xibo\Helper\DateFormatHelper; use Xibo\Helper\Environment; use Xibo\Helper\Profiler; @@ -1896,16 +1897,20 @@ private function decorateActionXmlNode(\DOMElement $node, Action $action): void /** * Export the Layout as a ZipArchive * @param DataSetFactory $dataSetFactory + * @param \Xibo\Factory\WidgetDataFactory $widgetDataFactory * @param string $fileName * @param array $options - * @throws GeneralException - * @throws InvalidArgumentException - * @throws NotFoundException + * @throws \Xibo\Support\Exception\GeneralException */ - public function toZip($dataSetFactory, $fileName, $options = []) - { + public function toZip( + DataSetFactory $dataSetFactory, + WidgetDataFactory $widgetDataFactory, + string $fileName, + array $options = [] + ): void { $options = array_merge([ - 'includeData' => false + 'includeData' => false, + 'includeFallback' => false, ], $options); // Load the complete layout @@ -2055,13 +2060,15 @@ public function toZip($dataSetFactory, $fileName, $options = []) $dataSetIds = []; $dataSets = []; + // Handle any Widget Data + $widgetData = []; + // Playlists $playlistMappings = []; $playlistDefinitions = []; $nestedPlaylistDefinitions = []; foreach ($this->getAllWidgets() as $widget) { - /** @var Widget $widget */ if ($widget->type == 'dataset') { $dataSetId = $widget->getOptionValue('dataSetId', 0); @@ -2082,7 +2089,7 @@ public function toZip($dataSetFactory, $fileName, $options = []) $dataSetIds[] = $dataSet->dataSetId; $dataSets[] = $dataSet; } - } elseif ($widget->type == 'subplaylist') { + } else if ($widget->type == 'subplaylist') { $playlistItems = json_decode($widget->getOptionValue('subPlaylists', '[]'), true); foreach ($playlistItems as $playlistItem) { $count = 1; @@ -2110,6 +2117,14 @@ public function toZip($dataSetFactory, $fileName, $options = []) ); } } + + // Handle fallback data? + if ($options['includeFallback'] == 1) { + $fallback = $widgetDataFactory->getByWidgetId($widget->widgetId); + if (count($fallback) > 0) { + $widgetData[$widget->widgetId] = $fallback; + } + } } // Add the mappings file to the ZIP @@ -2117,6 +2132,11 @@ public function toZip($dataSetFactory, $fileName, $options = []) $zip->addFromString('dataSet.json', json_encode($dataSets, JSON_PRETTY_PRINT)); } + // Add widget data + if ($options['includeFallback'] == 1 && $widgetData != []) { + $zip->addFromString('fallback.json', json_encode($widgetData, JSON_PRETTY_PRINT)); + } + // Add the Playlist definitions to the ZIP if ($playlistDefinitions != []) { $zip->addFromString('playlist.json', json_encode($playlistDefinitions, JSON_PRETTY_PRINT)); diff --git a/lib/Entity/LogEntry.php b/lib/Entity/LogEntry.php index b1939f1043..f092236f9d 100644 --- a/lib/Entity/LogEntry.php +++ b/lib/Entity/LogEntry.php @@ -1,8 +1,8 @@ mediaId != 0) { $checkSQL .= ' AND mediaId <> :mediaId AND IsEdited = 0 '; @@ -399,8 +400,14 @@ public function validate($options) $result = $this->getStore()->select($checkSQL, $params); - if (count($result) > 0) - throw new DuplicateEntityException(__('Media you own already has this name. Please choose another.')); + if (count($result) > 0) { + // If the media is imported from a provider (ie Pixabay, etc), use it instead of importing again. + if (isset($this->apiRef) && $this->apiRef === $result[0]['apiRef']) { + $this->mediaId = intval($result[0]['mediaId']); + } else { + throw new DuplicateEntityException(__('Media you own already has this name. Please choose another.')); + } + } } /** @@ -447,7 +454,8 @@ public function save($options = []) 'validate' => true, 'oldMedia' => null, 'deferred' => false, - 'saveTags' => true + 'saveTags' => true, + 'audit' => true, ], $options); if ($options['validate'] && $this->mediaType !== 'module') { @@ -461,13 +469,15 @@ public function save($options = []) // Always set force to true as we always want to save new files $this->isSaveRequired = true; - $this->audit($this->mediaId, 'Added', [ - 'mediaId' => $this->mediaId, - 'name' => $this->name, - 'mediaType' => $this->mediaType, - 'fileName' => $this->fileName, - 'folderId' => $this->folderId - ]); + if ($options['audit']) { + $this->audit($this->mediaId, 'Added', [ + 'mediaId' => $this->mediaId, + 'name' => $this->name, + 'mediaType' => $this->mediaType, + 'fileName' => $this->fileName, + 'folderId' => $this->folderId + ]); + } } else { $this->edit(); @@ -478,7 +488,9 @@ public function save($options = []) || ($expires > 0 && $expires < Carbon::now()->format('U')) || ($this->mediaType === 'module' && !file_exists($this->downloadSink(false))); - $this->audit($this->mediaId, 'Updated', $this->getChangedProperties()); + if ($options['audit']) { + $this->audit($this->mediaId, 'Updated', $this->getChangedProperties()); + } } if ($options['deferred']) { @@ -549,6 +561,29 @@ public function delete($options = []) $this->load(['deleting' => true]); + // Prepare some contexts for auditing + $auditMessage = 'Deleted'; + $auditContext = [ + 'mediaId' => $this->mediaId, + 'name' => $this->name, + 'mediaType' => $this->mediaType, + 'fileName' => $this->fileName, + ]; + + // Should we bring back this items parent? + try { + // Revert + $parentMedia = $this->mediaFactory->getParentById($this->mediaId); + $parentMedia->isEdited = 0; + $parentMedia->parentId = null; + $parentMedia->save(['validate' => false, 'audit' => false]); + + $auditMessage .= ' and reverted old revision'; + $auditContext['revertedMediaId'] = $parentMedia->mediaId; + } catch (NotFoundException) { + // No parent, this is fine. + } + foreach ($this->permissions as $permission) { /* @var Permission $permission */ $permission->delete(); @@ -559,7 +594,7 @@ public function delete($options = []) $this->deleteRecord(); $this->deleteFile(); - $this->audit($this->mediaId, 'Deleted', ['mediaId' => $this->mediaId, 'name' => $this->name, 'mediaType' => $this->mediaType, 'fileName' => $this->fileName]); + $this->audit($this->mediaId, $auditMessage, $auditContext); } /** diff --git a/lib/Entity/Module.php b/lib/Entity/Module.php index 9b75b0e6e5..10c9c84fc5 100644 --- a/lib/Entity/Module.php +++ b/lib/Entity/Module.php @@ -104,6 +104,12 @@ class Module implements \JsonSerializable */ public $dataCacheKey; + /** + * @SWG\Property(description="Is fallback data allowed for this module? Only applicable for a Data Widget") + * @var int + */ + public $fallbackData; + /** * @SWG\Property(description="Is specific to a Layout or can be uploaded to the Library?") * @var int @@ -284,6 +290,7 @@ class Module implements \JsonSerializable public $errors; // + public $allowPreview; /** @var ModuleFactory */ private $moduleFactory; diff --git a/lib/Entity/ModuleTemplate.php b/lib/Entity/ModuleTemplate.php index c9532bef4b..30f3975c1a 100644 --- a/lib/Entity/ModuleTemplate.php +++ b/lib/Entity/ModuleTemplate.php @@ -37,6 +37,9 @@ class ModuleTemplate implements \JsonSerializable use EntityTrait; use ModulePropertyTrait; + /** @var int The database ID */ + public $id; + /** * @SWG\Property() * @var string The templateId @@ -112,6 +115,12 @@ class ModuleTemplate implements \JsonSerializable */ public $isVisible = true; + /** + * @SWG\Property() + * @var bool Is Enabled? + */ + public $isEnabled = true; + /** * @SWG\Property(description="An array of additional module specific group properties") * @var \Xibo\Widget\Definition\PropertyGroup[] @@ -138,13 +147,31 @@ class ModuleTemplate implements \JsonSerializable /** @var string A data parser for elements */ public $onElementParseData; - + /** @var bool $isError Does this module have any errors? */ public $isError; /** @var string[] $errors An array of errors this module has. */ public $errors; + /** @var string $ownership Who owns this file? system|custom|user */ + public $ownership; + + /** @var int $ownerId User ID of the owner of this template */ + public $ownerId; + + /** + * @SWG\Property(description="A comma separated list of groups/users with permissions to this template") + * @var string + */ + public $groupsWithPermissions; + /** @var string $xml The XML used to build this template */ + + private $xml; + + /** @var \DOMDocument The DOM Document for this templates XML */ + private $document; + /** @var \Xibo\Factory\ModuleTemplateFactory */ private $moduleTemplateFactory; @@ -154,17 +181,36 @@ class ModuleTemplate implements \JsonSerializable * @param LogServiceInterface $log * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $dispatcher * @param \Xibo\Factory\ModuleTemplateFactory $moduleTemplateFactory + * @param string $file The file this template resides in */ public function __construct( StorageServiceInterface $store, LogServiceInterface $log, EventDispatcherInterface $dispatcher, - ModuleTemplateFactory $moduleTemplateFactory + ModuleTemplateFactory $moduleTemplateFactory, + private readonly string $file ) { $this->setCommonDependencies($store, $log, $dispatcher); + $this->setPermissionsClass('Xibo\Entity\ModuleTemplate'); $this->moduleTemplateFactory = $moduleTemplateFactory; } + public function getId() + { + return $this->id; + } + + public function getOwnerId() + { + return $this->ownerId; + } + + public function __clone() + { + $this->id = null; + $this->templateId = null; + } + /** * Get assets * @return \Xibo\Widget\Definition\Asset[] @@ -173,4 +219,156 @@ public function getAssets(): array { return $this->assets; } + + /** + * Set XML for this Module Template + * @param string $xml + * @return void + */ + public function setXml(string $xml): void + { + $this->xml = $xml; + } + + /** + * Get XML for this Module Template + * @return string + */ + public function getXml(): string + { + // for system templates + if ($this->file !== 'database') { + $xml = new \DOMDocument(); + // load whole file to document + $xml->loadXML(file_get_contents($this->file)); + // go through template tags + foreach ($xml->getElementsByTagName('template') as $templateXml) { + if ($templateXml instanceof \DOMElement) { + foreach ($templateXml->childNodes as $childNode) { + if ($childNode instanceof \DOMElement) { + // match the template to what was requested + // set the xml and return it. + if ($childNode->nodeName === 'id' && $childNode->nodeValue == $this->templateId) { + $this->setXml($xml->saveXML($templateXml)); + } + } + } + } + } + } + return $this->xml; + } + + /** + * Set Document + * @param \DOMDocument $document + * @return void + */ + public function setDocument(\DOMDocument $document): void + { + $this->document = $document; + } + + /** + * Get this templates DOM document + * @return \DOMDocument + */ + public function getDocument(): \DOMDocument + { + if ($this->document === null) { + $this->document = new \DOMDocument(); + $this->document->load($this->getXml()); + } + return $this->document; + } + + /** + * Save + * @return void + */ + public function save(): void + { + if ($this->file === 'database') { + if ($this->id === null) { + $this->add(); + } else { + $this->edit(); + } + } + } + + /** + * Delete + * @return void + */ + public function delete(): void + { + if ($this->file === 'database') { + $this->getStore()->update('DELETE FROM module_templates WHERE id = :id', [ + 'id' => $this->id + ]); + } + } + + /** + * Invalidate this module template for any widgets that use it + * @return void + */ + public function invalidate(): void + { + // TODO: can we improve this via the event mechanism instead? + $this->getStore()->update(' + UPDATE `widget` SET modifiedDt = :now + WHERE widgetId IN ( + SELECT widgetId + FROM widgetoption + WHERE `option` = \'templateId\' + AND `value` = :templateId + ) + ', [ + 'now' => time(), + 'templateId' => $this->templateId, + ]); + } + + /** + * Add + * @return void + */ + private function add(): void + { + $this->id = $this->getStore()->insert(' + INSERT INTO `module_templates` (`templateId`, `dataType`, `xml`, `ownerId`) + VALUES (:templateId, :dataType, :xml, :ownerId) + ', [ + 'templateId' => $this->templateId, + 'dataType' => $this->dataType, + 'xml' => $this->xml, + 'ownerId' => $this->ownerId, + ]); + } + + /** + * Edit + * @return void + */ + private function edit(): void + { + $this->getStore()->update(' + UPDATE `module_templates` SET + `templateId` = :templateId, + `dataType`= :dataType, + `enabled` = :enabled, + `xml` = :xml, + `ownerId` = :ownerId + WHERE `id` = :id + ', [ + 'templateId' => $this->templateId, + 'dataType' => $this->dataType, + 'xml' => $this->xml, + 'enabled' => $this->isEnabled ? 1 : 0, + 'ownerId' => $this->ownerId, + 'id' => $this->id, + ]); + } } diff --git a/lib/Entity/Notification.php b/lib/Entity/Notification.php index b142e36eef..b138f5fc7c 100644 --- a/lib/Entity/Notification.php +++ b/lib/Entity/Notification.php @@ -1,6 +1,6 @@ load(); - if (!in_array($userGroup, $this->userGroups)) + if (!in_array($userGroup, $this->userGroups)) { $this->userGroups[] = $userGroup; + } } /** @@ -211,8 +212,9 @@ public function assignDisplayGroup($displayGroup) { $this->load(); - if (!in_array($displayGroup, $this->displayGroups)) + if (!in_array($displayGroup, $this->displayGroups)) { $this->displayGroups[] = $displayGroup; + } } /** @@ -221,11 +223,13 @@ public function assignDisplayGroup($displayGroup) */ public function validate() { - if (empty($this->subject)) + if (empty($this->subject)) { throw new InvalidArgumentException(__('Please provide a subject'), 'subject'); + } - if (empty($this->body)) + if (empty($this->body)) { throw new InvalidArgumentException(__('Please provide a body'), 'body'); + } } /** @@ -240,15 +244,18 @@ public function load($options = []) 'loadDisplayGroups' => true, ], $options); - if ($this->loaded || $this->notificationId == null) + if ($this->loaded || $this->notificationId == null) { return; + } // Load the Display Groups and User Group Notifications - if ($options['loadUserGroups']) + if ($options['loadUserGroups']) { $this->userGroups = $this->userGroupFactory->getByNotificationId($this->notificationId); + } - if ($options['loadDisplayGroups']) + if ($options['loadDisplayGroups']) { $this->displayGroups = $this->displayGroupFactory->getByNotificationId($this->notificationId); + } $this->loaded = true; } @@ -278,14 +285,26 @@ public function save(): void public function delete() { // Remove all links - $this->getStore()->update('DELETE FROM `lknotificationuser` WHERE `notificationId` = :notificationId', ['notificationId' => $this->notificationId]); + $this->getStore()->update( + 'DELETE FROM `lknotificationuser` WHERE `notificationId` = :notificationId', + ['notificationId' => $this->notificationId] + ); - $this->getStore()->update('DELETE FROM `lknotificationgroup` WHERE `notificationId` = :notificationId', ['notificationId' => $this->notificationId]); + $this->getStore()->update( + 'DELETE FROM `lknotificationgroup` WHERE `notificationId` = :notificationId', + ['notificationId' => $this->notificationId] + ); - $this->getStore()->update('DELETE FROM `lknotificationdg` WHERE `notificationId` = :notificationId', ['notificationId' => $this->notificationId]); + $this->getStore()->update( + 'DELETE FROM `lknotificationdg` WHERE `notificationId` = :notificationId', + ['notificationId' => $this->notificationId] + ); // Remove the notification - $this->getStore()->update('DELETE FROM `notification` WHERE `notificationId` = :notificationId', ['notificationId' => $this->notificationId]); + $this->getStore()->update( + 'DELETE FROM `notification` WHERE `notificationId` = :notificationId', + ['notificationId' => $this->notificationId] + ); } /** @@ -294,21 +313,44 @@ public function delete() private function add() { $this->notificationId = $this->getStore()->insert(' - INSERT INTO `notification` - (`subject`, `body`, `createDt`, `releaseDt`, `isEmail`, `isInterrupt`, `isSystem`, `userId`, `filename`, `originalFileName`, `nonusers`) - VALUES (:subject, :body, :createDt, :releaseDt, :isEmail, :isInterrupt, :isSystem, :userId, :filename, :originalFileName, :nonusers) + INSERT INTO `notification` ( + `subject`, + `body`, + `createDt`, + `releaseDt`, + `isInterrupt`, + `isSystem`, + `userId`, + `filename`, + `originalFileName`, + `nonusers`, + `type` + ) + VALUES ( + :subject, + :body, + :createDt, + :releaseDt, + :isInterrupt, + :isSystem, + :userId, + :filename, + :originalFileName, + :nonusers, + :type + ) ', [ 'subject' => $this->subject, 'body' => $this->body, 'createDt' => $this->createDt, 'releaseDt' => $this->releaseDt, - 'isEmail' => $this->isEmail, 'isInterrupt' => $this->isInterrupt, 'isSystem' => $this->isSystem, 'userId' => $this->userId, 'filename' => $this->filename, 'originalFileName' => $this->originalFileName, - 'nonusers' => $this->nonusers + 'nonusers' => $this->nonusers, + 'type' => $this->type ?? 'custom' ]); } @@ -322,26 +364,26 @@ private function edit() `body` = :body, `createDt` = :createDt, `releaseDt` = :releaseDt, - `isEmail` = :isEmail, `isInterrupt` = :isInterrupt, `isSystem` = :isSystem, `userId` = :userId, `filename` = :filename, `originalFileName` = :originalFileName, - `nonusers` = :nonusers + `nonusers` = :nonusers, + `type` = :type WHERE `notificationId` = :notificationId ', [ 'subject' => $this->subject, 'body' => $this->body, 'createDt' => $this->createDt, 'releaseDt' => $this->releaseDt, - 'isEmail' => $this->isEmail, 'isInterrupt' => $this->isInterrupt, 'isSystem' => $this->isSystem, 'userId' => $this->userId, 'filename' => $this->filename, 'originalFileName' => $this->originalFileName, 'nonusers' => $this->nonusers, + 'type' => $this->type ?? 'custom', 'notificationId' => $this->notificationId ]); } diff --git a/lib/Entity/Permission.php b/lib/Entity/Permission.php index f5410c82f6..f87c5067bb 100644 --- a/lib/Entity/Permission.php +++ b/lib/Entity/Permission.php @@ -1,8 +1,8 @@ permissionId = null; } - public function save() + /** + * Save this permission + * @return void + */ + public function save(): void { if ($this->permissionId == 0) { // Check there is something to add if ($this->view != 0 || $this->edit != 0 || $this->delete != 0) { - $this->getLog()->debug(sprintf('Adding Permission for %s, %d. GroupId: %d - View = %d, Edit = %d, Delete = %d', $this->entity, $this->objectId, $this->groupId, $this->view, $this->edit, $this->delete)); + $this->getLog()->debug(sprintf( + 'save: Adding Permission for %s, %d. GroupId: %d - View = %d, Edit = %d, Delete = %d', + $this->entity, + $this->objectId, + $this->groupId, + $this->view, + $this->edit, + $this->delete, + )); + $this->add(); } } else { - $this->getLog()->debug(sprintf('Editing Permission for %s, %d. GroupId: %d - View = %d, Edit = %d, Delete = %d', $this->entity, $this->objectId, $this->groupId, $this->view, $this->edit, $this->delete)); - // Are we all 0 permissions - if ($this->view == 0 && $this->edit == 0 && $this->delete == 0) + $this->getLog()->debug(sprintf( + 'save: Editing Permission for %s, %d. GroupId: %d - View = %d, Edit = %d, Delete = %d', + $this->entity, + $this->objectId, + $this->groupId, + $this->view, + $this->edit, + $this->delete, + )); + + // If all permissions are set to 0, then we delete the record to tidy up + if ($this->view == 0 && $this->edit == 0 && $this->delete == 0) { $this->delete(); - else + } else if (count($this->getChangedProperties()) > 0) { + // Something has changed, so run the update. $this->update(); + } } } diff --git a/lib/Entity/Schedule.php b/lib/Entity/Schedule.php index d30a65a108..c76263d78a 100644 --- a/lib/Entity/Schedule.php +++ b/lib/Entity/Schedule.php @@ -27,6 +27,7 @@ use Xibo\Factory\CampaignFactory; use Xibo\Factory\DayPartFactory; use Xibo\Factory\DisplayGroupFactory; +use Xibo\Factory\ScheduleCriteriaFactory; use Xibo\Factory\ScheduleExclusionFactory; use Xibo\Factory\ScheduleReminderFactory; use Xibo\Factory\UserFactory; @@ -62,6 +63,7 @@ class Schedule implements \JsonSerializable public static $MEDIA_EVENT = 7; public static $PLAYLIST_EVENT = 8; public static $SYNC_EVENT = 9; + public static $DATA_CONNECTOR_EVENT = 10; public static $DATE_MIN = 0; public static $DATE_MAX = 2147483647; @@ -117,6 +119,16 @@ class Schedule implements \JsonSerializable */ public $scheduleReminders = []; + /** + * @SWG\Property( + * description="Schedule Criteria assigned to this Scheduled Event.", + * type="array", + * @SWG\Items(ref="#/definitions/ScheduleCriteria") + * ) + * @var ScheduleCriteria[] + */ + public $criteria = []; + /** * @SWG\Property( * description="The userId that owns this event." @@ -304,6 +316,18 @@ class Schedule implements \JsonSerializable */ public $syncGroupId; + /** + * @SWG\Property(description="For data connector events, the dataSetId") + * @var int + */ + public $dataSetId; + + /** + * @SWG\Property(description="For data connector events, the data set parameters") + * @var int + */ + public $dataSetParams; + /** * @SWG\Property(description="The userId of the user that last modified this Schedule") * @var int @@ -384,8 +408,19 @@ class Schedule implements \JsonSerializable * @param ScheduleReminderFactory $scheduleReminderFactory * @param ScheduleExclusionFactory $scheduleExclusionFactory */ - public function __construct($store, $log, $dispatcher, $config, $pool, $displayGroupFactory, $dayPartFactory, $userFactory, $scheduleReminderFactory, $scheduleExclusionFactory) - { + public function __construct( + $store, + $log, + $dispatcher, + $config, + $pool, + $displayGroupFactory, + $dayPartFactory, + $userFactory, + $scheduleReminderFactory, + $scheduleExclusionFactory, + private readonly ScheduleCriteriaFactory $scheduleCriteriaFactory + ) { $this->setCommonDependencies($store, $log, $dispatcher); $this->config = $config; $this->pool = $pool; @@ -457,6 +492,29 @@ public function setOwner($ownerId) $this->userId = $ownerId; } + /** + * @param ScheduleCriteria $criteria + * @param int|null $id + * @return $this + */ + public function addOrUpdateCriteria(ScheduleCriteria $criteria, ?int $id = null): Schedule + { + // set empty array as the default value if original value is empty/null + $originalValue = $this->getOriginalValue('criteria') ?? []; + + // Does this already exist? + foreach ($originalValue as $existing) { + if ($id !== null && $existing->id === $id) { + $this->criteria[] = $criteria; + return $this; + } + } + + // We didn't find it. + $this->criteria[] = $criteria; + return $this; + } + /** * Are the provided dates within the schedule look ahead * @return bool @@ -510,7 +568,9 @@ private function inScheduleLookAhead() public function load($options = []) { $options = array_merge([ - 'loadScheduleReminders' => false + 'loadDisplayGroups' => true, + 'loadScheduleReminders' => false, + 'loadScheduleCriteria' => true, ], $options); // If we are already loaded, then don't do it again @@ -518,13 +578,21 @@ public function load($options = []) return; } - $this->displayGroups = $this->displayGroupFactory->getByEventId($this->eventId); + // Load display groups + if ($options['loadDisplayGroups']) { + $this->displayGroups = $this->displayGroupFactory->getByEventId($this->eventId); + } // Load schedule reminders if ($options['loadScheduleReminders']) { $this->scheduleReminders = $this->scheduleReminderFactory->query(null, ['eventId'=> $this->eventId]); } + // Load schedule criteria + if ($options['loadScheduleCriteria']) { + $this->criteria = $this->scheduleCriteriaFactory->getByEventId($this->eventId); + } + // Set the original values now that we're loaded. $this->setOriginals(); @@ -672,6 +740,11 @@ public function validate() ); } } + } else if ($this->eventTypeId === Schedule::$DATA_CONNECTOR_EVENT) { + if (!v::intType()->notEmpty()->validate($this->dataSetId)) { + throw new InvalidArgumentException(__('Please select a DataSet for this event.'), 'dataSetId'); + } + $this->campaignId = null; } else { // No event type selected throw new InvalidArgumentException(__('Please select the Event Type'), 'eventTypeId'); @@ -794,6 +867,32 @@ public function save($options = []) $this->manageAssignments($isEdit && $options['notify']); } + // Update schedule criteria + $criteriaIds = []; + foreach ($this->criteria as $criteria) { + $criteria->eventId = $this->eventId; + $criteria->save(); + + $criteriaIds[] = $criteria->id; + } + + // Remove records that no longer exist. + if (count($criteriaIds) > 0) { + // There are still criteria left + $this->getStore()->update(' + DELETE FROM `schedule_criteria` + WHERE `id` NOT IN (' . implode(',', $criteriaIds) . ') + AND `eventId` = :eventId + ', [ + 'eventId' => $this->eventId, + ]); + } else { + // No criteria left at all (or never was any) + $this->getStore()->update('DELETE FROM `schedule_criteria` WHERE `eventId` = :eventId', [ + 'eventId' => $this->eventId, + ]); + } + // Notify if ($options['notify']) { // Only if the schedule effects the immediate future - i.e. within the RF Look Ahead @@ -858,6 +957,11 @@ public function delete($options = []) } } + // Delete schedule criteria + $this->getStore()->update('DELETE FROM `schedule_criteria` WHERE `eventId` = :eventId', [ + 'eventId' => $this->eventId, + ]); + if ($this->eventTypeId === self::$SYNC_EVENT) { $this->getStore()->update('DELETE FROM `schedule_sync` WHERE eventId = :eventId', [ 'eventId' => $this->eventId @@ -928,7 +1032,9 @@ private function add() `modifiedBy`, `createdOn`, `updatedOn`, - `name` + `name`, + `dataSetId`, + `dataSetParams` ) VALUES ( :eventTypeId, @@ -959,7 +1065,9 @@ private function add() :modifiedBy, :createdOn, :updatedOn, - :name + :name, + :dataSetId, + :dataSetParams ) ', [ 'eventTypeId' => $this->eventTypeId, @@ -992,7 +1100,9 @@ private function add() 'modifiedBy' => null, 'createdOn' => Carbon::now()->format(DateFormatHelper::getSystemFormat()), 'updatedOn' => null, - 'name' => !empty($this->name) ? $this->name : null + 'name' => !empty($this->name) ? $this->name : null, + 'dataSetId' => !empty($this->dataSetId) ? $this->dataSetId : null, + 'dataSetParams' => !empty($this->dataSetParams) ? $this->dataSetParams : null, ]); } @@ -1030,7 +1140,9 @@ private function edit() `syncGroupId` = :syncGroupId, `modifiedBy` = :modifiedBy, `updatedOn` = :updatedOn, - `name` = :name + `name` = :name, + `dataSetId` = :dataSetId, + `dataSetParams` = :dataSetParams WHERE eventId = :eventId ', [ 'eventTypeId' => $this->eventTypeId, @@ -1061,6 +1173,8 @@ private function edit() 'modifiedBy' => $this->modifiedBy, 'updatedOn' => Carbon::now()->format(DateFormatHelper::getSystemFormat()), 'name' => $this->name, + 'dataSetId' => !empty($this->dataSetId) ? $this->dataSetId : null, + 'dataSetParams' => !empty($this->dataSetParams) ? $this->dataSetParams : null, 'eventId' => $this->eventId, ]); } @@ -1973,6 +2087,7 @@ public static function getEventTypesForm(): array ['eventTypeId' => self::$ACTION_EVENT, 'eventTypeName' => __('Action')], ['eventTypeId' => self::$MEDIA_EVENT, 'eventTypeName' => __('Video/Image')], ['eventTypeId' => self::$PLAYLIST_EVENT, 'eventTypeName' => __('Playlist')], + ['eventTypeId' => self::$DATA_CONNECTOR_EVENT, 'eventTypeName' => __('Data Connector')], ]; } diff --git a/lib/Entity/ScheduleCriteria.php b/lib/Entity/ScheduleCriteria.php new file mode 100644 index 0000000000..770e93f3e9 --- /dev/null +++ b/lib/Entity/ScheduleCriteria.php @@ -0,0 +1,144 @@ +. + */ + +namespace Xibo\Entity; + +use Symfony\Component\EventDispatcher\EventDispatcherInterface; +use Xibo\Service\LogServiceInterface; +use Xibo\Storage\StorageServiceInterface; +use Xibo\Support\Exception\InvalidArgumentException; +use Xibo\Support\Exception\NotFoundException; + +/** + * Schedule Criteria entity + * @SWG\Definition() + */ +class ScheduleCriteria implements \JsonSerializable +{ + use EntityTrait; + + public int $id; + public int $eventId; + public string $type; + public string $metric; + public string $condition; + public string $value; + + public function __construct( + StorageServiceInterface $store, + LogServiceInterface $logService, + EventDispatcherInterface $dispatcher + ) { + $this->setCommonDependencies($store, $logService, $dispatcher); + } + + /** + * Basic checks to make sure we have all the fields, etc that we need/ + * @return void + * @throws InvalidArgumentException + */ + private function validate(): void + { + if (empty($this->eventId)) { + throw new InvalidArgumentException(__('Criteria must be attached to an event'), 'eventId'); + } + + if (empty($this->metric)) { + throw new InvalidArgumentException(__('Please select a metric'), 'metric'); + } + + if (!in_array($this->condition, ['set', 'lt', 'lte', 'eq', 'neq', 'gt', 'gte', 'contains', 'ncontains'])) { + throw new InvalidArgumentException(__('Please enter a valid condition'), 'condition'); + } + } + + /** + * @throws NotFoundException|InvalidArgumentException + */ + public function save(array $options = []): ScheduleCriteria + { + $options = array_merge([ + 'validate' => true, + 'audit' => true, + ], $options); + + // Validate? + if ($options['validate']) { + $this->validate(); + } + + if (empty($this->id)) { + $this->add(); + } else { + $this->edit(); + } + + if ($options['audit']) { + $this->audit($this->id, 'Saved schedule criteria to event', null, true); + } + + return $this; + } + + /** + * Delete this criteria + * @return void + */ + public function delete(): void + { + $this->getStore()->update('DELETE FROM `schedule_criteria` WHERE `id` = :id', ['id' => $this->id]); + } + + private function add(): void + { + $this->id = $this->getStore()->insert(' + INSERT INTO `schedule_criteria` (`eventId`, `type`, `metric`, `condition`, `value`) + VALUES (:eventId, :type, :metric, :condition, :value) + ', [ + 'eventId' => $this->eventId, + 'type' => $this->type, + 'metric' => $this->metric, + 'condition' => $this->condition, + 'value' => $this->value, + ]); + } + + private function edit(): void + { + $this->getStore()->update(' + UPDATE `schedule_criteria` SET + `eventId` = :eventId, + `type` = :type, + `metric` = :metric, + `condition` = :condition, + `value` = :value + WHERE `id` = :id + ', [ + 'eventId' => $this->eventId, + 'type' => $this->type, + 'metric' => $this->metric, + 'condition' => $this->condition, + 'value' => $this->value, + 'id' => $this->id, + ]); + } +} diff --git a/lib/Entity/SearchResult.php b/lib/Entity/SearchResult.php index 14bbeb5b9b..01fd4a741f 100644 --- a/lib/Entity/SearchResult.php +++ b/lib/Entity/SearchResult.php @@ -42,6 +42,7 @@ class SearchResult implements \JsonSerializable public $duration; public $videoThumbnailUrl; public $tags = []; + public $isFeatured = 0; /** @var ProviderDetails */ public $provider; @@ -63,7 +64,8 @@ public function jsonSerialize(): array 'orientation' => $this->orientation, 'fileSize' => $this->fileSize, 'videoThumbnailUrl' => $this->videoThumbnailUrl, - 'tags' => $this->tags + 'tags' => $this->tags, + 'isFeatured' => $this->isFeatured ]; } } diff --git a/lib/Entity/SyncGroup.php b/lib/Entity/SyncGroup.php old mode 100644 new mode 100755 index 9d4768185a..54b25e5b8b --- a/lib/Entity/SyncGroup.php +++ b/lib/Entity/SyncGroup.php @@ -1,6 +1,6 @@ leadDisplayId) && isset($this->syncGroupId)) { throw new InvalidArgumentException(__('Please select lead Display for this sync group'), 'leadDisplayId'); } + + if ($this->syncSwitchDelay < 0) { + throw new InvalidArgumentException(__('Switch Delay value cannot be negative'), 'syncSwitchDelay'); + } + + if ($this->syncVideoPauseDelay < 0) { + throw new InvalidArgumentException(__('Video Pause Delay value cannot be negative'), 'syncVideoPauseDelay'); + } } public function validateForSchedule(SanitizerInterface $sanitizer) @@ -305,8 +323,8 @@ private function add(): void $time = Carbon::now()->format(DateFormatHelper::getSystemFormat()); $this->syncGroupId = $this->getStore()->insert(' - INSERT INTO syncgroup (`name`, `createdDt`, `modifiedDt`, `ownerId`, `modifiedBy`, `syncPublisherPort`, `folderId`, `permissionsFolderId`) - VALUES (:name, :createdDt, :modifiedDt, :ownerId, :modifiedBy, :syncPublisherPort, :folderId, :permissionsFolderId) + INSERT INTO syncgroup (`name`, `createdDt`, `modifiedDt`, `ownerId`, `modifiedBy`, `syncPublisherPort`, `syncSwitchDelay`, `syncVideoPauseDelay`, `folderId`, `permissionsFolderId`) + VALUES (:name, :createdDt, :modifiedDt, :ownerId, :modifiedBy, :syncPublisherPort, :syncSwitchDelay, :syncVideoPauseDelay, :folderId, :permissionsFolderId) ', [ 'name' => $this->name, 'createdDt' => $time, @@ -314,6 +332,8 @@ private function add(): void 'modifiedBy' => $this->modifiedBy, 'ownerId' => $this->ownerId, 'syncPublisherPort' => $this->syncPublisherPort, + 'syncSwitchDelay' => $this->syncSwitchDelay, + 'syncVideoPauseDelay' => $this->syncVideoPauseDelay, 'folderId' => $this->folderId, 'permissionsFolderId' => $this->permissionsFolderId ]); @@ -331,6 +351,8 @@ private function edit(): void `ownerId` = :ownerId, `modifiedBy` = :modifiedBy, `syncPublisherPort` = :syncPublisherPort, + `syncSwitchDelay` = :syncSwitchDelay, + `syncVideoPauseDelay` = :syncVideoPauseDelay, `leadDisplayId` = :leadDisplayId, `folderId` = :folderId, `permissionsFolderId` = :permissionsFolderId @@ -341,6 +363,8 @@ private function edit(): void 'ownerId' => $this->ownerId, 'modifiedBy' => $this->modifiedBy, 'syncPublisherPort' => $this->syncPublisherPort, + 'syncSwitchDelay' => $this->syncSwitchDelay, + 'syncVideoPauseDelay' => $this->syncVideoPauseDelay, 'leadDisplayId' => $this->leadDisplayId == 0 ? null : $this->leadDisplayId, 'folderId' => $this->folderId, 'permissionsFolderId' => $this->permissionsFolderId, @@ -366,7 +390,7 @@ public function delete(): void foreach ($this->scheduleFactory->getBySyncGroupId($this->syncGroupId) as $event) { $event->delete(); } - + $this->getStore()->update('DELETE FROM `syncgroup` WHERE `syncgroup`.syncGroupId = :syncGroupId', [ 'syncGroupId' => $this->syncGroupId ]); @@ -421,10 +445,10 @@ public function unSetMembers(array $displayIds): void AND `schedule_sync`.eventId IN (SELECT eventId FROM schedule WHERE schedule.syncGroupId = :syncGroupId)', [ 'displayId' => $display->displayId, 'syncGroupId' => $this->syncGroupId - ]); + ]); } $display->notify(); } } -} +} \ No newline at end of file diff --git a/lib/Entity/User.php b/lib/Entity/User.php index 84bcc54eb5..ac16bd875e 100644 --- a/lib/Entity/User.php +++ b/lib/Entity/User.php @@ -244,17 +244,53 @@ class User implements \JsonSerializable, UserEntityInterface public $dayParts = []; /** - * @SWG\Property(description="Does this Group receive system notifications.") + * @SWG\Property(description="Does this User receive system notifications.") * @var int */ public $isSystemNotification = 0; /** - * @SWG\Property(description="Does this Group receive system notifications.") + * @SWG\Property(description="Does this User receive system notifications.") * @var int */ public $isDisplayNotification = 0; + /** + * @SWG\Property(description="Does this User receive DataSet notifications.") + * @var int + */ + public $isDataSetNotification = 0; + + /** + * @SWG\Property(description="Does this User receive Layout notifications.") + * @var int + */ + public $isLayoutNotification = 0; + + /** + * @SWG\Property(description="Does this User receive Library notifications.") + * @var int + */ + public $isLibraryNotification = 0; + + /** + * @SWG\Property(description="Does this User receive Report notifications.") + * @var int + */ + public $isReportNotification = 0; + + /** + * @SWG\Property(description="Does this User receive Schedule notifications.") + * @var int + */ + public $isScheduleNotification = 0; + + /** + * @SWG\Property(description="Does this User receive Custom notifications.") + * @var int + */ + public $isCustomNotification = 0; + /** * @SWG\Property(description="The two factor type id") * @var int @@ -420,7 +456,14 @@ public function setChildAclDependencies($userGroupFactory) */ public function __toString() { - return sprintf('User %s. userId: %d, UserTypeId: %d, homePageId: %d, email = %s', $this->userName, $this->userId, $this->userTypeId, $this->homePageId, $this->email); + return sprintf( + 'User %s. userId: %d, UserTypeId: %d, homePageId: %d, email = %s', + $this->userName, + $this->userId, + $this->userTypeId, + $this->homePageId, + $this->email + ); } /** @@ -465,8 +508,9 @@ public function getOption($option) foreach ($this->userOptions as $userOption) { /* @var UserOption $userOption */ - if ($userOption->option == $option) + if ($userOption->option == $option) { return $userOption; + } } $this->getLog()->debug(sprintf('UserOption %s not found', $option)); @@ -591,15 +635,16 @@ private function setNewPasswordHash($password) */ public function checkPassword($password) { - if ($this->userId == 0) + if ($this->userId == 0) { throw new NotFoundException(__('User not found')); + } if ($this->CSPRNG == 0) { // Password is tested using a plain MD5 check - if ($this->password != md5($password)) + if ($this->password != md5($password)) { throw new AccessDeniedException(); - } - else if ($this->CSPRNG == 1) { + } + } else if ($this->CSPRNG == 1) { // Test with Pbkdf2 try { if (!Pbkdf2Hash::verifyPassword($password, $this->password)) { @@ -610,8 +655,7 @@ public function checkPassword($password) $this->getLog()->warning('Invalid password hash stored for userId ' . $this->userId); $this->getLog()->debug('Hash error: ' . $e->getMessage()); } - } - else { + } else { if (!password_verify($password, $this->password)) { $this->getLog()->debug('Password failed Hash Check.'); throw new AccessDeniedException(); @@ -672,8 +716,9 @@ public function load($all = false) if ($this->userId == null || $this->loaded) return; - if ($this->userGroupFactory == null) + if ($this->userGroupFactory == null) { throw new \RuntimeException('Cannot load user without first calling setUserGroupFactory'); + } $this->getLog()->debug(sprintf('Loading %d. All Objects = %d', $this->userId, $all)); @@ -844,6 +889,13 @@ private function add() $group->setOwner($this); $group->isSystemNotification = $this->isSystemNotification; $group->isDisplayNotification = $this->isDisplayNotification; + $group->isCustomNotification = $this->isCustomNotification; + $group->isDataSetNotification = $this->isDataSetNotification; + $group->isLayoutNotification = $this->isLayoutNotification; + $group->isLibraryNotification = $this->isLibraryNotification; + $group->isReportNotification = $this->isReportNotification; + $group->isScheduleNotification = $this->isScheduleNotification; + $group->save(); // Assert the groupIds on the user (we do this so we have group in the API return) @@ -918,6 +970,12 @@ private function update() $group->libraryQuota = $this->libraryQuota; $group->isSystemNotification = $this->isSystemNotification; $group->isDisplayNotification = $this->isDisplayNotification; + $group->isCustomNotification = $this->isCustomNotification; + $group->isDataSetNotification = $this->isDataSetNotification; + $group->isLayoutNotification = $this->isLayoutNotification; + $group->isLibraryNotification = $this->isLibraryNotification; + $group->isReportNotification = $this->isReportNotification; + $group->isScheduleNotification = $this->isScheduleNotification; $group->save(['linkUsers' => false]); } diff --git a/lib/Entity/UserGroup.php b/lib/Entity/UserGroup.php index 05d2c77762..5ca7207112 100644 --- a/lib/Entity/UserGroup.php +++ b/lib/Entity/UserGroup.php @@ -91,6 +91,42 @@ class UserGroup */ public $isDisplayNotification = 0; + /** + * @SWG\Property(description="Does this Group receive DataSet notifications.") + * @var int + */ + public $isDataSetNotification = 0; + + /** + * @SWG\Property(description="Does this Group receive Layout notifications.") + * @var int + */ + public $isLayoutNotification = 0; + + /** + * @SWG\Property(description="Does this Group receive Library notifications.") + * @var int + */ + public $isLibraryNotification = 0; + + /** + * @SWG\Property(description="Does this Group receive Report notifications.") + * @var int + */ + public $isReportNotification = 0; + + /** + * @SWG\Property(description="Does this Group receive Schedule notifications.") + * @var int + */ + public $isScheduleNotification = 0; + + /** + * @SWG\Property(description="Does this Group receive Custom notifications.") + * @var int + */ + public $isCustomNotification = 0; + /** * @SWG\Property(description="Is this Group shown in the list of choices when onboarding a new user") * @var int @@ -217,7 +253,7 @@ public function unassignUser($user) { $this->load(); $this->unassignedUserIds[] = $user->userId; - $this->users = array_udiff($this->users, [$user], function($a, $b) { + $this->users = array_udiff($this->users, [$user], function ($a, $b) { /** * @var User $a * @var User $b @@ -231,19 +267,23 @@ public function unassignUser($user) */ public function validate() { - if (!v::stringType()->length(1, 50)->validate($this->group)) + if (!v::stringType()->length(1, 50)->validate($this->group)) { throw new InvalidArgumentException(__('User Group Name cannot be empty.') . $this, 'name'); + } - if ($this->libraryQuota !== null && !v::intType()->validate($this->libraryQuota)) + if ($this->libraryQuota !== null && !v::intType()->validate($this->libraryQuota)) { throw new InvalidArgumentException(__('Library Quota must be a whole number.'), 'libraryQuota'); + } try { $group = $this->userGroupFactory->getByName($this->group, $this->isUserSpecific); - if ($this->groupId == null || $this->groupId != $group->groupId) - throw new DuplicateEntityException(__('There is already a group with this name. Please choose another.')); - } - catch (NotFoundException $e) { + if ($this->groupId == null || $this->groupId != $group->groupId) { + throw new DuplicateEntityException( + __('There is already a group with this name. Please choose another.') + ); + } + } catch (NotFoundException $e) { } } @@ -285,8 +325,9 @@ public function save($options = []) 'linkUsers' => true ], $options); - if ($options['validate']) + if ($options['validate']) { $this->validate(); + } if ($this->groupId == null || $this->groupId == 0) { $this->add(); @@ -374,23 +415,35 @@ private function add() $this->groupId = $this->getStore()->insert(' INSERT INTO `group` ( `group`, - IsUserSpecific, + `IsUserSpecific`, `description`, - libraryQuota, + `libraryQuota`, `isSystemNotification`, `isDisplayNotification`, + `isDataSetNotification`, + `isLayoutNotification`, + `isLibraryNotification`, + `isReportNotification`, + `isScheduleNotification`, + `isCustomNotification`, `isShownForAddUser`, `defaultHomepageId` ) VALUES ( - :group, - :isUserSpecific, - :description, - :libraryQuota, - :isSystemNotification, - :isDisplayNotification, - :isShownForAddUser, - :defaultHomepageId + :group, + :isUserSpecific, + :description, + :libraryQuota, + :isSystemNotification, + :isDisplayNotification, + :isDataSetNotification, + :isLayoutNotification, + :isLibraryNotification, + :isReportNotification, + :isScheduleNotification, + :isCustomNotification, + :isShownForAddUser, + :defaultHomepageId ) ', [ 'group' => $this->group, @@ -399,6 +452,12 @@ private function add() 'libraryQuota' => $this->libraryQuota, 'isSystemNotification' => $this->isSystemNotification, 'isDisplayNotification' => $this->isDisplayNotification, + 'isDataSetNotification' => $this->isDataSetNotification, + 'isLayoutNotification' => $this->isLayoutNotification, + 'isLibraryNotification' => $this->isLibraryNotification, + 'isReportNotification' => $this->isReportNotification, + 'isScheduleNotification' => $this->isScheduleNotification, + 'isCustomNotification' => $this->isCustomNotification, 'isShownForAddUser' => $this->isShownForAddUser, 'defaultHomepageId' => $this->defaultHomepageId ]); @@ -416,6 +475,12 @@ private function edit() libraryQuota = :libraryQuota, `isSystemNotification` = :isSystemNotification, `isDisplayNotification` = :isDisplayNotification, + `isDataSetNotification` = :isDataSetNotification, + `isLayoutNotification` = :isLayoutNotification, + `isLibraryNotification` = :isLibraryNotification, + `isReportNotification` = :isReportNotification, + `isScheduleNotification` = :isScheduleNotification, + `isCustomNotification` = :isCustomNotification, `isShownForAddUser` = :isShownForAddUser, `defaultHomepageId` = :defaultHomepageId WHERE groupId = :groupId @@ -426,6 +491,12 @@ private function edit() 'libraryQuota' => $this->libraryQuota, 'isSystemNotification' => $this->isSystemNotification, 'isDisplayNotification' => $this->isDisplayNotification, + 'isDataSetNotification' => $this->isDataSetNotification, + 'isLayoutNotification' => $this->isLayoutNotification, + 'isLibraryNotification' => $this->isLibraryNotification, + 'isReportNotification' => $this->isReportNotification, + 'isScheduleNotification' => $this->isScheduleNotification, + 'isCustomNotification' => $this->isCustomNotification, 'isShownForAddUser' => $this->isShownForAddUser, 'defaultHomepageId' => $this->defaultHomepageId ]); @@ -436,7 +507,10 @@ private function edit() */ private function linkUsers() { - $insert = $this->getStore()->getConnection()->prepare('INSERT INTO `lkusergroup` (groupId, userId) VALUES (:groupId, :userId) ON DUPLICATE KEY UPDATE groupId = groupId'); + $insert = $this->getStore()->getConnection()->prepare( + 'INSERT INTO `lkusergroup` (groupId, userId) + VALUES (:groupId, :userId) ON DUPLICATE KEY UPDATE groupId = groupId' + ); foreach ($this->users as $user) { /* @var User $user */ diff --git a/lib/Entity/UserNotification.php b/lib/Entity/UserNotification.php index 758d955067..cb4e06afa4 100644 --- a/lib/Entity/UserNotification.php +++ b/lib/Entity/UserNotification.php @@ -135,6 +135,11 @@ class UserNotification implements \JsonSerializable */ public $nonusers; + /** + * @var string + */ + public $type; + /** * Command constructor. * @param StorageServiceInterface $store @@ -154,8 +159,9 @@ public function setRead($readDt) { $this->read = 1; - if ($this->readDt == 0) + if ($this->readDt == 0) { $this->readDt = $readDt; + } } /** @@ -172,8 +178,9 @@ public function setUnread() */ public function setEmailed($emailDt) { - if ($this->emailDt == 0) + if ($this->emailDt == 0) { $this->emailDt = $emailDt; + } } /** @@ -181,7 +188,14 @@ public function setEmailed($emailDt) */ public function save() { - $this->getStore()->update('UPDATE `lknotificationuser` SET `read` = :read, readDt = :readDt, emailDt = :emailDt WHERE notificationId = :notificationId AND userId = :userId', [ + $this->getStore()->update(' + UPDATE `lknotificationuser` + SET `read` = :read, + `readDt` = :readDt, + `emailDt` = :emailDt + WHERE notificationId = :notificationId + AND userId = :userId + ', [ 'read' => $this->read, 'readDt' => $this->readDt, 'emailDt' => $this->emailDt, @@ -189,4 +203,20 @@ public function save() 'userId' => $this->userId ]); } + + /** + * @return string + */ + public function getTypeForGroup(): string + { + return match ($this->type) { + 'dataset' => 'isDataSetNotification', + 'display' => 'isDisplayNotification', + 'layout' => 'isLayoutNotification', + 'library' => 'isLibraryNotification', + 'report' => 'isReportNotification', + 'schedule' => 'isScheduleNotification', + default => 'isCustomNotification', + }; + } } \ No newline at end of file diff --git a/lib/Entity/Widget.php b/lib/Entity/Widget.php index 036e91770f..a187f1f4fe 100644 --- a/lib/Entity/Widget.php +++ b/lib/Entity/Widget.php @@ -1108,8 +1108,15 @@ public function delete($options = []) $this->mediaIds = []; $this->unlinkMedia(); + // Delete any fallback data + $this->getStore()->update('DELETE FROM `widgetdata` WHERE `widgetId` = :widgetId', [ + 'widgetId' => $this->widgetId, + ]); + // Delete this - $this->getStore()->update('DELETE FROM `widget` WHERE widgetId = :widgetId', array('widgetId' => $this->widgetId)); + $this->getStore()->update('DELETE FROM `widget` WHERE `widgetId` = :widgetId', [ + 'widgetId' => $this->widgetId, + ]); // Call notify with the notify options passed in $this->notify($options); diff --git a/lib/Entity/WidgetData.php b/lib/Entity/WidgetData.php new file mode 100644 index 0000000000..6e1abea14d --- /dev/null +++ b/lib/Entity/WidgetData.php @@ -0,0 +1,169 @@ +. + */ + +namespace Xibo\Entity; + +use Carbon\Carbon; +use Symfony\Component\EventDispatcher\EventDispatcherInterface; +use Xibo\Helper\DateFormatHelper; +use Xibo\Service\LogServiceInterface; +use Xibo\Storage\StorageServiceInterface; + +/** + * Class representing widget data + * @SWG\Definition() + */ +class WidgetData implements \JsonSerializable +{ + use EntityTrait; + + /** + * @SWG\Property( + * property="id", + * description="The ID" + * ) + * @var int|null + */ + public ?int $id = null; + + /** + * @SWG\Property( + * property="widgetId", + * description="The Widget ID" + * ) + * @var int + */ + public int $widgetId; + + /** + * @SWG\Property( + * property="data", + * description="Array of data properties depending on the widget data type this data is for", + * @SWG\Items(type="string") + * ) + * @var array + */ + public array $data; + + /** + * @SWG\Property( + * property="displayOrder", + * description="The Display Order" + * ) + * @var int + */ + public int $displayOrder; + + /** + * @SWG\Property( + * property="createdDt", + * description="The datetime this entity was created" + * ) + * @var ?string + */ + public ?string $createdDt; + + /** + * @SWG\Property( + * property="createdDt", + * description="The datetime this entity was last modified" + * ) + * @var ?string + */ + public ?string $modifiedDt; + + /** + * Entity constructor. + * @param StorageServiceInterface $store + * @param LogServiceInterface $log + * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $dispatcher + */ + public function __construct( + StorageServiceInterface $store, + LogServiceInterface $log, + EventDispatcherInterface $dispatcher + ) { + $this->setCommonDependencies($store, $log, $dispatcher); + } + + /** + * Save this widget data + * @return $this + */ + public function save(): WidgetData + { + if ($this->id === null) { + $this->add(); + } else { + $this->modifiedDt = Carbon::now()->format(DateFormatHelper::getSystemFormat()); + $this->edit(); + } + return $this; + } + + /** + * Delete this widget data + * @return void + */ + public function delete(): void + { + $this->getStore()->update('DELETE FROM `widgetdata` WHERE `id` = :id', ['id' => $this->id]); + } + + /** + * Add and capture the ID + * @return void + */ + private function add(): void + { + $this->id = $this->getStore()->insert(' + INSERT INTO `widgetdata` (`widgetId`, `data`, `displayOrder`, `createdDt`, `modifiedDt`) + VALUES (:widgetId, :data, :displayOrder, :createdDt, :modifiedDt) + ', [ + 'widgetId' => $this->widgetId, + 'data' => $this->data == null ? null : json_encode($this->data), + 'displayOrder' => $this->displayOrder, + 'createdDt' => Carbon::now()->format(DateFormatHelper::getSystemFormat()), + 'modifiedDt' => null, + ]); + } + + /** + * Edit + * @return void + */ + private function edit(): void + { + $this->getStore()->update(' + UPDATE `widgetdata` SET + `data` = :data, + `displayOrder` = :displayOrder, + `modifiedDt` = :modifiedDt + WHERE `id` = :id + ', [ + 'id' => $this->id, + 'data' => $this->data == null ? null : json_encode($this->data), + 'displayOrder' => $this->displayOrder, + 'modifiedDt' => $this->modifiedDt, + ]); + } +} diff --git a/lib/Event/DataConnectorScriptRequestEvent.php b/lib/Event/DataConnectorScriptRequestEvent.php new file mode 100644 index 0000000000..88b9b87347 --- /dev/null +++ b/lib/Event/DataConnectorScriptRequestEvent.php @@ -0,0 +1,68 @@ +. + */ + +namespace Xibo\Event; + +use Xibo\Connector\DataConnectorScriptProviderInterface; +use Xibo\Entity\DataSet; + +/** + * Event triggered to retrieve the Data Connector JavaScript from a connector. + */ +class DataConnectorScriptRequestEvent extends Event implements DataConnectorScriptProviderInterface +{ + public static $NAME = 'data.connector.script.request'; + + /** + * @var DataSet + */ + private $dataSet; + + /** + * @param DataSet $dataSet + */ + public function __construct(DataSet $dataSet) + { + $this->dataSet = $dataSet; + } + + /** + * @inheritDoc + */ + public function getConnectorId(): string + { + return $this->dataSet->dataConnectorSource; + } + + /** + * @inheritDoc + */ + public function setScript(string $script): void + { + if ($this->dataSet->isRealTime == 0) { + return; + } + + // Save the script. + $this->dataSet->saveScript($script); + } +} diff --git a/lib/Event/DataConnectorSourceRequestEvent.php b/lib/Event/DataConnectorSourceRequestEvent.php new file mode 100644 index 0000000000..d9c514f522 --- /dev/null +++ b/lib/Event/DataConnectorSourceRequestEvent.php @@ -0,0 +1,80 @@ +. + */ + +namespace Xibo\Event; + +use InvalidArgumentException; +use Xibo\Connector\DataConnectorSourceProviderInterface; + +/** + * Event triggered to retrieve a list of data connector sources. + * + * This event collects metadata (names and IDs) of connectors that provides data connector. + */ +class DataConnectorSourceRequestEvent extends Event implements DataConnectorSourceProviderInterface +{ + public static $NAME = 'data.connector.source.request'; + + /** + * @var array + */ + private $dataConnectorSources = []; + + /** + * Initializes the dataConnectorSources with default value. + */ + public function __construct() + { + $this->dataConnectorSources[] = [ + 'id' => 'user_defined', + 'name' => __('User-Defined JavaScript') + ]; + } + + /** + * @inheritDoc + */ + public function addDataConnectorSource(string $id, string $name): void + { + // ensure that there are no duplicate id or name + foreach ($this->dataConnectorSources as $dataConnectorSource) { + if ($dataConnectorSource['id'] == $id) { + throw new InvalidArgumentException('Duplicate Connector ID found.'); + } + if ($dataConnectorSource['name'] == $name) { + throw new InvalidArgumentException('Duplicate Connector Name found.'); + } + } + + $this->dataConnectorSources[] = ['id' => $id, 'name' => $name]; + } + + /** + * Retrieves the list of data connector sources. + * + * @return array + */ + public function getDataConnectorSources(): array + { + return $this->dataConnectorSources; + } +} diff --git a/lib/Event/LibraryProviderEvent.php b/lib/Event/LibraryProviderEvent.php index dec770b3fe..8af84e71d5 100644 --- a/lib/Event/LibraryProviderEvent.php +++ b/lib/Event/LibraryProviderEvent.php @@ -49,6 +49,8 @@ class LibraryProviderEvent extends Event /** @var string landspace|portrait or empty */ private $orientation; + /** @var string provider name */ + private $provider; /** * @param \Xibo\Entity\SearchResults $results @@ -57,8 +59,9 @@ class LibraryProviderEvent extends Event * @param $search * @param $types * @param $orientation + * @param $provider */ - public function __construct(SearchResults $results, $start, $length, $search, $types, $orientation) + public function __construct(SearchResults $results, $start, $length, $search, $types, $orientation, $provider) { $this->results = $results; $this->start = $start; @@ -66,6 +69,7 @@ public function __construct(SearchResults $results, $start, $length, $search, $t $this->search = $search; $this->types = $types; $this->orientation = $orientation; + $this->provider = $provider; } public function addResult(SearchResult $result): LibraryProviderEvent @@ -120,4 +124,9 @@ public function getOrientation() { return $this->orientation; } + + public function getProviderName() + { + return $this->provider; + } } diff --git a/lib/Event/LibraryProviderListEvent.php b/lib/Event/LibraryProviderListEvent.php new file mode 100644 index 0000000000..b9d3a4ced9 --- /dev/null +++ b/lib/Event/LibraryProviderListEvent.php @@ -0,0 +1,57 @@ +. + */ + +namespace Xibo\Event; + +use Xibo\Connector\ProviderDetails; + +class LibraryProviderListEvent extends Event +{ + protected static $NAME = 'connector.provider.library.list'; + /** + * @var array + */ + private mixed $providers; + + public function __construct($providers = []) + { + $this->providers = $providers; + } + + /** + * @param ProviderDetails $provider + * @return LibraryProviderListEvent + */ + public function addProvider(ProviderDetails $provider): LibraryProviderListEvent + { + $this->providers[] = $provider; + return $this; + } + + /** + * @return ProviderDetails[] + */ + public function getProviders(): array + { + return $this->providers; + } +} diff --git a/lib/Event/ScheduleCriteriaRequestEvent.php b/lib/Event/ScheduleCriteriaRequestEvent.php new file mode 100644 index 0000000000..f36694a101 --- /dev/null +++ b/lib/Event/ScheduleCriteriaRequestEvent.php @@ -0,0 +1,125 @@ +. + */ + +namespace Xibo\Event; + +use Xibo\Support\Exception\ConfigurationException; + +/** + * This class represents a schedule criteria request event. It is responsible for initializing, + * managing, and retrieving schedule criteria. The class provides methods for adding types, + * metrics, and their associated values. + */ +class ScheduleCriteriaRequestEvent extends Event implements ScheduleCriteriaRequestInterface +{ + public static $NAME = 'schedule.criteria.request'; + private $criteria = []; + private $currentTypeIndex = null; + private $currentMetric = null; + + /** + * @inheritDoc + */ + public function addType(string $id, string $type): self + { + // Initialize the type in the criteria array + $this->criteria['types'][] = [ + 'id' => $id, + 'name' => $type, + 'metrics' => [] + ]; + + // Set the current type index for chaining + $this->currentTypeIndex = count($this->criteria['types']) - 1; + return $this; + } + + /** + * @inheritDoc + */ + public function addMetric(string $id, string $name): self + { + $metric = [ + 'id' => $id, + 'name' => $name, + 'values' => null + ]; + + // Add the metric to the current type + if (isset($this->criteria['types'][$this->currentTypeIndex])) { + $this->criteria['types'][$this->currentTypeIndex]['metrics'][] = $metric; + $this->currentMetric = $metric; + } else { + throw new ConfigurationException(__('Current type is not set.')); + } + + return $this; + } + + /** + * @inheritDoc + */ + public function addValues(string $inputType, array $values): self + { + // Restrict input types to 'dropdown', 'number', 'text' and 'date' + $allowedInputTypes = ['dropdown', 'number', 'text', 'date']; + if (!in_array($inputType, $allowedInputTypes)) { + throw new ConfigurationException(__('Invalid input type.')); + } + + // Add values to the current metric + if (isset($this->criteria['types'][$this->currentTypeIndex])) { + foreach ($this->criteria['types'][$this->currentTypeIndex]['metrics'] as &$metric) { + // check if the current metric matches the metric from the current iteration + if ($metric['name'] === $this->currentMetric['name']) { + // format the values to separate id and title + $formattedValues = []; + foreach ($values as $id => $title) { + $formattedValues[] = [ + 'id' => $id, + 'title' => $title + ]; + } + + $metric['values'] = [ + 'inputType' => $inputType, + 'values' => $formattedValues + ]; + } + } + } else { + throw new ConfigurationException(__('Current type is not set.')); + } + + return $this; + } + + /** + * Get the criteria array. + * + * @return array + */ + public function getCriteria(): array + { + return $this->criteria; + } +} diff --git a/lib/Event/ScheduleCriteriaRequestInterface.php b/lib/Event/ScheduleCriteriaRequestInterface.php new file mode 100644 index 0000000000..dbc8f13fef --- /dev/null +++ b/lib/Event/ScheduleCriteriaRequestInterface.php @@ -0,0 +1,81 @@ +. + */ + +namespace Xibo\Event; + +use Xibo\Support\Exception\ConfigurationException; + +/** + * Interface for managing schedule criteria types, metrics, and values. + * + * Allows the addition of types, metrics, and values in a chained manner: + * - Start with addType() to add a new type. Call addType() multiple times to add multiple types. + * - Follow with addMetric() to add metrics under the specified type. Call addMetric() multiple times to add multiple + * metrics to the current type. + * - Conclude with addValues() immediately after addMetric() to specify a set of values for the metric. Each metric can + * have one set of values. + * + * The added criteria are then parsed and displayed in the Schedule Criteria Form, enabling users to configure + * scheduling conditions based on the specified types, metrics, and values. + */ +interface ScheduleCriteriaRequestInterface +{ + /** + * Add a new type to the criteria. + * + * @param string $id Unique identifier for the type. + * @param string $type Name of the type. + * @return self + */ + public function addType(string $id, string $type): self; + + /** + * Add a new metric to the current type. + * + * @param string $id Unique identifier for the metric. + * @param string $name Name of the metric. + * @return self + * @throws ConfigurationException If the current type is not set. + */ + public function addMetric(string $id, string $name): self; + + /** + * Add values to the current metric. The input type must be either "dropdown", "string", "date", or "number". + * + * The values array should be formatted such that the index is the id and the value is the title/name of the value. + * For "dropdown" input type, provide an array of values. For other input types ("string", "date", "number"), + * the values array should be empty "[]". + * + * Example values for "dropdown": + * [ + * 'id1' => 'Value 1', + * 'id2' => 'Value 2' + * ] + * + * @param string $inputType Type of input for the values ("dropdown", "string", "date", "number"). + * @param array $values Array of values to be associated with the metric, where the index is the id and the value is + * the title. + * @return self + * @throws ConfigurationException If the current type or metric is not set. + */ + public function addValues(string $inputType, array $values): self; +} diff --git a/lib/Event/TemplateProviderEvent.php b/lib/Event/TemplateProviderEvent.php index a43a7578ae..4905c707ac 100644 --- a/lib/Event/TemplateProviderEvent.php +++ b/lib/Event/TemplateProviderEvent.php @@ -48,17 +48,21 @@ class TemplateProviderEvent extends Event /** @var string|null */ private $search; + /** @var string|null */ + private $orientation; + /** * @param \Xibo\Entity\SearchResults $results * @param int $start * @param int $length */ - public function __construct(SearchResults $results, int $start, int $length, ?string $search) + public function __construct(SearchResults $results, int $start, int $length, ?string $search, ?string $orientation) { $this->results = $results; $this->start = $start; $this->length = $length; $this->search = $search; + $this->orientation = $orientation; } /** @@ -104,4 +108,12 @@ public function getSearch(): ?string { return $this->search; } + + /** + * @return string|null + */ + public function getOrientation(): ?string + { + return $this->orientation; + } } diff --git a/lib/Event/XmdsWeatherRequestEvent.php b/lib/Event/XmdsWeatherRequestEvent.php new file mode 100644 index 0000000000..4c172c7793 --- /dev/null +++ b/lib/Event/XmdsWeatherRequestEvent.php @@ -0,0 +1,92 @@ +. + */ + +namespace Xibo\Event; + +/** + * Event raised when XMDS receives a request for weather data. + */ +class XmdsWeatherRequestEvent extends Event +{ + public static $NAME = 'xmds.weather.request'; + + /** + * @var float + */ + private $latitude; + + /** + * @var float + */ + private $longitude; + + /** + * @var float + */ + private $weatherData; + + /** + * @param float $latitude + * @param float $longitude + */ + public function __construct(float $latitude, float $longitude) + { + $this->latitude = $latitude; + $this->longitude = $longitude; + } + + /** + * @return float + */ + public function getLatitude(): float + { + return $this->latitude; + } + + /** + * @return float + */ + public function getLongitude(): float + { + return $this->longitude; + } + + /** + * Sets the weather data. + * + * @param string $weatherData + */ + public function setWeatherData(string $weatherData): void + { + $this->weatherData = $weatherData; + } + + /** + * Gets the weather data. + * + * @return string + */ + public function getWeatherData(): string + { + return $this->weatherData; + } +} diff --git a/lib/Factory/ApplicationRequestsFactory.php b/lib/Factory/ApplicationRequestsFactory.php new file mode 100644 index 0000000000..2054168d7f --- /dev/null +++ b/lib/Factory/ApplicationRequestsFactory.php @@ -0,0 +1,40 @@ +. + */ + +namespace Xibo\Factory; + +use Xibo\Entity\ApplicationRequest; + +/** + * Class ApplicationRequestsFactory + * @package Xibo\Factory + */ +class ApplicationRequestsFactory extends BaseFactory +{ + /** + * @return ApplicationRequest + */ + public function createEmpty(): ApplicationRequest + { + return new ApplicationRequest($this->getStore(), $this->getLog(), $this->getDispatcher()); + } +} diff --git a/lib/Factory/AuditLogFactory.php b/lib/Factory/AuditLogFactory.php index 20d8d25819..636b5d03f8 100644 --- a/lib/Factory/AuditLogFactory.php +++ b/lib/Factory/AuditLogFactory.php @@ -1,6 +1,6 @@ getInt('userId') !== null) { + $body .= ' AND `auditlog`.`userId` = :userId '; + $params['userId'] = $sanitizedFilter->getInt('userId'); + } + + if ($sanitizedFilter->getInt('sessionHistoryId') !== null) { + $body .= ' AND `auditlog`.`sessionHistoryId` = :sessionHistoryId '; + $params['sessionHistoryId'] = $sanitizedFilter->getInt('sessionHistoryId'); + } + $order = ''; if (is_array($sortOrder) && count($sortOrder) > 0) { $order .= 'ORDER BY ' . implode(', ', $sortOrder) . ' '; diff --git a/lib/Factory/CommandFactory.php b/lib/Factory/CommandFactory.php index 19c6e3b558..5991e94c61 100644 --- a/lib/Factory/CommandFactory.php +++ b/lib/Factory/CommandFactory.php @@ -117,16 +117,19 @@ public function query($sortOrder = null, $filterBy = []) `command`.userId, `command`.availableOn, `command`.commandString, - `command`.validationString '; + `command`.validationString, + `command`.createAlertOn + '; if ($sanitizedFilter->getInt('displayProfileId') !== null) { $select .= ', :displayProfileId AS displayProfileId, `lkcommanddisplayprofile`.commandString AS commandStringDisplayProfile, - `lkcommanddisplayprofile`.validationString AS validationStringDisplayProfile '; + `lkcommanddisplayprofile`.validationString AS validationStringDisplayProfile, + `lkcommanddisplayprofile`.createAlertOn AS createAlertOnDisplayProfile '; } - $select .= " , (SELECT GROUP_CONCAT(DISTINCT `group`.group) + $select .= ' , (SELECT GROUP_CONCAT(DISTINCT `group`.group) FROM `permission` INNER JOIN `permissionentity` ON `permissionentity`.entityId = permission.entityId @@ -135,7 +138,7 @@ public function query($sortOrder = null, $filterBy = []) WHERE entity = :permissionEntityForGroup AND objectId = command.commandId AND view = 1 - ) AS groupsWithPermissions "; + ) AS groupsWithPermissions '; $params['permissionEntityForGroup'] = 'Xibo\\Entity\\Command'; $body = ' FROM `command` '; @@ -195,7 +198,14 @@ public function query($sortOrder = null, $filterBy = []) $params['userId'] = $sanitizedFilter->getInt('userId'); } - $this->viewPermissionSql('Xibo\Entity\Command', $body, $params, 'command.commandId', 'command.userId', $filterBy); + $this->viewPermissionSql( + 'Xibo\Entity\Command', + $body, + $params, + 'command.commandId', + 'command.userId', + $filterBy + ); // Sorting? $order = ''; diff --git a/lib/Factory/DataSetFactory.php b/lib/Factory/DataSetFactory.php index 7140e257fc..5b702aaa6e 100644 --- a/lib/Factory/DataSetFactory.php +++ b/lib/Factory/DataSetFactory.php @@ -202,6 +202,8 @@ public function query($sortOrder = null, $filterBy = []) dataset.`code`, dataset.`isLookup`, dataset.`isRemote`, + dataset.`isRealTime`, + dataset.`dataConnectorSource`, dataset.`method`, dataset.`uri`, dataset.`postData`, @@ -262,6 +264,11 @@ public function query($sortOrder = null, $filterBy = []) $params['isRemote'] = $parsedFilter->getInt('isRemote'); } + if ($parsedFilter->getInt('isRealTime') !== null) { + $body .= ' AND dataset.isRealTime = :isRealTime '; + $params['isRealTime'] = $parsedFilter->getInt('isRealTime'); + } + if ($parsedFilter->getString('dataSet') != null) { $terms = explode(',', $parsedFilter->getString('dataSet')); $logicalOperator = $parsedFilter->getString('logicalOperatorName', ['default' => 'OR']); @@ -309,7 +316,18 @@ public function query($sortOrder = null, $filterBy = []) foreach ($this->getStore()->select($sql, $params) as $row) { $entries[] = $this->createEmpty()->hydrate($row, [ - 'intProperties' => ['isLookup', 'isRemote', 'clearRate', 'refreshRate', 'lastDataEdit', 'runsAfter', 'lastSync', 'lastClear', 'ignoreFirstRow'] + 'intProperties' => [ + 'isLookup', + 'isRemote', + 'isRealTime', + 'clearRate', + 'refreshRate', + 'lastDataEdit', + 'runsAfter', + 'lastSync', + 'lastClear', + 'ignoreFirstRow', + ], ]); } @@ -523,6 +541,14 @@ function ($v) use ($dataSet) { array_shift($array); } + // Filter out rows that are entirely empty + $array = array_filter($array, function($row) { + // Check if the row is empty (all elements are empty or null) + return array_filter($row, function($value) { + return !empty($value); + }); + }); + $result->entries = $array; $result->number = count($array); } diff --git a/lib/Factory/DisplayFactory.php b/lib/Factory/DisplayFactory.php index 977720f973..876302dbb5 100644 --- a/lib/Factory/DisplayFactory.php +++ b/lib/Factory/DisplayFactory.php @@ -1,6 +1,6 @@ getInt('displayGroupId'); } + if ($parsedBody->getIntArray('displayGroupIds') !== null) { + $body .= ' AND displaygroup.displayGroupId IN (0'; + $i = 0; + foreach ($parsedBody->getIntArray('displayGroupIds') as $displayGroupId) { + $i++; + $body .= ',:displayGroupId' . $i; + $params['displayGroupId' . $i] = $displayGroupId; + } + $body .= ')'; + } + if ($parsedBody->getInt('parentId') !== null) { $body .= ' AND `displaygroup`.displayGroupId IN (SELECT `childId` FROM `lkdgdg` WHERE `parentId` = :parentId AND `depth` = 1) '; $params['parentId'] = $parsedBody->getInt('parentId'); diff --git a/lib/Factory/DisplayProfileFactory.php b/lib/Factory/DisplayProfileFactory.php index 1617ee1a27..46bcf2b7bf 100644 --- a/lib/Factory/DisplayProfileFactory.php +++ b/lib/Factory/DisplayProfileFactory.php @@ -187,6 +187,7 @@ public function loadForType($type) ['name' => 'clientInfomationCtrlKey', 'default' => 0, 'type' => 'checkbox'], ['name' => 'clientInformationKeyCode', 'default' => 'I', 'type' => 'string'], ['name' => 'logLevel', 'default' => 'error', 'type' => 'string'], + ['name' => 'elevateLogsUntil', 'default' => 0, 'type' => 'int'], ['name' => 'logToDiskLocation', 'default' => '', 'type' => 'string'], ['name' => 'showInTaskbar', 'default' => 1, 'type' => 'checkbox'], ['name' => 'cursorStartPosition', 'default' => 'Unchanged', 'type' => 'string'], @@ -236,6 +237,7 @@ public function loadForType($type) ['name' => 'storeHtmlOnInternal', 'default' => 0, 'type' => 'checkbox'], ['name' => 'useSurfaceVideoView', 'default' => 1, 'type' => 'checkbox'], ['name' => 'logLevel', 'default' => 'error'], + ['name' => 'elevateLogsUntil', 'default' => 0, 'type' => 'int'], ['name' => 'versionMediaId', 'default' => null], ['name' => 'startOnBoot', 'default' => 1, 'type' => 'checkbox'], ['name' => 'actionBarMode', 'default' => 1], @@ -290,6 +292,7 @@ public function loadForType($type) ['name' => 'offsetX', 'default' => 0], ['name' => 'offsetY', 'default' => 0], ['name' => 'logLevel', 'default' => 'error'], + ['name' => 'elevateLogsUntil', 'default' => 0, 'type' => 'int'], ['name' => 'enableShellCommands', 'default' => 0, 'type' => 'checkbox'], ['name' => 'expireModifiedLayouts', 'default' => 0, 'type' => 'checkbox'], ['name' => 'maxConcurrentDownloads', 'default' => 2], @@ -325,6 +328,7 @@ public function loadForType($type) ], ['name' => 'orientation', 'default' => 0], ['name' => 'logLevel', 'default' => 'error'], + ['name' => 'elevateLogsUntil', 'default' => 0, 'type' => 'int'], ['name' => 'versionMediaId', 'default' => null], ['name' => 'actionBarMode', 'default' => 1], ['name' => 'actionBarDisplayDuration', 'default' => 30], @@ -360,6 +364,7 @@ public function loadForType($type) ], ['name' => 'orientation', 'default' => 0], ['name' => 'logLevel', 'default' => 'error'], + ['name' => 'elevateLogsUntil', 'default' => 0, 'type' => 'int'], ['name' => 'versionMediaId', 'default' => null], ['name' => 'actionBarMode', 'default' => 1], ['name' => 'actionBarDisplayDuration', 'default' => 30], diff --git a/lib/Factory/FolderFactory.php b/lib/Factory/FolderFactory.php index 3173a0af45..6b96b7534c 100644 --- a/lib/Factory/FolderFactory.php +++ b/lib/Factory/FolderFactory.php @@ -152,6 +152,12 @@ public function query($sortOrder = null, $filterBy = []) $body .= 'OR folder.isRoot = 1'; } + // get the exact match for the search functionality + if ($sanitizedFilter->getInt('exactFolderName') === 1) { + $body.= " AND folder.folderName = :exactFolderName "; + $params['exactFolderName'] = $sanitizedFilter->getString('folderName'); + } + // View Permissions (home folder included in here) $this->viewPermissionSql( 'Xibo\Entity\Folder', diff --git a/lib/Factory/LayoutFactory.php b/lib/Factory/LayoutFactory.php index 548de0ec46..9e96f71b54 100644 --- a/lib/Factory/LayoutFactory.php +++ b/lib/Factory/LayoutFactory.php @@ -36,7 +36,6 @@ use Xibo\Helper\DateFormatHelper; use Xibo\Service\ConfigServiceInterface; use Xibo\Service\MediaServiceInterface; -use Xibo\Support\Exception\ConfigurationException; use Xibo\Support\Exception\DuplicateEntityException; use Xibo\Support\Exception\GeneralException; use Xibo\Support\Exception\InvalidArgumentException; @@ -163,7 +162,8 @@ public function __construct( $widgetAudioFactory, $actionFactory, $folderFactory, - FontFactory $fontFactory + FontFactory $fontFactory, + private readonly WidgetDataFactory $widgetDataFactory ) { $this->setAclDependencies($user, $userFactory); $this->config = $config; @@ -1251,7 +1251,7 @@ public function loadByJson($layoutJson, $playlistJson, $nestedPlaylistJson, Fold * @param string $zipFile * @param string $layoutName * @param int $userId - * @param int $template + * @param int $template Are we importing a layout to be used as a template? * @param int $replaceExisting * @param int $importTags * @param bool $useExistingDataSets @@ -1260,12 +1260,10 @@ public function loadByJson($layoutJson, $playlistJson, $nestedPlaylistJson, Fold * @param string $tags * @param MediaServiceInterface $mediaService * @param int $folderId + * @param bool $isSystemTags Should we add the system tags (currently the "imported" tag) * @return Layout - * @throws DuplicateEntityException - * @throws GeneralException - * @throws InvalidArgumentException - * @throws NotFoundException - * @throws ConfigurationException + * @throws \FontLib\Exception\FontNotFoundException + * @throws \Xibo\Support\Exception\GeneralException */ public function createFromZip( $zipFile, @@ -1279,7 +1277,8 @@ public function createFromZip( $dataSetFactory, $tags, MediaServiceInterface $mediaService, - int $folderId + int $folderId, + bool $isSystemTags = true, ) { $this->getLog()->debug(sprintf( 'Create Layout from ZIP File: %s, imported name will be %s.', @@ -1432,8 +1431,11 @@ public function createFromZip( $layout->assignTag($this->tagFactory->tagFromString('template')); } - // Tag as imported - $layout->assignTag($this->tagFactory->tagFromString('imported')); + // Add system tags? + if ($isSystemTags) { + // Tag as imported + $layout->assignTag($this->tagFactory->tagFromString('imported')); + } // Tag from the upload form $tagsFromForm = (($tags != '') ? $this->tagFactory->tagsFromString($tags) : []); @@ -1948,6 +1950,12 @@ public function createFromZip( } } + // Load widget data into an array for processing outside (once the layout has been saved) + $fallback = $zip->getFromName('fallback.json'); + if ($fallback !== false) { + $layout->setUnmatchedProperty('fallback', json_decode($fallback, true)); + } + // Save the thumbnail to a temporary location. $image_path = $zip->getFromName('library/thumbs/campaign_thumb.png'); if ($image_path !== false) { @@ -2811,6 +2819,9 @@ public function checkoutLayout($layout, $returnDraft = true) $new->objectId = $widget->widgetId; $new->save(); } + + // Copy widget data + $this->widgetDataFactory->copyByWidgetId($originalWidget->widgetId, $widget->widgetId); } } diff --git a/lib/Factory/LogFactory.php b/lib/Factory/LogFactory.php index 840a57701f..da195a9e54 100644 --- a/lib/Factory/LogFactory.php +++ b/lib/Factory/LogFactory.php @@ -1,6 +1,6 @@ getSanitizer($filterBy); - if ($sortOrder == null) + if ($sortOrder == null) { $sortOrder = ['logId DESC']; + } $entries = []; $params = []; - $order = ''; $limit = ''; + $order = ''; + $limit = ''; $select = ' SELECT `logId`, @@ -70,7 +72,9 @@ public function query($sortOrder = null, $filterBy = []) `message`, `display`.`displayId`, `display`.`display`, - `type` + `type`, + `userId`, + `sessionHistoryId` '; $body = ' @@ -88,12 +92,16 @@ public function query($sortOrder = null, $filterBy = []) if ($parsedFilter->getInt('fromDt') !== null) { $body .= ' AND `logdate` > :fromDt '; - $params['fromDt'] = Carbon::createFromTimestamp( $parsedFilter->getInt('fromDt'))->format(DateFormatHelper::getSystemFormat()); + $params['fromDt'] = Carbon::createFromTimestamp( + $parsedFilter->getInt('fromDt') + )->format(DateFormatHelper::getSystemFormat()); } if ($parsedFilter->getInt('toDt') !== null) { $body .= ' AND `logdate` <= :toDt '; - $params['toDt'] = Carbon::createFromTimestamp( $parsedFilter->getInt('toDt'))->format(DateFormatHelper::getSystemFormat()); + $params['toDt'] = Carbon::createFromTimestamp( + $parsedFilter->getInt('toDt') + )->format(DateFormatHelper::getSystemFormat()); } if ($parsedFilter->getString('runNo') != null) { @@ -138,7 +146,7 @@ public function query($sortOrder = null, $filterBy = []) if ($parsedFilter->getCheckbox('excludeLog') == 1) { $body .= ' AND (`log`.`page` NOT LIKE \'/log%\' OR `log`.`page` = \'/login\') '; - $body .= ' AND `log`.`page` NOT IN(\'/user/pref\', \'/clock\', \'/library/fontcss\') '; + $body .= ' AND `log`.`page` NOT IN(\'/user/pref\', \'/clock\', \'/fonts/fontcss\') '; } // Filter by Display Name? @@ -159,6 +167,11 @@ public function query($sortOrder = null, $filterBy = []) $params['displayGroupId'] = $parsedFilter->getInt('displayGroupId'); } + if ($parsedFilter->getInt('sessionHistoryId') !== null) { + $body .= ' AND `log`.`sessionHistoryId` = :sessionHistoryId '; + $params['sessionHistoryId'] = $parsedFilter->getInt('sessionHistoryId'); + } + // Sorting? if (is_array($sortOrder)) { $order = ' ORDER BY ' . implode(',', $sortOrder); diff --git a/lib/Factory/MediaFactory.php b/lib/Factory/MediaFactory.php index 57ad97d87a..98fbf769e2 100644 --- a/lib/Factory/MediaFactory.php +++ b/lib/Factory/MediaFactory.php @@ -183,6 +183,7 @@ public function queueDownload($name, $uri, $expiry, $requestOptions = []) $media->enableStat = $requestOptions['enableStat']; $media->folderId = $requestOptions['folderId']; $media->permissionsFolderId = $requestOptions['permissionsFolderId']; + $media->apiRef = $requestOptions['apiRef']; } $this->getLog()->debug('Queue download of: ' . $uri . ', current mediaId for this download is ' diff --git a/lib/Factory/ModuleFactory.php b/lib/Factory/ModuleFactory.php index 5ea1784838..46637e1f71 100644 --- a/lib/Factory/ModuleFactory.php +++ b/lib/Factory/ModuleFactory.php @@ -49,6 +49,16 @@ class ModuleFactory extends BaseFactory { use ModuleXmlTrait; + public static $systemDataTypes = [ + 'Article', + 'Event', + 'Forecast', + 'Product', + 'ProductCategory', + 'SocialMedia', + 'dataset' + ]; + /** @var Module[] all modules */ private $modules = null; @@ -194,6 +204,11 @@ public function determineCacheKey( } } } + + // Include a separate cache per fallback data? + if ($module->fallbackData == 1) { + $cacheKey .= '_fb ' . $widget->getOptionValue('showFallback', 'never'); + } } $this->getLog()->debug('determineCacheKey: cache key is : ' . $cacheKey); @@ -426,7 +441,8 @@ public function getValidExtensions($filterBy = []): array public function getDataTypeById(string $dataTypeId): DataType { // Rely on a class if we have one. - $className = '\\Xibo\\Widget\\DataType\\' . ucfirst($dataTypeId); + $className = ucfirst(str_replace('-', '', ucwords($dataTypeId, '-'))); + $className = '\\Xibo\\Widget\\DataType\\' . $className; if (class_exists($className)) { $class = new $className(); if ($class instanceof DataTypeInterface) { @@ -444,6 +460,51 @@ public function getDataTypeById(string $dataTypeId): DataType throw new NotFoundException(__('DataType not found')); } + /** + * @return DataType[] + */ + public function getAllDataTypes() + { + $dataTypes = []; + + // get system data types + foreach (self::$systemDataTypes as $dataTypeId) { + $className = '\\Xibo\\Widget\\DataType\\' . ucfirst($dataTypeId); + if (class_exists($className)) { + $class = new $className(); + if ($class instanceof DataTypeInterface) { + $dataTypes[] = $class->getDefinition(); + } + } + + // special handling for dataset + if ($dataTypeId === 'dataset') { + $dataType = new DataType(); + $dataType->id = $dataTypeId; + $dataType->name = 'DataSet'; + $dataTypes[] = $dataType; + } + } + + // get data types from xml + $files = array_merge( + glob(PROJECT_ROOT . '/modules/datatypes/*.xml'), + glob(PROJECT_ROOT . '/custom/modules/datatypes/*.xml') + ); + + foreach ($files as $file) { + $xml = new \DOMDocument(); + $xml->load($file); + $dataType = new DataType(); + $dataType->id = $this->getFirstValueOrDefaultFromXmlNode($xml, 'id'); + $dataType->name = $this->getFirstValueOrDefaultFromXmlNode($xml, 'name'); + $dataTypes[] = $dataType; + } + + sort($dataTypes); + return $dataTypes; + } + /** * @param string $assetId * @return \Xibo\Widget\Definition\Asset @@ -684,6 +745,7 @@ private function createFromXml(string $file, array $modulesWithSettings): Module $module->startHeight = intval($this->getFirstValueOrDefaultFromXmlNode($xml, 'startHeight')); $module->dataType = $this->getFirstValueOrDefaultFromXmlNode($xml, 'dataType'); $module->dataCacheKey = $this->getFirstValueOrDefaultFromXmlNode($xml, 'dataCacheKey'); + $module->fallbackData = intval($this->getFirstValueOrDefaultFromXmlNode($xml, 'fallbackData', 0)); $module->schemaVersion = intval($this->getFirstValueOrDefaultFromXmlNode($xml, 'schemaVersion')); $module->compatibilityClass = $this->getFirstValueOrDefaultFromXmlNode($xml, 'compatibilityClass'); $module->showIn = $this->getFirstValueOrDefaultFromXmlNode($xml, 'showIn') ?? 'both'; @@ -692,6 +754,7 @@ private function createFromXml(string $file, array $modulesWithSettings): Module $module->renderAs = $this->getFirstValueOrDefaultFromXmlNode($xml, 'renderAs'); $module->defaultDuration = intval($this->getFirstValueOrDefaultFromXmlNode($xml, 'defaultDuration')); $module->hasThumbnail = intval($this->getFirstValueOrDefaultFromXmlNode($xml, 'hasThumbnail', 0)); + $module->allowPreview = intval($this->getFirstValueOrDefaultFromXmlNode($xml, 'allowPreview', 1)); // Validator classes foreach ($xml->getElementsByTagName('validatorClass') as $node) { @@ -868,7 +931,8 @@ private function createDataTypeFromXml(string $file): DataType $dataType->addField( $field->getAttribute('id'), trim($field->textContent), - $field->getAttribute('type') + $field->getAttribute('type'), + $field->getAttribute('isRequired') === 'true', ); } } diff --git a/lib/Factory/ModuleTemplateFactory.php b/lib/Factory/ModuleTemplateFactory.php index 36284cddb9..6f18beda0e 100644 --- a/lib/Factory/ModuleTemplateFactory.php +++ b/lib/Factory/ModuleTemplateFactory.php @@ -71,6 +71,21 @@ public function getByTypeAndId(string $type, string $id): ModuleTemplate throw new NotFoundException(sprintf(__('%s not found for %s'), $type, $id)); } + /** + * @param int $id + * @return \Xibo\Entity\ModuleTemplate + * @throws \Xibo\Support\Exception\NotFoundException + */ + public function getUserTemplateById(int $id): ModuleTemplate + { + $templates = $this->loadUserTemplates(null, ['id' => $id]); + if (count($templates) !== 1) { + throw new NotFoundException(sprintf(__('Template not found for %s'), $id)); + } + + return $templates[0]; + } + /** * @param string $dataType * @param string $id @@ -102,6 +117,22 @@ public function getByDataType(string $dataType): array return $templates; } + /** + * @param string $type + * @param string $dataType + * @return ModuleTemplate[] + */ + public function getByTypeAndDataType(string $type, string $dataType, bool $includeUserTemplates = true): array + { + $templates = []; + foreach ($this->load($includeUserTemplates) as $template) { + if ($template->dataType === $dataType && $template->type === $type) { + $templates[] = $template; + } + } + return $templates; + } + /** * @param string $assetId * @return \Xibo\Widget\Definition\Asset @@ -140,11 +171,25 @@ public function getAssetByAlias(string $alias): Asset /** * Get an array of all modules - * @return \Xibo\Entity\ModuleTemplate[] + * @param string|null $ownership + * @param bool $includeUserTemplates + * @return ModuleTemplate[] */ - public function getAll(): array + public function getAll(?string $ownership = null, bool $includeUserTemplates = true): array { - return $this->load(); + $templates = $this->load($includeUserTemplates); + + if ($ownership === null) { + return $templates; + } else { + $ownedBy = []; + foreach ($templates as $template) { + if ($ownership === $template->ownership) { + $ownedBy[] = $template; + } + } + return $ownedBy; + } } /** @@ -164,39 +209,178 @@ public function getAllAssets(): array /** * Load templates - * @return \Xibo\Entity\ModuleTemplate[] + * @param bool $includeUserTemplates + * @return ModuleTemplate[] */ - private function load(): array + private function load(bool $includeUserTemplates = true): array { if ($this->templates === null) { - $this->getLog()->debug('Loading templates'); - - $files = array_merge( - glob(PROJECT_ROOT . '/modules/templates/*.xml'), - glob(PROJECT_ROOT . '/custom/modules/templates/*.xml') + $this->getLog()->debug('load: Loading templates'); + + $this->templates = array_merge( + $this->loadFolder( + PROJECT_ROOT . '/modules/templates/*.xml', + 'system', + ), + $this->loadFolder( + PROJECT_ROOT . '/custom/modules/templates/*.xml', + 'custom' + ), ); - foreach ($files as $file) { - // Create our module entity from this file - try { - $this->createMultiFromXml($file); - } catch (\Exception $exception) { - $this->getLog()->error('Unable to create template from ' - . basename($file) . ', skipping. e = ' . $exception->getMessage()); - } + if ($includeUserTemplates) { + $this->templates = array_merge( + $this->templates, + $this->loadUserTemplates() + ); } } return $this->templates; } + /** + * Load templates + * @return \Xibo\Entity\ModuleTemplate[] + */ + private function loadFolder(string $folder, string $ownership): array + { + $this->getLog()->debug('loadFolder: Loading templates from ' . $folder); + $templates = []; + + foreach (glob($folder) as $file) { + // Create our module entity from this file + try { + $templates = array_merge($templates, $this->createMultiFromXml($file, $ownership)); + } catch (\Exception $exception) { + $this->getLog()->error('Unable to create template from ' + . basename($file) . ', skipping. e = ' . $exception->getMessage()); + } + } + + return $templates; + } + + /** + * Load user templates from the database. + * @return ModuleTemplate[] + */ + public function loadUserTemplates($sortOrder = [], $filterBy = []): array + { + $this->getLog()->debug('load: Loading user templates'); + + if (empty($sortOrder)) { + $sortOrder = ['id']; + } + + $templates = []; + $params = []; + + $filter = $this->getSanitizer($filterBy); + + $select = 'SELECT *, + (SELECT GROUP_CONCAT(DISTINCT `group`.group) + FROM `permission` + INNER JOIN `permissionentity` + ON `permissionentity`.entityId = permission.entityId + INNER JOIN `group` + ON `group`.groupId = `permission`.groupId + WHERE entity = :permissionEntityGroups + AND objectId = `module_templates`.id + AND view = 1 + ) AS groupsWithPermissions'; + + $body = ' FROM `module_templates` + WHERE 1 = 1 '; + + if ($filter->getInt('id') !== null) { + $body .= ' AND `id` = :id '; + $params['id'] = $filter->getInt('id'); + } + + if (!empty($filter->getString('templateId'))) { + $body .= ' AND `templateId` LIKE :templateId '; + $params['templateId'] = '%' . $filter->getString('templateId') . '%'; + } + + if (!empty($filter->getString('dataType'))) { + $body .= ' AND `dataType` = :dataType '; + $params['dataType'] = $filter->getString('dataType') ; + } + + $params['permissionEntityGroups'] = 'Xibo\\Entity\\ModuleTemplate'; + + $this->viewPermissionSql( + 'Xibo\Entity\ModuleTemplate', + $body, + $params, + 'module_templates.id', + 'module_templates.ownerId', + $filterBy, + ); + + $order = ''; + if (is_array($sortOrder) && !empty($sortOrder)) { + $order .= ' ORDER BY ' . implode(',', $sortOrder); + } + + // Paging + $limit = ''; + if ($filterBy !== null && $filter->getInt('start') !== null && $filter->getInt('length') !== null) { + $limit .= ' LIMIT ' . + $filter->getInt('start', ['default' => 0]) . ', ' . + $filter->getInt('length', ['default' => 10]); + } + + $sql = $select . $body . $order. $limit; + + foreach ($this->getStore()->select($sql, $params) as $row) { + $template = $this->createUserTemplate($row['xml']); + $template->id = intval($row['id']); + $template->templateId = $row['templateId']; + $template->dataType = $row['dataType']; + $template->isEnabled = $row['enabled'] == 1; + $template->ownerId = intval($row['ownerId']); + $template->groupsWithPermissions = $row['groupsWithPermissions']; + $templates[] = $template; + } + + // Paging + if (!empty($limit) && count($templates) > 0) { + unset($params['permissionEntityGroups']); + $results = $this->getStore()->select('SELECT COUNT(*) AS total ' . $body, $params); + $this->_countLast = intval($results[0]['total']); + } + + return $templates; + } + + /** + * Create a user template from an XML string + * @param string $xmlString + * @return ModuleTemplate + */ + public function createUserTemplate(string $xmlString): ModuleTemplate + { + $xml = new \DOMDocument(); + $xml->loadXML($xmlString); + + $template = $this->createFromXml($xml->documentElement, 'user', 'database'); + $template->setXml($xmlString); + $template->setDocument($xml); + return $template; + } + /** * Create multiple templates from XML * @param string $file - * @return void + * @param string $ownership + * @return ModuleTemplate[] */ - private function createMultiFromXml(string $file): void + private function createMultiFromXml(string $file, string $ownership): array { + $templates = []; + $xml = new \DOMDocument(); $xml->load($file); @@ -206,21 +390,26 @@ private function createMultiFromXml(string $file): void . ' templates in ' . $file); foreach ($node->childNodes as $childNode) { if ($childNode instanceof \DOMElement) { - $this->templates[] = $this->createFromXml($childNode); + $templates[] = $this->createFromXml($childNode, $ownership, $file); } } } } + + return $templates; } /** * @param \DOMElement $xml + * @param string $ownership + * @param string $file * @return \Xibo\Entity\ModuleTemplate */ - private function createFromXml(\DOMElement $xml): ModuleTemplate + private function createFromXml(\DOMElement $xml, string $ownership, string $file): ModuleTemplate { // TODO: cache this into Stash - $template = new ModuleTemplate($this->getStore(), $this->getLog(), $this->getDispatcher(), $this); + $template = new ModuleTemplate($this->getStore(), $this->getLog(), $this->getDispatcher(), $this, $file); + $template->ownership = $ownership; $template->templateId = $this->getFirstValueOrDefaultFromXmlNode($xml, 'id'); $template->type = $this->getFirstValueOrDefaultFromXmlNode($xml, 'type'); $template->dataType = $this->getFirstValueOrDefaultFromXmlNode($xml, 'dataType'); @@ -299,4 +488,156 @@ private function createFromXml(\DOMElement $xml): ModuleTemplate return $template; } + + /** + * Parse properties json into xml node. + * + * @param string $properties + * @return \DOMDocument + * @throws \DOMException + */ + public function parseJsonPropertiesToXml(string $properties): \DOMDocument + { + $newPropertiesXml = new \DOMDocument(); + $newPropertiesNode = $newPropertiesXml->createElement('properties'); + $attributes = [ + 'id', + 'type', + 'variant', + 'format', + 'mode', + 'target', + 'propertyGroupId', + 'allowLibraryRefs', + 'allowAssetRefs', + 'parseTranslations', + 'includeInXlf' + ]; + + $commonNodes = [ + 'title', + 'helpText', + 'default', + 'dependsOn', + 'customPopOver' + ]; + + $newProperties = json_decode($properties, true); + foreach ($newProperties as $property) { + // create property node + $propertyNode = $newPropertiesXml->createElement('property'); + + // go through possible attributes on the property node. + foreach ($attributes as $attribute) { + if (!empty($property[$attribute])) { + $propertyNode->setAttribute($attribute, $property[$attribute]); + } + } + + // go through common nodes on property add them if not empty + foreach ($commonNodes as $commonNode) { + if (!empty($property[$commonNode])) { + $propertyNode->appendChild($newPropertiesXml->createElement($commonNode, $property[$commonNode])); + } + } + + // do we have options? + if (!empty($property['options'])) { + $options = $property['options']; + if (!is_array($options)) { + $options = json_decode($options, true); + } + + $optionsNode = $newPropertiesXml->createElement('options'); + foreach ($options as $option) { + $optionNode = $newPropertiesXml->createElement('option', $option['title']); + $optionNode->setAttribute('name', $option['name']); + if (!empty($option['set'])) { + $optionNode->setAttribute('set', $option['set']); + } + if (!empty($option['image'])) { + $optionNode->setAttribute('image', $option['image']); + } + $optionsNode->appendChild($optionNode); + } + $propertyNode->appendChild($optionsNode); + } + + // do we have visibility? + if (!empty($property['visibility'])) { + $visibility = $property['visibility']; + if (!is_array($visibility)) { + $visibility = json_decode($visibility, true); + } + + $visibilityNode = $newPropertiesXml->createElement('visibility'); + + foreach ($visibility as $testElement) { + $testNode = $newPropertiesXml->createElement('test'); + $testNode->setAttribute('type', $testElement['type']); + $testNode->setAttribute('message', $testElement['message']); + foreach ($testElement['conditions'] as $condition) { + $conditionNode = $newPropertiesXml->createElement('condition', $condition['value']); + $conditionNode->setAttribute('field', $condition['field']); + $conditionNode->setAttribute('type', $condition['type']); + $testNode->appendChild($conditionNode); + } + $visibilityNode->appendChild($testNode); + } + $propertyNode->appendChild($visibilityNode); + } + + // do we have validation rules? + if (!empty($property['validation'])) { + $validation = $property['validation']; + if (!is_array($validation)) { + $validation = json_decode($property['validation'], true); + } + + // xml uses rule node for this. + $ruleNode = $newPropertiesXml->createElement('rule'); + + // attributes on rule node; + $ruleNode->setAttribute('onSave', $validation['onSave'] ? 'true' : 'false'); + $ruleNode->setAttribute('onStatus', $validation['onStatus'] ? 'true' : 'false'); + + // validation property has an array on tests in it + foreach ($validation['tests'] as $validationTest) { + $ruleTestNode = $newPropertiesXml->createElement('test'); + $ruleTestNode->setAttribute('type', $validationTest['type']); + $ruleTestNode->setAttribute('message', $validationTest['message']); + + foreach ($validationTest['conditions'] as $condition) { + $conditionNode = $newPropertiesXml->createElement('condition', $condition['value']); + $conditionNode->setAttribute('field', $condition['field']); + $conditionNode->setAttribute('type', $condition['type']); + $ruleTestNode->appendChild($conditionNode); + } + $ruleNode->appendChild($ruleTestNode); + } + $propertyNode->appendChild($ruleNode); + } + + // do we have player compatibility? + if (!empty($property['playerCompatibility'])) { + $playerCompat = $property['playerCompatibility']; + if (!is_array($playerCompat)) { + $playerCompat = json_decode($property['playerCompatibility'], true); + } + + $playerCompatibilityNode = $newPropertiesXml->createElement('playerCompatibility'); + foreach ($playerCompat as $player => $value) { + $playerCompatibilityNode->setAttribute($player, $value); + } + + $propertyNode->appendChild($playerCompatibilityNode); + } + + $newPropertiesNode->appendChild($propertyNode); + } + + $newPropertiesXml->appendChild($newPropertiesNode); + + return $newPropertiesXml; + } } diff --git a/lib/Factory/ModuleXmlTrait.php b/lib/Factory/ModuleXmlTrait.php index d1b4743eb3..b887694900 100644 --- a/lib/Factory/ModuleXmlTrait.php +++ b/lib/Factory/ModuleXmlTrait.php @@ -26,6 +26,7 @@ use Xibo\Entity\Module; use Xibo\Widget\Definition\Asset; use Xibo\Widget\Definition\Element; +use Xibo\Widget\Definition\ElementGroup; use Xibo\Widget\Definition\Extend; use Xibo\Widget\Definition\LegacyType; use Xibo\Widget\Definition\PlayerCompatibility; @@ -76,6 +77,8 @@ private function getStencils(\DOMNodeList $nodes): array $stencil->height = doubleval($childNode->textContent); } else if ($childNode->nodeName === 'gapBetweenHbs') { $stencil->gapBetweenHbs = doubleval($childNode->textContent); + } else if ($childNode->nodeName === 'elementGroups') { + $stencil->elementGroups = $this->parseElementGroups($childNode->childNodes); } } @@ -123,6 +126,7 @@ private function parseProperties($propertyNodes, ?Module $module = null): array $property->allowAssetRefs = $node->getAttribute('allowAssetRefs') === 'true'; $property->parseTranslations = $node->getAttribute('parseTranslations') === 'true'; $property->saveDefault = $node->getAttribute('saveDefault') === 'true'; + $property->sendToElements = $node->getAttribute('sendToElements') === 'true'; $property->title = __($this->getFirstValueOrDefaultFromXmlNode($node, 'title')); $property->helpText = __($this->getFirstValueOrDefaultFromXmlNode($node, 'helpText')); $property->dependsOn = $this->getFirstValueOrDefaultFromXmlNode($node, 'dependsOn'); @@ -326,6 +330,7 @@ private function parseElements(\DOMNodeList $elementsNodes): array if ($elementNode instanceof \DOMElement) { $element = new Element(); $element->id = $elementNode->getAttribute('id'); + $element->elementGroupId = $elementNode->getAttribute('elementGroupId'); foreach ($elementNode->childNodes as $childNode) { if ($childNode instanceof \DOMElement) { if ($childNode->nodeName === 'top') { @@ -359,6 +364,46 @@ private function parseElements(\DOMNodeList $elementsNodes): array return $elements; } + /** + * @param \DOMNodeList $elementGroupsNodes + * @return \Xibo\Widget\Definition\Property[] + */ + private function parseElementGroups (\DOMNodeList $elementGroupsNodes): array + { + $elementGroups = []; + foreach ($elementGroupsNodes as $elementGroupsNode) { + /** @var \DOMNode $elementNode */ + if ($elementGroupsNode instanceof \DOMElement) { + $elementGroup = new ElementGroup(); + $elementGroup->id = $elementGroupsNode->getAttribute('id'); + foreach ($elementGroupsNode->childNodes as $childNode) { + if ($childNode instanceof \DOMElement) { + if ($childNode->nodeName === 'top') { + $elementGroup->top = doubleval($childNode->textContent); + } else if ($childNode->nodeName === 'left') { + $elementGroup->left = doubleval($childNode->textContent); + } else if ($childNode->nodeName === 'width') { + $elementGroup->width = doubleval($childNode->textContent); + } else if ($childNode->nodeName === 'height') { + $elementGroup->height = doubleval($childNode->textContent); + } else if ($childNode->nodeName === 'layer') { + $elementGroup->layer = intval($childNode->textContent); + } else if ($childNode->nodeName === 'title') { + $elementGroup->title = $childNode->textContent; + } else if ($childNode->nodeName === 'slot') { + $elementGroup->slot = intval($childNode->textContent); + } else if ($childNode->nodeName === 'pinSlot') { + $elementGroup->pinSlot = boolval($childNode->textContent); + } + } + } + $elementGroups[] = $elementGroup; + } + } + + return $elementGroups; + } + /** * @param \DOMNodeList $legacyTypeNodes * @return \Xibo\Widget\Definition\LegacyType[] diff --git a/lib/Factory/NotificationFactory.php b/lib/Factory/NotificationFactory.php index dcdb08b469..0265e55a8b 100644 --- a/lib/Factory/NotificationFactory.php +++ b/lib/Factory/NotificationFactory.php @@ -1,6 +1,6 @@ getUser()->userId; @@ -87,10 +87,10 @@ public function createSystemNotification($subject, $body, $date, $isEmail = true $notification->body = $body; $notification->createDt = $date->format('U'); $notification->releaseDt = $date->format('U'); - $notification->isEmail = ($isEmail) ? 1 : 0; $notification->isInterrupt = 0; $notification->userId = $userId; $notification->isSystem = 1; + $notification->type = $type; if ($addGroups) { // Add the system notifications group - if there is one. @@ -142,21 +142,22 @@ public function getByOwnerId($ownerId) * @return Notification[] * @throws NotFoundException */ - public function query($sortOrder = null, $filterBy = []) + public function query($sortOrder = null, array $filterBy = []) { $entries = []; $sanitizedFilter = $this->getSanitizer($filterBy); - if ($sortOrder == null) + if (empty($sortOrder)) { $sortOrder = ['subject']; + } - $params = array(); + $params = []; $select = 'SELECT `notification`.notificationId, `notification`.subject, `notification`.createDt, `notification`.releaseDt, `notification`.body, - `notification`.isEmail, + `notification`.type, `notification`.isInterrupt, `notification`.isSystem, `notification`.filename, @@ -227,24 +228,45 @@ public function query($sortOrder = null, $filterBy = []) $params['displayId'] = $sanitizedFilter->getInt('displayId'); } - self::viewPermissionSql('Xibo\Entity\Notification', $body, $params, '`notification`.notificationId', '`notification`.userId', $filterBy); + // Read + if ($sanitizedFilter->getInt('read') !== null) { + $body .= ' AND `notification`.notificationId IN ( + SELECT notificationId + FROM `lknotificationuser` + WHERE userId = :userId + AND `read` = :read + )'; + $params['read'] = $sanitizedFilter->getInt('read'); + $params['userId'] = $this->getUser()->userId; + } + + // Type + if (!empty($sanitizedFilter->getString('type'))) { + $body .= ' AND `notification`.type = :type '; + $params['type'] = $sanitizedFilter->getString('type'); + } // Sorting? $order = ''; - if (is_array($sortOrder)) + if (is_array($sortOrder)) { $order .= 'ORDER BY ' . implode(',', $sortOrder); + } $limit = ''; // Paging - if ($filterBy !== null && $sanitizedFilter->getInt('start') !== null && $sanitizedFilter->getInt('length') !== null) { - $limit = ' LIMIT ' . $sanitizedFilter->getInt('start', ['default' => 0]) . ', ' . $sanitizedFilter->getInt('length', ['default' => 10]); + if ($filterBy !== null && + $sanitizedFilter->getInt('start') !== null && + $sanitizedFilter->getInt('length') !== null + ) { + $limit = ' LIMIT ' . $sanitizedFilter->getInt('start', ['default' => 0]) . + ', ' . $sanitizedFilter->getInt('length', ['default' => 10]); } $sql = $select . $body . $order . $limit; foreach ($this->getStore()->select($sql, $params) as $row) { $entries[] = $this->createEmpty()->hydrate($row, [ - 'intProperties' => ['isEmail', 'isInterrupt', 'isSystem'] + 'intProperties' => ['isInterrupt', 'isSystem'] ]); } diff --git a/lib/Factory/PermissionFactory.php b/lib/Factory/PermissionFactory.php index ee869c32ec..9c21d32e96 100644 --- a/lib/Factory/PermissionFactory.php +++ b/lib/Factory/PermissionFactory.php @@ -143,15 +143,11 @@ public function getByObjectId($entity, $objectId) $params = array('entity' => $entity, 'objectId' => $objectId); foreach ($this->getStore()->select($sql, $params) as $row) { - $permission = $this->createEmpty(); - $permission->permissionId = $row['permissionId']; - $permission->groupId = $row['groupId']; - $permission->view = $row['view']; - $permission->edit = $row['edit']; - $permission->delete = $row['delete']; + $permission = $this->createEmpty()->hydrate($row, [ + 'intProperties' => ['view', 'edit', 'delete'], + ]); $permission->objectId = $objectId; $permission->entity = $entity; - $permission->entityId = $row['entityId']; $permissions[] = $permission; } @@ -285,23 +281,13 @@ public function getAllByObjectId($user, $entity, $objectId, $sortOrder = null, $ $sql = $select . $body . $order . $limit; - - foreach ($this->getStore()->select($sql, $params) as $row) { - // TODO Sanitizer? - $permission = $this->createEmpty(); - $permission->permissionId = intval($row['permissionId']); - $permission->groupId = intval($row['groupId']); - $permission->view = intval($row['view']); - $permission->edit = intval($row['edit']); - $permission->delete = intval($row['delete']); - $permission->objectId = intval($objectId); - $permission->entity = $entity; - $permission->entityId = intval($entityId); - $permission->isUser = intval($row['isuserspecific']); - $permission->group = ($row['group']); - - $permissions[] = $permission; + $row['entityId'] = $entityId; + $row['entity'] = $entity; + $row['objectId'] = $objectId; + $permissions[] = $this->createEmpty()->hydrate($row, [ + 'intProperties' => ['view', 'edit', 'delete', 'isUser'], + ]); } // Paging @@ -321,10 +307,16 @@ public function getAllByObjectId($user, $entity, $objectId, $sortOrder = null, $ */ public function getByGroupId($entity, $groupId) { - $permissions = array(); + $permissions = []; $sql = ' - SELECT `permission`.`permissionId`, `permission`.`groupId`, `permission`.`objectId`, `permission`.`view`, `permission`.`edit`, `permission`.`delete`, permissionentity.entityId + SELECT `permission`.`permissionId`, + `permission`.`groupId`, + `permission`.`objectId`, + `permission`.`view`, + `permission`.`edit`, + `permission`.`delete`, + `permissionentity`.`entityId` FROM `permission` INNER JOIN `permissionentity` ON `permissionentity`.entityId = permission.entityId @@ -333,22 +325,13 @@ public function getByGroupId($entity, $groupId) WHERE entity = :entity AND `permission`.`groupId` = :groupId '; - $params = array('entity' => 'Xibo\Entity\\' . $entity, 'groupId' => $groupId); - - + $params = ['entity' => 'Xibo\Entity\\' . $entity, 'groupId' => $groupId]; foreach ($this->getStore()->select($sql, $params) as $row) { - $permission = $this->createEmpty(); - $permission->permissionId = $row['permissionId']; - $permission->groupId = $row['groupId']; - $permission->view = $row['view']; - $permission->edit = $row['edit']; - $permission->delete = $row['delete']; - $permission->objectId = $row['objectId']; - $permission->entity = $entity; - $permission->entityId = $row['entityId']; - - $permissions[] = $permission; + $row['entity'] = $entity; + $permissions[] = $this->createEmpty()->hydrate($row, [ + 'intProperties' => ['view', 'edit', 'delete'], + ]); } return $permissions; @@ -360,7 +343,7 @@ public function getByGroupId($entity, $groupId) * @param int $userId * @return Permission[] */ - public function getByUserId($entity, $userId) + public function getByUserId($entity, $userId): array { $permissions = []; @@ -371,7 +354,7 @@ public function getByUserId($entity, $userId) `permission`.`view`, `permission`.`edit`, `permission`.`delete`, - `permissionentity`.entityId + `permissionentity`.`entityId` FROM `permission` INNER JOIN `permissionentity` ON `permissionentity`.entityId = permission.entityId @@ -402,17 +385,10 @@ public function getByUserId($entity, $userId) $params = ['entity' => $entity, 'userId' => $userId]; foreach ($this->getStore()->select($sql, $params) as $row) { - $permission = $this->createEmpty(); - $permission->permissionId = $row['permissionId']; - $permission->groupId = $row['groupId']; - $permission->view = $row['view']; - $permission->edit = $row['edit']; - $permission->delete = $row['delete']; - $permission->objectId = $row['objectId']; - $permission->entity = $entity; - $permission->entityId = $row['entityId']; - - $permissions[] = $permission; + $row['entity'] = $entity; + $permissions[] = $this->createEmpty()->hydrate($row, [ + 'intProperties' => ['view', 'edit', 'delete'], + ]); } return $permissions; @@ -422,7 +398,7 @@ public function getByUserId($entity, $userId) * Get Full Permissions * @return Permission */ - public function getFullPermissions() + public function getFullPermissions(): Permission { $permission = $this->createEmpty(); $permission->view = 1; diff --git a/lib/Factory/ScheduleCriteriaFactory.php b/lib/Factory/ScheduleCriteriaFactory.php new file mode 100644 index 0000000000..253c50e98d --- /dev/null +++ b/lib/Factory/ScheduleCriteriaFactory.php @@ -0,0 +1,54 @@ +. + */ + +namespace Xibo\Factory; + +use Xibo\Entity\ScheduleCriteria; + +/** + * Factory to return schedule criteria entities + */ +class ScheduleCriteriaFactory extends BaseFactory +{ + public function createEmpty(): ScheduleCriteria + { + return new ScheduleCriteria($this->getStore(), $this->getLog(), $this->getDispatcher()); + } + + /** + * Get all criteria for an event + * @param int $eventId + * @return ScheduleCriteria[] + */ + public function getByEventId(int $eventId): array + { + $entries = []; + + foreach ($this->getStore()->select('SELECT * FROM `schedule_criteria` WHERE `eventId` = :eventId', [ + 'eventId' => $eventId, + ]) as $row) { + // Create and hydrate + $entries[] = $this->createEmpty()->hydrate($row); + } + return $entries; + } +} diff --git a/lib/Factory/ScheduleFactory.php b/lib/Factory/ScheduleFactory.php index 8e4990fa5f..a685fad076 100644 --- a/lib/Factory/ScheduleFactory.php +++ b/lib/Factory/ScheduleFactory.php @@ -78,7 +78,8 @@ public function __construct( $userFactory, $scheduleReminderFactory, $scheduleExclusionFactory, - $user + $user, + private readonly ScheduleCriteriaFactory $scheduleCriteriaFactory ) { $this->setAclDependencies($user, $userFactory); $this->config = $config; @@ -106,7 +107,8 @@ public function createEmpty() $this->dayPartFactory, $this->userFactory, $this->scheduleReminderFactory, - $this->scheduleExclusionFactory + $this->scheduleExclusionFactory, + $this->scheduleCriteriaFactory ); } @@ -206,9 +208,9 @@ public function getForXmds($displayId, $fromDt, $toDt, $options = []) // Firstly get all the scheduled layouts $SQL = ' SELECT `schedule`.eventTypeId, - layout.layoutId, - `layout`.status, - `layout`.duration, + `layoutLinks`.layoutId, + `layoutLinks`.status, + `layoutLinks`.duration, `command`.code, schedule.fromDt, schedule.toDt, @@ -244,7 +246,9 @@ public function getForXmds($displayId, $fromDt, $toDt, $options = []) `daypart`.isCustom, `syncLayout`.layoutId AS syncLayoutId, `syncLayout`.status AS syncLayoutStatus, - `syncLayout`.duration AS syncLayoutDuration + `syncLayout`.duration AS syncLayoutDuration, + `schedule`.dataSetId, + `schedule`.dataSetParams FROM `schedule` INNER JOIN `daypart` ON `daypart`.dayPartId = `schedule`.dayPartId @@ -267,12 +271,19 @@ public function getForXmds($displayId, $fromDt, $toDt, $options = []) $SQL .= ' LEFT OUTER JOIN `campaign` ON `schedule`.CampaignID = campaign.CampaignID - LEFT OUTER JOIN `lkcampaignlayout` - ON lkcampaignlayout.CampaignID = campaign.CampaignID - LEFT OUTER JOIN `layout` - ON lkcampaignlayout.LayoutID = layout.LayoutID - AND layout.retired = 0 - AND layout.parentId IS NULL + LEFT OUTER JOIN ( + SELECT `layout`.layoutId, + `layout`.status, + `layout`.duration, + `lkcampaignlayout`.campaignId, + `lkcampaignlayout`.displayOrder + FROM `layout` + INNER JOIN `lkcampaignlayout` + ON `lkcampaignlayout`.LayoutID = `layout`.layoutId + WHERE `layout`.retired = 0 + AND `layout`.parentId IS NULL + ) layoutLinks + ON `campaign`.CampaignID = `layoutLinks`.campaignId LEFT OUTER JOIN `command` ON `command`.commandId = `schedule`.commandId LEFT OUTER JOIN `schedule_sync` @@ -312,7 +323,7 @@ public function getForXmds($displayId, $fromDt, $toDt, $options = []) ORDER BY `schedule`.DisplayOrder, CASE WHEN `campaign`.listPlayOrder = \'block\' THEN `schedule`.FromDT ELSE 0 END, CASE WHEN `campaign`.listPlayOrder = \'block\' THEN `campaign`.campaignId ELSE 0 END, - IFNULL(`lkcampaignlayout`.DisplayOrder, 0), + IFNULL(`layoutLinks`.displayOrder, 0), `schedule`.FromDT, `schedule`.eventId '; @@ -398,7 +409,9 @@ public function query($sortOrder = null, $filterBy = []) `user`.userName as modifiedByName, `schedule`.createdOn, `schedule`.updatedOn, - `schedule`.name + `schedule`.name, + `schedule`.dataSetId, + `schedule`.dataSetParams '; $body = ' FROM `schedule` @@ -768,7 +781,8 @@ public function query($sortOrder = null, $filterBy = []) 'recurrenceMonthlyRepeatsOn', 'isGeoAware', 'maxPlaysPerHour', - 'modifiedBy' + 'modifiedBy', + 'dataSetId', ] ]); } diff --git a/lib/Factory/SyncGroupFactory.php b/lib/Factory/SyncGroupFactory.php old mode 100644 new mode 100755 index 5240a1ebe9..322a7eb695 --- a/lib/Factory/SyncGroupFactory.php +++ b/lib/Factory/SyncGroupFactory.php @@ -1,6 +1,6 @@ getString('email'); } + // First Name Provided + if ($parsedFilter->getString('firstName') != null) { + $body .= " AND user.firstName LIKE :firstName "; + $params['firstName'] = '%' . $parsedFilter->getString('firstName') . '%'; + } + + // Last Name Provided + if ($parsedFilter->getString('lastName') != null) { + $body .= " AND user.lastName LIKE :lastName "; + $params['lastName'] = '%' . $parsedFilter->getString('lastName') . '%'; + } + // Retired users? if ($parsedFilter->getInt('retired') !== null) { $body .= " AND user.retired = :retired "; @@ -402,7 +420,18 @@ public function query($sortOrder = [], $filterBy = []) foreach ($this->getStore()->select($sql, $params) as $row) { $entries[] = $this->create()->hydrate($row, [ - 'intProperties' => ['libraryQuota', 'isPasswordChangeRequired', 'retired'], + 'intProperties' => [ + 'libraryQuota', + 'isPasswordChangeRequired', + 'retired', + 'isSystemNotification', + 'isDisplayNotification', + 'isDataSetNotification', + 'isLayoutNotification', + 'isReportNotification', + 'isScheduleNotification', + 'isCustomNotification', + ], 'stringProperties' => ['homePageId'] ]); } diff --git a/lib/Factory/UserGroupFactory.php b/lib/Factory/UserGroupFactory.php index 173b2287dd..8151560095 100644 --- a/lib/Factory/UserGroupFactory.php +++ b/lib/Factory/UserGroupFactory.php @@ -1,6 +1,6 @@ query(null, ['disableUserCheck' => 1, 'notificationId' => $notificationId, 'isUserSpecific' => -1]); + return $this->query( + null, + ['disableUserCheck' => 1, 'notificationId' => $notificationId, 'isUserSpecific' => -1] + ); } /** @@ -177,6 +180,18 @@ public function getByDisplayGroupId($displayGroupId) return $this->query(null, ['disableUserCheck' => 1, 'displayGroupId' => $displayGroupId]); } + /** + * @param int $userId + * @param string $type + * @return bool + */ + public function checkNotificationEmailPreferences(int $userId, string $type): bool + { + $groups = $this->query(null, ['disableUserCheck' => 1, 'userId' => $userId, 'notificationType' => $type]); + + return count($groups) > 0; + } + /** * @param array $sortOrder * @param array $filterBy @@ -201,6 +216,12 @@ public function query($sortOrder = null, $filterBy = []) `group`.libraryQuota, `group`.isSystemNotification, `group`.isDisplayNotification, + `group`.isDataSetNotification, + `group`.isLayoutNotification, + `group`.isLibraryNotification, + `group`.isReportNotification, + `group`.isScheduleNotification, + `group`.isCustomNotification, `group`.isShownForAddUser, `group`.defaultHomepageId, `group`.features @@ -295,8 +316,14 @@ public function query($sortOrder = null, $filterBy = []) $params['isDisplayNotification'] = $parsedFilter->getInt('isDisplayNotification'); } + if (!empty($parsedFilter->getString('notificationType'))) { + $body .= ' AND ' . $parsedFilter->getString('notificationType') . ' = 1 '; + } + if ($parsedFilter->getInt('notificationId') !== null) { - $body .= ' AND `group`.groupId IN (SELECT groupId FROM `lknotificationgroup` WHERE notificationId = :notificationId) '; + $body .= ' AND `group`.groupId IN ( + SELECT groupId FROM `lknotificationgroup` WHERE notificationId = :notificationId + ) '; $params['notificationId'] = $parsedFilter->getInt('notificationId'); } @@ -376,7 +403,17 @@ public function query($sortOrder = null, $filterBy = []) foreach ($this->getStore()->select($sql, $params) as $row) { $group = $this->createEmpty()->hydrate($row, [ 'intProperties' => [ - 'isUserSpecific', 'isEveryone', 'libraryQuota', 'isSystemNotification', 'isDisplayNotification', 'isShownForAddUser' + 'isUserSpecific', + 'isEveryone', + 'libraryQuota', + 'isSystemNotification', + 'isDisplayNotification', + 'isDataSetNotification', + 'isLayoutNotification', + 'isReportNotification', + 'isScheduleNotification', + 'isCustomNotification', + 'isShownForAddUser' ], 'stringProperties' => [ 'defaultHomepageId' @@ -478,6 +515,11 @@ public function getFeatures() 'group' => 'scheduling', 'title' => __('Allow creation of Synchronised Schedules') ], + 'schedule.dataConnector' => [ + 'feature' => 'schedule.dataConnector', + 'group' => 'scheduling', + 'title' => __('Allow creation of Data Connector Schedules') + ], 'daypart.view' => [ 'feature' => 'daypart.view', 'group' => 'scheduling', @@ -528,6 +570,11 @@ public function getFeatures() 'group' => 'library', 'title' => __('Allow edits including deletion to all data contained within a DataSet independently to Layouts') ], + 'dataset.dataConnector' => [ + 'feature' => 'dataset.realtime', + 'group' => 'library', + 'title' => __('Create and update real time DataSets') + ], 'layout.view' => [ 'feature' => 'layout.view', 'group' => 'layout-design', @@ -713,6 +760,11 @@ public function getFeatures() 'group' => 'displays', 'title' => __('Allow edits including deletion for all added Displays') ], + 'displays.limitedView' => [ + 'feature' => 'displays.limitedView', + 'group' => 'displays', + 'title' => __('Allow access to non-destructive edit-only features') + ], 'displaygroup.view' => [ 'feature' => 'displaygroup.view', 'group' => 'displays', @@ -728,6 +780,11 @@ public function getFeatures() 'group' => 'displays', 'title' => __('Allow edits including deletion for all created Display Groups') ], + 'displaygroup.limitedView' => [ + 'feature' => 'displaygroup.limitedView', + 'group' => 'displays', + 'title' => __('Allow access to non-destructive edit-only features in a Display Group') + ], 'displayprofile.view' => [ 'feature' => 'displayprofile.view', 'group' => 'displays', @@ -793,6 +850,16 @@ public function getFeatures() 'group' => 'system', 'title' => __('Page which allows for Module Management for the platform') ], + 'developer.edit' => [ + 'feature' => 'developer.edit', + 'group' => 'system', + 'title' => __('Add/Edit custom modules and templates'), + ], + 'developer.delete' => [ + 'feature' => 'developer.delete', + 'group' => 'system', + 'title' => __('Delete custom modules and templates'), + ], 'transition.view' => [ 'feature' => 'transition.view', 'group' => 'system', diff --git a/lib/Factory/UserNotificationFactory.php b/lib/Factory/UserNotificationFactory.php index a009ba5d49..4a392a6ac3 100644 --- a/lib/Factory/UserNotificationFactory.php +++ b/lib/Factory/UserNotificationFactory.php @@ -101,7 +101,7 @@ public function getMine($length = 5) */ public function getEmailQueue() { - return $this->query(null, ['isEmail' => 1, 'isEmailed' => 0, 'checkRetired' => 1]); + return $this->query(null, ['isEmailed' => 0, 'checkRetired' => 1]); } /** @@ -152,6 +152,7 @@ public function query($sortOrder = null, $filterBy = []) `notification`.filename, `notification`.originalFileName, `notification`.nonusers, + `notification`.type, `user`.email, `user`.retired '; @@ -180,16 +181,12 @@ public function query($sortOrder = null, $filterBy = []) $params['read'] = $parsedBody->getInt('read'); } - if ($parsedBody->getInt('isEmail') !== null) { - $body .= ' AND `notification`.isEmail = :isEmail '; - $params['isEmail'] = $parsedBody->getInt('isEmail'); - } - if ($parsedBody->getInt('isEmailed') !== null) { - if ($parsedBody->getInt('isEmailed') == 0) + if ($parsedBody->getInt('isEmailed') == 0) { $body .= ' AND `lknotificationuser`.emailDt = 0 '; - else + } else { $body .= ' AND `lknotificationuser`.emailDt <> 0 '; + } } if ($parsedBody->getInt('checkRetired') === 1) { @@ -198,8 +195,9 @@ public function query($sortOrder = null, $filterBy = []) // Sorting? $order = ''; - if (is_array($sortOrder)) + if (is_array($sortOrder)) { $order .= 'ORDER BY ' . implode(',', $sortOrder); + } $limit = ''; // Paging diff --git a/lib/Factory/WidgetDataFactory.php b/lib/Factory/WidgetDataFactory.php new file mode 100644 index 0000000000..bb1c5bdfea --- /dev/null +++ b/lib/Factory/WidgetDataFactory.php @@ -0,0 +1,153 @@ +. + */ + +namespace Xibo\Factory; + +use Carbon\Carbon; +use Xibo\Entity\WidgetData; +use Xibo\Helper\DateFormatHelper; +use Xibo\Support\Exception\InvalidArgumentException; +use Xibo\Support\Exception\NotFoundException; + +/** + * Factory for returning Widget Data + */ +class WidgetDataFactory extends BaseFactory +{ + public function create( + int $widgetId, + array $data, + int $displayOrder + ): WidgetData { + $widgetData = $this->createEmpty(); + $widgetData->widgetId = $widgetId; + $widgetData->data = $data; + $widgetData->displayOrder = $displayOrder; + return $widgetData; + } + + private function createEmpty(): WidgetData + { + return new WidgetData($this->getStore(), $this->getLog(), $this->getDispatcher()); + } + + /** + * Get Widget Data by its ID + * @throws \Xibo\Support\Exception\NotFoundException + * @throws \Xibo\Support\Exception\InvalidArgumentException + */ + public function getById(int $id): WidgetData + { + if (empty($id)) { + throw new InvalidArgumentException(__('Missing ID'), 'id'); + } + + $sql = 'SELECT * FROM `widgetdata` WHERE `id` = :id'; + foreach ($this->getStore()->select($sql, ['id' => $id]) as $row) { + return $this->hydrate($row); + }; + + throw new NotFoundException(); + } + + /** + * Get Widget Data for a Widget + * @param int $widgetId + * @return WidgetData[] + * @throws \Xibo\Support\Exception\InvalidArgumentException + */ + public function getByWidgetId(int $widgetId): array + { + if (empty($widgetId)) { + throw new InvalidArgumentException(__('Missing Widget ID'), 'widgetId'); + } + + $entries = []; + $sql = 'SELECT * FROM `widgetdata` WHERE `widgetId` = :widgetId'; + foreach ($this->getStore()->select($sql, ['widgetId' => $widgetId]) as $row) { + $entries[] = $this->hydrate($row); + }; + + return $entries; + } + + /** + * Get modified date for Widget Data for a Widget + * @param int $widgetId + * @return ?\Carbon\Carbon + * @throws \Xibo\Support\Exception\InvalidArgumentException + */ + public function getModifiedDtForWidget(int $widgetId): ?Carbon + { + if (empty($widgetId)) { + throw new InvalidArgumentException(__('Missing Widget ID'), 'widgetId'); + } + + $sql = ' + SELECT MAX(`createdDt`) AS createdDt, MAX(`modifiedDt`) AS modifiedDt + FROM `widgetdata` + WHERE `widgetId` = :widgetId + '; + $result = $this->getStore()->select($sql, ['widgetId' => $widgetId]); + $modifiedDt = $result[0]['modifiedDt'] ?? ($result[0]['createdDt'] ?? null); + if (empty($modifiedDt)) { + return null; + } else { + return Carbon::createFromFormat(DateFormatHelper::getSystemFormat(), $modifiedDt); + } + } + + /** + * Copy data from one widget to another + * primarily used during checkout + * @param int $fromWidgetId + * @param int $toWidgetId + * @return void + */ + public function copyByWidgetId(int $fromWidgetId, int $toWidgetId): void + { + $this->getStore()->update(' + INSERT INTO `widgetdata` (`widgetId`, `data`, `displayOrder`, `createdDt`, `modifiedDt`) + SELECT :toWidgetId, `data`, `displayOrder`, `createdDt`, `modifiedDt` + FROM `widgetdata` + WHERE `widgetId` = :widgetId + ', [ + 'widgetId' => $fromWidgetId, + 'toWidgetId' => $toWidgetId + ]); + } + + /** + * Helper function for + * @param array $row + * @return \Xibo\Entity\WidgetData + */ + private function hydrate(array $row): WidgetData + { + if (!empty($row['data'])) { + $row['data'] = json_decode($row['data'], true); + } else { + $row['data'] = []; + } + return $this->createEmpty()->hydrate($row); + } +} diff --git a/lib/Helper/AccessibleMonologWriter.php b/lib/Helper/AccessibleMonologWriter.php deleted file mode 100644 index aa9786e8f2..0000000000 --- a/lib/Helper/AccessibleMonologWriter.php +++ /dev/null @@ -1,39 +0,0 @@ -resource; - } - - public function addHandler($handler) { - if (!$this->resource) - $this->settings['handlers'][] = $handler; - else - $this->getWriter()->pushHandler($handler); - } - - public function addProcessor($processor) { - if (!$this->resource) - $this->settings['processors'][] = $processor; - else - $this->getWriter()->pushProcessor($processor); - } -} \ No newline at end of file diff --git a/lib/Helper/DataSetUploadHandler.php b/lib/Helper/DataSetUploadHandler.php index 0b5a2c8dfc..7f1eec68c8 100644 --- a/lib/Helper/DataSetUploadHandler.php +++ b/lib/Helper/DataSetUploadHandler.php @@ -62,6 +62,20 @@ protected function handleFormData($file, $index) throw new AccessDeniedException(); } + // Get all columns + $columns = $dataSet->getColumn(); + + // Filter columns where dataSetColumnType is "Value" + $filteredColumns = array_filter($columns, function ($column) { + return $column->dataSetColumnTypeId == '1'; + }); + + // Check if there are any value columns defined in the dataset + if (count($filteredColumns) === 0) { + $controller->getLog()->error('Import failed: No value columns defined in the dataset.'); + throw new InvalidArgumentException(__('Import failed: No value columns defined in the dataset.')); + } + // We are allowed to edit - pull all required parameters from the request object $overwrite = $sanitizer->getCheckbox('overwrite'); $ignoreFirstRow = $sanitizer->getCheckbox('ignorefirstrow'); @@ -90,16 +104,22 @@ protected function handleFormData($file, $index) if ($overwrite == 1) $dataSet->deleteData(); - // Load the file - ini_set('auto_detect_line_endings', true); - $firstRow = true; $i = 0; - $handle = fopen($controller->getConfig()->getSetting('LIBRARY_LOCATION') . 'temp/' . $fileName, 'r'); while (($data = fgetcsv($handle)) !== FALSE ) { $i++; + // remove any elements that doesn't contain any value from the array + $filteredData = array_filter($data, function($value) { + return !empty($value); + }); + + // Skip empty lines without any delimiters or data + if (empty($filteredData)) { + continue; + } + $row = []; // The CSV file might have headings, so ignore the first row. @@ -137,9 +157,6 @@ protected function handleFormData($file, $index) // Close the file fclose($handle); - // Change the auto detect setting back - ini_set('auto_detect_line_endings', false); - // TODO: update list content definitions // Save the dataSet diff --git a/lib/Helper/DatabaseLogHandler.php b/lib/Helper/DatabaseLogHandler.php index b8cf08fc58..3130b7d5dc 100644 --- a/lib/Helper/DatabaseLogHandler.php +++ b/lib/Helper/DatabaseLogHandler.php @@ -83,9 +83,31 @@ protected function write(array $record) self::$pdo = PdoStorageService::newConnection('log'); $SQL = ' - INSERT INTO `log` - (`runNo`, `logdate`, `channel`, `type`, `page`, `function`, `message`, `userid`, `displayid`) - VALUES (:runNo, :logdate, :channel, :type, :page, :function, :message, :userid, :displayid) + INSERT INTO `log` ( + `runNo`, + `logdate`, + `channel`, + `type`, + `page`, + `function`, + `message`, + `userid`, + `displayid`, + `sessionHistoryId`, + `requestId` + ) VALUES ( + :runNo, + :logdate, + :channel, + :type, + :page, + :function, + :message, + :userid, + :displayid, + :sessionHistoryId, + :requestId + ) '; self::$statement = self::$pdo->prepare($SQL); @@ -100,7 +122,9 @@ protected function write(array $record) 'function' => $record['extra']['method'] ?? '', 'message' => $record['message'], 'userid' => $record['extra']['userId'] ?? 0, - 'displayid' => $record['extra']['displayId'] ?? 0 + 'displayid' => $record['extra']['displayId'] ?? 0, + 'sessionHistoryId' => $record['extra']['sessionHistoryId'] ?? 0, + 'requestId' => $record['extra']['requestId'] ?? 0, ]; try { diff --git a/lib/Helper/Environment.php b/lib/Helper/Environment.php index c55281818f..d342e40b05 100644 --- a/lib/Helper/Environment.php +++ b/lib/Helper/Environment.php @@ -30,7 +30,7 @@ */ class Environment { - public static $WEBSITE_VERSION_NAME = '4.0.13'; + public static $WEBSITE_VERSION_NAME = '4.1.0'; public static $XMDS_VERSION = '7'; public static $XLF_VERSION = 4; public static $VERSION_REQUIRED = '8.1.0'; diff --git a/lib/Helper/LayoutUploadHandler.php b/lib/Helper/LayoutUploadHandler.php index 8222cf634c..1b160c0241 100644 --- a/lib/Helper/LayoutUploadHandler.php +++ b/lib/Helper/LayoutUploadHandler.php @@ -23,7 +23,6 @@ namespace Xibo\Helper; use Exception; -use Xibo\Entity\Layout; use Xibo\Support\Exception\LibraryFullException; /** @@ -40,6 +39,7 @@ protected function handleFormData($file, $index) { /* @var \Xibo\Controller\Layout $controller */ $controller = $this->options['controller']; + /* @var SanitizerService $sanitizerService */ $sanitizerService = $this->options['sanitizerService']; @@ -52,7 +52,10 @@ protected function handleFormData($file, $index) try { // Check Library if ($this->options['libraryQuotaFull']) { - throw new LibraryFullException(sprintf(__('Your library is full. Library Limit: %s K'), $this->options['libraryLimit'])); + throw new LibraryFullException(sprintf( + __('Your library is full. Library Limit: %s K'), + $this->options['libraryLimit'] + )); } // Check for a user quota @@ -69,8 +72,8 @@ protected function handleFormData($file, $index) $importTags = $params->getCheckbox('importTags', ['default' => 0]); $useExistingDataSets = $params->getCheckbox('useExistingDataSets', ['default' => 0]); $importDataSetData = $params->getCheckbox('importDataSetData', ['default' => 0]); + $importFallback = $params->getCheckbox('importFallback', ['default' => 0]); - /* @var Layout $layout */ $layout = $controller->getLayoutFactory()->createFromZip( $controller->getConfig()->getSetting('LIBRARY_LOCATION') . 'temp/' . $fileName, $name, @@ -83,7 +86,7 @@ protected function handleFormData($file, $index) $this->options['dataSetFactory'], $tags, $this->options['mediaService'], - $this->options['folderId'] + $this->options['folderId'], ); // set folderId, permissionFolderId is handled on Layout specific Campaign record. @@ -97,6 +100,28 @@ protected function handleFormData($file, $index) $layout->managePlaylistClosureTable(); $layout->manageActions(); + // Handle widget data + $fallback = $layout->getUnmatchedProperty('fallback'); + if ($importFallback == 1 && $fallback !== null) { + /** @var \Xibo\Factory\WidgetDataFactory $widgetDataFactory */ + $widgetDataFactory = $this->options['widgetDataFactory']; + foreach ($layout->getAllWidgets() as $widget) { + // Did this widget have fallback data included in its export? + if (array_key_exists($widget->tempWidgetId, $fallback)) { + foreach ($fallback[$widget->tempWidgetId] as $item) { + // We create the widget data with the new widgetId + $widgetDataFactory + ->create( + $widget->widgetId, + $item['data'] ?? [], + intval($item['displayOrder'] ?? 1), + ) + ->save(); + } + } + } + } + @unlink($controller->getConfig()->getSetting('LIBRARY_LOCATION') . 'temp/' . $fileName); // Set the name for the return diff --git a/lib/Helper/LogProcessor.php b/lib/Helper/RouteLogProcessor.php similarity index 60% rename from lib/Helper/LogProcessor.php rename to lib/Helper/RouteLogProcessor.php index 98ead973b1..cf2aeeea2a 100644 --- a/lib/Helper/LogProcessor.php +++ b/lib/Helper/RouteLogProcessor.php @@ -1,9 +1,10 @@ route = $route; - $this->method = $method; - $this->userId = $userId; + public function __construct( + private readonly string $route, + private readonly string $method + ) { } /** * @param array $record * @return array */ - public function __invoke(array $record) + public function __invoke(array $record): array { $record['extra']['method'] = $this->method; $record['extra']['route'] = $this->route; - - if ($this->userId != null) { - $record['extra']['userId'] = $this->userId; - } - return $record; } -} \ No newline at end of file +} diff --git a/lib/Helper/Session.php b/lib/Helper/Session.php index c38485df13..63109e0bd5 100644 --- a/lib/Helper/Session.php +++ b/lib/Helper/Session.php @@ -410,6 +410,8 @@ private function insertSession($key, $data, $lastAccessed, $expiry) { //$this->log->debug('Session insert'); + $this->insertSessionHistory(); + $sql = ' INSERT INTO `session` (session_id, session_data, session_expiration, lastaccessed, userid, isexpired, useragent, remoteaddr) VALUES (:session_id, :session_data, :session_expiration, :lastAccessed, :userId, :expired, :useragent, :remoteaddr) @@ -429,6 +431,26 @@ private function insertSession($key, $data, $lastAccessed, $expiry) $this->getDb()->update($sql, $params); } + private function insertSessionHistory() + { + $sql = ' + INSERT INTO `session_history` (`ipAddress`, `userAgent`, `startTime`, `userId`, `lastUsedTime`) + VALUES (:ipAddress, :userAgent, :startTime, :userId, :lastUsedTime) + '; + + $params = [ + 'ipAddress' => $this->getIp(), + 'userAgent' => substr(htmlspecialchars($_SERVER['HTTP_USER_AGENT']), 0, 253), + 'startTime' => Carbon::now()->format(DateFormatHelper::getSystemFormat()), + 'userId' => $this->userId, + 'lastUsedTime' => Carbon::now()->format(DateFormatHelper::getSystemFormat()) + ]; + + $id = $this->getDb()->insert($sql, $params); + + $this->set('sessionHistoryId', $id); + } + /** * Update Session * @param $key @@ -440,6 +462,8 @@ private function updateSession($key, $data, $lastAccessed, $expiry) { //$this->log->debug('Session update'); + $this->updateSessionHistory(); + $sql = ' UPDATE `session` SET session_data = :session_data, @@ -462,6 +486,26 @@ private function updateSession($key, $data, $lastAccessed, $expiry) $this->getDb()->update($sql, $params); } + /** + * Updates the session history + */ + private function updateSessionHistory() + { + $sql = ' + UPDATE `session_history` SET + lastUsedTime = :lastUsedTime, userID = :userId + WHERE sessionId = :sessionId + '; + + $params = [ + 'lastUsedTime' => Carbon::now()->format(DateFormatHelper::getSystemFormat()), + 'userId' => $this->userId, + 'sessionId' => $_SESSION['sessionHistoryId'], + ]; + + $this->getDb()->update($sql, $params); + } + /** * Get the Client IP Address * @return string diff --git a/lib/Helper/UserLogProcessor.php b/lib/Helper/UserLogProcessor.php new file mode 100644 index 0000000000..dee8b66b52 --- /dev/null +++ b/lib/Helper/UserLogProcessor.php @@ -0,0 +1,63 @@ +. + */ + + +namespace Xibo\Helper; + +/** + * Class UserLogProcessor + * @package Xibo\Helper + */ +class UserLogProcessor +{ + /** + * UserLogProcessor + * @param int $userId + * @param int|null $sessionHistoryId + * @param int|null $requestId + */ + public function __construct( + private readonly int $userId, + private readonly ?int $sessionHistoryId, + private readonly ?int $requestId + ) { + } + + /** + * @param array $record + * @return array + */ + public function __invoke(array $record): array + { + $record['extra']['userId'] = $this->userId; + + if ($this->sessionHistoryId != null) { + $record['extra']['sessionHistoryId'] = $this->sessionHistoryId; + } + + if ($this->requestId != null) { + $record['extra']['requestId'] = $this->requestId; + } + + return $record; + } +} diff --git a/lib/Listener/ModuleTemplateListener.php b/lib/Listener/ModuleTemplateListener.php new file mode 100644 index 0000000000..46051a5bdb --- /dev/null +++ b/lib/Listener/ModuleTemplateListener.php @@ -0,0 +1,58 @@ +. + */ + +namespace Xibo\Listener; + +use Symfony\Component\EventDispatcher\EventDispatcherInterface; +use Xibo\Event\ParsePermissionEntityEvent; +use Xibo\Factory\ModuleTemplateFactory; + +class ModuleTemplateListener +{ + use ListenerLoggerTrait; + + /** @var ModuleTemplateFactory */ + private ModuleTemplateFactory $moduleTemplateFactory; + + public function __construct(ModuleTemplateFactory $moduleTemplateFactory) + { + $this->moduleTemplateFactory = $moduleTemplateFactory; + } + + public function registerWithDispatcher(EventDispatcherInterface $dispatcher): ModuleTemplateListener + { + $dispatcher->addListener(ParsePermissionEntityEvent::$NAME . 'moduleTemplate', [$this, 'onParsePermissions']); + + return $this; + } + + /** + * @param ParsePermissionEntityEvent $event + * @return void + * @throws \Xibo\Support\Exception\NotFoundException + */ + public function onParsePermissions(ParsePermissionEntityEvent $event) + { + $this->getLogger()->debug('onParsePermissions'); + $event->setObject($this->moduleTemplateFactory->getUserTemplateById($event->getObjectId())); + } +} diff --git a/lib/Middleware/ApiAuthorization.php b/lib/Middleware/ApiAuthorization.php index 5e7ed66b01..0e9fd98607 100644 --- a/lib/Middleware/ApiAuthorization.php +++ b/lib/Middleware/ApiAuthorization.php @@ -1,6 +1,6 @@ get('configService')->getApiKeyDetails(); - $accessTokenRepository = new AccessTokenRepository($logger, $container->get('pool'), $container->get('applicationFactory')); + $accessTokenRepository = new AccessTokenRepository( + $logger, + $container->get('pool'), + $container->get('applicationFactory') + ); return new ResourceServer( $accessTokenRepository, $apiKeyPaths['publicKeyPath'] @@ -141,7 +146,10 @@ public function process(Request $request, RequestHandler $handler): Response // Check the route and request method try { $i++; - $checkRoute = $applicationScopeFactory->getById($scope)->checkRoute($request->getMethod(), $resource); + $checkRoute = $applicationScopeFactory->getById($scope)->checkRoute( + $request->getMethod(), + $resource + ); // if we have access to the requested route, break the loop if ($checkRoute) { @@ -163,8 +171,47 @@ public function process(Request $request, RequestHandler $handler): Response $validatedRequest = $validatedRequest->withAttribute('public', true); } + $requestId = $this->app->getContainer()->get('store')->insert(' + INSERT INTO `application_requests_history` ( + userId, + applicationId, + url, + method, + startTime, + endTime, + duration + ) + VALUES ( + :userId, + :applicationId, + :url, + :method, + :startTime, + :endTime, + :duration + ) + ', [ + 'userId' => $user->userId, + 'applicationId' => $validatedRequest->getAttribute('oauth_client_id'), + 'url' => htmlspecialchars($request->getUri()->getPath()), + 'method' => $request->getMethod(), + 'startTime' => Carbon::now(), + 'endTime' => Carbon::now(), + 'duration' => 0 + ], 'api_requests_history'); + + $this->app->getContainer()->get('store')->commitIfNecessary('api_requests_history'); + $logger->setUserId($user->userId); $this->app->getContainer()->set('user', $user); + $logger->setRequestId($requestId); + + // Add this request information to the logger. + $logger->getLoggerInterface()->pushProcessor(new UserLogProcessor( + $user->userId, + null, + $requestId, + )); return $handler->handle($validatedRequest->withAttribute('name', 'API')); } diff --git a/lib/Middleware/AuthenticationBase.php b/lib/Middleware/AuthenticationBase.php index ecf0d62b09..57f9d1a08a 100644 --- a/lib/Middleware/AuthenticationBase.php +++ b/lib/Middleware/AuthenticationBase.php @@ -1,8 +1,8 @@ hasIdentity() && !$this->getSession()->isExpired()) { // Replace our user with a fully loaded one - $user = $this->getUser($user->userId, $request->getAttribute('ip_address')); + $user = $this->getUser( + $user->userId, + $request->getAttribute('ip_address'), + $this->getSession()->get('sessionHistoryId') + ); // We are authenticated, override with the populated user object $this->setUserForRequest($user); diff --git a/lib/Middleware/AuthenticationTrait.php b/lib/Middleware/AuthenticationTrait.php index c4bd658c03..72d2d1972c 100644 --- a/lib/Middleware/AuthenticationTrait.php +++ b/lib/Middleware/AuthenticationTrait.php @@ -1,8 +1,8 @@ app->getContainer(); $user = $container->get('userFactory')->getById($userId); @@ -131,6 +134,7 @@ protected function getUser($userId, $ip) // Configure the log service with the logged in user id $container->get('logService')->setUserId($user->userId); $container->get('logService')->setIpAddress($ip); + $container->get('logService')->setSessionHistoryId($sessionHistoryId); return $user; } @@ -140,7 +144,15 @@ protected function getUser($userId, $ip) */ protected function setUserForRequest($user) { - $this->app->getContainer()->set('user', $user); + $container = $this->app->getContainer(); + $container->set('user', $user); + + // Add this users information to the logger + $this->getLog()->getLoggerInterface()->pushProcessor(new UserLogProcessor( + $user->userId, + $this->getLog()->getSessionHistoryId(), + null, + )); } /** diff --git a/lib/Middleware/CASAuthentication.php b/lib/Middleware/CASAuthentication.php index 65d56e1686..a3b38774d5 100644 --- a/lib/Middleware/CASAuthentication.php +++ b/lib/Middleware/CASAuthentication.php @@ -1,6 +1,6 @@ app; $app->getContainer()->set('logoutRoute', 'cas.logout'); - $app->map(['GET', 'POST'], '/cas/login', function (\Slim\Http\ServerRequest $request, \Slim\Http\Response $response) { - + $app->map(['GET', 'POST'], '/cas/login', function (ServerRequest $request, Response $response) { // Initiate CAS SSO $this->initCasClient(); \phpCAS::setNoCasServerValidation(); @@ -72,7 +73,11 @@ public function addRoutes() if (isset($user) && $user->userId > 0) { // Load User - $this->getUser($user->userId, $request->getAttribute('ip_address')); + $this->getUser( + $user->userId, + $request->getAttribute('ip_address'), + $this->getSession()->get('sessionHistoryId') + ); // Overwrite our stored user with this new object. $this->setUserForRequest($user); @@ -96,10 +101,19 @@ public function addRoutes() // Service for the logout of the user. // End the CAS session and the application session - $app->get('/cas/logout', function (\Slim\Http\ServerRequest $request, \Slim\Http\Response $response) { + $app->get('/cas/logout', function (ServerRequest $request, Response $response) { // The order is first: local session to destroy, second the cas session // because phpCAS::logout() redirects to CAS server - $this->completeLogoutFlow($this->getUser($_SESSION['userid'], $request->getAttribute('ip_address')), $this->getSession(), $this->getLog(), $request); + $this->completeLogoutFlow( + $this->getUser( + $_SESSION['userid'], + $request->getAttribute('ip_address'), + $_SESSION['sessionHistoryId'] + ), + $this->getSession(), + $this->getLog(), + $request + ); $this->initCasClient(); \phpCAS::logout(); @@ -153,6 +167,9 @@ public function shouldRedirectPublicRoute($route) /** @inheritDoc */ public function addToRequest(Request $request) { - return $request->withAttribute('excludedCsrfRoutes', array_merge($request->getAttribute('excludedCsrfRoutes', []), ['/cas/login', '/cas/logout'])); + return $request->withAttribute( + 'excludedCsrfRoutes', + array_merge($request->getAttribute('excludedCsrfRoutes', []), ['/cas/login', '/cas/logout']) + ); } } diff --git a/lib/Middleware/Csp.php b/lib/Middleware/Csp.php new file mode 100644 index 0000000000..e46bb514a0 --- /dev/null +++ b/lib/Middleware/Csp.php @@ -0,0 +1,72 @@ +. + */ + +namespace Xibo\Middleware; + +use Psr\Container\ContainerInterface; +use Psr\Http\Message\ResponseInterface as Response; +use Psr\Http\Message\ServerRequestInterface as Request; +use Psr\Http\Server\MiddlewareInterface as Middleware; +use Psr\Http\Server\RequestHandlerInterface as RequestHandler; +use Xibo\Helper\Random; + +/** + * CSP middleware to output CSP headers and add a CSP nonce to the view layer. + */ +class Csp implements Middleware +{ + public function __construct(private readonly ContainerInterface $container) + { + } + + /** + * Call middleware + * @param Request $request + * @param RequestHandler $handler + * @return Response + * @throws \Psr\Container\ContainerExceptionInterface + * @throws \Psr\Container\NotFoundExceptionInterface + */ + public function process(Request $request, RequestHandler $handler): Response + { + // Generate a nonce + $nonce = Random::generateString(8); + + // Create CSP header + $csp = 'object-src \'none\'; script-src \'nonce-' . $nonce . '\''; + $csp .= ' \'unsafe-inline\' \'unsafe-eval\' \'strict-dynamic\' https: http:;'; + $csp .= ' base-uri \'self\';'; + $csp .= ' frame-ancestors \'self\';'; + + // Store it for use in the stack if needed + $request = $request->withAttribute('cspNonce', $nonce); + + // Assign it to our view + $this->container->get('view')->offsetSet('cspNonce', $nonce); + + // Call next middleware. + $response = $handler->handle($request); + + // Add our header + return $response->withAddedHeader('Content-Security-Policy', $csp); + } +} diff --git a/lib/Middleware/LayoutLock.php b/lib/Middleware/LayoutLock.php index 6feaa6ca0c..2a0c9a86d2 100644 --- a/lib/Middleware/LayoutLock.php +++ b/lib/Middleware/LayoutLock.php @@ -1,8 +1,8 @@ app = $app; - $this->ttl = $ttl; + private LoggerInterface $logger; + + /** + * @param \Slim\App $app + * @param int $ttl + * @throws \Psr\Container\ContainerExceptionInterface + * @throws \Psr\Container\NotFoundExceptionInterface + */ + public function __construct( + private readonly App $app, + private readonly int $ttl = 300 + ) { + $this->logger = $this->app->getContainer()->get('logService')->getLoggerInterface(); } /** - * This Middleware will Lock the Layout for the specific User and entry point - * It is not added on the whole Application stack, instead it's added to selected groups of routes in routes.php - * - * For a User designing a Layout there will be no change in the way that User interacts with it - * However if the same Layout will be accessed by different User or Entry Point then this middleware will throw an Exception with suitable message. - * - * * @param Request $request * @param RequestHandler $handler * @return Response - * @throws GeneralException + * @throws \Psr\Container\ContainerExceptionInterface + * @throws \Psr\Container\NotFoundExceptionInterface + * @throws \Xibo\Support\Exception\GeneralException */ public function process(Request $request, RequestHandler $handler): Response { @@ -74,26 +85,28 @@ public function process(Request $request, RequestHandler $handler): Response // what route are we in? $resource = $route->getPattern(); + $routeName = $route->getName(); // skip for test suite if ($request->getAttribute('name') === 'test' && $this->app->getContainer()->get('name') === 'test') { return $handler->handle($request); } - if (strpos($resource,'layout') !== false) { + $this->logger->debug('layoutLock: testing route ' . $routeName . ', pattern ' . $resource); + + if (str_contains($resource, 'layout') !== false) { // Layout route, we can get the Layout id from route argument. $this->layoutId = (int)$route->getArgument('id'); - } elseif (strpos($resource,'region') !== false) { + } elseif (str_contains($resource, 'region') !== false) { // Region route, we need to get the Layout Id from layoutFactory by Region Id - // if it's POST request or positionAll then id in route is already LayoutId we can use - if (strpos($resource, 'position') !== false || $route->getMethods()[0] === 'POST') { + if (str_contains($resource, 'position') !== false || $route->getMethods()[0] === 'POST') { $this->layoutId = (int)$route->getArgument('id'); } else { $regionId = (int)$route->getArgument('id'); $this->layoutId = $this->app->getContainer()->get('layoutFactory')->getByRegionId($regionId)->layoutId; } - } elseif (strpos($route->getName(),'playlist') !== false || $route->getName() === 'module.widget.add') { + } else if (str_contains($routeName, 'playlist') !== false || $routeName === 'module.widget.add') { // Playlist Route, we need to get to LayoutId, Widget add the same behaviour. $playlistId = (int)$route->getArgument('id'); $regionId = $this->app->getContainer()->get('playlistFactory')->getById($playlistId)->regionId; @@ -103,7 +116,7 @@ public function process(Request $request, RequestHandler $handler): Response if ($regionId != null) { $this->layoutId = $this->app->getContainer()->get('layoutFactory')->getByRegionId($regionId)->layoutId; } - } elseif (strpos($route->getName(), 'widget') !== false) { + } else if (str_contains($routeName, 'widget') !== false) { // Widget route, the id route argument will be Widget Id $widgetId = (int)$route->getArgument('id'); @@ -117,7 +130,10 @@ public function process(Request $request, RequestHandler $handler): Response } } else { // this should never happen - throw new GeneralException(sprintf(__('Layout Lock Middleware called with incorrect route %s'), $route->getPattern())); + throw new GeneralException(sprintf( + __('Layout Lock Middleware called with incorrect route %s'), + $route->getPattern(), + )); } // run only if we have layout id, that will exclude non Region specific Playlist requests. @@ -132,17 +148,19 @@ public function process(Request $request, RequestHandler $handler): Response $objectToCache->userId = $this->userId; $objectToCache->entryPoint = $this->entryPoint; - $this->app->getContainer()->get('logger')->debug('Layout Lock middleware for LayoutId ' . $this->layoutId . ' userId ' . $this->userId . ' emtrypoint ' . $this->entryPoint); + $this->logger->debug('Layout Lock middleware for LayoutId ' . $this->layoutId + . ' userId ' . $this->userId . ' emtrypoint ' . $this->entryPoint); $this->lock->setInvalidationMethod(Invalidation::OLD); // Get the lock // other requests will wait here until we're done, or we've timed out $locked = $this->lock->get(); - $this->app->getContainer()->get('logger')->debug('$locked is ' . var_export($locked, true) . ', key = ' . $key); + $this->logger->debug('$locked is ' . var_export($locked, true) . ', key = ' . $key); if ($this->lock->isMiss() || $locked === []) { - $this->app->getContainer()->get('logger')->debug('Lock miss or false. Locking for ' . $this->ttl . ' seconds. $locked is ' . var_export($locked, true) . ', key = ' . $key); + $this->logger->debug('Lock miss or false. Locking for ' . $this->ttl . ' seconds. $locked is ' + . var_export($locked, true) . ', key = ' . $key); // so lock now $this->lock->expiresAfter($this->ttl); @@ -151,7 +169,9 @@ public function process(Request $request, RequestHandler $handler): Response $this->lock->save(); } else { // We are a hit - we must be locked - $this->app->getContainer()->get('logger')->debug('LOCK hit for ' . $key . ' expires ' . $this->lock->getExpiration()->format(DateFormatHelper::getSystemFormat()) . ', created ' . $this->lock->getCreation()->format(DateFormatHelper::getSystemFormat())); + $this->logger->debug('LOCK hit for ' . $key . ' expires ' + . $this->lock->getExpiration()->format(DateFormatHelper::getSystemFormat()) . ', created ' + . $this->lock->getCreation()->format(DateFormatHelper::getSystemFormat())); if ($locked->userId == $this->userId && $locked->entryPoint == $this->entryPoint) { // the same user in the same entry point is editing the same layoutId @@ -160,11 +180,16 @@ public function process(Request $request, RequestHandler $handler): Response $this->lock->set($objectToCache); $this->lock->save(); - $this->app->getContainer()->get('logger')->debug('Lock extended to ' . $this->lock->getExpiration()->format(DateFormatHelper::getSystemFormat())); + $this->logger->debug('Lock extended to ' + . $this->lock->getExpiration()->format(DateFormatHelper::getSystemFormat())); } else { // different user or entry point - $this->app->getContainer()->get('logger')->debug('Sorry Layout is locked by another User!'); - throw new AccessDeniedException(sprintf(__('Layout ID %d is locked by another User! Lock expires on: %s'), $locked->layoutId, $locked->expires)); + $this->logger->debug('Sorry Layout is locked by another User!'); + throw new AccessDeniedException(sprintf( + __('Layout ID %d is locked by another User! Lock expires on: %s'), + $locked->layoutId, + $locked->expires + )); } } } @@ -174,12 +199,18 @@ public function process(Request $request, RequestHandler $handler): Response /** * @return Pool + * @throws \Psr\Container\ContainerExceptionInterface + * @throws \Psr\Container\NotFoundExceptionInterface */ private function getPool() { return $this->app->getContainer()->get('pool'); } + /** + * Get the lock key + * @return mixed + */ private function getKey() { return $this->layoutId; diff --git a/lib/Middleware/ListenersMiddleware.php b/lib/Middleware/ListenersMiddleware.php index 8aaf677d5a..300470532a 100644 --- a/lib/Middleware/ListenersMiddleware.php +++ b/lib/Middleware/ListenersMiddleware.php @@ -43,12 +43,14 @@ use Xibo\Listener\LayoutListener; use Xibo\Listener\MediaListener; use Xibo\Listener\MenuBoardProviderListener; +use Xibo\Listener\ModuleTemplateListener; use Xibo\Listener\NotificationDataProviderListener; use Xibo\Listener\PlaylistListener; use Xibo\Listener\SyncGroupListener; use Xibo\Listener\TaskListener; use Xibo\Listener\WidgetListener; use Xibo\Xmds\Listeners\XmdsAssetsListener; +use Xibo\Xmds\Listeners\XmdsDataConnectorListener; use Xibo\Xmds\Listeners\XmdsFontsListener; use Xibo\Xmds\Listeners\XmdsPlayerBundleListener; use Xibo\Xmds\Listeners\XmdsPlayerVersionListener; @@ -127,6 +129,13 @@ public static function setListeners(App $app) ->useLogger($c->get('logger')) ->registerWithDispatcher($dispatcher); + // Listen for events that affect ModuleTemplates + (new ModuleTemplateListener( + $c->get('moduleTemplateFactory'), + )) + ->useLogger($c->get('logger')) + ->registerWithDispatcher($dispatcher); + // Listen for event that affect Playlist (new PlaylistListener( $c->get('playlistFactory'), @@ -397,6 +406,11 @@ public static function setXmdsListeners(App $app) ->useLogger($c->get('logger')) ->useConfig($c->get('configService')); + $dataConnectorListener = new XmdsDataConnectorListener(); + $dataConnectorListener + ->useLogger($c->get('logger')) + ->useConfig($c->get('configService')); + $dispatcher->addListener('xmds.dependency.list', [$playerBundleListener, 'onDependencyList']); $dispatcher->addListener('xmds.dependency.request', [$playerBundleListener, 'onDependencyRequest']); $dispatcher->addListener('xmds.dependency.list', [$fontsListener, 'onDependencyList']); @@ -404,5 +418,6 @@ public static function setXmdsListeners(App $app) $dispatcher->addListener('xmds.dependency.list', [$playerVersionListner, 'onDependencyList']); $dispatcher->addListener('xmds.dependency.request', [$playerVersionListner, 'onDependencyRequest']); $dispatcher->addListener('xmds.dependency.request', [$assetsListener, 'onDependencyRequest']); + $dispatcher->addListener('xmds.dependency.request', [$dataConnectorListener, 'onDependencyRequest']); } } diff --git a/lib/Middleware/Log.php b/lib/Middleware/Log.php index 3529354db0..8c2462b586 100644 --- a/lib/Middleware/Log.php +++ b/lib/Middleware/Log.php @@ -1,8 +1,8 @@ app = $app; @@ -44,17 +49,14 @@ public function __construct($app) * @param Request $request * @param RequestHandler $handler * @return Response + * @throws \Psr\Container\ContainerExceptionInterface + * @throws \Psr\Container\NotFoundExceptionInterface */ public function process(Request $request, RequestHandler $handler): Response { - $user = $this->app->getContainer()->get('user'); - $userId = (isset($user)) ? $user->userId : null; + $container = $this->app->getContainer(); - self::addLogProcessorToLogger( - $this->app->getContainer()->get('logger'), - $request, - $userId - ); + self::addLogProcessorToLogger($container->get('logger'), $request); return $handler->handle($request); } @@ -62,11 +64,14 @@ public function process(Request $request, RequestHandler $handler): Response /** * @param LoggerInterface $logger * @param \Psr\Http\Message\ServerRequestInterface $request - * @param int|null $userId */ - public static function addLogProcessorToLogger(LoggerInterface $logger, Request $request, $userId = null) - { - $logHelper = new LogProcessor($request->getUri()->getPath(), $request->getMethod(), $userId); - $logger->pushProcessor($logHelper); + public static function addLogProcessorToLogger( + LoggerInterface $logger, + Request $request, + ): void { + $logger->pushProcessor(new RouteLogProcessor( + $request->getUri()->getPath(), + $request->getMethod(), + )); } -} \ No newline at end of file +} diff --git a/lib/Middleware/SAMLAuthentication.php b/lib/Middleware/SAMLAuthentication.php index edd70d4b94..c38241ccd3 100644 --- a/lib/Middleware/SAMLAuthentication.php +++ b/lib/Middleware/SAMLAuthentication.php @@ -202,9 +202,17 @@ public function addRoutes() // Home page if (isset($samlSettings['workflow']['homePage'])) { try { - $user->homePageId = $this->getUserGroupFactory()->getHomepageByName($samlSettings['workflow']['homePage'])->homepage; + $user->homePageId = $this->getUserGroupFactory()->getHomepageByName( + $samlSettings['workflow']['homePage'] + )->homepage; } catch (NotFoundException $exception) { - $this->getLog()->info(sprintf('Provided homepage %s, does not exist, setting the icondashboard.view as homepage', $samlSettings['workflow']['homePage'])); + $this->getLog()->info( + sprintf( + 'Provided homepage %s, does not exist, + setting the icondashboard.view as homepage', + $samlSettings['workflow']['homePage'] + ) + ); $user->homePageId = 'icondashboard.view'; } } else { @@ -263,7 +271,11 @@ public function addRoutes() if (isset($user) && $user->userId > 0) { // Load User - $user = $this->getUser($user->userId, $request->getAttribute('ip_address')); + $user = $this->getUser( + $user->userId, + $request->getAttribute('ip_address'), + $this->getSession()->get('sessionHistoryId') + ); // Overwrite our stored user with this new object. $this->setUserForRequest($user); @@ -374,6 +386,7 @@ public function addRoutes() $auth->processSLO(false, null, false, function () use ($request) { // Audit that the IDP has completed this request. $this->getLog()->setIpAddress($request->getAttribute('ip_address')); + $this->getLog()->setSessionHistoryId($this->getSession()->get('sessionHistoryId')); $this->getLog()->audit('User', 0, 'Idp SLO completed', [ 'UserAgent' => $request->getHeader('User-Agent') ]); @@ -410,7 +423,11 @@ public function samlLogout(Request $request, Response $response) ) { // Complete our own logout flow $this->completeLogoutFlow( - $this->getUser($_SESSION['userid'], $request->getAttribute('ip_address')), + $this->getUser( + $_SESSION['userid'], + $request->getAttribute('ip_address'), + $_SESSION['sessionHistoryId'] + ), $this->getSession(), $this->getLog(), $request diff --git a/lib/Report/ApiRequests.php b/lib/Report/ApiRequests.php new file mode 100644 index 0000000000..085bb8df2b --- /dev/null +++ b/lib/Report/ApiRequests.php @@ -0,0 +1,468 @@ +. + */ + +namespace Xibo\Report; + +use Carbon\Carbon; +use Psr\Container\ContainerInterface; +use Xibo\Controller\DataTablesDotNetTrait; +use Xibo\Entity\ReportForm; +use Xibo\Entity\ReportResult; +use Xibo\Entity\ReportSchedule; +use Xibo\Factory\ApplicationRequestsFactory; +use Xibo\Factory\AuditLogFactory; +use Xibo\Factory\LogFactory; +use Xibo\Helper\DateFormatHelper; +use Xibo\Helper\Translate; +use Xibo\Support\Exception\AccessDeniedException; +use Xibo\Support\Sanitizer\SanitizerInterface; + +class ApiRequests implements ReportInterface +{ + use ReportDefaultTrait, DataTablesDotNetTrait; + + /** @var LogFactory */ + private $logFactory; + + /** @var AuditLogFactory */ + private $auditLogFactory; + + /** @var ApplicationRequestsFactory */ + private $apiRequestsFactory; + + /** @inheritdoc */ + public function setFactories(ContainerInterface $container) + { + $this->logFactory = $container->get('logFactory'); + $this->auditLogFactory = $container->get('auditLogFactory'); + $this->apiRequestsFactory = $container->get('apiRequestsFactory'); + + return $this; + } + + /** @inheritdoc */ + public function getReportEmailTemplate() + { + return 'apirequests-email-template.twig'; + } + + /** @inheritdoc */ + public function getSavedReportTemplate() + { + return 'apirequests-report-preview'; + } + + /** @inheritdoc */ + public function getReportForm(): ReportForm + { + return new ReportForm( + 'apirequests-report-form', + 'apirequests', + 'Audit', + [ + 'fromDate' => Carbon::now()->startOfMonth()->format(DateFormatHelper::getSystemFormat()), + 'toDate' => Carbon::now()->format(DateFormatHelper::getSystemFormat()), + ] + ); + } + + /** @inheritdoc */ + public function getReportScheduleFormData(SanitizerInterface $sanitizedParams): array + { + $data = []; + $data['reportName'] = 'apirequests'; + + return [ + 'template' => 'apirequests-schedule-form-add', + 'data' => $data + ]; + } + + /** @inheritdoc */ + public function setReportScheduleFormData(SanitizerInterface $sanitizedParams): array + { + $filter = $sanitizedParams->getString('filter'); + $filterCriteria['userId'] = $sanitizedParams->getInt('userId'); + $filterCriteria['type'] = $sanitizedParams->getString('type'); + $filterCriteria['scheduledReport'] = true; + + $filterCriteria['filter'] = $filter; + + $schedule = ''; + if ($filter == 'daily') { + $schedule = ReportSchedule::$SCHEDULE_DAILY; + $filterCriteria['reportFilter'] = 'yesterday'; + } elseif ($filter == 'weekly') { + $schedule = ReportSchedule::$SCHEDULE_WEEKLY; + $filterCriteria['reportFilter'] = 'lastweek'; + } elseif ($filter == 'monthly') { + $schedule = ReportSchedule::$SCHEDULE_MONTHLY; + $filterCriteria['reportFilter'] = 'lastmonth'; + } elseif ($filter == 'yearly') { + $schedule = ReportSchedule::$SCHEDULE_YEARLY; + $filterCriteria['reportFilter'] = 'lastyear'; + } + + $filterCriteria['sendEmail'] = $sanitizedParams->getCheckbox('sendEmail'); + $filterCriteria['nonusers'] = $sanitizedParams->getString('nonusers'); + + // Return + return [ + 'filterCriteria' => json_encode($filterCriteria), + 'schedule' => $schedule + ]; + } + + public function generateSavedReportName(SanitizerInterface $sanitizedParams): string + { + return sprintf( + __('%s API requests %s log report for User'), + ucfirst($sanitizedParams->getString('filter')), + ucfirst($sanitizedParams->getString('type')) + ); + } + + /** @inheritdoc */ + public function restructureSavedReportOldJson($json) + { + return $json; + } + + /** @inheritdoc */ + public function getSavedReportResults($json, $savedReport) + { + $metadata = [ + 'periodStart' => $json['metadata']['periodStart'], + 'periodEnd' => $json['metadata']['periodEnd'], + 'generatedOn' => Carbon::createFromTimestamp($savedReport->generatedOn) + ->format(DateFormatHelper::getSystemFormat()), + 'title' => $savedReport->saveAs, + 'logType' => $json['metadata']['logType'] + ]; + + // Report result object + return new ReportResult( + $metadata, + $json['table'], + $json['recordsTotal'], + ); + } + + /** @inheritdoc */ + public function getResults(SanitizerInterface $sanitizedParams) + { + if (!$this->getUser()->isSuperAdmin()) { + throw new AccessDeniedException(); + } + + $currentDate = Carbon::now()->startOfDay(); + + // + // From and To Date Selection + // -------------------------- + // Our report has a range filter which determines whether the user has to enter their own from / to dates + // check the range filter first and set from/to dates accordingly. + $reportFilter = $sanitizedParams->getString('reportFilter'); + + // Use the current date as a helper + $now = Carbon::now(); + + switch ($reportFilter) { + // the monthly data starts from yesterday + case 'yesterday': + $fromDt = $now->copy()->startOfDay()->subDay(); + $toDt = $now->copy()->startOfDay(); + break; + + case 'lastweek': + $fromDt = $now->copy()->locale(Translate::GetLocale())->startOfWeek()->subWeek(); + $toDt = $fromDt->copy()->addWeek(); + break; + + case 'lastmonth': + $fromDt = $now->copy()->startOfMonth()->subMonth(); + $toDt = $fromDt->copy()->addMonth(); + break; + + case 'lastyear': + $fromDt = $now->copy()->startOfYear()->subYear(); + $toDt = $fromDt->copy()->addYear(); + break; + + case '': + default: + // Expect dates to be provided. + $fromDt = $sanitizedParams->getDate('fromDt'); + $toDt = $sanitizedParams->getDate('toDt'); + + $fromDt = $fromDt->startOfDay(); + + // If toDt is current date then make it current datetime + if ($toDt->format('Y-m-d') == $currentDate->format('Y-m-d')) { + $toDt = Carbon::now(); + } else { + $toDt = $toDt->addDay()->startOfDay(); + } + + break; + } + + $type = $sanitizedParams->getString('type'); + + $metadata = [ + 'periodStart' => Carbon::createFromTimestamp($fromDt->toDateTime()->format('U')) + ->format(DateFormatHelper::getSystemFormat()), + 'periodEnd' => Carbon::createFromTimestamp($toDt->toDateTime()->format('U')) + ->format(DateFormatHelper::getSystemFormat()), + 'logType' => $type, + ]; + + if ($type === 'audit') { + $params = [ + 'fromDt' => $fromDt->format('U'), + 'toDt' => $toDt->format('U'), + ]; + + $sql = 'SELECT + `auditlog`.`logId`, + `auditlog`.`logDate`, + `user`.`userName`, + `auditlog`.`message`, + `auditlog`.`objectAfter`, + `auditlog`.`entity`, + `auditlog`.`entityId`, + `auditlog`.userId, + `auditlog`.ipAddress, + `auditlog`.requestId, + `application_requests_history`.applicationId, + `application_requests_history`.url, + `application_requests_history`.method, + `application_requests_history`.startTime, + `oauth_clients`.name AS applicationName + FROM `auditlog` + INNER JOIN `user` + ON `user`.`userId` = `auditlog`.`userId` + INNER JOIN `application_requests_history` + ON `application_requests_history`.`requestId` = `auditlog`.`requestId` + INNER JOIN `oauth_clients` + ON `oauth_clients`.id = `application_requests_history`.applicationId + WHERE `auditlog`.logDate BETWEEN :fromDt AND :toDt + '; + + if ($sanitizedParams->getInt('userId') !== null) { + $sql .= ' AND `auditlog`.`userId` = :userId'; + $params['userId'] = $sanitizedParams->getInt('userId'); + } + + if ($sanitizedParams->getInt('requestId') !== null) { + $sql .= ' AND `auditlog`.`requestId` = :requestId'; + $params['requestId'] = $sanitizedParams->getInt('requestId'); + } + + // Sorting? + $sortOrder = $this->gridRenderSort($sanitizedParams); + + if (is_array($sortOrder)) { + $sql .= ' ORDER BY ' . implode(',', $sortOrder); + } + + $rows = []; + foreach ($this->store->select($sql, $params) as $row) { + $auditRecord = $this->auditLogFactory->create()->hydrate($row); + $auditRecord->setUnmatchedProperty( + 'applicationId', + $row['applicationId'] + ); + + $auditRecord->setUnmatchedProperty( + 'applicationName', + $row['applicationName'] + ); + + $auditRecord->setUnmatchedProperty( + 'url', + $row['url'] + ); + + $auditRecord->setUnmatchedProperty( + 'method', + $row['method'] + ); + + // decode for grid view, leave as json for email/preview. + if (!$sanitizedParams->getCheckbox('scheduledReport')) { + $auditRecord->objectAfter = json_decode($auditRecord->objectAfter); + } + + $auditRecord->logDate = Carbon::createFromTimestamp($auditRecord->logDate) + ->format(DateFormatHelper::getSystemFormat()); + + $rows[] = $auditRecord; + } + + return new ReportResult( + $metadata, + $rows, + count($rows), + ); + } else if ($type === 'debug') { + $params = [ + 'fromDt' => $fromDt->format(DateFormatHelper::getSystemFormat()), + 'toDt' => $toDt->format(DateFormatHelper::getSystemFormat()), + ]; + + $sql = 'SELECT + `log`.`logId`, + `log`.`logDate`, + `log`.`runNo`, + `log`.`channel`, + `log`.`page`, + `log`.`function`, + `log`.`type`, + `log`.`message`, + `log`.`userId`, + `log`.`requestId`, + `user`.`userName`, + `application_requests_history`.applicationId, + `application_requests_history`.url, + `application_requests_history`.method, + `application_requests_history`.startTime, + `oauth_clients`.name AS applicationName + FROM `log` + INNER JOIN `user` + ON `user`.`userId` = `log`.`userId` + INNER JOIN `application_requests_history` + ON `application_requests_history`.`requestId` = `log`.`requestId` + INNER JOIN `oauth_clients` + ON `oauth_clients`.id = `application_requests_history`.applicationId + WHERE `log`.logDate BETWEEN :fromDt AND :toDt + '; + + if ($sanitizedParams->getInt('userId') !== null) { + $sql .= ' AND `log`.`userId` = :userId'; + $params['userId'] = $sanitizedParams->getInt('userId'); + } + + if ($sanitizedParams->getInt('requestId') !== null) { + $sql .= ' AND `log`.`requestId` = :requestId'; + $params['requestId'] = $sanitizedParams->getInt('requestId'); + } + + // Sorting? + $sortOrder = $this->gridRenderSort($sanitizedParams); + + if (is_array($sortOrder)) { + $sql .= ' ORDER BY ' . implode(',', $sortOrder); + } + + $rows = []; + foreach ($this->store->select($sql, $params) as $row) { + $logRecord = $this->logFactory->createEmpty()->hydrate($row, ['htmlStringProperties' => ['message']]); + $logRecord->setUnmatchedProperty( + 'applicationId', + $row['applicationId'] + ); + + $logRecord->setUnmatchedProperty( + 'applicationName', + $row['applicationName'] + ); + + $logRecord->setUnmatchedProperty( + 'url', + $row['url'] + ); + + $logRecord->setUnmatchedProperty( + 'method', + $row['method'] + ); + + $rows[] = $logRecord; + } + + return new ReportResult( + $metadata, + $rows, + count($rows), + ); + } else { + $params = [ + 'fromDt' => $fromDt->format(DateFormatHelper::getSystemFormat()), + 'toDt' => $toDt->format(DateFormatHelper::getSystemFormat()), + ]; + + $sql = 'SELECT + `application_requests_history`.applicationId, + `application_requests_history`.requestId, + `application_requests_history`.userId, + `application_requests_history`.url, + `application_requests_history`.method, + `application_requests_history`.startTime, + `oauth_clients`.name AS applicationName, + `user`.`userName` + FROM `application_requests_history` + INNER JOIN `user` + ON `user`.`userId` = `application_requests_history`.`userId` + INNER JOIN `oauth_clients` + ON `oauth_clients`.id = `application_requests_history`.applicationId + WHERE `application_requests_history`.startTime BETWEEN :fromDt AND :toDt + '; + + if ($sanitizedParams->getInt('userId') !== null) { + $sql .= ' AND `application_requests_history`.`userId` = :userId'; + $params['userId'] = $sanitizedParams->getInt('userId'); + } + + // Sorting? + $sortOrder = $this->gridRenderSort($sanitizedParams); + + if (is_array($sortOrder)) { + $sql .= ' ORDER BY ' . implode(',', $sortOrder); + } + + $rows = []; + + foreach ($this->store->select($sql, $params) as $row) { + $apiRequestRecord = $this->apiRequestsFactory->createEmpty()->hydrate($row); + + $apiRequestRecord->setUnmatchedProperty( + 'userName', + $row['userName'] + ); + + $apiRequestRecord->setUnmatchedProperty( + 'applicationName', + $row['applicationName'] + ); + + $rows[] = $apiRequestRecord; + } + + return new ReportResult( + $metadata, + $rows, + count($rows), + ); + } + } +} diff --git a/lib/Report/Bandwidth.php b/lib/Report/Bandwidth.php index 3fb2bc333f..2d18f37f46 100644 --- a/lib/Report/Bandwidth.php +++ b/lib/Report/Bandwidth.php @@ -255,7 +255,7 @@ public function getResults(SanitizerInterface $sanitizedParams) $params['displayid'] = $displayId; } - $SQL .= 'GROUP BY display.display '; + $SQL .= 'GROUP BY display.displayId, display.display '; if ($displayId != 0) { $SQL .= ' , bandwidthtype.name '; diff --git a/lib/Report/DisplayAlerts.php b/lib/Report/DisplayAlerts.php new file mode 100644 index 0000000000..37abf820e3 --- /dev/null +++ b/lib/Report/DisplayAlerts.php @@ -0,0 +1,353 @@ +. + */ + +namespace Xibo\Report; + +use Carbon\Carbon; +use Psr\Container\ContainerInterface; +use Xibo\Controller\DataTablesDotNetTrait; +use Xibo\Entity\ReportForm; +use Xibo\Entity\ReportResult; +use Xibo\Entity\ReportSchedule; +use Xibo\Factory\DisplayEventFactory; +use Xibo\Factory\DisplayFactory; +use Xibo\Factory\DisplayGroupFactory; +use Xibo\Helper\DateFormatHelper; +use Xibo\Helper\Translate; +use Xibo\Support\Sanitizer\SanitizerInterface; + +/** + * Class DisplayAlerts + * @package Xibo\Report + */ +class DisplayAlerts implements ReportInterface +{ + use ReportDefaultTrait, DataTablesDotNetTrait; + + /** @var DisplayFactory */ + private $displayFactory; + /** @var DisplayGroupFactory */ + private $displayGroupFactory; + /** @var DisplayEventFactory */ + private $displayEventFactory; + + public function setFactories(ContainerInterface $container) + { + $this->displayFactory = $container->get('displayFactory'); + $this->displayGroupFactory = $container->get('displayGroupFactory'); + $this->displayEventFactory = $container->get('displayEventFactory'); + + return $this; + } + + public function getReportEmailTemplate() + { + return 'displayalerts-email-template.twig'; + } + + public function getSavedReportTemplate() + { + return 'displayalerts-report-preview'; + } + + public function getReportForm() + { + return new ReportForm( + 'displayalerts-report-form', + 'displayalerts', + 'Display', + [ + 'fromDate' => Carbon::now()->startOfMonth()->format(DateFormatHelper::getSystemFormat()), + 'toDate' => Carbon::now()->format(DateFormatHelper::getSystemFormat()), + ] + ); + } + + public function getReportScheduleFormData(SanitizerInterface $sanitizedParams) + { + $data = []; + $data['reportName'] = 'displayalerts'; + + return [ + 'template' => 'displayalerts-schedule-form-add', + 'data' => $data + ]; + } + + public function setReportScheduleFormData(SanitizerInterface $sanitizedParams) + { + $filter = $sanitizedParams->getString('filter'); + $displayId = $sanitizedParams->getInt('displayId'); + $displayGroupIds = $sanitizedParams->getIntArray('displayGroupId', ['default' => []]); + $filterCriteria['displayId'] = $displayId; + + if (empty($displayId) && count($displayGroupIds) > 0) { + $filterCriteria['displayGroupId'] = $displayGroupIds; + } + + $filterCriteria['filter'] = $filter; + + $schedule = ''; + if ($filter == 'daily') { + $schedule = ReportSchedule::$SCHEDULE_DAILY; + $filterCriteria['reportFilter'] = 'yesterday'; + } elseif ($filter == 'weekly') { + $schedule = ReportSchedule::$SCHEDULE_WEEKLY; + $filterCriteria['reportFilter'] = 'lastweek'; + } elseif ($filter == 'monthly') { + $schedule = ReportSchedule::$SCHEDULE_MONTHLY; + $filterCriteria['reportFilter'] = 'lastmonth'; + } elseif ($filter == 'yearly') { + $schedule = ReportSchedule::$SCHEDULE_YEARLY; + $filterCriteria['reportFilter'] = 'lastyear'; + } + + $filterCriteria['sendEmail'] = $sanitizedParams->getCheckbox('sendEmail'); + $filterCriteria['nonusers'] = $sanitizedParams->getString('nonusers'); + + // Return + return [ + 'filterCriteria' => json_encode($filterCriteria), + 'schedule' => $schedule + ]; + } + + public function generateSavedReportName(SanitizerInterface $sanitizedParams) + { + return sprintf(__('%s report for Display'), ucfirst($sanitizedParams->getString('filter'))); + } + + public function restructureSavedReportOldJson($json) + { + return $json; + } + + public function getSavedReportResults($json, $savedReport) + { + $metadata = [ + 'periodStart' => $json['metadata']['periodStart'], + 'periodEnd' => $json['metadata']['periodEnd'], + 'generatedOn' => Carbon::createFromTimestamp($savedReport->generatedOn) + ->format(DateFormatHelper::getSystemFormat()), + 'title' => $savedReport->saveAs, + ]; + + // Report result object + return new ReportResult( + $metadata, + $json['table'], + $json['recordsTotal'], + ); + } + + public function getResults(SanitizerInterface $sanitizedParams) + { + $displayIds = $this->getDisplayIdFilter($sanitizedParams); + $onlyLoggedIn = $sanitizedParams->getCheckbox('onlyLoggedIn') == 1; + + $currentDate = Carbon::now()->startOfDay(); + + // + // From and To Date Selection + // -------------------------- + // Our report has a range filter which determines whether the user has to enter their own from / to dates + // check the range filter first and set from/to dates accordingly. + $reportFilter = $sanitizedParams->getString('reportFilter'); + + // Use the current date as a helper + $now = Carbon::now(); + + switch ($reportFilter) { + // the monthly data starts from yesterday + case 'yesterday': + $fromDt = $now->copy()->startOfDay()->subDay(); + $toDt = $now->copy()->startOfDay(); + break; + + case 'lastweek': + $fromDt = $now->copy()->locale(Translate::GetLocale())->startOfWeek()->subWeek(); + $toDt = $fromDt->copy()->addWeek(); + break; + + case 'lastmonth': + $fromDt = $now->copy()->startOfMonth()->subMonth(); + $toDt = $fromDt->copy()->addMonth(); + break; + + case 'lastyear': + $fromDt = $now->copy()->startOfYear()->subYear(); + $toDt = $fromDt->copy()->addYear(); + break; + + case '': + default: + // Expect dates to be provided. + $fromDt = $sanitizedParams->getDate('fromDt'); + $toDt = $sanitizedParams->getDate('toDt'); + + $fromDt = $fromDt->startOfDay(); + + // If toDt is current date then make it current datetime + if ($toDt->format('Y-m-d') == $currentDate->format('Y-m-d')) { + $toDt = Carbon::now(); + } else { + $toDt = $toDt->addDay()->startOfDay(); + } + + break; + } + + $metadata = [ + 'periodStart' => Carbon::createFromTimestamp($fromDt->toDateTime()->format('U')) + ->format(DateFormatHelper::getSystemFormat()), + 'periodEnd' => Carbon::createFromTimestamp($toDt->toDateTime()->format('U')) + ->format(DateFormatHelper::getSystemFormat()), + ]; + + $params = [ + 'start' => $fromDt->format('U'), + 'end' => $toDt->format('U') + ]; + + $sql = 'SELECT + `displayevent`.displayId, + `display`.display, + `displayevent`.start, + `displayevent`.end, + `displayevent`.eventTypeId, + `displayevent`.refId, + `displayevent`.detail + FROM `displayevent` + INNER JOIN `display` ON `display`.displayId = `displayevent`.displayId + INNER JOIN `lkdisplaydg` ON `display`.displayId = `lkdisplaydg`.displayId + INNER JOIN `displaygroup` ON `displaygroup`.displayGroupId = `lkdisplaydg`.displayGroupId + AND `displaygroup`.isDisplaySpecific = 1 + WHERE `displayevent`.eventDate BETWEEN :start AND :end '; + + if (count($displayIds) > 0) { + $sql .= 'AND `displayevent`.displayId IN (' . implode(',', $displayIds) . ')'; + } + + if ($onlyLoggedIn) { + $sql .= ' AND `display`.loggedIn = 1 '; + } + + // Tags + if (!empty($sanitizedParams->getString('tags'))) { + $tagFilter = $sanitizedParams->getString('tags'); + + if (trim($tagFilter) === '--no-tag') { + $sql .= ' AND `displaygroup`.displaygroupId NOT IN ( + SELECT `lktagdisplaygroup`.displaygroupId + FROM tag + INNER JOIN `lktagdisplaygroup` + ON `lktagdisplaygroup`.tagId = tag.tagId + ) + '; + } else { + $operator = $sanitizedParams->getCheckbox('exactTags') == 1 ? '=' : 'LIKE'; + $logicalOperator = $sanitizedParams->getString('logicalOperator', ['default' => 'OR']); + $allTags = explode(',', $tagFilter); + $notTags = []; + $tags = []; + + foreach ($allTags as $tag) { + if (str_starts_with($tag, '-')) { + $notTags[] = ltrim(($tag), '-'); + } else { + $tags[] = $tag; + } + } + + if (!empty($notTags)) { + $sql .= ' AND `displaygroup`.displaygroupId NOT IN ( + SELECT `lktagdisplaygroup`.displaygroupId + FROM tag + INNER JOIN `lktagdisplaygroup` + ON `lktagdisplaygroup`.tagId = tag.tagId + '; + + $this->displayFactory->tagFilter( + $notTags, + 'lktagdisplaygroup', + 'lkTagDisplayGroupId', + 'displayGroupId', + $logicalOperator, + $operator, + true, + $sql, + $params + ); + } + + if (!empty($tags)) { + $sql .= ' AND `displaygroup`.displaygroupId IN ( + SELECT `lktagdisplaygroup`.displaygroupId + FROM tag + INNER JOIN `lktagdisplaygroup` + ON `lktagdisplaygroup`.tagId = tag.tagId + '; + + $this->displayFactory->tagFilter( + $tags, + 'lktagdisplaygroup', + 'lkTagDisplayGroupId', + 'displayGroupId', + $logicalOperator, + $operator, + false, + $sql, + $params + ); + } + } + } + + // Sorting? + $sortOrder = $this->gridRenderSort($sanitizedParams); + + if (is_array($sortOrder)) { + $sql .= 'ORDER BY ' . implode(',', $sortOrder); + } + + $rows = []; + foreach ($this->store->select($sql, $params) as $row) { + $displayEvent = $this->displayEventFactory->createEmpty()->hydrate($row); + $displayEvent->setUnmatchedProperty( + 'eventType', + $displayEvent->getEventNameFromId($displayEvent->eventTypeId) + ); + $displayEvent->setUnmatchedProperty( + 'display', + $row['display'] + ); + + $rows[] = $displayEvent; + } + + return new ReportResult( + $metadata, + $rows, + count($rows), + ); + } +} diff --git a/lib/Report/ProofOfPlay.php b/lib/Report/ProofOfPlay.php index daf9f7460b..cef45eeed6 100644 --- a/lib/Report/ProofOfPlay.php +++ b/lib/Report/ProofOfPlay.php @@ -1,6 +1,6 @@ getString('sortBy'); - $columns = ($sortBy == '') ? ['widgetId'] : [$sortBy]; + $sortBy = $sanitizedParams->getString('sortBy', ['default' => 'widgetId']); + if (!in_array($sortBy, [ + 'widgetId', + 'type', + 'display', + 'displayId', + 'media', + 'layout', + 'layoutId', + 'tag', + ])) { + throw new InvalidArgumentException(__('Invalid Sort By'), 'sortBy'); + } + $columns = [$sortBy]; } // diff --git a/lib/Report/SessionHistory.php b/lib/Report/SessionHistory.php new file mode 100644 index 0000000000..5450dff7bc --- /dev/null +++ b/lib/Report/SessionHistory.php @@ -0,0 +1,449 @@ +. + */ + +namespace Xibo\Report; + +use Carbon\Carbon; +use Psr\Container\ContainerInterface; +use Xibo\Controller\DataTablesDotNetTrait; +use Xibo\Entity\ReportForm; +use Xibo\Entity\ReportResult; +use Xibo\Entity\ReportSchedule; +use Xibo\Factory\AuditLogFactory; +use Xibo\Factory\LogFactory; +use Xibo\Helper\DateFormatHelper; +use Xibo\Helper\Translate; +use Xibo\Support\Exception\AccessDeniedException; +use Xibo\Support\Sanitizer\SanitizerInterface; + +class SessionHistory implements ReportInterface +{ + use ReportDefaultTrait, DataTablesDotNetTrait; + + /** @var LogFactory */ + private $logFactory; + + /** @var AuditLogFactory */ + private $auditLogFactory; + + /** @inheritdoc */ + public function setFactories(ContainerInterface $container) + { + $this->logFactory = $container->get('logFactory'); + $this->auditLogFactory = $container->get('auditLogFactory'); + + return $this; + } + + /** @inheritdoc */ + public function getReportEmailTemplate() + { + return 'sessionhistory-email-template.twig'; + } + + /** @inheritdoc */ + public function getSavedReportTemplate() + { + return 'sessionhistory-report-preview'; + } + + /** @inheritdoc */ + public function getReportForm(): ReportForm + { + return new ReportForm( + 'sessionhistory-report-form', + 'sessionhistory', + 'Audit', + [ + 'fromDate' => Carbon::now()->startOfMonth()->format(DateFormatHelper::getSystemFormat()), + 'toDate' => Carbon::now()->format(DateFormatHelper::getSystemFormat()), + ] + ); + } + + /** @inheritdoc */ + public function getReportScheduleFormData(SanitizerInterface $sanitizedParams): array + { + $data = []; + $data['reportName'] = 'sessionhistory'; + + return [ + 'template' => 'sessionhistory-schedule-form-add', + 'data' => $data + ]; + } + + /** @inheritdoc */ + public function setReportScheduleFormData(SanitizerInterface $sanitizedParams): array + { + $filter = $sanitizedParams->getString('filter'); + $filterCriteria['userId'] = $sanitizedParams->getInt('userId'); + $filterCriteria['type'] = $sanitizedParams->getString('type'); + $filterCriteria['scheduledReport'] = true; + + $filterCriteria['filter'] = $filter; + + $schedule = ''; + if ($filter == 'daily') { + $schedule = ReportSchedule::$SCHEDULE_DAILY; + $filterCriteria['reportFilter'] = 'yesterday'; + } elseif ($filter == 'weekly') { + $schedule = ReportSchedule::$SCHEDULE_WEEKLY; + $filterCriteria['reportFilter'] = 'lastweek'; + } elseif ($filter == 'monthly') { + $schedule = ReportSchedule::$SCHEDULE_MONTHLY; + $filterCriteria['reportFilter'] = 'lastmonth'; + } elseif ($filter == 'yearly') { + $schedule = ReportSchedule::$SCHEDULE_YEARLY; + $filterCriteria['reportFilter'] = 'lastyear'; + } + + $filterCriteria['sendEmail'] = $sanitizedParams->getCheckbox('sendEmail'); + $filterCriteria['nonusers'] = $sanitizedParams->getString('nonusers'); + + // Return + return [ + 'filterCriteria' => json_encode($filterCriteria), + 'schedule' => $schedule + ]; + } + + public function generateSavedReportName(SanitizerInterface $sanitizedParams): string + { + return sprintf( + __('%s Session %s log report for User'), + ucfirst($sanitizedParams->getString('filter')), + ucfirst($sanitizedParams->getString('type')) + ); + } + + /** @inheritdoc */ + public function restructureSavedReportOldJson($json) + { + return $json; + } + + /** @inheritdoc */ + public function getSavedReportResults($json, $savedReport) + { + $metadata = [ + 'periodStart' => $json['metadata']['periodStart'], + 'periodEnd' => $json['metadata']['periodEnd'], + 'generatedOn' => Carbon::createFromTimestamp($savedReport->generatedOn) + ->format(DateFormatHelper::getSystemFormat()), + 'title' => $savedReport->saveAs, + ]; + + // Report result object + return new ReportResult( + $metadata, + $json['table'], + $json['recordsTotal'], + ); + } + + /** @inheritdoc */ + public function getResults(SanitizerInterface $sanitizedParams) + { + if (!$this->getUser()->isSuperAdmin()) { + throw new AccessDeniedException(); + } + + $currentDate = Carbon::now()->startOfDay(); + + // + // From and To Date Selection + // -------------------------- + // Our report has a range filter which determines whether the user has to enter their own from / to dates + // check the range filter first and set from/to dates accordingly. + $reportFilter = $sanitizedParams->getString('reportFilter'); + + // Use the current date as a helper + $now = Carbon::now(); + + switch ($reportFilter) { + // the monthly data starts from yesterday + case 'yesterday': + $fromDt = $now->copy()->startOfDay()->subDay(); + $toDt = $now->copy()->startOfDay(); + break; + + case 'lastweek': + $fromDt = $now->copy()->locale(Translate::GetLocale())->startOfWeek()->subWeek(); + $toDt = $fromDt->copy()->addWeek(); + break; + + case 'lastmonth': + $fromDt = $now->copy()->startOfMonth()->subMonth(); + $toDt = $fromDt->copy()->addMonth(); + break; + + case 'lastyear': + $fromDt = $now->copy()->startOfYear()->subYear(); + $toDt = $fromDt->copy()->addYear(); + break; + + case '': + default: + // Expect dates to be provided. + $fromDt = $sanitizedParams->getDate('fromDt'); + $toDt = $sanitizedParams->getDate('toDt'); + + $fromDt = $fromDt->startOfDay(); + + // If toDt is current date then make it current datetime + if ($toDt->format('Y-m-d') == $currentDate->format('Y-m-d')) { + $toDt = Carbon::now(); + } else { + $toDt = $toDt->addDay()->startOfDay(); + } + + break; + } + + $metadata = [ + 'periodStart' => Carbon::createFromTimestamp($fromDt->toDateTime()->format('U')) + ->format(DateFormatHelper::getSystemFormat()), + 'periodEnd' => Carbon::createFromTimestamp($toDt->toDateTime()->format('U')) + ->format(DateFormatHelper::getSystemFormat()), + ]; + + $type = $sanitizedParams->getString('type'); + + if ($type === 'audit') { + $params = [ + 'fromDt' => $fromDt->format('U'), + 'toDt' => $toDt->format('U'), + ]; + + $sql = 'SELECT + `auditlog`.`logId`, + `auditlog`.`logDate`, + `user`.`userName`, + `auditlog`.`message`, + `auditlog`.`objectAfter`, + `auditlog`.`entity`, + `auditlog`.`entityId`, + `auditlog`.userId, + `auditlog`.ipAddress, + `auditlog`.sessionHistoryId, + `session_history`.userAgent + FROM `auditlog` + INNER JOIN `user` ON `user`.`userId` = `auditlog`.`userId` + INNER JOIN `session_history` ON `session_history`.`sessionId` = `auditlog`.`sessionHistoryId` + WHERE `auditlog`.logDate BETWEEN :fromDt AND :toDt + '; + + if ($sanitizedParams->getInt('userId') !== null) { + $sql .= ' AND `auditlog`.`userId` = :userId'; + $params['userId'] = $sanitizedParams->getInt('userId'); + } + + if ($sanitizedParams->getInt('sessionHistoryId') !== null) { + $sql .= ' AND `auditlog`.`sessionHistoryId` = :sessionHistoryId'; + $params['sessionHistoryId'] = $sanitizedParams->getInt('sessionHistoryId'); + } + + // Sorting? + $sortOrder = $this->gridRenderSort($sanitizedParams); + + if (is_array($sortOrder)) { + $sql .= ' ORDER BY ' . implode(',', $sortOrder); + } + + $rows = []; + foreach ($this->store->select($sql, $params) as $row) { + $auditRecord = $this->auditLogFactory->create()->hydrate($row); + $auditRecord->setUnmatchedProperty( + 'userAgent', + $row['userAgent'] + ); + + // decode for grid view, leave as json for email/preview. + if (!$sanitizedParams->getCheckbox('scheduledReport')) { + $auditRecord->objectAfter = json_decode($auditRecord->objectAfter); + } + + $auditRecord->logDate = Carbon::createFromTimestamp($auditRecord->logDate) + ->format(DateFormatHelper::getSystemFormat()); + + $rows[] = $auditRecord; + } + + return new ReportResult( + $metadata, + $rows, + count($rows), + ); + } else if ($type === 'debug') { + $params = [ + 'fromDt' => $fromDt->format(DateFormatHelper::getSystemFormat()), + 'toDt' => $toDt->format(DateFormatHelper::getSystemFormat()), + ]; + + $sql = 'SELECT + `log`.`logId`, + `log`.`logDate`, + `log`.`runNo`, + `log`.`channel`, + `log`.`page`, + `log`.`function`, + `log`.`type`, + `log`.`message`, + `log`.`userId`, + `log`.`sessionHistoryId`, + `user`.`userName`, + `display`.`displayId`, + `display`.`display`, + `session_history`.ipAddress, + `session_history`.userAgent + FROM `log` + LEFT OUTER JOIN `display` ON `display`.`displayid` = `log`.`displayid` + INNER JOIN `user` ON `user`.`userId` = `log`.`userId` + INNER JOIN `session_history` ON `session_history`.`sessionId` = `log`.`sessionHistoryId` + WHERE `log`.logDate BETWEEN :fromDt AND :toDt + '; + + if ($sanitizedParams->getInt('userId') !== null) { + $sql .= ' AND `log`.`userId` = :userId'; + $params['userId'] = $sanitizedParams->getInt('userId'); + } + + if ($sanitizedParams->getInt('sessionHistoryId') !== null) { + $sql .= ' AND `log`.`sessionHistoryId` = :sessionHistoryId'; + $params['sessionHistoryId'] = $sanitizedParams->getInt('sessionHistoryId'); + } + + // Sorting? + $sortOrder = $this->gridRenderSort($sanitizedParams); + + if (is_array($sortOrder)) { + $sql .= ' ORDER BY ' . implode(',', $sortOrder); + } + + $rows = []; + foreach ($this->store->select($sql, $params) as $row) { + $logRecord = $this->logFactory->createEmpty()->hydrate($row, ['htmlStringProperties' => ['message']]); + $logRecord->setUnmatchedProperty( + 'userAgent', + $row['userAgent'] + ); + + $logRecord->setUnmatchedProperty( + 'ipAddress', + $row['ipAddress'] + ); + + $logRecord->setUnmatchedProperty( + 'userName', + $row['userName'] + ); + + $rows[] = $logRecord; + } + + return new ReportResult( + $metadata, + $rows, + count($rows), + ); + } else { + $params = [ + 'fromDt' => $fromDt->format(DateFormatHelper::getSystemFormat()), + 'toDt' => $toDt->format(DateFormatHelper::getSystemFormat()), + ]; + + $sql = 'SELECT + `session_history`.`sessionId`, + `session_history`.`startTime`, + `session_history`.`userId`, + `session_history`.`userAgent`, + `session_history`.`ipAddress`, + `session_history`.`lastUsedTime`, + `user`.`userName`, + `usertype`.`userType` + FROM `session_history` + LEFT OUTER JOIN `user` ON `user`.`userId` = `session_history`.`userId` + LEFT OUTER JOIN `usertype` ON `usertype`.`userTypeId` = `user`.`userTypeId` + WHERE `session_history`.startTime BETWEEN :fromDt AND :toDt + '; + + if ($sanitizedParams->getInt('userId') !== null) { + $sql .= ' AND `session_history`.`userId` = :userId'; + $params['userId'] = $sanitizedParams->getInt('userId'); + } + + if ($sanitizedParams->getInt('sessionHistoryId') !== null) { + $sql .= ' AND `session_history`.`sessionId` = :sessionHistoryId'; + $params['sessionHistoryId'] = $sanitizedParams->getInt('sessionHistoryId'); + } + + // Sorting? + $sortOrder = $this->gridRenderSort($sanitizedParams); + + if (is_array($sortOrder)) { + $sql .= ' ORDER BY ' . implode(',', $sortOrder); + } + + $rows = []; + foreach ($this->store->select($sql, $params) as $row) { + $sessionRecord = $this->logFactory->createEmpty()->hydrate($row, ['htmlStringProperties' => ['message']]); + $duration = isset($row['lastUsedTime']) + ? date_diff(date_create($row['startTime']), date_create($row['lastUsedTime']))->format('%H:%I:%S') + : null; + + $sessionRecord->setUnmatchedProperty( + 'userAgent', + $row['userAgent'] + ); + + $sessionRecord->setUnmatchedProperty( + 'ipAddress', + $row['ipAddress'] + ); + + $sessionRecord->setUnmatchedProperty( + 'userName', + $row['userName'] + ); + + $sessionRecord->setUnmatchedProperty( + 'endTime', + $row['lastUsedTime'] + ); + + $sessionRecord->setUnmatchedProperty( + 'duration', + $duration + ); + + $rows[] = $sessionRecord; + } + + return new ReportResult( + $metadata, + $rows, + count($rows), + ); + } + } +} diff --git a/lib/Report/TimeConnected.php b/lib/Report/TimeConnected.php index 64080a8d9f..da3eb0e07a 100644 --- a/lib/Report/TimeConnected.php +++ b/lib/Report/TimeConnected.php @@ -1,8 +1,8 @@ 0) { - $query .= ' WHERE display.displayID IN (' . implode(',', $displayIds) . ') '; + $query .= ' AND display.displayID IN (' . implode(',', $displayIds) . ') '; } $query .= ' diff --git a/lib/Report/TimeDisconnectedSummary.php b/lib/Report/TimeDisconnectedSummary.php index ce261f2962..78d6ce0c6f 100644 --- a/lib/Report/TimeDisconnectedSummary.php +++ b/lib/Report/TimeDisconnectedSummary.php @@ -1,6 +1,6 @@ getString('tags'); $onlyLoggedIn = $sanitizedParams->getCheckbox('onlyLoggedIn') == 1; + $groupBy = $sanitizedParams->getString('groupBy'); $currentDate = Carbon::now()->startOfDay(); @@ -281,7 +282,8 @@ public function getResults(SanitizerInterface $sanitizedParams) ON display.displayId = `displayevent`.displayId WHERE `start` <= :end AND IFNULL(`end`, :end) >= :start - AND :end <= UNIX_TIMESTAMP(NOW()) '; + AND :end <= UNIX_TIMESTAMP(NOW()) + AND `displayevent`.eventTypeId = 1 '; if (count($displayIds) > 0) { $body .= 'AND display.displayId IN (' . implode(',', $displayIds) . ') '; @@ -339,6 +341,10 @@ public function getResults(SanitizerInterface $sanitizedParams) $displayBody = 'FROM `display` '; + if ($groupBy === 'displayGroup') { + $displaySelect .= ', displaydg.displayGroup, displaydg.displayGroupId '; + } + if ($tags != '') { $displayBody .= 'INNER JOIN `lkdisplaydg` ON lkdisplaydg.DisplayID = display.displayid @@ -346,12 +352,24 @@ public function getResults(SanitizerInterface $sanitizedParams) ON displaygroup.displaygroupId = lkdisplaydg.displaygroupId AND `displaygroup`.isDisplaySpecific = 1 '; } + + // Grouping Option + if ($groupBy === 'displayGroup') { + $displayBody .= 'INNER JOIN `lkdisplaydg` AS linkdg + ON linkdg.DisplayID = display.displayid + INNER JOIN `displaygroup` AS displaydg + ON displaydg.displaygroupId = linkdg.displaygroupId + AND `displaydg`.isDisplaySpecific = 0 '; + } + $displayBody .= 'WHERE 1 = 1 '; if (count($displayIds) > 0) { $displayBody .= 'AND display.displayId IN (' . implode(',', $displayIds) . ') '; } + $tagParams = []; + if ($tags != '') { if (trim($tags) === '--no-tag') { $displayBody .= ' AND `displaygroup`.displaygroupId NOT IN ( @@ -382,9 +400,9 @@ public function getResults(SanitizerInterface $sanitizedParams) } if ($operator === '=') { - $params['tags' . $i] = $tag; + $tagParams['tags' . $i] = $tag; } else { - $params['tags' . $i] = '%' . $tag . '%'; + $tagParams['tags' . $i] = '%' . $tag . '%'; } } @@ -400,6 +418,14 @@ public function getResults(SanitizerInterface $sanitizedParams) GROUP BY display.display, display.displayId '; + if ($tags != '') { + $displayBody .= ', displaygroup.displayGroupId '; + } + + if ($groupBy === 'displayGroup') { + $displayBody .= ', displaydg.displayGroupId '; + } + // Sorting? $sortOrder = $this->gridRenderSort($sanitizedParams); @@ -413,7 +439,7 @@ public function getResults(SanitizerInterface $sanitizedParams) $rows = []; // Retrieve the disconnected/connected time from the $disconnectedDisplays array into displays - foreach ($this->store->select($displaySql, []) as $displayRow) { + foreach ($this->store->select($displaySql, $tagParams) as $displayRow) { $sanitizedDisplayRow = $this->sanitizer->getSanitizer($displayRow); $entry = []; $displayId = $sanitizedDisplayRow->getInt(('displayId')); @@ -422,6 +448,15 @@ public function getResults(SanitizerInterface $sanitizedParams) $entry['timeDisconnected'] = $disconnectedDisplays[$displayId]['timeDisconnected'] ?? 0 ; $entry['timeConnected'] = $disconnectedDisplays[$displayId]['timeConnected'] ?? round(($toDt->format('U') - $fromDt->format('U')) / $divisor, 2); $entry['postUnits'] = $postUnits; + $entry['displayGroupId'] = $sanitizedDisplayRow->getInt(('displayGroupId')); + $entry['displayGroup'] = $sanitizedDisplayRow->getString(('displayGroup')); + $entry['avgTimeDisconnected'] = 0; + $entry['avgTimeConnected'] = 0; + $entry['availabilityPercentage'] = $this->getAvailabilityPercentage( + $entry['timeConnected'], + $entry['timeDisconnected'] + ) . '%'; + $rows[] = $entry; } @@ -434,10 +469,16 @@ public function getResults(SanitizerInterface $sanitizedParams) $availabilityLabels = []; $postUnits = ''; + if ($groupBy === 'displayGroup') { + $rows = $this->getByDisplayGroup($rows, $sanitizedParams->getIntArray('displayGroupId', ['default' => []])); + } + foreach ($rows as $row) { $availabilityData[] = $row['timeDisconnected']; $availabilityDataConnected[] = $row['timeConnected']; - $availabilityLabels[] = $row['display']; + $availabilityLabels[] = ($groupBy === 'displayGroup') + ? $row['displayGroup'] + : $row['display']; $postUnits = $row['postUnits']; } @@ -499,4 +540,63 @@ public function getResults(SanitizerInterface $sanitizedParams) $chart ); } + + /** + * Get the Availability Percentage + * @param float $connectedTime + * @param float $disconnectedTime + * @return float + */ + private function getAvailabilityPercentage(float $connectedTime, float $disconnectedTime) : float + { + $connectedPercentage = $connectedTime/($connectedTime + $disconnectedTime ?: 1); + + return abs(round($connectedPercentage * 100, 2)); + } + + /** + * Get the accumulated value by display groups + * @param array $rows + * @param array $displayGroupIds + * @return array + */ + private function getByDisplayGroup(array $rows, array $displayGroupIds = []) : array + { + $data = []; + $displayGroups = []; + + // Get the accumulated values by displayGroupId + foreach ($rows as $row) { + $displayGroupId = $row['displayGroupId']; + + if (isset($displayGroups[$displayGroupId])) { + $displayGroups[$displayGroupId]['timeDisconnected'] += $row['timeDisconnected']; + $displayGroups[$displayGroupId]['timeConnected'] += $row['timeConnected']; + $displayGroups[$displayGroupId]['count'] += 1; + } else { + $row['count'] = 1; + $displayGroups[$displayGroupId] = $row; + } + } + + // Get all display groups or selected display groups only + foreach ($displayGroups as $displayGroup) { + if (!$displayGroupIds || in_array($displayGroup['displayGroupId'], $displayGroupIds)) { + $displayGroup['timeConnected'] = round($displayGroup['timeConnected'], 2); + $displayGroup['timeDisconnected'] = round($displayGroup['timeDisconnected'], 2); + $displayGroup['availabilityPercentage'] = $this->getAvailabilityPercentage( + $displayGroup['timeConnected'], + $displayGroup['timeDisconnected'] + ) . '%'; + + // Calculate the average values + $displayGroup['avgTimeConnected'] = round($displayGroup['timeConnected'] / $displayGroup['count'], 2); + $displayGroup['avgTimeDisconnected'] = round($displayGroup['timeDisconnected'] / $displayGroup['count'], 2); + + $data[] = $displayGroup; + } + } + + return $data; + } } diff --git a/lib/Service/DisplayNotifyService.php b/lib/Service/DisplayNotifyService.php index 2db6b42545..2501fa33e6 100644 --- a/lib/Service/DisplayNotifyService.php +++ b/lib/Service/DisplayNotifyService.php @@ -1,6 +1,6 @@ log->debug('notifyByDataSetId: dataSetId: ' . $dataSetId); - if (in_array('dataSet', $this->keysProcessed)) { + if (in_array('dataSet_' . $dataSetId, $this->keysProcessed)) { $this->log->debug('notifyByDataSetId: already processed.'); return; } @@ -407,6 +407,33 @@ public function notifyByDataSetId($dataSetId) $this->store->update('UPDATE `task` SET `runNow` = 1 WHERE `class` LIKE :taskClassLike', [ 'taskClassLike' => '%WidgetSyncTask%', ]); + + // Query the schedule for any data connectors. + // This is a simple test to see if there are ever any schedules for this dataSetId + // TODO: this could be improved. + $sql = ' + SELECT DISTINCT display.displayId + FROM `schedule` + INNER JOIN `lkscheduledisplaygroup` + ON `lkscheduledisplaygroup`.eventId = `schedule`.eventId + INNER JOIN `lkdgdg` + ON `lkdgdg`.parentId = `lkscheduledisplaygroup`.displayGroupId + INNER JOIN `lkdisplaydg` + ON `lkdisplaydg`.DisplayGroupID = `lkdgdg`.childId + INNER JOIN `display` + ON `lkdisplaydg`.DisplayID = `display`.displayID + WHERE `schedule`.dataSetId = :dataSetId + '; + + foreach ($this->store->select($sql, ['dataSetId' => $dataSetId]) as $row) { + $this->displayIds[] = $row['displayId']; + + if ($this->collectRequired) { + $this->displayIdsRequiringActions[] = $row['displayId']; + } + } + + $this->keysProcessed[] = 'dataSet_' . $dataSetId; } /** @inheritdoc */ diff --git a/lib/Service/LogService.php b/lib/Service/LogService.php index eda228990b..f11386900c 100644 --- a/lib/Service/LogService.php +++ b/lib/Service/LogService.php @@ -63,6 +63,16 @@ class LogService implements LogServiceInterface */ private $_auditLogStatement; + /** + * The History session id. + */ + private $sessionHistoryId = 0; + + /** + * The API requestId. + */ + private $requestId = 0; + /** * @inheritdoc */ @@ -94,6 +104,34 @@ public function setUserId($userId) $this->userId = $userId; } + /** + * @inheritdoc + */ + public function setSessionHistoryId($sessionHistoryId) + { + $this->sessionHistoryId = $sessionHistoryId; + } + + public function setRequestId($requestId) + { + $this->requestId = $requestId; + } + + public function getUserId(): ?int + { + return $this->userId; + } + + public function getSessionHistoryId(): ?int + { + return $this->sessionHistoryId; + } + + public function getRequestId(): ?int + { + return $this->requestId; + } + /** * @inheritdoc */ @@ -108,11 +146,12 @@ public function setMode($mode) public function audit($entity, $entityId, $message, $object) { $this->debug(sprintf( - 'Audit Trail message recorded for %s with id %d. Message: %s from IP %s', + 'Audit Trail message recorded for %s with id %d. Message: %s from IP %s, session %d', $entity, $entityId, $message, - $this->ipAddress + $this->ipAddress, + $this->sessionHistoryId )); if ($this->_auditLogStatement == null) { @@ -120,8 +159,28 @@ public function audit($entity, $entityId, $message, $object) // audit log should rollback on failure. $dbh = PdoStorageService::newConnection('default'); $this->_auditLogStatement = $dbh->prepare(' - INSERT INTO `auditlog` (`logDate`, `userId`, `entity`, `message`, `entityId`, `objectAfter`, `ipAddress`) - VALUES (:logDate, :userId, :entity, :message, :entityId, :objectAfter, :ipAddress) + INSERT INTO `auditlog` ( + `logDate`, + `userId`, + `entity`, + `message`, + `entityId`, + `objectAfter`, + `ipAddress`, + `sessionHistoryId`, + `requestId` + ) + VALUES ( + :logDate, + :userId, + :entity, + :message, + :entityId, + :objectAfter, + :ipAddress, + :sessionHistoryId, + :requestId + ) '); } @@ -140,7 +199,9 @@ public function audit($entity, $entityId, $message, $object) 'message' => $message, 'entityId' => $entityId, 'ipAddress' => $this->ipAddress, - 'objectAfter' => $object + 'objectAfter' => $object, + 'sessionHistoryId' => $this->sessionHistoryId, + 'requestId' => $this->requestId ]); } diff --git a/lib/Service/LogServiceInterface.php b/lib/Service/LogServiceInterface.php index 57674625bf..6ecd6badd7 100644 --- a/lib/Service/LogServiceInterface.php +++ b/lib/Service/LogServiceInterface.php @@ -45,6 +45,10 @@ public function __construct($logger, $mode = 'production'); */ public function getLoggerInterface(): LoggerInterface; + public function getUserId(): ?int; + public function getSessionHistoryId(): ?int; + public function getRequestId(): ?int; + /** * Set the user Id * @param int $userId @@ -58,6 +62,20 @@ public function setUserId($userId); */ public function setIpAddress($ip); + /** + * Set history session id + * @param $sessionHistoryId + * @return mixed + */ + public function setSessionHistoryId($sessionHistoryId); + + /** + * Set API requestId + * @param $requestId + * @return mixed + */ + public function setRequestId($requestId); + /** * @param $mode * @return mixed @@ -141,4 +159,4 @@ public static function resolveLogLevel($level); * @param $level */ public function setLevel($level); -} \ No newline at end of file +} diff --git a/lib/Service/MediaService.php b/lib/Service/MediaService.php index 7fb0e601ee..d3d6c9cb88 100644 --- a/lib/Service/MediaService.php +++ b/lib/Service/MediaService.php @@ -304,6 +304,10 @@ public static function ensureLibraryExists($libraryFolder) mkdir($libraryFolder . '/assets', 0777, true); } + if (!file_exists($libraryFolder . '/data_connectors')) { + mkdir($libraryFolder . '/data_connectors', 0777, true); + } + // Check that we are now writable - if not then error if (!is_writable($libraryFolder)) { throw new ConfigurationException(__('Library not writable')); diff --git a/lib/Widget/DataType/Article.php b/lib/Widget/DataType/Article.php index 0ea92c9636..9096367573 100644 --- a/lib/Widget/DataType/Article.php +++ b/lib/Widget/DataType/Article.php @@ -1,6 +1,6 @@ addField('link', __('Link'), 'text') ->addField('date', __('Created Date'), 'datetime') ->addField('publishedDate', __('Published Date'), 'datetime') - ->addField('image', __('Image'), 'text'); + ->addField('image', __('Image'), 'image'); return $dataType; } } diff --git a/lib/Widget/DataType/Forecast.php b/lib/Widget/DataType/Forecast.php index 491ec597a8..06b1fd64ed 100644 --- a/lib/Widget/DataType/Forecast.php +++ b/lib/Widget/DataType/Forecast.php @@ -1,6 +1,6 @@ $this->uvIndex, 'visibility' => $this->visibility, 'ozone' => $this->ozone, + 'location' => $this->location, 'temperatureUnit' => $this->temperatureUnit, 'windSpeedUnit' => $this->windSpeedUnit, 'visibilityDistanceUnit' => $this->visibilityDistanceUnit @@ -150,6 +152,7 @@ public function getDefinition(): DataType ->addField('uvIndex', 'Uv Index', 'number') ->addField('visibility', 'Visibility', 'number') ->addField('ozone', 'Ozone', 'number') + ->addField('location', 'Location', 'text') ->addField('temperatureUnit', 'Temperature Unit', 'text') ->addField('windSpeedUnit', 'WindSpeed Unit', 'text') ->addField('visibilityDistanceUnit', 'VisibilityDistance Unit', 'text'); diff --git a/lib/Widget/DataType/SocialMedia.php b/lib/Widget/DataType/SocialMedia.php index 6614a32b58..5e44b5014c 100644 --- a/lib/Widget/DataType/SocialMedia.php +++ b/lib/Widget/DataType/SocialMedia.php @@ -62,7 +62,7 @@ public function getDefinition(): DataType $dataType->id = self::$NAME; $dataType->name = __('Social Media'); $dataType - ->addField('text', __('Text'), 'text') + ->addField('text', __('Text'), 'text', true) ->addField('user', __('User'), 'text') ->addField('userProfileImage', __('Profile Image'), 'image') ->addField('userProfileImageMini', __('Mini Profile Image'), 'image') diff --git a/lib/Widget/Definition/DataType.php b/lib/Widget/Definition/DataType.php index c0d35da126..f699761232 100644 --- a/lib/Widget/Definition/DataType.php +++ b/lib/Widget/Definition/DataType.php @@ -33,12 +33,13 @@ class DataType implements \JsonSerializable /** @var \Xibo\Widget\Definition\Field[] */ public $fields = []; - public function addField(string $id, string $title, string $type): DataType + public function addField(string $id, string $title, string $type, bool $isRequired = false): DataType { $field = new Field(); $field->id = $id; $field->type = $type; $field->title = $title; + $field->isRequired = $isRequired; $this->fields[] = $field; return $this; } diff --git a/lib/Widget/Definition/Element.php b/lib/Widget/Definition/Element.php index 9c5ac232bc..a5de1c9d5f 100644 --- a/lib/Widget/Definition/Element.php +++ b/lib/Widget/Definition/Element.php @@ -35,6 +35,7 @@ class Element implements \JsonSerializable public $height; public $rotation; public $layer; + public $elementGroupId; public $properties = []; /** @inheritDoc */ @@ -48,6 +49,7 @@ public function jsonSerialize(): array 'height' => $this->height, 'rotation' => $this->rotation, 'layer' => $this->layer, + 'elementGroupId' => $this->elementGroupId, 'properties' => $this->properties ]; } diff --git a/lib/Widget/Definition/ElementGroup.php b/lib/Widget/Definition/ElementGroup.php new file mode 100644 index 0000000000..56b7e7b2f9 --- /dev/null +++ b/lib/Widget/Definition/ElementGroup.php @@ -0,0 +1,56 @@ +. + */ + +namespace Xibo\Widget\Definition; + +/** + * A class representing an instance of a group of elements + * @SWG\Definition() + */ +class ElementGroup implements \JsonSerializable +{ + public $id; + public $top; + public $left; + public $width; + public $height; + public $layer; + public $title; + public $slot; + public $pinSlot; + + /** @inheritDoc */ + public function jsonSerialize(): array + { + return [ + 'id' => $this->id, + 'top' => $this->top, + 'left' => $this->left, + 'width' => $this->width, + 'height' => $this->height, + 'layer' => $this->layer, + 'title' => $this->title, + 'slot' => $this->slot, + 'pinSlot' => $this->pinSlot + ]; + } +} diff --git a/lib/Widget/Definition/Field.php b/lib/Widget/Definition/Field.php index be8c0000b4..f91325d64f 100644 --- a/lib/Widget/Definition/Field.php +++ b/lib/Widget/Definition/Field.php @@ -30,6 +30,7 @@ class Field implements \JsonSerializable public $id; public $type; public $title; + public $isRequired; /** @inheritDoc */ public function jsonSerialize(): array @@ -38,6 +39,7 @@ public function jsonSerialize(): array 'id' => $this->id, 'type' => $this->type, 'title' => $this->title, + 'isRequired' => $this->isRequired, ]; } } diff --git a/lib/Widget/Definition/Property.php b/lib/Widget/Definition/Property.php index 40ff8c7ca0..db953d6d8e 100644 --- a/lib/Widget/Definition/Property.php +++ b/lib/Widget/Definition/Property.php @@ -93,6 +93,9 @@ class Property implements \JsonSerializable /** @var bool Should the property be included in the XLF? */ public $includeInXlf = false; + /** @var bool Should the property be sent into Elements */ + public $sendToElements = false; + /** @var bool Should the default value be written out to widget options */ public $saveDefault = false; @@ -142,6 +145,7 @@ public function jsonSerialize(): array 'parseTranslations' => $this->parseTranslations, 'saveDefault' => $this->saveDefault, 'dependsOn' => $this->dependsOn, + 'sendToElements' => $this->sendToElements, ]; } @@ -275,6 +279,23 @@ public function validate(array $properties, string $stage): Property } break; + case 'windowsPath': + // Ensure the path is a valid Windows file path ending in a file, not a directory + $windowsPathRegex = '/^(?P[A-Za-z]:)(?P(?:\\\\[^<>:"\/\\\\|?*\r\n]+)+)(?P\\\\[^<>:"\/\\\\|?*\r\n]+)$/'; + + // Check if the test value is not empty and does not match the regular expression + if (!empty($testValue) + && !preg_match($windowsPathRegex, $testValue) + ) { + // Throw an InvalidArgumentException if the test value is not a valid Windows path + throw new InvalidArgumentException( + $message ?? sprintf(__('%s must be a valid Windows path'), $this->title), + $this->id + ); + } + + break; + case 'interval': if (!empty($testValue)) { // Try to create a date interval from it diff --git a/lib/Widget/Definition/Stencil.php b/lib/Widget/Definition/Stencil.php index 5ea0433229..732012d97b 100644 --- a/lib/Widget/Definition/Stencil.php +++ b/lib/Widget/Definition/Stencil.php @@ -56,6 +56,12 @@ class Stencil implements \JsonSerializable /** @var double Optional positional information if contained as part of an element group */ public $gapBetweenHbs; + /** + * @SWG\Property(description="An array of element groups") + * @var \Xibo\Widget\Definition\ElementGroup[] + */ + public $elementGroups = []; + /** @inheritDoc */ public function jsonSerialize(): array { @@ -67,7 +73,8 @@ public function jsonSerialize(): array 'width' => $this->width, 'height' => $this->height, 'gapBetweenHbs' => $this->gapBetweenHbs, - 'elements' => $this->elements + 'elements' => $this->elements, + 'elementGroups' => $this->elementGroups ]; } } diff --git a/lib/Widget/Provider/DataProvider.php b/lib/Widget/Provider/DataProvider.php index d86321eb1b..53b5dff5fb 100644 --- a/lib/Widget/Provider/DataProvider.php +++ b/lib/Widget/Provider/DataProvider.php @@ -186,7 +186,7 @@ public function isPreview(): bool /** * @inheritDoc */ - public function getWidgetId() : int + public function getWidgetId(): int { return $this->widget->widgetId; } diff --git a/lib/Widget/Provider/DataProviderInterface.php b/lib/Widget/Provider/DataProviderInterface.php index 4fd54e61d3..478bf32f84 100644 --- a/lib/Widget/Provider/DataProviderInterface.php +++ b/lib/Widget/Provider/DataProviderInterface.php @@ -81,7 +81,7 @@ public function isPreview(): bool; * Get the ID for this Widget * @return int */ - public function getWidgetId() : int; + public function getWidgetId(): int; /** * Get a configured Guzzle client diff --git a/lib/Widget/Render/WidgetHtmlRenderer.php b/lib/Widget/Render/WidgetHtmlRenderer.php index e6620ca80b..5492a3ee60 100644 --- a/lib/Widget/Render/WidgetHtmlRenderer.php +++ b/lib/Widget/Render/WidgetHtmlRenderer.php @@ -25,6 +25,7 @@ use Carbon\Carbon; use FilesystemIterator; use Illuminate\Support\Str; +use Psr\Http\Message\RequestInterface; use Psr\Log\LoggerInterface; use Psr\Log\NullLogger; use Slim\Views\Twig; @@ -269,10 +270,15 @@ public function renderOrCache( * @param \Xibo\Entity\Region $region * @param string $output * @param callable $urlFor + * @param \Psr\Http\Message\ServerRequestInterface $request * @return string */ - public function decorateForPreview(Region $region, string $output, callable $urlFor): string - { + public function decorateForPreview( + Region $region, + string $output, + callable $urlFor, + RequestInterface $request + ): string { $matches = []; preg_match_all('/\[\[(.*?)\]\]/', $output, $matches); foreach ($matches[1] as $match) { @@ -319,7 +325,18 @@ public function decorateForPreview(Region $region, string $output, callable $url ); } } - return $output; + + // Handle CSP in preview + $html = new \DOMDocument(); + $html->loadHTML($output, LIBXML_NOERROR | LIBXML_NOWARNING | LIBXML_SCHEMA_CREATE); + foreach ($html->getElementsByTagName('script') as $node) { + // We add this requests cspNonce to every script tag + if ($node instanceof \DOMElement) { + $node->setAttribute('nonce', $request->getAttribute('cspNonce')); + } + } + + return $html->saveHTML(); } /** @@ -481,11 +498,9 @@ private function render( $widget->isValid = 0; } + // Parse out some common properties. $moduleLanguage = null; - $translator = null; - // Check if a language property is defined against the module - // Note: We are using the language defined against the module and not from the module template foreach ($module->properties as $property) { if ($property->type === 'languageSelector' && !empty($property->value)) { $moduleLanguage = $property->value; @@ -493,6 +508,12 @@ private function render( } } + // Get an array of the modules property values. + $modulePropertyValues = $module->getPropertyValues(); + + // Configure a translator for the module + // Note: We are using the language defined against the module and not from the module template + $translator = null; if ($moduleLanguage !== null) { $translator = Translate::getTranslationsFromLocale($moduleLanguage); } @@ -502,7 +523,7 @@ private function render( 'widgetId' => $widget->widgetId, 'templateId' => $templateId, 'sample' => $module->sampleData, - 'properties' => $module->getPropertyValues(), + 'properties' => $modulePropertyValues, 'isValid' => $widget->isValid === 1, 'isRepeatData' => $widget->getOptionValue('isRepeatData', 1) === 1, 'duration' => $widget->useDuration ? $widget->duration : $module->defaultDuration, @@ -589,8 +610,6 @@ private function render( // What does our module have if ($module->stencil !== null) { // Stencils have access to any module properties - $modulePropertyValues = $module->getPropertyValues(); - if ($module->stencil->twig !== null) { $twig['twig'][] = $this->twig->fetchFromString( $this->decorateTranslations($module->stencil->twig, null), @@ -627,6 +646,16 @@ private function render( // Elements will be JSON $widgetElements = json_decode($widgetElements, true); + // Are any of the module properties marked for sending to elements? + $modulePropertiesToSend = []; + if (count($widgetElements) > 0) { + foreach ($module->properties as $property) { + if ($property->sendToElements) { + $modulePropertiesToSend[$property->id] = $modulePropertyValues[$property->id] ?? null; + } + } + } + // Join together the template properties for this element, and the element properties foreach ($widgetElements as $widgetIndex => $widgetElement) { // Assert the widgetId @@ -650,6 +679,12 @@ private function render( true ) ); + + // Update any properties which match on the element + foreach ($modulePropertiesToSend as $propertyToSend => $valueToSend) { + $widgetElements[$widgetIndex]['elements'] + [$elementIndex]['properties'][$propertyToSend] = $valueToSend; + } } } diff --git a/lib/Widget/RssProvider.php b/lib/Widget/RssProvider.php index 22812a4887..c9a746121d 100644 --- a/lib/Widget/RssProvider.php +++ b/lib/Widget/RssProvider.php @@ -1,6 +1,6 @@ setCacheTtl($dataProvider->getProperty('updateInterval', 60) * 60); $dataProvider->setIsHandled(); - } catch (RequestException $requestException) { + } catch (GuzzleException $requestException) { // Log and return empty? $this->getLog()->error('Unable to get feed: ' . $uri . ', e: ' . $requestException->getMessage()); diff --git a/lib/XMR/ScheduleCriteriaUpdateAction.php b/lib/XMR/ScheduleCriteriaUpdateAction.php new file mode 100644 index 0000000000..5b703fff7e --- /dev/null +++ b/lib/XMR/ScheduleCriteriaUpdateAction.php @@ -0,0 +1,67 @@ +. + */ + +namespace Xibo\XMR; + +/** + * Class ScheduleCriteriaUpdateAction + * @package Xibo\XMR + */ +class ScheduleCriteriaUpdateAction extends PlayerAction +{ + /** + * @var array + */ + public $criteriaUpdates = []; + + public function __construct() + { + $this->setQos(10); + } + + /** + * Set criteria updates + * @param array $criteriaUpdates an array of criteria updates + * @return $this + */ + public function setCriteriaUpdates(array $criteriaUpdates) + { + $this->criteriaUpdates = $criteriaUpdates; + return $this; + } + + /** + * @inheritdoc + */ + public function getMessage(): string + { + $this->action = 'criteriaUpdate'; + + // Ensure criteriaUpdates array is not empty + if (empty($this->criteriaUpdates)) { + // Throw an exception if criteriaUpdates is not provided + throw new PlayerActionException(__('Criteria updates not provided.')); + } + + return $this->serializeToJson(['criteriaUpdates']); + } +} diff --git a/lib/XTR/EmailNotificationsTask.php b/lib/XTR/EmailNotificationsTask.php index f581cb610c..28c87bace3 100644 --- a/lib/XTR/EmailNotificationsTask.php +++ b/lib/XTR/EmailNotificationsTask.php @@ -1,8 +1,8 @@ view = $container->get('view'); $this->userNotificationFactory = $container->get('userNotificationFactory'); + $this->userGroupFactory = $container->get('userGroupFactory'); return $this; } @@ -77,7 +83,10 @@ private function processQueue() $mail = new \PHPMailer\PHPMailer\PHPMailer(); $this->log->debug('Sending Notification email to ' . $notification->email); - $mail->addAddress($notification->email); + + if ($this->checkEmailPreferences($notification)) { + $mail->addAddress($notification->email); + } // System notifications, add mail_to to addresses if set. if ($notification->isSystem == 1) { @@ -170,7 +179,10 @@ private function generateEmailBody($subject, $body) ob_start(); // Render the template - echo $this->view->fetch('email-template.twig', ['config' => $this->config, 'subject' => $subject, 'body' => $body]); + echo $this->view->fetch( + 'email-template.twig', + ['config' => $this->config, 'subject' => $subject, 'body' => $body] + ); $body = ob_get_contents(); @@ -178,4 +190,16 @@ private function generateEmailBody($subject, $body) return $body; } + + /** + * Should we send email to this user? + * check relevant flag for the notification type on the user group. + * @param UserNotification $notification + * @return bool + */ + private function checkEmailPreferences(UserNotification $notification) + { + $groupType = $notification->getTypeForGroup(); + return $this->userGroupFactory->checkNotificationEmailPreferences($notification->userId, $groupType); + } } diff --git a/lib/XTR/MaintenanceRegularTask.php b/lib/XTR/MaintenanceRegularTask.php index 511e5e1823..e5ed4e3631 100644 --- a/lib/XTR/MaintenanceRegularTask.php +++ b/lib/XTR/MaintenanceRegularTask.php @@ -1,6 +1,6 @@ config->getSetting('LIBRARY_SIZE_LIMIT_KB') * 1024; - if ($libraryLimit <= 0) + if ($libraryLimit <= 0) { return; + } $results = $this->store->select('SELECT IFNULL(SUM(FileSize), 0) AS SumSize FROM media', []); @@ -324,15 +325,26 @@ private function checkLibraryUsage() // Create a notification if we don't already have one today for this display. $subject = __('Library allowance exceeded'); $date = Carbon::now(); - - if (count($this->notificationFactory->getBySubjectAndDate($subject, $date->startOfDay()->format('U'), $date->addDay()->startOfDay()->format('U'))) <= 0) { - - $body = __(sprintf('Library allowance of %s exceeded. Used %s', ByteFormatter::format($libraryLimit), ByteFormatter::format($size))); + $notifications = $this->notificationFactory->getBySubjectAndDate( + $subject, + $date->startOfDay()->format('U'), + $date->addDay()->startOfDay()->format('U') + ); + + if (count($notifications) <= 0) { + $body = __( + sprintf( + 'Library allowance of %s exceeded. Used %s', + ByteFormatter::format($libraryLimit), + ByteFormatter::format($size) + ) + ); $notification = $this->notificationFactory->createSystemNotification( $subject, $body, - Carbon::now() + Carbon::now(), + 'library' ); $notification->save(); @@ -370,17 +382,29 @@ private function checkOverRequestedFiles() foreach ($items as $item) { $sanitizedItem = $this->getSanitizer($item); // Create a notification if we don't already have one today for this display. - $subject = sprintf(__('%s is downloading %d files too many times'), $sanitizedItem->getString('display'), $sanitizedItem->getInt('countFiles')); + $subject = sprintf( + __('%s is downloading %d files too many times'), + $sanitizedItem->getString('display'), + $sanitizedItem->getInt('countFiles') + ); $date = Carbon::now(); - - if (count($this->notificationFactory->getBySubjectAndDate($subject, $date->startOfDay()->format('U'),$date->addDay()->startOfDay()->format('U'))) <= 0) { - - $body = sprintf(__('Please check the bandwidth graphs and display status for %s to investigate the issue.'), $sanitizedItem->getString('display')); + $notifications = $this->notificationFactory->getBySubjectAndDate( + $subject, + $date->startOfDay()->format('U'), + $date->addDay()->startOfDay()->format('U') + ); + + if (count($notifications) <= 0) { + $body = sprintf( + __('Please check the bandwidth graphs and display status for %s to investigate the issue.'), + $sanitizedItem->getString('display') + ); $notification = $this->notificationFactory->createSystemNotification( $subject, $body, - Carbon::now() + Carbon::now(), + 'display' ); $display = $this->displayFactory->getById($item['displayId']); @@ -410,7 +434,10 @@ private function updatePlaylistDurations() $playlist->setModuleFactory($this->moduleFactory); $playlist->updateDuration(); } catch (GeneralException $xiboException) { - $this->log->error('Maintenance cannot update Playlist ' . $playlist->playlistId . ', ' . $xiboException->getMessage()); + $this->log->error( + 'Maintenance cannot update Playlist ' . $playlist->playlistId . + ', ' . $xiboException->getMessage() + ); } } @@ -425,7 +452,10 @@ private function publishLayouts() { $this->runMessage .= '## ' . __('Publishing layouts with set publish dates') . PHP_EOL; - $layouts = $this->layoutFactory->query(null, ['havePublishDate' => 1, 'disableUserCheck' => 1, 'excludeTemplates' => -1]); + $layouts = $this->layoutFactory->query( + null, + ['havePublishDate' => 1, 'disableUserCheck' => 1, 'excludeTemplates' => -1] + ); // check if we have any layouts with set publish date if (count($layouts) > 0) { @@ -441,7 +471,11 @@ private function publishLayouts() $draft = $this->layoutFactory->getByParentId($layout->layoutId); if ($draft->status === Status::$STATUS_INVALID && isset($draft->statusMessage) - && (count($draft->getStatusMessage()) > 1 || count($draft->getStatusMessage()) === 1 && !$draft->checkForEmptyRegion()) + && ( + count($draft->getStatusMessage()) > 1 || + count($draft->getStatusMessage()) === 1 && + !$draft->checkForEmptyRegion() + ) ) { throw new GeneralException(json_encode($draft->statusMessage)); } @@ -455,24 +489,40 @@ private function publishLayouts() } finally { $this->layoutFactory->concurrentRequestRelease($layout, true); } - $this->log->info('Published layout ID ' . $layout->layoutId . ' new layout id is ' . $draft->layoutId); + $this->log->info( + 'Published layout ID ' . $layout->layoutId . ' new layout id is ' . $draft->layoutId + ); } catch (GeneralException $e) { - $this->log->error('Error publishing layout ID ' . $layout->layoutId . ' with name ' . $layout->layout . ' Failed with message: ' . $e->getMessage()); + $this->log->error( + 'Error publishing layout ID ' . $layout->layoutId . + ' with name ' . $layout->layout . ' Failed with message: ' . $e->getMessage() + ); // create a notification $subject = __(sprintf('Error publishing layout ID %d', $layout->layoutId)); $date = Carbon::now(); - if (count($this->notificationFactory->getBySubjectAndDate($subject, - $date->startOfDay()->format('U'), - $date->addDay()->startOfDay()->format('U'))) <= 0) { - - $body = __(sprintf('Publishing layout ID %d with name %s failed. With message %s', $layout->layoutId, $layout->layout, $e->getMessage())); + $notifications = $this->notificationFactory->getBySubjectAndDate( + $subject, + $date->startOfDay()->format('U'), + $date->addDay()->startOfDay()->format('U') + ); + + if (count($notifications) <= 0) { + $body = __( + sprintf( + 'Publishing layout ID %d with name %s failed. With message %s', + $layout->layoutId, + $layout->layout, + $e->getMessage() + ) + ); $notification = $this->notificationFactory->createSystemNotification( $subject, $body, - Carbon::now() + Carbon::now(), + 'layout' ); $notification->save(); @@ -480,7 +530,9 @@ private function publishLayouts() } } } else { - $this->log->debug('Layouts with published date were found, they are set to publish later than current time'); + $this->log->debug( + 'Layouts with published date were found, they are set to publish later than current time' + ); } } } else { diff --git a/lib/XTR/RemoteDataSetFetchTask.php b/lib/XTR/RemoteDataSetFetchTask.php index b0f8da54dd..0bdd16e585 100644 --- a/lib/XTR/RemoteDataSetFetchTask.php +++ b/lib/XTR/RemoteDataSetFetchTask.php @@ -99,6 +99,20 @@ public function run() continue; } + // Get all columns + $columns = $dataSet->getColumn(); + + // Filter columns where dataSetColumnType is "Remote" + $filteredColumns = array_filter($columns, function ($column) { + return $column->dataSetColumnTypeId == '3'; + }); + + // Check if there are any remote columns defined in the dataset + if (count($filteredColumns) === 0) { + $this->log->info('Skipping dataSet ' . $dataSet->dataSetId . ': No remote columns defined in the dataset.'); + continue; + } + $this->log->debug('Comparing run time ' . $runTime . ' to next sync time ' . $dataSet->getNextSyncTime()); if ($runTime >= $dataSet->getNextSyncTime()) { @@ -193,9 +207,9 @@ public function run() $notification->body = 'The error is: ' . $e->getMessage(); $notification->createDt = Carbon::now()->format('U'); $notification->releaseDt = $notification->createDt; - $notification->isEmail = 0; $notification->isInterrupt = 0; $notification->userId = $this->user->userId; + $notification->type = 'dataset'; // Assign me $dataSetUser = $this->userFactory->getById($dataSet->userId); diff --git a/lib/XTR/ReportScheduleTask.php b/lib/XTR/ReportScheduleTask.php index 7031ddcbbe..8fdfd2aba1 100644 --- a/lib/XTR/ReportScheduleTask.php +++ b/lib/XTR/ReportScheduleTask.php @@ -1,6 +1,6 @@ body = __('Attached please find the report for %s', $savedReport->saveAs); $notification->createDt = Carbon::now()->format('U'); $notification->releaseDt = Carbon::now()->format('U'); - $notification->isEmail = 1; $notification->isInterrupt = 0; $notification->userId = $savedReport->userId; // event owner $notification->filename = 'filename-'.$savedReport->savedReportId.'.pdf'; $notification->originalFileName = 'saved_report.pdf'; $notification->nonusers = $nonusers; + $notification->type = 'report'; // Get user group to create user notification $notificationUser = $this->userFactory->getById($savedReport->userId); diff --git a/lib/XTR/ScheduleReminderTask.php b/lib/XTR/ScheduleReminderTask.php index 31e4c6b86d..2722ee2d26 100644 --- a/lib/XTR/ScheduleReminderTask.php +++ b/lib/XTR/ScheduleReminderTask.php @@ -228,9 +228,9 @@ private function createNotification($subject, $body, $reminder, $schedule, $rele $notification->body = $body; $notification->createDt = Carbon::now()->format('U'); $notification->releaseDt = $releaseDt; - $notification->isEmail = $reminder->isEmail; $notification->isInterrupt = 0; $notification->userId = $schedule->userId; // event owner + $notification->type = 'schedule'; // Get user group to create user notification $notificationUser = $this->userFactory->getById($schedule->userId); diff --git a/lib/XTR/SeedDatabaseTask.php b/lib/XTR/SeedDatabaseTask.php index fb337d3866..cc274d89f1 100644 --- a/lib/XTR/SeedDatabaseTask.php +++ b/lib/XTR/SeedDatabaseTask.php @@ -312,6 +312,7 @@ private function importLayouts(): void // all layouts name and file name $layoutNames = [ 'dataset test ' => 'export-dataset-test.zip', + 'layout_with_8_items_dataset' => 'export-layout-with-8-items-dataset.zip', 'Image test' => 'export-image-test.zip', 'Layout for Schedule 1' => 'export-layout-for-schedule-1.zip', 'List Campaign Layout 1' => 'export-list-campaign-layout-1.zip', @@ -908,7 +909,7 @@ private function createCommands() $command->description = 'a command to test schedule'; $command->code = 'TIMEZONE'; $command->userId = $this->userFactory->getSystemUser()->getId(); - + $command->createAlertOn = 'never'; $command->save(); $this->store->commitIfNecessary(); } catch (GeneralException $e) { diff --git a/lib/XTR/WidgetSyncTask.php b/lib/XTR/WidgetSyncTask.php index 4b4bdf7681..f7ac29824a 100644 --- a/lib/XTR/WidgetSyncTask.php +++ b/lib/XTR/WidgetSyncTask.php @@ -27,6 +27,7 @@ use Xibo\Entity\Module; use Xibo\Entity\Widget; use Xibo\Event\WidgetDataRequestEvent; +use Xibo\Factory\WidgetDataFactory; use Xibo\Helper\DateFormatHelper; use Xibo\Support\Exception\GeneralException; use Xibo\Support\Exception\NotFoundException; @@ -47,6 +48,9 @@ class WidgetSyncTask implements TaskInterface /** @var \Xibo\Factory\WidgetFactory */ private $widgetFactory; + /** @var \Xibo\Factory\WidgetDataFactory */ + private WidgetDataFactory $widgetDataFactory; + /** @var \Xibo\Factory\MediaFactory */ private $mediaFactory; @@ -61,6 +65,7 @@ public function setFactories($container) { $this->moduleFactory = $container->get('moduleFactory'); $this->widgetFactory = $container->get('widgetFactory'); + $this->widgetDataFactory = $container->get('widgetDataFactory'); $this->mediaFactory = $container->get('mediaFactory'); $this->displayFactory = $container->get('displayFactory'); $this->eventDispatcher = $container->get('dispatcher'); @@ -221,6 +226,32 @@ private function cache( } } + // Will we use fallback data if available? + $showFallback = $widget->getOptionValue('showFallback', 'never'); + if ($showFallback !== 'never') { + // What data type are we dealing with? + try { + $dataTypeFields = []; + foreach ($this->moduleFactory->getDataTypeById($module->dataType)->fields as $field) { + $dataTypeFields[$field->id] = $field->type; + } + + // Potentially we will, so get the modifiedDt of this fallback data. + $fallbackModifiedDt = $this->widgetDataFactory->getModifiedDtForWidget($widget->widgetId); + + if ($fallbackModifiedDt !== null) { + $this->getLogger()->debug('cache: fallback modifiedDt is ' . $fallbackModifiedDt->toAtomString()); + + $dataModifiedDt = max($dataModifiedDt, $fallbackModifiedDt); + } + } catch (NotFoundException) { + $this->getLogger()->info('cache: widget will fallback set where the module does not support it'); + $dataTypeFields = null; + } + } else { + $dataTypeFields = null; + } + if (!$widgetDataProviderCache->decorateWithCache($dataProvider, $cacheKey, $dataModifiedDt) || $widgetDataProviderCache->isCacheMissOrOld() ) { @@ -228,6 +259,7 @@ private function cache( $dataProvider->clearData(); $dataProvider->clearMeta(); + $dataProvider->addOrUpdateMeta('showFallback', $showFallback); try { if ($widgetInterface !== null) { @@ -243,6 +275,43 @@ private function cache( ); } + // Before caching images, check to see if the data provider is handled + $isFallback = false; + if ($showFallback !== 'never' + && $dataTypeFields !== null + && ( + count($dataProvider->getErrors()) > 0 + || count($dataProvider->getData()) <= 0 + || $showFallback === 'always' + ) + ) { + // Error or no data. + // Pull in the fallback data + foreach ($this->widgetDataFactory->getByWidgetId($dataProvider->getWidgetId()) as $item) { + // Handle any special data types in the fallback data + foreach ($item->data as $itemId => $itemData) { + if (!empty($itemData) + && array_key_exists($itemId, $dataTypeFields) + && $dataTypeFields[$itemId] === 'image' + ) { + $item->data[$itemId] = $dataProvider->addLibraryFile($itemData); + } + } + + // Indicate we've been handled by fallback data + $isFallback = true; + } + + if ($isFallback) { + $dataProvider->addOrUpdateMeta('includesFallback', true); + } + } + + // Remove fallback data from the cache if no-longer needed + if (!$isFallback) { + $dataProvider->addOrUpdateMeta('includesFallback', false); + } + // Do we have images? // They could be library images (i.e. they already exist) or downloads $mediaIds = $dataProvider->getImageIds(); @@ -263,7 +332,7 @@ private function cache( } // Save to cache - if ($dataProvider->isHandled()) { + if ($dataProvider->isHandled() || $isFallback) { $widgetDataProviderCache->saveToCache($dataProvider); } } finally { diff --git a/lib/Xmds/Entity/Dependency.php b/lib/Xmds/Entity/Dependency.php index 08a3ad4dcb..c1e4631eaf 100644 --- a/lib/Xmds/Entity/Dependency.php +++ b/lib/Xmds/Entity/Dependency.php @@ -31,6 +31,7 @@ class Dependency const LEGACY_ID_OFFSET_FONT = 100000000; const LEGACY_ID_OFFSET_PLAYER_SOFTWARE = 200000000; const LEGACY_ID_OFFSET_ASSET = 300000000; + const LEGACY_ID_OFFSET_DATA_CONNECTOR = 400000000; public $fileType; public $legacyId; diff --git a/lib/Xmds/Listeners/XmdsDataConnectorListener.php b/lib/Xmds/Listeners/XmdsDataConnectorListener.php new file mode 100644 index 0000000000..14eb0f8521 --- /dev/null +++ b/lib/Xmds/Listeners/XmdsDataConnectorListener.php @@ -0,0 +1,76 @@ +. + */ + +namespace Xibo\Xmds\Listeners; + +use Xibo\Event\XmdsDependencyRequestEvent; +use Xibo\Listener\ListenerConfigTrait; +use Xibo\Listener\ListenerLoggerTrait; +use Xibo\Support\Exception\NotFoundException; +use Xibo\Xmds\Entity\Dependency; + +/** + * Listener to handle dependency requests for data connectors. + */ +class XmdsDataConnectorListener +{ + use ListenerLoggerTrait; + use ListenerConfigTrait; + + public function onDependencyRequest(XmdsDependencyRequestEvent $event) + { + // Can we return this type of file? + if ($event->getFileType() === 'data_connector') { + // Set the path + $event->setRelativePathToLibrary('data_connectors/dataSet_' . $event->getRealId() . '.js'); + + // No need to carry on, we've found it. + $event->stopPropagation(); + } + } + + /** + * @throws NotFoundException + */ + public static function getDataConnectorDependency(string $libraryLocation, int $dataSetId): Dependency + { + // Check that this asset is valid. + $path = $libraryLocation + . 'data_connectors' . DIRECTORY_SEPARATOR + . 'dataSet_' . $dataSetId . '.js'; + + if (!file_exists($path)) { + throw new NotFoundException(sprintf(__('Data Connector %s not found'), $path)); + } + + // Return a dependency + return new Dependency( + 'data_connector', + $dataSetId, + (Dependency::LEGACY_ID_OFFSET_DATA_CONNECTOR + $dataSetId) * -1, + $path, + filesize($path), + file_get_contents($path . '.md5'), + true + ); + } +} diff --git a/lib/Xmds/LogProcessor.php b/lib/Xmds/LogProcessor.php index c7ffb69c4e..f7fd14f4a9 100644 --- a/lib/Xmds/LogProcessor.php +++ b/lib/Xmds/LogProcessor.php @@ -1,8 +1,8 @@ log->getHandlers() as $handler) { + foreach ($this->log->getHandlers() as $handler) { if ($handler instanceof DatabaseLogHandler) { $handler->setLevel(\Xibo\Service\LogService::resolveLogLevel('debug')); } @@ -85,11 +85,11 @@ public function getLevel() { $level = Logger::ERROR; - foreach($this->log->getHandlers() as $handler) { + foreach ($this->log->getHandlers() as $handler) { if ($handler instanceof DatabaseLogHandler) { $level = $handler->getLevel(); } else { - $this->log->error('Log level not set in DabaseLogHandler'); + $this->log->error('Log level not set in DatabaseLogHandler'); } } @@ -117,4 +117,4 @@ public function __invoke(array $record) return $record; } -} \ No newline at end of file +} diff --git a/lib/Xmds/Soap.php b/lib/Xmds/Soap.php index 410d7c8711..8c1f843abe 100644 --- a/lib/Xmds/Soap.php +++ b/lib/Xmds/Soap.php @@ -33,6 +33,7 @@ use Xibo\Entity\Region; use Xibo\Entity\RequiredFile; use Xibo\Entity\Schedule; +use Xibo\Event\DataConnectorScriptRequestEvent; use Xibo\Event\XmdsDependencyListEvent; use Xibo\Factory\BandwidthFactory; use Xibo\Factory\DataSetFactory; @@ -43,6 +44,7 @@ use Xibo\Factory\MediaFactory; use Xibo\Factory\ModuleFactory; use Xibo\Factory\NotificationFactory; +use Xibo\Factory\PlayerFaultFactory; use Xibo\Factory\PlayerVersionFactory; use Xibo\Factory\RegionFactory; use Xibo\Factory\RequiredFileFactory; @@ -66,6 +68,7 @@ use Xibo\Support\Exception\GeneralException; use Xibo\Support\Exception\NotFoundException; use Xibo\Xmds\Entity\Dependency; +use Xibo\Xmds\Listeners\XmdsDataConnectorListener; /** * Class Soap @@ -166,6 +169,9 @@ class Soap /** @var \Xibo\Factory\CampaignFactory */ private $campaignFactory; + /** @var PlayerFaultFactory */ + protected $playerFaultFactory; + /** * Soap constructor. * @param LogProcessor $logProcessor @@ -219,7 +225,8 @@ public function __construct( $playerVersionFactory, $dispatcher, $campaignFactory, - $syncGroupFactory + $syncGroupFactory, + $playerFaultFactory ) { $this->logProcessor = $logProcessor; $this->pool = $pool; @@ -246,6 +253,7 @@ public function __construct( $this->dispatcher = $dispatcher; $this->campaignFactory = $campaignFactory; $this->syncGroupFactory = $syncGroupFactory; + $this->playerFaultFactory = $playerFaultFactory; } /** @@ -500,9 +508,7 @@ protected function doRequiredFiles( 'displayId' => $this->display->displayId ]; - if ($this->display->isAuditing()) { - $this->getLog()->sql($SQL, $params); - } + $this->getLog()->sql($SQL, $params); $sth = $dbh->prepare($SQL); $sth->execute($params); @@ -551,10 +557,12 @@ protected function doRequiredFiles( $this->getLog()->debug(count($scheduleEvents) . ' events for eventId ' . $schedule->eventId); + // Sync events $layoutId = ($schedule->eventTypeId == Schedule::$SYNC_EVENT) ? $parsedRow->getInt('syncLayoutId') : $parsedRow->getInt('layoutId'); + // Layout codes (action events) $layoutCode = $parsedRow->getString('actionLayoutCode'); if ($layoutId != null && ( @@ -578,6 +586,27 @@ protected function doRequiredFiles( $this->getLog()->error(sprintf(__('Scheduled Action Event ID %d contains an invalid Layout linked to it by the Layout code.'), $schedule->eventId)); } } + + // Data Connectors + if ($isSupportsDependency && $schedule->eventTypeId === Schedule::$DATA_CONNECTOR_EVENT) { + $dataSet = $this->dataSetFactory->getById($row['dataSetId']); + + if ($dataSet->dataConnectorSource != 'user_defined') { + // Dispatch an event to save the data connector javascript from the connector + $dataConnectorScriptRequestEvent = new DataConnectorScriptRequestEvent($dataSet); + $this->getDispatcher() + ->dispatch($dataConnectorScriptRequestEvent, DataConnectorScriptRequestEvent::$NAME); + } + + $this->addDependency( + $newRfIds, + $requiredFilesXml, + $fileElements, + $httpDownloads, + $isSupportsDependency, + XmdsDataConnectorListener::getDataConnectorDependency($libraryLocation, $row['dataSetId']), + ); + } } } catch (\Exception $e) { $this->getLog()->error('Unable to get a list of layouts. ' . $e->getMessage()); @@ -677,9 +706,7 @@ protected function doRequiredFiles( // Sub layoutId list $SQL = sprintf($SQL, $layoutIdList, $layoutIdList); - if ($this->display->isAuditing()) { - $this->getLog()->sql($SQL, $params); - } + $this->getLog()->sql($SQL, $params); $sth = $dbh->prepare($SQL); $sth->execute($params); @@ -791,9 +818,7 @@ protected function doRequiredFiles( $fileName = basename($path); // Log - if ($this->display->isAuditing()) { - $this->getLog()->debug('MD5 for layoutid ' . $layoutId . ' is: [' . $md5 . ']'); - } + $this->getLog()->debug('MD5 for layoutid ' . $layoutId . ' is: [' . $md5 . ']'); // Add nonce $layoutNonce = $this->requiredFileFactory @@ -1078,9 +1103,7 @@ protected function doRequiredFiles( return new \SoapFault('Sender', 'Unable to get purge list files'); } - if ($this->display->isAuditing()) { - $this->getLog()->debug($requiredFilesXml->saveXML()); - } + $this->getLog()->debug($requiredFilesXml->saveXML()); // Return the results of requiredFiles() $requiredFilesXml->formatOutput = true; @@ -1272,8 +1295,10 @@ protected function doSchedule($serverKey, $hardwareKey, $options = []) $this->getLog()->debug(sprintf('Resolved dependents for Schedule: %s.', json_encode($layoutDependents, JSON_PRETTY_PRINT))); + // Additional nodes. $overlayNodes = null; $actionNodes = null; + $dataConnectorNodes = null; // We must have some results in here by this point foreach ($events as $row) { @@ -1297,6 +1322,21 @@ protected function doSchedule($serverKey, $hardwareKey, $options = []) $this->getLog()->debug(count($scheduleEvents) . ' events for eventId ' . $schedule->eventId); + // Does this event have any criteria? + $criteriaNodes = []; + if (count($scheduleEvents) > 0) { + $schedule->load(['loadDisplayGroups' => false]); + + foreach ($schedule->criteria as $scheduleCriteria) { + $criteriaNode = $scheduleXml->createElement('criteria'); + $criteriaNode->setAttribute('metric', $scheduleCriteria->metric); + $criteriaNode->setAttribute('condition', $scheduleCriteria->condition); + $criteriaNode->setAttribute('type', $scheduleCriteria->type); + $criteriaNode->textContent = $scheduleCriteria->value; + $criteriaNodes[] = $criteriaNode; + } + } + foreach ($scheduleEvents as $scheduleEvent) { $eventTypeId = $row['eventTypeId']; @@ -1383,6 +1423,13 @@ protected function doSchedule($serverKey, $hardwareKey, $options = []) } } + // Add criteria notes + if (count($criteriaNodes) > 0) { + foreach ($criteriaNodes as $criteriaNode) { + $layout->appendChild($criteriaNode); + } + } + $layoutElements->appendChild($layout); } elseif ($eventTypeId == Schedule::$COMMAND_EVENT) { // Add a command node to the schedule @@ -1390,6 +1437,14 @@ protected function doSchedule($serverKey, $hardwareKey, $options = []) $command->setAttribute('date', $fromDt); $command->setAttribute('scheduleid', $scheduleId); $command->setAttribute('code', $commandCode); + + // Add criteria notes + if (count($criteriaNodes) > 0) { + foreach ($criteriaNodes as $criteriaNode) { + $command->appendChild($criteriaNode); + } + } + $layoutElements->appendChild($command); } elseif ($eventTypeId == Schedule::$OVERLAY_EVENT && $options['includeOverlays']) { // Ensure we have a layoutId (we may not if an empty campaign is assigned) @@ -1420,6 +1475,13 @@ protected function doSchedule($serverKey, $hardwareKey, $options = []) $overlay->setAttribute('isGeoAware', $row['isGeoAware'] ?? 0); $overlay->setAttribute('geoLocation', $row['geoLocation'] ?? null); + // Add criteria notes + if (count($criteriaNodes) > 0) { + foreach ($criteriaNodes as $criteriaNode) { + $overlay->appendChild($criteriaNode); + } + } + // Add to the overlays node list $overlayNodes->appendChild($overlay); } elseif ($eventTypeId == Schedule::$ACTION_EVENT) { @@ -1439,7 +1501,39 @@ protected function doSchedule($serverKey, $hardwareKey, $options = []) $action->setAttribute('layoutCode', $row['actionLayoutCode']); $action->setAttribute('commandCode', $commandCode); + // Add criteria notes + if (count($criteriaNodes) > 0) { + foreach ($criteriaNodes as $criteriaNode) { + $action->appendChild($criteriaNode); + } + } + $actionNodes->appendChild($action); + } else if ($eventTypeId === Schedule::$DATA_CONNECTOR_EVENT) { + if ($dataConnectorNodes == null) { + $dataConnectorNodes = $scheduleXml->createElement('dataConnectors'); + } + + $dataConnector = $scheduleXml->createElement('connector'); + $dataConnector->setAttribute('fromdt', $fromDt); + $dataConnector->setAttribute('todt', $toDt); + $dataConnector->setAttribute('scheduleid', $scheduleId); + $dataConnector->setAttribute('priority', $is_priority); + $dataConnector->setAttribute('duration', $row['duration'] ?? 0); + $dataConnector->setAttribute('isGeoAware', $row['isGeoAware'] ?? 0); + $dataConnector->setAttribute('geoLocation', $row['geoLocation'] ?? null); + $dataConnector->setAttribute('dataSetId', $row['dataSetId']); + $dataConnector->setAttribute('dataParams', urlencode($row['dataSetParams'])); + $dataConnector->setAttribute('js', 'dataSet_' . $row['dataSetId'] . '.js'); + + // Add criteria notes + if (count($criteriaNodes) > 0) { + foreach ($criteriaNodes as $criteriaNode) { + $dataConnector->appendChild($criteriaNode); + } + } + + $dataConnectorNodes->appendChild($dataConnector); } } } @@ -1453,6 +1547,11 @@ protected function doSchedule($serverKey, $hardwareKey, $options = []) if ($actionNodes != null) { $layoutElements->appendChild($actionNodes); } + + // Add Data Connector nodes if we had any + if ($dataConnectorNodes != null) { + $layoutElements->appendChild($dataConnectorNodes); + } } catch (\Exception $e) { $this->getLog()->error('Error getting the schedule. ' . $e->getMessage()); return new \SoapFault('Sender', 'Unable to get the schedule'); @@ -1524,10 +1623,10 @@ protected function doSchedule($serverKey, $hardwareKey, $options = []) } // Add on a list of global dependants - $globalDependents = $scheduleXml->createElement("dependants"); + $globalDependents = $scheduleXml->createElement('dependants'); foreach ($moduleDependents as $dep) { - $dependent = $scheduleXml->createElement("file", $dep); + $dependent = $scheduleXml->createElement('file', $dep); $globalDependents->appendChild($dependent); } $layoutElements->appendChild($globalDependents); @@ -1535,8 +1634,7 @@ protected function doSchedule($serverKey, $hardwareKey, $options = []) // Format the output $scheduleXml->formatOutput = true; - if ($this->display->isAuditing()) - $this->getLog()->debug($scheduleXml->saveXML()); + $this->getLog()->debug($scheduleXml->saveXML()); $output = $scheduleXml->saveXML(); @@ -1589,7 +1687,10 @@ protected function doSubmitLog($serverKey, $hardwareKey, $logXml) // Check the serverKey matches if ($serverKey != $this->getConfig()->getSetting('SERVER_KEY')) { - throw new \SoapFault('Sender', 'The Server key you entered does not match with the server key at this address'); + throw new \SoapFault( + 'Sender', + 'The Server key you entered does not match with the server key at this address' + ); } // Auth this request... @@ -1599,38 +1700,37 @@ protected function doSubmitLog($serverKey, $hardwareKey, $logXml) // Now that we authenticated the Display, make sure we are sticking to our bandwidth limit if (!$this->checkBandwidth($this->display->displayId)) { - throw new \SoapFault('Receiver', "Bandwidth Limit exceeded"); + throw new \SoapFault('Receiver', 'Bandwidth Limit exceeded'); } // Load the XML into a DOMDocument - $document = new \DOMDocument("1.0"); + $document = new \DOMDocument('1.0'); if (!$document->loadXML($logXml)) { - $this->getLog()->error('Malformed XML from Player, this will be discarded. The Raw XML String provided is: ' . $logXml); + $this->getLog()->error( + 'Malformed XML from Player, this will be discarded. The Raw XML String provided is: ' . $logXml + ); $this->getLog()->debug('XML log: ' . $logXml); return true; } // Current log level - $logLevel = $this->logProcessor->getLevel(); + $logLevel = \Xibo\Service\LogService::resolveLogLevel($this->display->getLogLevel()); $discardedLogs = 0; - // Get the display timezone to use when adjusting log dates. - $defaultTimeZone = $this->getConfig()->getSetting('defaultTimezone'); - // Store processed logs in an array $logs = []; foreach ($document->documentElement->childNodes as $node) { /* @var \DOMElement $node */ // Make sure we don't consider any text nodes - if ($node->nodeType == XML_TEXT_NODE) + if ($node->nodeType == XML_TEXT_NODE) { continue; - + } // Zero out the common vars - $scheduleId = ""; - $layoutId = ""; - $mediaId = ""; + $scheduleId = ''; + $layoutId = ''; + $mediaId = ''; $method = ''; $thread = ''; $type = ''; @@ -1647,6 +1747,14 @@ protected function doSubmitLog($serverKey, $hardwareKey, $logXml) continue; } + // special handling for event + // this will create record in displayevent table + // and is not added to the logs. + if ($cat == 'event') { + $this->createDisplayAlert($node); + continue; + } + // Does this meet the current log level? if ($cat == 'error') { $recordLogLevel = Logger::ERROR; @@ -1668,20 +1776,10 @@ protected function doSubmitLog($serverKey, $hardwareKey, $logXml) } // Adjust the date according to the display timezone - try { - $date = ($this->display->timeZone != null) ? Carbon::createFromFormat(DateFormatHelper::getSystemFormat(), $date, $this->display->timeZone)->tz($defaultTimeZone) : Carbon::createFromFormat(DateFormatHelper::getSystemFormat(), $date); - $date = $date->format(DateFormatHelper::getSystemFormat()); - } catch (\Exception $e) { - // Protect against the date format being inreadable - $this->getLog()->debug('Date format unreadable on log message: ' . $date); - - // Use now instead - $date = Carbon::now()->format(DateFormatHelper::getSystemFormat()); - } + $date = $this->adjustDisplayLogDate($date, DateFormatHelper::getSystemFormat()); // Get the date and the message (all log types have these) foreach ($node->childNodes as $nodeElements) { - if ($nodeElements->nodeName == 'scheduleID') { $scheduleId = $nodeElements->textContent; } else if ($nodeElements->nodeName == 'layoutID') { @@ -1695,30 +1793,32 @@ protected function doSubmitLog($serverKey, $hardwareKey, $logXml) } else if ($nodeElements->nodeName == 'message') { $message = $nodeElements->textContent; } else if ($nodeElements->nodeName == 'thread') { - if ($nodeElements->textContent != '') + if ($nodeElements->textContent != '') { $thread = '[' . $nodeElements->textContent . '] '; + } } } // If the message is still empty, take the entire node content - if ($message == '') + if ($message == '') { $message = $node->textContent; - + } // Add the IDs to the message - if ($scheduleId != '') + if ($scheduleId != '') { $message .= ' scheduleId: ' . $scheduleId; - - if ($layoutId != '') - $message .= ' layoutId: '. $layoutId; - - if ($mediaId != '') + } + if ($layoutId != '') { + $message .= ' layoutId: ' . $layoutId; + } + if ($mediaId != '') { $message .= ' mediaId: ' . $mediaId; - + } // Trim the page if it is over 50 characters. $page = $thread . $method . $type; - if (strlen($page) >= 50) + if (strlen($page) >= 50) { $page = substr($page, 0, 49); + } $logs[] = [ $this->logProcessor->getUid(), @@ -1736,7 +1836,7 @@ protected function doSubmitLog($serverKey, $hardwareKey, $logXml) if (count($logs) > 0) { // Insert $sql = ' - INSERT INTO log ( + INSERT INTO `log` ( `runNo`, `logdate`, `channel`, @@ -1748,26 +1848,39 @@ protected function doSubmitLog($serverKey, $hardwareKey, $logXml) `displayid` ) VALUES '; - $placeHolders = '(?, ?, ?, ?, ?, ?, ?, ?, ?)'; - $sql = $sql . implode(', ', array_fill(1, count($logs), $placeHolders)); + // Build our query + $params = []; - // Flatten the array - $data = []; + // We're going to make params for each row/column + $i = 0; + $row = 0; foreach ($logs as $log) { + $row++; + $sql .= '('; foreach ($log as $field) { - $data[] = $field; + $i++; + $key = $row . '_' . $i; + $sql .= ':' . $key . ','; + $params[$key] = $field; } + $sql = rtrim($sql, ','); + $sql .= '),'; } + $sql = rtrim($sql, ','); // Insert - $this->getStore()->update($sql, $data); + $this->getStore()->update($sql, $params); } else { $this->getLog()->info('0 logs resolved from log package'); } - if ($discardedLogs > 0) - $this->getLog()->info('Discarded ' . $discardedLogs . ' logs. Consider adjusting your display profile log level. Resolved level is ' . $logLevel); + if ($discardedLogs > 0) { + $this->getLog()->info( + 'Discarded ' . $discardedLogs . ' logs. + Consider adjusting your display profile log level. Resolved level is ' . $logLevel + ); + } $this->logBandwidth($this->display->displayId, Bandwidth::$SUBMITLOG, strlen($logXml)); @@ -1811,9 +1924,7 @@ protected function doSubmitStats($serverKey, $hardwareKey, $statXml) throw new \SoapFault('Receiver', 'Bandwidth Limit exceeded'); } - if ($this->display->isAuditing()) { - $this->getLog()->debug('Received XML. ' . $statXml); - } + $this->getLog()->debug('Received XML. ' . $statXml); if ($statXml == '') { throw new \SoapFault('Receiver', 'Stat XML is empty.'); @@ -2144,9 +2255,7 @@ protected function doMediaInventory($serverKey, $hardwareKey, $inventory) throw new \SoapFault('Receiver', 'Bandwidth Limit exceeded'); } - if ($this->display->isAuditing()) { - $this->getLog()->debug($inventory); - } + $this->getLog()->debug($inventory); // Check that the $inventory contains something if ($inventory == '') { @@ -2456,9 +2565,7 @@ protected function phoneHome() // If it's been > 1 week since last PHONE_HOME then send a new report $oneWeekAgo = Carbon::now()->subWeek()->format('U'); if ($this->getConfig()->getSetting('PHONE_HOME_DATE') < $oneWeekAgo) { - if ($this->display->isAuditing()) { - $this->getLog()->debug('Phone Home required for displayId ' . $this->display->displayId); - } + $this->getLog()->debug('Phone Home required for displayId ' . $this->display->displayId); try { // What type of install are we? @@ -2539,7 +2646,7 @@ protected function authDisplay($hardwareKey) } // Configure our log processor - $this->logProcessor->setDisplay($this->display->displayId, ($this->display->isAuditing())); + $this->logProcessor->setDisplay($this->display->displayId, $this->display->isAuditing()); return true; @@ -2560,11 +2667,11 @@ protected function alertDisplayUp(): void { $maintenanceEnabled = $this->getConfig()->getSetting('MAINTENANCE_ENABLED'); - if ($this->display->loggedIn == 0) { + if ($this->display->loggedIn == 0 && !empty($this->display->displayId)) { $this->getLog()->info(sprintf('Display %s was down, now its up.', $this->display->display)); // Log display up - $this->displayEventFactory->createEmpty()->displayUp($this->display->displayId); + $this->displayEventFactory->createEmpty()->eventEnd($this->display->displayId); // Do we need to email? if ($this->display->emailAlert == 1 @@ -2585,7 +2692,8 @@ protected function alertDisplayUp(): void $notification = $this->notificationFactory->createSystemNotification( $subject, $body, - Carbon::now() + Carbon::now(), + 'display', ); // Get groups which have been configured to receive notifications @@ -2701,7 +2809,7 @@ protected function getIp() protected function checkBandwidth($displayId) { // Uncomment to enable auditing. - //$this->logProcessor->setDisplay(0, true); + //$this->logProcessor->setDisplay(0, 'debug'); $this->display = $this->displayFactory->getById($displayId); @@ -2716,15 +2824,26 @@ protected function checkBandwidth($displayId) // Create a notification if we don't already have one today for this display. $subject = __('Bandwidth allowance exceeded'); $date = Carbon::now(); + $notifications = $this->notificationFactory->getBySubjectAndDate( + $subject, + $date->startOfDay()->format('U'), + $date->addDay()->startOfDay()->format('U') + ); - if (count($this->notificationFactory->getBySubjectAndDate($subject, $date->startOfDay()->format('U'), $date->addDay()->startOfDay()->format('U'))) <= 0) { - - $body = __(sprintf('Bandwidth allowance of %s exceeded. Used %s', ByteFormatter::format($xmdsLimit * 1024), ByteFormatter::format($bandwidthUsage))); + if (count($notifications) <= 0) { + $body = __( + sprintf( + 'Bandwidth allowance of %s exceeded. Used %s', + ByteFormatter::format($xmdsLimit * 1024), + ByteFormatter::format($bandwidthUsage) + ) + ); $notification = $this->notificationFactory->createSystemNotification( $subject, $body, - Carbon::now() + Carbon::now(), + 'library' ); $notification->save(); @@ -2734,22 +2853,46 @@ protected function checkBandwidth($displayId) return false; - } elseif ($this->bandwidthFactory->isBandwidthExceeded($displayBandwidthLimit, $bandwidthUsage, $displayId)) { + } elseif ($this->bandwidthFactory->isBandwidthExceeded( + $displayBandwidthLimit, + $bandwidthUsage, + $displayId + ) + ) { // Bandwidth Exceeded // Create a notification if we don't already have one today for this display. $subject = __(sprintf('Display ID %d exceeded the bandwidth limit', $this->display->displayId)); $date = Carbon::now(); - if (count($this->notificationFactory->getBySubjectAndDate($subject, $date->startOfDay()->format('U'), $date->addDay()->startOfDay()->format('U'))) <= 0) { - - $body = __(sprintf('Display bandwidth limit %s exceeded. Used %s for Display Id %d', ByteFormatter::format($displayBandwidthLimit * 1024), ByteFormatter::format($bandwidthUsage), $this->display->displayId)); + $notifications = $this->notificationFactory->getBySubjectAndDate( + $subject, + $date->startOfDay()->format('U'), + $date->addDay()->startOfDay()->format('U') + ); + if (count($notifications) <= 0) { + $body = __( + sprintf( + 'Display bandwidth limit %s exceeded. Used %s for Display Id %d', + ByteFormatter::format($displayBandwidthLimit * 1024), + ByteFormatter::format($bandwidthUsage), + $this->display->displayId + ) + ); $notification = $this->notificationFactory->createSystemNotification( $subject, $body, - Carbon::now() + Carbon::now(), + 'display' ); + // Add in any displayNotificationGroups, with permissions + foreach ($this->userGroupFactory->getDisplayNotificationGroups( + $this->display->displayGroupId + ) as $group) { + $notification->assignUserGroup($group); + } + $notification->save(); $this->getLog()->critical($subject); @@ -2970,6 +3113,96 @@ protected function setDateFilters() $this->fromFilter = Carbon::createFromFormat(DateFormatHelper::getSystemFormat(), $fromFilter); $this->toFilter = Carbon::createFromFormat(DateFormatHelper::getSystemFormat(), $toFilter); - $this->getLog()->debug(sprintf('FromDT = %s [%d]. ToDt = %s [%d]', $fromFilter->toRssString(), $fromFilter->format('U'), $toFilter->toRssString(), $toFilter->format('U'))); + $this->getLog()->debug( + sprintf( + 'FromDT = %s [%d]. ToDt = %s [%d]', + $fromFilter->toRssString(), + $fromFilter->format('U'), + $toFilter->toRssString(), + $toFilter->format('U') + ) + ); + } + + /** + * Adjust the log date according to the Display timezone. + * Return current date if we fail. + * @param string $date + * @param string $format + * @return string + */ + protected function adjustDisplayLogDate(string $date, string $format): string + { + // Get the display timezone to use when adjusting log dates. + $defaultTimeZone = $this->getConfig()->getSetting('defaultTimezone'); + + // Adjust the date according to the display timezone + try { + $date = ($this->display->timeZone != null) + ? Carbon::createFromFormat( + DateFormatHelper::getSystemFormat(), + $date, + $this->display->timeZone + )->tz($defaultTimeZone) + : Carbon::createFromFormat( + DateFormatHelper::getSystemFormat(), + $date + ); + $date = $date->format($format); + } catch (\Exception $e) { + // Protect against the date format being unreadable + $this->getLog()->debug('Date format unreadable on log message: ' . $date); + + // Use now instead + $date = Carbon::now()->format($format); + } + + return $date; + } + + private function createDisplayAlert(\DomElement $alertNode) + { + $date = $this->adjustDisplayLogDate($alertNode->getAttribute('date'), 'U'); + $eventType = ''; + $refId = ''; + $detail = ''; + $alertType = ''; + + // Get the nodes we are expecting + foreach ($alertNode->childNodes as $nodeElements) { + if ($nodeElements->nodeName == 'eventType') { + $eventType = $nodeElements->textContent; + } else if ($nodeElements->nodeName == 'refId') { + $refId = $nodeElements->textContent; + } else if ($nodeElements->nodeName == 'message') { + $detail = $nodeElements->textContent; + } else if ($nodeElements->nodeName == 'alertType') { + $alertType = $nodeElements->textContent; + } + } + + // if alerts should provide both start and end or just start + if ($alertType == 'both' || $alertType == 'start') { + $displayEvent = $this->displayEventFactory->createEmpty(); + + // new record populated from the submitLog xml. + $displayEvent->displayId = $this->display->displayId; + $displayEvent->eventTypeId = $displayEvent->getEventIdFromString($eventType); + $displayEvent->eventDate = $date; + $displayEvent->start = $date; + $displayEvent->end = $alertType == 'both' ? $date : null; + $displayEvent->refId = empty($refId) ? null : $refId; + $displayEvent->detail = $detail; + + $displayEvent->save(); + } else if ($alertType == 'end') { + // if this event pertain only to end date for an existing event record, + // then set the end date for this display and the specified eventType + $displayEvent = $this->displayEventFactory->createEmpty(); + $eventTypeId = $displayEvent->getEventIdFromString($eventType); + empty($refId) + ? $displayEvent->eventEnd($this->display->displayId, $eventTypeId, $detail, $date) + : $displayEvent->eventEndByReference($this->display->displayId, $eventTypeId, $refId, $detail); + } } } diff --git a/lib/Xmds/Soap3.php b/lib/Xmds/Soap3.php index f71c6fc320..4bec933ff5 100644 --- a/lib/Xmds/Soap3.php +++ b/lib/Xmds/Soap3.php @@ -1,6 +1,6 @@ licensed = 0; } - $this->logProcessor->setDisplay($display->displayId, ($display->isAuditing())); + $this->logProcessor->setDisplay($display->displayId, $display->isAuditing()); if ($display->licensed == 0) { $active = 'Display is awaiting licensing approval from an Administrator.'; @@ -156,7 +156,10 @@ public function GetFile($serverKey, $hardwareKey, $filePath, $fileType, $chunkOf // Check the serverKey matches if ($serverKey != $this->getConfig()->getSetting('SERVER_KEY')) { - throw new \SoapFault('Sender', 'The Server key you entered does not match with the server key at this address'); + throw new \SoapFault( + 'Sender', + 'The Server key you entered does not match with the server key at this address' + ); } // Authenticate this request... @@ -169,15 +172,19 @@ public function GetFile($serverKey, $hardwareKey, $filePath, $fileType, $chunkOf throw new \SoapFault('Receiver', 'Bandwidth Limit exceeded'); } - if ($this->display->isAuditing()) { - $this->getLog()->debug("[IN] Params: [$hardwareKey] [$filePath] [$fileType] [$chunkOffset] [$chunkSize]"); - } + $this->getLog()->debug( + '[IN] Params: ['. $hardwareKey .'] ['. $filePath . '] + ['. $fileType.'] ['.$chunkOffset.'] ['.$chunkSize.']' + ); $file = null; if (empty($filePath)) { $this->getLog()->error('Soap3 GetFile request without a file path. Maybe a player missing ?v= parameter'); - throw new \SoapFault('Receiver', 'GetFile request is missing file path - is this version compatible with this CMS?'); + throw new \SoapFault( + 'Receiver', + 'GetFile request is missing file path - is this version compatible with this CMS?' + ); } try { diff --git a/lib/Xmds/Soap4.php b/lib/Xmds/Soap4.php index 60d77dde7d..88bd57c2b1 100644 --- a/lib/Xmds/Soap4.php +++ b/lib/Xmds/Soap4.php @@ -1,6 +1,6 @@ $operatingSystem, 'macAddress' => $macAddress, 'xmrChannel' => $xmrChannel, - 'xmrPubKey' => $xmrPubKey + 'xmrPubKey' => $xmrPubKey, ]); // Sanitize @@ -81,6 +81,7 @@ public function RegisterDisplay($serverKey, $hardwareKey, $displayName, $clientT $clientCode = $sanitized->getInt('clientCode'); $macAddress = $sanitized->getString('macAddress'); $clientAddress = $this->getIp(); + $operatingSystem = $sanitized->getString('operatingSystem'); // Check the serverKey matches if ($serverKey != $this->getConfig()->getSetting('SERVER_KEY')) { @@ -102,10 +103,13 @@ public function RegisterDisplay($serverKey, $hardwareKey, $displayName, $clientT $display = $this->displayFactory->getByLicence($hardwareKey); $this->display = $display; - $this->logProcessor->setDisplay($display->displayId, ($display->isAuditing())); + $this->logProcessor->setDisplay($display->displayId, $display->isAuditing()); // Audit in - $this->getLog()->debug('serverKey: ' . $serverKey . ', hardwareKey: ' . $hardwareKey . ', displayName: ' . $displayName . ', macAddress: ' . $macAddress); + $this->getLog()->debug( + 'serverKey: ' . $serverKey . ', hardwareKey: ' . $hardwareKey . + ', displayName: ' . $displayName . ', macAddress: ' . $macAddress + ); // Now $dateNow = Carbon::now(); @@ -268,7 +272,18 @@ public function RegisterDisplay($serverKey, $hardwareKey, $displayName, $clientT $display->clientType = $clientType; $display->clientVersion = $clientVersion; $display->clientCode = $clientCode; - //$display->operatingSystem = $operatingSystem; + + // Parse operatingSystem JSON data + $operatingSystemJson = json_decode($operatingSystem, false); + + // Newer version of players will return a JSON value, but for older version, it will return a string. + // In case the json decode fails, use the operatingSystem string value as the default value for the osVersion. + $display->osVersion = $operatingSystemJson->version ?? $operatingSystem; + $display->osSdk = $operatingSystemJson->sdk ?? null; + $display->manufacturer = $operatingSystemJson->manufacturer ?? null; + $display->brand = $operatingSystemJson->brand ?? null; + $display->model = $operatingSystemJson->model ?? null; + $display->save(['validate' => false, 'audit' => false]); // Log Bandwidth @@ -357,10 +372,12 @@ function GetFile($serverKey, $hardwareKey, $fileId, $fileType, $chunkOffset, $ch throw new \SoapFault('Receiver', 'Bandwidth Limit exceeded'); } - if ($this->display->isAuditing()) { - $this->getLog()->debug('hardwareKey: ' . $hardwareKey . ', fileId: ' . $fileId . ', fileType: ' - . $fileType . ', chunkOffset: ' . $chunkOffset . ', chunkSize: ' . $chunkSize); - } + + $this->getLog()->debug( + 'hardwareKey: ' . $hardwareKey . ', fileId: ' . $fileId . ', fileType: ' . $fileType . + ', chunkOffset: ' . $chunkOffset . ', chunkSize: ' . $chunkSize + ); + try { if ($isDependency || ($fileType == 'media' && $fileId < 0)) { @@ -598,9 +615,7 @@ public function NotifyStatus($serverKey, $hardwareKey, $status) } // Important to keep this logging in place (status screen notification gets logged) - if ($this->display->isAuditing()) { - $this->getLog()->debug($status); - } + $this->getLog()->debug($status); $this->logBandwidth($this->display->displayId, Bandwidth::$NOTIFYSTATUS, strlen($status)); @@ -756,9 +771,7 @@ public function SubmitScreenShot($serverKey, $hardwareKey, $screenShot) throw new \SoapFault('Receiver', "Bandwidth Limit exceeded"); } - if ($this->display->isAuditing()) { - $this->getLog()->debug('Received Screen shot'); - } + $this->getLog()->debug('Received Screen shot'); // Open this displays screen shot file and save this. $location = $this->getConfig()->getSetting('LIBRARY_LOCATION') . 'screenshots/' . $this->display->displayId . '_screenshot.' . $screenShotFmt; @@ -768,14 +781,10 @@ public function SubmitScreenShot($serverKey, $hardwareKey, $screenShot) try { $screenShotImg = Img::make($screenShot); } catch (\Exception $e) { - if ($this->display->isAuditing()) { - $this->getLog()->debug($imgDriver . " - " . $e->getMessage()); - } + $this->getLog()->debug($imgDriver . ' - ' . $e->getMessage()); } if ($screenShotImg !== false) { - if ($this->display->isAuditing()) { - $this->getLog()->debug("Use " . $imgDriver); - } + $this->getLog()->debug('Use ' . $imgDriver); break; } } @@ -786,15 +795,11 @@ public function SubmitScreenShot($serverKey, $hardwareKey, $screenShot) if ($imgMime != $screenShotMime) { $needConversion = true; try { - if ($this->display->isAuditing()) { - $this->getLog()->debug("converting: '" . $imgMime . "' to '" . $screenShotMime . "'"); - } + $this->getLog()->debug("converting: '" . $imgMime . "' to '" . $screenShotMime . "'"); $screenShot = (string) $screenShotImg->encode($screenShotFmt); $converted = true; } catch (\Exception $e) { - if ($this->display->isAuditing()) { - $this->getLog()->debug($e->getMessage()); - } + $this->getLog()->debug($e->getMessage()); } } } diff --git a/lib/Xmds/Soap5.php b/lib/Xmds/Soap5.php old mode 100644 new mode 100755 index 29537d1a42..46da9bc793 --- a/lib/Xmds/Soap5.php +++ b/lib/Xmds/Soap5.php @@ -99,6 +99,8 @@ public function RegisterDisplay( $clientAddress = $this->getIp(); $xmrChannel = $sanitized->getString('xmrChannel'); $xmrPubKey = trim($sanitized->getString('xmrPubKey')); + $operatingSystem = $sanitized->getString('operatingSystem'); + // this is only sent from xmds v7 $commercialLicenceString = $sanitized->getString('licenceResult'); @@ -108,12 +110,18 @@ public function RegisterDisplay( // Check the serverKey matches if ($serverKey != $this->getConfig()->getSetting('SERVER_KEY')) { - throw new \SoapFault('Sender', 'The Server key you entered does not match with the server key at this address'); + throw new \SoapFault( + 'Sender', + 'The Server key you entered does not match with the server key at this address' + ); } // Check the Length of the hardwareKey if (strlen($hardwareKey) > 40) { - throw new \SoapFault('Sender', 'The Hardware Key you sent was too long. Only 40 characters are allowed (SHA1).'); + throw new \SoapFault( + 'Sender', + 'The Hardware Key you sent was too long. Only 40 characters are allowed (SHA1).' + ); } // Return an XML formatted string @@ -122,17 +130,20 @@ public function RegisterDisplay( $return->appendChild($displayElement); // Uncomment this if we want additional logging in register. - //$this->logProcessor->setDisplay(0, 1); + //$this->logProcessor->setDisplay(0, 'debug'); // Check in the database for this hardwareKey try { $display = $this->displayFactory->getByLicence($hardwareKey); $this->display = $display; - $this->logProcessor->setDisplay($display->displayId, ($display->isAuditing())); + $this->logProcessor->setDisplay($display->displayId, $display->isAuditing()); // Audit in - $this->getLog()->debug('serverKey: ' . $serverKey . ', hardwareKey: ' . $hardwareKey . ', displayName: ' . $displayName . ', macAddress: ' . $macAddress); + $this->getLog()->debug( + 'serverKey: ' . $serverKey . ', hardwareKey: ' . $hardwareKey . + ', displayName: ' . $displayName . ', macAddress: ' . $macAddress + ); // Now $dateNow = Carbon::now(); @@ -146,7 +157,10 @@ public function RegisterDisplay( // It is not authorised $displayElement->setAttribute('status', 2); $displayElement->setAttribute('code', 'WAITING'); - $displayElement->setAttribute('message', 'Display is Registered and awaiting Authorisation from an Administrator in the CMS'); + $displayElement->setAttribute( + 'message', + 'Display is Registered and awaiting Authorisation from an Administrator in the CMS' + ); } else { // It is licensed $displayElement->setAttribute('status', 0); @@ -167,11 +181,20 @@ public function RegisterDisplay( } // Override the XMR address if empty - if (strtolower($settingName) == 'xmrnetworkaddress' && (!isset($arrayItem['value']) || $arrayItem['value'] == '')) { + if (strtolower($settingName) == 'xmrnetworkaddress' && + (!isset($arrayItem['value']) || $arrayItem['value'] == '') + ) { $arrayItem['value'] = $this->getConfig()->getSetting('XMR_PUB_ADDRESS'); } - $value = (isset($arrayItem['value']) ? $arrayItem['value'] : $arrayItem['default']); + // logLevels + if (strtolower($settingName) == 'loglevel') { + // return resting log level + // unless it is currently elevated, in which case return debug + $arrayItem['value'] = $this->display->getLogLevel(); + } + + $value = ($arrayItem['value'] ?? $arrayItem['default']); // Patch download and update windows to make sure they are only 00:00 // https://github.com/xibosignage/xibo/issues/1791 @@ -308,6 +331,7 @@ public function RegisterDisplay( } $node = $return->createElement($command->code); + $node->setAttribute('createAlertOn', $command->getCreateAlertOn()); $commandString = $return->createElement('commandString'); $commandStringCData = $return->createCDATASection($command->getCommandString()); $commandString->appendChild($commandStringCData); @@ -320,7 +344,10 @@ public function RegisterDisplay( $commandElement->appendChild($node); } catch (\DOMException $DOMException) { - $this->getLog()->error('Cannot add command to settings for displayId ' . $this->display->displayId . ', ' . $DOMException->getMessage()); + $this->getLog()->error( + 'Cannot add command to settings for displayId ' . + $this->display->displayId . ', ' . $DOMException->getMessage() + ); } } } @@ -352,9 +379,7 @@ public function RegisterDisplay( } // Check to see if the channel/pubKey are already entered - if ($display->isAuditing()) { - $this->getLog()->debug('xmrChannel: [' . $xmrChannel . ']. xmrPublicKey: [' . $xmrPubKey . ']'); - } + $this->getLog()->debug('xmrChannel: [' . $xmrChannel . ']. xmrPublicKey: [' . $xmrPubKey . ']'); // Update the Channel $display->xmrChannel = $xmrChannel; @@ -410,7 +435,17 @@ public function RegisterDisplay( $display->clientType = $clientType; $display->clientVersion = $clientVersion; $display->clientCode = $clientCode; - //$display->operatingSystem = $operatingSystem; + + // Parse operatingSystem data + $operatingSystemJson = json_decode($operatingSystem, false); + + // Newer version of players will return a JSON value, but for older version, it will return a string. + // In case the json decode fails, use the operatingSystem string value as the default value for the osVersion. + $display->osVersion = $operatingSystemJson->version ?? $operatingSystem; + $display->osSdk = $operatingSystemJson->sdk ?? null; + $display->manufacturer = $operatingSystemJson->manufacturer ?? null; + $display->brand = $operatingSystemJson->brand ?? null; + $display->model = $operatingSystemJson->model ?? null; // Commercial Licence Check, 0 - Not licensed, 1 - licensed, 2 - trial licence, 3 - not applicable // only sent by xmds v7 @@ -453,6 +488,16 @@ public function RegisterDisplay( $value = $return->createTextNode($syncGroup->syncPublisherPort ?? 9590); $syncPublisherPortNode->appendChild($value); $displayElement->appendChild($syncPublisherPortNode); + + $syncSwitchDelayNode = $return->createElement('syncSwitchDelay'); + $value = $return->createTextNode($syncGroup->syncSwitchDelay ?? 750); + $syncSwitchDelayNode->appendChild($value); + $displayElement->appendChild($syncSwitchDelayNode); + + $syncVideoPauseDelayNode = $return->createElement('syncVideoPauseDelay'); + $value = $return->createTextNode($syncGroup->syncVideoPauseDelay ?? 100); + $syncVideoPauseDelayNode->appendChild($value); + $displayElement->appendChild($syncVideoPauseDelayNode); } $display->save(Display::$saveOptionsMinimum); @@ -460,11 +505,14 @@ public function RegisterDisplay( // cache checks $cacheSchedule = $this->getPool()->getItem($this->display->getCacheKey() . '/schedule'); $cacheSchedule->setInvalidationMethod(Invalidation::OLD); - $displayElement->setAttribute('checkSchedule', ($cacheSchedule->isHit() ? crc32($cacheSchedule->get()) : "")); + $displayElement->setAttribute( + 'checkSchedule', + ($cacheSchedule->isHit() ? crc32($cacheSchedule->get()) : '') + ); $cacheRF = $this->getPool()->getItem($this->display->getCacheKey() . '/requiredFiles'); $cacheRF->setInvalidationMethod(Invalidation::OLD); - $displayElement->setAttribute('checkRf', ($cacheRF->isHit() ? crc32($cacheRF->get()) : "")); + $displayElement->setAttribute('checkRf', ($cacheRF->isHit() ? crc32($cacheRF->get()) : '')); // Log Bandwidth $returnXml = $return->saveXML(); diff --git a/lib/Xmds/Soap6.php b/lib/Xmds/Soap6.php index 57425efc91..e053332a97 100644 --- a/lib/Xmds/Soap6.php +++ b/lib/Xmds/Soap6.php @@ -1,6 +1,6 @@ logProcessor->setRoute('ReportFault'); - //$this->logProcessor->setDisplay(0, 1); + //$this->logProcessor->setDisplay(0, 'debug'); $sanitizer = $this->getSanitizer([ 'serverKey' => $serverKey, @@ -57,7 +58,10 @@ public function reportFaults(string $serverKey, string $hardwareKey, string $fau // Check the serverKey matches if ($serverKey != $this->getConfig()->getSetting('SERVER_KEY')) { - throw new \SoapFault('Sender', 'The Server key you entered does not match with the server key at this address'); + throw new \SoapFault( + 'Sender', + 'The Server key you entered does not match with the server key at this address' + ); } // Auth this request... @@ -70,17 +74,23 @@ public function reportFaults(string $serverKey, string $hardwareKey, string $fau throw new \SoapFault('Receiver', 'Bandwidth Limit exceeded'); } + $faultDecoded = json_decode($fault, true); + + // check if we should record or update any display events. + $this->manageDisplayAlerts($faultDecoded); + // clear existing records from player_faults table $this->getStore()->update('DELETE FROM `player_faults` WHERE displayId = :displayId', [ 'displayId' => $this->display->displayId ]); - $faultDecoded = json_decode($fault, true); - foreach ($faultDecoded as $faultAlert) { $sanitizedFaultAlert = $this->getSanitizer($faultAlert); - $incidentDt = $sanitizedFaultAlert->getDate('date', ['default' => Carbon::now()])->format(DateFormatHelper::getSystemFormat()); + $incidentDt = $sanitizedFaultAlert->getDate( + 'date', + ['default' => Carbon::now()] + )->format(DateFormatHelper::getSystemFormat()); $expires = $sanitizedFaultAlert->getDate('expires', ['default' => null]); $code = $sanitizedFaultAlert->getInt('code'); $reason = $sanitizedFaultAlert->getString('reason'); @@ -125,4 +135,99 @@ public function reportFaults(string $serverKey, string $hardwareKey, string $fau return true; } + + private function manageDisplayAlerts(array $newPlayerFaults) + { + // check current faults for player + $currentFaults = $this->playerFaultFactory->getByDisplayId($this->display->displayId); + + // if we had faults and now we no longer have any to add + // set end date for any existing fault events + // add display event for cleared all faults + if (!empty($currentFaults) && empty($newPlayerFaults)) { + $displayEvent = $this->displayEventFactory->createEmpty(); + $displayEvent->eventTypeId = $displayEvent->getEventIdFromString('Player Fault'); + $displayEvent->displayId = $this->display->displayId; + // clear any open player fault events for this display + $displayEvent->eventEnd($displayEvent->displayId, $displayEvent->eventTypeId); + + // log new event for all faults cleared. + $displayEvent->start = Carbon::now()->format('U'); + $displayEvent->end = Carbon::now()->format('U'); + $displayEvent->detail = __('All Player faults cleared'); + $displayEvent->save(); + } else if (empty($currentFaults) && !empty($newPlayerFaults)) { + $codesAdded = []; + // we do not have any faults currently, but new ones will be added + foreach ($newPlayerFaults as $newPlayerFault) { + $sanitizedFaultAlert = $this->getSanitizer($newPlayerFault); + // if we do not have an alert for the specific code yet, add it + if (!in_array($sanitizedFaultAlert->getInt('code'), $codesAdded)) { + $this->addDisplayEvent($sanitizedFaultAlert); + // keep track of added codes, we want a single alert per code + $codesAdded[] = $sanitizedFaultAlert->getInt('code'); + } + } + } else if (!empty($newPlayerFaults) && !empty($currentFaults)) { + // we have both existing faults and new faults + $existingFaultsCodes = []; + $newFaultCodes = []; + $codesAdded = []; + + // keep track of existing fault codes. + foreach ($currentFaults as $currentFault) { + $existingFaultsCodes[] = $currentFault->code; + } + + // go through new faults + foreach ($newPlayerFaults as $newPlayerFault) { + $sanitizedFaultAlert = $this->getSanitizer($newPlayerFault); + $newFaultCodes[] = $sanitizedFaultAlert->getInt('code'); + // if it already exists, we do not do anything with alerts + // if it is a new code and was not added already + // add it now + if (!in_array($sanitizedFaultAlert->getInt('code'), $existingFaultsCodes) + && !in_array($sanitizedFaultAlert->getInt('code'), $codesAdded) + ) { + $this->addDisplayEvent($sanitizedFaultAlert); + // keep track of added codes, we want a single alert per code + $codesAdded[] = $sanitizedFaultAlert->getInt('code'); + } + } + + // go through any existing codes that are no longer reported + // update the end date on all of them. + foreach (array_diff($existingFaultsCodes, $newFaultCodes) as $code) { + $displayEvent = $this->displayEventFactory->createEmpty(); + $displayEvent->eventEndByReference( + $this->display->displayId, + $displayEvent->getEventIdFromString('Player Fault'), + $code + ); + } + } + } + + private function addDisplayEvent(SanitizerInterface $sanitizedFaultAlert) + { + $this->getLog()->debug( + sprintf( + 'displayEvent : add new display alert for player fault code %d and displayId %d', + $sanitizedFaultAlert->getInt('code'), + $this->display->displayId + ) + ); + + $displayEvent = $this->displayEventFactory->createEmpty(); + $displayEvent->eventTypeId = $displayEvent->getEventIdFromString('Player Fault'); + $displayEvent->displayId = $this->display->displayId; + $displayEvent->start = $sanitizedFaultAlert->getDate( + 'date', + ['default' => Carbon::now()] + )->format('U'); + $displayEvent->end = null; + $displayEvent->detail = $sanitizedFaultAlert->getString('reason'); + $displayEvent->refId = $sanitizedFaultAlert->getInt('code'); + $displayEvent->save(); + } } diff --git a/lib/Xmds/Soap7.php b/lib/Xmds/Soap7.php index 5816045e83..293f5a3896 100644 --- a/lib/Xmds/Soap7.php +++ b/lib/Xmds/Soap7.php @@ -23,6 +23,7 @@ namespace Xibo\Xmds; use Xibo\Entity\Bandwidth; +use Xibo\Event\XmdsWeatherRequestEvent; use Xibo\Support\Exception\GeneralException; use Xibo\Support\Exception\NotFoundException; @@ -291,7 +292,22 @@ public function GetWeather($serverKey, $hardwareKey): string throw new \SoapFault('Receiver', 'This Display is not authorised.'); } - // TODO actually get the Weather with Display lat/long - return '{}'; + $latitude = $this->display->latitude; + $longitude = $this->display->longitude; + + // check for coordinates if present + if ($latitude && $longitude) { + // Dispatch an event to initialize weather data. + $event = new XmdsWeatherRequestEvent($latitude, $longitude); + $this->getDispatcher()->dispatch($event, XmdsWeatherRequestEvent::$NAME); + } else { + throw new \SoapFault( + 'Receiver', + 'Display coordinates is not configured' + ); + } + + // return weather data + return $event->getWeatherData(); } } diff --git a/lib/routes-web.php b/lib/routes-web.php index 3cb33b770e..1fa0372ccc 100644 --- a/lib/routes-web.php +++ b/lib/routes-web.php @@ -1,6 +1,6 @@ setName('layout.view'); $app->group('', function(\Slim\Routing\RouteCollectorProxy $group) { - $group->get('/layout/preview/{id}', ['\Xibo\Controller\Preview', 'show'])->setName('layout.preview'); $group->get('/layout/xlf/{id}', ['\Xibo\Controller\Preview', 'getXlf'])->setName('layout.getXlf'); $group->get('/layout/background/{id}', ['\Xibo\Controller\Layout', 'downloadBackground'])->setName('layout.download.background'); $group->get('/layout/thumbnail/{id}', ['\Xibo\Controller\Layout', 'downloadThumbnail'])->setName('layout.download.thumbnail'); @@ -142,6 +141,10 @@ $group->get('/connector/widget/preview', ['\Xibo\Controller\Connector', 'connectorPreview'])->setName('layout.preview.connector'); })->addMiddleware(new FeatureAuth($app->getContainer(), ['layout.view', 'template.view'])); +$app->get('/layout/preview/{id}', ['\Xibo\Controller\Preview', 'show']) + ->addMiddleware(new FeatureAuth($app->getContainer(), ['layout.view', 'template.view', 'campaign.view'])) + ->setName('layout.preview'); + // forms $app->get('/layout/form/add', ['\Xibo\Controller\Layout','addForm']) ->addMiddleware(new FeatureAuth($app->getContainer(), ['layout.add'])) @@ -237,6 +240,9 @@ $app->get('/library/search', ['\Xibo\Controller\Library','search']) ->setName('library.search.all'); +$app->get('/library/connector/list', ['\Xibo\Controller\Library','providersList']) + ->setName('library.search.providers'); + $app->get('/library/view', ['\Xibo\Controller\Library','displayPage']) ->addMiddleware(new FeatureAuth($app->getContainer(), ['library.view'])) ->setName('library.view'); @@ -366,8 +372,7 @@ ->setName('campaign.selectfolder.form'); $app->get('/campaign/{id}/preview', ['\Xibo\Controller\Campaign','preview']) - ->addMiddleware(new FeatureAuth($app->getContainer(), ['campaign.view'])) - ->addMiddleware(new FeatureAuth($app->getContainer(), ['layout.view'])) + ->addMiddleware(new FeatureAuth($app->getContainer(), ['campaign.view', 'layout.view'])) ->setName('campaign.preview'); // @@ -418,6 +423,11 @@ $group->get('/dataset/form/import/{id}', ['\Xibo\Controller\DataSet', 'importForm'])->setName('dataSet.import.form'); $group->get('/dataset/form/cache/clear/{id}', ['\Xibo\Controller\DataSet', 'clearCacheForm'])->setName('dataSet.clear.cache.form'); $group->post('/dataset/cache/clear/{id}', ['\Xibo\Controller\DataSet', 'clearCache'])->setName('dataSet.clear.cache'); + $group->get('/dataset/form/{id}/selectfolder', ['\Xibo\Controller\DataSet', 'selectFolderForm'])->setName('dataSet.selectfolder.form'); + + $group->get('/dataset/dataConnector/{id}', ['\Xibo\Controller\DataSet', 'dataConnectorView'])->setName('dataSet.dataConnector.view'); + $group->get('/dataset/dataConnector/request/{id}', ['\Xibo\Controller\DataSet', 'dataConnectorRequest'])->setName('dataSet.dataConnector.request'); + $group->get('/dataset/dataConnector/test/{id}', ['\Xibo\Controller\DataSet', 'dataConnectorTest'])->setName('dataSet.dataConnector.test'); // columns $group->get('/dataset/{id}/column/view', ['\Xibo\Controller\DataSetColumn','displayPage'])->setName('dataSet.column.view'); @@ -566,6 +576,46 @@ ->setName('module.settings.form'); })->addMiddleware(new FeatureAuth($app->getContainer(), ['module.view'])); +// +// Developer +// +$app->group('', function (\Slim\Routing\RouteCollectorProxy $group) { + $group->get('/developer/template/datatypes', ['\Xibo\Controller\Developer', 'getAvailableDataTypes']) + ->setName('developer.templates.datatypes.search'); + $group->get('/developer/template/view', ['\Xibo\Controller\Developer', 'displayTemplatePage']) + ->setName('developer.templates.view'); + $group->get('/developer/template', ['\Xibo\Controller\Developer', 'templateGrid']) + ->setName('developer.templates.search'); + + $group->get('/developer/template/{id}', ['\Xibo\Controller\Developer', 'displayTemplateEditPage']) + ->setName('developer.templates.view.edit'); + + $group->get('/developer/template/form/add', ['\Xibo\Controller\Developer', 'templateAddForm']) + ->setName('developer.templates.form.add'); + + $group->get('/developer/template/form/edit/{id}', ['\Xibo\Controller\Developer', 'templateEditForm']) + ->setName('developer.templates.form.edit'); + + $group->get('/developer/template/form/delete/{id}', ['\Xibo\Controller\Developer', 'templateDeleteForm']) + ->setName('developer.templates.form.delete'); + + $group->get('/developer/template/form/copy/{id}', ['\Xibo\Controller\Developer', 'templateCopyForm']) + ->setName('developer.templates.form.copy'); + + $group->post('/developer/template', ['\Xibo\Controller\Developer', 'templateAdd']) + ->setName('developer.templates.add'); + $group->put('/developer/template/{id}', ['\Xibo\Controller\Developer', 'templateEdit']) + ->setName('developer.templates.edit'); + $group->delete('/developer/template/{id}', ['\Xibo\Controller\Developer', 'templateDelete']) + ->setName('developer.templates.delete'); + $group->get('/developer/template/{id}/export', ['\Xibo\Controller\Developer', 'templateExport']) + ->setName('developer.templates.export'); + $group->post('/developer/template/import', ['\Xibo\Controller\Developer', 'templateImport']) + ->setName('developer.templates.import'); + $group->post('/developer/template/{id}/copy', ['\Xibo\Controller\Developer', 'templateCopy']) + ->setName('developer.templates.copy'); +})->addMiddleware(new FeatureAuth($app->getContainer(), ['developer.edit'])); + // // transition // diff --git a/lib/routes.php b/lib/routes.php index 997bbed15e..d8318337b6 100644 --- a/lib/routes.php +++ b/lib/routes.php @@ -20,6 +20,8 @@ * along with Xibo. If not, see . */ +global $app; + use Slim\Routing\RouteCollectorProxy; use Xibo\Middleware\FeatureAuth; use Xibo\Middleware\LayoutLock; @@ -211,8 +213,18 @@ $group->put('/playlist/{id}', ['\Xibo\Controller\Playlist','edit'])->setName('playlist.edit'); $group->delete('/playlist/{id}', ['\Xibo\Controller\Playlist','delete'])->setName('playlist.delete'); $group->post('/playlist/copy/{id}', ['\Xibo\Controller\Playlist','copy'])->setName('playlist.copy'); - $group->put('/playlist/setenablestat/{id}', ['\Xibo\Controller\Playlist','setEnableStat'])->setName('playlist.setenablestat'); - $group->put('/playlist/{id}/selectfolder', ['\Xibo\Controller\Playlist','selectFolder'])->setName('playlist.selectfolder'); + $group->put( + '/playlist/setenablestat/{id}', + ['\Xibo\Controller\Playlist','setEnableStat'] + )->setName('playlist.setenablestat'); + $group->put( + '/playlist/{id}/selectfolder', + ['\Xibo\Controller\Playlist','selectFolder'] + )->setName('playlist.selectfolder'); + $group->post( + '/playlist/{id}/convert', + ['\Xibo\Controller\Playlist','convert'] + )->setName('playlist.convert'); })->addMiddleware(new FeatureAuth($app->getContainer(), ['playlist.modify'])); @@ -239,7 +251,8 @@ $group->post('/{type}/{id}', ['\Xibo\Controller\Widget','addWidget'])->setName('module.widget.add'); $group->put('/{id}', ['\Xibo\Controller\Widget','editWidget'])->setName('module.widget.edit'); $group->delete('/{id}', ['\Xibo\Controller\Widget','deleteWidget'])->setName('module.widget.delete'); - $group->put('/transition/{type}/{id}', ['\Xibo\Controller\Widget','editWidgetTransition'])->setName('module.widget.transition.edit'); + $group->put('/transition/{type}/{id}', ['\Xibo\Controller\Widget','editWidgetTransition']) + ->setName('module.widget.transition.edit'); $group->put('/{id}/audio', ['\Xibo\Controller\Widget','widgetAudio'])->setName('module.widget.audio'); $group->delete('/{id}/audio', ['\Xibo\Controller\Widget','widgetAudioDelete']); $group->put('/{id}/expiry', ['\Xibo\Controller\Widget','widgetExpiry'])->setName('module.widget.expiry'); @@ -248,6 +261,18 @@ // Drawer widgets Region $group->put('/{id}/target', ['\Xibo\Controller\Widget','widgetSetRegion'])->setName('module.widget.set.region'); + + // Widget Fallback Data APIs + $group->get('/fallback/data/{id}', ['\Xibo\Controller\WidgetData','get']) + ->setName('module.widget.data.get'); + $group->post('/fallback/data/{id}', ['\Xibo\Controller\WidgetData','add']) + ->setName('module.widget.data.add'); + $group->put('/fallback/data/{id}/{dataId}', ['\Xibo\Controller\WidgetData','edit']) + ->setName('module.widget.data.edit'); + $group->delete('/fallback/data/{id}/{dataId}', ['\Xibo\Controller\WidgetData','delete']) + ->setName('module.widget.data.delete'); + $group->post('/fallback/data/{id}/order', ['\Xibo\Controller\WidgetData','setOrder']) + ->setName('module.widget.data.set.order'); }) ->addMiddleware(new FeatureAuth($app->getContainer(), ['layout.modify', 'playlist.modify'])) ->addMiddleware(new LayoutLock($app)); @@ -398,6 +423,7 @@ $app->post('/displaygroup', ['\Xibo\Controller\DisplayGroup','add']) ->addMiddleware(new \Xibo\Middleware\FeatureAuth($app->getContainer(), ['displaygroup.add'])) ->setName('displayGroup.add'); +$app->post('/displaygroup/criteria/{displayGroupId}', ['\Xibo\Controller\DisplayGroup','pushCriteriaUpdate'])->setName('displayGroup.criteria.push'); $app->post('/displaygroup/{id}/action/collectNow', ['\Xibo\Controller\DisplayGroup','collectNow']) ->addMiddleware(new \Xibo\Middleware\FeatureAuth($app->getContainer(), ['displaygroup.view'])) @@ -463,11 +489,14 @@ $app->group('', function (RouteCollectorProxy $group) { $group->put('/dataset/{id}', ['\Xibo\Controller\DataSet','edit'])->setName('dataSet.edit'); $group->delete('/dataset/{id}', ['\Xibo\Controller\DataSet','delete'])->setName('dataSet.delete'); + $group->put('/dataset/{id}/selectfolder', ['\Xibo\Controller\DataSet', 'selectFolder'])->setName('dataSet.selectfolder'); + $group->post('/dataset/copy/{id}', ['\Xibo\Controller\DataSet','copy'])->setName('dataSet.copy'); //$group->map(['HEAD'],'/dataset/import/{id}', ['\Xibo\Controller\DataSet','import'); $group->post('/dataset/import/{id}', ['\Xibo\Controller\DataSet','import'])->setName('dataSet.import'); $group->post('/dataset/importjson/{id}', ['\Xibo\Controller\DataSet','importJson'])->setName('dataSet.import.json'); $group->post('/dataset/remote/test', ['\Xibo\Controller\DataSet','testRemoteRequest'])->setName('dataSet.test.remote'); + $group->put('/dataset/dataConnector/{id}', ['\Xibo\Controller\DataSet','updateDataConnector'])->setName('dataSet.dataConnector.update'); $group->get('/dataset/export/csv/{id}', ['\Xibo\Controller\DataSet', 'exportToCsv'])->setName('dataSet.export.csv'); // Columns diff --git a/locale/af.mo b/locale/af.mo index 30f6b3e8cf..c6939dab57 100755 Binary files a/locale/af.mo and b/locale/af.mo differ diff --git a/locale/ar.mo b/locale/ar.mo index fbb6777c73..18f1d3e554 100755 Binary files a/locale/ar.mo and b/locale/ar.mo differ diff --git a/locale/bg.mo b/locale/bg.mo index 85045c245e..c114fb8d66 100755 Binary files a/locale/bg.mo and b/locale/bg.mo differ diff --git a/locale/ca.mo b/locale/ca.mo index d4ac42a844..3bfd2998f8 100755 Binary files a/locale/ca.mo and b/locale/ca.mo differ diff --git a/locale/cs.mo b/locale/cs.mo index 81915859c1..f55b68e424 100755 Binary files a/locale/cs.mo and b/locale/cs.mo differ diff --git a/locale/da.mo b/locale/da.mo index cf38ce73c6..5e366d45ee 100755 Binary files a/locale/da.mo and b/locale/da.mo differ diff --git a/locale/de.mo b/locale/de.mo index dd38edb581..c3a10f2805 100755 Binary files a/locale/de.mo and b/locale/de.mo differ diff --git a/locale/default.pot b/locale/default.pot index 3349a8e93c..be00d2708e 100755 --- a/locale/default.pot +++ b/locale/default.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-05 08:10+0100\n" +"POT-Creation-Date: 2024-08-29 08:35+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,8 +18,9 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: locale/moduletranslate.php:3 locale/dbtranslate.php:73 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1848 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:483 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1996 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2230 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:512 msgid "Audio" msgstr "" @@ -52,7 +53,7 @@ msgstr "" #: locale/moduletranslate.php:8 locale/moduletranslate.php:716 #: cache/3d/3d43e8adbd5d771e55b4c097d061edee.php:105 #: cache/ea/ea83fd6b5caea08dc04b78466d82213e.php:171 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1495 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1585 msgid "Loop?" msgstr "" @@ -61,7 +62,7 @@ msgid "Should the audio loop if it finishes before the provided duration?" msgstr "" #: locale/moduletranslate.php:10 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:491 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:452 msgid "Calendar" msgstr "" @@ -131,8 +132,8 @@ msgid "" msgstr "" #: locale/moduletranslate.php:26 locale/moduletranslate.php:1413 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:585 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:265 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:599 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:268 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:138 #: cache/79/7925e7fdcb44e9a96c9b2b2e4814991e.php:166 #: lib/Widget/DataType/Event.php:64 @@ -140,8 +141,8 @@ msgid "Start Date" msgstr "" #: locale/moduletranslate.php:27 locale/moduletranslate.php:1414 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:600 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:269 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:614 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:272 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:153 #: cache/79/7925e7fdcb44e9a96c9b2b2e4814991e.php:170 #: lib/Widget/DataType/Event.php:65 @@ -229,7 +230,7 @@ msgid "The duration specified is per item otherwise it is per feed." msgstr "" #: locale/moduletranslate.php:44 locale/moduletranslate.php:554 -#: cache/12/128a25d2a51c15a82cded4869488f710.php:200 +#: cache/12/128a25d2a51c15a82cded4869488f710.php:202 msgid "Number of items" msgstr "" @@ -286,8 +287,8 @@ msgstr "" #: locale/moduletranslate.php:55 #: cache/3d/3d685e4b4f0f4e045b5cc2697b26574d.php:100 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2118 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2146 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2362 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2390 msgid "Canvas" msgstr "" @@ -378,10 +379,10 @@ msgstr "" #: locale/moduletranslate.php:2995 locale/moduletranslate.php:3028 #: locale/moduletranslate.php:3065 locale/moduletranslate.php:3101 #: cache/3d/3d43e8adbd5d771e55b4c097d061edee.php:167 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1130 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1399 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1531 -#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:407 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1220 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1489 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1629 +#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:413 msgid "Left" msgstr "" @@ -472,10 +473,10 @@ msgstr "" #: locale/moduletranslate.php:3000 locale/moduletranslate.php:3033 #: locale/moduletranslate.php:3070 locale/moduletranslate.php:3106 #: cache/3d/3d43e8adbd5d771e55b4c097d061edee.php:152 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1126 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1395 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1523 -#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:411 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1216 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1485 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1621 +#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:409 msgid "Top" msgstr "" @@ -678,7 +679,7 @@ msgstr "" #: locale/moduletranslate.php:3119 locale/moduletranslate.php:3138 #: locale/moduletranslate.php:3165 #: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:238 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1425 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1515 #: cache/0c/0cc104a3d7987780eed7a70657ece580.php:104 msgid "Background Colour" msgstr "" @@ -1012,7 +1013,7 @@ msgstr "" #: locale/moduletranslate.php:3012 locale/moduletranslate.php:3045 #: locale/moduletranslate.php:3076 locale/moduletranslate.php:3154 #: locale/moduletranslate.php:3177 locale/dbtranslate.php:69 -#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:93 +#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:92 msgid "Font" msgstr "" @@ -1122,29 +1123,36 @@ msgid "" msgstr "" #: locale/moduletranslate.php:323 -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:137 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:844 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:141 #: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:133 #: cache/eb/eb0b05526f681e297aa747d8a42bfc36.php:72 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:900 #: cache/7d/7d8878cf40b2a074d7a7dd990858a580.php:82 -#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:122 +#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:126 #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:220 #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:376 #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:399 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:174 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:261 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:876 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1736 -#: cache/1b/1b54f8dd2f1a33488bb30d63484f87f7.php:146 +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:171 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:179 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:264 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:946 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1767 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1876 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2260 +#: cache/1b/1b54f8dd2f1a33488bb30d63484f87f7.php:157 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:412 -#: cache/05/05600263dc8230138bb0f89338bbef69.php:89 +#: cache/05/05600263dc8230138bb0f89338bbef69.php:137 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:139 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:170 #: cache/67/671e1a0d15cf6622a031b0a7a49f5956.php:117 #: cache/35/35be00044edc69c7e0405b74ef1b4562.php:207 -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:91 -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:134 -#: cache/10/10329fe20a57f63b38843c6701587e70.php:113 -#: cache/10/10329fe20a57f63b38843c6701587e70.php:132 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:219 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:325 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:96 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:139 +#: cache/10/10329fe20a57f63b38843c6701587e70.php:118 +#: cache/10/10329fe20a57f63b38843c6701587e70.php:137 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:224 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:328 msgid "Type" msgstr "" @@ -1154,10 +1162,10 @@ msgstr "" #: locale/moduletranslate.php:325 locale/moduletranslate.php:740 #: locale/moduletranslate.php:917 -#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:113 +#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:117 #: cache/fb/fb4bc86a9035b6ec146f3221bdb0c2c1.php:118 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2610 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2699 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2870 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3022 #: cache/71/7116c27ed9d9118b32072e096012ea7b.php:118 #: lib/Widget/DataType/Article.php:74 msgid "Link" @@ -1168,6 +1176,9 @@ msgid "The Location (URL) of the dashboard webpage" msgstr "" #: locale/moduletranslate.php:329 locale/moduletranslate.php:331 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:491 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:573 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:135 msgid "DataSet" msgstr "" @@ -1233,7 +1244,7 @@ msgid "The Number of items you want to display" msgstr "" #: locale/moduletranslate.php:348 locale/moduletranslate.php:352 -#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:140 +#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:144 #: cache/cd/cdfcf24fb200643d729a7d42581ab314.php:188 #: cache/cd/cdfcf24fb200643d729a7d42581ab314.php:340 #: cache/fa/faa7a864be7733d5d543f560dd13d215.php:188 @@ -1395,6 +1406,7 @@ msgid "" msgstr "" #: locale/moduletranslate.php:381 locale/dbtranslate.php:58 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2234 msgid "Flash" msgstr "" @@ -1403,6 +1415,7 @@ msgid "Upload SWF files to assign to Layouts" msgstr "" #: locale/moduletranslate.php:385 locale/dbtranslate.php:99 +#: lib/Connector/OpenWeatherMapConnector.php:667 msgid "Weather" msgstr "" @@ -1420,7 +1433,7 @@ msgstr "" #: locale/moduletranslate.php:389 locale/moduletranslate.php:422 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:554 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:664 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:660 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:346 msgid "Latitude" msgstr "" @@ -1431,7 +1444,7 @@ msgstr "" #: locale/moduletranslate.php:391 locale/moduletranslate.php:424 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:558 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:668 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:664 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:361 msgid "Longitude" msgstr "" @@ -1570,6 +1583,7 @@ msgid "Should the video be muted?" msgstr "" #: locale/moduletranslate.php:439 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2238 msgid "HTML Package" msgstr "" @@ -1590,9 +1604,10 @@ msgstr "" #: locale/moduletranslate.php:445 locale/moduletranslate.php:592 #: locale/moduletranslate.php:916 locale/moduletranslate.php:1161 #: locale/moduletranslate.php:2497 locale/dbtranslate.php:52 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1840 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2622 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2711 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1988 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2222 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2882 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3034 #: lib/Widget/DataType/Product.php:52 lib/Widget/DataType/Article.php:77 #: lib/Widget/DataType/ProductCategory.php:43 msgid "Image" @@ -1777,9 +1792,13 @@ msgid "Leave empty to use the one from settings." msgstr "" #: locale/moduletranslate.php:501 locale/moduletranslate.php:2646 -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:360 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:333 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:427 +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:130 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:371 #: cache/58/582bf6a35fd9661de4021ae6aad02414.php:198 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:132 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:123 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:181 msgid "Username" msgstr "" @@ -1788,8 +1807,8 @@ msgid "Provide Mastodon username to get public statuses from the account." msgstr "" #: locale/moduletranslate.php:503 -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:566 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:539 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:633 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:577 #: lib/Report/DistributionReport.php:490 #: lib/Report/SummaryDistributionCommonTrait.php:89 #: lib/Report/SummaryReport.php:482 @@ -1851,7 +1870,7 @@ msgid "Please select the Menu to use as a source of data for this template." msgstr "" #: locale/moduletranslate.php:520 locale/moduletranslate.php:526 -#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:109 +#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:113 #: cache/fb/fb4bc86a9035b6ec146f3221bdb0c2c1.php:103 #: cache/71/7116c27ed9d9118b32072e096012ea7b.php:103 msgid "Category" @@ -1875,7 +1894,7 @@ msgid "The duration specified is per item otherwise it is per menu." msgstr "" #: locale/moduletranslate.php:530 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1753 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1901 msgid "Sort by" msgstr "" @@ -1884,14 +1903,14 @@ msgid "How should we sort the menu items?" msgstr "" #: locale/moduletranslate.php:532 -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:480 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:558 -#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:211 -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:193 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:527 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:608 +#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:216 +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:152 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:288 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:312 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:193 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1453 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:152 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1418 msgid "Display Order" msgstr "" @@ -1904,49 +1923,50 @@ msgstr "" #: cache/3d/3d685e4b4f0f4e045b5cc2697b26574d.php:184 #: cache/3d/3d2cccf3b2d4ef70fb5cca66b9b93574.php:151 #: cache/3d/3d43e8adbd5d771e55b4c097d061edee.php:90 -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:165 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:169 #: cache/c8/c8b99142441b986f998bf81808403c07.php:181 -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:113 -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:287 -#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:112 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:118 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:290 +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:122 #: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:160 -#: cache/52/522b66fbe5b8efaad37d81db81288730.php:96 -#: cache/52/522b66fbe5b8efaad37d81db81288730.php:111 +#: cache/52/522b66fbe5b8efaad37d81db81288730.php:94 +#: cache/52/522b66fbe5b8efaad37d81db81288730.php:109 #: cache/a0/a08e0b0d63f497e79ba45d275f7d8e2e.php:135 -#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:100 -#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:115 +#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:105 +#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:120 #: cache/68/68fd0cd201e7760602f39ca6ad3e8add.php:88 -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:109 -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:170 -#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:116 -#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:153 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:113 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:174 +#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:121 +#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:158 #: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:154 #: cache/eb/ebcff77a4e266af34134679c91af4d2d.php:100 #: cache/eb/eb0b05526f681e297aa747d8a42bfc36.php:68 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:159 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:167 #: cache/80/80846113d03ba42567baaa96738353d4.php:108 #: cache/03/039a03a53ca9c115563cba3023033457.php:90 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:131 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:129 #: cache/7d/7d8878cf40b2a074d7a7dd990858a580.php:70 -#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:130 -#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:195 -#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:117 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:483 +#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:135 +#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:200 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:123 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:497 #: cache/d5/d548e4848346b34fa2915d684010817b.php:143 #: cache/0a/0a340a0ca0d8bada06401bf9fd7c6bf2.php:90 -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:118 -#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:99 -#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:114 +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:122 +#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:103 +#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:118 #: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:146 -#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:125 -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:119 -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:186 +#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:105 +#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:130 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:118 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:183 #: cache/b1/b1c2db71469950cfdd34c323d05aa155.php:115 #: cache/dc/dc31159d960349451e03fc348c75e315.php:91 #: cache/5e/5ec96adf0346509994d4c975eac80689.php:118 -#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:110 -#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:94 -#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:86 +#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:108 +#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:98 +#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:101 #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:216 #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:292 #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:372 @@ -1957,21 +1977,23 @@ msgstr "" #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:191 #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:395 #: cache/49/4936487d4c4f8a19e60f59a338e483da.php:51 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:102 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:254 -#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:108 -#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:147 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:872 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1479 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1728 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1762 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2048 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2158 -#: cache/1b/1b54f8dd2f1a33488bb30d63484f87f7.php:142 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:107 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:257 +#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:112 +#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:151 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:942 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1569 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1868 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1910 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2256 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2288 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2402 +#: cache/1b/1b54f8dd2f1a33488bb30d63484f87f7.php:131 +#: cache/1b/1b54f8dd2f1a33488bb30d63484f87f7.php:153 #: cache/23/235acc51022bf578b604ce47dd2743a4.php:145 #: cache/23/23114ff234f79ee13968407a57f6252d.php:100 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:119 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:250 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:118 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:248 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:182 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:408 #: cache/18/182efb17b49d552c0a40888c354c91f9.php:141 @@ -1987,13 +2009,13 @@ msgstr "" #: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:157 #: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:360 #: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:412 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:118 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:122 #: cache/5d/5d1d07a99874fba69dc650a90f8eab06.php:91 #: cache/22/22125d4e14bf79dcb46dd4705caf6309.php:124 -#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:112 -#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:202 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:117 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:205 #: cache/c5/c52b8109558dd3acc604e183177113c8.php:133 -#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:118 +#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:116 #: cache/b0/b0d638d98d54413cf5ca73bcaa313dae.php:120 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:123 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:384 @@ -2005,43 +2027,41 @@ msgstr "" #: cache/31/31805080e1e51d4a56cb67fa60bdcb2f.php:91 #: cache/35/35be00044edc69c7e0405b74ef1b4562.php:203 #: cache/35/35be00044edc69c7e0405b74ef1b4562.php:246 -#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:116 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:218 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:516 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1547 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1590 +#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:115 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:223 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:477 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1512 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1555 #: cache/42/427f29e983bd9df69023fb3b4d508a91.php:141 #: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:113 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:125 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:163 #: cache/06/064860d0048e253d534fdf8acb4ec0bd.php:141 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:136 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:422 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:142 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:426 #: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:168 #: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:249 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:594 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:606 #: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:100 -#: cache/10/10329fe20a57f63b38843c6701587e70.php:103 -#: cache/10/10329fe20a57f63b38843c6701587e70.php:128 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:137 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:321 +#: cache/10/10329fe20a57f63b38843c6701587e70.php:108 +#: cache/10/10329fe20a57f63b38843c6701587e70.php:133 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:142 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:324 #: cache/10/1090c5665a57f49e6b968318ca49de82.php:89 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:102 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:186 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:107 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:189 #: cache/60/603a543f479715b41db75352b8cdb845.php:91 #: cache/11/1107af5e0742401bd7bdcb180ef3991e.php:138 #: cache/11/1107af5e0742401bd7bdcb180ef3991e.php:169 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:105 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:196 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:110 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:199 #: lib/Widget/DataType/Product.php:46 #: lib/Widget/DataType/ProductCategory.php:41 msgid "Name" msgstr "" #: locale/moduletranslate.php:534 locale/moduletranslate.php:2602 -#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:203 -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:148 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:148 +#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:208 +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:137 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:137 #: lib/Widget/DataType/Product.php:47 msgid "Price" msgstr "" @@ -2052,20 +2072,22 @@ msgstr "" #: cache/91/91982ff1ff9899125ec30731f264a8f4.php:157 #: cache/91/91982ff1ff9899125ec30731f264a8f4.php:191 #: cache/c8/c8b99142441b986f998bf81808403c07.php:343 -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:283 -#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:157 -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:99 -#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:106 -#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:149 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:286 +#: cache/12/1239457c009f290772b733957cc20e8b.php:91 +#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:161 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:103 +#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:111 +#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:154 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:461 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:121 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:553 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:119 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:549 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:345 -#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:120 -#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:191 -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:112 -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:109 -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:182 +#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:125 +#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:196 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:173 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:116 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:108 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:179 #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:288 #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:368 #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:487 @@ -2073,39 +2095,43 @@ msgstr "" #: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:166 #: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:200 #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:391 -#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:130 -#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:98 -#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:143 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:109 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:246 +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:112 +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:155 +#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:135 +#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:102 +#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:147 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2252 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:108 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:244 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:404 #: cache/18/182efb17b49d552c0a40888c354c91f9.php:159 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:180 -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:180 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:178 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:204 #: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:408 -#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:102 -#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:198 -#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:114 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:107 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:201 +#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:100 +#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:112 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:380 #: cache/67/671e1a0d15cf6622a031b0a7a49f5956.php:113 #: cache/35/35be00044edc69c7e0405b74ef1b4562.php:199 #: cache/35/35be00044edc69c7e0405b74ef1b4562.php:242 -#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:106 -#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:131 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:507 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1417 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1543 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1586 +#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:105 +#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:130 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:468 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1382 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1508 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1551 #: cache/42/427f29e983bd9df69023fb3b4d508a91.php:159 #: cache/06/064860d0048e253d534fdf8acb4ec0bd.php:164 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:126 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:418 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:132 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:422 #: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:200 #: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:272 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:127 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:317 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:192 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:132 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:320 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:195 msgid "ID" msgstr "" @@ -2152,6 +2178,7 @@ msgid "What is the maximum notification age in minutes, 0 for no restrictions." msgstr "" #: locale/moduletranslate.php:557 locale/dbtranslate.php:75 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2242 msgid "PDF" msgstr "" @@ -2168,6 +2195,7 @@ msgid "The duration specified is per page otherwise it is per document." msgstr "" #: locale/moduletranslate.php:563 locale/dbtranslate.php:59 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2246 msgid "PowerPoint" msgstr "" @@ -2251,6 +2279,8 @@ msgid "Media Content" msgstr "" #: locale/moduletranslate.php:593 locale/moduletranslate.php:3080 +#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:273 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:135 #: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:126 #: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:719 msgid "Custom" @@ -2297,8 +2327,8 @@ msgid "" msgstr "" #: locale/moduletranslate.php:602 -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:405 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:378 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:472 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:416 msgid "User Agent" msgstr "" @@ -2470,7 +2500,7 @@ msgid "" msgstr "" #: locale/moduletranslate.php:645 -#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:226 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:421 msgid "Partner" msgstr "" @@ -2498,18 +2528,19 @@ msgstr "" #: locale/moduletranslate.php:666 #: cache/3d/3d685e4b4f0f4e045b5cc2697b26574d.php:82 -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:335 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:339 #: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:180 #: cache/eb/eb0b05526f681e297aa747d8a42bfc36.php:64 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:419 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1074 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1086 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1252 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2013 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2130 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2182 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:427 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1160 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1172 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1342 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2185 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2374 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2426 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:493 #: cache/34/3453edc522f8d2c6d1d154ad55500693.php:66 -#: lib/Entity/Schedule.php:1975 +#: lib/Entity/Schedule.php:2089 msgid "Playlist" msgstr "" @@ -2642,20 +2673,20 @@ msgstr "" #: locale/moduletranslate.php:691 #: cache/a2/a25dbce646a9a1ed849b53f6d93ed8cb.php:144 -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:320 -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:228 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:324 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:233 #: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:154 -#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:157 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:404 +#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:162 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:412 #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:254 -#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:207 +#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:212 #: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:195 -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:238 +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:197 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:167 #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:359 #: cache/d7/d7ce5b1f05d3a691d8332e778a077544.php:140 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:238 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:342 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:197 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:348 msgid "Media" msgstr "" @@ -2779,7 +2810,8 @@ msgid "Optional Stylesheet" msgstr "" #: locale/moduletranslate.php:705 locale/dbtranslate.php:54 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1856 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2004 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2226 msgid "Video" msgstr "" @@ -2868,8 +2900,8 @@ msgstr "" #: locale/moduletranslate.php:746 #: cache/eb/ebcff77a4e266af34134679c91af4d2d.php:88 #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:118 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1007 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1675 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1089 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1799 #: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:118 msgid "Options" msgstr "" @@ -2983,7 +3015,7 @@ msgstr "" #: locale/moduletranslate.php:782 locale/moduletranslate.php:1190 #: locale/moduletranslate.php:1234 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1429 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1519 #: cache/0c/0cc104a3d7987780eed7a70657ece580.php:109 msgid "Use the colour picker to select the background colour" msgstr "" @@ -3220,10 +3252,14 @@ msgstr "" #: locale/moduletranslate.php:908 locale/moduletranslate.php:965 #: locale/moduletranslate.php:987 locale/moduletranslate.php:1007 #: locale/moduletranslate.php:1026 locale/dbtranslate.php:147 -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:116 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:188 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:120 #: cache/f6/f60761fa1e2b5ad016f9d13f094f9488.php:56 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2590 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2679 +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:122 +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:167 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2850 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3002 +#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:115 #: cache/cd/cdfcf24fb200643d729a7d42581ab314.php:204 #: cache/fa/faa7a864be7733d5d543f560dd13d215.php:204 #: lib/Widget/DataType/Article.php:69 @@ -3232,8 +3268,8 @@ msgstr "" #: locale/moduletranslate.php:909 locale/moduletranslate.php:1411 #: locale/moduletranslate.php:1790 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2594 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2683 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2854 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3006 #: lib/Widget/DataType/Article.php:70 lib/Widget/DataType/Event.php:61 msgid "Summary" msgstr "" @@ -3241,8 +3277,8 @@ msgstr "" #: locale/moduletranslate.php:910 #: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:165 #: cache/64/6468accf3a0fea12fced661d430c769f.php:269 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2598 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2687 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2858 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3010 #: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:106 #: lib/Widget/DataType/Article.php:71 msgid "Content" @@ -3257,9 +3293,9 @@ msgid "Should new lines (\\n) be removed from content?" msgstr "" #: locale/moduletranslate.php:913 -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:120 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2602 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2691 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:124 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2862 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3014 #: cache/cd/cdfcf24fb200643d729a7d42581ab314.php:219 #: cache/fa/faa7a864be7733d5d543f560dd13d215.php:219 #: lib/Widget/DataType/Article.php:72 @@ -3272,24 +3308,26 @@ msgstr "" #: locale/moduletranslate.php:2587 locale/moduletranslate.php:2647 #: locale/dbtranslate.php:33 cache/04/04b11bf7b7a8190d66899471a8930ffd.php:353 #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:166 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2614 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2703 -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:184 -#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:111 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2874 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3026 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:182 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:151 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:174 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:494 #: lib/Widget/DataType/SocialMedia.php:72 msgid "Date" msgstr "" #: locale/moduletranslate.php:915 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2618 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2707 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2878 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3030 #: lib/Widget/DataType/Article.php:76 msgid "Published Date" msgstr "" #: locale/moduletranslate.php:918 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2606 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2695 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2866 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3018 #: lib/Widget/DataType/Article.php:73 msgid "Permalink" msgstr "" @@ -3345,8 +3383,8 @@ msgstr "" #: cache/3c/3cff55fb510343a28bcab4eebabcb98a.php:283 #: cache/68/683636238aff529d5a7b7478118dede4.php:2925 #: cache/ee/ee0c1651752b1209943673ee1794a659.php:283 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2651 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2740 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2911 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3063 msgid "Date Format" msgstr "" @@ -3501,7 +3539,7 @@ msgstr "" #: locale/moduletranslate.php:952 locale/moduletranslate.php:974 #: locale/moduletranslate.php:995 locale/moduletranslate.php:1808 #: locale/moduletranslate.php:2504 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2500 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2760 msgid "Fill" msgstr "" @@ -3535,30 +3573,30 @@ msgstr "" #: cache/91/91982ff1ff9899125ec30731f264a8f4.php:199 #: cache/c8/c8b99142441b986f998bf81808403c07.php:196 #: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:96 -#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:197 +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:300 #: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:175 -#: cache/52/522b66fbe5b8efaad37d81db81288730.php:115 -#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:119 -#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:165 +#: cache/52/522b66fbe5b8efaad37d81db81288730.php:113 +#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:124 +#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:170 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:493 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:593 -#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:199 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:589 +#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:204 #: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:96 -#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:205 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:304 #: cache/d5/d548e4848346b34fa2915d684010817b.php:88 #: cache/d5/d548e4848346b34fa2915d684010817b.php:261 -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:133 +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:217 #: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:161 -#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:137 +#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:142 #: cache/b1/b1c2db71469950cfdd34c323d05aa155.php:145 -#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:129 +#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:127 #: cache/81/811403ea85a4f89fb6575e4ffc9988d8.php:112 #: cache/d7/d7ce5b1f05d3a691d8332e778a077544.php:110 #: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:174 #: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:208 #: cache/23/23114ff234f79ee13968407a57f6252d.php:88 -#: cache/23/23114ff234f79ee13968407a57f6252d.php:188 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:254 +#: cache/23/23114ff234f79ee13968407a57f6252d.php:208 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:252 #: cache/63/63e26e752b3c6315edeb7408e1bf2ae9.php:112 #: cache/63/63a123f42a16165e90cd9f604b2de4bd.php:96 #: cache/63/63a123f42a16165e90cd9f604b2de4bd.php:231 @@ -3566,21 +3604,21 @@ msgstr "" #: cache/51/5183626e7e19083fdf9708e7d778f66f.php:191 #: cache/73/736be9c5f96ff30502beba0ab9149fd4.php:91 #: cache/73/736be9c5f96ff30502beba0ab9149fd4.php:175 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:133 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:217 #: cache/22/22125d4e14bf79dcb46dd4705caf6309.php:154 -#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:206 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:209 #: cache/b0/b0d638d98d54413cf5ca73bcaa313dae.php:104 #: cache/b0/b0d638d98d54413cf5ca73bcaa313dae.php:182 #: cache/bc/bc965084fd482159596791d6371a0f77.php:204 #: cache/83/8300bf8b96eee9813dc4373df0e08748.php:88 #: cache/83/8300bf8b96eee9813dc4373df0e08748.php:225 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:317 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:430 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:323 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:434 #: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:88 -#: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:190 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:198 +#: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:210 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:201 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:225 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:200 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:203 #: lib/Widget/DataType/Product.php:48 lib/Widget/DataType/Event.php:62 #: lib/Widget/DataType/ProductCategory.php:42 msgid "Description" @@ -3597,8 +3635,8 @@ msgstr "" #: locale/moduletranslate.php:2409 locale/moduletranslate.php:2435 #: locale/moduletranslate.php:2471 locale/moduletranslate.php:2611 #: locale/moduletranslate.php:2625 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2635 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2724 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2895 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3047 msgid "Font Size" msgstr "" @@ -3675,8 +3713,8 @@ msgstr "" #: locale/moduletranslate.php:1069 locale/moduletranslate.php:1403 #: locale/moduletranslate.php:2437 locale/moduletranslate.php:2473 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2639 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2728 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2899 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3051 msgid "Bold" msgstr "" @@ -3686,8 +3724,8 @@ msgstr "" #: locale/moduletranslate.php:1071 locale/moduletranslate.php:1405 #: locale/moduletranslate.php:2439 locale/moduletranslate.php:2475 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2643 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2732 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2903 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3055 msgid "Italics" msgstr "" @@ -3697,8 +3735,8 @@ msgstr "" #: locale/moduletranslate.php:1073 locale/moduletranslate.php:1407 #: locale/moduletranslate.php:2441 locale/moduletranslate.php:2477 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2647 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2736 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2907 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3059 msgid "Underline" msgstr "" @@ -3932,8 +3970,8 @@ msgstr "" #: locale/moduletranslate.php:1796 locale/moduletranslate.php:2434 #: locale/moduletranslate.php:2470 locale/moduletranslate.php:2612 #: locale/moduletranslate.php:2626 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2631 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2720 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2891 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3043 msgid "Font Colour" msgstr "" @@ -4337,10 +4375,12 @@ msgid "Icon" msgstr "" #: locale/moduletranslate.php:1798 +#: lib/Connector/OpenWeatherMapConnector.php:690 msgid "Wind Direction" msgstr "" #: locale/moduletranslate.php:1799 +#: lib/Connector/OpenWeatherMapConnector.php:688 msgid "Wind Speed" msgstr "" @@ -4362,7 +4402,7 @@ msgstr "" #: locale/moduletranslate.php:2257 locale/moduletranslate.php:2286 #: locale/moduletranslate.php:2321 locale/moduletranslate.php:2356 #: locale/moduletranslate.php:2380 locale/moduletranslate.php:2412 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1433 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1523 #: cache/0c/0cc104a3d7987780eed7a70657ece580.php:121 msgid "Background Image" msgstr "" @@ -4575,15 +4615,17 @@ msgstr "" #: locale/moduletranslate.php:2288 locale/moduletranslate.php:2323 #: locale/moduletranslate.php:2358 locale/moduletranslate.php:2382 #: locale/moduletranslate.php:2414 -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:577 -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:322 -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:556 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:631 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:295 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:529 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2834 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:624 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:389 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:623 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:681 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:333 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:567 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:231 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3157 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:361 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:408 +#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:175 msgid "None" msgstr "" @@ -4851,8 +4893,8 @@ msgid "The colour of the container background" msgstr "" #: locale/moduletranslate.php:2432 locale/moduletranslate.php:2468 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2627 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2716 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2887 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3039 msgid "Font Family" msgstr "" @@ -4929,8 +4971,8 @@ msgid "Enter the URL of the image you want to use." msgstr "" #: locale/moduletranslate.php:2500 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2655 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2744 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2915 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3067 msgid "Opacity" msgstr "" @@ -4956,14 +4998,14 @@ msgstr "" #: cache/09/09ce3b6a0541b31d12645b44531faf96.php:245 #: cache/f6/f60761fa1e2b5ad016f9d13f094f9488.php:103 #: cache/65/651e2483d1426d8b1b7ce3fef030fb15.php:103 -#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:138 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1114 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1403 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1539 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1770 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2659 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2748 -#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:415 +#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:143 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1204 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1493 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1637 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1918 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2919 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3071 +#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:417 msgid "Width" msgstr "" @@ -4972,6 +5014,8 @@ msgid "Colour" msgstr "" #: locale/moduletranslate.php:2524 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:134 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:342 msgid "Style" msgstr "" @@ -5080,7 +5124,7 @@ msgstr "" #: locale/moduletranslate.php:2574 locale/moduletranslate.php:2585 #: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:116 -#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:107 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:166 #: cache/fa/fa9935428c44daef4d95e4b582124caa.php:116 msgid "Subject" msgstr "" @@ -5091,10 +5135,10 @@ msgstr "" #: locale/moduletranslate.php:2577 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:594 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:752 -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:190 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1786 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:303 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:748 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:187 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1934 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:301 #: lib/Widget/DataType/Article.php:75 msgid "Created Date" msgstr "" @@ -5173,9 +5217,9 @@ msgid "Options: Value" msgstr "" #: locale/moduletranslate.php:2639 -#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:223 -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:178 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:178 +#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:228 +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:247 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:247 #: lib/Widget/DataType/Product.php:51 msgid "Calories" msgstr "" @@ -5588,7 +5632,7 @@ msgstr "" msgid "Fade In" msgstr "" -#: locale/dbtranslate.php:27 cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2862 +#: locale/dbtranslate.php:27 cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3185 msgid "Fade Out" msgstr "" @@ -5600,9 +5644,12 @@ msgstr "" msgid "External Image" msgstr "" -#: locale/dbtranslate.php:37 cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:305 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:604 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:746 +#: locale/dbtranslate.php:37 cache/c8/c81aa074ed0c595eefef0776b8c89639.php:856 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:912 +#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:243 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:306 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:616 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:758 msgid "Value" msgstr "" @@ -5811,11 +5858,11 @@ msgstr "" msgid "December" msgstr "" -#: locale/dbtranslate.php:119 lib/Factory/UserGroupFactory.php:922 +#: locale/dbtranslate.php:119 lib/Factory/UserGroupFactory.php:979 msgid "Icon Dashboard" msgstr "" -#: locale/dbtranslate.php:120 lib/Factory/UserGroupFactory.php:916 +#: locale/dbtranslate.php:120 lib/Factory/UserGroupFactory.php:973 msgid "Status Dashboard" msgstr "" @@ -5957,11 +6004,11 @@ msgstr "" msgid "Right now" msgstr "" -#: locale/dbtranslate.php:167 +#: locale/dbtranslate.php:167 lib/Connector/OpenWeatherMapConnector.php:713 msgid "Pressure" msgstr "" -#: locale/dbtranslate.php:168 +#: locale/dbtranslate.php:168 lib/Connector/OpenWeatherMapConnector.php:715 msgid "Visibility" msgstr "" @@ -5989,8 +6036,10 @@ msgstr "" #: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:73 #: cache/c8/c8b99142441b986f998bf81808403c07.php:67 #: cache/bb/bba27e43d8e558ba6d285ff214f194e1.php:65 +#: cache/12/1239457c009f290772b733957cc20e8b.php:68 #: cache/b8/b81dfc25d045feba9e99bafc39f2c552.php:65 #: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:66 +#: cache/94/9464af4a196c6fb9a396017edb6718bb.php:65 #: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:66 #: cache/5a/5a34b094516ac476287fa5e412610303.php:65 #: cache/a0/a08e0b0d63f497e79ba45d275f7d8e2e.php:65 @@ -6021,6 +6070,7 @@ msgstr "" #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:66 #: cache/0a/0a340a0ca0d8bada06401bf9fd7c6bf2.php:67 #: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:72 +#: cache/41/416015b714a3d4ce25c4f5a60b5e0869.php:68 #: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:66 #: cache/ae/ae925f8de1afddaa54d77aba65ebb00b.php:65 #: cache/a9/a9e5683d775fba4115fbe1530a299060.php:68 @@ -6047,9 +6097,9 @@ msgstr "" #: cache/e3/e31b4df8534304ebbf1261cf4fb5314c.php:65 #: cache/33/33968a0a5a1ed14133e2cd23ec95b9a9.php:65 #: cache/74/746ec3a82f78da39c0d83b4d24c675b3.php:71 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:832 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:853 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1281 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:902 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:923 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1371 #: cache/1b/1b54f8dd2f1a33488bb30d63484f87f7.php:68 #: cache/23/235acc51022bf578b604ce47dd2743a4.php:68 #: cache/23/23114ff234f79ee13968407a57f6252d.php:65 @@ -6080,6 +6130,7 @@ msgstr "" #: cache/3b/3b9cacba37bbb7e89681dcd788de8b05.php:65 #: cache/71/7116c27ed9d9118b32072e096012ea7b.php:65 #: cache/26/26e331d824f29de3b77e8888f0d29b15.php:68 +#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:66 #: cache/c5/c52b8109558dd3acc604e183177113c8.php:66 #: cache/2c/2c7e285435ee15c451266c797cce5a32.php:65 #: cache/2c/2c55cdb5429a136a535a9cd9b127d575.php:65 @@ -6087,7 +6138,7 @@ msgstr "" #: cache/c6/c6570004e7b23a90548bf6f9c53600f0.php:65 #: cache/b0/b0d638d98d54413cf5ca73bcaa313dae.php:67 #: cache/b0/b05e5edd52f5df3c92f275e802bfd21a.php:65 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:543 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:548 #: cache/bc/bcf5f9074f174f8b5cbd4c3a0b0b5850.php:65 #: cache/bc/bc9a3e0798fa1ba064d681f1d6c69009.php:65 #: cache/bc/bc965084fd482159596791d6371a0f77.php:65 @@ -6105,7 +6156,7 @@ msgstr "" #: cache/3a/3aa0a33f33a855bb42a0c3267174495d.php:65 #: cache/f1/f175af5a0b688206a139cd08f00e63e5.php:65 #: cache/ca/ca2dd0b2142f7bc07fc5e4b9d6a35375.php:68 -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:340 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:368 #: cache/37/377ff96eb23f94563370a45d1c41993f.php:73 #: cache/fa/fa9935428c44daef4d95e4b582124caa.php:73 #: cache/fa/faae83213ac48b5ddd10aa2f75cd5121.php:65 @@ -6144,17 +6195,18 @@ msgstr "" #: cache/16/1615c30bcb549b0701fc601d992580eb.php:69 #: cache/39/39b6c5c36d79ecc73403045a4b553399.php:69 #: cache/bb/bba27e43d8e558ba6d285ff214f194e1.php:69 +#: cache/94/9464af4a196c6fb9a396017edb6718bb.php:69 #: cache/68/6890d35803a665b9db578df45f0f60f0.php:70 #: cache/14/14165eacc3942d330924d58703131cba.php:69 #: cache/f9/f9380bc0ae4e8cd229cd91c7cdd73df4.php:69 #: cache/f9/f92fcbc3e5aadf70527c18c1877f9814.php:69 #: cache/75/751b2a96c8637d98a362ec0fd7c3d205.php:69 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:177 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:202 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:227 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:480 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:997 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:409 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:175 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:200 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:225 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:478 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1015 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:423 #: cache/88/88ea0bf76c0247d2574b4760f8157b6b.php:69 #: cache/17/1730b41c1b94639a7bb894f0f6bbe405.php:78 #: cache/17/17a063cd6b023f6b3259fc5bb6f3383f.php:78 @@ -6165,9 +6217,9 @@ msgstr "" #: cache/29/294f373475cdd3d7df887812134af374.php:69 #: cache/2f/2ff9d6ea9a67ebd110e5702c27503ba4.php:81 #: cache/9c/9cd9c506c8127381b3a38d63834ca951.php:72 -#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:107 +#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:112 #: cache/e3/e31b4df8534304ebbf1261cf4fb5314c.php:69 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:709 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:779 #: cache/58/581725fc73e075b270eb8c5ca975df6c.php:69 #: cache/73/7380f2a38e77dc7c928531f9d5420936.php:69 #: cache/c0/c0e9fb4708e939b6f7beb146f0d68435.php:69 @@ -6182,14 +6234,14 @@ msgstr "" #: cache/4a/4a5cc7c83dad3def46c8e5520964964d.php:69 #: cache/4c/4cf917c586e727b0fb8bbf89dacfd02d.php:72 #: cache/31/3166fdb717b675138677789dfe3ee06a.php:69 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:455 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:468 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:416 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:429 #: cache/8f/8ff33b0a8b8fc5a9fe400184b8838e4f.php:77 #: cache/f1/f175af5a0b688206a139cd08f00e63e5.php:69 #: cache/8d/8d762416eec05c4841be70e1b937f167.php:70 #: cache/72/7200184dcf867208ff40fb0a39739de4.php:69 #: cache/53/53e83337eb2bf3e9523456dda845ffab.php:69 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:280 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:286 #: cache/10/1059436378c31f42b91ec08aa5499036.php:69 #: cache/d1/d1f7c2019c76b8371777ee48d123f8ca.php:69 #: cache/15/159208e1f5d4b5b8c32db48cfd0eb9e4.php:69 @@ -6228,10 +6280,10 @@ msgstr "" #: cache/7f/7f6fb9fb77c85bdf7ccd1ed5556c7a81.php:123 #: cache/2c/2c7e285435ee15c451266c797cce5a32.php:69 #: cache/32/32885dae79820faade39c5207ec15914.php:341 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:622 -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:627 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:481 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:499 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:587 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:671 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:501 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:519 msgid "Next" msgstr "" @@ -6266,12 +6318,14 @@ msgstr "" #: cache/a5/a593dac8469a0e585ebaf44442696494.php:70 #: cache/7d/7d93daaf181fe08e96e60d7e241a1d1c.php:69 #: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:70 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:250 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:264 #: cache/d5/d548e4848346b34fa2915d684010817b.php:69 #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:70 #: cache/0a/0a340a0ca0d8bada06401bf9fd7c6bf2.php:71 #: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:80 +#: cache/41/416015b714a3d4ce25c4f5a60b5e0869.php:72 #: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:70 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:418 #: cache/ae/ae925f8de1afddaa54d77aba65ebb00b.php:69 #: cache/a9/a9e5683d775fba4115fbe1530a299060.php:72 #: cache/ea/ea83fd6b5caea08dc04b78466d82213e.php:72 @@ -6280,6 +6334,7 @@ msgstr "" #: cache/5e/5ec96adf0346509994d4c975eac80689.php:69 #: cache/fb/fb4bc86a9035b6ec146f3221bdb0c2c1.php:69 #: cache/7f/7fc756b1f76699c2b9e7d2bfb64e9999.php:69 +#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:139 #: cache/81/811403ea85a4f89fb6575e4ffc9988d8.php:72 #: cache/d7/d7326d049226360861decd025d796004.php:72 #: cache/d7/d7ce5b1f05d3a691d8332e778a077544.php:75 @@ -6288,9 +6343,10 @@ msgstr "" #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:71 #: cache/33/33968a0a5a1ed14133e2cd23ec95b9a9.php:69 #: cache/74/746ec3a82f78da39c0d83b4d24c675b3.php:75 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1277 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1367 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2939 #: cache/1b/1b54f8dd2f1a33488bb30d63484f87f7.php:72 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:385 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:400 #: cache/23/235acc51022bf578b604ce47dd2743a4.php:72 #: cache/23/23114ff234f79ee13968407a57f6252d.php:69 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:71 @@ -6311,13 +6367,14 @@ msgstr "" #: cache/2b/2b524e8ea3d6496ba6837a702ebed2f4.php:116 #: cache/22/22125d4e14bf79dcb46dd4705caf6309.php:71 #: cache/71/7116c27ed9d9118b32072e096012ea7b.php:69 +#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:70 #: cache/c5/c52b8109558dd3acc604e183177113c8.php:70 #: cache/2c/2c7e285435ee15c451266c797cce5a32.php:73 #: cache/2c/2c55cdb5429a136a535a9cd9b127d575.php:69 #: cache/2c/2c268905994cc74a86fb2ebd71265416.php:69 #: cache/b0/b0d638d98d54413cf5ca73bcaa313dae.php:71 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:333 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:539 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:544 #: cache/bc/bc9a3e0798fa1ba064d681f1d6c69009.php:69 #: cache/bc/bc965084fd482159596791d6371a0f77.php:69 #: cache/4a/4a1316556dbf2c1f6276a15abb899508.php:73 @@ -6328,7 +6385,7 @@ msgstr "" #: cache/cd/cdfcf24fb200643d729a7d42581ab314.php:72 #: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:70 #: cache/3a/3aa0a33f33a855bb42a0c3267174495d.php:69 -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:336 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:364 #: cache/37/377ff96eb23f94563370a45d1c41993f.php:77 #: cache/fa/fa9935428c44daef4d95e4b582124caa.php:77 #: cache/fa/faa7a864be7733d5d543f560dd13d215.php:72 @@ -6337,7 +6394,7 @@ msgstr "" #: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:69 #: cache/8d/8de7dd9661211f3ba39933b564d76990.php:70 #: cache/72/72bfb52fd80e06544d4442d19663906a.php:72 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:476 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:496 #: cache/06/064860d0048e253d534fdf8acb4ec0bd.php:78 #: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:78 #: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:69 @@ -6366,31 +6423,32 @@ msgstr "" #: cache/a2/a25dbce646a9a1ed849b53f6d93ed8cb.php:129 #: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:190 -#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:134 -#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:161 -#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:148 -#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:227 -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:223 +#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:139 +#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:166 +#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:153 +#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:232 +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:182 #: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:176 -#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:110 -#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:129 +#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:115 +#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:134 #: cache/b1/b1c2db71469950cfdd34c323d05aa155.php:130 #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:158 #: cache/d7/d7ce5b1f05d3a691d8332e778a077544.php:125 -#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:147 +#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:149 +#: cache/23/23114ff234f79ee13968407a57f6252d.php:115 #: cache/63/63e26e752b3c6315edeb7408e1bf2ae9.php:127 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:223 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:182 #: cache/22/22125d4e14bf79dcb46dd4705caf6309.php:139 -#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:122 -#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:210 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:127 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:213 #: cache/4c/4c51c53e92ed5731d0e8526118d29799.php:118 #: cache/3a/3aa0a33f33a855bb42a0c3267174495d.php:113 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:177 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:481 -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:111 -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:142 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:115 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:204 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:183 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:485 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:116 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:147 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:120 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:207 msgid "Code" msgstr "" @@ -6427,7 +6485,7 @@ msgstr "" #: cache/3d/3d43e8adbd5d771e55b4c097d061edee.php:68 #: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:98 #: cache/c8/c8b99142441b986f998bf81808403c07.php:138 -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:99 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:104 #: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:92 #: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:92 #: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:55 @@ -6436,16 +6494,17 @@ msgstr "" #: cache/eb/ebcff77a4e266af34134679c91af4d2d.php:84 #: cache/80/8016dad6634116cf39ffaf1bbf646931.php:101 #: cache/09/09ce3b6a0541b31d12645b44531faf96.php:55 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:108 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:106 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:105 #: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:92 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:457 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:471 #: cache/d5/d548e4848346b34fa2915d684010817b.php:84 #: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:101 #: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:92 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:102 #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:138 #: cache/49/49b3c02c876e8a464a75e1682c064115.php:55 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1102 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1192 #: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:55 #: cache/23/23114ff234f79ee13968407a57f6252d.php:84 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:138 @@ -6465,7 +6524,7 @@ msgstr "" #: cache/fa/fa9935428c44daef4d95e4b582124caa.php:92 #: cache/fa/faa7a864be7733d5d543f560dd13d215.php:184 #: cache/8d/8de7dd9661211f3ba39933b564d76990.php:92 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:113 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:119 #: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:84 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:100 msgid "General" @@ -6474,8 +6533,8 @@ msgstr "" #: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:96 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:318 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:377 -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:165 -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:204 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:163 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:202 #: cache/fa/fa9935428c44daef4d95e4b582124caa.php:96 msgid "Message" msgstr "" @@ -6506,80 +6565,69 @@ msgid "The date when this notification will be published" msgstr "" #: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:146 -#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:115 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:178 #: cache/fa/fa9935428c44daef4d95e4b582124caa.php:146 -msgid "Email?" +msgid "Interrupt?" msgstr "" #: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:151 #: cache/fa/fa9935428c44daef4d95e4b582124caa.php:151 -msgid "Should the notification be emailed?" -msgstr "" - -#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:161 -#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:119 -#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:161 -msgid "Interrupt?" -msgstr "" - -#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:166 -#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:166 msgid "" "Should the notification interrupt nagivation in the Web Portal? Including " "Login." msgstr "" -#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:178 -#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:178 +#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:163 +#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:163 msgid "" "Add the body of your message in the box below. If you are going to target " "this message to a Display/DisplayGroup be aware that the formatting you " "apply here will be removed." msgstr "" -#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:194 -#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:212 +#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:179 +#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:197 #: cache/46/46d175eb37bdc1a79c39e008e76f3511.php:172 #: cache/68/683636238aff529d5a7b7478118dede4.php:135 #: cache/68/683636238aff529d5a7b7478118dede4.php:3275 #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:481 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:121 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:328 -#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:194 -#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:212 +#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:179 +#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:197 #: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:55 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:111 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:109 #: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:118 msgid "Users" msgstr "" -#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:199 -#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:199 +#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:184 +#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:184 msgid "" "Please select one or more users / groups who will receive this notification." msgstr "" -#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:207 -#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:255 -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:204 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:211 +#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:192 +#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:240 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:208 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:219 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:177 -#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:207 -#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:255 +#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:192 +#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:240 msgid "Groups" msgstr "" -#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:227 -#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:227 +#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:212 +#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:212 msgid "Non users" msgstr "" -#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:232 -#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:232 +#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:217 +#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:217 msgid "Additional emails separated by a comma." msgstr "" -#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:242 +#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:227 #: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:291 #: cache/91/91982ff1ff9899125ec30731f264a8f4.php:95 #: cache/c8/c8b99142441b986f998bf81808403c07.php:283 @@ -6590,51 +6638,53 @@ msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:78 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:414 #: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:55 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:96 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:94 #: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:240 #: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:250 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:210 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:219 #: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:95 #: cache/79/7925e7fdcb44e9a96c9b2b2e4814991e.php:194 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:284 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:297 -#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:242 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:289 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:302 +#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:227 #: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:136 #: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:110 msgid "Displays" msgstr "" -#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:247 -#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:247 +#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:232 +#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:232 msgid "" "Please select one or more displays / groups for this notification to be " "shown on - Layouts will need the notification widget." msgstr "" -#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:260 +#: cache/39/394b19a8eebf2eb1d9628eb62cde032c.php:245 #: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:355 #: cache/3d/3d685e4b4f0f4e045b5cc2697b26574d.php:76 #: cache/3d/3d2cccf3b2d4ef70fb5cca66b9b93574.php:187 #: cache/91/91982ff1ff9899125ec30731f264a8f4.php:161 -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:195 -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:204 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:199 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:208 #: cache/c8/c8b99142441b986f998bf81808403c07.php:347 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:202 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:211 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:210 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:219 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:76 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:245 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:465 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:557 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:553 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:272 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:369 #: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:170 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:129 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:128 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:135 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:168 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:177 -#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:260 +#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:245 #: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:204 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:178 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:408 #: cache/11/1107af5e0742401bd7bdcb180ef3991e.php:70 #: cache/f2/f2c4f8da776f3da2da0354bcdf5050cd.php:116 #: lib/Report/DistributionReport.php:253 @@ -6648,7 +6698,6 @@ msgstr "" #: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:138 #: cache/c8/c8b99142441b986f998bf81808403c07.php:142 #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:105 -#: cache/23/23114ff234f79ee13968407a57f6252d.php:115 #: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:101 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:108 #: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:105 @@ -6661,10 +6710,11 @@ msgstr "" #: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:129 #: cache/07/0762fe09da77cd40faec35b3575a6abb.php:91 #: cache/d5/d548e4848346b34fa2915d684010817b.php:112 +#: cache/41/416015b714a3d4ce25c4f5a60b5e0869.php:91 #: cache/a9/a9e5683d775fba4115fbe1530a299060.php:91 #: cache/d7/d7326d049226360861decd025d796004.php:91 #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:161 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:964 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1038 #: cache/51/516db3616cec383813b2ba8f7cef0b6d.php:133 #: cache/c0/c0957d7f61132493ea43a4e545472a41.php:91 #: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:126 @@ -6672,8 +6722,8 @@ msgstr "" #: cache/c5/c52b8109558dd3acc604e183177113c8.php:109 #: cache/bc/bc965084fd482159596791d6371a0f77.php:94 #: cache/83/8300bf8b96eee9813dc4373df0e08748.php:106 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:835 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:655 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:849 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:664 #: cache/70/70704e5a81b7b174a6652eebe0894444.php:91 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:146 msgid "Current Folder" @@ -6683,6 +6733,7 @@ msgstr "" #: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:139 #: cache/07/0762fe09da77cd40faec35b3575a6abb.php:101 #: cache/d5/d548e4848346b34fa2915d684010817b.php:122 +#: cache/41/416015b714a3d4ce25c4f5a60b5e0869.php:101 #: cache/a9/a9e5683d775fba4115fbe1530a299060.php:101 #: cache/d7/d7326d049226360861decd025d796004.php:101 #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:170 @@ -6708,8 +6759,8 @@ msgstr "" #: cache/b1/b1c2db71469950cfdd34c323d05aa155.php:99 #: cache/5e/5ec96adf0346509994d4c975eac80689.php:102 #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:175 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:956 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2217 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1030 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2465 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:166 #: cache/63/63a123f42a16165e90cd9f604b2de4bd.php:122 #: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:141 @@ -6718,14 +6769,15 @@ msgstr "" #: cache/bc/bc965084fd482159596791d6371a0f77.php:109 #: cache/83/8300bf8b96eee9813dc4373df0e08748.php:121 #: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:97 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:827 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:900 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:647 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:841 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:912 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:656 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:161 -#: lib/Controller/Template.php:220 lib/Controller/DisplayGroup.php:347 -#: lib/Controller/Campaign.php:348 lib/Controller/MenuBoard.php:170 -#: lib/Controller/Playlist.php:408 lib/Controller/Library.php:665 -#: lib/Controller/Layout.php:1785 lib/Controller/Display.php:942 +#: lib/Controller/Template.php:233 lib/Controller/DisplayGroup.php:352 +#: lib/Controller/DataSet.php:282 lib/Controller/Campaign.php:348 +#: lib/Controller/MenuBoard.php:170 lib/Controller/Playlist.php:411 +#: lib/Controller/Library.php:667 lib/Controller/Layout.php:1811 +#: lib/Controller/Display.php:943 msgid "Select Folder" msgstr "" @@ -6743,25 +6795,26 @@ msgstr "" #: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:359 #: cache/c8/c8b99142441b986f998bf81808403c07.php:214 #: cache/c8/c8b99142441b986f998bf81808403c07.php:351 -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:126 -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:297 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:131 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:300 #: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:172 #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:691 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:505 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:250 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:607 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:248 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:603 #: cache/7d/7d8878cf40b2a074d7a7dd990858a580.php:76 #: cache/d5/d548e4848346b34fa2915d684010817b.php:161 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:419 #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:209 #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:405 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:115 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:281 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:120 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:284 #: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:55 -#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:85 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2574 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:175 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:273 +#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:89 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2264 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2834 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:174 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:271 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:200 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:418 #: cache/63/63a123f42a16165e90cd9f604b2de4bd.php:156 @@ -6772,11 +6825,11 @@ msgstr "" #: cache/bc/bc965084fd482159596791d6371a0f77.php:150 #: cache/83/8300bf8b96eee9813dc4373df0e08748.php:155 #: cache/31/31805080e1e51d4a56cb67fa60bdcb2f.php:115 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:149 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:440 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:150 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:115 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:204 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:155 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:444 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:155 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:120 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:207 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:243 msgid "Tags" msgstr "" @@ -6813,8 +6866,8 @@ msgstr "" #: cache/bc/bc965084fd482159596791d6371a0f77.php:178 #: cache/83/8300bf8b96eee9813dc4373df0e08748.php:172 #: cache/83/8300bf8b96eee9813dc4373df0e08748.php:183 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:786 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:797 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:798 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:809 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:260 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:271 msgid "Tag value" @@ -6832,7 +6885,7 @@ msgstr "" #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:255 #: cache/bc/bc965084fd482159596791d6371a0f77.php:183 #: cache/83/8300bf8b96eee9813dc4373df0e08748.php:188 -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:396 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:424 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:276 msgid "" "Please provide the value for this Tag and confirm by pressing enter on your " @@ -6851,7 +6904,7 @@ msgstr "" #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:266 #: cache/bc/bc965084fd482159596791d6371a0f77.php:194 #: cache/83/8300bf8b96eee9813dc4373df0e08748.php:199 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:812 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:824 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:287 msgid "" "This tag requires a set value, please select one from the Tag value dropdown " @@ -6869,8 +6922,10 @@ msgid "Are the members of this group dynamic?" msgstr "" #: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:298 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:114 #: cache/c8/c8b99142441b986f998bf81808403c07.php:290 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:262 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:117 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:260 msgid "Criteria" msgstr "" @@ -6883,37 +6938,37 @@ msgstr "" #: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:316 #: cache/c8/c8b99142441b986f998bf81808403c07.php:308 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:269 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:267 msgid "Criteria Tags" msgstr "" #: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:321 #: cache/c8/c8b99142441b986f998bf81808403c07.php:313 -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:131 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:255 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:136 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:253 #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:350 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:120 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:180 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:125 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:179 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:362 #: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:378 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:154 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:155 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:120 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:160 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:160 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:125 msgid "Exact match?" msgstr "" #: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:326 #: cache/c8/c8b99142441b986f998bf81808403c07.php:318 -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:136 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:260 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:141 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:258 #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:355 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:125 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:185 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:130 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:184 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:367 #: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:383 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:159 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:160 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:125 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:165 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:165 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:130 msgid "When filtering by multiple Tags, which logical operator should be used?" msgstr "" @@ -6928,17 +6983,18 @@ msgstr "" #: cache/3d/3d2cccf3b2d4ef70fb5cca66b9b93574.php:191 #: cache/c8/c8b99142441b986f998bf81808403c07.php:355 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:469 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:141 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:569 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:139 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:565 #: cache/a5/a5b6c45ce9be70286d1fe135db11c5e3.php:109 #: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:190 #: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:272 #: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:416 -#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:126 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1425 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:426 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:105 +#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:124 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1390 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:430 #: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:208 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:190 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:193 msgid "Status" msgstr "" @@ -6949,9 +7005,9 @@ msgstr "" #: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:383 #: cache/c8/c8b99142441b986f998bf81808403c07.php:381 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:720 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:716 #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:341 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:283 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:281 #: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:283 #: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:492 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:282 @@ -6962,9 +7018,9 @@ msgstr "" #: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:393 #: cache/c8/c8b99142441b986f998bf81808403c07.php:391 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:724 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:720 #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:356 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:287 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:285 #: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:293 #: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:492 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:292 @@ -6975,9 +7031,9 @@ msgstr "" #: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:403 #: cache/c8/c8b99142441b986f998bf81808403c07.php:401 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:728 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:724 #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:371 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:291 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:289 #: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:303 #: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:492 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:302 @@ -6988,9 +7044,9 @@ msgstr "" #: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:413 #: cache/c8/c8b99142441b986f998bf81808403c07.php:411 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:732 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:728 #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:386 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:295 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:293 #: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:313 #: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:492 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:312 @@ -7001,9 +7057,9 @@ msgstr "" #: cache/39/39cc315464ac8c34ba79db4a07dcc832.php:423 #: cache/c8/c8b99142441b986f998bf81808403c07.php:421 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:736 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:732 #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:401 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:299 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:297 #: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:323 #: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:492 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:322 @@ -7023,27 +7079,27 @@ msgstr "" #: cache/3d/3d685e4b4f0f4e045b5cc2697b26574d.php:70 #: cache/91/91982ff1ff9899125ec30731f264a8f4.php:195 -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:299 -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:305 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:383 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:389 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:303 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:309 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:391 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:397 #: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:204 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1236 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1248 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2029 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:450 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1326 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1338 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2201 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:481 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:188 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:212 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:135 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:343 #: cache/11/1107af5e0742401bd7bdcb180ef3991e.php:64 -#: lib/Controller/Campaign.php:682 lib/Entity/Schedule.php:1968 +#: lib/Controller/Campaign.php:682 lib/Entity/Schedule.php:2082 msgid "Layout" msgstr "" #: cache/3d/3d685e4b4f0f4e045b5cc2697b26574d.php:88 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2114 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:454 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:473 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2358 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:485 msgid "Region" msgstr "" @@ -7059,31 +7115,34 @@ msgstr "" #: cache/3d/3d685e4b4f0f4e045b5cc2697b26574d.php:188 #: cache/e7/e7012f849ea8937cd0edbed2b7de4de8.php:982 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:212 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:219 #: cache/11/1107af5e0742401bd7bdcb180ef3991e.php:173 +#: lib/Controller/Notification.php:239 msgid "View" msgstr "" #: cache/3d/3d685e4b4f0f4e045b5cc2697b26574d.php:192 #: cache/e7/e7012f849ea8937cd0edbed2b7de4de8.php:986 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:166 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:555 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:168 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2943 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:560 #: cache/11/1107af5e0742401bd7bdcb180ef3991e.php:177 -#: lib/Controller/Task.php:136 lib/Controller/Template.php:212 -#: lib/Controller/DisplayGroup.php:329 lib/Controller/DataSet.php:250 -#: lib/Controller/ScheduleReport.php:216 lib/Controller/Notification.php:217 +#: lib/Controller/Task.php:136 lib/Controller/Template.php:225 +#: lib/Controller/DisplayGroup.php:334 lib/Controller/DataSet.php:274 +#: lib/Controller/ScheduleReport.php:216 lib/Controller/Notification.php:270 #: lib/Controller/Campaign.php:327 lib/Controller/Campaign.php:335 -#: lib/Controller/MenuBoard.php:162 lib/Controller/Playlist.php:393 -#: lib/Controller/Transition.php:94 lib/Controller/Library.php:650 +#: lib/Controller/MenuBoard.php:162 lib/Controller/Playlist.php:396 +#: lib/Controller/Transition.php:94 lib/Controller/Library.php:652 #: lib/Controller/SyncGroup.php:170 lib/Controller/DataSetColumn.php:173 -#: lib/Controller/Tag.php:231 lib/Controller/Layout.php:1777 +#: lib/Controller/Tag.php:231 lib/Controller/Layout.php:1803 #: lib/Controller/MenuBoardCategory.php:191 -#: lib/Controller/DisplayProfile.php:200 lib/Controller/User.php:335 +#: lib/Controller/DisplayProfile.php:202 lib/Controller/User.php:337 #: lib/Controller/Applications.php:178 lib/Controller/Resolution.php:161 -#: lib/Controller/Display.php:838 lib/Controller/MenuBoardProduct.php:191 -#: lib/Controller/PlayerSoftware.php:157 lib/Controller/Command.php:178 -#: lib/Controller/DataSetRss.php:163 lib/Controller/Schedule.php:2436 -#: lib/Controller/UserGroup.php:157 lib/Controller/DayPart.php:154 +#: lib/Controller/Display.php:839 lib/Controller/MenuBoardProduct.php:191 +#: lib/Controller/Developer.php:102 lib/Controller/PlayerSoftware.php:157 +#: lib/Controller/Command.php:178 lib/Controller/DataSetRss.php:163 +#: lib/Controller/Schedule.php:2462 lib/Controller/UserGroup.php:157 +#: lib/Controller/DayPart.php:154 msgid "Edit" msgstr "" @@ -7092,65 +7151,69 @@ msgstr "" #: cache/e7/e7012f849ea8937cd0edbed2b7de4de8.php:990 #: cache/68/6890d35803a665b9db578df45f0f60f0.php:57 #: cache/f9/f92fcbc3e5aadf70527c18c1877f9814.php:56 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:170 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:172 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:448 #: cache/17/17a063cd6b023f6b3259fc5bb6f3383f.php:68 #: cache/25/257d7652c0b04ca6e480ad5c9beaa3c2.php:247 #: cache/74/746ec3a82f78da39c0d83b4d24c675b3.php:65 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:725 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:818 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:836 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1043 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:164 -#: cache/34/3453edc522f8d2c6d1d154ad55500693.php:325 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:559 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:795 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:888 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:906 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1125 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2947 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:171 +#: cache/34/3453edc522f8d2c6d1d154ad55500693.php:330 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:564 #: cache/11/1107af5e0742401bd7bdcb180ef3991e.php:181 -#: lib/Controller/Task.php:143 lib/Controller/Template.php:248 -#: lib/Controller/Template.php:254 lib/Controller/DisplayGroup.php:375 -#: lib/Controller/DisplayGroup.php:388 lib/Controller/DataSet.php:280 -#: lib/Controller/DataSet.php:286 lib/Controller/ScheduleReport.php:236 -#: lib/Controller/ScheduleReport.php:242 lib/Controller/Notification.php:224 +#: lib/Controller/Task.php:143 lib/Controller/Template.php:268 +#: lib/Controller/Template.php:281 lib/Controller/DisplayGroup.php:380 +#: lib/Controller/DisplayGroup.php:393 lib/Controller/DataSet.php:328 +#: lib/Controller/DataSet.php:334 lib/Controller/ScheduleReport.php:236 +#: lib/Controller/ScheduleReport.php:242 lib/Controller/Notification.php:287 #: lib/Controller/Campaign.php:393 lib/Controller/Campaign.php:406 #: lib/Controller/SavedReport.php:177 lib/Controller/SavedReport.php:183 -#: lib/Controller/MenuBoard.php:223 lib/Controller/Playlist.php:458 -#: lib/Controller/Playlist.php:469 lib/Controller/Library.php:690 -#: lib/Controller/Library.php:696 lib/Controller/SyncGroup.php:184 +#: lib/Controller/MenuBoard.php:223 lib/Controller/Playlist.php:461 +#: lib/Controller/Playlist.php:472 lib/Controller/Library.php:692 +#: lib/Controller/Library.php:698 lib/Controller/SyncGroup.php:184 #: lib/Controller/DataSetColumn.php:181 lib/Controller/Tag.php:238 -#: lib/Controller/Tag.php:244 lib/Controller/Layout.php:1835 -#: lib/Controller/Layout.php:1841 lib/Controller/MenuBoardCategory.php:201 +#: lib/Controller/Tag.php:244 lib/Controller/Layout.php:1861 +#: lib/Controller/Layout.php:1867 lib/Controller/MenuBoardCategory.php:201 #: lib/Controller/Font.php:172 lib/Controller/Font.php:181 -#: lib/Controller/DisplayProfile.php:221 lib/Controller/User.php:349 +#: lib/Controller/DisplayProfile.php:223 lib/Controller/User.php:351 #: lib/Controller/Applications.php:185 lib/Controller/Resolution.php:172 -#: lib/Controller/Display.php:849 lib/Controller/Display.php:868 +#: lib/Controller/Display.php:850 lib/Controller/Display.php:869 #: lib/Controller/MenuBoardProduct.php:201 -#: lib/Controller/MenuBoardProduct.php:207 -#: lib/Controller/PlayerSoftware.php:164 lib/Controller/PlayerSoftware.php:173 -#: lib/Controller/Command.php:187 lib/Controller/Command.php:196 -#: lib/Controller/DataSetRss.php:171 lib/Controller/Schedule.php:2442 -#: lib/Controller/Schedule.php:2451 lib/Controller/UserGroup.php:165 -#: lib/Controller/DayPart.php:161 lib/Controller/DayPart.php:167 +#: lib/Controller/MenuBoardProduct.php:207 lib/Controller/Developer.php:170 +#: lib/Controller/Developer.php:183 lib/Controller/PlayerSoftware.php:164 +#: lib/Controller/PlayerSoftware.php:173 lib/Controller/Command.php:187 +#: lib/Controller/Command.php:196 lib/Controller/DataSetRss.php:171 +#: lib/Controller/Schedule.php:2468 lib/Controller/Schedule.php:2477 +#: lib/Controller/UserGroup.php:165 lib/Controller/DayPart.php:161 +#: lib/Controller/DayPart.php:167 msgid "Delete" msgstr "" #: cache/3d/3d685e4b4f0f4e045b5cc2697b26574d.php:217 -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:159 -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:306 -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:119 -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:182 -#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:118 -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:198 -#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:104 -#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:171 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1740 -#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:132 -#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:218 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:164 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:309 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:123 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:186 +#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:122 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:195 +#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:108 +#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:175 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1880 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1884 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:137 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:221 #: cache/8d/8de7dd9661211f3ba39933b564d76990.php:409 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:211 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:453 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:183 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:360 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:194 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:130 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:212 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:217 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:457 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:188 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:363 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:197 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:135 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:219 msgid "Owner" msgstr "" @@ -7179,18 +7242,18 @@ msgstr "" #: cache/3d/3d2cccf3b2d4ef70fb5cca66b9b93574.php:195 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:249 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:522 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:624 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:620 #: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:212 msgid "Logged In" msgstr "" #: cache/3d/3d2cccf3b2d4ef70fb5cca66b9b93574.php:199 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:534 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:636 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:632 #: cache/4c/4c51c53e92ed5731d0e8526118d29799.php:103 #: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:216 -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:101 -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:138 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:106 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:143 msgid "Version" msgstr "" @@ -7208,12 +7271,12 @@ msgid "Region Options" msgstr "" #: cache/3d/3d43e8adbd5d771e55b4c097d061edee.php:72 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1106 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1196 msgid "Positioning" msgstr "" #: cache/3d/3d43e8adbd5d771e55b4c097d061edee.php:76 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1110 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1200 #: cache/4a/4a1316556dbf2c1f6276a15abb899508.php:189 msgid "Transition" msgstr "" @@ -7265,14 +7328,14 @@ msgstr "" #: cache/09/09ce3b6a0541b31d12645b44531faf96.php:256 #: cache/f6/f60761fa1e2b5ad016f9d13f094f9488.php:118 #: cache/65/651e2483d1426d8b1b7ce3fef030fb15.php:118 -#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:142 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1118 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1407 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1547 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1774 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2663 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2752 -#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:419 +#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:147 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1208 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1497 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1645 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1922 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2923 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3075 +#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:421 msgid "Height" msgstr "" @@ -7281,11 +7344,11 @@ msgid "Height of the Region" msgstr "" #: cache/3d/3d43e8adbd5d771e55b4c097d061edee.php:212 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1138 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1363 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1461 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1515 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2142 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1228 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1453 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1551 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1613 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2386 #: cache/0c/0cc104a3d7987780eed7a70657ece580.php:197 msgid "Layer" msgstr "" @@ -7304,6 +7367,7 @@ msgid "Exit Transition" msgstr "" #: cache/3d/3d43e8adbd5d771e55b4c097d061edee.php:247 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1609 msgid "What transition should be applied when this region is finished?" msgstr "" @@ -7329,8 +7393,8 @@ msgstr "" #: cache/e7/e796ca1083ad3813266a62e6854798e8.php:91 #: cache/68/683636238aff529d5a7b7478118dede4.php:1115 #: cache/d5/d548e4848346b34fa2915d684010817b.php:245 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1589 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:896 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1687 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:910 #: cache/11/1140e2fe8d16f9c5bd7224da78abee20.php:91 msgid "Enable Stats Collection?" msgstr "" @@ -7340,7 +7404,7 @@ msgid "Enable the collection of Proof of Play statistics for this Media Item." msgstr "" #: cache/91/9185cbd1230ab9c1c9e7a57f5654d49b.php:103 -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:685 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:697 #: cache/a0/a08e0b0d63f497e79ba45d275f7d8e2e.php:162 #: cache/e7/e796ca1083ad3813266a62e6854798e8.php:103 #: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:255 @@ -7353,21 +7417,21 @@ msgstr "" #: cache/09/09ce3b6a0541b31d12645b44531faf96.php:321 #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:290 #: cache/49/49b3c02c876e8a464a75e1682c064115.php:280 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1597 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1695 #: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:348 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:502 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:516 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:585 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:532 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:546 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:615 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:291 #: cache/c5/c52b8109558dd3acc604e183177113c8.php:262 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:462 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:924 -#: lib/Controller/Layout.php:1250 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:474 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:933 +#: lib/Controller/Layout.php:1273 msgid "Off" msgstr "" #: cache/91/9185cbd1230ab9c1c9e7a57f5654d49b.php:108 -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:689 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:701 #: cache/a0/a08e0b0d63f497e79ba45d275f7d8e2e.php:167 #: cache/e7/e796ca1083ad3813266a62e6854798e8.php:108 #: cache/68/683636238aff529d5a7b7478118dede4.php:1174 @@ -7376,29 +7440,29 @@ msgstr "" #: cache/68/683636238aff529d5a7b7478118dede4.php:1986 #: cache/68/683636238aff529d5a7b7478118dede4.php:3508 #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:295 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1601 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:502 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:516 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:585 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1699 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:532 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:546 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:615 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:296 #: cache/c5/c52b8109558dd3acc604e183177113c8.php:267 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:928 -#: lib/Controller/Layout.php:1250 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:937 +#: lib/Controller/Layout.php:1273 msgid "On" msgstr "" #: cache/91/9185cbd1230ab9c1c9e7a57f5654d49b.php:113 -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:693 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:705 #: cache/a0/a08e0b0d63f497e79ba45d275f7d8e2e.php:172 #: cache/e7/e796ca1083ad3813266a62e6854798e8.php:113 #: cache/68/683636238aff529d5a7b7478118dede4.php:1179 #: cache/68/683636238aff529d5a7b7478118dede4.php:1235 #: cache/68/683636238aff529d5a7b7478118dede4.php:1291 #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:300 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1605 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1703 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:301 #: cache/c5/c52b8109558dd3acc604e183177113c8.php:272 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:932 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:941 msgid "Inherit" msgstr "" @@ -7410,12 +7474,12 @@ msgstr "" #: cache/91/91982ff1ff9899125ec30731f264a8f4.php:73 #: cache/e5/e5310108493cd13aa490732e70fdb013.php:60 #: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:73 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:377 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:392 #: cache/73/73ac35c5bb699e096000941498cdfdc9.php:66 #: cache/4e/4ecfb080a1b970aaf8c60b2a16c13a4f.php:67 #: cache/67/671e1a0d15cf6622a031b0a7a49f5956.php:73 -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:344 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:491 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:372 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:511 msgid "Close" msgstr "" @@ -7426,13 +7490,13 @@ msgstr "" #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:102 #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:280 #: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:99 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:143 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:802 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:148 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:872 #: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:105 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:264 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1368 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:269 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1333 #: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:55 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:101 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:107 msgid "Layouts" msgstr "" @@ -7446,11 +7510,11 @@ msgstr "" #: cache/a5/a536aec6145b5d387ad9111f4d568074.php:88 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:193 #: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:135 -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:105 -#: cache/05/05600263dc8230138bb0f89338bbef69.php:79 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:198 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1429 -#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:196 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:103 +#: cache/05/05600263dc8230138bb0f89338bbef69.php:127 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:203 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1394 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:388 #: cache/f2/f2c4f8da776f3da2da0354bcdf5050cd.php:96 msgid "From Date" msgstr "" @@ -7458,10 +7522,10 @@ msgstr "" #: cache/91/91982ff1ff9899125ec30731f264a8f4.php:136 #: cache/a5/a536aec6145b5d387ad9111f4d568074.php:98 #: cache/9e/9e2a80ecdd8879e59308a644c1f6721f.php:145 -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:115 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:208 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1433 -#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:206 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:113 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:213 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1398 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:398 #: cache/f2/f2c4f8da776f3da2da0354bcdf5050cd.php:106 msgid "To Date" msgstr "" @@ -7471,9 +7535,9 @@ msgid "Edit Event" msgstr "" #: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:102 -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:567 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:614 #: cache/80/8016dad6634116cf39ffaf1bbf646931.php:105 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:621 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:671 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:96 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:351 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:96 @@ -7492,14 +7556,14 @@ msgstr "" #: cache/80/8016dad6634116cf39ffaf1bbf646931.php:113 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:104 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:104 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:782 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:747 msgid "Geo Location" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:116 -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:274 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:119 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:358 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:120 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:278 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:123 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:366 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:110 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:263 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:110 @@ -7507,51 +7571,51 @@ msgstr "" msgid "Select the start time for this event" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:142 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:146 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:153 msgid "Duplicate form loaded, make adjustments and press save." msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:170 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:164 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:174 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:172 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:148 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:171 msgid "Optional Name for this Event (1-50 characters)" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:180 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:183 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:228 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:512 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:184 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:191 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:233 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:473 msgid "Event Type" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:185 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:188 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:189 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:196 msgid "Select the type of event to schedule" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:200 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:207 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:204 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:215 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:173 msgid "" "Please select one or more displays / groups for this event to be shown on." msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:213 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:217 #: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:55 -#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:87 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:220 +#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:92 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:228 #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:92 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:66 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:202 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:226 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:653 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:658 msgid "Dayparting" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:218 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:225 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:222 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:233 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:207 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:231 msgid "" @@ -7559,12 +7623,12 @@ msgid "" "select custom and to have the event run constantly select Always." msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:269 -#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:123 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:353 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:273 +#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:128 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:361 #: cache/7d/7d93daaf181fe08e96e60d7e241a1d1c.php:99 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:633 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2400 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:647 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2660 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:258 #: cache/51/5183626e7e19083fdf9708e7d778f66f.php:150 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:282 @@ -7574,12 +7638,12 @@ msgstr "" msgid "Start Time" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:284 -#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:127 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:368 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:288 +#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:132 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:376 #: cache/7d/7d93daaf181fe08e96e60d7e241a1d1c.php:114 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:648 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2404 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:662 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2664 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:273 #: cache/51/5183626e7e19083fdf9708e7d778f66f.php:165 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:297 @@ -7589,148 +7653,164 @@ msgstr "" msgid "End Time" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:289 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:373 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:293 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:381 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:278 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:302 msgid "Select the end time for this event" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:299 -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:310 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:383 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:394 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:303 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:314 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:391 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:402 msgid "Please select a Layout for this Event to show" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:299 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:383 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:303 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:391 #: cache/26/26e331d824f29de3b77e8888f0d29b15.php:93 -#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:255 -#: lib/Entity/Schedule.php:1972 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:506 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:577 +#: lib/Entity/Schedule.php:2086 msgid "Campaign" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:299 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:383 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:303 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:391 msgid "Please select a Campaign for this Event to show" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:325 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:329 #: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:159 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:409 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:417 msgid "" "Select a Media file from the Library to use. The selected file will be shown " "full screen for this event." msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:340 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:344 #: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:185 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:424 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:432 msgid "" "Select a Playlist to use. The selected playlist will be shown full screen " "for this event." msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:358 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:441 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:368 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:455 msgid "Preview" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:362 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:445 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:372 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:459 msgid "Preview your selection in a new tab" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:370 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:453 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:381 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:468 #: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:332 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1445 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1410 msgid "Share of Voice" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:379 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:459 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:390 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:474 msgid "The amount of time this Layout should be shown, in seconds per hour." msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:387 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:467 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:398 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:482 #: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:366 msgid "As a percentage" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:395 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:475 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2781 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:406 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:490 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3104 msgid "Action Type" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:400 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:480 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:411 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:495 msgid "Please select action Type" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:405 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:485 -#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:234 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1309 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1925 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:416 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:500 +#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:241 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1399 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2093 msgid "Navigate to Layout" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:410 -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:461 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:490 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:540 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:421 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:472 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:505 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:555 #: cache/ae/ae925f8de1afddaa54d77aba65ebb00b.php:88 -#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:100 #: cache/23/23114ff234f79ee13968407a57f6252d.php:133 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:772 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:554 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:1255 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:737 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:566 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:1270 #: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:135 #: cache/10/1090c5665a57f49e6b968318ca49de82.php:113 -#: lib/Entity/Schedule.php:1969 +#: lib/Entity/Schedule.php:2083 lib/Entity/DisplayEvent.php:221 msgid "Command" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:425 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:505 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1333 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2777 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:436 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:520 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1423 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3100 #: cache/fa/fa66e594804204b7397616a42725bee8.php:87 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:1227 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:1242 msgid "Trigger Code" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:430 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:510 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:441 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:525 msgid "Web hook trigger code for this Action" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:440 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:520 -#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:242 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1349 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2797 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:451 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:535 +#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:249 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1439 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3120 msgid "Layout Code" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:445 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:525 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:456 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:540 msgid "" "Please select the Code identifier for the Layout that Player should navigate " "to when this Action is triggered." msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:466 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:545 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:477 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:560 msgid "Please select a command for this Event." msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:485 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:563 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:496 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:578 +msgid "" +"Please select the real time DataSet related to this Data Connector event" +msgstr "" + +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:512 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:593 +msgid "Data Connector Parameters" +msgstr "" + +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:517 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:598 +msgid "Optionally provide any parameters to be used by the Data Connector." +msgstr "" + +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:532 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:613 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:293 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:317 msgid "" @@ -7738,19 +7818,19 @@ msgid "" "there is more than one event scheduled" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:495 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:573 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:498 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:542 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:623 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:512 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:303 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:327 #: cache/79/7925e7fdcb44e9a96c9b2b2e4814991e.php:190 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:757 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1457 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:722 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1422 msgid "Priority" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:500 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:578 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:547 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:628 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:308 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:332 msgid "" @@ -7758,15 +7838,15 @@ msgid "" "preference to lower priority events." msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:510 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:588 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:557 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:638 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:318 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:342 msgid "Maximum plays per hour" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:515 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:593 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:562 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:643 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:323 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:347 msgid "" @@ -7774,15 +7854,15 @@ msgid "" "unlimited plays set to 0." msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:526 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:604 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:573 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:654 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:334 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:358 msgid "Run at CMS Time?" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:531 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:609 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:578 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:659 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:339 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:363 msgid "" @@ -7790,7 +7870,7 @@ msgid "" "otherwise the event will run at Display local time" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:550 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:597 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:382 msgid "" "Editing the Start and or End date/time will create a new Recurring Event " @@ -7798,29 +7878,29 @@ msgid "" "recreated with edits made here." msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:572 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:626 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:619 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:676 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:356 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:403 msgid "Select the type of Repeat required for this Event." msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:582 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:636 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:629 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:686 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:366 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:413 msgid "Per Minute" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:587 -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:628 -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:701 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:634 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:695 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:768 #: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:139 #: cache/68/683636238aff529d5a7b7478118dede4.php:1076 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:641 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:691 #: cache/09/09ce3b6a0541b31d12645b44531faf96.php:139 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:598 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:671 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:636 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:709 #: cache/49/49b3c02c876e8a464a75e1682c064115.php:150 #: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:161 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:371 @@ -7828,15 +7908,15 @@ msgstr "" msgid "Hourly" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:592 -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:633 -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:706 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:639 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:700 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:773 #: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:139 #: cache/68/683636238aff529d5a7b7478118dede4.php:1081 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:646 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:696 #: cache/09/09ce3b6a0541b31d12645b44531faf96.php:139 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:603 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:676 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:641 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:714 #: cache/49/49b3c02c876e8a464a75e1682c064115.php:150 #: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:161 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:376 @@ -7844,187 +7924,187 @@ msgstr "" msgid "Daily" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:597 -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:638 -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:711 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:651 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:608 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:681 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:644 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:705 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:778 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:701 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:646 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:719 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:381 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:428 msgid "Weekly" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:602 -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:648 -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:721 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:656 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:618 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:691 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:649 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:715 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:788 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:706 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:656 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:729 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:386 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:433 msgid "Monthly" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:607 -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:658 -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:731 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:661 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:628 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:701 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:654 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:725 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:798 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:711 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:666 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:739 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:391 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:438 msgid "Yearly" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:627 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:674 msgid "" "Use the drop-down to select which days of the week this Event should be " "repeated" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:632 -#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:196 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:686 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:45 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:624 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:459 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:679 +#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:207 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:736 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:47 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:638 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:489 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:416 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:463 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:564 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:640 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2080 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:569 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:645 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2047 msgid "Monday" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:637 -#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:200 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:691 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:49 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:624 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:464 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:684 +#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:211 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:741 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:51 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:638 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:494 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:421 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:468 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:568 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:640 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2084 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:573 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:645 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2051 msgid "Tuesday" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:642 -#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:204 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:696 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:53 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:624 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:469 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:689 +#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:215 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:746 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:55 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:638 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:499 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:426 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:473 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:572 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:640 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2088 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:577 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:645 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2055 msgid "Wednesday" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:647 -#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:208 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:701 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:57 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:624 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:474 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:694 +#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:219 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:751 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:59 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:638 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:504 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:431 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:478 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:576 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:640 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2092 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:581 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:645 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2059 msgid "Thursday" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:652 -#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:212 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:706 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:61 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:624 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:479 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:699 +#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:223 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:756 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:63 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:638 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:509 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:436 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:483 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:580 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:640 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2096 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:585 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:645 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2063 msgid "Friday" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:657 -#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:216 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:711 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:65 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:624 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:484 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:704 +#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:227 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:761 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:67 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:638 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:514 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:441 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:488 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:584 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:640 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2100 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:589 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:645 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2067 msgid "Saturday" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:662 -#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:220 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:716 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:69 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:624 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:489 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:709 +#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:231 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:766 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:71 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:638 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:519 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:446 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:493 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:588 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:640 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2104 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:593 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:645 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:2071 msgid "Sunday" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:682 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:729 msgid "" "Should this Event Repeat by Day of the month (eg. Monthly on Day 21) or by a " "Weekday in the month (eg. Monthly on the third Thursday)" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:687 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:740 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:734 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:790 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:470 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:517 msgid "on the [DAY] day" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:687 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:740 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:734 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:790 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:470 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:517 msgid "on the [POSITION] [WEEKDAY]" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:696 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:749 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:743 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:799 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:479 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:526 msgid "Every" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:701 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:754 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:748 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:804 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:484 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:531 msgid "" "Include a number to determine the Repeat frequency required for this Event." msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:729 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:782 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:776 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:832 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:512 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:559 msgid "Until" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:734 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:787 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:781 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:837 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:517 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:564 msgid "" @@ -8032,8 +8112,8 @@ msgid "" "Repeat indefinitely." msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:746 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:799 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:793 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:849 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:528 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:576 msgid "" @@ -8043,15 +8123,15 @@ msgid "" "shown in the message center." msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:762 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:815 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:809 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:865 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:544 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:592 msgid "Geo Schedule?" msgstr "" -#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:767 -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:820 +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:814 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:870 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:549 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:597 msgid "" @@ -8059,6 +8139,26 @@ msgid "" "by drawing a polygon or rectangle layer on the map below." msgstr "" +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:833 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:889 +msgid "" +"Set criteria to determine when this event is active. All conditions must be " +"true for an event to be included in the schedule loop. Events without " +"criteria are always active." +msgstr "" + +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:848 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:904 +#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:239 +msgid "Metric" +msgstr "" + +#: cache/c8/c81aa074ed0c595eefef0776b8c89639.php:852 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:908 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:670 +msgid "Condition" +msgstr "" + #: cache/c8/c8b99142441b986f998bf81808403c07.php:58 #: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:75 msgid "Add Display Group" @@ -8070,6 +8170,7 @@ msgstr "" #: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:125 #: cache/b1/b1c2db71469950cfdd34c323d05aa155.php:94 #: cache/5e/5ec96adf0346509994d4c975eac80689.php:97 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1896 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:161 #: cache/63/63a123f42a16165e90cd9f604b2de4bd.php:117 #: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:92 @@ -8084,11 +8185,12 @@ msgid "Add reference fields if needed" msgstr "" #: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:55 -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:87 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:92 #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:239 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:154 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:814 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2524 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:884 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2044 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2784 msgid "Playlists" msgstr "" @@ -8097,204 +8199,244 @@ msgstr "" msgid "Add Playlist" msgstr "" -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:103 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:78 +#: cache/52/522b66fbe5b8efaad37d81db81288730.php:67 +#: cache/e7/e797c362bd1affbbe5c271346b5e38b5.php:78 +#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:95 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:70 +#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:82 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:80 +#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:92 +#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:85 +#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:76 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:77 +#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:78 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:81 +#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:75 +#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:80 +#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:70 +#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:67 +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:85 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:80 +#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:80 +#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:75 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:81 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:75 +#: cache/05/05600263dc8230138bb0f89338bbef69.php:100 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:80 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:78 +#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:78 +#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:78 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:103 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:95 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:93 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:69 +#: cache/10/10329fe20a57f63b38843c6701587e70.php:80 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:105 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:80 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:83 +msgid "Refresh the Table" +msgstr "" + +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:108 #: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:108 #: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:71 #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:883 #: cache/09/09ce3b6a0541b31d12645b44531faf96.php:71 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:112 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:110 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:109 #: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:108 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:517 #: cache/49/49b3c02c876e8a464a75e1682c064115.php:71 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1098 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1188 #: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:71 #: cache/8d/8de7dd9661211f3ba39933b564d76990.php:96 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:117 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:123 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:128 msgid "Advanced" msgstr "" -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:141 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:265 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:130 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:190 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:146 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:263 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:135 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:189 #: cache/0b/0bf1ec6ab33ef0ba5938df774146f8dc.php:388 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:164 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:165 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:130 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:170 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:170 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:135 msgid "" "A comma separated list of tags to filter by. Enter a tag|tag value to filter " "tags with values. Enter --no-tag to filter all items without tags. Enter - " "before a tag or tag value to exclude from results." msgstr "" -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:164 -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:124 -#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:109 -#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:137 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:216 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:188 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:135 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:169 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:128 +#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:113 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:142 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:222 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:193 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:140 msgid "Show items owned by the selected User." msgstr "" -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:177 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:229 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:201 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:182 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:235 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:206 msgid "Owner User Group" msgstr "" -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:182 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:234 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:206 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:187 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:240 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:211 msgid "Show items owned by users in the selected User Group." msgstr "" -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:200 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:205 #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:178 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:161 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:355 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:477 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:247 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:166 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:361 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:481 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:252 msgid "Layout ID" msgstr "" -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:212 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:217 #: cache/37/377ff96eb23f94563370a45d1c41993f.php:232 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:295 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:301 msgid "Show" msgstr "" -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:248 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:252 #: cache/12/128a25d2a51c15a82cded4869488f710.php:74 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:506 -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:148 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:220 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1687 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1724 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:212 -#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:171 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:382 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:908 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:283 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:152 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:158 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:503 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:146 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:224 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1819 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1864 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:210 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:175 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:387 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:920 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:287 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:156 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:162 msgid "Search" msgstr "" -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:254 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:512 -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:154 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:226 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:218 -#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:177 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:388 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:289 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:158 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:164 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:258 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:509 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:152 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:230 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:216 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:181 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:393 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:293 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:162 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:168 msgid "Search in all folders" msgstr "" -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:256 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:514 -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:156 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:228 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:220 -#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:179 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:390 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:291 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:160 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:166 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:260 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:511 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:154 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:232 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:218 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:183 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:395 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:295 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:164 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:170 msgid "All Folders" msgstr "" -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:262 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:266 #: cache/12/128a25d2a51c15a82cded4869488f710.php:79 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:520 -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:162 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:234 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:226 -#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:185 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:396 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:913 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:297 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:166 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:172 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:517 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:160 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:238 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:224 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:189 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:401 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:925 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:301 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:170 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:176 msgid "No Folders matching the search term" msgstr "" -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:271 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:529 -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:171 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:243 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:235 -#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:158 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:406 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:306 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:175 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:181 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:274 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:525 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:168 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:246 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:232 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:163 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:410 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:309 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:178 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:184 msgid "Open / Close Folder Search options" msgstr "" -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:291 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:294 #: cache/eb/eb0b05526f681e297aa747d8a42bfc36.php:76 #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:410 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:286 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1581 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1699 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1778 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2056 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2166 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:289 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1679 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1831 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1926 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2296 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2410 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:423 #: cache/c5/c52b8109558dd3acc604e183177113c8.php:148 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:388 #: cache/4a/4a1316556dbf2c1f6276a15abb899508.php:199 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:434 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:340 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:438 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:343 msgid "Duration" msgstr "" -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:302 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:305 #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:263 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:254 msgid "Dynamic?" msgstr "" -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:310 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:313 #: cache/68/683636238aff529d5a7b7478118dede4.php:123 #: cache/68/683636238aff529d5a7b7478118dede4.php:2690 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:704 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:700 #: cache/64/6468accf3a0fea12fced661d430c769f.php:97 -#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:141 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:523 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:279 +#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:146 +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:175 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:542 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:277 #: cache/8d/8de7dd9661211f3ba39933b564d76990.php:100 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:457 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:364 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:217 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:216 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:461 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:367 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:220 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:223 msgid "Sharing" msgstr "" -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:314 -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:214 -#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:143 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:469 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:384 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:317 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:218 +#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:142 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:473 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:387 msgid "Created" msgstr "" -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:318 -#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:147 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:473 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:388 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:321 +#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:146 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:477 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:391 msgid "Modified" msgstr "" -#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:322 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:465 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:380 +#: cache/c8/c82ad061a984295661821ddeb6ffb8c0.php:325 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:469 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:383 msgid "Stats?" msgstr "" @@ -8308,6 +8450,35 @@ msgid "" "undone" msgstr "" +#: cache/12/1239457c009f290772b733957cc20e8b.php:59 +#: cache/dc/dc31159d960349451e03fc348c75e315.php:59 +#: cache/81/811403ea85a4f89fb6575e4ffc9988d8.php:59 +#: cache/73/736be9c5f96ff30502beba0ab9149fd4.php:59 +#: cache/5d/5d1d07a99874fba69dc650a90f8eab06.php:59 +#: cache/31/31805080e1e51d4a56cb67fa60bdcb2f.php:59 +#: cache/60/603a543f479715b41db75352b8cdb845.php:59 +#, no-php-format +msgid "Copy %name%" +msgstr "" + +#: cache/12/1239457c009f290772b733957cc20e8b.php:72 +#: cache/dc/dc31159d960349451e03fc348c75e315.php:72 +#: cache/73/736be9c5f96ff30502beba0ab9149fd4.php:72 +#: cache/31/31805080e1e51d4a56cb67fa60bdcb2f.php:72 +#: lib/Controller/Template.php:257 lib/Controller/DisplayGroup.php:340 +#: lib/Controller/DataSet.php:264 lib/Controller/Campaign.php:376 +#: lib/Controller/Playlist.php:403 lib/Controller/Library.php:659 +#: lib/Controller/Layout.php:1828 lib/Controller/DisplayProfile.php:212 +#: lib/Controller/Developer.php:116 lib/Controller/UserGroup.php:174 +msgid "Copy" +msgstr "" + +#: cache/12/1239457c009f290772b733957cc20e8b.php:96 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:178 +#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:105 +msgid "A unique ID for the module template" +msgstr "" + #: cache/12/128a25d2a51c15a82cded4869488f710.php:55 #: cache/12/128a25d2a51c15a82cded4869488f710.php:67 #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:721 @@ -8316,49 +8487,50 @@ msgstr "" msgid "Folders" msgstr "" -#: cache/12/128a25d2a51c15a82cded4869488f710.php:127 -#: cache/12/128a25d2a51c15a82cded4869488f710.php:134 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1833 +#: cache/12/128a25d2a51c15a82cded4869488f710.php:129 +#: cache/12/128a25d2a51c15a82cded4869488f710.php:136 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1856 +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:346 #: lib/Connector/XiboSspConnector.php:102 msgid "Unknown error" msgstr "" -#: cache/12/128a25d2a51c15a82cded4869488f710.php:160 +#: cache/12/128a25d2a51c15a82cded4869488f710.php:162 msgid "Folder info" msgstr "" -#: cache/12/128a25d2a51c15a82cded4869488f710.php:166 +#: cache/12/128a25d2a51c15a82cded4869488f710.php:168 msgid "Number of times used as a home folder:" msgstr "" -#: cache/12/128a25d2a51c15a82cded4869488f710.php:172 +#: cache/12/128a25d2a51c15a82cded4869488f710.php:174 msgid "Shared with:" msgstr "" -#: cache/12/128a25d2a51c15a82cded4869488f710.php:181 +#: cache/12/128a25d2a51c15a82cded4869488f710.php:183 msgid "Not shared" msgstr "" -#: cache/12/128a25d2a51c15a82cded4869488f710.php:188 +#: cache/12/128a25d2a51c15a82cded4869488f710.php:190 msgid "Contents:" msgstr "" -#: cache/12/128a25d2a51c15a82cded4869488f710.php:196 +#: cache/12/128a25d2a51c15a82cded4869488f710.php:198 msgid "Section" msgstr "" -#: cache/12/128a25d2a51c15a82cded4869488f710.php:204 +#: cache/12/128a25d2a51c15a82cded4869488f710.php:206 #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:296 #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:384 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2008 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2180 #: cache/35/35be00044edc69c7e0405b74ef1b4562.php:211 -#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:155 -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:150 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:348 +#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:154 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:155 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:351 msgid "Size" msgstr "" -#: cache/12/128a25d2a51c15a82cded4869488f710.php:221 +#: cache/12/128a25d2a51c15a82cded4869488f710.php:223 msgid "Empty folder" msgstr "" @@ -8391,105 +8563,198 @@ msgstr "" msgid "Add User Group" msgstr "" -#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:100 -#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:102 +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:103 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:103 +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:112 +#: cache/8c/8ce8fc6aadcb243480fdca6732c41fea.php:51 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:112 +#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:533 +msgid "Notifications" +msgstr "" + +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:107 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:107 msgid "Onboarding Settings" msgstr "" -#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:117 +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:127 #: cache/68/68fd0cd201e7760602f39ca6ad3e8add.php:93 -#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:122 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:128 msgid "The Name for this User Group" msgstr "" -#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:127 -#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:132 +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:137 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:138 #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:190 -#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:133 +#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:131 #: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:271 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:179 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:197 msgid "Library Quota" msgstr "" -#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:132 -#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:137 +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:142 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:143 #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:195 #: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:276 msgid "The quota that should be applied. Enter 0 for no quota." msgstr "" -#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:162 -#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:170 +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:175 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:179 #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:421 -#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:137 +#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:135 #: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:465 msgid "Receive System Notifications?" msgstr "" -#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:167 -#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:175 +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:180 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:184 msgid "Should members of this Group receive system notifications?" msgstr "" -#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:177 -#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:185 +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:190 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:194 #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:436 -#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:141 +#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:139 #: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:480 msgid "Receive Display Notifications?" msgstr "" -#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:182 -#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:190 +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:195 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:199 msgid "" "Should members of this Group receive Display notifications for Displays they " "have permission to see?" msgstr "" -#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:202 -#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:210 +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:205 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:209 +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:451 +#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:147 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:495 +msgid "Receive DataSet Notifications?" +msgstr "" + +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:210 +msgid "Should members of this Group receive DataSet notification emails?" +msgstr "" + +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:220 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:224 +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:466 +#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:151 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:510 +msgid "Receive Layout Notifications?" +msgstr "" + +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:225 +msgid "Should members of this Group receive Layout notification emails?" +msgstr "" + +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:235 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:239 +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:481 +#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:155 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:525 +msgid "Receive Library Notifications?" +msgstr "" + +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:240 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:244 +msgid "Should members of this Group receive Library notification emails?" +msgstr "" + +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:250 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:254 +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:496 +#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:159 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:540 +msgid "Receive Report Notifications?" +msgstr "" + +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:255 +msgid "Should members of this Group receive Report notification emails?" +msgstr "" + +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:265 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:269 +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:511 +#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:163 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:555 +msgid "Receive Schedule Notifications?" +msgstr "" + +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:270 +msgid "Should members of this Group receive Schedule notification emails?" +msgstr "" + +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:280 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:284 +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:526 +#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:143 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:570 +msgid "Receive Custom Notifications?" +msgstr "" + +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:285 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:289 +msgid "" +"Should members of this Group receive notifications emails for Notifications " +"manually created in CMS?" +msgstr "" + +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:305 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:309 msgid "An optional description of the user group. (1 - 500 characters)" msgstr "" -#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:218 -#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:226 +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:321 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:325 msgid "Show when onboarding a new user?" msgstr "" -#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:223 -#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:231 +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:326 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:330 msgid "" "Should this User Group be available for selection when creating a New User " "via the onboarding form?" msgstr "" -#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:233 -#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:241 +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:336 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:340 msgid "Default Homepage" msgstr "" -#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:238 -#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:246 +#: cache/b8/b883949087e41a51e58bfb0a9f1ef74b.php:341 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:345 msgid "Default Homepage for users created with this group." msgstr "" +#: cache/94/9464af4a196c6fb9a396017edb6718bb.php:56 +msgid "Delete Module Template" +msgstr "" + +#: cache/94/9464af4a196c6fb9a396017edb6718bb.php:88 +msgid "Are you sure you want to delete this Template? This cannot be undone" +msgstr "" + #: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:57 msgid "Edit DataSet" msgstr "" #: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:96 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:590 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:700 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:696 #: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:96 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1818 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1966 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:124 msgid "Remote" msgstr "" #: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:100 -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:312 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:379 #: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:100 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:285 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:323 msgid "Authentication" msgstr "" @@ -8520,7 +8785,7 @@ msgstr "" #: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:205 #: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:191 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:208 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:211 msgid "Remote?" msgstr "" @@ -8529,167 +8794,200 @@ msgstr "" msgid "Is this DataSet connected to a remote data source?" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:222 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:220 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:209 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:215 +msgid "Real time?" +msgstr "" + +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:225 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:214 +msgid "Is this DataSet connected to a real time data source?" +msgstr "" + +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:236 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:228 +msgid "Data Connector Source" +msgstr "" + +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:241 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:233 +msgid "Select data connector source." +msgstr "" + +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:260 +msgid "" +"No remote columns have been configured for this dataset. Please configure " +"your columns accordingly." +msgstr "" + +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:275 +msgid "" +"No value columns have been configured for this dataset. Please configure " +"your columns accordingly." +msgstr "" + +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:289 msgid "" "This DataSet has been accessed or updated recently, which means the CMS will " "keep it active." msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:232 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:208 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:299 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:246 msgid "Method" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:237 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:213 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:304 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:251 msgid "What type of request needs to be made to get the remote data?" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:242 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:309 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:228 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:218 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:256 msgid "GET" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:247 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:314 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:233 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:223 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:261 msgid "POST" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:262 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:238 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:329 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:276 msgid "URI" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:267 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:243 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:334 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:281 msgid "URL to the Remote DataSet for GET and POST." msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:279 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:255 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:346 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:293 msgid "Replacements" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:283 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:259 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:350 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:297 msgid "Request date: {{DATE}}" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:287 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:263 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:354 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:301 msgid "Request time: {{TIME}}" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:291 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:267 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:358 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:305 msgid "" "Dependant fields: {{COL.NAME}} where NAME is a FieldName from the dependant " "DataSet" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:297 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:273 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:364 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:311 msgid "" "Data to add to this request. This should be URL encoded, e.g. paramA=1&" "paramB=2." msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:317 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:290 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:384 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:328 msgid "" "Select the authentication requirements for the remote data source. These " "will be added to the request." msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:327 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:300 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:394 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:338 msgid "Basic" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:332 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:305 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:399 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:343 msgid "Digest" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:337 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:310 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:404 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:348 msgid "NTLM" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:342 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:315 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:409 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:353 msgid "Bearer" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:365 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:338 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:432 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:376 msgid "Enter the authentication Username" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:375 -#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:217 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:442 +#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:219 #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:145 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:348 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:386 #: cache/64/6468accf3a0fea12fced661d430c769f.php:236 #: cache/58/582bf6a35fd9661de4021ae6aad02414.php:213 #: cache/37/377ff96eb23f94563370a45d1c41993f.php:114 msgid "Password" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:380 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:353 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:447 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:391 msgid "Corresponding Password" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:390 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:363 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:457 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:401 msgid "Custom Headers" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:395 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:368 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:462 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:406 msgid "" "Comma separated string of custom HTTP headers in headerName:headerValue " "format" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:410 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:383 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:477 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:421 msgid "" "Optionally set specific User Agent for this request, provide only the value, " "relevant header will be added automatically" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:422 -#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:320 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:395 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:489 +#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:322 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:433 msgid "Source" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:427 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:400 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:494 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:438 msgid "Select source type of the provided remote Dataset URL" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:432 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:405 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:499 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:443 msgid "JSON" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:437 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:410 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:504 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:448 msgid "CSV" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:452 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:425 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:519 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:463 msgid "Data root" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:457 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:430 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:524 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:468 msgid "" "Please enter the element in your remote data which we should use as the " "starting point when we match the remote Columns. This should be an array or " @@ -8697,228 +8995,221 @@ msgid "" "returned." msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:467 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:440 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:534 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:478 msgid "CSV separator" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:472 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:445 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:539 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:483 msgid "What separator should be used for CSV source?" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:477 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:450 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:544 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:488 msgid "Comma" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:483 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:456 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:550 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:494 msgid "Semicolon" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:489 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:462 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:556 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:500 msgid "Space" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:495 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:468 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:562 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:506 msgid "Tab" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:501 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:474 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:568 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:512 msgid "Pipe" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:520 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:493 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:647 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:587 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:531 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:688 msgid "Ignore first row?" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:525 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:498 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:592 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:536 msgid "For CSV source, should the first row be ignored?" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:537 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:510 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:604 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:548 msgid "Test data URL" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:546 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:519 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:613 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:557 msgid "Aggregation" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:551 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:524 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:618 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:562 msgid "Aggregate received data by the given method" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:561 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:534 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:628 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:572 msgid "Summarize" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:582 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:555 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:649 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:593 msgid "By Field" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:592 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:562 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:659 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:600 msgid "" "Using JSON syntax enter the path below the Data root by which the above " "aggregation should be applied." msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:596 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:566 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:663 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:604 msgid "" "Summarize: Values in this field will be summarized and stored in one column." msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:600 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:570 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:667 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:608 msgid "" "Count: All individual values in this field will be counted and stored in one " "Column for each value" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:611 -#: cache/52/522b66fbe5b8efaad37d81db81288730.php:67 -#: cache/52/522b66fbe5b8efaad37d81db81288730.php:69 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:82 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:678 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:79 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:581 -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:81 -#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:82 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:81 -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:77 -#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:80 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:97 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:619 msgid "Refresh" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:616 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:586 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:683 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:624 msgid "How often should this remote data be fetched and imported?" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:623 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:593 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:690 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:631 msgid "Constantly" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:643 -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:716 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:613 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:686 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:710 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:783 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:651 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:724 msgid "Every two Weeks" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:653 -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:726 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:623 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:696 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:720 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:793 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:661 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:734 msgid "Quaterly" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:679 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:649 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:746 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:687 msgid "Truncate DataSet" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:684 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:654 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:751 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:692 msgid "" "Select when you would like the Data to be truncated out of this DataSet. The " "criteria is assessed when synchronisation occurs and is truncated before " "adding new data." msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:691 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:661 -#: lib/Controller/Library.php:579 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:758 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:699 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2959 +#: lib/Controller/Library.php:581 msgid "Never" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:696 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:666 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1499 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1965 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1980 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:763 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:704 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2963 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1464 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1932 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1947 msgid "Always" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:736 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:706 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:803 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:744 msgid "Every second Year" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:759 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:729 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:826 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:767 msgid "Truncate with no new data?" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:764 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:734 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:831 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:772 msgid "" "Should the DataSet data be truncated even if no new data is pulled from the " "source?" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:774 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:744 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:841 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:782 msgid "Depends on DataSet" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:782 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:752 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:849 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:790 msgid "" "The DataSet you select here will be processed in advance and have its values " "available for subsitution in the data to add to this request on the Remote " "tab." msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:792 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:762 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:859 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:800 msgid "Row Limit" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:797 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:767 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:864 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:805 msgid "" "Optionally provide a row limit for this DataSet. When left empty the DataSet " "row limit from CMS Settings will be used." msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:807 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:777 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:874 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:815 msgid "Limit Policy" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:812 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:782 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:879 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:820 msgid "What should happen when this Dataset reaches the row limit?" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:817 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:787 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:884 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:825 msgid "Stop Syncing" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:822 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:792 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:889 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:830 msgid "First In First Out" msgstr "" -#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:827 +#: cache/86/86d9a0599e765017f2e6f2e4a7025625.php:894 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:73 -#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:797 +#: cache/41/413dbe6a803c413d6ff11377888e1e0d.php:835 #: cache/dc/dc491f32668885ef8be3c5ae4c7dc6e5.php:56 msgid "Truncate" msgstr "" @@ -8988,7 +9279,7 @@ msgid "" msgstr "" #: cache/46/46d175eb37bdc1a79c39e008e76f3511.php:80 -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:178 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:182 #: cache/f5/f5b6ca9665811279877c56e7283984bb.php:46 #: cache/eb/ebcff77a4e266af34134679c91af4d2d.php:115 #: cache/80/80846113d03ba42567baaa96738353d4.php:123 @@ -8997,21 +9288,23 @@ msgstr "" #: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:214 #: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:224 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:53 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:176 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:183 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:135 #: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:58 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:112 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1652 -#: lib/Controller/Campaign.php:297 lib/Controller/Playlist.php:538 -#: lib/Controller/Library.php:782 lib/Controller/Layout.php:1725 -#: lib/Controller/Display.php:1003 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:117 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1617 +#: lib/Controller/Campaign.php:297 lib/Controller/Playlist.php:541 +#: lib/Controller/Library.php:784 lib/Controller/Layout.php:1751 +#: lib/Controller/Display.php:1004 msgid "Schedule" msgstr "" #: cache/46/46d175eb37bdc1a79c39e008e76f3511.php:126 #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:221 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:145 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:135 #: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:55 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:114 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:119 #: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:254 msgid "Library" msgstr "" @@ -9020,7 +9313,7 @@ msgstr "" #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:173 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:115 #: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:55 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:89 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:94 msgid "Templates" msgstr "" @@ -9037,8 +9330,8 @@ msgstr "" #: cache/46/46d175eb37bdc1a79c39e008e76f3511.php:214 #: cache/e5/e5310108493cd13aa490732e70fdb013.php:51 -#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:326 #: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:328 +#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:330 #: cache/da/da41f70f7f97d805693655ab22c71014.php:53 #: cache/71/71725d40a3089432630feea639ab8751.php:102 msgid "About" @@ -9052,44 +9345,44 @@ msgid "Report Fault" msgstr "" #: cache/52/522b66fbe5b8efaad37d81db81288730.php:55 -#: cache/52/522b66fbe5b8efaad37d81db81288730.php:83 +#: cache/52/522b66fbe5b8efaad37d81db81288730.php:81 #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:601 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:380 msgid "Modules" msgstr "" -#: cache/52/522b66fbe5b8efaad37d81db81288730.php:119 +#: cache/52/522b66fbe5b8efaad37d81db81288730.php:117 #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:326 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:337 msgid "Library Media" msgstr "" -#: cache/52/522b66fbe5b8efaad37d81db81288730.php:123 +#: cache/52/522b66fbe5b8efaad37d81db81288730.php:121 #: cache/f7/f789072c56d4d186cbc4fdd166003cb4.php:135 msgid "Default Duration" msgstr "" -#: cache/52/522b66fbe5b8efaad37d81db81288730.php:127 +#: cache/52/522b66fbe5b8efaad37d81db81288730.php:125 msgid "Preview Enabled" msgstr "" -#: cache/52/522b66fbe5b8efaad37d81db81288730.php:131 +#: cache/52/522b66fbe5b8efaad37d81db81288730.php:129 msgid "Can this module be assigned to a Layout?" msgstr "" -#: cache/52/522b66fbe5b8efaad37d81db81288730.php:133 +#: cache/52/522b66fbe5b8efaad37d81db81288730.php:131 msgid "Assignable" msgstr "" -#: cache/52/522b66fbe5b8efaad37d81db81288730.php:137 -#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:409 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:195 -#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:102 +#: cache/52/522b66fbe5b8efaad37d81db81288730.php:135 +#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:419 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:200 +#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:107 msgid "Enabled" msgstr "" -#: cache/52/522b66fbe5b8efaad37d81db81288730.php:141 -#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:283 +#: cache/52/522b66fbe5b8efaad37d81db81288730.php:139 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:605 msgid "Errors" msgstr "" @@ -9102,15 +9395,15 @@ msgstr "" #: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:71 #: cache/fa/faae83213ac48b5ddd10aa2f75cd5121.php:56 #: cache/fa/faae83213ac48b5ddd10aa2f75cd5121.php:69 -#: lib/Controller/Template.php:295 lib/Controller/Layout.php:1880 +#: lib/Controller/Template.php:340 lib/Controller/Layout.php:1906 msgid "Export" msgstr "" -#: cache/a0/a0f36c1fb58c28bcc160b69bcd8c3260.php:203 +#: cache/a0/a0f36c1fb58c28bcc160b69bcd8c3260.php:205 msgid "Total number of records to be exported " msgstr "" -#: cache/a0/a0f36c1fb58c28bcc160b69bcd8c3260.php:245 +#: cache/a0/a0f36c1fb58c28bcc160b69bcd8c3260.php:247 msgid "Form field is required." msgstr "" @@ -9119,10 +9412,10 @@ msgid "Add Media via URL" msgstr "" #: cache/a0/a08e0b0d63f497e79ba45d275f7d8e2e.php:120 -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:124 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:128 #: cache/58/582bf6a35fd9661de4021ae6aad02414.php:246 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:614 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:618 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:626 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:630 msgid "URL" msgstr "" @@ -9148,14 +9441,14 @@ msgid "" msgstr "" #: cache/e7/e7012f849ea8937cd0edbed2b7de4de8.php:978 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2150 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2394 msgid "Group" msgstr "" #: cache/e7/e7012f849ea8937cd0edbed2b7de4de8.php:1454 -#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:124 +#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:129 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:294 -#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:138 +#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:143 msgid "Use Regex?" msgstr "" @@ -9187,18 +9480,18 @@ msgid "Add Column" msgstr "" #: cache/3c/3cff55fb510343a28bcab4eebabcb98a.php:134 -#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:120 +#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:124 #: cache/ee/ee0c1651752b1209943673ee1794a659.php:134 msgid "Heading" msgstr "" #: cache/3c/3cff55fb510343a28bcab4eebabcb98a.php:139 #: cache/ee/ee0c1651752b1209943673ee1794a659.php:139 -msgid "The heading for this Column" +msgid "The heading for this Column. You cannot use a column name with spaces." msgstr "" #: cache/3c/3cff55fb510343a28bcab4eebabcb98a.php:149 -#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:128 +#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:132 #: cache/ee/ee0c1651752b1209943673ee1794a659.php:149 msgid "Column Type" msgstr "" @@ -9209,7 +9502,11 @@ msgid "Select the Column Type" msgstr "" #: cache/3c/3cff55fb510343a28bcab4eebabcb98a.php:164 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:207 #: cache/ee/ee0c1651752b1209943673ee1794a659.php:164 +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:135 +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:163 +#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:133 msgid "Data Type" msgstr "" @@ -9219,7 +9516,7 @@ msgid "The DataType of the Intended Data" msgstr "" #: cache/3c/3cff55fb510343a28bcab4eebabcb98a.php:179 -#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:132 +#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:136 #: cache/ee/ee0c1651752b1209943673ee1794a659.php:179 msgid "List Content" msgstr "" @@ -9260,7 +9557,7 @@ msgid "The order this column should be displayed in when entering data" msgstr "" #: cache/3c/3cff55fb510343a28bcab4eebabcb98a.php:238 -#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:136 +#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:140 #: cache/ee/ee0c1651752b1209943673ee1794a659.php:238 msgid "Tooltip" msgstr "" @@ -9305,7 +9602,7 @@ msgid "" msgstr "" #: cache/3c/3cff55fb510343a28bcab4eebabcb98a.php:319 -#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:144 +#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:148 #: cache/ee/ee0c1651752b1209943673ee1794a659.php:319 msgid "Required?" msgstr "" @@ -9334,7 +9631,7 @@ msgstr "" #: cache/3c/3c90c1b1128021f78951bf370e3c5c0b.php:58 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:574 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:684 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:680 msgid "Bandwidth Limit" msgstr "" @@ -9357,6 +9654,7 @@ msgid "Minute" msgstr "" #: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:57 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:498 msgid "Hour" msgstr "" @@ -9400,15 +9698,15 @@ msgstr "" #: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:220 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:499 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:601 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:597 #: cache/f6/f60761fa1e2b5ad016f9d13f094f9488.php:88 #: cache/65/651e2483d1426d8b1b7ce3fef030fb15.php:88 -#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:89 -#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:134 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1453 +#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:94 +#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:139 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1543 #: cache/63/63a123f42a16165e90cd9f604b2de4bd.php:210 #: cache/0c/0cc104a3d7987780eed7a70657ece580.php:182 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:356 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:359 msgid "Resolution" msgstr "" @@ -9431,6 +9729,42 @@ msgid "" "not fill the entire screen" msgstr "" +#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:288 +msgid "Is set" +msgstr "" + +#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:292 +msgid "Less than" +msgstr "" + +#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:296 +msgid "Less than or equal to" +msgstr "" + +#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:300 +msgid "Equal to" +msgstr "" + +#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:304 +msgid "Not equal to" +msgstr "" + +#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:308 +msgid "Greater than or equal to" +msgstr "" + +#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:312 +msgid "Greater than" +msgstr "" + +#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:316 +msgid "Contains" +msgstr "" + +#: cache/3c/3cafc6063c2a786736bea5bbf9d4cb6f.php:320 +msgid "Not contains" +msgstr "" + #: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:59 #: cache/68/683636238aff529d5a7b7478118dede4.php:119 #: cache/68/683636238aff529d5a7b7478118dede4.php:2174 @@ -9452,7 +9786,7 @@ msgstr "" #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:410 #: cache/09/09ce3b6a0541b31d12645b44531faf96.php:78 #: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:55 -#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:87 +#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:92 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:284 #: cache/49/49b3c02c876e8a464a75e1682c064115.php:78 #: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:78 @@ -9769,22 +10103,34 @@ msgstr "" #: cache/09/09ce3b6a0541b31d12645b44531faf96.php:318 #: cache/49/49b3c02c876e8a464a75e1682c064115.php:277 #: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:345 -msgid "The logging level that should be recorded by the Player." +msgid "The resting logging level that should be recorded by the Player." msgstr "" #: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:255 -msgid "Trace" +#: cache/68/683636238aff529d5a7b7478118dede4.php:3057 +#: cache/68/683636238aff529d5a7b7478118dede4.php:3119 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:321 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:280 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:348 +msgid "Emergency" msgstr "" #: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:255 -#: cache/68/683636238aff529d5a7b7478118dede4.php:3154 -msgid "Debug" +#: cache/68/683636238aff529d5a7b7478118dede4.php:3062 +#: cache/68/683636238aff529d5a7b7478118dede4.php:3124 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:321 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:280 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:348 +msgid "Alert" msgstr "" #: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:255 -#: cache/68/683636238aff529d5a7b7478118dede4.php:3149 +#: cache/68/683636238aff529d5a7b7478118dede4.php:3067 +#: cache/68/683636238aff529d5a7b7478118dede4.php:3129 #: cache/09/09ce3b6a0541b31d12645b44531faf96.php:321 -msgid "Information" +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:280 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:348 +msgid "Critical" msgstr "" #: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:255 @@ -9798,147 +10144,163 @@ msgstr "" msgid "Error" msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:267 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:402 -msgid "Enable Shell Commands" +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:266 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:330 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:289 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:357 +msgid "Elevate Logging until" msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:270 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:405 -msgid "Enable the Shell Command module." -msgstr "" +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:271 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:335 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:294 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:362 +msgid "" +"Elevate log level for the specified time. Should only be used if there is a " +"problem with the display." +msgstr "" + +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:299 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:432 +msgid "Enable Shell Commands" +msgstr "" + +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:302 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:435 +msgid "Enable the Shell Command module." +msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:281 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:416 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:316 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:432 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:313 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:446 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:346 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:462 msgid "Notify current layout" msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:284 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:419 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:319 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:435 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:316 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:449 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:349 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:465 msgid "" "When enabled the Player will send the current layout to the CMS each time it " "changes. Warning: This is bandwidth intensive and should be disabled unless " "on a LAN." msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:295 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:430 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:446 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:327 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:460 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:476 msgid "Expire Modified Layouts?" msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:298 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:433 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:449 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:330 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:463 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:479 msgid "" "Expire Modified Layouts immediately on change. This means a layout can be " "cut during playback if it receives an update from the CMS" msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:306 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:441 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:338 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:471 msgid "Maximum concurrent downloads" msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:309 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:444 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:341 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:474 msgid "The maximum number of concurrent downloads the Player will attempt." msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:317 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:452 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:349 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:482 msgid "Shell Command Allow List" msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:320 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:455 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:352 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:485 msgid "Which shell commands should the Player execute?" msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:331 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:466 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:336 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:460 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:363 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:496 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:366 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:490 msgid "Screen shot interval" msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:334 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:469 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:345 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:463 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:366 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:499 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:375 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:493 msgid "" "The duration between status screen shots in minutes. 0 to disable. Warning: " "This is bandwidth intensive." msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:345 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:480 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:356 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:485 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:377 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:510 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:386 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:515 msgid "Screen Shot Size" msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:348 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:483 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:488 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:380 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:513 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:518 msgid "The size of the largest dimension. Empty or 0 means the screen size." msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:356 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:491 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:388 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:521 msgid "Limit the number of log files uploaded concurrently" msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:359 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:494 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:391 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:524 msgid "" "The number of log files to upload concurrently. The lower the number the " "longer it will take, but the better for memory usage." msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:367 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:502 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:393 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:546 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:399 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:532 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:423 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:576 msgid "Embedded Web Server Port" msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:370 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:505 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:396 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:549 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:402 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:535 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:426 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:579 msgid "" "The port number to use for the embedded web server on the Player. Only " "change this if there is a port conflict reported on the status screen." msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:378 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:513 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:404 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:557 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:410 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:543 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:434 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:587 msgid "Embedded Web Server allow WAN?" msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:381 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:516 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:407 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:560 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:413 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:546 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:437 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:590 msgid "" "Should we allow access to the Player Embedded Web Server from WAN? You may " "need to adjust the device firewall to allow external traffic" msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:389 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:524 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:421 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:554 msgid "Prevent Sleep?" msgstr "" -#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:392 -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:527 +#: cache/3c/3c7bd12ad2faa21d9e80b1c4ee69d3b4.php:424 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:557 msgid "Stop the player PC power management from Sleeping the PC" msgstr "" @@ -10167,10 +10529,10 @@ msgstr "" #: cache/68/683636238aff529d5a7b7478118dede4.php:776 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:510 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:612 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:608 #: cache/fd/fdcb7243cca15e1cb2caaef15ca051a6.php:93 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:327 -#: lib/Controller/Display.php:913 +#: lib/Controller/Display.php:914 msgid "Default Layout" msgstr "" @@ -10719,7 +11081,7 @@ msgstr "" #: cache/68/683636238aff529d5a7b7478118dede4.php:2890 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:550 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:656 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:652 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:379 msgid "Timezone" msgstr "" @@ -10767,21 +11129,6 @@ msgid "" "recommended." msgstr "" -#: cache/68/683636238aff529d5a7b7478118dede4.php:3057 -#: cache/68/683636238aff529d5a7b7478118dede4.php:3119 -msgid "Emergency" -msgstr "" - -#: cache/68/683636238aff529d5a7b7478118dede4.php:3062 -#: cache/68/683636238aff529d5a7b7478118dede4.php:3124 -msgid "Alert" -msgstr "" - -#: cache/68/683636238aff529d5a7b7478118dede4.php:3067 -#: cache/68/683636238aff529d5a7b7478118dede4.php:3129 -msgid "Critical" -msgstr "" - #: cache/68/683636238aff529d5a7b7478118dede4.php:3112 msgid "" "Set the level of logging the CMS should record. In production systems " @@ -10796,6 +11143,14 @@ msgstr "" msgid "Notice" msgstr "" +#: cache/68/683636238aff529d5a7b7478118dede4.php:3149 +msgid "Information" +msgstr "" + +#: cache/68/683636238aff529d5a7b7478118dede4.php:3154 +msgid "Debug" +msgstr "" + #: cache/68/683636238aff529d5a7b7478118dede4.php:3193 msgid "Elevate Log Until" msgstr "" @@ -10820,6 +11175,7 @@ msgid "Production" msgstr "" #: cache/68/683636238aff529d5a7b7478118dede4.php:3245 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:627 msgid "Test" msgstr "" @@ -10850,12 +11206,12 @@ msgid "" msgstr "" #: cache/68/683636238aff529d5a7b7478118dede4.php:3372 -#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:213 -#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:280 +#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:215 +#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:282 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:119 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:179 -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:125 -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:188 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:123 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:186 #: cache/42/427f29e983bd9df69023fb3b4d508a91.php:163 #: lib/Widget/DataType/SocialMedia.php:66 msgid "User" @@ -10911,23 +11267,23 @@ msgid "" msgstr "" #: cache/68/6890d35803a665b9db578df45f0f60f0.php:66 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:182 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:207 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:232 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:485 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:995 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:416 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:180 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:205 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:230 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:483 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1013 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:430 #: cache/17/1730b41c1b94639a7bb894f0f6bbe405.php:74 #: cache/17/17a063cd6b023f6b3259fc5bb6f3383f.php:74 #: cache/9c/9cd9c506c8127381b3a38d63834ca951.php:68 -#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:112 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:713 +#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:117 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:783 #: cache/0b/0be3ce8babaac9062233441fb19b6502.php:68 #: cache/4c/4cf917c586e727b0fb8bbf89dacfd02d.php:68 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:455 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:468 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:416 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:429 #: cache/53/53e83337eb2bf3e9523456dda845ffab.php:65 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:283 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:289 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:312 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:616 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:785 @@ -10961,7 +11317,7 @@ msgid "Reassign all items this User owns to the selected User." msgstr "" #: cache/14/14220f2427744b387c8a9518e0bf00d2.php:57 -#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:104 +#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:108 #, no-php-format msgid "Data Entry for %dataSetName%" msgstr "" @@ -10979,7 +11335,7 @@ msgid "Click to toggle between Data Edit and Multi Select modes" msgstr "" #: cache/14/14220f2427744b387c8a9518e0bf00d2.php:79 -#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:205 +#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:211 msgid "Multi Select Mode" msgstr "" @@ -10992,21 +11348,21 @@ msgid "Delete Rows" msgstr "" #: cache/14/14220f2427744b387c8a9518e0bf00d2.php:91 -#: lib/Controller/DataSet.php:213 +#: lib/Controller/DataSet.php:226 msgid "View Columns" msgstr "" -#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:112 -#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:201 +#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:116 +#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:207 msgid "Edit Mode" msgstr "" -#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:114 -#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:209 +#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:118 +#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:215 msgid "Click on any row to edit" msgstr "" -#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:213 +#: cache/14/14220f2427744b387c8a9518e0bf00d2.php:219 msgid "Select one or more rows to delete" msgstr "" @@ -11057,61 +11413,61 @@ msgstr "" msgid "Saved Reports" msgstr "" -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:81 -#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:155 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:85 +#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:159 msgid "Report Schedule" msgstr "" -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:85 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:89 msgid "The report will be available 6AM every day." msgstr "" -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:142 -#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:127 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:146 +#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:131 msgid "Show items belong to a report." msgstr "" -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:155 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:159 msgid "Only my schedules?" msgstr "" -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:174 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:178 msgid "Report Name" msgstr "" -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:186 -#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:138 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:190 +#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:136 msgid "Last Run" msgstr "" -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:190 -#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:130 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:194 +#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:128 msgid "Next Run" msgstr "" -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:194 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:198 msgid "Previous Run" msgstr "" -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:198 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:202 #: cache/eb/ebcff77a4e266af34134679c91af4d2d.php:130 -#: cache/05/05600263dc8230138bb0f89338bbef69.php:94 -#: cache/05/05600263dc8230138bb0f89338bbef69.php:130 -#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:122 +#: cache/05/05600263dc8230138bb0f89338bbef69.php:142 +#: cache/05/05600263dc8230138bb0f89338bbef69.php:178 +#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:120 msgid "Active" msgstr "" -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:202 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:916 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:206 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:990 msgid "Start time" msgstr "" -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:206 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:920 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:210 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:994 msgid "End time" msgstr "" -#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:210 +#: cache/e5/e5e5434fb79a5ac6a7fd60b41343e917.php:214 msgid "Failed Message" msgstr "" @@ -11148,6 +11504,16 @@ msgid "" "would like to cache results." msgstr "" +#: cache/e5/e5c3ab4b73473f74411baea5286e8687.php:137 +msgid "Schedule Criteria Cache Period" +msgstr "" + +#: cache/e5/e5c3ab4b73473f74411baea5286e8687.php:142 +msgid "" +"If a player has weather based schedule criteria, how many hours should this " +"connector cache that weather data for?" +msgstr "" + #: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:55 msgid "Categories for " msgstr "" @@ -11160,24 +11526,25 @@ msgstr "" msgid "Add Category" msgstr "" -#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:91 +#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:96 msgid "Menu Board Categories for" msgstr "" -#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:230 +#: cache/2d/2d67b2aac34d9a8cd68e4dad8db97260.php:237 #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:566 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:676 -#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:306 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:672 +#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:313 #: cache/25/257d7652c0b04ca6e480ad5c9beaa3c2.php:140 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:365 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:371 -#: cache/34/3453edc522f8d2c6d1d154ad55500693.php:334 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:449 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:606 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:336 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:475 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:213 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:323 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:395 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:401 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2268 +#: cache/34/3453edc522f8d2c6d1d154ad55500693.php:339 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:453 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:612 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:339 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:480 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:216 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:328 msgid "Thumbnail" msgstr "" @@ -11211,12 +11578,12 @@ msgid "What type of Campaign would you like to create?" msgstr "" #: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:142 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:178 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:183 msgid "Layout list" msgstr "" #: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:142 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:178 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:183 msgid "Ad Campaign" msgstr "" @@ -11279,8 +11646,8 @@ msgid "Block" msgstr "" #: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:274 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:301 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2785 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:304 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3108 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:186 msgid "Target Type" msgstr "" @@ -11291,33 +11658,34 @@ msgid "How would you like to set the target for this campaign?" msgstr "" #: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:283 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:309 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:510 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:312 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:515 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:195 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:466 msgid "Plays" msgstr "" #: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:283 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:515 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:520 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:195 msgid "Budget" msgstr "" #: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:283 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:317 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:520 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:320 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:525 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:195 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:486 -#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:271 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:522 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:593 msgid "Impressions" msgstr "" #: cache/f5/f5c7640aa7fbb9ab7e2caec1a409d7c2.php:292 -#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:246 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:305 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1261 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2789 +#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:253 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:308 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1351 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3112 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:204 msgid "Target" msgstr "" @@ -11363,7 +11731,7 @@ msgid "" msgstr "" #: cache/eb/eb722a59dac7c3fddd70255e2c4c5f1d.php:56 -#: lib/Controller/DataSet.php:264 lib/Controller/Module.php:129 +#: lib/Controller/DataSet.php:309 lib/Controller/Module.php:129 msgid "Clear Cache" msgstr "" @@ -11375,7 +11743,7 @@ msgstr "" msgid "Schedule Event" msgstr "" -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:124 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:128 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:115 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:115 msgid "" @@ -11384,57 +11752,57 @@ msgid "" "days" msgstr "" -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:276 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:284 msgid "Use Relative time?" msgstr "" -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:281 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:289 msgid "" "Switch between relative time inputs and Date pickers for start and end time." msgstr "" -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:291 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:299 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:143 -#: lib/Report/TimeDisconnectedSummary.php:309 +#: lib/Report/TimeDisconnectedSummary.php:311 msgid "Hours" msgstr "" -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:296 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:304 msgid "Hours this event should be scheduled for" msgstr "" -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:306 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:314 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:138 -#: lib/Report/TimeDisconnectedSummary.php:312 +#: lib/Report/TimeDisconnectedSummary.php:314 msgid "Minutes" msgstr "" -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:311 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:319 msgid "Minutes this event should be scheduled for" msgstr "" -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:321 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:329 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:133 msgid "Seconds" msgstr "" -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:326 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:334 msgid "Seconds this event should be scheduled for" msgstr "" -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:336 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:344 msgid "" "Your event will be scheduled from [fromDt] to [toDt] in each of your " "selected Displays respective timezones" msgstr "" -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:341 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:349 msgid "" "Your event will be scheduled from [fromDt] to [toDt] in the CMS timezone, " "please check this covers each of your Displays in their respective timezones." msgstr "" -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:681 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:731 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:411 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:458 msgid "" @@ -11442,7 +11810,7 @@ msgid "" "repeated." msgstr "" -#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:736 +#: cache/80/8016dad6634116cf39ffaf1bbf646931.php:786 #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:466 #: cache/0e/0e02100c0f3615b819bb09d3e2a17b8a.php:513 msgid "" @@ -11470,17 +11838,17 @@ msgstr "" #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:125 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:80 -#: lib/Controller/Playlist.php:1703 lib/Controller/Library.php:2123 -#: lib/Controller/Layout.php:1657 +#: lib/Controller/Playlist.php:1706 lib/Controller/Library.php:2152 +#: lib/Controller/Layout.php:1681 msgid "Design" msgstr "" #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:143 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:89 #: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:55 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:89 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:260 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1579 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:94 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:265 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1544 #: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:326 msgid "Campaigns" msgstr "" @@ -11494,33 +11862,33 @@ msgstr "" #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:269 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:180 #: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:58 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:92 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:97 msgid "DataSets" msgstr "" #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:284 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:193 #: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:55 -#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:89 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:94 msgid "Menu Boards" msgstr "" #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:350 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:232 #: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:56 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:96 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:338 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:351 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:536 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1536 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:95 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:321 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:334 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:497 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1501 #: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:140 -#: lib/Controller/Display.php:1133 +#: lib/Controller/Display.php:1134 msgid "Display Groups" msgstr "" #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:365 #: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:56 -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:96 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:95 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:245 msgid "Sync Groups" msgstr "" @@ -11543,30 +11911,30 @@ msgstr "" #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:511 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:341 #: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:55 -#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:96 +#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:94 #: cache/18/182efb17b49d552c0a40888c354c91f9.php:163 -#: lib/Controller/User.php:379 +#: lib/Controller/User.php:381 msgid "User Groups" msgstr "" #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:571 #: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:56 -#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:86 +#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:90 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:367 msgid "Applications" msgstr "" #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:631 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:393 -#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:54 -#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:66 +#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:55 +#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:81 msgid "Transitions" msgstr "" #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:661 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:406 #: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:55 -#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:94 +#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:92 msgid "Tasks" msgstr "" @@ -11597,8 +11965,8 @@ msgstr "" #: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:916 #: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:540 -#: cache/05/05600263dc8230138bb0f89338bbef69.php:54 -#: cache/05/05600263dc8230138bb0f89338bbef69.php:66 +#: cache/05/05600263dc8230138bb0f89338bbef69.php:55 +#: cache/05/05600263dc8230138bb0f89338bbef69.php:114 msgid "Sessions" msgstr "" @@ -11607,40 +11975,53 @@ msgstr "" msgid "Audit Trail" msgstr "" -#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:149 +#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:973 +#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:295 +#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:583 +msgid "Developer" +msgstr "" + +#: cache/9f/9f9a142004ca4a1c914a4395fe586017.php:983 +#: cache/a4/a4b5f52b1992bb349e8a30b19ff24645.php:593 +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:56 +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:99 +msgid "Module Templates" +msgstr "" + +#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:151 msgid "Connect with the Central Authentication Server" msgstr "" -#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:170 +#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:172 msgid "CAS Login" msgstr "" -#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:208 +#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:210 msgid "Please provide your credentials" msgstr "" -#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:238 +#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:240 msgid "Login" msgstr "" -#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:245 +#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:247 msgid "Forgotten your password?" msgstr "" -#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:276 +#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:278 msgid "Please provide your user name" msgstr "" -#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:301 +#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:303 msgid "Send Reset" msgstr "" -#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:306 +#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:308 msgid "Login instead?" msgstr "" -#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:315 -#: cache/ad/ad54e0056cae6c1c9fdb33f368333c1e.php:125 +#: cache/9f/9fdba8e23ed4ab1fa30c86aed8306cba.php:317 +#: cache/ad/ad54e0056cae6c1c9fdb33f368333c1e.php:127 #, no-php-format msgid "Version %version%" msgstr "" @@ -11656,7 +12037,7 @@ msgstr "" #: cache/03/039a03a53ca9c115563cba3023033457.php:105 #: cache/0a/0a340a0ca0d8bada06401bf9fd7c6bf2.php:105 -#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:155 +#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:159 msgid "Values" msgstr "" @@ -11756,83 +12137,77 @@ msgid "" "Which key should activate the Player information screen? A single character." msgstr "" -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:321 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:280 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:348 -msgid "Audit" -msgstr "" - -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:329 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:359 msgid "Log file path name." msgstr "" -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:332 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:362 msgid "" "Create a log file on disk in this location. Please enter a fully qualified " "path." msgstr "" -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:344 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:374 msgid "Show the icon in the task bar?" msgstr "" -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:347 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:377 msgid "Should the application icon be shown in the task bar?" msgstr "" -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:355 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:385 msgid "Cursor Start Position" msgstr "" -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:358 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:388 msgid "The position of the cursor when the Player starts up." msgstr "" -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:361 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:391 msgid "Unchanged" msgstr "" -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:361 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:391 msgid "Top Left" msgstr "" -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:361 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:391 msgid "Top Right" msgstr "" -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:361 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:391 msgid "Bottom Left" msgstr "" -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:361 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:391 msgid "Bottom Right" msgstr "" -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:369 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:399 msgid "Enable Double Buffering" msgstr "" -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:372 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:402 msgid "" "Double buffering helps smooth the playback but should be disabled if " "graphics errors occur" msgstr "" -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:380 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:410 msgid "Duration for Empty Layouts" msgstr "" -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:383 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:413 msgid "" "If an empty layout is detected how long (in seconds) should it remain on " "screen? Must be greater than 1." msgstr "" -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:391 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:421 msgid "Enable Mouse" msgstr "" -#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:394 +#: cache/09/09ce3b6a0541b31d12645b44531faf96.php:424 msgid "Enable the mouse." msgstr "" @@ -11911,143 +12286,143 @@ msgid "Displays Page" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:473 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:197 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:573 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:195 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:569 msgid "Authorised?" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:477 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:577 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:573 msgid "Current Layout" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:481 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:581 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:577 msgid "Storage Available" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:485 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:585 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:581 msgid "Storage Total" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:489 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:589 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:585 msgid "Storage Free %" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:495 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:413 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:597 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:411 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:593 #: cache/7d/7d8878cf40b2a074d7a7dd990858a580.php:90 #: cache/49/49b3c02c876e8a464a75e1682c064115.php:187 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1744 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1766 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1888 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1914 #: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:280 #: cache/c5/c52b8109558dd3acc604e183177113c8.php:288 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:247 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:445 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:257 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:209 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:253 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:449 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:262 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:212 msgid "Orientation" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:514 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:616 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:612 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:770 msgid "Interleave Default" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:518 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:620 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:616 msgid "Email Alert" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:526 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:320 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:628 -#: cache/05/05600263dc8230138bb0f89338bbef69.php:126 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:318 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:624 +#: cache/05/05600263dc8230138bb0f89338bbef69.php:174 msgid "Last Accessed" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:530 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:300 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:632 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:298 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:628 msgid "Display Profile" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:538 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:644 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:640 msgid "Device Name" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:542 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:403 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:648 -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:155 -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:200 -#: cache/05/05600263dc8230138bb0f89338bbef69.php:138 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:401 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:644 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:153 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:198 +#: cache/05/05600263dc8230138bb0f89338bbef69.php:186 msgid "IP Address" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:546 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:393 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:652 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:391 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:648 msgid "Mac Address" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:562 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:672 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:668 msgid "Screen shot?" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:570 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:680 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:676 msgid "CMS Transfer?" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:578 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:688 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:684 msgid "Last Command" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:582 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:692 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:688 msgid "XMR Registered" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:586 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:438 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:696 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:436 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:692 msgid "Commercial Licence" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:598 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:756 -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:194 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1790 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:307 -#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:214 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:752 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:191 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1938 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:305 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:217 msgid "Modified Date" msgstr "" #: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:602 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:760 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:756 msgid "Faults?" msgstr "" -#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:1265 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1147 +#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:1267 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1165 msgid "VNC to this Display" msgstr "" -#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:1275 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1157 +#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:1277 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1175 msgid "TeamViewer to this Display" msgstr "" -#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:1286 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1168 +#: cache/09/09fa06e4cbb20e5f65e2075bff1da423.php:1288 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1186 msgid "Webkey to this Display" msgstr "" @@ -12056,8 +12431,8 @@ msgid "Delete this DataSet?" msgstr "" #: cache/75/751b2a96c8637d98a362ec0fd7c3d205.php:88 -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:306 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:569 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:315 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:573 #: cache/58/581725fc73e075b270eb8c5ca975df6c.php:88 #: cache/c6/c6570004e7b23a90548bf6f9c53600f0.php:88 msgid "Are you sure you want to delete?" @@ -12074,12 +12449,12 @@ msgid "" msgstr "" #: cache/24/249edab771342e4742e81d0f76c7ebbc.php:56 -#: lib/Controller/Display.php:1216 lib/Controller/Display.php:1229 +#: lib/Controller/Display.php:1217 lib/Controller/Display.php:1230 msgid "Transfer to another CMS" msgstr "" #: cache/24/249edab771342e4742e81d0f76c7ebbc.php:88 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1757 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1780 msgid "" "Please note: Once the CMS Address and Key are authenticated in this form the " "Display will attempt to register with the CMS Instance details entered. Once " @@ -12099,7 +12474,7 @@ msgid "New CMS Key" msgstr "" #: cache/24/249edab771342e4742e81d0f76c7ebbc.php:110 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1784 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1807 msgid "CMS Secret Key associated with the provided new CMS Address" msgstr "" @@ -12108,7 +12483,7 @@ msgid "Two Factor Code" msgstr "" #: cache/24/249edab771342e4742e81d0f76c7ebbc.php:121 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1797 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1820 msgid "Please enter your Two Factor authentication code" msgstr "" @@ -12120,179 +12495,191 @@ msgstr "" msgid "Add Display (Code)" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:80 -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:79 -#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:80 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:79 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:95 -msgid "Refresh the Table" -msgstr "" - -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:146 -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:456 -#: lib/Controller/Display.php:1295 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:144 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:484 +#: lib/Controller/Display.php:1296 msgid "Up to date" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:151 -#: lib/Controller/Display.php:1296 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:149 +#: lib/Controller/Display.php:1297 msgid "Downloading" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:156 -#: lib/Controller/Display.php:1297 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:154 +#: lib/Controller/Display.php:1298 msgid "Out of date" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:172 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:187 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:170 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:205 msgid "Logged In?" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:222 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:220 msgid "XMR Registered?" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:281 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:279 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:305 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:513 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:527 #: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:455 #: cache/06/064860d0048e253d534fdf8acb4ec0bd.php:168 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:190 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:196 #: cache/cb/cbba241d915c7e565fbb58c637b124a8.php:276 msgid "Display Group" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:330 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:328 msgid "Player Type" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:335 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:333 msgid "Android" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:340 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:338 msgid "Windows" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:345 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:343 msgid "webOS" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:350 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:348 msgid "Tizen" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:355 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:353 msgid "Linux" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:373 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:371 msgid "Player Code" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:383 -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:740 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:381 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:736 #: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:492 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:589 msgid "Custom ID" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:418 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:416 #: cache/49/49b3c02c876e8a464a75e1682c064115.php:193 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1800 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1948 #: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:286 #: cache/c5/c52b8109558dd3acc604e183177113c8.php:297 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:254 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:264 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:260 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:269 msgid "Landscape" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:423 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:421 #: cache/49/49b3c02c876e8a464a75e1682c064115.php:193 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1804 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1952 #: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:286 #: cache/c5/c52b8109558dd3acc604e183177113c8.php:300 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:257 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:267 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:263 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:272 msgid "Portrait" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:443 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:441 msgid "Licensed fully" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:448 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:446 msgid "Trial" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:453 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:451 msgid "Not licenced" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:458 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:456 msgid "Not applicable" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:475 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:473 msgid "Player supported?" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:536 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:682 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:532 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:647 msgid "Map" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:542 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:426 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:538 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:431 msgid "List" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:561 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:557 #: cache/bc/bc9a3e0798fa1ba064d681f1d6c69009.php:107 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:409 msgid "Display Type" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:565 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:561 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:443 msgid "Address" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:640 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:636 msgid "Supported?" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:660 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:656 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:394 msgid "Languages" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:708 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:704 msgid "Screen Size" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:712 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:708 msgid "Is Mobile?" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:716 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:712 msgid "Outdoor?" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:744 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:740 msgid "Cost Per Play" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:748 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:744 msgid "Impressions Per Play" msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1771 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:760 +msgid "OS Version" +msgstr "" + +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:764 +msgid "OS SDK" +msgstr "" + +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:768 +msgid "Manufacturer" +msgstr "" + +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:772 +msgid "Brand" +msgstr "" + +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:776 +msgid "Model" +msgstr "" + +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1794 msgid "Full URL to the new CMS, including https:// " msgstr "" -#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1964 +#: cache/24/24c5ae3175cea2904ae6bd208e699f50.php:1998 msgid "" "Adjust the times of this timer. To add or remove a day, use the Display " "Profile." @@ -12350,14 +12737,14 @@ msgstr "" msgid "Output Audit Trail as CSV" msgstr "" -#: cache/a5/a593dac8469a0e585ebaf44442696494.php:57 lib/Controller/User.php:363 +#: cache/a5/a593dac8469a0e585ebaf44442696494.php:57 lib/Controller/User.php:365 msgid "Set home folder" msgstr "" #: cache/a5/a593dac8469a0e585ebaf44442696494.php:96 #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:281 #: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:325 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:597 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:617 msgid "Set a home folder to use as the default folder for new content." msgstr "" @@ -12382,7 +12769,7 @@ msgid "" msgstr "" #: cache/7d/7d8878cf40b2a074d7a7dd990858a580.php:97 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1782 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1930 msgid "File Size" msgstr "" @@ -12392,6 +12779,7 @@ msgstr "" #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:55 #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:93 +#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:159 msgid "Logs" msgstr "" @@ -12400,8 +12788,6 @@ msgid "Truncate the Log" msgstr "" #: cache/04/04b11bf7b7a8190d66899471a8930ffd.php:77 -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:75 -#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:78 msgid "Refresh the Log" msgstr "" @@ -12484,7 +12870,7 @@ msgid "" msgstr "" #: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:140 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:520 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:481 msgid "Start" msgstr "" @@ -12517,7 +12903,7 @@ msgstr "" #: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:403 #: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:493 #: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:529 -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:631 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:675 msgid "Previous" msgstr "" @@ -12609,24 +12995,24 @@ msgstr "" msgid "Start again" msgstr "" -#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:646 +#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:651 msgid "Downloading file" msgstr "" -#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:661 +#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:666 msgid "Download selected items" msgstr "" -#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:676 -#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:680 +#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:681 +#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:685 msgid "Hide Environment checks" msgstr "" -#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:678 +#: cache/04/0499f0242d314e52ef2aed46b4a0b1e9.php:683 msgid "Show Environment checks" msgstr "" -#: cache/04/044378220c7594ff5591bed8818e8f1b.php:97 +#: cache/04/044378220c7594ff5591bed8818e8f1b.php:99 #, no-php-format msgid "%themeName% Installation" msgstr "" @@ -12652,24 +13038,24 @@ msgstr "" msgid "View Categories" msgstr "" -#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:101 +#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:106 msgid "Products for" msgstr "" -#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:105 +#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:110 msgid "in Menu Board" msgstr "" -#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:215 -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:208 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:208 +#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:220 +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:167 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:167 #: lib/Widget/DataType/Product.php:49 msgid "Availability" msgstr "" -#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:219 -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:163 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:163 +#: cache/04/04b4b8b9bb93bf0580422332c142abff.php:224 +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:232 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:232 #: lib/Widget/DataType/Product.php:50 msgid "Allergy Information" msgstr "" @@ -12686,18 +13072,18 @@ msgid "" msgstr "" #: cache/88/88e10283780c820d9196a2e88b3b8e39.php:57 -#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:94 +#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:98 #, no-php-format msgid "Columns for %dataSetName%" msgstr "" #: cache/88/88e10283780c820d9196a2e88b3b8e39.php:77 #: cache/88/88e10283780c820d9196a2e88b3b8e39.php:81 -#: lib/Controller/DataSet.php:202 +#: lib/Controller/DataSet.php:215 msgid "View Data" msgstr "" -#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:124 +#: cache/88/88e10283780c820d9196a2e88b3b8e39.php:128 msgid "DataType" msgstr "" @@ -12705,108 +13091,126 @@ msgstr "" msgid "Edit User Group" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:187 -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:218 +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:214 +msgid "Should members of this Group receive DataSet emails?" +msgstr "" + +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:229 +msgid "Should members of this Group receive Layout emails?" +msgstr "" + +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:259 +msgid "Should members of this Group receive Report emails?" +msgstr "" + +#: cache/88/8836e166837e167ba9b26786f8a2b7ef.php:274 +msgid "Should members of this Group receive Schedule emails?" +msgstr "" + +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:189 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:232 msgid "Add DMA" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:212 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:226 msgid "Edit DMA" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:238 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:721 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:124 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:252 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:81 +#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:81 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:791 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:131 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:82 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:646 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:611 msgid "Back" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:403 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:417 msgid "Are you sure you want to delete this DMA?" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:432 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:446 msgid "DMA deleted" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:461 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:475 msgid "Date/Time" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:465 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:479 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:400 msgid "Geofence" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:488 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:502 msgid "The Name of this DMA - (1 - 50 characters)" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:503 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:517 msgid "Set a priority for this DMA. Higher priorities take precedence." msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:518 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:532 msgid "Which displays would you like this DMA to apply to?" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:531 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:545 #: cache/79/7925e7fdcb44e9a96c9b2b2e4814991e.php:154 msgid "Cost per Play" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:536 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:550 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:508 msgid "The cost per play" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:547 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:561 #: cache/79/7925e7fdcb44e9a96c9b2b2e4814991e.php:162 msgid "Impression Source" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:561 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:575 msgid "What is the source of this impression figure?" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:569 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:583 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:518 msgid "Impressions per play" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:574 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:588 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:523 msgid "The impressions per play" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:590 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:604 msgid "Select the start date for this DMA" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:605 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:619 msgid "Select the end date for this DMA" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:615 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:629 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:396 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:631 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:636 msgid "Days of the week" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:620 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:634 msgid "Which days of the week should the DMA be active?" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:638 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:652 msgid "Select the start time for this DMA" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:653 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:667 msgid "Select the end time for this DMA" msgstr "" -#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:668 +#: cache/88/880da8bf57750f4e35ce30624c0c6d79.php:682 msgid "Draw areas on the map where you want this DMA to be active." msgstr "" @@ -12818,7 +13222,7 @@ msgstr "" msgid "Are you sure you want to delete this Resolution? This cannot be undone" msgstr "" -#: cache/d5/d5080e01a5945887b95fc6e11b156bb8.php:118 +#: cache/d5/d5080e01a5945887b95fc6e11b156bb8.php:120 msgid "" "The CMS is temporarily off-line as an upgrade is in progress. Please check " "with your system administrator for updates or refresh your page in a few " @@ -12826,8 +13230,8 @@ msgid "" msgstr "" #: cache/d5/d548e4848346b34fa2915d684010817b.php:56 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:413 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:551 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:428 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:556 #: cache/0c/0cc104a3d7987780eed7a70657ece580.php:57 msgid "Edit Layout" msgstr "" @@ -12858,9 +13262,9 @@ msgstr "" #: cache/51/5183626e7e19083fdf9708e7d778f66f.php:135 #: cache/b0/b0d638d98d54413cf5ca73bcaa313dae.php:135 #: cache/83/8300bf8b96eee9813dc4373df0e08748.php:209 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:145 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:276 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:229 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:143 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:282 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:234 msgid "Retired" msgstr "" @@ -12884,6 +13288,8 @@ msgid "Add User" msgstr "" #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:92 +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:105 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:105 #: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:92 #: cache/70/70af2bbd82243291558c9b83caec5b48.php:104 #: lib/Controller/Font.php:162 @@ -12895,26 +13301,9 @@ msgstr "" msgid "Home Folder" msgstr "" -#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:112 -#: cache/8c/8ce8fc6aadcb243480fdca6732c41fea.php:51 -#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:112 -#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:533 -msgid "Notifications" -msgstr "" - -#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:130 -#: cache/64/6468accf3a0fea12fced661d430c769f.php:221 -#: cache/05/05600263dc8230138bb0f89338bbef69.php:134 -#: cache/2b/2b524e8ea3d6496ba6837a702ebed2f4.php:71 -#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:132 -#: cache/37/377ff96eb23f94563370a45d1c41993f.php:104 -msgid "User Name" -msgstr "" - #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:135 -#: cache/64/6468accf3a0fea12fced661d430c769f.php:226 #: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:137 -msgid "The Login Name of the user." +msgid "The Username of the user." msgstr "" #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:150 @@ -12926,8 +13315,8 @@ msgstr "" #: cache/64/6468accf3a0fea12fced661d430c769f.php:251 #: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:147 #: cache/37/377ff96eb23f94563370a45d1c41993f.php:159 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:175 -#: lib/Controller/User.php:302 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:193 +#: lib/Controller/User.php:304 msgid "Email" msgstr "" @@ -12940,7 +13329,7 @@ msgstr "" #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:175 #: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:253 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:135 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:133 msgid "User Type" msgstr "" @@ -12968,7 +13357,7 @@ msgstr "" #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:248 #: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:215 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:167 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:185 msgid "Homepage" msgstr "" @@ -12981,7 +13370,8 @@ msgstr "" #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:296 #: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:340 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:199 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:156 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:217 msgid "First Name" msgstr "" @@ -12992,7 +13382,8 @@ msgstr "" #: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:311 #: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:355 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:203 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:166 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:221 msgid "Last Name" msgstr "" @@ -13036,32 +13427,64 @@ msgid "" "permission to see?" msgstr "" -#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:455 +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:456 #: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:500 +msgid "Should this User receive DataSet notification emails?" +msgstr "" + +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:471 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:515 +msgid "Should this User receive Layout notification emails?" +msgstr "" + +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:486 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:530 +msgid "Should this User receive Library notification emails?" +msgstr "" + +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:501 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:545 +msgid "Should this User receive Report notification emails?" +msgstr "" + +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:516 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:560 +msgid "Should this User receive Schedule notification emails?" +msgstr "" + +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:531 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:575 +msgid "" +"Should this User receive notifications emails for Notifications manually " +"created in CMS?" +msgstr "" + +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:545 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:590 msgid "Hide navigation?" msgstr "" -#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:460 -#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:505 +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:550 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:595 msgid "Should the navigation side bar be hidden for this User?" msgstr "" -#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:470 -#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:515 +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:560 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:605 msgid "Hide User Guide?" msgstr "" -#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:475 +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:565 msgid "Should this User see the new user guide when they log in?" msgstr "" -#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:485 -#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:530 +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:575 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:620 msgid "Force Password Change" msgstr "" -#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:490 -#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:535 +#: cache/0a/0ae358955c92f467744fc6cf0f8f5624.php:580 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:625 msgid "Should this User be forced to change password next time they log in?" msgstr "" @@ -13192,51 +13615,35 @@ msgstr "" msgid "Admin" msgstr "" -#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:295 -msgid "Developer" -msgstr "" - #: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:312 msgid "Training" msgstr "" #: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:316 msgid "" -"Self-paced online training courses designed to get you up and running with " +"Self-paced online training videos designed to get you up and running with " "Xibo in no time." msgstr "" #: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:320 -msgid "Enrol on new user training or admin essentials for free." -msgstr "" - -#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:324 msgid "New User Training" msgstr "" -#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:328 -msgid "Admin Essentials" -msgstr "" - -#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:332 -msgid "Training School" -msgstr "" - -#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:345 +#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:333 #: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:250 msgid "Help" msgstr "" -#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:349 +#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:337 msgid "" "We are here to help! All the support you’re looking for, at your fingertips." msgstr "" -#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:356 +#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:344 msgid "Help Center" msgstr "" -#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:363 +#: cache/6e/6e8678de8ffffc5ed3b935eb9c3f6eb0.php:351 msgid "Contact your service provider for assistance." msgstr "" @@ -13244,66 +13651,71 @@ msgstr "" msgid "Add Product to " msgstr "" -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:105 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:105 +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:109 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:109 #: lib/Widget/DataType/Product.php:53 msgid "Product Options" msgstr "" -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:123 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:123 +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:127 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:127 msgid "The Name for this Menu Board Product" msgstr "" -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:138 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:138 -msgid "The Description for this Menu Board Product" +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:142 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:142 +msgid "The Price for this Menu Board Product" msgstr "" -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:153 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:153 -msgid "The Price for this Menu Board Product" +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:157 +msgid "" +"Set a display order for this item to appear, leave empty to add to the end." msgstr "" -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:168 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:168 -msgid "The Allergy Information for this Menu Board Product" +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:172 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:172 +msgid "Should this Product appear as available?" msgstr "" -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:183 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:183 -msgid "How many calories are in this product?" +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:187 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:187 +msgid "The Code identifier for this Menu Board Product" msgstr "" -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:198 +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:202 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:202 msgid "" -"Set a display order for this item to appear, leave empty to add to the end." +"Optionally select Image or Video to be associated with this Menu Board " +"Product" msgstr "" -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:213 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:213 -msgid "Should this Product appear as available?" +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:222 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:222 +msgid "The Description for this Menu Board Product" msgstr "" -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:228 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:228 -msgid "The Code identifier for this Menu Board Product" +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:237 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:237 +msgid "The Allergy Information for this Menu Board Product" msgstr "" -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:243 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:243 -msgid "" -"Optionally select Image or Video to be associated with this Menu Board " -"Product" +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:252 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:252 +msgid "How many calories are in this product?" msgstr "" -#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:258 -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:258 +#: cache/d4/d41eb57456e7d0ead8c455e4652b975c.php:265 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:265 msgid "" "If required please provide additional options and their prices for this " "Product." msgstr "" +#: cache/41/416015b714a3d4ce25c4f5a60b5e0869.php:59 +#, no-php-format +msgid "Data set %name%" +msgstr "" + #: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:68 msgid "Add an Application" msgstr "" @@ -13313,32 +13725,32 @@ msgstr "" msgid "Add Application" msgstr "" -#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:134 +#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:138 msgid "Connectors" msgstr "" -#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:179 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:749 +#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:185 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:819 #: cache/8d/8de7dd9661211f3ba39933b564d76990.php:137 msgid "Copy to Clipboard" msgstr "" -#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:183 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:785 +#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:189 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:855 msgid "Could not copy" msgstr "" -#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:187 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:789 +#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:193 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:859 msgid "Copied!" msgstr "" -#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:415 +#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:425 msgid "Installed" msgstr "" -#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:424 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1090 +#: cache/41/411fdd8ac98835cf7ed952b29cda0628.php:434 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1176 #: lib/Controller/Module.php:121 msgid "Configure" msgstr "" @@ -13375,7 +13787,7 @@ msgid "id" msgstr "" #: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:139 -#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:135 +#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:134 msgid "name" msgstr "" @@ -13387,45 +13799,198 @@ msgstr "" msgid "Open full screen" msgstr "" -#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:210 +#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:217 msgid "Webhook Controller" msgstr "" -#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:214 +#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:221 msgid "Navigate to layout with code [layoutTag]?" msgstr "" -#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:218 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2170 -msgid "Empty layout" +#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:225 +msgid "Empty region!" msgstr "" -#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:222 +#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:229 msgid "Next Item" msgstr "" -#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:226 +#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:233 msgid "Previous Item" msgstr "" -#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:230 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1313 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1929 +#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:237 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1403 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2097 msgid "Navigate to Widget" msgstr "" -#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:238 +#: cache/77/774dde73b0eb7965a680b8a52776fa6b.php:245 #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:186 msgid "Widget ID" msgstr "" +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:59 +#, no-php-format +msgid "%templateName% - Module Template" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:110 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:257 +msgid "Properties" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:118 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:306 +msgid "Twig" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:126 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:324 +msgid "HBS" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:142 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:360 +msgid "Head" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:150 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:378 +msgid "onTemplateRender" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:158 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:396 +msgid "onTemplateVisible" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:193 +#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:120 +msgid "A title for the module template" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:212 +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:140 +#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:138 +msgid "Which data type does this template need?" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:222 +#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:166 +msgid "Show In" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:227 +#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:171 +msgid "Which Editor should this template be available in?" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:231 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:56 +#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:175 +msgid "Layout Editor" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:231 +#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:175 +msgid "Playlist Editor" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:231 +#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:175 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:416 +msgid "Both" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:240 +#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:151 +#: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:264 +#: cache/f7/f789072c56d4d186cbc4fdd166003cb4.php:120 +#: cache/3e/3e663c80c5eafee333d2ece3b148e49a.php:95 +#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:145 +#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:204 +#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:401 +#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:483 +#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:609 +#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:691 +msgid "Enabled?" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:245 +msgid "Is this template enabled?" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:267 +msgid "Go to start" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:273 +msgid "Add new property" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:277 +#: cache/25/257d7652c0b04ca6e480ad5c9beaa3c2.php:330 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:372 +msgid "Add" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:282 +msgid "Go to end" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:413 +msgid "Invalidate any widgets using this template" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:442 +msgid "Move" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:461 +msgid "No properties, click Add to create one!" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:489 +msgid "Add option" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:506 +msgid "Delete option" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:575 +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:616 +msgid "Add test" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:633 +msgid "Delete test" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:658 +msgid "Add condition" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:676 +msgid "Delete condition" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:731 +msgid "Default value" +msgstr "" + +#: cache/bf/bfa04d76ea96a772caeedcfdf9d70e40.php:782 +msgid "Options for the dropdown control" +msgstr "" + #: cache/64/6468accf3a0fea12fced661d430c769f.php:56 msgid "Add New User" msgstr "" #: cache/64/6468accf3a0fea12fced661d430c769f.php:79 #: cache/64/6468accf3a0fea12fced661d430c769f.php:113 -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:404 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:432 msgid "Create" msgstr "" @@ -13464,20 +14029,41 @@ msgid "" " create user." msgstr "" +#: cache/64/6468accf3a0fea12fced661d430c769f.php:221 +#: cache/05/05600263dc8230138bb0f89338bbef69.php:182 +#: cache/2b/2b524e8ea3d6496ba6837a702ebed2f4.php:71 +#: cache/37/377ff96eb23f94563370a45d1c41993f.php:104 +msgid "User Name" +msgstr "" + +#: cache/64/6468accf3a0fea12fced661d430c769f.php:226 +msgid "The Login Name of the user." +msgstr "" + #: cache/64/6468accf3a0fea12fced661d430c769f.php:283 msgid "" "Select any folders the new user should have shared with them for viewing and " "editing." msgstr "" +#: cache/64/6468accf3a0fea12fced661d430c769f.php:288 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:787 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:340 +msgid "Select All" +msgstr "" + +#: cache/64/6468accf3a0fea12fced661d430c769f.php:292 +msgid "Clear Selection" +msgstr "" + #: cache/17/1730b41c1b94639a7bb894f0f6bbe405.php:59 #, no-php-format msgid "Delete %layout%" msgstr "" #: cache/17/1730b41c1b94639a7bb894f0f6bbe405.php:68 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:737 -#: lib/Controller/Layout.php:1810 lib/Controller/Layout.php:1816 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:807 +#: lib/Controller/Layout.php:1836 lib/Controller/Layout.php:1842 msgid "Retire" msgstr "" @@ -13502,13 +14088,13 @@ msgid "Are you sure you want to retire this item?" msgstr "" #: cache/ae/ae925f8de1afddaa54d77aba65ebb00b.php:56 -#: lib/Controller/DisplayGroup.php:466 lib/Controller/DisplayGroup.php:479 -#: lib/Controller/Display.php:1191 lib/Controller/Display.php:1204 +#: lib/Controller/DisplayGroup.php:471 lib/Controller/DisplayGroup.php:484 +#: lib/Controller/Display.php:1192 lib/Controller/Display.php:1205 msgid "Send Command" msgstr "" #: cache/ae/ae925f8de1afddaa54d77aba65ebb00b.php:93 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:1264 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:1279 msgid "" "Pick a command to send to the Player. If the CMS has XMR enabled this will " "be sent immediately, otherwise it will show an error." @@ -13530,7 +14116,7 @@ msgid "Continue..." msgstr "" #: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:57 -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:86 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:90 #, no-php-format msgid "RSS Feeds for %dataSetName%" msgstr "" @@ -13541,81 +14127,81 @@ msgstr "" msgid "Add RSS" msgstr "" -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:211 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2411 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:221 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2671 msgid "Ascending" msgstr "" -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:215 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2415 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:225 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2675 msgid "Descending" msgstr "" -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:260 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2422 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:270 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2682 msgid "starts with" msgstr "" -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:266 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2428 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:276 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2688 msgid "ends with" msgstr "" -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:272 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2434 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:282 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2694 msgid "contains" msgstr "" -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:278 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2440 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:288 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2700 msgid "equals" msgstr "" -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:284 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2446 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:294 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2706 msgid "does not start with" msgstr "" -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:290 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2452 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:300 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2712 msgid "does not end with" msgstr "" -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:296 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2458 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:306 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2718 msgid "does not contain" msgstr "" -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:302 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2464 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:312 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2724 msgid "does not equal" msgstr "" -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:308 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2470 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:318 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2730 msgid "greater than" msgstr "" -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:314 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2476 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:324 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2736 msgid "less than" msgstr "" -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:320 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:330 msgid "is empty" msgstr "" -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:326 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:336 msgid "is not empty" msgstr "" -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:335 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2485 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:345 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2745 msgid "Or" msgstr "" -#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:341 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2491 +#: cache/ae/ae039a69e1615431d4752f5fb2b147d3.php:351 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2751 msgid "And" msgstr "" @@ -13624,7 +14210,7 @@ msgstr "" msgid "Add Command" msgstr "" -#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:133 +#: cache/df/dfa8c9877043c738d127ce9a84cd99fa.php:138 msgid "Available On" msgstr "" @@ -13668,31 +14254,43 @@ msgstr "" msgid "Add Sync Group" msgstr "" -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:129 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:128 msgid "Lead Display ID" msgstr "" -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:202 -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:351 -#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:151 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:588 -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:162 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:199 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:354 +#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:150 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:553 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:167 msgid "Modified By" msgstr "" -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:206 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:203 #: cache/5e/5ec96adf0346509994d4c975eac80689.php:133 #: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:128 msgid "Publisher Port" msgstr "" -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:210 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:207 +#: cache/5e/5ec96adf0346509994d4c975eac80689.php:148 #: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:143 +msgid "Switch Delay" +msgstr "" + +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:211 +#: cache/5e/5ec96adf0346509994d4c975eac80689.php:163 +#: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:158 +msgid "Video Pause Delay" +msgstr "" + +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:215 +#: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:173 msgid "Lead Display" msgstr "" -#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:312 -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:575 +#: cache/d2/d2fa8bed4d1e30769527c78081442bfc.php:321 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:579 msgid "Check to confirm deletion of the selected records." msgstr "" @@ -13740,7 +14338,7 @@ msgid "Is the Resolution enabled for use?" msgstr "" #: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:55 -#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:85 +#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:89 msgid "Help Links" msgstr "" @@ -13753,7 +14351,7 @@ msgstr "" msgid "Add Help Link" msgstr "" -#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:105 +#: cache/4f/4f86b68b499f4cd831a26849e7ca7d16.php:109 #: cache/fb/fb4bc86a9035b6ec146f3221bdb0c2c1.php:88 #: cache/71/7116c27ed9d9118b32072e096012ea7b.php:88 msgid "Topic" @@ -13763,27 +14361,6 @@ msgstr "" msgid "Are you sure you want to truncate?" msgstr "" -#: cache/dc/dc31159d960349451e03fc348c75e315.php:59 -#: cache/81/811403ea85a4f89fb6575e4ffc9988d8.php:59 -#: cache/73/736be9c5f96ff30502beba0ab9149fd4.php:59 -#: cache/5d/5d1d07a99874fba69dc650a90f8eab06.php:59 -#: cache/31/31805080e1e51d4a56cb67fa60bdcb2f.php:59 -#: cache/60/603a543f479715b41db75352b8cdb845.php:59 -#, no-php-format -msgid "Copy %name%" -msgstr "" - -#: cache/dc/dc31159d960349451e03fc348c75e315.php:72 -#: cache/73/736be9c5f96ff30502beba0ab9149fd4.php:72 -#: cache/31/31805080e1e51d4a56cb67fa60bdcb2f.php:72 -#: lib/Controller/Template.php:237 lib/Controller/DisplayGroup.php:335 -#: lib/Controller/DataSet.php:240 lib/Controller/Campaign.php:376 -#: lib/Controller/Playlist.php:400 lib/Controller/Library.php:657 -#: lib/Controller/Layout.php:1802 lib/Controller/DisplayProfile.php:210 -#: lib/Controller/UserGroup.php:174 -msgid "Copy" -msgstr "" - #: cache/dc/dc31159d960349451e03fc348c75e315.php:96 #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:196 #: cache/23/2360e54d15ebe919cd8f4305d3819359.php:187 @@ -13810,6 +14387,21 @@ msgstr "" msgid "The port on which players will communicate" msgstr "" +#: cache/5e/5ec96adf0346509994d4c975eac80689.php:153 +#: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:148 +msgid "" +"The delay (in ms) when displaying the changes in content. If the network is " +"unstable this value can be raised to compensate." +msgstr "" + +#: cache/5e/5ec96adf0346509994d4c975eac80689.php:168 +#: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:163 +msgid "" +"The delay (in ms) before unpausing the video on start. If some of the " +"devices in the group do not support gapless, this value can be raised to " +"compensate." +msgstr "" + #: cache/96/9605b8778fdca994dfa334b9602917ff.php:66 msgid "Loading Layout..." msgstr "" @@ -13822,11 +14414,11 @@ msgstr "" msgid "Add a new User Group" msgstr "" -#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:125 +#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:123 msgid "User Group" msgstr "" -#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:145 +#: cache/fb/fb7b914f174fce1e94ee3971e92a92dd.php:167 msgid "Is shown for Add User?" msgstr "" @@ -13848,23 +14440,23 @@ msgstr "" msgid "The Link to open for this help topic and category" msgstr "" -#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:80 +#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:84 msgid "Saved reports" msgstr "" -#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:140 +#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:144 msgid "Only my reports?" msgstr "" -#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:159 +#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:163 msgid "Saved as" msgstr "" -#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:163 +#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:167 msgid "Report Type" msgstr "" -#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:167 +#: cache/fb/fb12c90670ac105c9ea03fcc99876e87.php:171 msgid "Generated on" msgstr "" @@ -13924,22 +14516,57 @@ msgstr "" msgid "Should the cache for this remote DataSet be cleared?" msgstr "" -#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:90 +#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:105 msgid "Has Duration" msgstr "" -#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:94 +#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:109 msgid "Has Direction" msgstr "" -#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:98 +#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:113 msgid "Enabled for In" msgstr "" -#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:102 +#: cache/82/823c47cd9e81aebabd5478c5693b1131.php:117 msgid "Enabled for Out" msgstr "" +#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:59 +#, no-php-format +msgid "%dataSetName% - Data Connector" +msgstr "" + +#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:117 +msgid "Data Connector JavaScript" +msgstr "" + +#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:151 +msgid "Test Params" +msgstr "" + +#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:167 +msgid "DataSet Data" +msgstr "" + +#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:175 +msgid "Other Data" +msgstr "" + +#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:183 +msgid "Schedule Criteria" +msgstr "" + +#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:192 +msgid "" +"You can test passing parameters that would otherwise be set when this Data " +"Connector is scheduled." +msgstr "" + +#: cache/66/664c6c931a53dbf67110ec2cb80223cf.php:197 +msgid "Test Parameters" +msgstr "" + #: cache/66/6669e06466c1e433cfb14ef774afcd6a.php:56 msgid "Delete Daypart" msgstr "" @@ -13999,7 +14626,7 @@ msgid "Reason" msgstr "" #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:170 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:392 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:395 msgid "Expires" msgstr "" @@ -14012,6 +14639,7 @@ msgid "Region ID" msgstr "" #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:190 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:464 msgid "Media ID" msgstr "" @@ -14031,27 +14659,27 @@ msgstr "" #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:392 #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:499 #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:576 -#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:805 -#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:828 +#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:807 +#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:830 msgid "Downloaded" msgstr "" #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:380 -#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:139 -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:146 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:376 +#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:138 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:151 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:379 msgid "File Name" msgstr "" #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:396 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:372 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:375 msgid "Released" msgstr "" #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:479 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:810 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1824 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1935 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:880 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1972 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2103 msgid "Widgets" msgstr "" @@ -14060,13 +14688,13 @@ msgid "Widget Data" msgstr "" #: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:626 -#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:738 +#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:740 #: lib/Report/Bandwidth.php:322 msgid "Bandwidth" msgstr "" -#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:807 -#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:832 +#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:809 +#: cache/66/661d79c5da6d14a0db85cd0980868ff7.php:834 msgid "Pending" msgstr "" @@ -14141,20 +14769,15 @@ msgid "" msgstr "" #: cache/25/257d7652c0b04ca6e480ad5c9beaa3c2.php:79 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2532 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2792 msgid "Spots" msgstr "" #: cache/25/257d7652c0b04ca6e480ad5c9beaa3c2.php:235 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:196 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:203 msgid "Locked" msgstr "" -#: cache/25/257d7652c0b04ca6e480ad5c9beaa3c2.php:330 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:357 -msgid "Add" -msgstr "" - #: cache/25/257d7652c0b04ca6e480ad5c9beaa3c2.php:336 #: lib/Controller/StatusDashboard.php:302 lib/Report/LibraryUsage.php:207 #: lib/Report/LibraryUsage.php:555 @@ -14167,8 +14790,8 @@ msgid "Discard %layout%" msgstr "" #: cache/40/4029f5db3a11dd01464e9160f8b6cf6f.php:72 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:745 -#: lib/Controller/Template.php:186 lib/Controller/Layout.php:1673 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:815 +#: lib/Controller/Template.php:192 lib/Controller/Layout.php:1697 msgid "Discard" msgstr "" @@ -14241,8 +14864,9 @@ msgid "" msgstr "" #: cache/8a/8acc5a2af63338673a6de3f58764bb95.php:58 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1003 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:255 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1077 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:262 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:282 msgid "Edit Playlist" msgstr "" @@ -14380,221 +15004,221 @@ msgstr "" msgid "The end of the time window to install application updates." msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:288 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:371 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:318 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:401 msgid "Action Bar Mode" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:291 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:374 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:321 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:404 msgid "How should the action bar behave?" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:294 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:377 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:324 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:407 msgid "Hide" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:294 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:377 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:324 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:407 msgid "Timed" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:302 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:385 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:332 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:415 msgid "Action Bar Display Duration" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:305 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:388 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:335 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:418 msgid "How long should the Action Bar be shown for, in seconds?" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:359 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:389 msgid "The size of the screenshot to return when requested." msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:365 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:395 msgid "HD" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:365 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:395 msgid "FHD" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:371 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:401 msgid "Standard" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:382 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:412 msgid "Send progress while downloading" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:385 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:415 msgid "" "How often, in minutes, should the Display send its download progress while " "it is downloading new content?" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:421 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:451 msgid "" "Use the form fields to create On/Off timings for the monitor for specific " "days of the week as required." msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:430 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:460 msgid "Please note:" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:439 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:469 msgid "" "When the monitor is 'Off' it will not be able to receive content updates. " "With the next timed 'On' the monitor will connect to the CMS and get content/" "schedule updates." msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:521 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:551 msgid "" "Control picture settings using the fields below. Use the sliders to set the " "required range for each setting." msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:537 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:567 msgid "Backlight" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:542 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:572 msgid "Contrast" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:547 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:577 msgid "Brightness" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:552 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:582 msgid "Sharpness" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:557 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:587 msgid "Horizontal Sharpness" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:562 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:592 msgid "Vertical Sharpness" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:567 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:597 msgid "Color" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:572 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:602 msgid "Tint" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:577 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:607 msgid "Color Temperature" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:582 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:612 msgid "Dynamic Contrast" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:587 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:617 msgid "Super Resolution" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:592 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:622 msgid "Color Gamut" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:597 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:627 msgid "Dynamic Color" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:602 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:632 msgid "Noise Reduction" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:607 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:637 msgid "MPEG Noise Reduction" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:612 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:642 msgid "Black Level" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:617 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:647 msgid "Gamma" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:625 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:466 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:655 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:478 msgid "Red" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:630 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:470 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:660 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:482 msgid "Green" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:635 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:665 msgid "Warm" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:640 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:670 msgid "Cool" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:685 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:715 msgid "usblock" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:690 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:720 msgid "" "Set access to any device that uses the monitors USB port. Set to ‘False’ the " "monitor will not accept input or read from USB ports." msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:695 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:725 msgid "osdlock" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:700 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:730 msgid "" "Set access to the monitor settings via the remote control. Set To ‘False’ " "the remote control will not change the volume, brightness etc of the monitor." msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:705 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:735 msgid "False" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:710 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:740 msgid "True" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:797 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:827 msgid "Keylock (local)" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:802 -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:812 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:832 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:842 msgid "Set the allowed key input for the monitor." msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:807 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:837 msgid "Keylock (remote)" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:817 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:847 msgid "Allow All" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:822 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:852 msgid "Block All" msgstr "" -#: cache/49/49b3c02c876e8a464a75e1682c064115.php:827 +#: cache/49/49b3c02c876e8a464a75e1682c064115.php:857 msgid "Power Only" msgstr "" @@ -14614,6 +15238,71 @@ msgid "" "can be the default." msgstr "" +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:68 +msgid "Add a new template" +msgstr "" + +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:74 +#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:57 +msgid "Add Module Template" +msgstr "" + +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:79 +msgid "Add a new template by importing XML file" +msgstr "" + +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:81 +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:259 +msgid "Import XML" +msgstr "" + +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:159 +msgid "Template ID" +msgstr "" + +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:266 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:726 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:377 +#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:248 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:408 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:779 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:939 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:274 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:631 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:739 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:398 +#: lib/XTR/MaintenanceDailyTask.php:157 lib/XTR/NotificationTidyTask.php:115 +#: lib/XTR/MaintenanceRegularTask.php:150 lib/XTR/StatsArchiveTask.php:134 +#: lib/XTR/AuditLogArchiveTask.php:125 lib/XTR/RemoteDataSetFetchTask.php:228 +msgid "Done" +msgstr "" + +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:280 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:974 +#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:262 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:289 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:644 +msgid "Add files" +msgstr "" + +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:284 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:978 +#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:266 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:293 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:648 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:358 +msgid "Start upload" +msgstr "" + +#: cache/97/97f2c018825ccdd326aad4a0b160725e.php:288 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:982 +#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:270 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:297 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:652 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:362 +msgid "Cancel upload" +msgstr "" + #: cache/69/694e00aa83e173717d735dc599dad89e.php:50 msgid "Font Details" msgstr "" @@ -14626,70 +15315,71 @@ msgstr "" msgid "Add a new Campaign" msgstr "" -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:190 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:195 msgid "Cycle Based Playback" msgstr "" -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:200 -#: lib/Controller/User.php:304 lib/XTR/MaintenanceDailyTask.php:159 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:205 +#: lib/Controller/User.php:306 lib/XTR/MaintenanceDailyTask.php:159 #: lib/XTR/StatsArchiveTask.php:137 lib/XTR/StatsArchiveTask.php:332 msgid "Disabled" msgstr "" -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:275 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:278 msgid "# Layouts" msgstr "" -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:290 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:293 msgid "Cycle based Playback" msgstr "" -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:294 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:297 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:510 msgid "Play Count" msgstr "" -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:313 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:316 #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:476 #: lib/Report/DisplayAdPlay.php:461 msgid "Spend" msgstr "" -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:323 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:211 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:326 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:229 msgid "Ref 1" msgstr "" -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:327 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:215 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:330 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:233 msgid "Ref 2" msgstr "" -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:331 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:219 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:334 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:237 msgid "Ref 3" msgstr "" -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:335 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:223 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:338 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:241 msgid "Ref 4" msgstr "" -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:339 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:227 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:342 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:245 msgid "Ref 5" msgstr "" -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:343 -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:154 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:346 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:159 msgid "Created At" msgstr "" -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:347 -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:158 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:350 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:163 msgid "Modified At" msgstr "" -#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:431 +#: cache/89/8945ceeea3df1eea58421905bdc6dd5e.php:436 msgid "Ad" msgstr "" @@ -14722,22 +15412,9 @@ msgstr "" msgid "Add a new resolution for use on layouts" msgstr "" -#: cache/8c/8c08891d370939702e3d45696c9e38d6.php:146 -#: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:264 -#: cache/f7/f789072c56d4d186cbc4fdd166003cb4.php:120 -#: cache/3e/3e663c80c5eafee333d2ece3b148e49a.php:95 -#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:145 -#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:204 -#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:401 -#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:483 -#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:609 -#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:691 -msgid "Enabled?" -msgstr "" - #: cache/8c/8ce8fc6aadcb243480fdca6732c41fea.php:109 #: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:55 -#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:87 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:92 msgid "Notification Centre" msgstr "" @@ -14756,15 +15433,15 @@ msgstr "" msgid "Add a new Tag" msgstr "" -#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:118 +#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:122 msgid "Show System tags?" msgstr "" -#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:128 +#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:132 msgid "Show only tags with values?" msgstr "" -#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:151 +#: cache/e3/e3e074211e42eadb55ae8cb6ceeaa722.php:155 msgid "isRequired" msgstr "" @@ -14777,351 +15454,354 @@ msgstr "" msgid "Edit Data" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:701 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:763 msgid "Delete %obj%" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:705 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:767 msgid "Changes that you have made may not be saved!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:717 -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:312 -msgid "Select All" +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:771 +msgid "Please increase your resolution to use the editing tools" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:729 -msgid "Load %prop% for %obj%" +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:775 +msgid "" +"Layout and Playlist editing requires a minimum width of 1200 pixels and " +"height of 600 pixels" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:733 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:799 +msgid "Load %prop% for %obj%" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:803 msgid "Loading" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:741 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:156 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:811 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:163 #: cache/8d/8d27a7617bf5bf7e7c28a56a7b503514.php:74 -#: lib/Controller/Template.php:180 lib/Controller/Layout.php:1667 +#: lib/Controller/Template.php:186 lib/Controller/Layout.php:1691 msgid "Publish" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:753 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:823 msgid "View Source Code" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:757 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:827 msgid "Detach Editor" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:761 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:831 msgid "Attach Editor" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:765 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:835 msgid "Scale to view" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:769 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:839 msgid "Scale to width" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:773 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:843 msgid "Scale to height" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:777 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:278 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:847 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:293 msgid "Zoom in" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:781 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:282 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:851 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:297 msgid "Zoom out" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:793 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:863 msgid "" "This widget isn't enabled and can't be configured, please contact your " "administrator for help." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:797 -#: lib/Controller/Playlist.php:383 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:867 +#: lib/Controller/Playlist.php:386 msgid "Timeline" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:806 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:876 msgid "Zones" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:823 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1289 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:893 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1379 msgid "Delete Action" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:827 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:897 msgid "Are you sure you want to delete this action?" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:844 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:914 msgid "Replace Layout" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:848 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:918 msgid "Are you sure you want to replace your Layout with a template?" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:857 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2201 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:711 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:927 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2449 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:720 msgid "Replace" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:864 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:934 msgid "Select widget or create a new one" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:868 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:938 msgid "Create new" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:880 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:950 msgid "# of elements" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:884 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:954 msgid "# of element groups" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:889 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:128 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:959 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:135 msgid "Exit" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:896 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:724 -msgid "Upload media" -msgstr "" - -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:900 -#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:257 -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:278 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:635 -msgid "Add files" -msgstr "" - -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:904 -#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:261 -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:282 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:639 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:344 -msgid "Start upload" +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:963 +msgid "Playlist converted to global!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:908 -#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:265 -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:286 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:643 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:348 -msgid "Cancel upload" +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:970 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:733 +msgid "Upload media" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:912 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2225 -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:606 -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:290 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:352 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:986 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2473 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:650 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:301 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:366 msgid "Processing..." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:924 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2249 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:998 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2497 msgid "Set Expiry Dates" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:928 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2253 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1002 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2501 msgid "" "Use the check box to set Start and End dates/times for media files and use " "the Start Upload button to apply to all files or the row upload button to " "upload individually." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:932 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2257 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1006 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2505 #: cache/72/72bfb52fd80e06544d4442d19663906a.php:97 msgid "Select the start time for this widget" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:936 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2261 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1010 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2509 #: cache/72/72bfb52fd80e06544d4442d19663906a.php:112 msgid "Select the end time for this widget" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:940 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2265 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1014 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2513 msgid "Delete on Expiry" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:944 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2269 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1018 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2517 #: cache/72/72bfb52fd80e06544d4442d19663906a.php:127 msgid "" "When the End Time for this Widget passes should the Widget be removed from " "the Playlist?" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:948 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1022 msgid "Delete from Library" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:952 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1026 msgid "Remove file from the Media Library" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:960 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2221 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:831 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:651 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1034 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2469 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:845 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:660 msgid "Change Current Folder location" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:968 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:839 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:659 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1042 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:853 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:668 msgid "Upload files to this Folder" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:975 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1049 msgid "Edit Attached Audio" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:979 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1053 msgid "Edit Expiry Dates" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:983 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1057 msgid "Edit Transition In" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:987 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1061 msgid "Edit Transition Out" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:991 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1065 msgid "Edit Sharing" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:995 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1069 msgid "Edit Region Sharing" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:999 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1073 msgid "Edit Widget Sharing" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1011 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1081 +msgid "Convert Playlist" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1085 +msgid "Convert Layout playlist into a Global playlist." +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1093 msgid "Move one step left" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1015 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1097 msgid "Move one step right" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1019 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1101 msgid "Move to the top left" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1023 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1105 msgid "Move to the top right" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1027 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1109 msgid "Bring to front" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1031 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1113 msgid "Bring forward" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1035 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1117 msgid "Send backwards" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1039 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1121 msgid "Send to back" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1047 -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:368 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1129 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:396 msgid "Duplicate" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1051 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1133 msgid "New Configuration" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1055 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1137 +msgid "Edit Text" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1141 msgid "Group elements" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1059 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1145 msgid "Ungroup elements" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1063 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1149 msgid "Add elements to group" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1067 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1153 msgid "Delete all" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1078 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1240 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2017 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2033 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2126 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2186 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1164 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1330 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2189 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2205 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2370 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2430 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:489 msgid "Zone" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1082 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1244 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1621 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2110 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2793 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:458 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1168 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1334 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1719 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2354 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3116 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:497 msgid "Widget" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1094 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1180 msgid "Appearance" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1122 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1184 +msgid "Fallback Data" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1212 msgid "Widget Dimensions" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1134 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1224 msgid "Scale" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1142 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1232 msgid "This widget needs to be configured before it will be shown." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1146 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1236 msgid "" "This widget needs to have at least one of the following elements: %elements%." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1150 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1240 msgid "Data Slot" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1154 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1244 msgid "" "When there are more than one of the same element for a widget you can set " "the slot for each element. For example with two of the same element you'd " @@ -15129,1611 +15809,1807 @@ msgid "" "receive items 1,3,5,7,9 and slot 2 would receive items 2,4,6,8,10." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1158 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1248 msgid "Pin this slot?" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1162 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1252 msgid "" "The first item that appears in a slot will be pinned and will not cycle with " "the rest of the items." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1166 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1256 msgid "Scale with group" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1170 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1260 msgid "Scale element when scaling containing group." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1174 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1264 msgid "Align" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1178 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1268 msgid "Alignment when scaling the containing group." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1183 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1273 msgid "Top/Left" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1187 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1277 msgid "Top/Right" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1191 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1281 msgid "Bottom/Left" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1195 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1285 msgid "Bottom/Right" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1200 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1290 msgid "Something went wrong!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1204 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1294 msgid "Selected item is not shared with you with edit permission!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1209 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1299 msgid "No actions to show" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1213 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1303 msgid "Other Actions" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1217 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1307 msgid "* Not Defined" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1222 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1312 msgid "Layout Actions" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1226 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1316 msgid "Zone Actions" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1230 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1320 msgid "Widget Actions" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1257 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1341 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1347 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1431 msgid "Trigger" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1265 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1355 msgid "" "If your Widget is a Shell Command you can select to target 'Screen' to run " "the command without affecting any Zones. For all other Widgets select 'Zone' " "as target." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1269 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1359 msgid "Touch/Click" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1273 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1363 msgid "Web hook" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1285 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1375 msgid "Edit Action" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1293 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1909 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1383 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2077 msgid "Next Layout" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1297 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1913 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1387 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2081 msgid "Previous Layout" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1301 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1917 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:263 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1391 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2085 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:270 msgid "Next Widget" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1305 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1921 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:259 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1395 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2089 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:266 msgid "Previous Widget" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1317 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1407 msgid "Widget to Load" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1321 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1411 msgid "Select or create a Widget to be loaded" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1325 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2773 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1415 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3096 msgid "Trigger Type" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1329 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1419 msgid "How should the Player listen for this Action to be triggered?" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1337 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1427 msgid "" "If this Action is triggered by a Web Hook then this Trigger Code must be " "present in the URL `trigger=` parameter." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1345 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1435 msgid "Select the target for the Trigger" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1353 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1443 msgid "" "Please enter the Code identifier for the Layout as assigned in the Add / " "Edit Layout form." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1357 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1447 msgid "-- Create New --" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1367 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1457 msgid "Layer related to all layout objects" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1371 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1461 msgid "Element Layer" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1375 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1465 msgid "Layer for the element related to other elements" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1379 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1469 msgid "Element Group Layer" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1383 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1473 msgid "" "Layer for the element group related to other groups or elements without group" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1387 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1477 msgid "Canvas Layer" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1391 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1481 msgid "Layer for the canvas containing all elements" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1411 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1501 msgid "Rotation" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1415 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1505 msgid "" "Make this full screen, dimensions will be set to %layout.width% by %layout." "height%." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1419 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1509 msgid "Bring selected object back to the Layout view." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1437 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1527 #: cache/0c/0cc104a3d7987780eed7a70657ece580.php:131 -msgid "No Image set, add from Toolbar or Upload!" +msgid "No Image set, add from Toolbox or Upload!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1441 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1531 #: cache/0c/0cc104a3d7987780eed7a70657ece580.php:143 msgid "Add background image" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1445 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1535 #: cache/0c/0cc104a3d7987780eed7a70657ece580.php:156 msgid "Upload" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1449 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1539 #: cache/0c/0cc104a3d7987780eed7a70657ece580.php:164 -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:412 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:440 msgid "Remove" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1457 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1547 #: cache/0c/0cc104a3d7987780eed7a70657ece580.php:187 msgid "Change the resolution" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1465 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1555 #: cache/0c/0cc104a3d7987780eed7a70657ece580.php:202 msgid "" "The layering order of the background image (z-index). Advanced use only." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1469 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1559 #: cache/0c/0cc104a3d7987780eed7a70657ece580.php:212 msgid "Automatically apply Transitions?" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1473 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1563 #: cache/0c/0cc104a3d7987780eed7a70657ece580.php:217 msgid "" "When enabled, the default Transition type and duration will be applied to " "all widgets on this Layout." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1483 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1569 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1573 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1667 msgid "An optional name for this widget" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1487 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1577 msgid "Content Synchronisation Key" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1491 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1581 msgid "" "If this layout is scheduled using a synchronised event, this key will be " "used to match with other layouts in the same event." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1499 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1589 msgid "Enable Widget loop?" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1503 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1593 msgid "When should the Widget Loop be enabled?" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1507 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1597 msgid "" "* If the Widget is a 'fixed' item (eg Text), Loop should not be enabled." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1511 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1601 msgid "" "* If the Widget needs to update periodically (eg RSS Ticker Widget), Loop " "can be enabled ONLY if the Widget needs to update MORE frequently than the " "duration of the overall Layout." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1519 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1605 +msgid "Exit Transition?" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1617 msgid "The layering order of this %regionType% (z-index). Advanced use only." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1527 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1625 msgid "The top position of the %regionType%" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1535 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1633 msgid "The left position of the %regionType%" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1543 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1641 msgid "The width of the %regionType%" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1551 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1649 msgid "The height of the %regionType%" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1555 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1653 msgid "" "Make this %regionType% full screen, dimensions will be set to %layout.width% " "by %layout.height%." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1559 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1657 msgid "Bring selected %regionType% back to the Layout view." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1565 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1639 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:429 -msgid "Widget Name" +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1663 +msgid "Configuration Name" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1573 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1671 msgid "Set a duration?" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1577 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1675 msgid "Select to provide a specific duration for this Widget" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1585 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1683 msgid "The duration of the widget in seconds" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1593 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1691 msgid "" "Enable the collection of Proof of Play statistics for this Widget. Ensure " "that ‘Enable Stats Collection’ is set to ‘On’ in the Display Settings." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1609 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1707 msgid "Repeat items to fill all data slots?" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1613 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1711 msgid "" "Once all items have been placed in a slot, any empty slots will be filled " "with items from the start." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1625 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1723 msgid "" "Widgets of the same type, change to transfer the source to a different " "widget." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1629 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1727 msgid "Transfer" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1633 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1731 msgid "Transfer the currently selected elements into a new widget!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1644 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:433 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1737 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:444 +msgid "Widget Name" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1742 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:456 msgid "Element Name" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1648 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1746 msgid "An optional name for this element" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1652 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:437 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1750 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:468 msgid "Element Group Name" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1656 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1754 msgid "An optional name for this group of elements" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1663 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1759 +msgid "Color 1" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1763 +msgid "Color 2" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1771 +msgid "Radial" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1775 +msgid "Linear" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1779 +msgid "Angle" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1787 msgid "Delete selected %object%" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1667 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1791 msgid "Delete selected objects" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1671 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1795 msgid "Change Layout" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1679 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1803 msgid "Tooltips?" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1683 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1807 msgid "" "Show/Hide tooltips which provide help; informational tooltips will remain." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1691 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1811 +msgid "Delete confirmation?" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1815 +msgid "" +"Do we want to show confirmation modals when deleting critical Layout content?" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1823 msgid "Select" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1695 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1827 msgid "Deselect" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1703 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1835 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:286 +msgid "Dynamic Playlist" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1839 msgid "Preview media" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1707 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1843 #: lib/Controller/SavedReport.php:141 msgid "Open" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1711 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1847 msgid "Mark as favourite" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1715 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1851 msgid "Upload new" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1719 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1855 msgid "Upload %obj%" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1732 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:331 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1859 +msgid "New Playlist" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1872 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:334 msgid "Tag" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1748 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1892 msgid "Provider" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1758 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1906 msgid "Media Id" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1796 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1810 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2822 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:251 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:299 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:321 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:261 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1944 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1958 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3145 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:115 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:257 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:305 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:327 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:266 msgid "All" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1814 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1962 msgid "Local" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1828 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1976 msgid "Add widgets" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1832 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1980 msgid "Global" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1836 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1984 msgid "Global Elements" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1844 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1992 msgid "Library image search" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1852 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2000 msgid "Library audio search" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1860 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2008 msgid "Library video search" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1864 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2012 +#: lib/Entity/DisplayEvent.php:222 msgid "Other" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1868 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2016 msgid "Library other media search" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1872 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1943 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2761 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:216 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2020 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2111 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3084 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:223 msgid "Actions" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1876 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2024 msgid "Interactive actions" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1880 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2028 msgid "Layout Templates" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1884 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2032 msgid "Search for Layout Templates" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1890 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2036 +msgid "Xibo Layout Exchange" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2040 +msgid "Search for templates available from the Xibo Exchange." +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2048 +msgid "Add Playlists" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2052 +msgid "Provider: %obj%" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2058 msgid "Move Window" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1894 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2062 msgid "Close Window" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1898 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2066 msgid "Minimise Window" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1902 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2070 msgid "New Tab" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1939 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2107 msgid "Data Widgets" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1947 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2115 msgid "Favourites" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1951 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2119 msgid "Elements" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1955 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2123 msgid "Stencils" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1959 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2127 msgid "Static Templates" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1963 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2131 msgid "Close content" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1967 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2135 msgid "No widgets to display" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1971 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2139 msgid "No actions to display" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1975 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2143 msgid "No templates to display" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1979 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2147 msgid "No media to display!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1983 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2151 +msgid "No playlists to display!" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2155 msgid "Show more" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1987 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2159 msgid "No more results for this filter!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1992 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:944 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2164 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:956 msgid "Close Preview" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:1996 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:948 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2168 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:960 msgid "Change window size" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2000 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2172 msgid "Select media to add" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2004 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2064 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2176 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2304 msgid "Dimensions" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2021 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:462 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2193 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:501 msgid "Element" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2025 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:466 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2197 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:505 msgid "Element Group" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2037 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2209 msgid "Replace your Layout with a template?" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2041 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2213 +msgid "Replace your Layout with a Xibo Exchange template?" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2217 msgid "Required" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2052 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:314 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2275 +msgid "Placeholder" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2279 +msgid "Use this item to be used as a placeholder to add images." +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2292 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:329 msgid "Layout name" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2060 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:318 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2300 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:333 msgid "Layout duration" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2068 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:322 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2308 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:337 msgid "Layout dimensions" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2072 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2312 msgid "Layout Actions:" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2076 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2316 msgid "My Layouts?" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2084 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2324 msgid "Revert %target% save" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2088 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2328 msgid "Revert %target% order" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2092 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2332 msgid "Revert %target% transformation" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2096 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2104 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2336 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2344 msgid "Revert %target% creation" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2100 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2340 msgid "Revert %target% assignment" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2122 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2348 +msgid "Revert %target% elements change" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2366 msgid "Frame" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2138 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2382 msgid "Layers" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2154 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2398 msgid "In %groupId%" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2162 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:445 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2406 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:476 +#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:151 #: cache/bc/bc965084fd482159596791d6371a0f77.php:137 -#: lib/Controller/Template.php:269 +#: lib/Controller/Template.php:300 msgid "Template" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2174 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2414 +msgid "Empty layout" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2418 msgid "Expand" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2178 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2422 msgid "Shrink" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2190 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:271 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2434 +msgid "Layout Background" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2438 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:278 msgid "Invalid Region" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2194 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2373 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2442 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2629 msgid "Region is invalid: Please delete it to validate the Layout!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2205 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:762 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2453 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:771 msgid "Add Replacement" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2209 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:766 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2457 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:775 msgid "Start Replace" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2213 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:770 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2461 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:779 msgid "Cancel Replace" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2230 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2478 #: cache/c5/c52b8109558dd3acc604e183177113c8.php:312 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:775 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:784 msgid "Update this media in all layouts it is assigned to?" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2234 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2482 #: cache/c5/c52b8109558dd3acc604e183177113c8.php:317 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:779 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:788 msgid "Note: It will only be updated in layouts you have permission to edit." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2240 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:785 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2488 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:794 msgid "Delete the old version?" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2244 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:789 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2492 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:798 msgid "" "Completely remove the old version of this media item if a new file is being " "uploaded." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2277 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2525 msgid "ERROR" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2281 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2529 msgid "There was a problem loading the Layout!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2285 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2533 msgid "There was a problem loading the Playlist!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2289 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2537 msgid "User save preferences failed!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2293 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2541 msgid "User load preferences failed!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2297 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2545 msgid "Library load failed!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2301 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2549 msgid "Form load failed!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2305 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2553 +msgid "Convert playlist failed!" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2557 +msgid "Playlist needs a name to be converted!" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2561 msgid "Revert failed: %error%" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2309 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2565 msgid "Save order failed: %error%" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2313 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2569 msgid "Delete failed: %error%" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2317 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2573 msgid "Save all changes failed!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2321 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2577 msgid "Remove all changes failed!!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2325 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2581 msgid "Importing media failed!!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2329 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2585 msgid "Add media failed: %error%" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2333 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2589 msgid "Add module failed: %error%" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2337 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2593 msgid "Create region failed: %error%" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2341 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2597 msgid "List order not Changed!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2345 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2601 msgid "Playlist save order failed!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2349 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2605 msgid "Get form failed!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2353 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2609 msgid "Transform zone failed!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2357 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2613 msgid "Preview failed!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2361 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2617 msgid "No widgets need saving!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2365 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2621 msgid "Missing required property %property%" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2369 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:738 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2625 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:748 #: lib/Connector/XiboAudienceReportingConnector.php:899 #: lib/Connector/XiboAudienceReportingConnector.php:974 msgid "Unknown Error" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2377 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2633 msgid "Failed to import media!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2381 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2637 msgid "This Canvas is not shared with you with edit permission!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2388 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2641 +msgid "Failed to load media providers!" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2648 msgid "Set to start" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2392 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2652 msgid "Set to expire" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2396 -#: cache/05/05600263dc8230138bb0f89338bbef69.php:104 web/xmds.php:136 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2656 +#: cache/05/05600263dc8230138bb0f89338bbef69.php:152 web/xmds.php:136 msgid "Expired" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2504 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2764 msgid "Fill - use the first Playlist to fill any remaining Spots" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2508 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2768 msgid "Pad" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2512 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2772 msgid "Pad - use the first Playlist to pad any remaining Spots" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2516 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2776 msgid "Repeat" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2520 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2780 msgid "" "Repeat - repeat the Widgets in this Playlist until the number of Spots have " "been filled" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2528 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2788 msgid "" "How many spots would you like on this Sub-Playlist? This is used before " "ordering to expand or shrink the list to the specified size. Leave empty to " "use the count of Widgets." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2536 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2796 msgid "" "Set the duration of all Widgets in the Playlist to a specific value in " "seconds. Leave empty to use each Widget duration." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2540 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2800 msgid "Spot Length" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2544 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2804 msgid "" "If there are not enough Widgets fill all spots, how should the remaining " "spots be filled?" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2548 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2808 msgid "Spot Fill" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2552 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2812 msgid "You do not have access to this playlist" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2556 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2816 msgid "Playlist Id" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2563 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2671 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2823 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2994 msgid "Columns Available" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2567 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2675 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2827 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2998 msgid "Columns Selected" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2578 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2838 msgid "Drag tags to the right column so thy can be displayed on the marquee." msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2582 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2842 #: lib/Controller/StatusDashboard.php:231 msgid "Available" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2586 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2846 msgid "Selected" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2765 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2931 +msgid "" +"Fallback data for this Data Widget can be provided below and included " +"according to the property \"Show fallback data\". Fallback data will be " +"shown with the same appearance as data returned from the source, and can be " +"edited using the form below." +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2935 +msgid "Add New" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2951 +msgid "Show fallback data" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2955 +msgid "If provided, when should we show fallback data for this Widget?" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2967 +msgid "When no data is returned" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2971 +msgid "When there is an error" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2975 +msgid "Undefined" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2979 +msgid "Please fill out all least one field!" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2983 +msgid "Please fill out all the required fields!" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2987 +msgid "Required Field!" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3088 msgid "Id" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2769 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3092 msgid "Owner Id" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2803 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3126 msgid "Add Action" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2807 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3130 msgid "Click to Add a new Action" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2815 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3138 msgid "There can only be one category per zone!" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2826 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3149 msgid "Show All" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2830 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3153 msgid "Show Paged" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2838 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3161 msgid "No Transition" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2842 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3165 msgid "Marquee Left" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2846 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3169 msgid "Marquee Right" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2850 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3173 msgid "Marquee Up" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2854 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3177 msgid "Marquee Down" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2858 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3181 msgid "Fade" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2866 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3189 msgid "Scroll Horizontal" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2870 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3193 msgid "Scroll Vertical" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2874 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3197 msgid "Flip Horizontal" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2878 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3201 msgid "Flip Vertical" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2882 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3205 msgid "Shuffle" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2886 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3209 msgid "Tile Slide" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2890 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3213 msgid "Tile Blind" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2898 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3221 msgid "Edit Playlist - %playlistName% - " msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2902 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3225 msgid "Widgets count" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2907 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3229 +msgid "Editing source playlist %playlistName% " +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3234 msgid "Zoom In" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2911 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3238 msgid "Zoom Out" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2915 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3242 msgid "Default zoom" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2919 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3246 msgid "Change scale mode" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2928 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3251 +msgid "Your changes will apply anywhere this Playlist is used." +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3259 msgid "Delete Playlist" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2932 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3263 msgid "Are you sure you want to delete a non-empty Playlist?" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2940 -#: lib/Connector/OpenWeatherMapConnector.php:495 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3269 +#: cache/2b/2b32343e2d811827739ee3c637757fe7.php:56 +#: cache/8d/8d762416eec05c4841be70e1b937f167.php:57 +msgid "Delete Widget" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3273 +msgid "Are you sure you want to delete this widget?" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3279 +msgid "Delete Element" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3283 +msgid "" +"Are you sure you want to delete this element? Widget will also be deleted " +"and configuration will be lost." +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3289 +msgid "Delete Element Group" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3293 +msgid "" +"Are you sure you want to delete this element group? Widget will also be " +"deleted and configuration will be lost." +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3299 +msgid "Delete all selected objects?" +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3303 +msgid "" +"Are you sure you want to delete all selected objects? Widgets might also be " +"deleted and configuration will be lost." +msgstr "" + +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3311 +#: lib/Connector/OpenWeatherMapConnector.php:519 msgid "Afrikaans" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2944 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3315 msgid "Arabic (Algeria)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2948 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3319 msgid "Arabic (Kuwait)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2952 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3323 msgid "Arabic (Libya)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2956 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3327 msgid "Arabic (Morocco)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2960 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3331 msgid "Arabic (Saudi Arabia)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2964 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3335 msgid "Arabic (Tunisia)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2968 -#: lib/Connector/OpenWeatherMapConnector.php:496 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3339 +#: lib/Connector/OpenWeatherMapConnector.php:520 msgid "Arabic" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2972 -#: lib/Connector/OpenWeatherMapConnector.php:497 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3343 +#: lib/Connector/OpenWeatherMapConnector.php:521 msgid "Azerbaijani" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2976 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3347 msgid "Belarusian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2980 -#: lib/Connector/OpenWeatherMapConnector.php:498 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3351 +#: lib/Connector/OpenWeatherMapConnector.php:522 msgid "Bulgarian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2984 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3355 msgid "Bambara" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2988 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3359 msgid "Bengali (Bangladesh)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2992 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3363 msgid "Bengali" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:2996 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3367 msgid "Tibetan" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3000 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3371 msgid "Breton" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3004 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3375 msgid "Bosnian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3008 -#: lib/Connector/OpenWeatherMapConnector.php:499 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3379 +#: lib/Connector/OpenWeatherMapConnector.php:523 msgid "Catalan" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3012 -#: lib/Connector/OpenWeatherMapConnector.php:502 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3383 +#: lib/Connector/OpenWeatherMapConnector.php:526 msgid "Czech" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3016 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3387 msgid "Chuvash" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3020 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3391 msgid "Welsh" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3024 -#: lib/Connector/OpenWeatherMapConnector.php:503 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3395 +#: lib/Connector/OpenWeatherMapConnector.php:527 msgid "Danish" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3028 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3399 msgid "German (Austria)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3032 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3403 msgid "German (Switzerland)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3036 -#: lib/Connector/OpenWeatherMapConnector.php:504 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3407 +#: lib/Connector/OpenWeatherMapConnector.php:528 msgid "German" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3040 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3411 msgid "Divehi" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3044 -#: lib/Connector/OpenWeatherMapConnector.php:505 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3415 +#: lib/Connector/OpenWeatherMapConnector.php:529 msgid "Greek" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3048 -#: lib/Connector/OpenWeatherMapConnector.php:506 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3419 +#: lib/Connector/OpenWeatherMapConnector.php:530 msgid "English" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3052 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3423 msgid "English (Australia)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3056 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3427 msgid "English (Canada)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3060 -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3064 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3431 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3435 msgid "English (United Kingdom)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3068 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3439 msgid "English (Ireland)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3072 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3443 msgid "English (Israel)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3076 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3447 msgid "English (India)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3080 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3451 msgid "English (New Zealand)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3084 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3455 msgid "English (Singapore)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3088 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3459 msgid "Esperanto" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3092 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3463 msgid "Spanish (Dominican Republic)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3096 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3467 msgid "Spanish (Mexico)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3100 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3471 msgid "Spanish (United States)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3104 -#: lib/Connector/OpenWeatherMapConnector.php:533 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3475 +#: lib/Connector/OpenWeatherMapConnector.php:557 msgid "Spanish" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3108 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3479 msgid "Estonian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3112 -#: lib/Connector/OpenWeatherMapConnector.php:507 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3483 +#: lib/Connector/OpenWeatherMapConnector.php:531 msgid "Basque" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3116 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3487 msgid "Persian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3120 -#: lib/Connector/OpenWeatherMapConnector.php:509 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3491 +#: lib/Connector/OpenWeatherMapConnector.php:533 msgid "Finnish" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3124 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3495 msgid "Filipino" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3128 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3499 msgid "Faroese" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3132 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3503 msgid "French (Canada)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3136 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3507 msgid "French (Switzerland)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3140 -#: lib/Connector/OpenWeatherMapConnector.php:510 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3511 +#: lib/Connector/OpenWeatherMapConnector.php:534 msgid "French" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3144 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3515 msgid "Western Frisian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3148 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3519 msgid "Scottish Gaelic" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3152 -#: lib/Connector/OpenWeatherMapConnector.php:511 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3523 +#: lib/Connector/OpenWeatherMapConnector.php:535 msgid "Galician" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3156 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3527 msgid "gom (Latin)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3160 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3531 msgid "Gujarati" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3164 -#: lib/Connector/OpenWeatherMapConnector.php:512 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3535 +#: lib/Connector/OpenWeatherMapConnector.php:536 msgid "Hebrew" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3168 -#: lib/Connector/OpenWeatherMapConnector.php:513 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3539 +#: lib/Connector/OpenWeatherMapConnector.php:537 msgid "Hindi" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3172 -#: lib/Connector/OpenWeatherMapConnector.php:514 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3543 +#: lib/Connector/OpenWeatherMapConnector.php:538 msgid "Croatian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3176 -#: lib/Connector/OpenWeatherMapConnector.php:515 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3547 +#: lib/Connector/OpenWeatherMapConnector.php:539 msgid "Hungarian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3180 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3551 msgid "Armenian (Armenia)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3184 -#: lib/Connector/OpenWeatherMapConnector.php:516 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3555 +#: lib/Connector/OpenWeatherMapConnector.php:540 msgid "Indonesian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3188 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3559 msgid "Icelandic" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3192 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3563 msgid "Italian (Switzerland)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3196 -#: lib/Connector/OpenWeatherMapConnector.php:517 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3567 +#: lib/Connector/OpenWeatherMapConnector.php:541 msgid "Italian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3200 -#: lib/Connector/OpenWeatherMapConnector.php:518 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3571 +#: lib/Connector/OpenWeatherMapConnector.php:542 msgid "Japanese" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3204 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3575 msgid "Javanese" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3208 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3579 msgid "Georgian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3212 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3583 msgid "Kazakh" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3216 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3587 msgid "Khmer" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3220 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3591 msgid "Kannada" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3224 -#: lib/Connector/OpenWeatherMapConnector.php:519 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3595 +#: lib/Connector/OpenWeatherMapConnector.php:543 msgid "Korean" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3228 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3599 msgid "Kurdish" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3232 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3603 msgid "Kirghiz" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3236 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3607 msgid "Luxembourgish" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3240 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3611 msgid "Lao" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3244 -#: lib/Connector/OpenWeatherMapConnector.php:521 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3615 +#: lib/Connector/OpenWeatherMapConnector.php:545 msgid "Lithuanian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3248 -#: lib/Connector/OpenWeatherMapConnector.php:520 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3619 +#: lib/Connector/OpenWeatherMapConnector.php:544 msgid "Latvian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3252 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3623 msgid "Montenegrin" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3256 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3627 msgid "Maori" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3260 -#: lib/Connector/OpenWeatherMapConnector.php:522 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3631 +#: lib/Connector/OpenWeatherMapConnector.php:546 msgid "Macedonian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3264 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3635 msgid "Malayalam" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3268 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3639 msgid "Mongolian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3272 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3643 msgid "Marathi" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3276 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3647 msgid "Malay (Malaysia)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3280 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3651 msgid "Malay" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3284 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3655 msgid "Maltese" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3288 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3659 msgid "Burmese" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3292 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3663 msgid "Norwegian Bokmål" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3296 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3667 msgid "Nepali" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3300 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3671 msgid "Dutch (Belgium)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3304 -#: lib/Connector/OpenWeatherMapConnector.php:524 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3675 +#: lib/Connector/OpenWeatherMapConnector.php:548 msgid "Dutch" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3308 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3679 msgid "Norwegian Nynorsk" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3312 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3683 msgid "Punjabi (India)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3316 -#: lib/Connector/OpenWeatherMapConnector.php:525 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3687 +#: lib/Connector/OpenWeatherMapConnector.php:549 msgid "Polish" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3320 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3691 msgid "Portuguese (Brazil)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3324 -#: lib/Connector/OpenWeatherMapConnector.php:526 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3695 +#: lib/Connector/OpenWeatherMapConnector.php:550 msgid "Portuguese" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3328 -#: lib/Connector/OpenWeatherMapConnector.php:528 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3699 +#: lib/Connector/OpenWeatherMapConnector.php:552 msgid "Romanian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3332 -#: lib/Connector/OpenWeatherMapConnector.php:529 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3703 +#: lib/Connector/OpenWeatherMapConnector.php:553 msgid "Russian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3336 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3707 msgid "Sindhi" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3340 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3711 msgid "Northern Sami" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3344 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3715 msgid "Sinhala" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3348 -#: lib/Connector/OpenWeatherMapConnector.php:531 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3719 +#: lib/Connector/OpenWeatherMapConnector.php:555 msgid "Slovak" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3352 -#: lib/Connector/OpenWeatherMapConnector.php:532 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3723 +#: lib/Connector/OpenWeatherMapConnector.php:556 msgid "Slovenian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3356 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3727 msgid "Albanian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3360 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3731 msgid "Serbian (Cyrillic)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3364 -#: lib/Connector/OpenWeatherMapConnector.php:534 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3735 +#: lib/Connector/OpenWeatherMapConnector.php:558 msgid "Serbian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3368 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3739 msgid "Swati" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3372 -#: lib/Connector/OpenWeatherMapConnector.php:530 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3743 +#: lib/Connector/OpenWeatherMapConnector.php:554 msgid "Swedish" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3376 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3747 msgid "Swahili" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3380 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3751 msgid "Tamil" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3384 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3755 msgid "Telugu" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3388 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3759 msgid "Tetum" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3392 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3763 msgid "Tajik" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3396 -#: lib/Connector/OpenWeatherMapConnector.php:535 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3767 +#: lib/Connector/OpenWeatherMapConnector.php:559 msgid "Thai" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3400 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3771 msgid "Turkmen" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3404 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3775 msgid "Tagalog (Philippines)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3408 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3779 msgid "Klingon" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3412 -#: lib/Connector/OpenWeatherMapConnector.php:536 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3783 +#: lib/Connector/OpenWeatherMapConnector.php:560 msgid "Turkish" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3416 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3787 msgid "Talossan" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3420 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3791 msgid "Central Atlas Tamazight (Latin)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3424 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3795 msgid "Central Atlas Tamazight" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3428 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3799 msgid "Uyghur (China)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3432 -#: lib/Connector/OpenWeatherMapConnector.php:537 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3803 +#: lib/Connector/OpenWeatherMapConnector.php:561 msgid "Ukrainian" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3436 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3807 msgid "Urdu" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3440 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3811 msgid "Uzbek (Latin)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3444 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3815 msgid "Uzbek" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3448 -#: lib/Connector/OpenWeatherMapConnector.php:538 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3819 +#: lib/Connector/OpenWeatherMapConnector.php:562 msgid "Vietnamese" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3452 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3823 msgid "Pseudo" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3456 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3827 msgid "Yoruba (Nigeria)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3460 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3831 msgid "Chinese (China)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3464 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3835 msgid "Chinese (Hong Kong)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3468 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3839 msgid "Chinese (Macau)" msgstr "" -#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3472 +#: cache/74/744308e2456d1f83f205ef9ab9fe3022.php:3843 msgid "Chinese (Taiwan)" msgstr "" @@ -16762,8 +17638,8 @@ msgid "" msgstr "" #: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:286 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:585 -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:610 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:615 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:640 msgid "Device Default" msgstr "" @@ -16775,7 +17651,7 @@ msgstr "" msgid "" "Set dimensions to be used for the Player window ensuring that they do not " "exceed the actual screen size. Enter the following values representing the " -"pixel sizings for; Left,Top,Width,Height. This requires a Player Restart to " +"pixel sizings for; Top,Left,Width,Height. This requires a Player Restart to " "action." msgstr "" @@ -16807,156 +17683,156 @@ msgid "" "a Surface View for Video Rendering." msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:360 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:390 msgid "Start during device start up?" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:363 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:393 msgid "" "When the device starts and Android finishes loading, should the Player start " "up and come to the foreground?" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:377 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:407 msgid "Run Intent" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:396 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:426 msgid "Action Bar Intent" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:399 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:429 msgid "" "When set to Run Intent, which intent should be run. Format is: Action|" "ExtraKey,ExtraMsg" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:407 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:437 msgid "Automatic Restart" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:410 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:440 msgid "Automatically Restart the application if we detect it is not visible." msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:418 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:448 msgid "Start delay for device start up" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:421 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:451 msgid "" "The number of seconds to wait before starting the application after the " "device has started. Minimum 10." msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:474 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:504 msgid "Action for Screen Shot Intent" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:477 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:507 msgid "" "The Intent Action to use for requesting a screen shot. Leave empty to " "natively create an image from the player screen content." msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:496 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:526 msgid "WebView Plugin State" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:499 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:529 msgid "What plugin state should be used when starting a web view." msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:502 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:532 msgid "On Demand" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:510 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:540 msgid "Hardware Accelerate Web Content" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:513 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:543 msgid "Mode for hardware acceleration of web based content." msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:516 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:546 msgid "Off when transparent" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:524 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:554 msgid "Use CMS time?" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:527 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:557 msgid "" "Set the device time using the CMS. Only available on rooted devices or " "system signed players." msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:535 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:565 msgid "Enable caching of Web Resources?" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:538 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:568 msgid "" "The standard browser cache will be used - we recommend this is switched off " "unless specifically required. Effects Web Page and Embedded." msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:568 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:598 msgid "Load Link Libraries for APK Update" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:571 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:601 msgid "" "Should the update command include dynamic link libraries? Only change this " "if your updates are failing." msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:579 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:609 msgid "Use Multiple Video Decoders" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:582 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:612 msgid "" "Should the Player try to use Multiple Video Decoders when preparing and " "showing Video content." msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:593 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:623 msgid "Maximum Region Count" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:596 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:626 msgid "" "This setting is a memory limit protection setting which will stop rendering " "regions beyond the limit set. Leave at 0 for no limit." msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:604 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:634 msgid "Video Engine" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:607 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:637 msgid "" "Select which video engine should be used to playback video. ExoPlayer is " "usually better, but if you experience issues you can revert back to Android " "Media Player. HLS always uses ExoPlayer. Available from v3 R300." msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:610 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:640 msgid "ExoPlayer" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:610 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:640 msgid "Android Media Player" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:618 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:648 msgid "Enable touch capabilities on the device?" msgstr "" -#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:621 +#: cache/74/74cac03bd6d6bdd54edcfd79c1c2a2fb.php:651 msgid "" "If this device will be used as a touch screen check this option. Checking " "this option will cause a message to appear on the player which needs to be " @@ -16965,30 +17841,30 @@ msgid "" "from v3 R300." msgstr "" -#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:143 +#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:145 msgid "Please provide your Two Factor Authorisation Code" msgstr "" -#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:163 -#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:230 +#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:165 +#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:232 #: cache/bc/bcf5f9074f174f8b5cbd4c3a0b0b5850.php:56 #: cache/bc/bcf5f9074f174f8b5cbd4c3a0b0b5850.php:69 msgid "Verify" msgstr "" -#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:168 +#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:170 msgid "Use Recovery Code instead?" msgstr "" -#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:205 +#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:207 msgid "Please provide your Two Factor Authorisation Recovery Code" msgstr "" -#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:209 +#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:211 msgid "Recovery Code" msgstr "" -#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:235 +#: cache/74/744e0b5373a743ed5470adc55bec6bcc.php:237 msgid "Use Two Factor Code instead?" msgstr "" @@ -16996,303 +17872,283 @@ msgstr "" msgid "Associate an item from the Library" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:56 -msgid "Layout Editor" -msgstr "" - -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:132 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:139 msgid "Toggle Fullscreen Mode" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:136 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:143 msgid "Layer Manager" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:140 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:147 msgid "Snap to Grid" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:144 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:151 msgid "Snap to Borders" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:148 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:155 msgid "Snap to Elements" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:152 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:159 #: cache/32/32885dae79820faade39c5207ec15914.php:62 msgid "New" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:160 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:167 msgid "Discard draft" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:168 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:175 #: cache/8d/8d27a7617bf5bf7e7c28a56a7b503514.php:140 msgid "" "Are you sure you want to publish this Layout? If it is already in use the " "update will automatically get pushed." msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:172 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:179 #: cache/ca/ca2dd0b2142f7bc07fc5e4b9d6a35375.php:72 -#: lib/Controller/Template.php:197 lib/Controller/Layout.php:1684 +#: lib/Controller/Template.php:203 lib/Controller/Layout.php:1708 msgid "Checkout" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:180 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:187 msgid "Unlock" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:184 -#: lib/Controller/Layout.php:1871 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:191 +#: lib/Controller/Layout.php:1897 msgid "Save Template" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:188 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:195 msgid "Read Only" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:192 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:199 msgid "" "You are viewing this Layout in read only mode, checkout by clicking on this " "message or from the Options menu above!" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:200 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:207 msgid "This is being locked by another user. Lock expires on: [expiryDate]" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:204 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:211 msgid "Not editable, please checkout!" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:208 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:215 msgid "" "The current layout will be unlocked to other users. You will also be " "redirected to the Layouts page" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:220 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:227 msgid "" "This is published and cannot be edited. You can checkout for editing below, " "or continue to view it in a read only mode." msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:224 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:231 msgid "Showing sample data" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:228 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:235 msgid "Has empty data" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:235 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:242 msgid "Inline Editor" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:239 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:421 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:246 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:436 msgid "Next widget" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:243 -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:425 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:250 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:440 msgid "Previous widget" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:247 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:254 msgid "Add Widget" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:251 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:258 msgid "Edit Group" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:267 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:274 #: lib/Controller/Region.php:672 msgid "Empty Playlist" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:286 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:301 msgid "Reset zoom" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:290 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:305 msgid "Visible area time span" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:294 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:309 msgid "Zoom out to see timeruler!" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:298 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:313 msgid "" "No Regions: Add a Region to start creating content by clicking here or the " "Edit Layout icon below!" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:302 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:317 msgid "Scroll to selected widget" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:306 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:321 msgid "Visible area start time" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:310 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:325 msgid "Visible area end time" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:326 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:341 msgid "Add to this position" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:330 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:345 msgid "Zoom in to see more details!" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:334 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:349 msgid "Edit region" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:338 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:353 msgid "Open as playlist" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:342 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:357 msgid "Widget Actions:" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:346 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:361 msgid "Region Actions:" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:353 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:368 msgid "Edit layout regions" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:361 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:376 msgid "Add a new region" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:365 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:380 msgid "Delete region" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:369 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:384 msgid "Undo" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:373 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:388 msgid "Revert last change" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:381 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:396 msgid "Return to Layout View" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:389 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:404 msgid "Save changes" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:393 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:408 msgid "Go back to Layout view" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:397 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:412 msgid "Save editor changes" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:401 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:416 msgid "Play Layout preview" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:405 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:420 msgid "Preview stopped!" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:409 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:424 msgid "Click to Play again" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:417 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:432 msgid "Stop Layout preview" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:441 -msgid "Region Name" +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:448 +msgid "Widget Type" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:477 -msgid "Add a Region" +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:452 +msgid "Widget Template Name" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:487 -msgid "Upload Audio files to assign to Widgets" +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:460 +msgid "Media Name" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:493 -msgid "Expiry Dates" +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:472 +msgid "Region Name" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:497 -msgid "Enter start and end times for Widgets" +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:516 +msgid "Upload Audio files to assign to Widgets" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:503 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:522 msgid "Transition In" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:507 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:526 msgid "Apply a Transition type for the start of a media item" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:513 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:532 msgid "Transition Out" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:517 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:536 msgid "Apply a Transition type for the end of a media item" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:527 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:546 msgid "Set View, Edit and Delete Sharing for Widgets and Playlists" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:697 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:719 msgid "Add Background Image" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:704 -#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:305 -#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:243 -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:380 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:769 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:927 -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:263 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:622 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:730 -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:384 -#: lib/XTR/MaintenanceDailyTask.php:157 lib/XTR/NotificationTidyTask.php:115 -#: lib/XTR/MaintenanceRegularTask.php:150 lib/XTR/StatsArchiveTask.php:134 -#: lib/XTR/AuditLogArchiveTask.php:125 lib/XTR/RemoteDataSetFetchTask.php:214 -msgid "Done" -msgstr "" - -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:717 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:739 msgid "Browse/Add Image" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:721 -#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:322 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:743 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:394 msgid "Start Upload" msgstr "" -#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:725 -#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:326 +#: cache/1b/1b4d10b8bb67ce8b30ada153b15daf6e.php:747 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:398 msgid "Cancel Upload" msgstr "" @@ -17349,8 +18205,20 @@ msgid "" "Leave empty if this command should be available on all types of Display." msgstr "" -#: cache/23/23114ff234f79ee13968407a57f6252d.php:193 -#: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:195 +#: cache/23/23114ff234f79ee13968407a57f6252d.php:189 +#: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:191 +#: cache/10/1090c5665a57f49e6b968318ca49de82.php:174 +msgid "Create Alert On" +msgstr "" + +#: cache/23/23114ff234f79ee13968407a57f6252d.php:194 +#: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:196 +#: cache/10/1090c5665a57f49e6b968318ca49de82.php:179 +msgid "On command execution, when should a Display alert be created?" +msgstr "" + +#: cache/23/23114ff234f79ee13968407a57f6252d.php:213 +#: cache/d3/d3aa1431a8c1ca36890facca4eb9503f.php:215 msgid "" "This should be a textual description of what the command is trying to " "achieve. It should not be the command string." @@ -17360,25 +18228,25 @@ msgstr "" msgid "Add a new Display Group" msgstr "" -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:137 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:136 msgid "Return Display Groups that directly contain the selected Display." msgstr "" -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:147 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:146 msgid "Nested Display" msgstr "" -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:152 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:151 msgid "" "Return Display Groups that contain the selected Display somewhere in the " "nested Display Group relationship tree." msgstr "" -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:162 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:161 msgid "Dynamic Criteria" msgstr "" -#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:258 +#: cache/23/238f0b98d7f96aca9a850e8b230fe1fb.php:256 msgid "Is Dynamic?" msgstr "" @@ -17498,6 +18366,7 @@ msgid "" msgstr "" #: cache/38/38e5186bcfa9917c4ec02d8c626e2552.php:57 +#: cache/05/05600263dc8230138bb0f89338bbef69.php:81 #: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:84 msgid "Add Synchronised Event" msgstr "" @@ -17560,7 +18429,7 @@ msgstr "" #: cache/63/63a123f42a16165e90cd9f604b2de4bd.php:224 msgid "" -"You can also add a template from an existing Layout from the Layout Designer." +"You can also add a template from an existing Layout from the Layout Editor." msgstr "" #: cache/63/63a123f42a16165e90cd9f604b2de4bd.php:236 @@ -17734,7 +18603,7 @@ msgid "Layout %name%" msgstr "" #: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:55 -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:91 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:89 msgid "Audit Log" msgstr "" @@ -17742,21 +18611,21 @@ msgstr "" msgid "Export raw data to CSV" msgstr "" -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:135 -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:192 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:133 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:190 msgid "Entity" msgstr "" -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:145 -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:196 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:143 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:194 msgid "Entity ID" msgstr "" -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:208 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:206 msgid "Object" msgstr "" -#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:303 +#: cache/0e/0ed8020e97c517a55ad881cfc5dd0b4c.php:304 msgid "Property" msgstr "" @@ -17774,15 +18643,30 @@ msgstr "" msgid "Edit Campaign \"%campaignName%\"" msgstr "" -#: cache/05/05600263dc8230138bb0f89338bbef69.php:99 +#: cache/05/05600263dc8230138bb0f89338bbef69.php:73 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:76 +msgid "Add a new Sync event" +msgstr "" + +#: cache/05/05600263dc8230138bb0f89338bbef69.php:87 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:90 +msgid "Add a new Scheduled event" +msgstr "" + +#: cache/05/05600263dc8230138bb0f89338bbef69.php:93 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:96 +msgid "Add Event" +msgstr "" + +#: cache/05/05600263dc8230138bb0f89338bbef69.php:147 msgid "Guest" msgstr "" -#: cache/05/05600263dc8230138bb0f89338bbef69.php:142 +#: cache/05/05600263dc8230138bb0f89338bbef69.php:190 msgid "Browser" msgstr "" -#: cache/05/05600263dc8230138bb0f89338bbef69.php:146 +#: cache/05/05600263dc8230138bb0f89338bbef69.php:194 msgid "Expires At" msgstr "" @@ -17790,7 +18674,7 @@ msgstr "" msgid "Edit Product " msgstr "" -#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:198 +#: cache/fd/fd08b6cb6765ac676b671e9c5a7afe27.php:157 msgid "Set a display order for this item to appear" msgstr "" @@ -17806,7 +18690,7 @@ msgid "" msgstr "" #: cache/fd/fdcb7243cca15e1cb2caaef15ca051a6.php:56 -#: lib/Controller/Display.php:927 +#: lib/Controller/Display.php:928 msgid "Set Default Layout" msgstr "" @@ -17823,11 +18707,6 @@ msgid "" "Are you sure you want to reset this report schedule? This cannot be undone" msgstr "" -#: cache/2b/2b32343e2d811827739ee3c637757fe7.php:56 -#: cache/8d/8d762416eec05c4841be70e1b937f167.php:57 -msgid "Delete Widget" -msgstr "" - #: cache/2b/2b32343e2d811827739ee3c637757fe7.php:88 #: cache/8d/8d762416eec05c4841be70e1b937f167.php:96 msgid "Are you sure you want to remove this widget?" @@ -17885,7 +18764,7 @@ msgstr "" msgid "Add a new Menu Board" msgstr "" -#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:222 +#: cache/f3/f3286f195f132c53823b9bb1068e5cc9.php:225 msgid "Permissions" msgstr "" @@ -18060,11 +18939,15 @@ msgid "Which field would you like to use as the ID for this SSP?" msgstr "" #: cache/26/26b74efc874b3a8a5a7cf3ed2a22c6ba.php:492 -#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:216 -#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:259 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:502 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:581 msgid "Display ID" msgstr "" +#: cache/26/26272b78e1f020a579ccf676c2d83a39.php:156 +msgid "Optionally select existing template to use as a base for this Template" +msgstr "" + #: cache/c5/c52b8109558dd3acc604e183177113c8.php:57 msgid "Edit Media" msgstr "" @@ -18110,7 +18993,7 @@ msgid "" msgstr "" #: cache/c5/c52b8109558dd3acc604e183177113c8.php:342 -#: lib/Controller/Library.php:1351 +#: lib/Controller/Library.php:1378 msgid "Sorry, Fonts do not have any editable properties." msgstr "" @@ -18119,24 +19002,36 @@ msgstr "" msgid "Add Notification" msgstr "" -#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:296 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:109 +msgid "My Read" +msgstr "" + +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:112 +msgid "My Unread" +msgstr "" + +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:135 +msgid "Report" +msgstr "" + +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:368 msgid "Browse/Add attachment" msgstr "" -#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:318 +#: cache/c5/c5ca1344d07a74a91c5de3a21d4c2de4.php:390 msgid "Browse/Add Attachment" msgstr "" -#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:134 +#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:132 #: lib/Controller/Task.php:120 msgid "Run Now" msgstr "" -#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:142 +#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:140 msgid "Last Status" msgstr "" -#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:146 +#: cache/f0/f03a3c9d913ba87fcd4d1925058f2671.php:144 msgid "Last Duration" msgstr "" @@ -18149,8 +19044,8 @@ msgid "Select an Image" msgstr "" #: cache/2c/2c55cdb5429a136a535a9cd9b127d575.php:56 -#: lib/Controller/DisplayGroup.php:489 lib/Controller/Display.php:1067 -#: lib/Controller/Display.php:1082 +#: lib/Controller/DisplayGroup.php:494 lib/Controller/Display.php:1068 +#: lib/Controller/Display.php:1083 msgid "Collect Now" msgstr "" @@ -18284,8 +19179,8 @@ msgid "Add a layout" msgstr "" #: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:349 -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:547 -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:79 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:552 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:80 msgid "Add Layout" msgstr "" @@ -18303,15 +19198,15 @@ msgid "" "campaign" msgstr "" -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:636 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:641 msgid "Which days of the week should the layout be active?" msgstr "" -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:658 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:663 msgid "Should this layout only be shown on selected day parts?" msgstr "" -#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:672 +#: cache/fe/fe92f223f863fb1896ced5bd33b8c256.php:677 msgid "Draw areas on the map where you want this layout to play." msgstr "" @@ -18459,7 +19354,7 @@ msgid "Edit Version" msgstr "" #: cache/4c/4c51c53e92ed5731d0e8526118d29799.php:88 -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:130 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:135 msgid "Player Version Name" msgstr "" @@ -18481,8 +19376,8 @@ msgid "" "on upload, otherwise adjust it here" msgstr "" -#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:379 -#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:397 +#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:381 +#: cache/4c/4c1de7ab59196b70ffa9f9da4d4e3b9c.php:399 msgid "Select a property to display inputs" msgstr "" @@ -18519,7 +19414,8 @@ msgstr "" #: cache/31/3166fdb717b675138677789dfe3ee06a.php:88 msgid "" -"Are you sure you want to delete this notification? This cannot be undone" +"Are you sure you want to delete this notification? It will be deleted for " +"all CMS users. This cannot be undone" msgstr "" #: cache/31/31805080e1e51d4a56cb67fa60bdcb2f.php:96 @@ -18673,309 +19569,297 @@ msgstr "" msgid "Widget cache?" msgstr "" -#: cache/35/35be00044edc69c7e0405b74ef1b4562.php:349 +#: cache/35/35be00044edc69c7e0405b74ef1b4562.php:351 msgid "No unused media in the Library" msgstr "" -#: cache/35/35be00044edc69c7e0405b74ef1b4562.php:395 +#: cache/35/35be00044edc69c7e0405b74ef1b4562.php:397 msgid "No unreleased media in the Library" msgstr "" -#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:73 +#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:70 msgid "Add a new Font" msgstr "" -#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:75 +#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:72 msgid "Upload Font" msgstr "" -#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:236 +#: cache/08/08aee2625ba2279e6a2c6465471b11e8.php:241 msgid "Add Font" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:76 -msgid "Add a new Sync event" -msgstr "" - -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:90 -msgid "Add a new Scheduled event" -msgstr "" - -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:96 -msgid "Add Event" -msgstr "" - -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:125 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:130 msgid "Range" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:130 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:135 msgid "Select a range" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:135 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:617 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:140 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:582 msgid "Today" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:140 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:145 msgid "This Week" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:145 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:150 msgid "This Month" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:150 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:155 msgid "This Year" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:155 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:160 msgid "Yesterday" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:160 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:165 msgid "Last Week" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:165 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:170 msgid "Last Month" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:170 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:175 msgid "Last Year" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:175 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:640 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:180 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:605 msgid "Agenda" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:238 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:270 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:274 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:243 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:275 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:279 msgid "Layout / Campaign" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:243 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:248 msgid "Please select a Layout or Campaign for this Event to show" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:391 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:352 msgid "Direct Schedule?" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:396 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:357 msgid "Show only events scheduled directly on selected Displays/Groups" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:421 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:382 msgid "Only show schedules which appear on all filtered displays/groups?" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:426 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:387 msgid "Shared Schedule?" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:451 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:548 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:412 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:509 msgid "Geo Aware?" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:455 -msgid "Both" -msgstr "" - -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:464 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:552 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:425 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:513 msgid "Recurring?" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:483 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:444 msgid "Grid" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:524 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:485 msgid "End" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:528 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:489 #: lib/Widget/DataType/Event.php:59 msgid "Event" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:532 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:493 msgid "Campaign ID" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:540 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:501 msgid "SoV" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:544 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:505 msgid "Max Plays per Hour" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:556 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:517 msgid "Recurrence Description" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:560 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:521 msgid "Recurrence Type" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:564 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:525 msgid "Recurrence Interval" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:568 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:529 msgid "Recurrence Repeats On" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:572 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:533 msgid "Recurrence End" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:576 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:537 msgid "Priority?" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:580 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:541 +msgid "Criteria?" +msgstr "" + +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:545 msgid "Created On" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:584 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:549 msgid "Updated On" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:604 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:569 msgid "" "Please select a Display, Display Group or Layout / Campaign to view the " "calendar" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:612 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:577 msgid "Prev" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:687 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:652 msgid "Get browser location!" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:693 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:658 msgid "Clear coordinates!" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:742 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:707 msgid "Always showing" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:747 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:712 msgid "Single Display" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:752 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:717 msgid "Multi Display" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:762 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:727 msgid "Recurring" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:767 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:732 msgid "View Only" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:777 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:742 msgid "Interrupt" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:787 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:752 msgid "Interactive Action" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:793 -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1398 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:758 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1363 msgid "Synchronised" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1018 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:983 msgid "Number of events" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1285 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1250 msgid "Display not selected!" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1290 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1255 msgid "" "Show All option does not work for this filter, one or more specific Display/" "Display Group need to be selected!" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1295 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1260 msgid "No events for the chosen Display/Display Group on the selected date!" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1300 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1265 msgid "Data request failed!" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1373 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1338 msgid "Overlay Layouts" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1378 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1343 msgid "Interrupt Layouts" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1383 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1348 msgid "Campaign Layouts" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1388 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1353 msgid "Full Screen Video/Image" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1393 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1358 msgid "Full Screen Playlist" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1404 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1369 msgid "Number of Layouts" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1421 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1386 msgid "Layout Name" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1437 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1402 msgid "Layout Duration" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1461 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1426 msgid "Visible" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1477 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1442 msgid "" "This layout will not be shown as there are higher priority layouts scheduled " "at this time" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1594 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1559 msgid "Cycle Playback?" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1679 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1644 msgid "Lead" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1700 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1665 msgid "Set The same Layout on all displays?" msgstr "" -#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1704 +#: cache/a7/a7a26926ec2b52230c8037d640a807ea.php:1669 msgid "Mirror" msgstr "" @@ -19092,7 +19976,7 @@ msgid "" msgstr "" #: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:306 -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:191 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:209 msgid "Retired?" msgstr "" @@ -19100,7 +19984,7 @@ msgstr "" msgid "Is this user retired?" msgstr "" -#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:520 +#: cache/cd/cdf12d9a1fc3b5db7965cfa8f9bb8d13.php:610 msgid "" "Should this User see the new user guide when they log in? This will be set " "to hidden if the User has dismissed the guide themselves." @@ -19150,216 +20034,217 @@ msgid "" "state so you can make edits." msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:308 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:336 msgid "With Selected" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:316 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:344 msgid "Multiple Items Selected" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:320 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:348 msgid "Indeterminate State" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:324 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:352 msgid "Sorry, no items have been selected." msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:328 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:356 msgid "" "Caution, you have selected %1 items. Clicking save will run the %2 " "transaction on all these items." msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:332 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:360 #, php-format msgid "Valid extensions are %s" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:348 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:376 msgid "Success" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:352 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:380 msgid "Failure" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:356 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:384 msgid "Enter text..." msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:360 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:388 msgid "No Data returned from the source" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:364 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:392 msgid "Status Pending" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:372 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:400 msgid "Delete from Schedule" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:376 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:404 msgid "Warning - starts with or ends with a space, or contains double spaces" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:384 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:412 msgid "Free Text" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:388 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:416 msgid "Edit Tags" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:392 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:420 msgid "" "Provide an optional Value for this Tag. If no Value is required, this field " "can be left blank" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:400 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:428 msgid "" "Before Uploading, scroll through the progress bar or play and pause to " "select a still to be used as the video file thumbnail." msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:408 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:436 msgid "Rename" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:416 -#: lib/Controller/Template.php:270 lib/Controller/Template.php:276 -#: lib/Controller/DisplayGroup.php:428 lib/Controller/DisplayGroup.php:441 -#: lib/Controller/DataSet.php:302 lib/Controller/DataSet.php:308 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:444 +#: lib/Controller/Template.php:301 lib/Controller/Template.php:314 +#: lib/Controller/DisplayGroup.php:433 lib/Controller/DisplayGroup.php:446 +#: lib/Controller/DataSet.php:350 lib/Controller/DataSet.php:356 #: lib/Controller/Campaign.php:422 lib/Controller/Campaign.php:428 #: lib/Controller/MenuBoard.php:194 lib/Controller/MenuBoard.php:202 -#: lib/Controller/Playlist.php:489 lib/Controller/Playlist.php:501 -#: lib/Controller/Library.php:711 lib/Controller/Library.php:717 -#: lib/Controller/Layout.php:1890 lib/Controller/Layout.php:1896 -#: lib/Controller/Display.php:1144 lib/Controller/Display.php:1157 +#: lib/Controller/Playlist.php:492 lib/Controller/Playlist.php:504 +#: lib/Controller/Library.php:713 lib/Controller/Library.php:719 +#: lib/Controller/Layout.php:1916 lib/Controller/Layout.php:1922 +#: lib/Controller/Display.php:1145 lib/Controller/Display.php:1158 +#: lib/Controller/Developer.php:132 lib/Controller/Developer.php:145 #: lib/Controller/Command.php:213 lib/Controller/Command.php:226 #: lib/Controller/DayPart.php:185 lib/Controller/DayPart.php:191 msgid "Share" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:420 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:448 msgid "Set as Home" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:424 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:452 msgid "Cannot modify root folder." msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:428 -#: lib/Controller/Folder.php:397 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:456 +#: lib/Controller/Folder.php:405 msgid "Cannot remove Folder with content" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:432 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:460 msgid "New Folder" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:436 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:464 msgid "Move Folder" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:440 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:468 msgid "Right click a Folder for further Options" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:444 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:472 msgid "You already set an exception for this day." msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:448 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:476 msgid "Online" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:452 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:480 msgid "Offline" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:460 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:488 msgid "Not up to date" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:464 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:492 msgid "Publishing" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:468 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:496 msgid "Publish failed." msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:472 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:500 msgid "Default Sorting" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:476 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:504 msgid "Unlimited" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:480 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:508 msgid "" "Warning : Image is too large and will not be displayed on the Players. " "Please check the allowed Resize Limit in Administration -> Settings" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:580 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:624 msgid "No data available in table" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:584 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:628 msgid "Showing _START_ to _END_ of _TOTAL_ entries" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:588 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:632 msgid "Showing 0 to 0 of 0 entries" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:592 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:636 msgid "(filtered from _MAX_ total entries)" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:598 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:642 msgid "Show _MENU_ entries" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:602 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:646 msgid "Loading..." msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:610 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:654 msgid "Search:" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:614 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:658 msgid "No matching records found" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:619 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:663 msgid "First" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:623 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:667 msgid "Last" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:637 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:681 msgid ": activate to sort column ascending" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:641 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:685 msgid ": activate to sort column descending" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:647 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:691 msgid "Column visibility" msgstr "" -#: cache/37/37f12704cf17017038d73d9ee1907d04.php:651 +#: cache/37/37f12704cf17017038d73d9ee1907d04.php:695 msgid "Print" msgstr "" @@ -19374,7 +20259,7 @@ msgid "" msgstr "" #: cache/37/377ff96eb23f94563370a45d1c41993f.php:174 -#: lib/Controller/Login.php:529 +#: lib/Controller/Login.php:530 msgid "Two Factor Authentication" msgstr "" @@ -19423,7 +20308,7 @@ msgid "" "Recovery codes will become active only after this form is successfully saved" msgstr "" -#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:281 +#: cache/fa/fa9935428c44daef4d95e4b582124caa.php:266 msgid "Add an attachment?" msgstr "" @@ -19444,16 +20329,25 @@ msgid "Do you want to include the DataSet data?" msgstr "" #: cache/fa/faae83213ac48b5ddd10aa2f75cd5121.php:116 -msgid "Save as" +msgid "Include Widget fallback data?" msgstr "" #: cache/fa/faae83213ac48b5ddd10aa2f75cd5121.php:121 +msgid "" +"Do you want to include fallback data added to Widgets used on this Layout?" +msgstr "" + +#: cache/fa/faae83213ac48b5ddd10aa2f75cd5121.php:131 +msgid "Save as" +msgstr "" + +#: cache/fa/faae83213ac48b5ddd10aa2f75cd5121.php:136 msgid "Change the name of the downloaded file if desired." msgstr "" #: cache/fa/fa66e594804204b7397616a42725bee8.php:56 -#: lib/Controller/DisplayGroup.php:511 lib/Controller/DisplayGroup.php:524 -#: lib/Controller/Display.php:1095 lib/Controller/Display.php:1109 +#: lib/Controller/DisplayGroup.php:516 lib/Controller/DisplayGroup.php:529 +#: lib/Controller/Display.php:1096 lib/Controller/Display.php:1110 msgid "Trigger a web hook" msgstr "" @@ -19473,7 +20367,7 @@ msgstr "" msgid "Edit Sync Group" msgstr "" -#: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:148 +#: cache/42/429bc3b90e0dd835a4548e949ce40ad6.php:178 msgid "Select Lead Display for this sync group" msgstr "" @@ -19659,7 +20553,7 @@ msgid "Delete on Expiry?" msgstr "" #: cache/72/7200184dcf867208ff40fb0a39739de4.php:56 -#: lib/Controller/Display.php:904 +#: lib/Controller/Display.php:905 msgid "Toggle Authorise" msgstr "" @@ -19683,24 +20577,24 @@ msgstr "" msgid "Add a new User" msgstr "" -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:171 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:189 msgid "Home folder" msgstr "" -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:183 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:201 msgid "Last Login" msgstr "" -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:195 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:213 msgid "Two Factor" msgstr "" -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:207 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:225 msgid "Phone" msgstr "" -#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:231 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:373 +#: cache/53/53221a3cb3187e41cde32cfa796d45a7.php:249 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:385 msgid "Row Menu" msgstr "" @@ -19709,84 +20603,88 @@ msgstr "" msgid "Manage Membership for %displayName%" msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:71 -msgid "Add a new Layout and jump to the layout designer." +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:72 +msgid "Add a new Layout and jump to the layout editor." msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:84 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:85 msgid "Import a Layout from a ZIP file." msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:86 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:87 msgid "Import" msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:195 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:201 msgid "Show Layouts active on the selected Display / Display Group" msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:302 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:308 msgid "Only Used" msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:305 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:311 msgid "Only Unused" msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:324 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:330 msgid "1st line" msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:327 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:333 msgid "Widget List" msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:365 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:371 msgid "Modified Since" msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:461 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:465 msgid "Valid?" msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:619 -#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:336 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:625 +#: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:341 msgid "Add Thumbnail" msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:762 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:772 msgid "Upload Layout" msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:799 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:809 msgid "Add Layout Export ZIP Files" msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:803 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:813 msgid "Start Import" msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:807 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:817 msgid "Cancel Import" msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:811 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:821 msgid "Replace Existing Media?" msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:815 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:825 msgid "Import Tags?" msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:819 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:829 msgid "Use existing DataSets matched by name?" msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:823 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:833 msgid "Import DataSet Data?" msgstr "" -#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:900 +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:837 +msgid "Import Widget Fallback Data?" +msgstr "" + +#: cache/cb/cbed339b261aade59b9d7cdbdfb46dcc.php:914 msgid "" "Check to enable the collection of Proof of Play statistics for the selected " "items." @@ -19816,160 +20714,160 @@ msgstr "" msgid "Visit the user manual" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:431 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:435 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:443 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:447 msgid "Show command preview!" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:448 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:460 msgid "Invalid command!" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:474 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:486 msgid "Blue" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:478 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:490 msgid "White" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:487 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:499 msgid "Device Name/COM" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:491 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:503 msgid "Baud Rate" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:495 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:507 msgid "Data Bits" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:502 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:514 msgid "Parity:" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:516 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:528 msgid "Stop Bits:" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:529 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:541 msgid "Handshake:" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:542 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:554 msgid "HexSupport:" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:563 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:575 msgid "Type:" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:574 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:586 msgid "Intent" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:580 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:592 msgid "Extra:" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:626 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:638 msgid "Query params builder" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:630 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:642 msgid "Query builder" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:636 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:648 msgid "Query params:" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:650 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:662 msgid "Request method:" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:670 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:674 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:682 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:686 msgid "Show raw headers" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:679 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:684 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:691 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:696 msgid "Headers" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:700 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:712 msgid "Content Type:" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:713 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:725 msgid "Show raw body data" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:717 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:729 msgid "Show raw data" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:722 -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:727 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:734 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:739 msgid "Body data" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:742 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:754 msgid "Key" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:767 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:779 msgid "New tags" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:776 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:788 msgid "A comma separated list of tags to add to the selected elements." msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:803 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:815 msgid "" "Provide an optional Value for this Tag. If no Value is required, this field " "can be left blank." msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:819 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:831 msgid "Existing tags" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:828 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:840 msgid "" "Remove tags from the list to remove them from elements that contain them." msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:845 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:857 msgid "Player Status Window" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:874 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:886 msgid "" "When enabled, this form will automatically submit in future. Reset this in " "your User Profile." msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:879 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:891 msgid "Automatically submit this form?" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:940 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:952 msgid "Play Preview" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:952 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:964 msgid "Preview in new window" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:964 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:976 msgid "Clear Filters" msgstr "" -#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:1233 +#: cache/cb/cb1c15ce617fd7e7648d38bb0b2b48f5.php:1248 msgid "" "Enter the code associated with the web hook you wish to trigger. Please note " "that for this action to work, the webhook trigger code has to be added to " @@ -19984,19 +20882,19 @@ msgstr "" msgid "Add Version" msgstr "" -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:78 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:83 msgid "Player Software" msgstr "" -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:126 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:131 msgid "Version ID" msgstr "" -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:235 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:242 msgid "Please set Player Software Version" msgstr "" -#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:256 +#: cache/cb/cb0f801b3d2ddd3d1f61f47414d32047.php:267 msgid "Upload Version" msgstr "" @@ -20005,7 +20903,7 @@ msgid "Edit Command" msgstr "" #: cache/10/10329fe20a57f63b38843c6701587e70.php:55 -#: cache/10/10329fe20a57f63b38843c6701587e70.php:89 +#: cache/10/10329fe20a57f63b38843c6701587e70.php:94 msgid "Display Setting Profiles" msgstr "" @@ -20013,7 +20911,7 @@ msgstr "" msgid "Add a new Display Settings Profile" msgstr "" -#: cache/10/10329fe20a57f63b38843c6701587e70.php:136 +#: cache/10/10329fe20a57f63b38843c6701587e70.php:141 #: lib/Controller/Display.php:244 msgid "Default" msgstr "" @@ -20033,7 +20931,7 @@ msgid "Add a new media item to the library" msgstr "" #: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:75 -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:615 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:624 msgid "Add Media" msgstr "" @@ -20045,15 +20943,15 @@ msgstr "" msgid "Add media (URL)" msgstr "" -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:344 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:347 msgid "Duration (seconds)" msgstr "" -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:352 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:355 msgid "Size (bytes)" msgstr "" -#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:368 +#: cache/10/10b7f3b85c460e6ccc00e28eed2bf591.php:371 msgid "Revised" msgstr "" @@ -20073,8 +20971,12 @@ msgstr "" msgid "The Validation String for this Command on this display" msgstr "" +#: cache/10/1090c5665a57f49e6b968318ca49de82.php:159 +msgid "This Command has a default setting for creating alerts." +msgstr "" + #: cache/b9/b9c2f0bf2de449ead517f283926186af.php:56 -#: lib/Controller/Display.php:1039 lib/Controller/Display.php:1054 +#: lib/Controller/Display.php:1040 lib/Controller/Display.php:1055 msgid "Request Screen Shot" msgstr "" @@ -20112,7 +21014,7 @@ msgid "Are you sure you want to delete this Help page? This cannot be undone" msgstr "" #: cache/8b/8bc5b04498de39f4571d14d541bd6a91.php:70 -msgid "Add a new Template and jump to the layout designer." +msgid "Add a new Template and jump to the layout editor." msgstr "" #: cache/15/159208e1f5d4b5b8c32db48cfd0eb9e4.php:56 @@ -20128,7 +21030,7 @@ msgid "Edit Display" msgstr "" #: cache/70/70af2bbd82243291558c9b83caec5b48.php:116 -#: lib/Controller/Display.php:1185 +#: lib/Controller/Display.php:1186 msgid "Wake on LAN" msgstr "" @@ -20531,53 +21433,70 @@ msgstr "" msgid "Dashboards bring together key features for Users" msgstr "" -#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:637 -msgid "" -"Restricted high level access advised - potentially damaging system settings" +#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:637 +msgid "" +"Restricted high level access advised - potentially damaging system settings" +msgstr "" + +#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:659 +msgid "Tools to diagnose problems when seeking help" +msgstr "" + +#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:719 +msgid "Third party extensions to the platform." +msgstr "" + +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:49 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:86 +msgid "Activity Report" +msgstr "" + +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:437 +msgid "Apply" +msgstr "" + +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:469 +msgid "Filter Options" msgstr "" -#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:659 -msgid "Tools to diagnose problems when seeking help" +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:514 +msgid "Error Count" msgstr "" -#: cache/8e/8e4c9c1886827e5f797c4436d4051e48.php:719 -msgid "Third party extensions to the platform." +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:518 +msgid "Misses Count" msgstr "" -#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:47 -#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:84 -msgid "Activity Report" +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:526 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:601 +msgid "Impression Actual" msgstr "" -#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:237 -msgid "Apply" +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:554 +msgid "Summary Chart" msgstr "" -#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:251 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:573 msgid "Scheduled At" msgstr "" -#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:263 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:585 msgid "Played?" msgstr "" -#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:267 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:589 msgid "Errored?" msgstr "" -#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:275 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:597 msgid "Impression Date" msgstr "" -#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:279 -msgid "Impression Actual" -msgstr "" - -#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:287 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:609 msgid "Error Date" msgstr "" -#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:291 +#: cache/60/6096ddd2496c1f25a148669f286abbeb.php:613 msgid "Error Code" msgstr "" @@ -20635,47 +21554,47 @@ msgstr "" msgid "Add a new DataSet" msgstr "" -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:120 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:125 msgid "Show items which match the provided code" msgstr "" -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:220 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:227 msgid "Last Sync" msgstr "" -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:224 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:231 msgid "Data Last Modified" msgstr "" -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:340 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:354 msgid "Add CSV Files" msgstr "" -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:370 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:384 msgid "" "If the CSV file contains non-ASCII characters please ensure the file is " "UTF-8 encoded" msgstr "" -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:377 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:391 msgid "CSV Import" msgstr "" -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:632 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:673 msgid "Overwrite existing data?" msgstr "" -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:637 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:678 msgid "" "Erase all content in this DataSet and overwrite it with the new content in " "this import." msgstr "" -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:652 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:693 msgid "Ignore the first row? Useful if the CSV has headings." msgstr "" -#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:662 +#: cache/b2/b21687508ff5b0bb637fdbd3f8c0d3c6.php:703 msgid "" "In the fields below please enter the column number in the CSV file that " "corresponds to the Column Heading listed. This should be done before Adding " @@ -20733,60 +21652,61 @@ msgstr "" msgid "Sorry we could not find that page." msgstr "" -#: lib/Controller/Task.php:215 lib/Controller/Widget.php:298 -#: lib/Controller/Template.php:539 lib/Controller/DisplayGroup.php:796 -#: lib/Controller/DisplayGroup.php:2664 lib/Controller/DataSet.php:618 -#: lib/Controller/Notification.php:574 lib/Controller/Campaign.php:649 -#: lib/Controller/Campaign.php:1385 lib/Controller/Folder.php:255 -#: lib/Controller/Playlist.php:788 lib/Controller/SyncGroup.php:291 +#: lib/Controller/Task.php:215 lib/Controller/Widget.php:304 +#: lib/Controller/Template.php:586 lib/Controller/DisplayGroup.php:801 +#: lib/Controller/DisplayGroup.php:2669 lib/Controller/DataSet.php:698 +#: lib/Controller/Notification.php:639 lib/Controller/Campaign.php:649 +#: lib/Controller/Campaign.php:1385 lib/Controller/Folder.php:263 +#: lib/Controller/Playlist.php:791 lib/Controller/SyncGroup.php:293 #: lib/Controller/DataSetColumn.php:389 lib/Controller/Tag.php:360 -#: lib/Controller/Layout.php:488 lib/Controller/CypressTest.php:284 -#: lib/Controller/DisplayProfile.php:318 lib/Controller/DisplayProfile.php:659 -#: lib/Controller/User.php:633 lib/Controller/Applications.php:454 +#: lib/Controller/Layout.php:490 lib/Controller/CypressTest.php:284 +#: lib/Controller/DisplayProfile.php:320 lib/Controller/DisplayProfile.php:669 +#: lib/Controller/User.php:635 lib/Controller/Applications.php:454 #: lib/Controller/Resolution.php:315 lib/Controller/Region.php:262 -#: lib/Controller/Command.php:412 lib/Controller/DataSetRss.php:332 -#: lib/Controller/UserGroup.php:383 lib/Controller/DayPart.php:388 +#: lib/Controller/Command.php:421 lib/Controller/DataSetRss.php:332 +#: lib/Controller/UserGroup.php:432 lib/Controller/DayPart.php:388 #, php-format msgid "Added %s" msgstr "" -#: lib/Controller/Task.php:284 lib/Controller/Widget.php:573 -#: lib/Controller/DisplayGroup.php:1025 lib/Controller/DataSet.php:912 -#: lib/Controller/ScheduleReport.php:426 lib/Controller/Notification.php:704 -#: lib/Controller/Campaign.php:959 lib/Controller/MenuBoard.php:446 -#: lib/Controller/Folder.php:323 lib/Controller/Playlist.php:979 -#: lib/Controller/Transition.php:158 lib/Controller/Library.php:1406 -#: lib/Controller/SyncGroup.php:557 lib/Controller/DataSetColumn.php:596 -#: lib/Controller/Tag.php:545 lib/Controller/Connector.php:205 -#: lib/Controller/Layout.php:667 lib/Controller/Layout.php:789 -#: lib/Controller/Layout.php:913 lib/Controller/MenuBoardCategory.php:437 -#: lib/Controller/DisplayProfile.php:475 lib/Controller/User.php:905 -#: lib/Controller/User.php:2532 lib/Controller/Applications.php:560 +#: lib/Controller/Task.php:284 lib/Controller/Widget.php:595 +#: lib/Controller/DisplayGroup.php:1030 lib/Controller/DataSet.php:1029 +#: lib/Controller/DataSet.php:1091 lib/Controller/ScheduleReport.php:426 +#: lib/Controller/Notification.php:761 lib/Controller/Campaign.php:959 +#: lib/Controller/MenuBoard.php:446 lib/Controller/Folder.php:331 +#: lib/Controller/Playlist.php:982 lib/Controller/Transition.php:158 +#: lib/Controller/Library.php:1433 lib/Controller/SyncGroup.php:575 +#: lib/Controller/DataSetColumn.php:596 lib/Controller/Tag.php:545 +#: lib/Controller/Connector.php:205 lib/Controller/Layout.php:669 +#: lib/Controller/Layout.php:791 lib/Controller/Layout.php:936 +#: lib/Controller/MenuBoardCategory.php:437 +#: lib/Controller/DisplayProfile.php:485 lib/Controller/User.php:922 +#: lib/Controller/User.php:2549 lib/Controller/Applications.php:560 #: lib/Controller/Resolution.php:393 lib/Controller/Region.php:412 -#: lib/Controller/Region.php:582 lib/Controller/Display.php:1909 -#: lib/Controller/MenuBoardProduct.php:640 -#: lib/Controller/PlayerSoftware.php:372 lib/Controller/Command.php:510 -#: lib/Controller/DataSetRss.php:561 lib/Controller/UserGroup.php:517 +#: lib/Controller/Region.php:582 lib/Controller/Display.php:1919 +#: lib/Controller/MenuBoardProduct.php:640 lib/Controller/Developer.php:404 +#: lib/Controller/PlayerSoftware.php:372 lib/Controller/Command.php:528 +#: lib/Controller/DataSetRss.php:561 lib/Controller/UserGroup.php:618 #: lib/Controller/DayPart.php:500 #, php-format msgid "Edited %s" msgstr "" -#: lib/Controller/Task.php:331 lib/Controller/Widget.php:692 -#: lib/Controller/DisplayGroup.php:1081 lib/Controller/DataSet.php:1002 -#: lib/Controller/ScheduleReport.php:464 lib/Controller/Notification.php:763 +#: lib/Controller/Task.php:331 lib/Controller/Widget.php:718 +#: lib/Controller/DisplayGroup.php:1086 lib/Controller/DataSet.php:1181 +#: lib/Controller/ScheduleReport.php:464 lib/Controller/Notification.php:820 #: lib/Controller/Campaign.php:1038 lib/Controller/SavedReport.php:283 -#: lib/Controller/MenuBoard.php:523 lib/Controller/Folder.php:405 -#: lib/Controller/Playlist.php:1060 lib/Controller/Library.php:1016 -#: lib/Controller/SyncGroup.php:635 lib/Controller/DataSetColumn.php:685 -#: lib/Controller/Tag.php:630 lib/Controller/Layout.php:1027 +#: lib/Controller/MenuBoard.php:523 lib/Controller/Folder.php:413 +#: lib/Controller/Playlist.php:1063 lib/Controller/Library.php:1035 +#: lib/Controller/SyncGroup.php:653 lib/Controller/DataSetColumn.php:685 +#: lib/Controller/Tag.php:630 lib/Controller/Layout.php:1050 #: lib/Controller/MenuBoardCategory.php:517 -#: lib/Controller/DisplayProfile.php:554 lib/Controller/User.php:1022 +#: lib/Controller/DisplayProfile.php:564 lib/Controller/User.php:1039 #: lib/Controller/Applications.php:593 lib/Controller/Resolution.php:442 -#: lib/Controller/Region.php:469 lib/Controller/Display.php:1965 -#: lib/Controller/MenuBoardProduct.php:722 -#: lib/Controller/PlayerSoftware.php:278 lib/Controller/Command.php:562 -#: lib/Controller/DataSetRss.php:656 lib/Controller/UserGroup.php:571 +#: lib/Controller/Region.php:469 lib/Controller/Display.php:1975 +#: lib/Controller/MenuBoardProduct.php:722 lib/Controller/Developer.php:693 +#: lib/Controller/PlayerSoftware.php:278 lib/Controller/Command.php:580 +#: lib/Controller/DataSetRss.php:656 lib/Controller/UserGroup.php:672 #: lib/Controller/DayPart.php:615 #, php-format msgid "Deleted %s" @@ -20802,415 +21722,463 @@ msgstr "" msgid "Task with class name %s not found" msgstr "" -#: lib/Controller/Widget.php:179 +#: lib/Controller/Widget.php:181 msgid "This Playlist is not shared with you with edit permission" msgstr "" -#: lib/Controller/Widget.php:185 +#: lib/Controller/Widget.php:187 msgid "" "Sorry there is an error with this request, cannot set inherited permissions" msgstr "" -#: lib/Controller/Widget.php:191 lib/Controller/Widget.php:456 -#: lib/Controller/Widget.php:665 lib/Controller/Widget.php:823 -#: lib/Controller/Widget.php:988 lib/Controller/Widget.php:1077 -#: lib/Controller/Widget.php:1444 lib/Controller/Widget.php:1553 -#: lib/Controller/Widget.php:1635 lib/Controller/Playlist.php:1311 -#: lib/Controller/Playlist.php:1476 lib/Controller/Layout.php:741 -#: lib/Controller/Layout.php:844 lib/Controller/Region.php:229 -#: lib/Controller/Region.php:376 lib/Controller/Region.php:462 -#: lib/Controller/Region.php:527 lib/Controller/Region.php:748 -#: lib/Controller/Region.php:846 lib/Helper/XiboUploadHandler.php:455 +#: lib/Controller/Widget.php:193 lib/Controller/Widget.php:470 +#: lib/Controller/Widget.php:687 lib/Controller/Widget.php:849 +#: lib/Controller/Widget.php:1018 lib/Controller/Widget.php:1111 +#: lib/Controller/Widget.php:1553 lib/Controller/Widget.php:1666 +#: lib/Controller/Widget.php:1748 lib/Controller/Playlist.php:1314 +#: lib/Controller/Playlist.php:1479 lib/Controller/Playlist.php:2010 +#: lib/Controller/Layout.php:743 lib/Controller/Layout.php:846 +#: lib/Controller/Region.php:229 lib/Controller/Region.php:376 +#: lib/Controller/Region.php:462 lib/Controller/Region.php:527 +#: lib/Controller/Region.php:748 lib/Controller/Region.php:846 +#: lib/Helper/XiboUploadHandler.php:455 msgid "This Layout is not a Draft, please checkout." msgstr "" -#: lib/Controller/Widget.php:205 -msgid "No module enabled of that type." +#: lib/Controller/Widget.php:197 lib/Controller/Widget.php:474 +#: lib/Controller/Widget.php:691 lib/Controller/Widget.php:853 +#: lib/Controller/Widget.php:1022 lib/Controller/Widget.php:1115 +#: lib/Controller/Widget.php:1557 lib/Controller/Playlist.php:1317 +#: lib/Controller/Library.php:1175 +msgid "" +"This Playlist is dynamically managed so cannot accept manual assignments." msgstr "" #: lib/Controller/Widget.php:211 +msgid "No module enabled of that type." +msgstr "" + +#: lib/Controller/Widget.php:217 msgid "Sorry but a file based Widget must be assigned not created" msgstr "" -#: lib/Controller/Widget.php:219 +#: lib/Controller/Widget.php:225 msgid "Canvas Widgets can only be added to a Zone" msgstr "" -#: lib/Controller/Widget.php:224 +#: lib/Controller/Widget.php:230 msgid "Only one Canvas Widget allowed per Playlist" msgstr "" -#: lib/Controller/Widget.php:249 +#: lib/Controller/Widget.php:255 msgid "Please select a template" msgstr "" -#: lib/Controller/Widget.php:259 +#: lib/Controller/Widget.php:265 msgid "Expecting a static template" msgstr "" -#: lib/Controller/Widget.php:321 lib/Controller/Widget.php:448 -#: lib/Controller/Widget.php:720 lib/Controller/Widget.php:815 -#: lib/Controller/Widget.php:884 lib/Controller/Widget.php:980 -#: lib/Controller/Widget.php:1069 lib/Controller/Widget.php:1350 -#: lib/Controller/Widget.php:1436 lib/Controller/Widget.php:1545 -#: lib/Controller/Widget.php:1627 +#: lib/Controller/Widget.php:327 lib/Controller/Widget.php:462 +#: lib/Controller/Widget.php:746 lib/Controller/Widget.php:841 +#: lib/Controller/Widget.php:914 lib/Controller/Widget.php:1010 +#: lib/Controller/Widget.php:1103 lib/Controller/Widget.php:1459 +#: lib/Controller/Widget.php:1545 lib/Controller/Widget.php:1658 +#: lib/Controller/Widget.php:1740 lib/Controller/WidgetData.php:76 +#: lib/Controller/WidgetData.php:129 lib/Controller/WidgetData.php:205 +#: lib/Controller/WidgetData.php:267 lib/Controller/WidgetData.php:345 msgid "This Widget is not shared with you with edit permission" msgstr "" -#: lib/Controller/Widget.php:475 +#: lib/Controller/Widget.php:497 msgid "Duration needs to be a positive value" msgstr "" -#: lib/Controller/Widget.php:480 +#: lib/Controller/Widget.php:502 msgid "Duration must be lower than 526000" msgstr "" -#: lib/Controller/Widget.php:491 +#: lib/Controller/Widget.php:513 msgid "This widget uses elements and can not be changed to a static template" msgstr "" -#: lib/Controller/Widget.php:502 +#: lib/Controller/Widget.php:524 msgid "You can only change to another template of the same type" msgstr "" -#: lib/Controller/Widget.php:555 +#: lib/Controller/Widget.php:577 #, php-format msgid "Your library reference %d does not exist." msgstr "" -#: lib/Controller/Widget.php:597 lib/Controller/Widget.php:655 +#: lib/Controller/Widget.php:619 lib/Controller/Widget.php:677 msgid "This Widget is not shared with you with delete permission" msgstr "" -#: lib/Controller/Widget.php:694 +#: lib/Controller/Widget.php:720 msgid "Deleted Widget" msgstr "" -#: lib/Controller/Widget.php:733 lib/Controller/Region.php:690 +#: lib/Controller/Widget.php:759 lib/Controller/Region.php:690 +#: lib/Connector/OpenWeatherMapConnector.php:692 msgid "North" msgstr "" -#: lib/Controller/Widget.php:734 lib/Controller/Region.php:691 +#: lib/Controller/Widget.php:760 lib/Controller/Region.php:691 msgid "North East" msgstr "" -#: lib/Controller/Widget.php:735 lib/Controller/Region.php:692 +#: lib/Controller/Widget.php:761 lib/Controller/Region.php:692 +#: lib/Connector/OpenWeatherMapConnector.php:696 msgid "East" msgstr "" -#: lib/Controller/Widget.php:736 lib/Controller/Region.php:693 +#: lib/Controller/Widget.php:762 lib/Controller/Region.php:693 msgid "South East" msgstr "" -#: lib/Controller/Widget.php:737 lib/Controller/Region.php:694 +#: lib/Controller/Widget.php:763 lib/Controller/Region.php:694 +#: lib/Connector/OpenWeatherMapConnector.php:700 msgid "South" msgstr "" -#: lib/Controller/Widget.php:738 lib/Controller/Region.php:695 +#: lib/Controller/Widget.php:764 lib/Controller/Region.php:695 msgid "South West" msgstr "" -#: lib/Controller/Widget.php:739 lib/Controller/Region.php:696 +#: lib/Controller/Widget.php:765 lib/Controller/Region.php:696 +#: lib/Connector/OpenWeatherMapConnector.php:704 msgid "West" msgstr "" -#: lib/Controller/Widget.php:740 lib/Controller/Region.php:697 +#: lib/Controller/Widget.php:766 lib/Controller/Region.php:697 msgid "North West" msgstr "" -#: lib/Controller/Widget.php:853 +#: lib/Controller/Widget.php:883 msgid "Unknown transition type" msgstr "" -#: lib/Controller/Widget.php:860 +#: lib/Controller/Widget.php:890 msgid "Edited Transition" msgstr "" -#: lib/Controller/Widget.php:890 lib/Controller/Widget.php:994 +#: lib/Controller/Widget.php:920 lib/Controller/Widget.php:1028 msgid "" "Audio cannot be attached to a Sub-Playlist Widget. Please attach it to the " "Widgets inside the Playlist" msgstr "" -#: lib/Controller/Widget.php:1025 +#: lib/Controller/Widget.php:1059 msgid "Edited Audio" msgstr "" -#: lib/Controller/Widget.php:1090 +#: lib/Controller/Widget.php:1128 msgid "Removed Audio" msgstr "" -#: lib/Controller/Widget.php:1111 lib/Controller/Widget.php:1260 +#: lib/Controller/Widget.php:1149 lib/Controller/Widget.php:1368 msgid "This Region is not shared with you" msgstr "" -#: lib/Controller/Widget.php:1116 lib/Controller/Widget.php:1265 +#: lib/Controller/Widget.php:1154 lib/Controller/Widget.php:1373 msgid "This Widget is not shared with you" msgstr "" -#: lib/Controller/Widget.php:1206 +#: lib/Controller/Widget.php:1314 msgid "No data providers configured" msgstr "" -#: lib/Controller/Widget.php:1332 +#: lib/Controller/Widget.php:1441 msgid "Problem rendering widget" msgstr "" -#: lib/Controller/Widget.php:1496 +#: lib/Controller/Widget.php:1609 msgid "Edited Expiry" msgstr "" -#: lib/Controller/Widget.php:1560 +#: lib/Controller/Widget.php:1673 msgid "You can only set a target region on a Widget in the drawer." msgstr "" -#: lib/Controller/Widget.php:1584 +#: lib/Controller/Widget.php:1697 msgid "Target region set" msgstr "" -#: lib/Controller/Widget.php:1658 +#: lib/Controller/Widget.php:1771 msgid "Invalid element JSON" msgstr "" -#: lib/Controller/Widget.php:1664 +#: lib/Controller/Widget.php:1777 msgid "" "At least one element is required for this Widget. Please delete it if you no " "longer need it." msgstr "" -#: lib/Controller/Widget.php:1733 +#: lib/Controller/Widget.php:1846 msgid "Saved elements" msgstr "" -#: lib/Controller/Widget.php:1758 +#: lib/Controller/Widget.php:1871 msgid "Please supply a propertyId" msgstr "" -#: lib/Controller/Widget.php:1812 +#: lib/Controller/Widget.php:1925 msgid "Please provide a widgetId" msgstr "" -#: lib/Controller/Widget.php:1831 +#: lib/Controller/Widget.php:1944 msgid "Widget does not have a data type" msgstr "" -#: lib/Controller/Template.php:171 +#: lib/Controller/Template.php:177 msgid "Alter Template" msgstr "" -#: lib/Controller/Template.php:226 lib/Controller/DisplayGroup.php:360 -#: lib/Controller/Campaign.php:361 lib/Controller/MenuBoard.php:179 -#: lib/Controller/Playlist.php:419 lib/Controller/Library.php:675 -#: lib/Controller/Layout.php:1791 lib/Controller/Display.php:956 +#: lib/Controller/Template.php:246 lib/Controller/DisplayGroup.php:365 +#: lib/Controller/DataSet.php:291 lib/Controller/Campaign.php:361 +#: lib/Controller/MenuBoard.php:179 lib/Controller/Playlist.php:422 +#: lib/Controller/Library.php:677 lib/Controller/Layout.php:1817 +#: lib/Controller/Display.php:957 msgid "Move to Folder" msgstr "" -#: lib/Controller/Template.php:420 lib/Controller/Template.php:617 +#: lib/Controller/Template.php:467 lib/Controller/Template.php:664 msgid "You do not have permissions to view this layout" msgstr "" -#: lib/Controller/Template.php:669 +#: lib/Controller/Template.php:716 #, php-format msgid "Saved %s" msgstr "" -#: lib/Controller/DisplayGroup.php:319 lib/Controller/SyncGroup.php:176 +#: lib/Controller/DisplayGroup.php:324 lib/Controller/SyncGroup.php:176 #: lib/Controller/UserGroup.php:184 msgid "Members" msgstr "" -#: lib/Controller/DisplayGroup.php:406 lib/Controller/Display.php:1025 +#: lib/Controller/DisplayGroup.php:411 lib/Controller/Display.php:1026 msgid "Assign Files" msgstr "" -#: lib/Controller/DisplayGroup.php:413 lib/Controller/Display.php:1032 +#: lib/Controller/DisplayGroup.php:418 lib/Controller/Display.php:1033 msgid "Assign Layouts" msgstr "" -#: lib/Controller/DisplayGroup.php:1072 +#: lib/Controller/DisplayGroup.php:1077 msgid "Displays should be deleted using the Display delete operation" msgstr "" -#: lib/Controller/DisplayGroup.php:1142 lib/Controller/DisplayGroup.php:1278 -#: lib/Controller/DisplayGroup.php:1378 lib/Controller/DisplayGroup.php:1482 +#: lib/Controller/DisplayGroup.php:1147 lib/Controller/DisplayGroup.php:1283 +#: lib/Controller/DisplayGroup.php:1383 lib/Controller/DisplayGroup.php:1487 msgid "" "This is a Display specific Display Group and its assignments cannot be " "modified." msgstr "" -#: lib/Controller/DisplayGroup.php:1153 +#: lib/Controller/DisplayGroup.php:1158 msgid "Displays cannot be manually assigned to a Dynamic Group" msgstr "" -#: lib/Controller/DisplayGroup.php:1178 lib/Controller/DisplayGroup.php:1201 -#: lib/Controller/DisplayGroup.php:1303 +#: lib/Controller/DisplayGroup.php:1183 lib/Controller/DisplayGroup.php:1206 +#: lib/Controller/DisplayGroup.php:1308 msgid "Access Denied to Display" msgstr "" -#: lib/Controller/DisplayGroup.php:1224 lib/Controller/SyncGroup.php:420 +#: lib/Controller/DisplayGroup.php:1229 lib/Controller/SyncGroup.php:422 #, php-format msgid "Displays assigned to %s" msgstr "" -#: lib/Controller/DisplayGroup.php:1292 +#: lib/Controller/DisplayGroup.php:1297 msgid "Displays cannot be manually unassigned to a Dynamic Group" msgstr "" -#: lib/Controller/DisplayGroup.php:1316 +#: lib/Controller/DisplayGroup.php:1321 #, php-format msgid "Displays unassigned from %s" msgstr "" -#: lib/Controller/DisplayGroup.php:1392 +#: lib/Controller/DisplayGroup.php:1397 msgid "DisplayGroups cannot be manually assigned to a Dynamic Group" msgstr "" -#: lib/Controller/DisplayGroup.php:1403 lib/Controller/DisplayGroup.php:1416 -#: lib/Controller/Display.php:2134 lib/Controller/Display.php:2148 +#: lib/Controller/DisplayGroup.php:1408 lib/Controller/DisplayGroup.php:1421 +#: lib/Controller/Display.php:2144 lib/Controller/Display.php:2158 msgid "Access Denied to DisplayGroup" msgstr "" -#: lib/Controller/DisplayGroup.php:1428 +#: lib/Controller/DisplayGroup.php:1433 #, php-format msgid "DisplayGroups assigned to %s" msgstr "" -#: lib/Controller/DisplayGroup.php:1496 +#: lib/Controller/DisplayGroup.php:1501 msgid "DisplayGroups cannot be manually unassigned to a Dynamic Group" msgstr "" -#: lib/Controller/DisplayGroup.php:1512 +#: lib/Controller/DisplayGroup.php:1517 #, php-format msgid "DisplayGroups unassigned from %s" msgstr "" -#: lib/Controller/DisplayGroup.php:1622 lib/Controller/DisplayGroup.php:1636 +#: lib/Controller/DisplayGroup.php:1627 lib/Controller/DisplayGroup.php:1641 msgid "" "You have selected media that you no longer have permission to use. Please " "reload the form." msgstr "" -#: lib/Controller/DisplayGroup.php:1648 +#: lib/Controller/DisplayGroup.php:1653 #, php-format msgid "Files assigned to %s" msgstr "" -#: lib/Controller/DisplayGroup.php:1720 +#: lib/Controller/DisplayGroup.php:1725 #, php-format msgid "Files unassigned from %s" msgstr "" -#: lib/Controller/DisplayGroup.php:1829 lib/Controller/DisplayGroup.php:1841 +#: lib/Controller/DisplayGroup.php:1834 lib/Controller/DisplayGroup.php:1846 msgid "" "You have selected a layout that you no longer have permission to use. Please " "reload the form." msgstr "" -#: lib/Controller/DisplayGroup.php:1853 +#: lib/Controller/DisplayGroup.php:1858 #, php-format msgid "Layouts assigned to %s" msgstr "" -#: lib/Controller/DisplayGroup.php:1926 +#: lib/Controller/DisplayGroup.php:1931 #, php-format msgid "Layouts unassigned from %s" msgstr "" -#: lib/Controller/DisplayGroup.php:2002 lib/Controller/DisplayGroup.php:2051 -#: lib/Controller/DisplayGroup.php:2206 lib/Controller/DisplayGroup.php:2256 -#: lib/Controller/DisplayGroup.php:2399 lib/Controller/DisplayGroup.php:2501 -#: lib/Controller/DisplayGroup.php:2867 +#: lib/Controller/DisplayGroup.php:2007 lib/Controller/DisplayGroup.php:2056 +#: lib/Controller/DisplayGroup.php:2211 lib/Controller/DisplayGroup.php:2261 +#: lib/Controller/DisplayGroup.php:2404 lib/Controller/DisplayGroup.php:2506 +#: lib/Controller/DisplayGroup.php:2872 #, php-format msgid "Command Sent to %s" msgstr "" -#: lib/Controller/DisplayGroup.php:2138 lib/Controller/DisplayGroup.php:2336 +#: lib/Controller/DisplayGroup.php:2143 lib/Controller/DisplayGroup.php:2341 msgid "Please provide a Layout ID or Campaign ID" msgstr "" -#: lib/Controller/DisplayGroup.php:2148 lib/Controller/DisplayGroup.php:2346 +#: lib/Controller/DisplayGroup.php:2153 lib/Controller/DisplayGroup.php:2351 msgid "Please provide Layout specific campaign ID" msgstr "" -#: lib/Controller/DisplayGroup.php:2154 lib/Controller/DisplayGroup.php:2352 +#: lib/Controller/DisplayGroup.php:2159 lib/Controller/DisplayGroup.php:2357 msgid "Cannot find layout by campaignId" msgstr "" -#: lib/Controller/DisplayGroup.php:2159 lib/Controller/DisplayGroup.php:2357 +#: lib/Controller/DisplayGroup.php:2164 lib/Controller/DisplayGroup.php:2362 msgid "Please provide Layout id or Campaign id" msgstr "" -#: lib/Controller/DisplayGroup.php:2524 lib/Controller/DisplayProfile.php:546 -#: lib/Controller/DisplayProfile.php:576 lib/Controller/DisplayProfile.php:635 +#: lib/Controller/DisplayGroup.php:2529 lib/Controller/DisplayProfile.php:556 +#: lib/Controller/DisplayProfile.php:586 lib/Controller/DisplayProfile.php:645 msgid "You do not have permission to delete this profile" msgstr "" -#: lib/Controller/DisplayGroup.php:2776 +#: lib/Controller/DisplayGroup.php:2781 #, php-format msgid "Display %s moved to Folder %s" msgstr "" -#: lib/Controller/DisplayGroup.php:2856 +#: lib/Controller/DisplayGroup.php:2861 msgid "Please provide a Trigger Code" msgstr "" -#: lib/Controller/DataSet.php:221 +#: lib/Controller/DisplayGroup.php:2937 +msgid "No criteria found." +msgstr "" + +#: lib/Controller/DisplayGroup.php:2956 +msgid "" +"Invalid criteria format. Metric, value, and ttl must all be present and not " +"empty." +msgstr "" + +#: lib/Controller/DisplayGroup.php:2977 +msgid "Schedule criteria updates sent to players." +msgstr "" + +#: lib/Controller/DataSet.php:234 msgid "View RSS" msgstr "" -#: lib/Controller/DataSet.php:232 +#: lib/Controller/DataSet.php:244 +msgid "View Data Connector" +msgstr "" + +#: lib/Controller/DataSet.php:256 msgid "Import CSV" msgstr "" -#: lib/Controller/DataSet.php:257 +#: lib/Controller/DataSet.php:302 msgid "Export (CSV)" msgstr "" -#: lib/Controller/DataSet.php:940 lib/Entity/DataSet.php:932 +#: lib/Controller/DataSet.php:1086 +msgid "This DataSet does not have a data connector" +msgstr "" + +#: lib/Controller/DataSet.php:1119 lib/Entity/DataSet.php:1032 msgid "Lookup Tables cannot be deleted" msgstr "" -#: lib/Controller/DataSet.php:994 +#: lib/Controller/DataSet.php:1173 msgid "There is data assigned to this data set, cannot delete." msgstr "" -#: lib/Controller/DataSet.php:1126 +#: lib/Controller/DataSet.php:1282 +#, php-format +msgid "DataSet %s moved to Folder %s" +msgstr "" + +#: lib/Controller/DataSet.php:1406 #, php-format msgid "Copied %s as %s" msgstr "" -#: lib/Controller/DataSet.php:1284 +#: lib/Controller/DataSet.php:1564 msgid "Missing JSON Body" msgstr "" -#: lib/Controller/DataSet.php:1291 +#: lib/Controller/DataSet.php:1571 msgid "Malformed JSON body, rows and uniqueKeys are required" msgstr "" -#: lib/Controller/DataSet.php:1331 +#: lib/Controller/DataSet.php:1611 #, php-format msgid "Incorrect date provided %s, expected date format Y-m-d H:i:s " msgstr "" -#: lib/Controller/DataSet.php:1380 +#: lib/Controller/DataSet.php:1665 msgid "No data found in request body" msgstr "" -#: lib/Controller/DataSet.php:1384 +#: lib/Controller/DataSet.php:1669 #, php-format msgid "Imported JSON into %s" msgstr "" -#: lib/Controller/DataSet.php:1448 +#: lib/Controller/DataSet.php:1733 #, php-format msgid "Run Test-Request for %s" msgstr "" -#: lib/Controller/DataSet.php:1563 +#: lib/Controller/DataSet.php:1848 #, php-format msgid "Cache cleared for %s" msgstr "" +#: lib/Controller/DataSet.php:1945 +msgid "URL not found in data connector script" +msgstr "" + #: lib/Controller/ScheduleReport.php:154 msgid "Unknown or removed report." msgstr "" @@ -21324,21 +22292,25 @@ msgid "" "You do not have permissions to delete saved reports of this report schedule" msgstr "" -#: lib/Controller/Notification.php:230 +#: lib/Controller/Notification.php:252 +msgid "Mark as read?" +msgstr "" + +#: lib/Controller/Notification.php:300 msgid "Delete?" msgstr "" -#: lib/Controller/Notification.php:565 +#: lib/Controller/Notification.php:630 msgid "Problem moving uploaded file into the Attachment Folder" msgstr "" -#: lib/Controller/Stats.php:413 lib/Report/ProofOfPlay.php:476 +#: lib/Controller/Stats.php:413 lib/Report/ProofOfPlay.php:488 msgid "Deleted from Layout" msgstr "" #: lib/Controller/Stats.php:415 lib/Controller/Stats.php:416 #: lib/Controller/Stats.php:808 lib/Controller/Stats.php:810 -#: lib/Report/ProofOfPlay.php:483 lib/Report/ProofOfPlay.php:485 +#: lib/Report/ProofOfPlay.php:495 lib/Report/ProofOfPlay.php:497 msgid "Not Found" msgstr "" @@ -21454,7 +22426,7 @@ msgid "Please provide LayoutId" msgstr "" #: lib/Controller/Action.php:348 lib/Controller/Action.php:498 -#: lib/Controller/Action.php:562 lib/Controller/Layout.php:2959 +#: lib/Controller/Action.php:562 lib/Controller/Layout.php:2992 msgid "Layout is not checked out" msgstr "" @@ -21478,112 +22450,116 @@ msgstr "" msgid "Provided source is invalid. " msgstr "" -#: lib/Controller/Module.php:264 +#: lib/Controller/Module.php:261 +msgid "Preview is disabled" +msgstr "" + +#: lib/Controller/Module.php:269 #, php-format msgid "Configured %s" msgstr "" -#: lib/Controller/Module.php:313 +#: lib/Controller/Module.php:318 msgid "Cleared the Cache" msgstr "" -#: lib/Controller/Module.php:348 +#: lib/Controller/Module.php:360 msgid "Please provide a datatype" msgstr "" -#: lib/Controller/Module.php:429 +#: lib/Controller/Module.php:448 msgid "Please provide an assetId" msgstr "" -#: lib/Controller/Fault.php:109 lib/Entity/Layout.php:1918 +#: lib/Controller/Fault.php:109 lib/Entity/Layout.php:1923 msgid "Can't create ZIP. Error Code: " msgstr "" -#: lib/Controller/Fault.php:121 +#: lib/Controller/Fault.php:127 msgid "Please select at least one option" msgstr "" -#: lib/Controller/Fault.php:211 +#: lib/Controller/Fault.php:245 msgid "Switched to Debug Mode" msgstr "" -#: lib/Controller/Fault.php:231 +#: lib/Controller/Fault.php:265 msgid "Switched to Normal Mode" msgstr "" -#: lib/Controller/Folder.php:187 +#: lib/Controller/Folder.php:195 msgid "Private Folder" msgstr "" -#: lib/Controller/Folder.php:310 +#: lib/Controller/Folder.php:318 msgid "Cannot edit root Folder" msgstr "" -#: lib/Controller/Folder.php:369 +#: lib/Controller/Folder.php:377 msgid "Cannot remove root Folder" msgstr "" -#: lib/Controller/Folder.php:378 +#: lib/Controller/Folder.php:386 msgid "Cannot remove Folder set as home Folder for a user" msgstr "" -#: lib/Controller/Folder.php:380 +#: lib/Controller/Folder.php:388 msgid "Change home Folder for Users using this Folder before deleting" msgstr "" -#: lib/Controller/Folder.php:386 +#: lib/Controller/Folder.php:394 msgid "Cannot remove Folder set as default Folder for new Displays" msgstr "" -#: lib/Controller/Folder.php:388 +#: lib/Controller/Folder.php:396 msgid "Change Default Folder for new Displays before deleting" msgstr "" -#: lib/Controller/Folder.php:399 +#: lib/Controller/Folder.php:407 msgid "Reassign objects from this Folder before deleting." msgstr "" -#: lib/Controller/Folder.php:496 +#: lib/Controller/Folder.php:504 msgid "Please select different folder, cannot move Folder to the same Folder" msgstr "" -#: lib/Controller/Folder.php:502 +#: lib/Controller/Folder.php:510 msgid "" "Please select different folder, cannot move Folder inside of one of its sub-" "folders" msgstr "" -#: lib/Controller/Folder.php:507 +#: lib/Controller/Folder.php:515 msgid "" "This Folder is already a sub-folder of the selected Folder, if you wish to " "move its content to the parent Folder, please check the merge checkbox." msgstr "" -#: lib/Controller/DataSetData.php:156 +#: lib/Controller/DataSetData.php:164 msgid "Error getting DataSet data, failed with following message: " msgstr "" -#: lib/Controller/DataSetData.php:283 +#: lib/Controller/DataSetData.php:291 msgid "Cannot add new rows to remote dataSet" msgstr "" -#: lib/Controller/DataSetData.php:297 +#: lib/Controller/DataSetData.php:305 msgid "Added Row" msgstr "" -#: lib/Controller/DataSetData.php:470 +#: lib/Controller/DataSetData.php:478 msgid "Cannot edit data of remote columns" msgstr "" -#: lib/Controller/DataSetData.php:477 +#: lib/Controller/DataSetData.php:485 msgid "Edited Row" msgstr "" -#: lib/Controller/DataSetData.php:567 +#: lib/Controller/DataSetData.php:575 msgid "row not found" msgstr "" -#: lib/Controller/DataSetData.php:579 +#: lib/Controller/DataSetData.php:587 msgid "Deleted Row" msgstr "" @@ -21591,233 +22567,245 @@ msgstr "" msgid "Widget cache" msgstr "" -#: lib/Controller/Playlist.php:355 +#: lib/Controller/Playlist.php:358 msgid "This Playlist has enable stat collection set to ON" msgstr "" -#: lib/Controller/Playlist.php:362 +#: lib/Controller/Playlist.php:365 msgid "This Playlist has enable stat collection set to OFF" msgstr "" -#: lib/Controller/Playlist.php:369 +#: lib/Controller/Playlist.php:372 msgid "This Playlist has enable stat collection set to INHERIT" msgstr "" -#: lib/Controller/Playlist.php:430 lib/Controller/Playlist.php:441 -#: lib/Controller/Library.php:746 lib/Controller/Library.php:752 -#: lib/Controller/Layout.php:1852 lib/Controller/Layout.php:1858 +#: lib/Controller/Playlist.php:433 lib/Controller/Playlist.php:444 +#: lib/Controller/Library.php:748 lib/Controller/Library.php:754 +#: lib/Controller/Layout.php:1878 lib/Controller/Layout.php:1884 msgid "Enable stats collection?" msgstr "" -#: lib/Controller/Playlist.php:522 lib/Controller/Library.php:765 +#: lib/Controller/Playlist.php:525 lib/Controller/Library.php:767 msgid "Usage Report" msgstr "" -#: lib/Controller/Playlist.php:671 +#: lib/Controller/Playlist.php:674 msgid "Please enter playlist name" msgstr "" -#: lib/Controller/Playlist.php:713 lib/Controller/Playlist.php:961 +#: lib/Controller/Playlist.php:716 lib/Controller/Playlist.php:964 msgid "" "No filters have been set for this dynamic Playlist, please click the Filters " "tab to define" msgstr "" -#: lib/Controller/Playlist.php:1201 lib/Controller/Library.php:2274 -#: lib/Controller/Layout.php:2182 +#: lib/Controller/Playlist.php:1204 lib/Controller/Library.php:2304 +#: lib/Controller/Layout.php:2208 lib/Controller/Developer.php:632 #, php-format msgid "Copied as %s" msgstr "" -#: lib/Controller/Playlist.php:1314 -msgid "" -"This Playlist is dynamically managed so cannot accept manual assignments." -msgstr "" - -#: lib/Controller/Playlist.php:1320 +#: lib/Controller/Playlist.php:1323 msgid "Please provide Media to Assign" msgstr "" -#: lib/Controller/Playlist.php:1336 +#: lib/Controller/Playlist.php:1339 msgid "You do not have permissions to use this media" msgstr "" -#: lib/Controller/Playlist.php:1341 +#: lib/Controller/Playlist.php:1344 #, php-format msgid "You cannot assign file type %s to a playlist" msgstr "" -#: lib/Controller/Playlist.php:1401 +#: lib/Controller/Playlist.php:1404 msgid "Media Assigned" msgstr "" -#: lib/Controller/Playlist.php:1486 +#: lib/Controller/Playlist.php:1489 msgid "Cannot Save empty region playlist. Please add widgets" msgstr "" -#: lib/Controller/Playlist.php:1505 +#: lib/Controller/Playlist.php:1508 msgid "Order Changed" msgstr "" -#: lib/Controller/Playlist.php:1643 lib/Controller/Playlist.php:1720 +#: lib/Controller/Playlist.php:1646 lib/Controller/Playlist.php:1724 msgid "Specified Playlist item is not in use." msgstr "" -#: lib/Controller/Playlist.php:1713 lib/Controller/Library.php:2133 -#: lib/Controller/Layout.php:1703 +#: lib/Controller/Playlist.php:1717 lib/Controller/Library.php:2163 +#: lib/Controller/Layout.php:1728 msgid "Preview Layout" msgstr "" -#: lib/Controller/Playlist.php:1788 +#: lib/Controller/Playlist.php:1792 #, php-format msgid "For Playlist %s Enable Stats Collection is set to %s" msgstr "" -#: lib/Controller/Playlist.php:1921 +#: lib/Controller/Playlist.php:1925 #, php-format msgid "Playlist %s moved to Folder %s" msgstr "" +#: lib/Controller/Playlist.php:1988 +msgid "Not a Region Playlist" +msgstr "" + +#: lib/Controller/Playlist.php:1996 +msgid "Not a Playlist" +msgstr "" + +#: lib/Controller/Playlist.php:2021 lib/Controller/Layout.php:381 +#, php-format +msgid "Untitled %s" +msgstr "" + +#: lib/Controller/Playlist.php:2085 +msgid "Conversion Successful" +msgstr "" + #: lib/Controller/Transition.php:120 lib/Controller/Transition.php:147 msgid "Transition Config Locked" msgstr "" -#: lib/Controller/Library.php:364 +#: lib/Controller/Library.php:366 #, php-format msgid "For Media %s Enable Stats Collection is set to %s" msgstr "" -#: lib/Controller/Library.php:577 +#: lib/Controller/Library.php:579 #, php-format msgid "Expires %s" msgstr "" -#: lib/Controller/Library.php:578 +#: lib/Controller/Library.php:580 msgid "Expired " msgstr "" -#: lib/Controller/Library.php:601 +#: lib/Controller/Library.php:603 msgid "" "The uploaded image is too large and cannot be processed, please use another " "image." msgstr "" -#: lib/Controller/Library.php:608 +#: lib/Controller/Library.php:610 msgid "This image will be resized according to set thresholds and limits." msgstr "" -#: lib/Controller/Library.php:616 +#: lib/Controller/Library.php:618 msgid "This Media has enable stat collection set to ON" msgstr "" -#: lib/Controller/Library.php:623 +#: lib/Controller/Library.php:625 msgid "This Media has enable stat collection set to OFF" msgstr "" -#: lib/Controller/Library.php:630 +#: lib/Controller/Library.php:632 msgid "This Media has enable stat collection set to INHERIT" msgstr "" -#: lib/Controller/Library.php:734 lib/Controller/Font.php:155 +#: lib/Controller/Library.php:736 lib/Controller/Font.php:155 #: lib/Controller/PlayerSoftware.php:186 msgid "Download" msgstr "" -#: lib/Controller/Library.php:1002 +#: lib/Controller/Library.php:1021 msgid "This library item is in use." msgstr "" -#: lib/Controller/Library.php:1174 lib/Controller/Library.php:1386 -#: lib/Controller/Library.php:2463 +#: lib/Controller/Library.php:1201 lib/Controller/Library.php:1413 +#: lib/Controller/Library.php:2493 msgid "Cannot set Expiry date in the past" msgstr "" -#: lib/Controller/Library.php:1427 lib/Controller/Library.php:1492 +#: lib/Controller/Library.php:1454 lib/Controller/Library.php:1519 #: lib/Controller/Maintenance.php:97 msgid "Sorry this function is disabled." msgstr "" -#: lib/Controller/Library.php:1524 lib/Controller/Maintenance.php:269 +#: lib/Controller/Library.php:1551 lib/Controller/Maintenance.php:269 msgid "Library Tidy Complete" msgstr "" -#: lib/Controller/Library.php:1607 +#: lib/Controller/Library.php:1634 msgid "Cannot download region specific module" msgstr "" -#: lib/Controller/Library.php:1755 +#: lib/Controller/Library.php:1784 msgid "Route is available through the API" msgstr "" -#: lib/Controller/Library.php:1824 lib/Controller/Layout.php:2247 +#: lib/Controller/Library.php:1853 lib/Controller/Layout.php:2273 msgid "No tags to assign" msgstr "" -#: lib/Controller/Library.php:1835 lib/Controller/Layout.php:2258 +#: lib/Controller/Library.php:1864 lib/Controller/Layout.php:2284 #, php-format msgid "Tagged %s" msgstr "" -#: lib/Controller/Library.php:1898 lib/Controller/Layout.php:2323 +#: lib/Controller/Library.php:1927 lib/Controller/Layout.php:2349 msgid "No tags to unassign" msgstr "" -#: lib/Controller/Library.php:1909 lib/Controller/Layout.php:2333 +#: lib/Controller/Library.php:1938 lib/Controller/Layout.php:2359 #, php-format msgid "Untagged %s" msgstr "" -#: lib/Controller/Library.php:2056 lib/Controller/Library.php:2140 +#: lib/Controller/Library.php:2085 lib/Controller/Library.php:2170 msgid "Specified Media item is not in use." msgstr "" -#: lib/Controller/Library.php:2347 lib/Middleware/Theme.php:143 +#: lib/Controller/Library.php:2377 lib/Middleware/Theme.php:143 #, php-format msgid "This form accepts files up to a maximum size of %s" msgstr "" -#: lib/Controller/Library.php:2471 +#: lib/Controller/Library.php:2501 msgid "Provided URL is invalid" msgstr "" -#: lib/Controller/Library.php:2507 +#: lib/Controller/Library.php:2537 #, php-format msgid "" "Invalid Module type or extension. Module type %s does not allow for %s " "extension" msgstr "" -#: lib/Controller/Library.php:2540 +#: lib/Controller/Library.php:2570 msgid "Download rejected for an unknown reason." msgstr "" -#: lib/Controller/Library.php:2544 +#: lib/Controller/Library.php:2574 #, php-format msgid "Download rejected due to %s" msgstr "" -#: lib/Controller/Library.php:2551 +#: lib/Controller/Library.php:2581 msgid "Media upload from URL was successful" msgstr "" -#: lib/Controller/Library.php:2596 +#: lib/Controller/Library.php:2626 msgid "Invalid image data" msgstr "" -#: lib/Controller/Library.php:2702 +#: lib/Controller/Library.php:2732 #, php-format msgid "Media %s moved to Folder %s" msgstr "" -#: lib/Controller/Library.php:2789 +#: lib/Controller/Library.php:2823 msgid "Not configured by any active connector." msgstr "" -#: lib/Controller/Library.php:2839 +#: lib/Controller/Library.php:2873 msgid "Download failed" msgstr "" -#: lib/Controller/Library.php:2848 +#: lib/Controller/Library.php:2882 msgid "Imported" msgstr "" @@ -21863,182 +22851,177 @@ msgstr "" msgid "Uninstalled %s" msgstr "" -#: lib/Controller/Layout.php:379 -#, php-format -msgid "Untitled %s" -msgstr "" - -#: lib/Controller/Layout.php:591 +#: lib/Controller/Layout.php:593 msgid "Cannot edit Layout properties on a Draft" msgstr "" -#: lib/Controller/Layout.php:603 +#: lib/Controller/Layout.php:605 msgid "" "Cannot assign a Template tag to a Layout, to create a template use the Save " "Template button instead." msgstr "" -#: lib/Controller/Layout.php:937 lib/Controller/Layout.php:1014 +#: lib/Controller/Layout.php:960 lib/Controller/Layout.php:1037 msgid "You do not have permissions to delete this layout" msgstr "" -#: lib/Controller/Layout.php:966 lib/Controller/Layout.php:1068 -#: lib/Controller/Layout.php:1116 lib/Controller/Layout.php:1165 -#: lib/Controller/Layout.php:1234 lib/Controller/Layout.php:1273 -#: lib/Controller/Layout.php:2685 lib/Controller/Layout.php:2736 -#: lib/Controller/Layout.php:2775 lib/Controller/Layout.php:2844 -#: lib/Controller/Layout.php:2904 lib/Controller/Layout.php:2954 +#: lib/Controller/Layout.php:989 lib/Controller/Layout.php:1091 +#: lib/Controller/Layout.php:1139 lib/Controller/Layout.php:1188 +#: lib/Controller/Layout.php:1257 lib/Controller/Layout.php:1296 +#: lib/Controller/Layout.php:2718 lib/Controller/Layout.php:2769 +#: lib/Controller/Layout.php:2808 lib/Controller/Layout.php:2877 +#: lib/Controller/Layout.php:2937 lib/Controller/Layout.php:2987 msgid "You do not have permissions to edit this layout" msgstr "" -#: lib/Controller/Layout.php:1019 +#: lib/Controller/Layout.php:1042 msgid "Cannot delete Layout from its Draft, delete the parent" msgstr "" -#: lib/Controller/Layout.php:1073 lib/Controller/Layout.php:1170 -#: lib/Controller/Layout.php:1239 +#: lib/Controller/Layout.php:1096 lib/Controller/Layout.php:1193 +#: lib/Controller/Layout.php:1262 msgid "Cannot modify Layout from its Draft" msgstr "" -#: lib/Controller/Layout.php:1078 +#: lib/Controller/Layout.php:1101 msgid "This Layout is used as the global default and cannot be retired" msgstr "" -#: lib/Controller/Layout.php:1093 +#: lib/Controller/Layout.php:1116 #, php-format msgid "Retired %s" msgstr "" -#: lib/Controller/Layout.php:1185 +#: lib/Controller/Layout.php:1208 #, php-format msgid "Unretired %s" msgstr "" -#: lib/Controller/Layout.php:1250 +#: lib/Controller/Layout.php:1273 #, php-format msgid "For Layout %s Enable Stats Collection is set to %s" msgstr "" -#: lib/Controller/Layout.php:1488 lib/Controller/Layout.php:1489 +#: lib/Controller/Layout.php:1511 lib/Controller/Layout.php:1512 msgid "Invalid Module" msgstr "" -#: lib/Controller/Layout.php:1630 lib/Controller/Layout.php:2385 +#: lib/Controller/Layout.php:1654 lib/Controller/Layout.php:2411 msgid "This Layout is ready to play" msgstr "" -#: lib/Controller/Layout.php:1631 lib/Controller/Layout.php:2389 +#: lib/Controller/Layout.php:1655 lib/Controller/Layout.php:2415 msgid "There are items on this Layout that can only be assessed by the Display" msgstr "" -#: lib/Controller/Layout.php:1632 lib/Controller/Layout.php:2393 +#: lib/Controller/Layout.php:1656 lib/Controller/Layout.php:2419 msgid "This Layout has not been built yet" msgstr "" -#: lib/Controller/Layout.php:1633 lib/Controller/Layout.php:2397 +#: lib/Controller/Layout.php:1657 lib/Controller/Layout.php:2423 msgid "This Layout is invalid and should not be scheduled" msgstr "" -#: lib/Controller/Layout.php:1637 +#: lib/Controller/Layout.php:1661 msgid "This Layout has enable stat collection set to ON" msgstr "" -#: lib/Controller/Layout.php:1638 +#: lib/Controller/Layout.php:1662 msgid "This Layout has enable stat collection set to OFF" msgstr "" -#: lib/Controller/Layout.php:1713 +#: lib/Controller/Layout.php:1739 msgid "Preview Draft Layout" msgstr "" -#: lib/Controller/Layout.php:1734 +#: lib/Controller/Layout.php:1760 msgid "Assign to Campaign" msgstr "" -#: lib/Controller/Layout.php:1745 +#: lib/Controller/Layout.php:1771 msgid "Jump to Playlists included on this Layout" msgstr "" -#: lib/Controller/Layout.php:1754 +#: lib/Controller/Layout.php:1780 msgid "Jump to Campaigns containing this Layout" msgstr "" -#: lib/Controller/Layout.php:1763 +#: lib/Controller/Layout.php:1789 msgid "Jump to Media included on this Layout" msgstr "" -#: lib/Controller/Layout.php:1825 +#: lib/Controller/Layout.php:1851 msgid "Unretire" msgstr "" -#: lib/Controller/Layout.php:2096 +#: lib/Controller/Layout.php:2122 msgid "Cannot copy a Draft Layout" msgstr "" -#: lib/Controller/Layout.php:2242 lib/Controller/Layout.php:2318 +#: lib/Controller/Layout.php:2268 lib/Controller/Layout.php:2344 msgid "Cannot manage tags on a Draft Layout" msgstr "" -#: lib/Controller/Layout.php:2447 lib/Controller/Layout.php:2485 +#: lib/Controller/Layout.php:2473 lib/Controller/Layout.php:2511 msgid "Cannot export Draft Layout" msgstr "" -#: lib/Controller/Layout.php:2614 +#: lib/Controller/Layout.php:2647 msgid "Layout background must be an image" msgstr "" -#: lib/Controller/Layout.php:2741 +#: lib/Controller/Layout.php:2774 msgid "Layout is already checked out" msgstr "" -#: lib/Controller/Layout.php:2750 +#: lib/Controller/Layout.php:2783 #, php-format msgid "Checked out %s" msgstr "" -#: lib/Controller/Layout.php:2866 +#: lib/Controller/Layout.php:2899 #, php-format msgid "Published %s" msgstr "" -#: lib/Controller/Layout.php:2873 +#: lib/Controller/Layout.php:2906 #, php-format msgid "Layout will be published on %s" msgstr "" -#: lib/Controller/Layout.php:2971 +#: lib/Controller/Layout.php:3004 #, php-format msgid "Discarded %s" msgstr "" -#: lib/Controller/Layout.php:3022 +#: lib/Controller/Layout.php:3055 msgid "" "This function is available only to User who originally locked this Layout." msgstr "" -#: lib/Controller/Layout.php:3111 lib/Entity/Layout.php:2257 +#: lib/Controller/Layout.php:3144 lib/Entity/Layout.php:2277 msgid "Empty Region" msgstr "" -#: lib/Controller/Layout.php:3215 +#: lib/Controller/Layout.php:3248 msgid "Incorrect image data" msgstr "" -#: lib/Controller/Layout.php:3240 +#: lib/Controller/Layout.php:3273 msgid "Thumbnail not found for Layout" msgstr "" -#: lib/Controller/Layout.php:3332 +#: lib/Controller/Layout.php:3365 #, php-format msgid "Please select %s" msgstr "" -#: lib/Controller/Layout.php:3350 +#: lib/Controller/Layout.php:3383 #, php-format msgid "Fetched %s" msgstr "" -#: lib/Controller/Layout.php:3473 +#: lib/Controller/Layout.php:3506 #, php-format msgid "Created %s" msgstr "" @@ -22051,35 +23034,35 @@ msgstr "" msgid "Added Menu Board Category" msgstr "" -#: lib/Controller/DisplayProfileConfigFields.php:716 +#: lib/Controller/DisplayProfileConfigFields.php:784 msgid "" "On/Off Timers: Please check the days selected and remove the duplicates or " "empty" msgstr "" -#: lib/Controller/DisplayProfileConfigFields.php:725 +#: lib/Controller/DisplayProfileConfigFields.php:793 msgid "" "On/Off Timers: Please enter a on and off date for any row with a day " "selected, or remove that row" msgstr "" -#: lib/Controller/DisplayProfileConfigFields.php:769 +#: lib/Controller/DisplayProfileConfigFields.php:837 msgid "" "Picture: Please check the settings selected and remove the duplicates or " "empty" msgstr "" -#: lib/Controller/CypressTest.php:160 lib/Controller/Schedule.php:1149 -#: lib/Controller/Schedule.php:1782 +#: lib/Controller/CypressTest.php:160 lib/Controller/Schedule.php:1095 +#: lib/Controller/Schedule.php:1777 msgid "Direct scheduling of an Ad Campaign is not allowed" msgstr "" -#: lib/Controller/CypressTest.php:171 lib/Controller/Schedule.php:1160 -#: lib/Controller/Schedule.php:1811 lib/Entity/Schedule.php:622 +#: lib/Controller/CypressTest.php:171 lib/Controller/Schedule.php:1106 +#: lib/Controller/Schedule.php:1806 lib/Entity/Schedule.php:690 msgid "Share of Voice must be a whole number between 0 and 3600" msgstr "" -#: lib/Controller/CypressTest.php:197 lib/Controller/Schedule.php:1334 +#: lib/Controller/CypressTest.php:197 lib/Controller/Schedule.php:1307 msgid "Added Event" msgstr "" @@ -22088,78 +23071,78 @@ msgid "Added campaign" msgstr "" #: lib/Controller/Login.php:119 lib/Controller/Login.php:122 -#: lib/Controller/Login.php:159 +#: lib/Controller/Login.php:160 msgid "This link has expired." msgstr "" -#: lib/Controller/Login.php:210 +#: lib/Controller/Login.php:211 msgid "" "Sorry this account does not exist or does not have permission to access the " "web portal." msgstr "" -#: lib/Controller/Login.php:227 lib/Entity/User.php:595 +#: lib/Controller/Login.php:228 lib/Entity/User.php:639 #: lib/Factory/UserFactory.php:97 lib/Factory/UserFactory.php:131 #: lib/Factory/UserFactory.php:147 msgid "User not found" msgstr "" -#: lib/Controller/Login.php:234 +#: lib/Controller/Login.php:235 msgid "Username or Password incorrect" msgstr "" -#: lib/Controller/Login.php:266 +#: lib/Controller/Login.php:267 msgid "This feature has been disabled by your administrator" msgstr "" -#: lib/Controller/Login.php:283 lib/Controller/Login.php:479 +#: lib/Controller/Login.php:284 lib/Controller/Login.php:480 msgid "No email" msgstr "" -#: lib/Controller/Login.php:320 +#: lib/Controller/Login.php:321 msgid "Password Reset" msgstr "" -#: lib/Controller/Login.php:325 +#: lib/Controller/Login.php:326 msgid "" "You are receiving this email because a password reminder was requested for " "your account. If you did not make this request, please report this email to " "your administrator immediately." msgstr "" -#: lib/Controller/Login.php:325 +#: lib/Controller/Login.php:326 msgid "Reset Password" msgstr "" -#: lib/Controller/Login.php:332 lib/Controller/Login.php:343 +#: lib/Controller/Login.php:333 lib/Controller/Login.php:344 msgid "A reminder email will been sent to this user if they exist" msgstr "" -#: lib/Controller/Login.php:468 +#: lib/Controller/Login.php:469 msgid "Session has expired, please log in again" msgstr "" -#: lib/Controller/Login.php:493 +#: lib/Controller/Login.php:494 msgid "Sending email address in CMS Settings is not configured" msgstr "" -#: lib/Controller/Login.php:535 +#: lib/Controller/Login.php:536 msgid "" "You are receiving this email because two factor email authorisation is " "enabled in your CMS user account. If you did not make this request, please " "report this email to your administrator immediately." msgstr "" -#: lib/Controller/Login.php:538 +#: lib/Controller/Login.php:539 msgid "" "Unable to send two factor code to email address associated with this user" msgstr "" -#: lib/Controller/Login.php:540 +#: lib/Controller/Login.php:541 msgid "Two factor code email has been sent to your email address" msgstr "" -#: lib/Controller/Login.php:625 +#: lib/Controller/Login.php:626 msgid "Authentication code incorrect" msgstr "" @@ -22174,178 +23157,178 @@ msgstr "" msgid "Unable to write to the library" msgstr "" -#: lib/Controller/DisplayProfile.php:344 lib/Controller/DisplayProfile.php:444 -#: lib/Controller/DisplayProfile.php:500 +#: lib/Controller/DisplayProfile.php:346 lib/Controller/DisplayProfile.php:453 +#: lib/Controller/DisplayProfile.php:510 msgid "You do not have permission to edit this profile" msgstr "" -#: lib/Controller/User.php:303 +#: lib/Controller/User.php:305 msgid "Google Authenticator" msgstr "" -#: lib/Controller/User.php:321 +#: lib/Controller/User.php:323 msgid "Unknown homepage, please edit to update." msgstr "" -#: lib/Controller/User.php:357 +#: lib/Controller/User.php:359 msgid "Set Home Folder" msgstr "" -#: lib/Controller/User.php:390 lib/Controller/UserGroup.php:193 +#: lib/Controller/User.php:392 lib/Controller/UserGroup.php:193 msgid "Features" msgstr "" -#: lib/Controller/User.php:391 lib/Controller/UserGroup.php:194 +#: lib/Controller/User.php:393 lib/Controller/UserGroup.php:194 msgid "Turn Features on/off for this User" msgstr "" -#: lib/Controller/User.php:563 lib/Controller/User.php:1040 -#: lib/Controller/User.php:1118 lib/Controller/User.php:2461 +#: lib/Controller/User.php:565 lib/Controller/User.php:1057 +#: lib/Controller/User.php:1135 lib/Controller/User.php:2478 msgid "Only super and group admins can create users" msgstr "" -#: lib/Controller/User.php:612 +#: lib/Controller/User.php:614 msgid "Invalid user group selected" msgstr "" -#: lib/Controller/User.php:626 lib/Controller/User.php:867 +#: lib/Controller/User.php:628 lib/Controller/User.php:882 msgid "User does not have the enabled Feature for this Dashboard" msgstr "" -#: lib/Controller/User.php:883 lib/Controller/User.php:1277 -#: lib/Controller/User.php:1525 +#: lib/Controller/User.php:900 lib/Controller/User.php:1294 +#: lib/Controller/User.php:1542 msgid "Passwords do not match" msgstr "" -#: lib/Controller/User.php:970 +#: lib/Controller/User.php:987 msgid "This User is set as System User and cannot be deleted." msgstr "" -#: lib/Controller/User.php:978 +#: lib/Controller/User.php:995 msgid "Cannot delete your own User from the CMS." msgstr "" -#: lib/Controller/User.php:982 +#: lib/Controller/User.php:999 msgid "Group Admin cannot remove Super Admins or other Group Admins." msgstr "" -#: lib/Controller/User.php:986 +#: lib/Controller/User.php:1003 msgid "" "Cannot delete all items owned by a Super Admin, please reassign to a " "different User." msgstr "" -#: lib/Controller/User.php:1011 +#: lib/Controller/User.php:1028 #, php-format msgid "This user cannot be deleted as it has %d child items" msgstr "" -#: lib/Controller/User.php:1094 +#: lib/Controller/User.php:1111 msgid "Homepage not found" msgstr "" -#: lib/Controller/User.php:1271 +#: lib/Controller/User.php:1288 msgid "Please enter your password" msgstr "" -#: lib/Controller/User.php:1289 +#: lib/Controller/User.php:1306 msgid "Please provide valid email address" msgstr "" -#: lib/Controller/User.php:1294 +#: lib/Controller/User.php:1311 msgid "" "Please provide valid sending email address in CMS Settings on Network tab" msgstr "" -#: lib/Controller/User.php:1312 +#: lib/Controller/User.php:1329 msgid "Access Code is empty" msgstr "" -#: lib/Controller/User.php:1319 +#: lib/Controller/User.php:1336 msgid "Access Code is incorrect" msgstr "" -#: lib/Controller/User.php:1344 +#: lib/Controller/User.php:1361 msgid "User Profile Saved" msgstr "" -#: lib/Controller/User.php:1522 +#: lib/Controller/User.php:1539 msgid "Please enter the password" msgstr "" -#: lib/Controller/User.php:1530 +#: lib/Controller/User.php:1547 msgid "Please choose a new password" msgstr "" -#: lib/Controller/User.php:1545 +#: lib/Controller/User.php:1562 msgid "Password Changed" msgstr "" -#: lib/Controller/User.php:1603 lib/Controller/User.php:1745 +#: lib/Controller/User.php:1620 lib/Controller/User.php:1762 msgid "You do not have permission to edit these permissions." msgstr "" -#: lib/Controller/User.php:1663 lib/Controller/User.php:1792 -#: lib/Controller/User.php:2028 lib/Controller/Display.php:2023 -#: lib/Controller/Display.php:2058 lib/Controller/Display.php:2063 +#: lib/Controller/User.php:1680 lib/Controller/User.php:1809 +#: lib/Controller/User.php:2045 lib/Controller/Display.php:2033 +#: lib/Controller/Display.php:2068 lib/Controller/Display.php:2073 msgid "The array of ids is empty!" msgstr "" -#: lib/Controller/User.php:1682 +#: lib/Controller/User.php:1699 msgid "You do not have permission to edit all the entities permissions." msgstr "" -#: lib/Controller/User.php:1871 +#: lib/Controller/User.php:1888 msgid "This object is not shared with you with edit permission" msgstr "" -#: lib/Controller/User.php:1875 +#: lib/Controller/User.php:1892 msgid "You cannot share the root folder" msgstr "" -#: lib/Controller/User.php:1880 +#: lib/Controller/User.php:1897 msgid "You cannot share the Canvas on a Layout, share the layout instead." msgstr "" -#: lib/Controller/User.php:1911 +#: lib/Controller/User.php:1928 msgid "Cannot change owner on this Object" msgstr "" -#: lib/Controller/User.php:1958 lib/Controller/User.php:2039 +#: lib/Controller/User.php:1975 lib/Controller/User.php:2056 msgid "Share option Updated" msgstr "" -#: lib/Controller/User.php:2054 +#: lib/Controller/User.php:2071 msgid "Sharing requested without an entity" msgstr "" -#: lib/Controller/User.php:2058 +#: lib/Controller/User.php:2075 msgid "Sharing form requested without an object" msgstr "" -#: lib/Controller/User.php:2222 +#: lib/Controller/User.php:2239 msgid "Updated Preference" msgstr "" -#: lib/Controller/User.php:2222 lib/Controller/User.php:2442 +#: lib/Controller/User.php:2239 lib/Controller/User.php:2459 msgid "Updated Preferences" msgstr "" -#: lib/Controller/User.php:2286 lib/Controller/User.php:2298 +#: lib/Controller/User.php:2303 lib/Controller/User.php:2315 msgid "Access Denied to UserGroup" msgstr "" -#: lib/Controller/User.php:2308 +#: lib/Controller/User.php:2325 #, php-format msgid "%s assigned to User Groups" msgstr "" -#: lib/Controller/User.php:2333 +#: lib/Controller/User.php:2350 #, php-format msgid "%s has started the welcome tutorial" msgstr "" -#: lib/Controller/User.php:2357 +#: lib/Controller/User.php:2374 #, php-format msgid "%s has seen the welcome tutorial" msgstr "" @@ -22375,6 +23358,35 @@ msgstr "" msgid "Access to %s revoked" msgstr "" +#: lib/Controller/WidgetData.php:148 +msgid "Added data for Widget" +msgstr "" + +#: lib/Controller/WidgetData.php:212 lib/Controller/WidgetData.php:274 +#: lib/Controller/WidgetData.php:358 +msgid "This widget data does not belong to this widget" +msgstr "" + +#: lib/Controller/WidgetData.php:223 +msgid "Edited data for Widget" +msgstr "" + +#: lib/Controller/WidgetData.php:281 +msgid "Deleted" +msgstr "" + +#: lib/Controller/WidgetData.php:367 +msgid "Updated the display order for data on Widget" +msgstr "" + +#: lib/Controller/WidgetData.php:385 +msgid "This is not a data widget" +msgstr "" + +#: lib/Controller/WidgetData.php:389 +msgid "Fallback data is not expected for this Widget" +msgstr "" + #: lib/Controller/Region.php:534 msgid "No regions present" msgstr "" @@ -22417,158 +23429,158 @@ msgstr "" msgid "OpenOOH specification missing" msgstr "" -#: lib/Controller/Display.php:747 lib/Controller/Display.php:1320 +#: lib/Controller/Display.php:748 lib/Controller/Display.php:1321 msgid " (Default)" msgstr "" -#: lib/Controller/Display.php:771 +#: lib/Controller/Display.php:772 msgid "Display is up to date" msgstr "" -#: lib/Controller/Display.php:772 +#: lib/Controller/Display.php:773 msgid "Display is downloading new files" msgstr "" -#: lib/Controller/Display.php:773 +#: lib/Controller/Display.php:774 msgid "Display is out of date but has not yet checked in with the server" msgstr "" -#: lib/Controller/Display.php:774 +#: lib/Controller/Display.php:775 msgid "Unknown Display Status" msgstr "" -#: lib/Controller/Display.php:779 +#: lib/Controller/Display.php:780 msgid "Display is fully licensed" msgstr "" -#: lib/Controller/Display.php:780 +#: lib/Controller/Display.php:781 msgid "Display is on a trial licence" msgstr "" -#: lib/Controller/Display.php:781 +#: lib/Controller/Display.php:782 msgid "Display is not licensed" msgstr "" -#: lib/Controller/Display.php:787 +#: lib/Controller/Display.php:788 msgid "The status will be updated with each Commercial Licence check" msgstr "" -#: lib/Controller/Display.php:828 +#: lib/Controller/Display.php:829 msgid "Manage" msgstr "" -#: lib/Controller/Display.php:889 +#: lib/Controller/Display.php:890 msgid "Authorise" msgstr "" -#: lib/Controller/Display.php:967 lib/Controller/Display.php:982 +#: lib/Controller/Display.php:968 lib/Controller/Display.php:983 msgid "Check Licence" msgstr "" -#: lib/Controller/Display.php:1017 +#: lib/Controller/Display.php:1018 msgid "Jump to Scheduled Layouts" msgstr "" -#: lib/Controller/Display.php:1119 +#: lib/Controller/Display.php:1120 msgid "Purge All" msgstr "" -#: lib/Controller/Display.php:1250 +#: lib/Controller/Display.php:1251 msgid "Set Bandwidth" msgstr "" -#: lib/Controller/Display.php:1265 +#: lib/Controller/Display.php:1266 msgid "Cancel CMS Transfer" msgstr "" -#: lib/Controller/Display.php:1326 lib/Controller/Display.php:1328 +#: lib/Controller/Display.php:1327 lib/Controller/Display.php:1329 msgid "Unknown" msgstr "" -#: lib/Controller/Display.php:1956 +#: lib/Controller/Display.php:1966 msgid "Cannot delete a Lead Display of a Sync Group" msgstr "" -#: lib/Controller/Display.php:2100 +#: lib/Controller/Display.php:2110 msgid "Displays Updated" msgstr "" -#: lib/Controller/Display.php:2158 +#: lib/Controller/Display.php:2168 #, php-format msgid "%s assigned to Display Groups" msgstr "" -#: lib/Controller/Display.php:2246 +#: lib/Controller/Display.php:2256 msgid "once it has connected for the first time" msgstr "" -#: lib/Controller/Display.php:2313 lib/Controller/Display.php:3028 -#: lib/Controller/Display.php:3152 +#: lib/Controller/Display.php:2323 lib/Controller/Display.php:3041 +#: lib/Controller/Display.php:3165 #, php-format msgid "Request sent for %s" msgstr "" -#: lib/Controller/Display.php:2341 lib/Controller/Display.php:2393 +#: lib/Controller/Display.php:2351 lib/Controller/Display.php:2403 msgid "" "This display has no mac address recorded against it yet. Make sure the " "display is running." msgstr "" -#: lib/Controller/Display.php:2416 +#: lib/Controller/Display.php:2426 #, php-format msgid "Wake on Lan sent for %s" msgstr "" -#: lib/Controller/Display.php:2525 +#: lib/Controller/Display.php:2537 #, php-format msgid "Alert for Display %s" msgstr "" -#: lib/Controller/Display.php:2527 +#: lib/Controller/Display.php:2539 #, php-format msgid "Display ID %d is offline since %s." msgstr "" -#: lib/Controller/Display.php:2626 +#: lib/Controller/Display.php:2639 #, php-format msgid "Authorised set to %d for %s" msgstr "" -#: lib/Controller/Display.php:2727 +#: lib/Controller/Display.php:2740 #, php-format msgid "Default Layout with name %s set for %s" msgstr "" -#: lib/Controller/Display.php:2813 +#: lib/Controller/Display.php:2826 msgid "Provided CMS URL is invalid" msgstr "" -#: lib/Controller/Display.php:2817 +#: lib/Controller/Display.php:2830 msgid "New CMS URL can have maximum of 1000 characters" msgstr "" -#: lib/Controller/Display.php:2821 +#: lib/Controller/Display.php:2834 msgid "Provided CMS Key is invalid" msgstr "" -#: lib/Controller/Display.php:2829 +#: lib/Controller/Display.php:2842 msgid "Invalid Two Factor Authentication Code" msgstr "" -#: lib/Controller/Display.php:2879 +#: lib/Controller/Display.php:2892 #, php-format msgid "Cancelled CMS Transfer for %s" msgstr "" -#: lib/Controller/Display.php:2917 +#: lib/Controller/Display.php:2930 msgid "Code cannot be empty" msgstr "" -#: lib/Controller/Display.php:2945 +#: lib/Controller/Display.php:2958 msgid "Provided user_code does not exist" msgstr "" -#: lib/Controller/Display.php:3021 lib/Controller/Display.php:3145 +#: lib/Controller/Display.php:3034 lib/Controller/Display.php:3158 msgid "XMR is not configured for this Display" msgstr "" @@ -22576,12 +23588,12 @@ msgstr "" msgid "The Library Location you have picked is not writeable" msgstr "" -#: lib/Controller/Settings.php:335 lib/Entity/Display.php:754 +#: lib/Controller/Settings.php:335 lib/Entity/Display.php:815 #: lib/Widget/Validator/DisplayOrGeoValidator.php:55 msgid "The latitude entered is not valid." msgstr "" -#: lib/Controller/Settings.php:345 lib/Entity/Display.php:750 +#: lib/Controller/Settings.php:345 lib/Entity/Display.php:811 #: lib/Widget/Validator/DisplayOrGeoValidator.php:60 msgid "The longitude entered is not valid." msgstr "" @@ -22590,7 +23602,7 @@ msgstr "" msgid "Settings Updated" msgstr "" -#: lib/Controller/AuditLog.php:172 +#: lib/Controller/AuditLog.php:161 msgid "Please provide a from/to date." msgstr "" @@ -22598,6 +23610,30 @@ msgstr "" msgid "Added Menu Board Product" msgstr "" +#: lib/Controller/Developer.php:110 +msgid "Export XML" +msgstr "" + +#: lib/Controller/Developer.php:248 lib/Controller/Developer.php:322 +msgid "Please supply a unique template ID" +msgstr "" + +#: lib/Controller/Developer.php:251 lib/Controller/Developer.php:325 +msgid "Please supply a title" +msgstr "" + +#: lib/Controller/Developer.php:254 lib/Controller/Developer.php:328 +msgid "Please supply a data type" +msgstr "" + +#: lib/Controller/Developer.php:258 lib/Controller/Developer.php:332 +msgid "Please select relevant editor which should show this Template" +msgstr "" + +#: lib/Controller/Developer.php:301 +msgid "Added" +msgstr "" + #: lib/Controller/PlayerSoftware.php:469 msgid "File available only for SSSP displays" msgstr "" @@ -22614,82 +23650,86 @@ msgstr "" msgid "Please enter author name" msgstr "" -#: lib/Controller/Schedule.php:363 +#: lib/Controller/Schedule.php:319 #, php-format msgid "%s scheduled on sync group %s" msgstr "" -#: lib/Controller/Schedule.php:369 lib/Controller/Schedule.php:383 -#: lib/Entity/Schedule.php:1842 lib/Entity/Schedule.php:1854 +#: lib/Controller/Schedule.php:325 lib/Controller/Schedule.php:339 +#: lib/Entity/Schedule.php:1956 lib/Entity/Schedule.php:1968 #, php-format msgid "%s scheduled on %s" msgstr "" -#: lib/Controller/Schedule.php:378 lib/Controller/Schedule.php:636 -#: lib/Controller/Schedule.php:2329 lib/Entity/Schedule.php:1851 +#: lib/Controller/Schedule.php:334 lib/Controller/Schedule.php:592 +#: lib/Controller/Schedule.php:2355 lib/Entity/Schedule.php:1965 msgid "Private Item" msgstr "" -#: lib/Controller/Schedule.php:389 +#: lib/Controller/Schedule.php:345 #, php-format msgid " with Share of Voice %d seconds per hour" msgstr "" -#: lib/Controller/Schedule.php:398 +#: lib/Controller/Schedule.php:354 #, php-format msgid ", Repeats every %s %s" msgstr "" -#: lib/Controller/Schedule.php:1212 lib/Controller/Schedule.php:1854 +#: lib/Controller/Schedule.php:1120 lib/Controller/Schedule.php:1820 +msgid "Please select a DataSet" +msgstr "" + +#: lib/Controller/Schedule.php:1171 lib/Controller/Schedule.php:1862 msgid "Please enter a from date" msgstr "" -#: lib/Controller/Schedule.php:1516 lib/Controller/Schedule.php:2102 +#: lib/Controller/Schedule.php:1497 lib/Controller/Schedule.php:2125 msgid "Deleted Event" msgstr "" -#: lib/Controller/Schedule.php:1789 +#: lib/Controller/Schedule.php:1784 msgid "Cannot schedule Layout as a Campaign, please select a Campaign instead." msgstr "" -#: lib/Controller/Schedule.php:1799 +#: lib/Controller/Schedule.php:1794 msgid "" "Cannot schedule Campaign in selected event type, please select a Layout " "instead." msgstr "" -#: lib/Controller/Schedule.php:2021 +#: lib/Controller/Schedule.php:2044 msgid "Edited Event" msgstr "" -#: lib/Controller/Schedule.php:2502 lib/Factory/RequiredFileFactory.php:414 +#: lib/Controller/Schedule.php:2528 lib/Factory/RequiredFileFactory.php:414 msgid "Unknown type" msgstr "" -#: lib/Controller/UserGroup.php:639 +#: lib/Controller/UserGroup.php:740 msgid "Features form requested without a User Group" msgstr "" -#: lib/Controller/UserGroup.php:654 +#: lib/Controller/UserGroup.php:755 #, php-format msgid "Features updated for %s" msgstr "" -#: lib/Controller/UserGroup.php:761 lib/Controller/UserGroup.php:777 +#: lib/Controller/UserGroup.php:862 lib/Controller/UserGroup.php:878 msgid "Access Denied to User" msgstr "" -#: lib/Controller/UserGroup.php:786 lib/Controller/UserGroup.php:862 +#: lib/Controller/UserGroup.php:887 lib/Controller/UserGroup.php:963 #, php-format msgid "Membership set for %s" msgstr "" -#: lib/Controller/UserGroup.php:788 +#: lib/Controller/UserGroup.php:889 #, php-format msgid "No changes for %s" msgstr "" -#: lib/Controller/UserGroup.php:989 +#: lib/Controller/UserGroup.php:1090 #, php-format msgid "Copied %s" msgstr "" @@ -22722,6 +23762,10 @@ msgstr "" msgid "Saving into root folder is disabled, please select a different folder" msgstr "" +#: lib/XMR/ScheduleCriteriaUpdateAction.php:62 +msgid "Criteria updates not provided." +msgstr "" + #: lib/XMR/OverlayLayoutAction.php:65 msgid "Layout Details not provided" msgstr "" @@ -22750,12 +23794,12 @@ msgstr "" msgid "Unexpected Error, please contact support." msgstr "" -#: lib/Middleware/LayoutLock.php:120 +#: lib/Middleware/LayoutLock.php:134 #, php-format msgid "Layout Lock Middleware called with incorrect route %s" msgstr "" -#: lib/Middleware/LayoutLock.php:167 +#: lib/Middleware/LayoutLock.php:189 #, php-format msgid "Layout ID %d is locked by another User! Lock expires on: %s" msgstr "" @@ -22795,14 +23839,27 @@ msgid "" "Time provisioning is disabled" msgstr "" -#: lib/Middleware/ApiAuthorization.php:105 +#: lib/Middleware/ApiAuthorization.php:110 msgid "Sorry this account does not exist or cannot be authenticated." msgstr "" -#: lib/Middleware/ApiAuthorization.php:154 +#: lib/Middleware/ApiAuthorization.php:162 msgid "Access to this route is denied for this scope" msgstr "" +#: lib/Event/DataConnectorSourceRequestEvent.php:49 +msgid "User-Defined JavaScript" +msgstr "" + +#: lib/Event/ScheduleCriteriaRequestEvent.php:72 +#: lib/Event/ScheduleCriteriaRequestEvent.php:110 +msgid "Current type is not set." +msgstr "" + +#: lib/Event/ScheduleCriteriaRequestEvent.php:86 +msgid "Invalid input type." +msgstr "" + #: lib/Entity/Task.php:102 msgid "No config file recorded for task. Please recreate." msgstr "" @@ -22831,8 +23888,8 @@ msgstr "" msgid "Please enter a display group name" msgstr "" -#: lib/Entity/DisplayGroup.php:589 lib/Entity/DataSet.php:778 -#: lib/Entity/Layout.php:1094 +#: lib/Entity/DisplayGroup.php:589 lib/Entity/DataSet.php:878 +#: lib/Entity/Layout.php:1095 msgid "Description can not be longer than 254 characters" msgstr "" @@ -22850,47 +23907,53 @@ msgstr "" msgid "This assignment creates a circular reference" msgstr "" -#: lib/Entity/DataSet.php:400 lib/Entity/DataSet.php:423 +#: lib/Entity/DataSet.php:413 lib/Entity/DataSet.php:436 #, php-format msgid "Column %s not found" msgstr "" -#: lib/Entity/DataSet.php:457 +#: lib/Entity/DataSet.php:470 msgid "Unknown Column " msgstr "" -#: lib/Entity/DataSet.php:774 +#: lib/Entity/DataSet.php:874 msgid "Name must be between 1 and 50 characters" msgstr "" -#: lib/Entity/DataSet.php:784 +#: lib/Entity/DataSet.php:884 msgid "A remote DataSet must have a URI." msgstr "" -#: lib/Entity/DataSet.php:788 +#: lib/Entity/DataSet.php:888 msgid "DataSet row limit cannot be larger than the CMS dataSet row limit" msgstr "" -#: lib/Entity/DataSet.php:796 +#: lib/Entity/DataSet.php:896 #, php-format msgid "There is already dataSet called %s. Please choose another name." msgstr "" -#: lib/Entity/DataSet.php:942 +#: lib/Entity/DataSet.php:1042 msgid "" "Cannot delete because this DataSet is set as dependent DataSet for another " "DataSet" msgstr "" -#: lib/Entity/DataSet.php:953 +#: lib/Entity/DataSet.php:1053 msgid "Cannot delete because DataSet is in use on one or more Layouts." msgstr "" -#: lib/Entity/Notification.php:225 +#: lib/Entity/DataSet.php:1062 +msgid "" +"Cannot delete because DataSet is in use on one or more Data Connector " +"schedules." +msgstr "" + +#: lib/Entity/Notification.php:227 msgid "Please provide a subject" msgstr "" -#: lib/Entity/Notification.php:228 +#: lib/Entity/Notification.php:231 msgid "Please provide a body" msgstr "" @@ -22899,7 +23962,7 @@ msgid "Invalid type" msgstr "" #: lib/Entity/Campaign.php:480 lib/Entity/MenuBoard.php:249 -#: lib/Entity/SyncGroup.php:279 lib/Entity/MenuBoardCategory.php:167 +#: lib/Entity/SyncGroup.php:289 lib/Entity/MenuBoardCategory.php:167 #: lib/Entity/MenuBoardProduct.php:151 lib/Entity/DayPart.php:160 msgid "Name cannot be empty" msgstr "" @@ -22976,7 +24039,19 @@ msgstr "" msgid "Please select a Widget" msgstr "" -#: lib/Entity/Module.php:534 +#: lib/Entity/ScheduleCriteria.php:62 +msgid "Criteria must be attached to an event" +msgstr "" + +#: lib/Entity/ScheduleCriteria.php:66 +msgid "Please select a metric" +msgstr "" + +#: lib/Entity/ScheduleCriteria.php:70 +msgid "Please enter a valid condition" +msgstr "" + +#: lib/Entity/Module.php:541 msgid "Default Duration is a required field." msgstr "" @@ -23015,24 +24090,32 @@ msgstr "" msgid "This Playlist belongs to a Region, please delete the Region instead." msgstr "" -#: lib/Entity/ReportSchedule.php:114 lib/Entity/DisplayProfile.php:399 +#: lib/Entity/ReportSchedule.php:114 lib/Entity/DisplayProfile.php:403 msgid "Missing name" msgstr "" -#: lib/Entity/SyncGroup.php:283 +#: lib/Entity/SyncGroup.php:293 msgid "Sync Publisher Port cannot be empty" msgstr "" -#: lib/Entity/SyncGroup.php:287 +#: lib/Entity/SyncGroup.php:297 msgid "Please select lead Display for this sync group" msgstr "" -#: lib/Entity/SyncGroup.php:297 +#: lib/Entity/SyncGroup.php:301 +msgid "Switch Delay value cannot be negative" +msgstr "" + +#: lib/Entity/SyncGroup.php:305 +msgid "Video Pause Delay value cannot be negative" +msgstr "" + +#: lib/Entity/SyncGroup.php:315 msgid "" "Please make sure to select a Layout for all Displays in this Sync Group." msgstr "" -#: lib/Entity/SyncGroup.php:396 +#: lib/Entity/SyncGroup.php:420 #, php-format msgid "Display %s already belongs to a different sync group ID %d" msgstr "" @@ -23051,91 +24134,95 @@ msgid "" "provide Tag value in the dedicated field." msgstr "" -#: lib/Entity/Media.php:291 +#: lib/Entity/Media.php:292 #, php-format msgid "Copy of %s on %s" msgstr "" -#: lib/Entity/Media.php:378 +#: lib/Entity/Media.php:379 msgid "Unknown Media Type" msgstr "" -#: lib/Entity/Media.php:382 +#: lib/Entity/Media.php:383 msgid "The name must be between 1 and 100 characters" msgstr "" -#: lib/Entity/Media.php:403 +#: lib/Entity/Media.php:408 msgid "Media you own already has this name. Please choose another." msgstr "" -#: lib/Entity/Media.php:718 +#: lib/Entity/Media.php:753 msgid "Problem copying file in the Library Folder" msgstr "" -#: lib/Entity/Media.php:724 +#: lib/Entity/Media.php:759 msgid "Problem moving uploaded file into the Library Folder" msgstr "" -#: lib/Entity/Media.php:742 +#: lib/Entity/Media.php:777 msgid "Problem moving downloaded file into the Library Folder" msgstr "" -#: lib/Entity/Media.php:749 +#: lib/Entity/Media.php:784 msgid "Problem copying provided file into the Library Folder" msgstr "" -#: lib/Entity/DataSetColumn.php:205 +#: lib/Entity/DataSetColumn.php:206 msgid "Missing dataSetId" msgstr "" -#: lib/Entity/DataSetColumn.php:208 +#: lib/Entity/DataSetColumn.php:209 msgid "Missing dataTypeId" msgstr "" -#: lib/Entity/DataSetColumn.php:211 +#: lib/Entity/DataSetColumn.php:212 msgid "Missing dataSetColumnTypeId" msgstr "" -#: lib/Entity/DataSetColumn.php:214 +#: lib/Entity/DataSetColumn.php:215 msgid "Please provide a column heading." msgstr "" -#: lib/Entity/DataSetColumn.php:222 +#: lib/Entity/DataSetColumn.php:223 #, php-format msgid "Please provide an alternative column heading %s can not be used." msgstr "" -#: lib/Entity/DataSetColumn.php:228 +#: lib/Entity/DataSetColumn.php:229 msgid "Please enter a valid formula" msgstr "" -#: lib/Entity/DataSetColumn.php:236 +#: lib/Entity/DataSetColumn.php:237 msgid "A column already exists with this name, please choose another" msgstr "" -#: lib/Entity/DataSetColumn.php:243 +#: lib/Entity/DataSetColumn.php:244 msgid "Provided Data Type doesn't exist" msgstr "" -#: lib/Entity/DataSetColumn.php:251 +#: lib/Entity/DataSetColumn.php:252 msgid "Remote field is required when the column type is set to Remote" msgstr "" -#: lib/Entity/DataSetColumn.php:254 +#: lib/Entity/DataSetColumn.php:255 msgid "Provided DataSet Column Type doesn't exist" msgstr "" -#: lib/Entity/DataSetColumn.php:288 +#: lib/Entity/DataSetColumn.php:289 msgid "" "New list content value is invalid as it does not include values for existing " "data" msgstr "" -#: lib/Entity/DataSetColumn.php:314 +#: lib/Entity/DataSetColumn.php:312 +msgid "Formula contains disallowed keywords." +msgstr "" + +#: lib/Entity/DataSetColumn.php:327 msgid "Provided formula is invalid" msgstr "" -#: lib/Entity/DataSetColumn.php:441 +#: lib/Entity/DataSetColumn.php:454 msgid "Existing data is incompatible with your new configuration" msgstr "" @@ -23152,53 +24239,53 @@ msgstr "" msgid "Sorry we cannot delete a system connector." msgstr "" -#: lib/Entity/Layout.php:598 +#: lib/Entity/Layout.php:599 msgid "Cannot find region" msgstr "" -#: lib/Entity/Layout.php:616 +#: lib/Entity/Layout.php:617 msgid "Cannot find drawer region" msgstr "" -#: lib/Entity/Layout.php:637 +#: lib/Entity/Layout.php:638 msgid "Cannot find Region or Drawer" msgstr "" -#: lib/Entity/Layout.php:987 +#: lib/Entity/Layout.php:988 msgid "This layout is used as the global default and cannot be deleted" msgstr "" -#: lib/Entity/Layout.php:1081 +#: lib/Entity/Layout.php:1082 msgid "The layout dimensions cannot be empty" msgstr "" -#: lib/Entity/Layout.php:1087 +#: lib/Entity/Layout.php:1088 msgid "Layout Name must be between 1 and 50 characters" msgstr "" -#: lib/Entity/Layout.php:1115 +#: lib/Entity/Layout.php:1116 #, php-format msgid "You already own a Layout called '%s'. Please choose another name." msgstr "" -#: lib/Entity/Layout.php:1123 lib/Entity/Region.php:421 +#: lib/Entity/Layout.php:1124 lib/Entity/Region.php:421 msgid "Layer must be 0 or a positive number" msgstr "" -#: lib/Entity/Layout.php:1129 +#: lib/Entity/Layout.php:1130 msgid "Please use only alphanumeric characters in Layout Code identifier" msgstr "" -#: lib/Entity/Layout.php:1141 +#: lib/Entity/Layout.php:1142 msgid "Layout with provided code already exists" msgstr "" -#: lib/Entity/Layout.php:1264 +#: lib/Entity/Layout.php:1265 #, php-format msgid "%s set as the Layout background image is pending conversion" msgstr "" -#: lib/Entity/Layout.php:1272 +#: lib/Entity/Layout.php:1273 #, php-format msgid "" "%s set as the Layout background image is too large. Please ensure that none " @@ -23206,108 +24293,108 @@ msgid "" "edge. Please check the allowed Resize Limit in Administration -> Settings" msgstr "" -#: lib/Entity/Layout.php:1835 +#: lib/Entity/Layout.php:1836 #, php-format msgid "%s is pending conversion" msgstr "" -#: lib/Entity/Layout.php:1840 +#: lib/Entity/Layout.php:1841 #, php-format msgid "" "%s is too large. Please ensure that none of the images in your layout are " "larger than your Resize Limit on their longest edge." msgstr "" -#: lib/Entity/Layout.php:1852 +#: lib/Entity/Layout.php:1853 msgid "Misconfigured Playlist" msgstr "" -#: lib/Entity/Layout.php:2246 +#: lib/Entity/Layout.php:2266 #, php-format msgid "There is an error with this Layout: %s" msgstr "" -#: lib/Entity/Layout.php:2325 lib/Entity/Layout.php:2454 +#: lib/Entity/Layout.php:2345 lib/Entity/Layout.php:2474 msgid "Not a Draft" msgstr "" -#: lib/Entity/Layout.php:2540 +#: lib/Entity/Layout.php:2560 msgid "Draft Layouts must have a parent" msgstr "" -#: lib/Entity/Layout.php:2675 lib/Listener/WidgetListener.php:199 +#: lib/Entity/Layout.php:2695 lib/Listener/WidgetListener.php:199 msgid "Cannot add the same SubPlaylist twice." msgstr "" -#: lib/Entity/DisplayProfile.php:402 +#: lib/Entity/DisplayProfile.php:406 msgid "Missing type" msgstr "" -#: lib/Entity/DisplayProfile.php:406 +#: lib/Entity/DisplayProfile.php:410 msgid "Concurrent downloads must be a positive number" msgstr "" -#: lib/Entity/DisplayProfile.php:410 +#: lib/Entity/DisplayProfile.php:414 msgid "Maximum Region Count must be a positive number" msgstr "" -#: lib/Entity/DisplayProfile.php:431 +#: lib/Entity/DisplayProfile.php:435 msgid "Only 1 default per display type is allowed." msgstr "" -#: lib/Entity/DisplayProfile.php:463 +#: lib/Entity/DisplayProfile.php:467 msgid "This Display Profile is currently assigned to one or more Displays" msgstr "" -#: lib/Entity/DisplayProfile.php:467 +#: lib/Entity/DisplayProfile.php:471 msgid "Cannot delete default Display Profile." msgstr "" -#: lib/Entity/User.php:474 +#: lib/Entity/User.php:518 msgid "User Option not found" msgstr "" -#: lib/Entity/User.php:564 +#: lib/Entity/User.php:608 msgid "Please enter a Password." msgstr "" -#: lib/Entity/User.php:699 +#: lib/Entity/User.php:744 msgid "User name must be between 1 and 50 characters." msgstr "" -#: lib/Entity/User.php:702 lib/Entity/UserGroup.php:238 +#: lib/Entity/User.php:747 lib/Entity/UserGroup.php:275 msgid "Library Quota must be a whole number." msgstr "" -#: lib/Entity/User.php:705 +#: lib/Entity/User.php:750 msgid "Please enter a valid email address or leave it empty." msgstr "" -#: lib/Entity/User.php:711 +#: lib/Entity/User.php:756 msgid "There is already a user with this name. Please choose another." msgstr "" -#: lib/Entity/User.php:716 +#: lib/Entity/User.php:761 msgid "This User is set as System User and needs to be super admin" msgstr "" -#: lib/Entity/User.php:720 +#: lib/Entity/User.php:765 msgid "This User is set as System User and cannot be retired" msgstr "" -#: lib/Entity/User.php:725 +#: lib/Entity/User.php:770 msgid "Library Quota must be a positive number." msgstr "" -#: lib/Entity/User.php:1076 +#: lib/Entity/User.php:1134 msgid "Provided Object not under permission management" msgstr "" -#: lib/Entity/User.php:1332 +#: lib/Entity/User.php:1390 msgid "You have exceeded your library quota" msgstr "" -#: lib/Entity/User.php:1350 +#: lib/Entity/User.php:1408 msgid "Your password does not meet the required complexity" msgstr "" @@ -23331,44 +24418,44 @@ msgstr "" msgid "The Region dimensions cannot be empty or negative" msgstr "" -#: lib/Entity/Display.php:697 +#: lib/Entity/Display.php:758 msgid "Can not have a display without a name" msgstr "" -#: lib/Entity/Display.php:701 +#: lib/Entity/Display.php:762 msgid "Can not have a display without a hardware key" msgstr "" -#: lib/Entity/Display.php:706 +#: lib/Entity/Display.php:767 msgid "" "Wake on Lan is enabled, but you have not specified a time to wake the display" msgstr "" -#: lib/Entity/Display.php:713 +#: lib/Entity/Display.php:774 msgid "BroadCast Address is not a valid IP Address" msgstr "" -#: lib/Entity/Display.php:721 +#: lib/Entity/Display.php:782 msgid "CIDR subnet mask is not a number within the range of 0 to 32." msgstr "" -#: lib/Entity/Display.php:735 +#: lib/Entity/Display.php:796 msgid "" "Pattern of secureOn-password is not \"xx-xx-xx-xx-xx-xx\" (x = digit or " "CAPITAL letter)" msgstr "" -#: lib/Entity/Display.php:759 +#: lib/Entity/Display.php:820 msgid "Bandwidth limit must be a whole number greater than 0." msgstr "" -#: lib/Entity/Display.php:782 +#: lib/Entity/Display.php:843 msgid "" "Please set a Default Layout directly on this Display or in CMS Administrator " "Settings" msgstr "" -#: lib/Entity/Display.php:869 +#: lib/Entity/Display.php:930 #, php-format msgid "You have exceeded your maximum number of authorised displays. %d" msgstr "" @@ -23377,139 +24464,147 @@ msgstr "" msgid "Calories must be a whole number between 0 and 32767" msgstr "" -#: lib/Entity/Command.php:213 +#: lib/Entity/Command.php:241 msgid "Please enter a command name between 1 and 254 characters" msgstr "" -#: lib/Entity/Command.php:218 +#: lib/Entity/Command.php:248 msgid "" "Please enter a code between 1 and 50 characters containing only alpha " "characters and no spaces" msgstr "" -#: lib/Entity/Command.php:223 +#: lib/Entity/Command.php:255 msgid "Please enter a description between 1 and 1000 characters" msgstr "" -#: lib/Entity/Schedule.php:574 +#: lib/Entity/Schedule.php:642 msgid "No display groups selected" msgstr "" -#: lib/Entity/Schedule.php:584 +#: lib/Entity/Schedule.php:652 msgid "The from date is too far in the past." msgstr "" -#: lib/Entity/Schedule.php:589 +#: lib/Entity/Schedule.php:657 msgid "Name cannot be longer than 50 characters." msgstr "" -#: lib/Entity/Schedule.php:603 +#: lib/Entity/Schedule.php:671 msgid "Please select a Campaign/Layout for this event." msgstr "" -#: lib/Entity/Schedule.php:610 lib/Entity/Schedule.php:670 +#: lib/Entity/Schedule.php:678 lib/Entity/Schedule.php:738 msgid "Can not have an end time earlier than your start time" msgstr "" -#: lib/Entity/Schedule.php:631 lib/Entity/Schedule.php:649 +#: lib/Entity/Schedule.php:699 lib/Entity/Schedule.php:717 msgid "Please select a Command for this event." msgstr "" -#: lib/Entity/Schedule.php:637 +#: lib/Entity/Schedule.php:705 msgid "Please select a Action Type for this event." msgstr "" -#: lib/Entity/Schedule.php:642 +#: lib/Entity/Schedule.php:710 msgid "Please select a Action trigger code for this event." msgstr "" -#: lib/Entity/Schedule.php:654 +#: lib/Entity/Schedule.php:722 msgid "Please select a Layout code for this event." msgstr "" -#: lib/Entity/Schedule.php:663 +#: lib/Entity/Schedule.php:731 msgid "Please select a Sync Group for this event." msgstr "" -#: lib/Entity/Schedule.php:677 +#: lib/Entity/Schedule.php:745 +msgid "Please select a DataSet for this event." +msgstr "" + +#: lib/Entity/Schedule.php:750 msgid "Please select the Event Type" msgstr "" -#: lib/Entity/Schedule.php:683 +#: lib/Entity/Schedule.php:756 msgid "Repeats selection is invalid for Always or Daypart events" msgstr "" -#: lib/Entity/Schedule.php:689 +#: lib/Entity/Schedule.php:762 msgid "Display Order must be 0 or a positive number" msgstr "" -#: lib/Entity/Schedule.php:693 +#: lib/Entity/Schedule.php:766 msgid "Priority must be 0 or a positive number" msgstr "" -#: lib/Entity/Schedule.php:700 +#: lib/Entity/Schedule.php:773 msgid "Repeat every must be a positive number" msgstr "" -#: lib/Entity/Schedule.php:735 +#: lib/Entity/Schedule.php:808 msgid "Unknown repeat type" msgstr "" -#: lib/Entity/Schedule.php:740 +#: lib/Entity/Schedule.php:813 msgid "" "An event cannot repeat more often than the interval between its start and " "end date" msgstr "" -#: lib/Entity/Schedule.php:1092 +#: lib/Entity/Schedule.php:1206 msgid "Cache pool not available" msgstr "" -#: lib/Entity/Schedule.php:1095 +#: lib/Entity/Schedule.php:1209 msgid "Unable to generate schedule, unknown event" msgstr "" -#: lib/Entity/Schedule.php:1469 lib/Entity/Schedule.php:1781 +#: lib/Entity/Schedule.php:1583 lib/Entity/Schedule.php:1895 msgid "Invalid recurrence type" msgstr "" -#: lib/Entity/Schedule.php:1812 +#: lib/Entity/Schedule.php:1926 msgid "reminderDt not found as next event does not exist" msgstr "" -#: lib/Entity/Schedule.php:1970 +#: lib/Entity/Schedule.php:2084 msgid "Overlay Layout" msgstr "" -#: lib/Entity/Schedule.php:1971 +#: lib/Entity/Schedule.php:2085 msgid "Interrupt Layout" msgstr "" -#: lib/Entity/Schedule.php:1973 +#: lib/Entity/Schedule.php:2087 msgid "Action" msgstr "" -#: lib/Entity/Schedule.php:1974 +#: lib/Entity/Schedule.php:2088 msgid "Video/Image" msgstr "" -#: lib/Entity/Schedule.php:1986 +#: lib/Entity/Schedule.php:2090 +msgid "Data Connector" +msgstr "" + +#: lib/Entity/Schedule.php:2101 msgid "Synchronised Event" msgstr "" -#: lib/Entity/Schedule.php:2002 +#: lib/Entity/Schedule.php:2117 msgid "Synchronised Mirrored Content" msgstr "" -#: lib/Entity/Schedule.php:2003 +#: lib/Entity/Schedule.php:2118 msgid "Synchronised Content" msgstr "" -#: lib/Entity/UserGroup.php:235 +#: lib/Entity/UserGroup.php:271 msgid "User Group Name cannot be empty." msgstr "" -#: lib/Entity/UserGroup.php:244 +#: lib/Entity/UserGroup.php:283 msgid "There is already a group with this name. Please choose another." msgstr "" @@ -23522,6 +24617,30 @@ msgstr "" msgid "Exception Start/End time for %s are empty or in an incorrect format" msgstr "" +#: lib/Entity/DisplayEvent.php:215 +msgid "Display Up/down" +msgstr "" + +#: lib/Entity/DisplayEvent.php:216 +msgid "App Start" +msgstr "" + +#: lib/Entity/DisplayEvent.php:217 +msgid "Power Cycle" +msgstr "" + +#: lib/Entity/DisplayEvent.php:218 +msgid "Network Cycle" +msgstr "" + +#: lib/Entity/DisplayEvent.php:219 +msgid "TV Monitoring" +msgstr "" + +#: lib/Entity/DisplayEvent.php:220 +msgid "Player Fault" +msgstr "" + #: lib/Service/ReportService.php:190 msgid "Get Report By Name: No file to return" msgstr "" @@ -23540,12 +24659,12 @@ msgid "Class %s not found" msgstr "" #: lib/Service/ReportService.php:299 lib/Service/ReportService.php:336 -#: lib/Factory/LayoutFactory.php:1295 +#: lib/Factory/LayoutFactory.php:1294 msgid "File does not exist" msgstr "" #: lib/Service/ReportService.php:305 lib/Service/ReportService.php:342 -#: lib/Factory/LayoutFactory.php:1301 +#: lib/Factory/LayoutFactory.php:1300 msgid "Unable to open ZIP" msgstr "" @@ -23772,7 +24891,7 @@ msgstr "" msgid "This file size exceeds your environment Max Upload Size %s" msgstr "" -#: lib/Service/MediaService.php:309 +#: lib/Service/MediaService.php:313 msgid "Library not writable" msgstr "" @@ -23810,24 +24929,24 @@ msgstr "" msgid "Cannot find saved report" msgstr "" -#: lib/Factory/DisplayProfileFactory.php:545 -#: lib/Factory/DisplayProfileFactory.php:559 -#: lib/Factory/DisplayProfileFactory.php:582 +#: lib/Factory/DisplayProfileFactory.php:550 +#: lib/Factory/DisplayProfileFactory.php:564 +#: lib/Factory/DisplayProfileFactory.php:587 #, php-format msgid "Custom Display Profile not registered correctly for type %s" msgstr "" -#: lib/Factory/DisplayProfileFactory.php:549 +#: lib/Factory/DisplayProfileFactory.php:554 #, php-format msgid "Custom template not registered correctly for type %s" msgstr "" -#: lib/Factory/DisplayProfileFactory.php:563 +#: lib/Factory/DisplayProfileFactory.php:568 #, php-format msgid "Custom config not registered correctly for type %s" msgstr "" -#: lib/Factory/DisplayProfileFactory.php:586 +#: lib/Factory/DisplayProfileFactory.php:591 #, php-format msgid "Custom fields handling not registered correctly for type %s" msgstr "" @@ -23866,38 +24985,38 @@ msgstr "" msgid "Layout import failed, invalid xlf supplied" msgstr "" -#: lib/Factory/LayoutFactory.php:1307 +#: lib/Factory/LayoutFactory.php:1306 msgid "Unable to read layout details from ZIP" msgstr "" -#: lib/Factory/LayoutFactory.php:1359 +#: lib/Factory/LayoutFactory.php:1358 msgid "" "Unsupported format. Missing Layout definitions from layout.json file in the " "archive." msgstr "" -#: lib/Factory/LayoutFactory.php:1483 +#: lib/Factory/LayoutFactory.php:1485 msgid "Empty file in ZIP" msgstr "" -#: lib/Factory/LayoutFactory.php:1489 +#: lib/Factory/LayoutFactory.php:1491 msgid "Cannot save media file from ZIP file" msgstr "" -#: lib/Factory/LayoutFactory.php:1850 +#: lib/Factory/LayoutFactory.php:1852 #, php-format msgid "DataSets have different number of columns imported = %d, existing = %d" msgstr "" -#: lib/Factory/LayoutFactory.php:1867 +#: lib/Factory/LayoutFactory.php:1869 msgid "DataSets have different column names" msgstr "" -#: lib/Factory/LayoutFactory.php:2754 lib/Factory/LayoutFactory.php:2767 +#: lib/Factory/LayoutFactory.php:2762 lib/Factory/LayoutFactory.php:2775 msgid "Draft" msgstr "" -#: lib/Factory/LayoutFactory.php:3087 +#: lib/Factory/LayoutFactory.php:3098 msgid "Module not found" msgstr "" @@ -23941,51 +25060,51 @@ msgstr "" msgid "Cannot find schedule reminder" msgstr "" -#: lib/Factory/MediaFactory.php:278 +#: lib/Factory/MediaFactory.php:279 msgid "File too large" msgstr "" -#: lib/Factory/MediaFactory.php:378 lib/Factory/MediaFactory.php:395 -#: lib/Factory/MediaFactory.php:412 lib/Factory/MediaFactory.php:429 +#: lib/Factory/MediaFactory.php:379 lib/Factory/MediaFactory.php:396 +#: lib/Factory/MediaFactory.php:413 lib/Factory/MediaFactory.php:430 msgid "Cannot find media" msgstr "" -#: lib/Factory/ModuleFactory.php:392 +#: lib/Factory/ModuleFactory.php:407 #, php-format msgid "Extension %s does not match any enabled Module" msgstr "" -#: lib/Factory/ModuleFactory.php:444 +#: lib/Factory/ModuleFactory.php:460 msgid "DataType not found" msgstr "" -#: lib/Factory/ModuleFactory.php:463 lib/Factory/ModuleFactory.php:482 -#: lib/Factory/ModuleFactory.php:556 lib/Factory/ModuleTemplateFactory.php:120 -#: lib/Factory/ModuleTemplateFactory.php:138 +#: lib/Factory/ModuleFactory.php:524 lib/Factory/ModuleFactory.php:543 +#: lib/Factory/ModuleFactory.php:617 lib/Factory/ModuleTemplateFactory.php:151 +#: lib/Factory/ModuleTemplateFactory.php:169 msgid "Asset not found" msgstr "" -#: lib/Factory/ModuleFactory.php:741 +#: lib/Factory/ModuleFactory.php:804 msgid "Invalid legacyType" msgstr "" -#: lib/Factory/ModuleFactory.php:760 lib/Factory/ModuleTemplateFactory.php:295 +#: lib/Factory/ModuleFactory.php:823 lib/Factory/ModuleTemplateFactory.php:484 msgid "Invalid assets" msgstr "" -#: lib/Factory/ModuleFactory.php:776 +#: lib/Factory/ModuleFactory.php:839 msgid "Invalid settings" msgstr "" -#: lib/Factory/ModuleFactory.php:820 lib/Factory/ModuleTemplateFactory.php:268 +#: lib/Factory/ModuleFactory.php:883 lib/Factory/ModuleTemplateFactory.php:457 msgid "Invalid properties" msgstr "" -#: lib/Factory/ModuleFactory.php:828 lib/Factory/ModuleTemplateFactory.php:277 +#: lib/Factory/ModuleFactory.php:891 lib/Factory/ModuleTemplateFactory.php:466 msgid "Invalid property groups" msgstr "" -#: lib/Factory/ModuleFactory.php:844 lib/Factory/ModuleTemplateFactory.php:286 +#: lib/Factory/ModuleFactory.php:907 lib/Factory/ModuleTemplateFactory.php:475 msgid "Invalid stencils" msgstr "" @@ -23999,17 +25118,30 @@ msgstr "" msgid "Cannot find playlist" msgstr "" +#: lib/Factory/WidgetDataFactory.php:61 +msgid "Missing ID" +msgstr "" + +#: lib/Factory/WidgetDataFactory.php:81 lib/Factory/WidgetDataFactory.php:102 +msgid "Missing Widget ID" +msgstr "" + #: lib/Factory/ModuleTemplateFactory.php:71 #, php-format msgid "%s not found for %s" msgstr "" -#: lib/Factory/ModuleTemplateFactory.php:87 +#: lib/Factory/ModuleTemplateFactory.php:83 +#, php-format +msgid "Template not found for %s" +msgstr "" + +#: lib/Factory/ModuleTemplateFactory.php:102 #, php-format msgid "Template not found for %s and %s" msgstr "" -#: lib/Factory/ModuleTemplateFactory.php:259 +#: lib/Factory/ModuleTemplateFactory.php:448 msgid "Invalid Extends" msgstr "" @@ -24021,50 +25153,50 @@ msgstr "" msgid "Menu Board not found" msgstr "" -#: lib/Factory/DataSetFactory.php:430 +#: lib/Factory/DataSetFactory.php:448 #, php-format msgid "" "The request %d is too large to fit inside the configured memory limit. %d" msgstr "" -#: lib/Factory/DataSetFactory.php:500 +#: lib/Factory/DataSetFactory.php:518 #, php-format msgid "Unable to get Data for %s because the response was not valid JSON." msgstr "" -#: lib/Factory/DataSetFactory.php:534 +#: lib/Factory/DataSetFactory.php:560 #, php-format msgid "Unable to get Data for %s because %s." msgstr "" -#: lib/Factory/DataSetFactory.php:582 +#: lib/Factory/DataSetFactory.php:608 #, php-format msgid "Processing %d results into %d potential columns" msgstr "" -#: lib/Factory/DataSetFactory.php:585 +#: lib/Factory/DataSetFactory.php:611 #, php-format msgid "Processing Result with Data Root %s" msgstr "" -#: lib/Factory/DataSetFactory.php:628 +#: lib/Factory/DataSetFactory.php:654 msgid "Processing as a Single Row" msgstr "" -#: lib/Factory/DataSetFactory.php:633 +#: lib/Factory/DataSetFactory.php:659 msgid "Processing as Multiple Rows" msgstr "" -#: lib/Factory/DataSetFactory.php:643 +#: lib/Factory/DataSetFactory.php:669 #, php-format msgid "No data found at the DataRoot %s" msgstr "" -#: lib/Factory/DataSetFactory.php:646 +#: lib/Factory/DataSetFactory.php:672 msgid "Consolidating entries" msgstr "" -#: lib/Factory/DataSetFactory.php:651 +#: lib/Factory/DataSetFactory.php:677 #, php-format msgid "There are %d entries in total" msgstr "" @@ -24110,8 +25242,8 @@ msgstr "" msgid "Missing fileType" msgstr "" -#: lib/Factory/RequiredFileFactory.php:409 lib/Xmds/Soap3.php:236 -#: lib/Xmds/Soap4.php:384 +#: lib/Factory/RequiredFileFactory.php:409 lib/Xmds/Soap3.php:243 +#: lib/Xmds/Soap4.php:401 msgid "File not found" msgstr "" @@ -24120,456 +25252,472 @@ msgstr "" msgid "Group not found" msgstr "" -#: lib/Factory/UserGroupFactory.php:459 +#: lib/Factory/UserGroupFactory.php:496 msgid "" "Page which shows all Events added to the Calendar for the purposes of " "Schedule Management" msgstr "" -#: lib/Factory/UserGroupFactory.php:464 +#: lib/Factory/UserGroupFactory.php:501 msgid "Include the Agenda View on the Calendar" msgstr "" -#: lib/Factory/UserGroupFactory.php:469 +#: lib/Factory/UserGroupFactory.php:506 msgid "" "Include \"Add Event\" button to allow for the creation of new Scheduled " "Events" msgstr "" -#: lib/Factory/UserGroupFactory.php:474 +#: lib/Factory/UserGroupFactory.php:511 msgid "Allow edits including deletion of existing Scheduled Events" msgstr "" -#: lib/Factory/UserGroupFactory.php:479 +#: lib/Factory/UserGroupFactory.php:516 msgid "Allow creation of Synchronised Schedules" msgstr "" -#: lib/Factory/UserGroupFactory.php:484 +#: lib/Factory/UserGroupFactory.php:521 +msgid "Allow creation of Data Connector Schedules" +msgstr "" + +#: lib/Factory/UserGroupFactory.php:526 msgid "Page which shows all Dayparts that have been created" msgstr "" -#: lib/Factory/UserGroupFactory.php:489 +#: lib/Factory/UserGroupFactory.php:531 msgid "" "Include \"Add Daypart\" button to allow for the creation of new Dayparts" msgstr "" -#: lib/Factory/UserGroupFactory.php:494 +#: lib/Factory/UserGroupFactory.php:536 msgid "Allow edits including deletion to be made to all created Dayparts" msgstr "" -#: lib/Factory/UserGroupFactory.php:499 +#: lib/Factory/UserGroupFactory.php:541 msgid "" "Page which shows all items that have been uploaded to the Library for the " "purposes of Media Management" msgstr "" -#: lib/Factory/UserGroupFactory.php:504 +#: lib/Factory/UserGroupFactory.php:546 msgid "" "Include \"Add Media\" buttons to allow for additional content to be uploaded " "to the Media Library" msgstr "" -#: lib/Factory/UserGroupFactory.php:509 +#: lib/Factory/UserGroupFactory.php:551 msgid "" "Allow edits including deletion to all items uploaded to the Media Library" msgstr "" -#: lib/Factory/UserGroupFactory.php:514 +#: lib/Factory/UserGroupFactory.php:556 msgid "" "Page which shows all DataSets that have been created which can be used in " "multiple Layouts" msgstr "" -#: lib/Factory/UserGroupFactory.php:519 +#: lib/Factory/UserGroupFactory.php:561 msgid "" "Include \"Add DataSet\" button to allow for additional DataSets to be " "created independently to Layouts" msgstr "" -#: lib/Factory/UserGroupFactory.php:524 +#: lib/Factory/UserGroupFactory.php:566 msgid "" "Allow edits including deletion to all created DataSets independently to " "Layouts" msgstr "" -#: lib/Factory/UserGroupFactory.php:529 +#: lib/Factory/UserGroupFactory.php:571 msgid "" "Allow edits including deletion to all data contained within a DataSet " "independently to Layouts" msgstr "" -#: lib/Factory/UserGroupFactory.php:534 +#: lib/Factory/UserGroupFactory.php:576 +msgid "Create and update real time DataSets" +msgstr "" + +#: lib/Factory/UserGroupFactory.php:581 msgid "" "Page which shows all Layouts that have been created for the purposes of " "Layout Management" msgstr "" -#: lib/Factory/UserGroupFactory.php:539 +#: lib/Factory/UserGroupFactory.php:586 msgid "" "Include \"Add Layout\" button to allow for additional Layouts to be created" msgstr "" -#: lib/Factory/UserGroupFactory.php:544 +#: lib/Factory/UserGroupFactory.php:591 msgid "Allow edits including deletion to be made to all created Layouts" msgstr "" -#: lib/Factory/UserGroupFactory.php:549 +#: lib/Factory/UserGroupFactory.php:596 msgid "" "Include the Export function for all editable Layouts to allow a User to " "export a Layout and its contents regardless of the share options that have " "been set" msgstr "" -#: lib/Factory/UserGroupFactory.php:554 +#: lib/Factory/UserGroupFactory.php:601 msgid "" "Page which shows all Campaigns that have been created for the purposes of " "Campaign Management" msgstr "" -#: lib/Factory/UserGroupFactory.php:559 +#: lib/Factory/UserGroupFactory.php:606 msgid "" "Include \"Add Campaign\" button to allow for additional Campaigns to be " "created" msgstr "" -#: lib/Factory/UserGroupFactory.php:564 +#: lib/Factory/UserGroupFactory.php:611 msgid "Allow edits including deletion to all created Campaigns" msgstr "" -#: lib/Factory/UserGroupFactory.php:569 +#: lib/Factory/UserGroupFactory.php:616 msgid "Access to Ad Campaigns" msgstr "" -#: lib/Factory/UserGroupFactory.php:574 +#: lib/Factory/UserGroupFactory.php:621 msgid "Page which shows all Templates that have been saved" msgstr "" -#: lib/Factory/UserGroupFactory.php:579 +#: lib/Factory/UserGroupFactory.php:626 msgid "Add \"Save Template\" function for all Layouts" msgstr "" -#: lib/Factory/UserGroupFactory.php:584 +#: lib/Factory/UserGroupFactory.php:631 msgid "Allow edits to be made to all saved Templates" msgstr "" -#: lib/Factory/UserGroupFactory.php:589 +#: lib/Factory/UserGroupFactory.php:636 msgid "Page which shows all Resolutions that have been added to the platform" msgstr "" -#: lib/Factory/UserGroupFactory.php:594 +#: lib/Factory/UserGroupFactory.php:641 msgid "Add Resolution button to allow for additional Resolutions to be added" msgstr "" -#: lib/Factory/UserGroupFactory.php:599 +#: lib/Factory/UserGroupFactory.php:646 msgid "Allow edits including deletion to all added Resolutions" msgstr "" -#: lib/Factory/UserGroupFactory.php:604 +#: lib/Factory/UserGroupFactory.php:651 msgid "" "Page which shows all Tags that have been added for the purposes of Tag " "Management" msgstr "" -#: lib/Factory/UserGroupFactory.php:609 +#: lib/Factory/UserGroupFactory.php:656 msgid "Ability to add and edit Tags when assigning to items" msgstr "" -#: lib/Factory/UserGroupFactory.php:614 +#: lib/Factory/UserGroupFactory.php:661 msgid "" "Page which shows all Playlists that have been created which can be used in " "multiple Layouts" msgstr "" -#: lib/Factory/UserGroupFactory.php:619 +#: lib/Factory/UserGroupFactory.php:666 msgid "" "Include \"Add Playlist\" button to allow for additional Playlists to be " "created independently to Layouts" msgstr "" -#: lib/Factory/UserGroupFactory.php:624 +#: lib/Factory/UserGroupFactory.php:671 msgid "" "Allow edits including deletion to all created Playlists independently to " "Layouts" msgstr "" -#: lib/Factory/UserGroupFactory.php:629 +#: lib/Factory/UserGroupFactory.php:676 msgid "" "Ability to update own Profile, including changing passwords and " "authentication preferences" msgstr "" -#: lib/Factory/UserGroupFactory.php:634 +#: lib/Factory/UserGroupFactory.php:681 msgid "Notifications appear in the navigation bar" msgstr "" -#: lib/Factory/UserGroupFactory.php:639 +#: lib/Factory/UserGroupFactory.php:686 msgid "Access to the Notification Centre to view past notifications" msgstr "" -#: lib/Factory/UserGroupFactory.php:644 +#: lib/Factory/UserGroupFactory.php:691 msgid "Access to API applications" msgstr "" -#: lib/Factory/UserGroupFactory.php:649 +#: lib/Factory/UserGroupFactory.php:696 msgid "Allow Sharing capabilities for all User objects" msgstr "" -#: lib/Factory/UserGroupFactory.php:654 +#: lib/Factory/UserGroupFactory.php:701 msgid "" "Include \"Add Notification\" button to allow for the creation of new " "notifications" msgstr "" -#: lib/Factory/UserGroupFactory.php:659 +#: lib/Factory/UserGroupFactory.php:706 msgid "" "Allow edits including deletion for all notifications in the Notification " "Centre" msgstr "" -#: lib/Factory/UserGroupFactory.php:664 +#: lib/Factory/UserGroupFactory.php:711 msgid "" "Page which shows all Users in the platform for the purposes of User " "Management" msgstr "" -#: lib/Factory/UserGroupFactory.php:669 +#: lib/Factory/UserGroupFactory.php:716 msgid "" "Include \"Add User\" button to allow for additional Users to be added to the " "platform" msgstr "" -#: lib/Factory/UserGroupFactory.php:674 +#: lib/Factory/UserGroupFactory.php:721 msgid "" "Allow Group Admins to edit including deletion, for all added Users within " "their group" msgstr "" -#: lib/Factory/UserGroupFactory.php:679 +#: lib/Factory/UserGroupFactory.php:726 msgid "Page which shows all User Groups that have been created" msgstr "" -#: lib/Factory/UserGroupFactory.php:684 +#: lib/Factory/UserGroupFactory.php:731 msgid "Allow edits including deletion for all created User Groups" msgstr "" -#: lib/Factory/UserGroupFactory.php:689 +#: lib/Factory/UserGroupFactory.php:736 msgid "" "Status Dashboard showing key platform metrics, suitable for an Administrator." msgstr "" -#: lib/Factory/UserGroupFactory.php:694 +#: lib/Factory/UserGroupFactory.php:741 msgid "" "Media Manager Dashboard showing only the Widgets the user has access to " "modify." msgstr "" -#: lib/Factory/UserGroupFactory.php:699 +#: lib/Factory/UserGroupFactory.php:746 msgid "" "Playlist Dashboard showing only the Playlists configured in Layouts the user " "has access to modify." msgstr "" -#: lib/Factory/UserGroupFactory.php:704 +#: lib/Factory/UserGroupFactory.php:751 msgid "" "Page which shows all Displays added to the platform for the purposes of " "Display Management" msgstr "" -#: lib/Factory/UserGroupFactory.php:709 +#: lib/Factory/UserGroupFactory.php:756 msgid "" "Include \"Add Display\" button to allow additional Displays to be added to " "the platform" msgstr "" -#: lib/Factory/UserGroupFactory.php:714 +#: lib/Factory/UserGroupFactory.php:761 msgid "Allow edits including deletion for all added Displays" msgstr "" -#: lib/Factory/UserGroupFactory.php:719 +#: lib/Factory/UserGroupFactory.php:766 msgid "Page which shows all Display Groups that have been created" msgstr "" -#: lib/Factory/UserGroupFactory.php:724 +#: lib/Factory/UserGroupFactory.php:771 msgid "" "Include \"Add Display Group\" button to allow for the creation of additional " "Display Groups" msgstr "" -#: lib/Factory/UserGroupFactory.php:729 +#: lib/Factory/UserGroupFactory.php:776 msgid "Allow edits including deletion for all created Display Groups" msgstr "" -#: lib/Factory/UserGroupFactory.php:734 +#: lib/Factory/UserGroupFactory.php:781 msgid "Page which shows all Display Setting Profiles that have been added" msgstr "" -#: lib/Factory/UserGroupFactory.php:739 +#: lib/Factory/UserGroupFactory.php:786 msgid "" "Include \"Add Profile\" button to allow for additional Display Setting " "Profiles to be added to the platform" msgstr "" -#: lib/Factory/UserGroupFactory.php:744 +#: lib/Factory/UserGroupFactory.php:791 msgid "Allow edits including deletion for all created Display Setting Profiles" msgstr "" -#: lib/Factory/UserGroupFactory.php:749 +#: lib/Factory/UserGroupFactory.php:796 msgid "Page to view/add/edit/delete/download Player Software Versions" msgstr "" -#: lib/Factory/UserGroupFactory.php:754 +#: lib/Factory/UserGroupFactory.php:801 msgid "Page to view/add/edit/delete Commands" msgstr "" -#: lib/Factory/UserGroupFactory.php:759 +#: lib/Factory/UserGroupFactory.php:806 msgid "" "Page which shows all Sync Groups added to the platform for the purposes of " "Sync Group Management" msgstr "" -#: lib/Factory/UserGroupFactory.php:764 +#: lib/Factory/UserGroupFactory.php:811 msgid "Allow creation of Synchronised Groups" msgstr "" -#: lib/Factory/UserGroupFactory.php:769 +#: lib/Factory/UserGroupFactory.php:816 msgid "Allow edits of Synchronised Groups" msgstr "" -#: lib/Factory/UserGroupFactory.php:774 +#: lib/Factory/UserGroupFactory.php:821 msgid "" "Access to a Report Fault wizard for collecting reports to forward to the " "support team for analysis, which may contain sensitive data." msgstr "" -#: lib/Factory/UserGroupFactory.php:779 +#: lib/Factory/UserGroupFactory.php:826 msgid "Page to show debug and error logging which may contain sensitive data" msgstr "" -#: lib/Factory/UserGroupFactory.php:784 +#: lib/Factory/UserGroupFactory.php:831 msgid "Page to show all User Sessions throughout the platform" msgstr "" -#: lib/Factory/UserGroupFactory.php:789 +#: lib/Factory/UserGroupFactory.php:836 msgid "" "Page to show the Audit Trail for all created/modified and removed items " "throughout the platform" msgstr "" -#: lib/Factory/UserGroupFactory.php:794 +#: lib/Factory/UserGroupFactory.php:841 msgid "Page which allows for Module Management for the platform" msgstr "" -#: lib/Factory/UserGroupFactory.php:799 +#: lib/Factory/UserGroupFactory.php:846 +msgid "Add/Edit custom modules and templates" +msgstr "" + +#: lib/Factory/UserGroupFactory.php:851 +msgid "Delete custom modules and templates" +msgstr "" + +#: lib/Factory/UserGroupFactory.php:856 msgid "Page which allows for Transition Management for the platform" msgstr "" -#: lib/Factory/UserGroupFactory.php:804 +#: lib/Factory/UserGroupFactory.php:861 msgid "Page which allows for Task Management for the platform" msgstr "" -#: lib/Factory/UserGroupFactory.php:809 +#: lib/Factory/UserGroupFactory.php:866 msgid "Dashboard which shows all available Reports" msgstr "" -#: lib/Factory/UserGroupFactory.php:814 +#: lib/Factory/UserGroupFactory.php:871 msgid "" "Display Reports to show bandwidth usage and time connected / disconnected" msgstr "" -#: lib/Factory/UserGroupFactory.php:819 +#: lib/Factory/UserGroupFactory.php:876 msgid "" "Proof of Play Reports which include summary and distribution by Layout, " "Media or Event" msgstr "" -#: lib/Factory/UserGroupFactory.php:824 +#: lib/Factory/UserGroupFactory.php:881 msgid "Page which shows all Reports that have been Scheduled" msgstr "" -#: lib/Factory/UserGroupFactory.php:829 +#: lib/Factory/UserGroupFactory.php:886 msgid "Page which shows all Reports that have been Saved" msgstr "" -#: lib/Factory/UserGroupFactory.php:834 +#: lib/Factory/UserGroupFactory.php:891 msgid "View Folder Tree on Grids and Forms" msgstr "" -#: lib/Factory/UserGroupFactory.php:839 +#: lib/Factory/UserGroupFactory.php:896 msgid "" "Allow users to create Sub-Folders under Folders they have access to. (Except " "the Root Folder)" msgstr "" -#: lib/Factory/UserGroupFactory.php:844 +#: lib/Factory/UserGroupFactory.php:901 msgid "Rename and Delete existing Folders" msgstr "" -#: lib/Factory/UserGroupFactory.php:849 +#: lib/Factory/UserGroupFactory.php:906 msgid "Set a home folder for a user" msgstr "" -#: lib/Factory/UserGroupFactory.php:854 +#: lib/Factory/UserGroupFactory.php:911 msgid "View the Menu Board page" msgstr "" -#: lib/Factory/UserGroupFactory.php:859 +#: lib/Factory/UserGroupFactory.php:916 msgid "" "Include \"Add Menu Board\" button to allow for additional Menu Boards to be " "added to the platform" msgstr "" -#: lib/Factory/UserGroupFactory.php:864 +#: lib/Factory/UserGroupFactory.php:921 msgid "" "Allow edits, creation of Menu Board Categories and Products including " "deletion for all created Menu Board content" msgstr "" -#: lib/Factory/UserGroupFactory.php:869 +#: lib/Factory/UserGroupFactory.php:926 msgid "View the Fonts page" msgstr "" -#: lib/Factory/UserGroupFactory.php:874 +#: lib/Factory/UserGroupFactory.php:931 msgid "Upload new Fonts" msgstr "" -#: lib/Factory/UserGroupFactory.php:879 +#: lib/Factory/UserGroupFactory.php:936 msgid "Delete existing Fonts" msgstr "" -#: lib/Factory/UserGroupFactory.php:894 +#: lib/Factory/UserGroupFactory.php:951 msgid "Homepage has not been set" msgstr "" -#: lib/Factory/UserGroupFactory.php:900 +#: lib/Factory/UserGroupFactory.php:957 #, php-format msgid "Homepage %s not found." msgstr "" -#: lib/Factory/UserGroupFactory.php:917 +#: lib/Factory/UserGroupFactory.php:974 msgid "" "Status Dashboard showing key platform metrics, usually for an administrator." msgstr "" -#: lib/Factory/UserGroupFactory.php:923 +#: lib/Factory/UserGroupFactory.php:980 msgid "" "Icon Dashboard showing an easy access set of feature icons the user can " "access." msgstr "" -#: lib/Factory/UserGroupFactory.php:928 +#: lib/Factory/UserGroupFactory.php:985 msgid "Media Manager Dashboard" msgstr "" -#: lib/Factory/UserGroupFactory.php:929 +#: lib/Factory/UserGroupFactory.php:986 msgid "" "Media Manager Dashboard showing all Widgets the user has access to modify." msgstr "" -#: lib/Factory/UserGroupFactory.php:934 +#: lib/Factory/UserGroupFactory.php:991 msgid "Playlist Dashboard" msgstr "" -#: lib/Factory/UserGroupFactory.php:935 +#: lib/Factory/UserGroupFactory.php:992 msgid "" "Playlist Dashboard showing all Playlists configured in Layouts the user has " "access to modify." @@ -24579,19 +25727,19 @@ msgstr "" msgid "Entity not found: " msgstr "" -#: lib/Factory/PermissionFactory.php:180 +#: lib/Factory/PermissionFactory.php:176 msgid "Entity not found" msgstr "" -#: lib/Widget/RssProvider.php:54 +#: lib/Widget/RssProvider.php:53 msgid "Please enter the URI to a valid RSS feed." msgstr "" -#: lib/Widget/RssProvider.php:205 lib/Widget/IcsProvider.php:213 +#: lib/Widget/RssProvider.php:204 lib/Widget/IcsProvider.php:213 msgid "Unable to download feed" msgstr "" -#: lib/Widget/RssProvider.php:218 +#: lib/Widget/RssProvider.php:217 msgid "Unable to parse feed" msgstr "" @@ -24629,68 +25777,73 @@ msgstr "" msgid "Asset file does not exist" msgstr "" -#: lib/Widget/Definition/Property.php:221 +#: lib/Widget/Definition/Property.php:225 #, php-format msgid "Value too large for %s" msgstr "" -#: lib/Widget/Definition/Property.php:261 +#: lib/Widget/Definition/Property.php:265 #, php-format msgid "Missing required property %s" msgstr "" -#: lib/Widget/Definition/Property.php:272 +#: lib/Widget/Definition/Property.php:276 #, php-format msgid "%s must be a valid URI" msgstr "" -#: lib/Widget/Definition/Property.php:285 -#: lib/Widget/Definition/Property.php:297 +#: lib/Widget/Definition/Property.php:292 +#, php-format +msgid "%s must be a valid Windows path" +msgstr "" + +#: lib/Widget/Definition/Property.php:306 +#: lib/Widget/Definition/Property.php:318 msgid "" "That is not a valid date interval, please use natural language such as 1 week" msgstr "" -#: lib/Widget/Definition/Property.php:307 +#: lib/Widget/Definition/Property.php:328 #, php-format msgid "%s must equal %s" msgstr "" -#: lib/Widget/Definition/Property.php:316 +#: lib/Widget/Definition/Property.php:337 #, php-format msgid "%s must not equal %s" msgstr "" -#: lib/Widget/Definition/Property.php:325 +#: lib/Widget/Definition/Property.php:346 #, php-format msgid "%s must contain %s" msgstr "" -#: lib/Widget/Definition/Property.php:335 +#: lib/Widget/Definition/Property.php:356 #, php-format msgid "%s must not contain %s" msgstr "" -#: lib/Widget/Definition/Property.php:346 +#: lib/Widget/Definition/Property.php:367 #, php-format msgid "%s must be less than %s" msgstr "" -#: lib/Widget/Definition/Property.php:357 +#: lib/Widget/Definition/Property.php:378 #, php-format msgid "%s must be less than or equal to %s" msgstr "" -#: lib/Widget/Definition/Property.php:368 +#: lib/Widget/Definition/Property.php:389 #, php-format msgid "%s must be greater than or equal to %s" msgstr "" -#: lib/Widget/Definition/Property.php:379 +#: lib/Widget/Definition/Property.php:400 #, php-format msgid "%s must be greater than %s" msgstr "" -#: lib/Widget/Definition/Property.php:451 +#: lib/Widget/Definition/Property.php:472 #, php-format msgid "%s is not a valid option" msgstr "" @@ -24744,51 +25897,60 @@ msgstr "" msgid "Product Category" msgstr "" -#: lib/Widget/DataType/Forecast.php:118 +#: lib/Widget/DataType/Forecast.php:120 msgid "Forecast" msgstr "" -#: lib/Xmds/Soap3.php:255 lib/Xmds/Soap4.php:458 +#: lib/Xmds/Soap3.php:262 lib/Xmds/Soap4.php:475 msgid "Unknown FileType Requested." msgstr "" -#: lib/Xmds/Soap4.php:391 lib/Xmds/Soap4.php:441 +#: lib/Xmds/Soap4.php:408 lib/Xmds/Soap4.php:458 msgid "Unable to get file pointer" msgstr "" -#: lib/Xmds/Soap4.php:401 lib/Xmds/Soap4.php:452 +#: lib/Xmds/Soap4.php:418 lib/Xmds/Soap4.php:469 msgid "Empty file" msgstr "" -#: lib/Xmds/Soap4.php:434 +#: lib/Xmds/Soap4.php:451 msgid "Media exists but file missing from library." msgstr "" -#: lib/Xmds/Soap4.php:805 +#: lib/Xmds/Soap4.php:810 msgid "Incorrect Screen shot Format" msgstr "" -#: lib/Xmds/Soap.php:578 +#: lib/Xmds/Listeners/XmdsDataConnectorListener.php:62 +#, php-format +msgid "Data Connector %s not found" +msgstr "" + +#: lib/Xmds/Soap.php:586 #, php-format msgid "" "Scheduled Action Event ID %d contains an invalid Layout linked to it by the " "Layout code." msgstr "" -#: lib/Xmds/Soap.php:2576 +#: lib/Xmds/Soap.php:2683 #, php-format msgid "Recovery for Display %s" msgstr "" -#: lib/Xmds/Soap.php:2578 +#: lib/Xmds/Soap.php:2685 #, php-format msgid "Display ID %d is now back online %s" msgstr "" -#: lib/Xmds/Soap.php:2717 +#: lib/Xmds/Soap.php:2825 msgid "Bandwidth allowance exceeded" msgstr "" +#: lib/Xmds/Soap6.php:157 +msgid "All Player faults cleared" +msgstr "" + #: lib/Helper/WakeOnLan.php:47 msgid "" "Pattern of MAC-address is not \"xx-xx-xx-xx-xx-xx\" (x = digit or letter)" @@ -24842,13 +26004,17 @@ msgstr "" msgid "Wake On Lan Failed as there are no functions available to transmit it" msgstr "" -#: lib/Helper/DataSetUploadHandler.php:133 +#: lib/Helper/DataSetUploadHandler.php:76 +msgid "Import failed: No value columns defined in the dataset." +msgstr "" + +#: lib/Helper/DataSetUploadHandler.php:153 #, php-format msgid "Unable to import row %d" msgstr "" #: lib/Helper/UploadHandler.php:77 lib/Helper/XiboUploadHandler.php:66 -#: lib/Helper/LayoutUploadHandler.php:55 +#: lib/Helper/LayoutUploadHandler.php:56 #, php-format msgid "Your library is full. Library Limit: %s K" msgstr "" @@ -25163,34 +26329,146 @@ msgstr "" msgid "Currency data invalid" msgstr "" -#: lib/Connector/OpenWeatherMapConnector.php:123 +#: lib/Connector/OpenWeatherMapConnector.php:130 msgid "Unable to get weather results." msgstr "" -#: lib/Connector/OpenWeatherMapConnector.php:500 +#: lib/Connector/OpenWeatherMapConnector.php:524 msgid "Chinese Simplified" msgstr "" -#: lib/Connector/OpenWeatherMapConnector.php:501 +#: lib/Connector/OpenWeatherMapConnector.php:525 msgid "Chinese Traditional" msgstr "" -#: lib/Connector/OpenWeatherMapConnector.php:508 +#: lib/Connector/OpenWeatherMapConnector.php:532 msgid "Persian (Farsi)" msgstr "" -#: lib/Connector/OpenWeatherMapConnector.php:523 +#: lib/Connector/OpenWeatherMapConnector.php:547 msgid "Norwegian" msgstr "" -#: lib/Connector/OpenWeatherMapConnector.php:527 +#: lib/Connector/OpenWeatherMapConnector.php:551 msgid "Português Brasil" msgstr "" -#: lib/Connector/OpenWeatherMapConnector.php:539 +#: lib/Connector/OpenWeatherMapConnector.php:563 msgid "Zulu" msgstr "" +#: lib/Connector/OpenWeatherMapConnector.php:668 +msgid "Weather Condition" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:670 +msgid "Clear Sky" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:671 +msgid "Few Clouds" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:672 +msgid "Scattered Clouds" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:673 +msgid "Broken Clouds" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:674 +msgid "Shower Rain" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:675 +msgid "Rain" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:676 +msgid "Thunderstorm" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:677 +msgid "Snow" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:678 +msgid "Mist" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:680 +msgid "Temperature (Imperial)" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:682 +msgid "Temperature (Metric)" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:684 +msgid "Apparent Temperature (Imperial)" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:686 +msgid "Apparent Temperature (Metric)" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:693 +msgid "North-Northeast" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:694 +msgid "Northeast" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:695 +msgid "East-Northeast" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:697 +msgid "East-Southeast" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:698 +msgid "Southeast" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:699 +msgid "South-Southeast" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:701 +msgid "South-Southwest" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:702 +msgid "Southwest" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:703 +msgid "West-Southwest" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:705 +msgid "West-Northwest" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:706 +msgid "Northwest" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:707 +msgid "North-Northwest" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:709 +msgid "Wind Bearing" +msgstr "" + +#: lib/Connector/OpenWeatherMapConnector.php:711 +msgid "Humidity (Percent)" +msgstr "" + #: lib/XTR/MaintenanceDailyTask.php:93 msgid "Daily Maintenance" msgstr "" @@ -25289,7 +26567,7 @@ msgstr "" msgid "The event (%s) has %s %d %s ago" msgstr "" -#: lib/XTR/EmailNotificationsTask.php:54 lib/XTR/EmailNotificationsTask.php:65 +#: lib/XTR/EmailNotificationsTask.php:60 lib/XTR/EmailNotificationsTask.php:71 msgid "Email Notifications" msgstr "" @@ -25331,35 +26609,35 @@ msgstr "" msgid "Build Layouts" msgstr "" -#: lib/XTR/MaintenanceRegularTask.php:325 +#: lib/XTR/MaintenanceRegularTask.php:326 msgid "Library allowance exceeded" msgstr "" -#: lib/XTR/MaintenanceRegularTask.php:373 +#: lib/XTR/MaintenanceRegularTask.php:386 #, php-format msgid "%s is downloading %d files too many times" msgstr "" -#: lib/XTR/MaintenanceRegularTask.php:378 +#: lib/XTR/MaintenanceRegularTask.php:399 #, php-format msgid "" "Please check the bandwidth graphs and display status for %s to investigate " "the issue." msgstr "" -#: lib/XTR/MaintenanceRegularTask.php:405 +#: lib/XTR/MaintenanceRegularTask.php:429 msgid "Playlist Duration Updates" msgstr "" -#: lib/XTR/MaintenanceRegularTask.php:426 +#: lib/XTR/MaintenanceRegularTask.php:453 msgid "Publishing layouts with set publish dates" msgstr "" -#: lib/XTR/MaintenanceRegularTask.php:500 +#: lib/XTR/MaintenanceRegularTask.php:552 msgid "Assess Dynamic Display Groups" msgstr "" -#: lib/XTR/MaintenanceRegularTask.php:546 +#: lib/XTR/MaintenanceRegularTask.php:598 msgid "Tidy Ad Campaign Schedules" msgstr "" @@ -25446,22 +26724,22 @@ msgstr "" msgid "Fetching Remote-DataSets" msgstr "" -#: lib/XTR/RemoteDataSetFetchTask.php:176 +#: lib/XTR/RemoteDataSetFetchTask.php:190 #, php-format msgid "No results for %s, truncate with no new data enabled" msgstr "" -#: lib/XTR/RemoteDataSetFetchTask.php:178 +#: lib/XTR/RemoteDataSetFetchTask.php:192 #, php-format msgid "No results for %s" msgstr "" -#: lib/XTR/RemoteDataSetFetchTask.php:186 +#: lib/XTR/RemoteDataSetFetchTask.php:200 #, php-format msgid "Error syncing DataSet %s" msgstr "" -#: lib/XTR/RemoteDataSetFetchTask.php:192 +#: lib/XTR/RemoteDataSetFetchTask.php:206 #, php-format msgid "Remote DataSet %s failed to synchronise" msgstr "" @@ -25541,20 +26819,20 @@ msgstr "" msgid "%s time disconnected summary report" msgstr "" -#: lib/Report/TimeDisconnectedSummary.php:265 +#: lib/Report/TimeDisconnectedSummary.php:266 #: lib/Report/DistributionReport.php:303 msgid "No display groups with View permissions" msgstr "" -#: lib/Report/TimeDisconnectedSummary.php:306 +#: lib/Report/TimeDisconnectedSummary.php:308 msgid "Days" msgstr "" -#: lib/Report/TimeDisconnectedSummary.php:453 +#: lib/Report/TimeDisconnectedSummary.php:494 msgid "Downtime" msgstr "" -#: lib/Report/TimeDisconnectedSummary.php:458 +#: lib/Report/TimeDisconnectedSummary.php:499 msgid "Uptime" msgstr "" @@ -25563,6 +26841,11 @@ msgstr "" msgid "%s bandwidth report" msgstr "" +#: lib/Report/ApiRequests.php:138 +#, php-format +msgid "%s API requests %s log report for User" +msgstr "" + #: lib/Report/DistributionReport.php:135 lib/Report/TimeConnected.php:109 #: lib/Report/ProofOfPlay.php:125 lib/Report/SummaryReport.php:126 msgid "Select a type and an item (i.e., layout/media/tag)" @@ -25619,7 +26902,7 @@ msgstr "" msgid "%s library usage report" msgstr "" -#: lib/Report/TimeConnected.php:182 +#: lib/Report/TimeConnected.php:182 lib/Report/DisplayAlerts.php:136 #, php-format msgid "%s report for Display" msgstr "" @@ -25640,7 +26923,16 @@ msgstr "" msgid "Unknown type " msgstr "" -#: lib/Report/ProofOfPlay.php:874 +#: lib/Report/SessionHistory.php:133 +#, php-format +msgid "%s Session %s log report for User" +msgstr "" + +#: lib/Report/ProofOfPlay.php:358 +msgid "Invalid Sort By" +msgstr "" + +#: lib/Report/ProofOfPlay.php:886 msgid "Incorrect Tag type selected" msgstr "" diff --git a/locale/el.mo b/locale/el.mo index ce6bb8b6d6..a6e9efa240 100755 Binary files a/locale/el.mo and b/locale/el.mo differ diff --git a/locale/en_GB.mo b/locale/en_GB.mo index 9c1a748ab4..c9d99d8041 100755 Binary files a/locale/en_GB.mo and b/locale/en_GB.mo differ diff --git a/locale/es.mo b/locale/es.mo index a3af0c91af..6ea04a6004 100755 Binary files a/locale/es.mo and b/locale/es.mo differ diff --git a/locale/et.mo b/locale/et.mo index 874ed5b112..fdc555efa8 100755 Binary files a/locale/et.mo and b/locale/et.mo differ diff --git a/locale/eu.mo b/locale/eu.mo index b6cfd139bf..6fa487a1ca 100755 Binary files a/locale/eu.mo and b/locale/eu.mo differ diff --git a/locale/fa.mo b/locale/fa.mo index daa7c3c72a..5cf2b891a9 100755 Binary files a/locale/fa.mo and b/locale/fa.mo differ diff --git a/locale/fi.mo b/locale/fi.mo index 624d8cb7ad..47b2200990 100755 Binary files a/locale/fi.mo and b/locale/fi.mo differ diff --git a/locale/fr.mo b/locale/fr.mo index 0a88214368..0c4827fbdb 100755 Binary files a/locale/fr.mo and b/locale/fr.mo differ diff --git a/locale/fr_CA.mo b/locale/fr_CA.mo index d7f8e58351..de25d91cb9 100644 Binary files a/locale/fr_CA.mo and b/locale/fr_CA.mo differ diff --git a/locale/he.mo b/locale/he.mo index ed3e92bfe4..56abd8eb0e 100755 Binary files a/locale/he.mo and b/locale/he.mo differ diff --git a/locale/hi.mo b/locale/hi.mo index 0c83504ab7..03b34f225a 100755 Binary files a/locale/hi.mo and b/locale/hi.mo differ diff --git a/locale/hr.mo b/locale/hr.mo index 71e33c9d63..63fd4f3100 100755 Binary files a/locale/hr.mo and b/locale/hr.mo differ diff --git a/locale/hu.mo b/locale/hu.mo index e8b59c2241..5eb3498c1c 100755 Binary files a/locale/hu.mo and b/locale/hu.mo differ diff --git a/locale/id.mo b/locale/id.mo index 7f9bb29ff7..e30c6897e8 100755 Binary files a/locale/id.mo and b/locale/id.mo differ diff --git a/locale/it.mo b/locale/it.mo index bb235c078e..a963fabf66 100755 Binary files a/locale/it.mo and b/locale/it.mo differ diff --git a/locale/ja.mo b/locale/ja.mo index dd2681175d..4885c27539 100755 Binary files a/locale/ja.mo and b/locale/ja.mo differ diff --git a/locale/ko.mo b/locale/ko.mo index 2633f9aed6..8fd9853672 100755 Binary files a/locale/ko.mo and b/locale/ko.mo differ diff --git a/locale/ku.mo b/locale/ku.mo index 0e4de8c11e..ead3dc2ab7 100755 Binary files a/locale/ku.mo and b/locale/ku.mo differ diff --git a/locale/lb.mo b/locale/lb.mo index cddddc6a28..f8317f0ddd 100755 Binary files a/locale/lb.mo and b/locale/lb.mo differ diff --git a/locale/lo.mo b/locale/lo.mo index 8f283ab1ab..3db428bc6d 100755 Binary files a/locale/lo.mo and b/locale/lo.mo differ diff --git a/locale/lt.mo b/locale/lt.mo index 5b5784f8f6..10b04a4671 100755 Binary files a/locale/lt.mo and b/locale/lt.mo differ diff --git a/locale/nb.mo b/locale/nb.mo index fbe39a34a7..aef3429985 100755 Binary files a/locale/nb.mo and b/locale/nb.mo differ diff --git a/locale/nl.mo b/locale/nl.mo index 36b38f5660..d933aa91af 100755 Binary files a/locale/nl.mo and b/locale/nl.mo differ diff --git a/locale/nl_NL.mo b/locale/nl_NL.mo index 7ce50272ac..eb249fdf8b 100755 Binary files a/locale/nl_NL.mo and b/locale/nl_NL.mo differ diff --git a/locale/pl.mo b/locale/pl.mo index b7c83e28c9..9e41b8bb9b 100755 Binary files a/locale/pl.mo and b/locale/pl.mo differ diff --git a/locale/pt.mo b/locale/pt.mo index 5ed3001a0c..092e9003cb 100755 Binary files a/locale/pt.mo and b/locale/pt.mo differ diff --git a/locale/pt_BR.mo b/locale/pt_BR.mo index 25afaa5b02..2d05012e30 100755 Binary files a/locale/pt_BR.mo and b/locale/pt_BR.mo differ diff --git a/locale/ro.mo b/locale/ro.mo index 1f93788524..8f7a8b2d40 100755 Binary files a/locale/ro.mo and b/locale/ro.mo differ diff --git a/locale/ru.mo b/locale/ru.mo index 261186f399..4c202b10f2 100755 Binary files a/locale/ru.mo and b/locale/ru.mo differ diff --git a/locale/sk.mo b/locale/sk.mo index 79f3defa8b..6ac0580a82 100755 Binary files a/locale/sk.mo and b/locale/sk.mo differ diff --git a/locale/sl.mo b/locale/sl.mo index 09b842ba9f..3b9f293c79 100755 Binary files a/locale/sl.mo and b/locale/sl.mo differ diff --git a/locale/sr@latin.mo b/locale/sr@latin.mo index e890efada8..ef6060a9bd 100755 Binary files a/locale/sr@latin.mo and b/locale/sr@latin.mo differ diff --git a/locale/sv.mo b/locale/sv.mo index 6463ee6bcf..4741f3b512 100755 Binary files a/locale/sv.mo and b/locale/sv.mo differ diff --git a/locale/th.mo b/locale/th.mo index 12e1e40fa2..b2b4ab35e6 100755 Binary files a/locale/th.mo and b/locale/th.mo differ diff --git a/locale/tr.mo b/locale/tr.mo index 08160af788..984e4323d8 100755 Binary files a/locale/tr.mo and b/locale/tr.mo differ diff --git a/locale/vi.mo b/locale/vi.mo index e2d7a4f823..073b8d50a5 100755 Binary files a/locale/vi.mo and b/locale/vi.mo differ diff --git a/locale/zh_CN.mo b/locale/zh_CN.mo index 5604b2e632..68442d83a5 100755 Binary files a/locale/zh_CN.mo and b/locale/zh_CN.mo differ diff --git a/locale/zh_TW.mo b/locale/zh_TW.mo index 87e77cde60..66386fc00d 100755 Binary files a/locale/zh_TW.mo and b/locale/zh_TW.mo differ diff --git a/modules/assets/template-thumbnails/currency/elements/currency-group-1.png b/modules/assets/template-thumbnails/currency/elements/currency-group-1.png new file mode 100644 index 0000000000..7ab80648c1 Binary files /dev/null and b/modules/assets/template-thumbnails/currency/elements/currency-group-1.png differ diff --git a/modules/assets/template-thumbnails/currency/elements/currency-group-2.png b/modules/assets/template-thumbnails/currency/elements/currency-group-2.png new file mode 100644 index 0000000000..25f2fdc644 Binary files /dev/null and b/modules/assets/template-thumbnails/currency/elements/currency-group-2.png differ diff --git a/modules/assets/template-thumbnails/currency/elements/currency-single-1.png b/modules/assets/template-thumbnails/currency/elements/currency-single-1.png new file mode 100644 index 0000000000..6be7b9fa95 Binary files /dev/null and b/modules/assets/template-thumbnails/currency/elements/currency-single-1.png differ diff --git a/modules/assets/template-thumbnails/currency/elements/currency-single-2.png b/modules/assets/template-thumbnails/currency/elements/currency-single-2.png new file mode 100644 index 0000000000..8cb92d8c3e Binary files /dev/null and b/modules/assets/template-thumbnails/currency/elements/currency-single-2.png differ diff --git a/modules/assets/template-thumbnails/currency/elements/currency-single-3.png b/modules/assets/template-thumbnails/currency/elements/currency-single-3.png new file mode 100644 index 0000000000..4cb8f50280 Binary files /dev/null and b/modules/assets/template-thumbnails/currency/elements/currency-single-3.png differ diff --git a/modules/assets/template-thumbnails/currency/elements/currency-single-4.png b/modules/assets/template-thumbnails/currency/elements/currency-single-4.png new file mode 100644 index 0000000000..e18d621de4 Binary files /dev/null and b/modules/assets/template-thumbnails/currency/elements/currency-single-4.png differ diff --git a/modules/assets/template-thumbnails/forecast/elements/forecast-group-1.png b/modules/assets/template-thumbnails/forecast/elements/forecast-group-1.png new file mode 100644 index 0000000000..f259fb0c23 Binary files /dev/null and b/modules/assets/template-thumbnails/forecast/elements/forecast-group-1.png differ diff --git a/modules/assets/template-thumbnails/global/date.png b/modules/assets/template-thumbnails/global/date.png index f8ec5bb83b..f5eace60c0 100644 Binary files a/modules/assets/template-thumbnails/global/date.png and b/modules/assets/template-thumbnails/global/date.png differ diff --git a/modules/assets/template-thumbnails/global/ellipse.png b/modules/assets/template-thumbnails/global/ellipse.png new file mode 100644 index 0000000000..41429ff92d Binary files /dev/null and b/modules/assets/template-thumbnails/global/ellipse.png differ diff --git a/modules/assets/template-thumbnails/global/placeholder.png b/modules/assets/template-thumbnails/global/placeholder.png new file mode 100644 index 0000000000..298151c714 Binary files /dev/null and b/modules/assets/template-thumbnails/global/placeholder.png differ diff --git a/modules/assets/template-thumbnails/stocks/elements/stocks-group-1.png b/modules/assets/template-thumbnails/stocks/elements/stocks-group-1.png new file mode 100644 index 0000000000..2b915d2bd9 Binary files /dev/null and b/modules/assets/template-thumbnails/stocks/elements/stocks-group-1.png differ diff --git a/modules/assets/template-thumbnails/stocks/elements/stocks-single-1.png b/modules/assets/template-thumbnails/stocks/elements/stocks-single-1.png new file mode 100644 index 0000000000..17dbd53cff Binary files /dev/null and b/modules/assets/template-thumbnails/stocks/elements/stocks-single-1.png differ diff --git a/modules/assets/template-thumbnails/stocks/elements/stocks-single-2.png b/modules/assets/template-thumbnails/stocks/elements/stocks-single-2.png new file mode 100644 index 0000000000..5c56d6985b Binary files /dev/null and b/modules/assets/template-thumbnails/stocks/elements/stocks-single-2.png differ diff --git a/modules/calendar.xml b/modules/calendar.xml index 65da8d1f38..d324c28a91 100644 --- a/modules/calendar.xml +++ b/modules/calendar.xml @@ -31,6 +31,7 @@ calendar event %uri%_%useDateRange%_%startIntervalFrom%_%customInterval%_%rangeStart%_%rangeEnd%_%useEventTimezone%_%useCalendarTimezone%_%windowsFormatCalendar% + 1 2 1 1 diff --git a/modules/countdown-clock.xml b/modules/countdown-clock.xml index fa4a4fe79f..a96435da05 100755 --- a/modules/countdown-clock.xml +++ b/modules/countdown-clock.xml @@ -164,6 +164,22 @@ Label Text Colour #fff + + Warning Background Colour 1 + darkorange + + + Warning Background Colour 2 + orange + + + Finished Background Colour 1 + darkred + + + Finished Background Colour 2 + red + @@ -222,20 +238,16 @@ body { font-size: 64px; } -.warning>#clockdiv>div { - background: darkred; -} - -.warning>#clockdiv>div>span { - background: red; -} - {% if innerFontFamily %}#clockdiv > div > span { font-family: {{innerFontFamily}}; }{% endif %} {% if innerBackgroundColor %}#clockdiv > div > span { background: {{innerBackgroundColor}}; }{% endif %} {% if innerTextColor %}#clockdiv > div > span { color: {{innerTextColor}}; }{% endif %} {% if outerBackgroundColor %}#clockdiv > div { background: {{outerBackgroundColor}}; }{% endif %} {% if labelFontFamily %}#clockdiv .smalltext { font-family: {{labelFontFamily}}; }{% endif %} {% if labelTextColor %}#clockdiv > div { color: {{labelTextColor}}; }{% endif %} +{% if warningBackgroundColor1 %}.warning #clockdiv > div {background: {{warningBackgroundColor1}};}{% endif %} +{% if warningBackgroundColor2 %}.warning #clockdiv > div > span {background: {{warningBackgroundColor2}};}{% endif %} +{% if finishedBackgroundColor1 %}.finished #clockdiv > div {background: {{finishedBackgroundColor1}};}{% endif %} +{% if finishedBackgroundColor1 %}.finished #clockdiv > div > span {background: {{finishedBackgroundColor2}};}{% endif %} ]]> Label Colour #333 + + Warning Background Colour + darkgoldenrod + + + Finished Background Colour + darkred + @@ -229,22 +237,14 @@ body { font-size: 30px; } -.warning>#clockdiv>div>span { - border-color: darkgoldenrod; - color: darkgoldenrod; -} - -.finished>#clockdiv>div>span { - border-color: darkred; - color: darkred; -} - {% if textColor %}#clockdiv div>span { color: {{textColor}} !important; }{% endif %} {% if fontFamily %}#clockdiv div>span { font-family: {{fontFamily}} !important; }{% endif %} {% if textBackgroundColor %}#clockdiv div>span { background-color: {{textBackgroundColor}} !important; }{% endif %} {% if borderColor %}#clockdiv div>span { border-color: {{borderColor}} !important; }{% endif %} {% if labelTextColor %}#clockdiv { color: {{labelTextColor}} !important; }{% endif %} {% if labelFontFamily %}#clockdiv { font-family: {{labelFontFamily}} !important; }{% endif %} +{% if warningBackgroundColor %}.warning #clockdiv > div > span {border-color: {{warningBackgroundColor}} !important;color: {{warningBackgroundColor}} !important;}{% endif %} +{% if finishedBackgroundColor %}.finished #clockdiv > div > span {border-color: {{finishedBackgroundColor}} !important;color: {{finishedBackgroundColor}} !important;}{% endif %} ]]> - - Warning Duration - The countdown will show in a warning mode from the end duration entered. - - - - 1 - 2 - - - - - - 2 - - - - 1 - - - - - 0 - - - - - - Warning Date - The countdown will show in a warning mode from the warning date entered. - - - - 3 - - - - - 3 - - - - - Horizontal Align How should this widget be horizontally aligned? diff --git a/modules/countdown-text.xml b/modules/countdown-text.xml index c3a4b53227..fa35d721b7 100755 --- a/modules/countdown-text.xml +++ b/modules/countdown-text.xml @@ -192,14 +192,8 @@ body { {% if fontFamily %}.hoursAll, .hours, .minutes, .seconds { font-family: {{fontFamily}}; }{% endif %} {% if textColor %}.hoursAll, .hours, .minutes, .seconds { color: {{textColor}}; }{% endif %} {% if dividerTextColor %}.countdown-container > p > span { color: {{dividerTextColor}}; }{% endif %} - -.warning .seconds, .warning .minutes, .warning .hours, .warning .hoursAll { - color: {{warningColor}}; -} - -.finished .seconds, .finished .minutes, .finished .hours, .finished .hoursAll { - color: {{finishedColor}}; -} +{% if warningColor %}.warning .seconds, .warning .minutes, .warning .hours, .warning .hoursAll {color: {{warningColor}};}{% endif %} +{% if finishedColor %}.finished .seconds, .finished .minutes, .finished .hours, .finished .hoursAll {color: {{finishedColor}};}{% endif %} ]]> currencies currency %items%_%base% + 1 2 1 1 diff --git a/modules/dataset.xml b/modules/dataset.xml index 24343e8f4f..5a26cea11e 100755 --- a/modules/dataset.xml +++ b/modules/dataset.xml @@ -187,6 +187,15 @@ + + The substitution [Tag:tagName:defaultValue] can also be used in filter clauses. Replace tagName with the actual display tag name you want to use and defaultValue with the value to be used if the tag value is not found (e.g., [Tag:region:unknown]). At runtime, it will be substituted with the Display's tag value or defaultValue if the tag value is not found. When shown in the CMS, it will be substituted with an empty string if the tag is not found at all. + + + + + + + [] dataSetId diff --git a/modules/forecastio.xml b/modules/forecastio.xml index e6102edfbb..e62ec5e338 100755 --- a/modules/forecastio.xml +++ b/modules/forecastio.xml @@ -1,5 +1,5 @@ + {% for item in head %} diff --git a/package-lock.json b/package-lock.json index 0186d7d742..678ee2bd43 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2539,14 +2539,172 @@ } }, "@babel/plugin-transform-optional-chaining": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.5.tgz", - "integrity": "sha512-AconbMKOMkyG+xCng2JogMCDcqW8wedQAqpVIL4cOSescZ7+iW8utC6YDZLMCSUIReEA733gzRSaOSXMAt/4WQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + } + }, + "@babel/generator": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", + "dev": true, + "requires": { + "@babel/types": "^7.25.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "dev": true + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true + }, + "@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + } + }, + "@babel/parser": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "dev": true, + "requires": { + "@babel/types": "^7.25.2" + } + }, + "@babel/template": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" + } + }, + "@babel/traverse": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", + "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.2", + "debug": "^4.3.1", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "@babel/plugin-transform-parameters": { @@ -3071,6 +3229,14 @@ "to-fast-properties": "^2.0.0" } }, + "@cfcs/core": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@cfcs/core/-/core-0.0.6.tgz", + "integrity": "sha512-FxfJMwoLB8MEMConeXUCqtMGqxdtePQxRBOiGip9ULcYYam3WfCgoY6xdnMaSkYvRvmosp5iuG+TiPofm65+Pw==", + "requires": { + "@egjs/component": "^3.0.2" + } + }, "@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -3150,6 +3316,11 @@ "@egjs/list-differ": "^1.0.0" } }, + "@egjs/component": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@egjs/component/-/component-3.0.5.tgz", + "integrity": "sha512-cLcGizTrrUNA2EYE3MBmEDt2tQv1joVP1Q3oDisZ5nw0MZDx2kcgEXM+/kZpfa/PAkFvYVhRUZwytIQWoN3V/w==" + }, "@egjs/list-differ": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@egjs/list-differ/-/list-differ-1.0.1.tgz", @@ -8373,6 +8544,22 @@ "jquery": ">=1.9.1" } }, + "keycode": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.1.tgz", + "integrity": "sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg==" + }, + "keycon": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/keycon/-/keycon-1.4.0.tgz", + "integrity": "sha512-p1NAIxiRMH3jYfTeXRs2uWbVJ1WpEjpi8ktzUyBJsX7/wn2qu2VRXktneBLNtKNxJmlUYxRi9gOJt1DuthXR7A==", + "requires": { + "@cfcs/core": "^0.0.6", + "@daybrush/utils": "^1.7.1", + "@scena/event-emitter": "^1.0.2", + "keycode": "^2.2.0" + } + }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -10723,6 +10910,43 @@ "resolved": "https://registry.npmjs.org/select2-bootstrap-theme/-/select2-bootstrap-theme-0.1.0-beta.10.tgz", "integrity": "sha512-gc9Y9yNjkGRqeFmI/pAKyL4maMKH9VKAn62E+uF/hxz8FTmfuKH0sDEGhFhk3f8Jp+emtsDdK1c1nb6S51BV0Q==" }, + "selecto": { + "version": "1.26.3", + "resolved": "https://registry.npmjs.org/selecto/-/selecto-1.26.3.tgz", + "integrity": "sha512-gZHgqMy5uyB6/2YDjv3Qqaf7bd2hTDOpPdxXlrez4R3/L0GiEWDCFaUfrflomgqdb3SxHF2IXY0Jw0EamZi7cw==", + "requires": { + "@daybrush/utils": "^1.13.0", + "@egjs/children-differ": "^1.0.1", + "@scena/dragscroll": "^1.4.0", + "@scena/event-emitter": "^1.0.5", + "css-styled": "^1.0.8", + "css-to-mat": "^1.1.1", + "framework-utils": "^1.1.0", + "gesto": "^1.19.4", + "keycon": "^1.2.0", + "overlap-area": "^1.1.0" + }, + "dependencies": { + "css-to-mat": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/css-to-mat/-/css-to-mat-1.1.1.tgz", + "integrity": "sha512-kvpxFYZb27jRd2vium35G7q5XZ2WJ9rWjDUMNT36M3Hc41qCrLXFM5iEKMGXcrPsKfXEN+8l/riB4QzwwwiEyQ==", + "requires": { + "@daybrush/utils": "^1.13.0", + "@scena/matrix": "^1.0.0" + } + }, + "gesto": { + "version": "1.19.4", + "resolved": "https://registry.npmjs.org/gesto/-/gesto-1.19.4.tgz", + "integrity": "sha512-hfr/0dWwh0Bnbb88s3QVJd1ZRJeOWcgHPPwmiH6NnafDYvhTsxg+SLYu+q/oPNh9JS3V+nlr6fNs8kvPAtcRDQ==", + "requires": { + "@daybrush/utils": "^1.13.0", + "@scena/event-emitter": "^1.0.2" + } + } + } + }, "semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", @@ -11939,6 +12163,10 @@ "version": "git+https://github.com/xibosignage/xibo-interactive-control.git#44ad744a5a2a0af9e7fcdb828dbdbeff45cc40f0", "from": "git+https://github.com/xibosignage/xibo-interactive-control.git#44ad744a5a2a0af9e7fcdb828dbdbeff45cc40f0" }, + "xibo-layout-renderer": { + "version": "git+https://github.com/xibosignage/xibo-layout-renderer.git#73b357402c5c483befa868889ce710698c34ffb3", + "from": "git+https://github.com/xibosignage/xibo-layout-renderer.git#73b357402c5c483befa868889ce710698c34ffb3" + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index 25d4350925..7cdf3de11f 100644 --- a/package.json +++ b/package.json @@ -118,9 +118,11 @@ "popper.js": "^1.16.1", "select2": "4.1.0-rc.0", "select2-bootstrap-theme": "0.1.0-beta.10", + "selecto": "^1.26.3", "serialize-javascript": "^3.1.0", "toastr": "~2.1.4", "underscore": "^1.12.1", - "xibo-interactive-control": "git+https://github.com/xibosignage/xibo-interactive-control.git#44ad744a5a2a0af9e7fcdb828dbdbeff45cc40f0" + "xibo-interactive-control": "git+https://github.com/xibosignage/xibo-interactive-control.git#44ad744a5a2a0af9e7fcdb828dbdbeff45cc40f0", + "xibo-layout-renderer": "git+https://github.com/xibosignage/xibo-layout-renderer.git#73b357402c5c483befa868889ce710698c34ffb3" } } diff --git a/reports/apirequests-email-template.twig b/reports/apirequests-email-template.twig new file mode 100644 index 0000000000..d8ef7743db --- /dev/null +++ b/reports/apirequests-email-template.twig @@ -0,0 +1,112 @@ +{# +/** + * Copyright (C) 2024 Xibo Signage Ltd + * + * Xibo - Digital Signage - https://xibosignage.com + * + * This file is part of Xibo. + * + * Xibo is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * Xibo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Xibo. If not, see . + */ +#} +{% extends "base-report.twig" %} + +{% block content %} +
+ {% trans "From" %} {{ metadata.periodStart }} {% trans "To" %} {{ metadata.periodEnd }} +
+

+ + + {% if metadata.logType == 'audit' %} + + + + + + + + + + + + + + {% for item in tableData %} + + + + + + + + + + + + + + {% endfor %} + {% elseif metadata.logType == 'debug' %} + + + + + + + + + + + + {% for item in tableData %} + + + + + + + + + + + + {% endfor %} + {% else %} + + + + + + + + + + {% for item in tableData %} + + + + + + + + + + {% endfor %} + {% endif %} +
{% trans "Date" %}{% trans "User Name" %}{% trans "User ID" %}{% trans "Application" %}{% trans "Request ID" %}{% trans "Method" %}{% trans "Url" %}{% trans "Entity" %}{% trans "Entity ID" %}{% trans "Message" %}{% trans "Details" %}
{{ item.logDate }}{{ item.userName }}{{ item.userId }}{{ item.applicationName }}{{ item.requestId }}{{ item.method }}{{ item.url }}{{ item.entity }}{{ item.entityId }}{{ item.message }}{{ item.objectAfter }}
{% trans "Date" %}{% trans "UserName" %}{% trans "User ID" %}{% trans "Application" %}{% trans "Request ID" %}{% trans "Method" %}{% trans "Url" %}{% trans "Level" %}{% trans "Details" %}
{{ item.logDate }}{{ item.userName }}{{ item.userId }}{{ item.applicationName }}{{ item.requestId }}{{ item.method }}{{ item.url }}{{ item.type }}{{ item.message }}
{% trans "Date" %}{% trans "UserName" %}{% trans "User ID" %}{% trans "Application" %}{% trans "Request ID" %}{% trans "Method" %}{% trans "Url" %}
{{ item.startTime }}{{ item.userName }}{{ item.userId }}{{ item.applicationName }}{{ item.requestId }}{{ item.method }}{{ item.url }}
+
+ {{ placeholder }} + +{% endblock %} \ No newline at end of file diff --git a/reports/apirequests-report-form.twig b/reports/apirequests-report-form.twig new file mode 100644 index 0000000000..8deecf7fb2 --- /dev/null +++ b/reports/apirequests-report-form.twig @@ -0,0 +1,393 @@ +{# +/** + * Copyright (C) 2024 Xibo Signage Ltd + * + * Xibo - Digital Signage - https://xibosignage.com + * + * This file is part of Xibo. + * + * Xibo is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * Xibo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Xibo. If not, see . + */ +#} + +{% extends "authed.twig" %} +{% import "inline.twig" as inline %} + +{% block title %}{% trans "Report: API Requests History" %} | {% endblock %} + +{% block actionMenu %} + {% include "report-schedule-buttons.twig" %} +{% endblock %} + +{% block pageContent %} + +
+
+ {% trans "API Requests History" %} +
+ + {% include "report-selector.twig" %} + +
+
+
+
+
+ {% set title %}{% trans "From Date" %}{% endset %} + {{ inline.date("fromDt", title, defaults.fromDate, "", "", "", "") }} + + {% set title %}{% trans "To Date" %}{% endset %} + {{ inline.date("toDt", title, defaults.toDate, "", "", "", "") }} + + {% set title %}{% trans "User" %}{% endset %} + {% set attributes = [ + { name: "data-width", value: "200px" }, + { name: "data-allow-clear", value: "true" }, + { name: "data-placeholder--id", value: null }, + { name: "data-placeholder--value", value: "" }, + { name: "data-search-url", value: url_for("user.search") }, + { name: "data-search-term", value: "userName" }, + { name: "data-id-property", value: "userId" }, + { name: "data-text-property", value: "userName" }, + ] %} + {{ inline.dropdown("userId", "single", title, "", null, "userId", "userName", "", "pagedSelect", "", "d", "", attributes) }} + + {% set title %}{% trans "Request ID" %}{% endset %} + {{ inline.number('requestId', title) }} + + {% set title = "Report Type"|trans %} + {% set options = [ + { id: 'requests', value: "Requests"|trans }, + { id: 'audit', value: "Audit"|trans }, + { id: 'debug', value: "Debug"|trans }, + ] %} + {{ inline.dropdown("type", "single", title, "audit", options, "id", "value", helpText) }} + +
+ + {% trans "Apply" %} + + + +
+
+
+
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + +
{% trans "Date" %}{% trans "User Name" %}{% trans "User ID" %}{% trans "Application" %}{% trans "Request ID" %}{% trans "Method" %}{% trans "Url" %}{% trans "Entity" %}{% trans "Entity ID" %}{% trans "Message" %}{% trans "Details" %}
+
+
+ +
+ +
+ + + + + + + + + + + + + + + + + +
{% trans "Date" %}{% trans "UserName" %}{% trans "User ID" %}{% trans "Application" %}{% trans "Request ID" %}{% trans "Method" %}{% trans "Url" %}{% trans "Level" %}{% trans "Details" %}
+
+
+ +
+ +
+ + + + + + + + + + + + + + + +
{% trans "Date" %}{% trans "UserName" %}{% trans "User ID" %}{% trans "Application" %}{% trans "Request ID" %}{% trans "Method" %}{% trans "Url" %}
+
+
+
+
+
+ +{% endblock %} + +{% block javaScript %} + {% verbatim %} + + {% endverbatim %} + + +{% endblock %} \ No newline at end of file diff --git a/reports/apirequests-report-preview.twig b/reports/apirequests-report-preview.twig new file mode 100644 index 0000000000..4272176f7e --- /dev/null +++ b/reports/apirequests-report-preview.twig @@ -0,0 +1,216 @@ +{# +/** + * Copyright (C) 2024 Xibo Signage Ltd + * + * Xibo - Digital Signage - https://xibosignage.com + * + * This file is part of Xibo. + * + * Xibo is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * Xibo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Xibo. If not, see . + */ +#} + +{% extends "authed.twig" %} +{% import "inline.twig" as inline %} + +{% block actionMenu %} +
+ +
+{% endblock %} + +{% block pageContent %} + +
+
+ + {{ metadata.title }} + ({% trans "Generated on: " %}{{ metadata.generatedOn }}) +
{% trans "From" %} {{ metadata.periodStart }} {% trans "To" %} {{ metadata.periodEnd }}
+
+
+ +
+
+ {% if metadata.logType == 'audit' %} +
+ + + + + + + + + + + + + + + + + + + +
{% trans "Date" %}{% trans "User Name" %}{% trans "User ID" %}{% trans "Application" %}{% trans "Request ID" %}{% trans "Method" %}{% trans "Url" %}{% trans "Entity" %}{% trans "Entity ID" %}{% trans "Message" %}{% trans "Details" %}
+
+ {% elseif metadata.logType == 'debug' %} +
+ + + + + + + + + + + + + + + + + +
{% trans "Date" %}{% trans "UserName" %}{% trans "User ID" %}{% trans "Application" %}{% trans "Request ID" %}{% trans "Method" %}{% trans "Url" %}{% trans "Level" %}{% trans "Details" %}
+
+ {% else %} +
+ + + + + + + + + + + + + + + +
{% trans "Date" %}{% trans "UserName" %}{% trans "User ID" %}{% trans "Application" %}{% trans "Request ID" %}{% trans "Method" %}{% trans "Url" %}
+
+ {% endif %} +
+
+
+ +{% endblock %} + +{% block javaScript %} + +{% endblock %} \ No newline at end of file diff --git a/reports/apirequests-schedule-form-add.twig b/reports/apirequests-schedule-form-add.twig new file mode 100644 index 0000000000..add3fa0e9d --- /dev/null +++ b/reports/apirequests-schedule-form-add.twig @@ -0,0 +1,95 @@ +{# +/** + * Copyright (C) 2024 Xibo Signage Ltd + * + * Xibo - Digital Signage - https://xibosignage.com + * + * This file is part of Xibo. + * + * Xibo is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * Xibo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Xibo. If not, see . + */ +#} +{% extends "form-base.twig" %} +{% import "forms.twig" as forms %} + +{% block formTitle %} + {% trans "Add Report Schedule" %} +{% endblock %} + +{% block formButtons %} + {% trans "Cancel" %}, XiboDialogClose() + {% trans "Save" %}, $("#reportScheduleAddForm").submit() +{% endblock %} + +{% block formHtml %} +
+
+
+ {{ forms.hidden("hiddenFields", hiddenFields) }} + {{ forms.hidden("reportName", reportName) }} + + {% set title %}{% trans "Name" %}{% endset %} + {% set helpText %}{% trans "The name for this report schedule" %}{% endset %} + {{ forms.input("name", title, "", helpText, "", "required") }} + + {% set title %}{% trans "Frequency" %}{% endset %} + {% set helpText %}{% trans "Select how frequently you would like this report to run" %}{% endset %} + {% set daily %}{% trans "Daily" %}{% endset %} + {% set weekly %}{% trans "Weekly" %}{% endset %} + {% set monthly %}{% trans "Monthly" %}{% endset %} + {% set yearly %}{% trans "Yearly" %}{% endset %} + {% set options = [ + { name: "daily", filter: daily }, + { name: "weekly", filter: weekly }, + { name: "monthly", filter: monthly }, + { name: "yearly", filter: yearly }, + ] %} + {{ forms.dropdown("filter", "single", title, "", options, "name", "filter", helpText) }} + + {% set title %}{% trans "User" %}{% endset %} + {% set attributes = [ + { name: "data-width", value: "100%" }, + { name: "data-allow-clear", value: "true" }, + { name: "data-placeholder--id", value: null }, + { name: "data-placeholder--value", value: "" }, + { name: "data-search-url", value: url_for("user.search") }, + { name: "data-search-term", value: "userName" }, + { name: "data-id-property", value: "userId" }, + { name: "data-text-property", value: "userName" }, + ] %} + {{ forms.dropdown("userId", "single", title, "", null, "userId", "userName", "", "pagedSelect", "", "d", "", attributes) }} + + {% set title = "Report Type"|trans %} + {% set options = [ + { id: 'requests', value: "Requests"|trans }, + { id: 'audit', value: "Audit"|trans }, + { id: 'debug', value: "Debug"|trans }, + ] %} + {{ forms.dropdown("type", "single", title, "audit", options, "id", "value", helpText) }} + + {% set title %}{% trans "Start Time" %}{% endset %} + {% set helpText %}{% trans "Set a future date and time to run this report. Leave blank to run from the next collection point." %}{% endset %} + {{ forms.dateTime("fromDt", title, "", helpText, "starttime-control") }} + + {% set title %}{% trans "End Time" %}{% endset %} + {% set helpText %}{% trans "Set a future date and time to end the schedule. Leave blank to run indefinitely." %}{% endset %} + {{ forms.dateTime("toDt", title, "", helpText, "endtime-control") }} + + {% set title %}{% trans "Email addresses" %}{% endset %} + {% set helpText %}{% trans "Additional emails separated by a comma." %}{% endset %} + {{ forms.inputWithTags("nonusers", title, nonusers, helpText) }} +
+
+
+{% endblock %} \ No newline at end of file diff --git a/reports/apirequests.report b/reports/apirequests.report new file mode 100644 index 0000000000..e445102645 --- /dev/null +++ b/reports/apirequests.report @@ -0,0 +1,14 @@ +{ + "name": "apirequests", + "description": "API Requests History", + "class": "\\Xibo\\Report\\ApiRequests", + "type": "Report", + "output_type": "table", + "color":"orange", + "fa_icon": "fa-th", + "sort_order": 5, + "hidden": 0, + "category": "Audit", + "feature": "admin", + "adminOnly": 1 +} diff --git a/reports/bandwidth-report-form.twig b/reports/bandwidth-report-form.twig index 4f7f6936d0..2e012fdb3b 100644 --- a/reports/bandwidth-report-form.twig +++ b/reports/bandwidth-report-form.twig @@ -138,7 +138,7 @@ {% endblock %} {% block javaScript %} - +{% endblock %} \ No newline at end of file diff --git a/reports/displayalerts-report-preview.twig b/reports/displayalerts-report-preview.twig new file mode 100644 index 0000000000..4b601467a4 --- /dev/null +++ b/reports/displayalerts-report-preview.twig @@ -0,0 +1,122 @@ +{# +/** + * Copyright (C) 2020 Xibo Signage Ltd + * + * Xibo - Digital Signage - http://www.xibo.org.uk + * + * This file is part of Xibo. + * + * Xibo is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * Xibo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Xibo. If not, see . + */ +#} + +{% extends "authed.twig" %} +{% import "inline.twig" as inline %} + +{% block actionMenu %} +
+ +
+{% endblock %} + +{% block pageContent %} + +
+
+ + {{ metadata.title }} + ({% trans "Generated on: " %}{{ metadata.generatedOn }}) +
{% trans "From" %} {{ metadata.periodStart }} {% trans "To" %} {{ metadata.periodEnd }}
+
+
+ +
+
+ +
+ + + + + + + + + + + + + + + +
{% trans "Display ID" %}{% trans "Display" %}{% trans "Event Type" %}{% trans "Start" %}{% trans "End" %}{% trans "Reference" %}{% trans "Detail" %}
+
+
+
+
+ +{% endblock %} + +{% block javaScript %} + +{% endblock %} \ No newline at end of file diff --git a/reports/displayalerts-schedule-form-add.twig b/reports/displayalerts-schedule-form-add.twig new file mode 100644 index 0000000000..5a60f409a8 --- /dev/null +++ b/reports/displayalerts-schedule-form-add.twig @@ -0,0 +1,106 @@ +{# +/** + * Copyright (C) 2024 Xibo Signage Ltd + * + * Xibo - Digital Signage - https://xibosignage.com + * + * This file is part of Xibo. + * + * Xibo is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * Xibo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Xibo. If not, see . + */ +#} +{% extends "form-base.twig" %} +{% import "forms.twig" as forms %} + +{% block formTitle %} + {% trans "Add Report Schedule" %} +{% endblock %} + +{% block formButtons %} + {% trans "Cancel" %}, XiboDialogClose() + {% trans "Save" %}, $("#reportScheduleAddForm").submit() +{% endblock %} + +{% block callBack %}displayAlertsReportScheduleFormOpen{% endblock %} + +{% block formHtml %} +
+
+
+ {{ forms.hidden("hiddenFields", hiddenFields) }} + {{ forms.hidden("reportName", reportName) }} + + {% set title %}{% trans "Name" %}{% endset %} + {% set helpText %}{% trans "The name for this report schedule" %}{% endset %} + {{ forms.input("name", title, "", helpText, "", "required") }} + + {% set title %}{% trans "Frequency" %}{% endset %} + {% set helpText %}{% trans "Select how frequently you would like this report to run" %}{% endset %} + {% set daily %}{% trans "Daily" %}{% endset %} + {% set weekly %}{% trans "Weekly" %}{% endset %} + {% set monthly %}{% trans "Monthly" %}{% endset %} + {% set yearly %}{% trans "Yearly" %}{% endset %} + {% set options = [ + { name: "daily", filter: daily }, + { name: "weekly", filter: weekly }, + { name: "monthly", filter: monthly }, + { name: "yearly", filter: yearly }, + ] %} + {{ forms.dropdown("filter", "single", title, "", options, "name", "filter", helpText) }} + + {% set title %}{% trans "Display" %}{% endset %} + {% set attributes = [ + { name: "data-width", value: "100%" }, + { name: "data-allow-clear", value: "true" }, + { name: "data-placeholder--id", value: null }, + { name: "data-placeholder--value", value: "" }, + { name: "data-search-url", value: url_for("display.search") }, + { name: "data-search-term", value: "display" }, + { name: "data-search-term-tags", value: "tags" }, + { name: "data-id-property", value: "displayId" }, + { name: "data-text-property", value: "display" } + ] %} + {{ forms.dropdown("displayId", "single", title, "", null, "displayId", "display", "", "pagedSelect", "", "d", "", attributes) }} + + {% set title %}{% trans "Display Group" %}{% endset %} + {% set attributes = [ + { name: "data-width", value: "100%" }, + { name: "data-allow-clear", value: "true" }, + { name: "data-placeholder--id", value: null }, + { name: "data-placeholder--value", value: "" }, + { name: "data-search-url", value: url_for("displayGroup.search") }, + { name: "data-search-term", value: "displayGroup" }, + { name: "data-id-property", value: "displayGroupId" }, + { name: "data-text-property", value: "displayGroup" } + ] %} + {{ forms.dropdown("displayGroupId[]", "dropdownmulti", title, "", null, "displayGroupId", "displayGroup", "", "pagedSelect", "", "d", "", attributes) }} + + {% set title %}{% trans "Start Time" %}{% endset %} + {% set helpText %}{% trans "Set a future date and time to run this report. Leave blank to run from the next collection point." %}{% endset %} + {{ forms.dateTime("fromDt", title, "", helpText, "starttime-control") }} + + {% set title %}{% trans "End Time" %}{% endset %} + {% set helpText %}{% trans "Set a future date and time to end the schedule. Leave blank to run indefinitely." %}{% endset %} + {{ forms.dateTime("toDt", title, "", helpText, "endtime-control") }} + + {% set title %}{% trans "Should an email be sent?" %}{% endset %} + {{ forms.checkbox("sendEmail", title, sendEmail) }} + + {% set title %}{% trans "Email addresses" %}{% endset %} + {% set helpText %}{% trans "Additional emails separated by a comma." %}{% endset %} + {{ forms.inputWithTags("nonusers", title, nonusers, helpText) }} +
+
+
+{% endblock %} \ No newline at end of file diff --git a/reports/displayalerts.report b/reports/displayalerts.report new file mode 100644 index 0000000000..d5616ccd4f --- /dev/null +++ b/reports/displayalerts.report @@ -0,0 +1,14 @@ +{ + "name": "displayalerts", + "description": "Display Alerts", + "class": "\\Xibo\\Report\\DisplayAlerts", + "type": "Report", + "output_type": "table", + "color":"orange", + "fa_icon": "fa-bell", + "sort_order": 5, + "hidden": 0, + "category": "Display", + "feature": "displays.reporting", + "adminOnly": 0 +} \ No newline at end of file diff --git a/reports/distribution-report-form.twig b/reports/distribution-report-form.twig index 40a40560f8..cc3863a504 100644 --- a/reports/distribution-report-form.twig +++ b/reports/distribution-report-form.twig @@ -228,7 +228,7 @@ {% endblock %} {% block javaScript %} - + {% endverbatim %} + + +{% endblock %} \ No newline at end of file diff --git a/reports/sessionhistory-report-preview.twig b/reports/sessionhistory-report-preview.twig new file mode 100644 index 0000000000..82f170bb56 --- /dev/null +++ b/reports/sessionhistory-report-preview.twig @@ -0,0 +1,104 @@ +{# +/** + * Copyright (C) 2024 Xibo Signage Ltd + * + * Xibo - Digital Signage - https://xibosignage.com + * + * This file is part of Xibo. + * + * Xibo is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * Xibo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Xibo. If not, see . + */ +#} + +{% extends "authed.twig" %} +{% import "inline.twig" as inline %} + +{% block actionMenu %} +
+ +
+{% endblock %} + +{% block pageContent %} + +
+
+ + {{ metadata.title }} + ({% trans "Generated on: " %}{{ metadata.generatedOn }}) +
{% trans "From" %} {{ metadata.periodStart }} {% trans "To" %} {{ metadata.periodEnd }}
+
+
+ +
+
+ +
+ + + + + + + + + + + + + + + +
{% trans "Date" %}{% trans "User Name" %}{% trans "User ID" %}{% trans "IP Address" %}{% trans "Session ID" %}{% trans "Message" %}{% trans "Object" %}
+
+
+
+
+ +{% endblock %} + +{% block javaScript %} + +{% endblock %} \ No newline at end of file diff --git a/reports/sessionhistory-schedule-form-add.twig b/reports/sessionhistory-schedule-form-add.twig new file mode 100644 index 0000000000..b4837e2d4b --- /dev/null +++ b/reports/sessionhistory-schedule-form-add.twig @@ -0,0 +1,94 @@ +{# +/** + * Copyright (C) 2024 Xibo Signage Ltd + * + * Xibo - Digital Signage - https://xibosignage.com + * + * This file is part of Xibo. + * + * Xibo is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * Xibo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Xibo. If not, see . + */ +#} +{% extends "form-base.twig" %} +{% import "forms.twig" as forms %} + +{% block formTitle %} + {% trans "Add Report Schedule" %} +{% endblock %} + +{% block formButtons %} + {% trans "Cancel" %}, XiboDialogClose() + {% trans "Save" %}, $("#reportScheduleAddForm").submit() +{% endblock %} + +{% block formHtml %} +
+
+
+ {{ forms.hidden("hiddenFields", hiddenFields) }} + {{ forms.hidden("reportName", reportName) }} + + {% set title %}{% trans "Name" %}{% endset %} + {% set helpText %}{% trans "The name for this report schedule" %}{% endset %} + {{ forms.input("name", title, "", helpText, "", "required") }} + + {% set title %}{% trans "Frequency" %}{% endset %} + {% set helpText %}{% trans "Select how frequently you would like this report to run" %}{% endset %} + {% set daily %}{% trans "Daily" %}{% endset %} + {% set weekly %}{% trans "Weekly" %}{% endset %} + {% set monthly %}{% trans "Monthly" %}{% endset %} + {% set yearly %}{% trans "Yearly" %}{% endset %} + {% set options = [ + { name: "daily", filter: daily }, + { name: "weekly", filter: weekly }, + { name: "monthly", filter: monthly }, + { name: "yearly", filter: yearly }, + ] %} + {{ forms.dropdown("filter", "single", title, "", options, "name", "filter", helpText) }} + + {% set title %}{% trans "User" %}{% endset %} + {% set attributes = [ + { name: "data-width", value: "100%" }, + { name: "data-allow-clear", value: "true" }, + { name: "data-placeholder--id", value: null }, + { name: "data-placeholder--value", value: "" }, + { name: "data-search-url", value: url_for("user.search") }, + { name: "data-search-term", value: "userName" }, + { name: "data-id-property", value: "userId" }, + { name: "data-text-property", value: "userName" }, + ] %} + {{ forms.dropdown("userId", "single", title, "", null, "userId", "userName", "", "pagedSelect", "", "d", "", attributes) }} + + {% set title = "Report Type"|trans %} + {% set options = [ + { id: 'audit', value: "Audit"|trans }, + { id: 'debug', value: "Debug"|trans }, + ] %} + {{ forms.dropdown("type", "single", title, "audit", options, "id", "value", helpText) }} + + {% set title %}{% trans "Start Time" %}{% endset %} + {% set helpText %}{% trans "Set a future date and time to run this report. Leave blank to run from the next collection point." %}{% endset %} + {{ forms.dateTime("fromDt", title, "", helpText, "starttime-control") }} + + {% set title %}{% trans "End Time" %}{% endset %} + {% set helpText %}{% trans "Set a future date and time to end the schedule. Leave blank to run indefinitely." %}{% endset %} + {{ forms.dateTime("toDt", title, "", helpText, "endtime-control") }} + + {% set title %}{% trans "Email addresses" %}{% endset %} + {% set helpText %}{% trans "Additional emails separated by a comma." %}{% endset %} + {{ forms.inputWithTags("nonusers", title, nonusers, helpText) }} +
+
+
+{% endblock %} \ No newline at end of file diff --git a/reports/sessionhistory.report b/reports/sessionhistory.report new file mode 100644 index 0000000000..1bcb37f9d9 --- /dev/null +++ b/reports/sessionhistory.report @@ -0,0 +1,14 @@ +{ + "name": "sessionhistory", + "description": "Session History", + "class": "\\Xibo\\Report\\SessionHistory", + "type": "Report", + "output_type": "table", + "color":"orange", + "fa_icon": "fa-th", + "sort_order": 5, + "hidden": 0, + "category": "Audit", + "feature": "admin", + "adminOnly": 1 +} diff --git a/reports/summary-report-form.twig b/reports/summary-report-form.twig index 61610adea4..6a8eae7a45 100644 --- a/reports/summary-report-form.twig +++ b/reports/summary-report-form.twig @@ -229,7 +229,7 @@ {% endblock %} {% block javaScript %} - + +``` -**Note:** CKEditor is by default installed in the `ckeditor` folder. You can -place the files in whichever you want though. +Or in your JavaScript application: -## Checking Your Installation +```js +import ClassicEditor from '@ckeditor/ckeditor5-build-classic'; -The editor comes with a few sample pages that can be used to verify that -installation proceeded properly. Take a look at the `samples` directory. +// Or using the CommonJS version: +// const ClassicEditor = require( '@ckeditor/ckeditor5-build-classic' ); -To test your installation, just call the following page at your website: +ClassicEditor + .create( document.querySelector( '#editor' ) ) + .then( editor => { + window.editor = editor; + } ) + .catch( error => { + console.error( 'There was a problem initializing the editor.', error ); + } ); +``` - http:////samples/index.html +**Note:** If you are planning to integrate CKEditor 5 deep into your application, it is actually more convenient and recommended to install and import the source modules directly (like it happens in `ckeditor.js`). Read more in the [Advanced setup guide](https://ckeditor.com/docs/ckeditor5/latest/installation/advanced/alternative-setups/integrating-from-source-webpack.html). -For example: +## License - http://www.example.com/ckeditor/samples/index.html +Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html). For full details about the license, please check the `LICENSE.md` file or [https://ckeditor.com/legal/ckeditor-oss-license](https://ckeditor.com/legal/ckeditor-oss-license). diff --git a/ui/src/vendor/ckeditor/adapters/jquery.js b/ui/src/vendor/ckeditor/adapters/jquery.js deleted file mode 100644 index 0f6e64fbe3..0000000000 --- a/ui/src/vendor/ckeditor/adapters/jquery.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license -*/ -(function(a){if("undefined"==typeof a)throw Error("jQuery should be loaded before CKEditor jQuery adapter.");if("undefined"==typeof CKEDITOR)throw Error("CKEditor should be loaded before CKEditor jQuery adapter.");CKEDITOR.config.jqueryOverrideVal="undefined"==typeof CKEDITOR.config.jqueryOverrideVal?!0:CKEDITOR.config.jqueryOverrideVal;a.extend(a.fn,{ckeditorGet:function(){var a=this.eq(0).data("ckeditorInstance");if(!a)throw"CKEditor is not initialized yet, use ckeditor() with a callback.";return a}, -ckeditor:function(g,e){if(!CKEDITOR.env.isCompatible)throw Error("The environment is incompatible.");if(!a.isFunction(g)){var m=e;e=g;g=m}var k=[];e=e||{};this.each(function(){var b=a(this),c=b.data("ckeditorInstance"),f=b.data("_ckeditorInstanceLock"),h=this,l=new a.Deferred;k.push(l.promise());if(c&&!f)g&&g.apply(c,[this]),l.resolve();else if(f)c.once("instanceReady",function(){setTimeout(function d(){c.element?(c.element.$==h&&g&&g.apply(c,[h]),l.resolve()):setTimeout(d,100)},0)},null,null,9999); -else{if(e.autoUpdateElement||"undefined"==typeof e.autoUpdateElement&&CKEDITOR.config.autoUpdateElement)e.autoUpdateElementJquery=!0;e.autoUpdateElement=!1;b.data("_ckeditorInstanceLock",!0);c=a(this).is("textarea")?CKEDITOR.replace(h,e):CKEDITOR.inline(h,e);b.data("ckeditorInstance",c);c.on("instanceReady",function(e){var d=e.editor;setTimeout(function n(){if(d.element){e.removeListener();d.on("dataReady",function(){b.trigger("dataReady.ckeditor",[d])});d.on("setData",function(a){b.trigger("setData.ckeditor", -[d,a.data])});d.on("getData",function(a){b.trigger("getData.ckeditor",[d,a.data])},999);d.on("destroy",function(){b.trigger("destroy.ckeditor",[d])});d.on("save",function(){a(h.form).submit();return!1},null,null,20);if(d.config.autoUpdateElementJquery&&b.is("textarea")&&a(h.form).length){var c=function(){b.ckeditor(function(){d.updateElement()})};a(h.form).submit(c);a(h.form).bind("form-pre-serialize",c);b.bind("destroy.ckeditor",function(){a(h.form).unbind("submit",c);a(h.form).unbind("form-pre-serialize", -c)})}d.on("destroy",function(){b.removeData("ckeditorInstance")});b.removeData("_ckeditorInstanceLock");b.trigger("instanceReady.ckeditor",[d]);g&&g.apply(d,[h]);l.resolve()}else setTimeout(n,100)},0)},null,null,9999)}});var f=new a.Deferred;this.promise=f.promise();a.when.apply(this,k).then(function(){f.resolve()});this.editor=this.eq(0).data("ckeditorInstance");return this}});CKEDITOR.config.jqueryOverrideVal&&(a.fn.val=CKEDITOR.tools.override(a.fn.val,function(g){return function(e){if(arguments.length){var m= -this,k=[],f=this.each(function(){var b=a(this),c=b.data("ckeditorInstance");if(b.is("textarea")&&c){var f=new a.Deferred;c.setData(e,function(){f.resolve()});k.push(f.promise());return!0}return g.call(b,e)});if(k.length){var b=new a.Deferred;a.when.apply(this,k).done(function(){b.resolveWith(m)});return b.promise()}return f}var f=a(this).eq(0),c=f.data("ckeditorInstance");return f.is("textarea")&&c?c.getData():g.call(f)}}))})(window.jQuery); \ No newline at end of file diff --git a/ui/src/vendor/ckeditor/build/ckeditor.d.ts b/ui/src/vendor/ckeditor/build/ckeditor.d.ts new file mode 100644 index 0000000000..5426caa045 --- /dev/null +++ b/ui/src/vendor/ckeditor/build/ckeditor.d.ts @@ -0,0 +1,15 @@ +/** + * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license + */ +import { ClassicEditor as ClassicEditorBase } from '@ckeditor/ckeditor5-editor-classic'; +import { InlineEditor as InlineEditorBase } from '@ckeditor/ckeditor5-editor-inline'; +declare class ClassicEditor extends ClassicEditorBase { +} +declare class InlineEditor extends InlineEditorBase { +} +declare const _default: { + ClassicEditor: typeof ClassicEditor; + InlineEditor: typeof InlineEditor; +}; +export default _default; diff --git a/ui/src/vendor/ckeditor/build/ckeditor.js b/ui/src/vendor/ckeditor/build/ckeditor.js new file mode 100644 index 0000000000..59cf544c7c --- /dev/null +++ b/ui/src/vendor/ckeditor/build/ckeditor.js @@ -0,0 +1,7 @@ +!function(t){const e=t.en=t.en||{};e.dictionary=Object.assign(e.dictionary||{},{"(may require Fn)":"(may require Fn)","%0 of %1":"%0 of %1",Accept:"Accept",Accessibility:"Accessibility","Accessibility help":"Accessibility help","Align cell text to the bottom":"Align cell text to the bottom","Align cell text to the center":"Align cell text to the center","Align cell text to the left":"Align cell text to the left","Align cell text to the middle":"Align cell text to the middle","Align cell text to the right":"Align cell text to the right","Align cell text to the top":"Align cell text to the top","Align center":"Align center","Align left":"Align left","Align right":"Align right","Align table to the left":"Align table to the left","Align table to the right":"Align table to the right",Alignment:"Alignment",All:"All","Almost equal to":"Almost equal to",Angle:"Angle","Approximately equal to":"Approximately equal to",Aquamarine:"Aquamarine",Arrows:"Arrows","Asterisk operator":"Asterisk operator","Austral sign":"Austral sign","back with leftwards arrow above":"back with leftwards arrow above",Background:"Background","Below, you can find a list of keyboard shortcuts that can be used in the editor.":"Below, you can find a list of keyboard shortcuts that can be used in the editor.",Big:"Big","Bitcoin sign":"Bitcoin sign",Black:"Black","Block quote":"Block quote",Blue:"Blue",Bold:"Bold","Bold text":"Bold text",Border:"Border","Break text":"Break text","Bulleted List":"Bulleted List","Bulleted list styles toolbar":"Bulleted list styles toolbar",Cancel:"Cancel","Caption for image: %0":"Caption for image: %0","Caption for the image":"Caption for the image","Cedi sign":"Cedi sign","Cell properties":"Cell properties","Cent sign":"Cent sign","Center table":"Center table","Centered image":"Centered image","Change image text alternative":"Change image text alternative","Character categories":"Character categories","Choose heading":"Choose heading",Circle:"Circle",Clear:"Clear","Click to edit block":"Click to edit block",Close:"Close","Close contextual balloons, dropdowns, and dialogs":"Close contextual balloons, dropdowns, and dialogs",Code:"Code","Colon sign":"Colon sign",Color:"Color","Color picker":"Color picker",Column:"Column","Contains as member":"Contains as member","Content editing keystrokes":"Content editing keystrokes","Copy selected content":"Copy selected content","Copyright sign":"Copyright sign","Cruzeiro sign":"Cruzeiro sign",Currency:"Currency","Currency sign":"Currency sign",Custom:"Custom","Custom image size":"Custom image size",Dashed:"Dashed",Decimal:"Decimal","Decimal with leading zero":"Decimal with leading zero","Decrease indent":"Decrease indent","Decrease list item indent":"Decrease list item indent",Default:"Default","Degree sign":"Degree sign","Delete column":"Delete column","Delete row":"Delete row","Dim grey":"Dim grey",Dimensions:"Dimensions",Disc:"Disc","Division sign":"Division sign","Document colors":"Document colors","Dollar sign":"Dollar sign","Dong sign":"Dong sign",Dotted:"Dotted",Double:"Double","Double dagger":"Double dagger","Double exclamation mark":"Double exclamation mark","Double low-9 quotation mark":"Double low-9 quotation mark","Double question mark":"Double question mark","downwards arrow to bar":"downwards arrow to bar","downwards dashed arrow":"downwards dashed arrow","downwards double arrow":"downwards double arrow","downwards simple arrow":"downwards simple arrow","Drachma sign":"Drachma sign","Drag to move":"Drag to move","Dropdown toolbar":"Dropdown toolbar","Edit block":"Edit block","Editor block content toolbar":"Editor block content toolbar","Editor contextual toolbar":"Editor contextual toolbar","Editor dialog":"Editor dialog","Editor editing area: %0":"Editor editing area: %0","Editor menu bar":"Editor menu bar","Editor toolbar":"Editor toolbar","Element of":"Element of","Em dash":"Em dash","Empty set":"Empty set","En dash":"En dash","end with leftwards arrow above":"end with leftwards arrow above","Enter image caption":"Enter image caption","Enter table caption":"Enter table caption","Entering a to-do list":"Entering a to-do list","Error during image upload":"Error during image upload","Euro sign":"Euro sign","Euro-currency sign":"Euro-currency sign","Exclamation question mark":"Exclamation question mark","Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.":"Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content.","Font Background Color":"Font Background Color","Font Color":"Font Color","Font Family":"Font Family","Font Size":"Font Size","For all":"For all","Fraction slash":"Fraction slash","French franc sign":"French franc sign","Full size image":"Full size image","German penny sign":"German penny sign","Greater-than or equal to":"Greater-than or equal to","Greater-than sign":"Greater-than sign",Green:"Green",Grey:"Grey",Groove:"Groove","Guarani sign":"Guarani sign","Header column":"Header column","Header row":"Header row",Heading:"Heading","Heading 1":"Heading 1","Heading 2":"Heading 2","Heading 3":"Heading 3","Heading 4":"Heading 4","Heading 5":"Heading 5","Heading 6":"Heading 6",Height:"Height","Help Contents. To close this dialog press ESC.":"Help Contents. To close this dialog press ESC.",HEX:"HEX","Horizontal ellipsis":"Horizontal ellipsis","Horizontal line":"Horizontal line","Horizontal text alignment toolbar":"Horizontal text alignment toolbar","Hryvnia sign":"Hryvnia sign",Huge:"Huge","Identical to":"Identical to","Image from computer":"Image from computer","Image resize list":"Image resize list","Image toolbar":"Image toolbar","Image upload complete":"Image upload complete","image widget":"image widget","In line":"In line","Increase indent":"Increase indent","Increase list item indent":"Increase list item indent","Indian rupee sign":"Indian rupee sign",Infinity:"Infinity",Insert:"Insert","Insert a hard break (a new paragraph)":"Insert a hard break (a new paragraph)","Insert a new paragraph directly after a widget":"Insert a new paragraph directly after a widget","Insert a new paragraph directly before a widget":"Insert a new paragraph directly before a widget","Insert a new table row (when in the last cell of a table)":"Insert a new table row (when in the last cell of a table)","Insert a soft break (a <br> element)":"Insert a soft break (a <br> element)","Insert column left":"Insert column left","Insert column right":"Insert column right","Insert image":"Insert image","Insert image via URL":"Insert image via URL","Insert paragraph after block":"Insert paragraph after block","Insert paragraph before block":"Insert paragraph before block","Insert row above":"Insert row above","Insert row below":"Insert row below","Insert table":"Insert table",Inset:"Inset",Integral:"Integral",Intersection:"Intersection","Invalid start index value.":"Invalid start index value.","Inverted exclamation mark":"Inverted exclamation mark","Inverted question mark":"Inverted question mark",Italic:"Italic","Italic text":"Italic text",Justify:"Justify","Justify cell text":"Justify cell text","Keystrokes that can be used in a list":"Keystrokes that can be used in a list","Keystrokes that can be used in a table cell":"Keystrokes that can be used in a table cell","Keystrokes that can be used when a widget is selected (for example: image, table, etc.)":"Keystrokes that can be used when a widget is selected (for example: image, table, etc.)","Kip sign":"Kip sign",Latin:"Latin","Latin capital letter a with breve":"Latin capital letter a with breve","Latin capital letter a with macron":"Latin capital letter a with macron","Latin capital letter a with ogonek":"Latin capital letter a with ogonek","Latin capital letter c with acute":"Latin capital letter c with acute","Latin capital letter c with caron":"Latin capital letter c with caron","Latin capital letter c with circumflex":"Latin capital letter c with circumflex","Latin capital letter c with dot above":"Latin capital letter c with dot above","Latin capital letter d with caron":"Latin capital letter d with caron","Latin capital letter d with stroke":"Latin capital letter d with stroke","Latin capital letter e with breve":"Latin capital letter e with breve","Latin capital letter e with caron":"Latin capital letter e with caron","Latin capital letter e with dot above":"Latin capital letter e with dot above","Latin capital letter e with macron":"Latin capital letter e with macron","Latin capital letter e with ogonek":"Latin capital letter e with ogonek","Latin capital letter eng":"Latin capital letter eng","Latin capital letter g with breve":"Latin capital letter g with breve","Latin capital letter g with cedilla":"Latin capital letter g with cedilla","Latin capital letter g with circumflex":"Latin capital letter g with circumflex","Latin capital letter g with dot above":"Latin capital letter g with dot above","Latin capital letter h with circumflex":"Latin capital letter h with circumflex","Latin capital letter h with stroke":"Latin capital letter h with stroke","Latin capital letter i with breve":"Latin capital letter i with breve","Latin capital letter i with dot above":"Latin capital letter i with dot above","Latin capital letter i with macron":"Latin capital letter i with macron","Latin capital letter i with ogonek":"Latin capital letter i with ogonek","Latin capital letter i with tilde":"Latin capital letter i with tilde","Latin capital letter j with circumflex":"Latin capital letter j with circumflex","Latin capital letter k with cedilla":"Latin capital letter k with cedilla","Latin capital letter l with acute":"Latin capital letter l with acute","Latin capital letter l with caron":"Latin capital letter l with caron","Latin capital letter l with cedilla":"Latin capital letter l with cedilla","Latin capital letter l with middle dot":"Latin capital letter l with middle dot","Latin capital letter l with stroke":"Latin capital letter l with stroke","Latin capital letter n with acute":"Latin capital letter n with acute","Latin capital letter n with caron":"Latin capital letter n with caron","Latin capital letter n with cedilla":"Latin capital letter n with cedilla","Latin capital letter o with breve":"Latin capital letter o with breve","Latin capital letter o with double acute":"Latin capital letter o with double acute","Latin capital letter o with macron":"Latin capital letter o with macron","Latin capital letter r with acute":"Latin capital letter r with acute","Latin capital letter r with caron":"Latin capital letter r with caron","Latin capital letter r with cedilla":"Latin capital letter r with cedilla","Latin capital letter s with acute":"Latin capital letter s with acute","Latin capital letter s with caron":"Latin capital letter s with caron","Latin capital letter s with cedilla":"Latin capital letter s with cedilla","Latin capital letter s with circumflex":"Latin capital letter s with circumflex","Latin capital letter t with caron":"Latin capital letter t with caron","Latin capital letter t with cedilla":"Latin capital letter t with cedilla","Latin capital letter t with stroke":"Latin capital letter t with stroke","Latin capital letter u with breve":"Latin capital letter u with breve","Latin capital letter u with double acute":"Latin capital letter u with double acute","Latin capital letter u with macron":"Latin capital letter u with macron","Latin capital letter u with ogonek":"Latin capital letter u with ogonek","Latin capital letter u with ring above":"Latin capital letter u with ring above","Latin capital letter u with tilde":"Latin capital letter u with tilde","Latin capital letter w with circumflex":"Latin capital letter w with circumflex","Latin capital letter y with circumflex":"Latin capital letter y with circumflex","Latin capital letter y with diaeresis":"Latin capital letter y with diaeresis","Latin capital letter z with acute":"Latin capital letter z with acute","Latin capital letter z with caron":"Latin capital letter z with caron","Latin capital letter z with dot above":"Latin capital letter z with dot above","Latin capital ligature ij":"Latin capital ligature ij","Latin capital ligature oe":"Latin capital ligature oe","Latin small letter a with breve":"Latin small letter a with breve","Latin small letter a with macron":"Latin small letter a with macron","Latin small letter a with ogonek":"Latin small letter a with ogonek","Latin small letter c with acute":"Latin small letter c with acute","Latin small letter c with caron":"Latin small letter c with caron","Latin small letter c with circumflex":"Latin small letter c with circumflex","Latin small letter c with dot above":"Latin small letter c with dot above","Latin small letter d with caron":"Latin small letter d with caron","Latin small letter d with stroke":"Latin small letter d with stroke","Latin small letter dotless i":"Latin small letter dotless i","Latin small letter e with breve":"Latin small letter e with breve","Latin small letter e with caron":"Latin small letter e with caron","Latin small letter e with dot above":"Latin small letter e with dot above","Latin small letter e with macron":"Latin small letter e with macron","Latin small letter e with ogonek":"Latin small letter e with ogonek","Latin small letter eng":"Latin small letter eng","Latin small letter f with hook":"Latin small letter f with hook","Latin small letter g with breve":"Latin small letter g with breve","Latin small letter g with cedilla":"Latin small letter g with cedilla","Latin small letter g with circumflex":"Latin small letter g with circumflex","Latin small letter g with dot above":"Latin small letter g with dot above","Latin small letter h with circumflex":"Latin small letter h with circumflex","Latin small letter h with stroke":"Latin small letter h with stroke","Latin small letter i with breve":"Latin small letter i with breve","Latin small letter i with macron":"Latin small letter i with macron","Latin small letter i with ogonek":"Latin small letter i with ogonek","Latin small letter i with tilde":"Latin small letter i with tilde","Latin small letter j with circumflex":"Latin small letter j with circumflex","Latin small letter k with cedilla":"Latin small letter k with cedilla","Latin small letter kra":"Latin small letter kra","Latin small letter l with acute":"Latin small letter l with acute","Latin small letter l with caron":"Latin small letter l with caron","Latin small letter l with cedilla":"Latin small letter l with cedilla","Latin small letter l with middle dot":"Latin small letter l with middle dot","Latin small letter l with stroke":"Latin small letter l with stroke","Latin small letter long s":"Latin small letter long s","Latin small letter n preceded by apostrophe":"Latin small letter n preceded by apostrophe","Latin small letter n with acute":"Latin small letter n with acute","Latin small letter n with caron":"Latin small letter n with caron","Latin small letter n with cedilla":"Latin small letter n with cedilla","Latin small letter o with breve":"Latin small letter o with breve","Latin small letter o with double acute":"Latin small letter o with double acute","Latin small letter o with macron":"Latin small letter o with macron","Latin small letter r with acute":"Latin small letter r with acute","Latin small letter r with caron":"Latin small letter r with caron","Latin small letter r with cedilla":"Latin small letter r with cedilla","Latin small letter s with acute":"Latin small letter s with acute","Latin small letter s with caron":"Latin small letter s with caron","Latin small letter s with cedilla":"Latin small letter s with cedilla","Latin small letter s with circumflex":"Latin small letter s with circumflex","Latin small letter t with caron":"Latin small letter t with caron","Latin small letter t with cedilla":"Latin small letter t with cedilla","Latin small letter t with stroke":"Latin small letter t with stroke","Latin small letter u with breve":"Latin small letter u with breve","Latin small letter u with double acute":"Latin small letter u with double acute","Latin small letter u with macron":"Latin small letter u with macron","Latin small letter u with ogonek":"Latin small letter u with ogonek","Latin small letter u with ring above":"Latin small letter u with ring above","Latin small letter u with tilde":"Latin small letter u with tilde","Latin small letter w with circumflex":"Latin small letter w with circumflex","Latin small letter y with circumflex":"Latin small letter y with circumflex","Latin small letter z with acute":"Latin small letter z with acute","Latin small letter z with caron":"Latin small letter z with caron","Latin small letter z with dot above":"Latin small letter z with dot above","Latin small ligature ij":"Latin small ligature ij","Latin small ligature oe":"Latin small ligature oe","Leaving a to-do list":"Leaving a to-do list","Left aligned image":"Left aligned image","Left double quotation mark":"Left double quotation mark","Left single quotation mark":"Left single quotation mark","Left-pointing double angle quotation mark":"Left-pointing double angle quotation mark","leftwards arrow to bar":"leftwards arrow to bar","leftwards dashed arrow":"leftwards dashed arrow","leftwards double arrow":"leftwards double arrow","leftwards simple arrow":"leftwards simple arrow","Less-than or equal to":"Less-than or equal to","Less-than sign":"Less-than sign","Light blue":"Light blue","Light green":"Light green","Light grey":"Light grey","Lira sign":"Lira sign","List properties":"List properties","Livre tournois sign":"Livre tournois sign","Logical and":"Logical and","Logical or":"Logical or","Lower-latin":"Lower-latin","Lower–roman":"Lower–roman",Macron:"Macron","Manat sign":"Manat sign",Mathematical:"Mathematical",MENU_BAR_MENU_EDIT:"Edit",MENU_BAR_MENU_FILE:"File",MENU_BAR_MENU_FONT:"Font",MENU_BAR_MENU_FORMAT:"Format",MENU_BAR_MENU_HELP:"Help",MENU_BAR_MENU_INSERT:"Insert",MENU_BAR_MENU_TEXT:"Text",MENU_BAR_MENU_TOOLS:"Tools",MENU_BAR_MENU_VIEW:"View","Merge cell down":"Merge cell down","Merge cell left":"Merge cell left","Merge cell right":"Merge cell right","Merge cell up":"Merge cell up","Merge cells":"Merge cells","Mill sign":"Mill sign","Minus sign":"Minus sign","Move focus between form fields (inputs, buttons, etc.)":"Move focus between form fields (inputs, buttons, etc.)","Move focus in and out of an active dialog window":"Move focus in and out of an active dialog window","Move focus to the menu bar, navigate between menu bars":"Move focus to the menu bar, navigate between menu bars","Move focus to the toolbar, navigate between toolbars":"Move focus to the toolbar, navigate between toolbars","Move out of an inline code style":"Move out of an inline code style","Move the caret to allow typing directly after a widget":"Move the caret to allow typing directly after a widget","Move the caret to allow typing directly before a widget":"Move the caret to allow typing directly before a widget","Move the selection to the next cell":"Move the selection to the next cell","Move the selection to the previous cell":"Move the selection to the previous cell","Multiplication sign":"Multiplication sign","N-ary product":"N-ary product","N-ary summation":"N-ary summation",Nabla:"Nabla","Naira sign":"Naira sign","Navigate through the table":"Navigate through the table","Navigate through the toolbar or menu bar":"Navigate through the toolbar or menu bar","New sheqel sign":"New sheqel sign",Next:"Next","No results found":"No results found","No searchable items":"No searchable items",None:"None","Nordic mark sign":"Nordic mark sign","Not an element of":"Not an element of","Not equal to":"Not equal to","Not sign":"Not sign","Numbered List":"Numbered List","Numbered list styles toolbar":"Numbered list styles toolbar","on with exclamation mark with left right arrow above":"on with exclamation mark with left right arrow above","Open the accessibility help dialog":"Open the accessibility help dialog",Orange:"Orange",Original:"Original",Outset:"Outset",Overline:"Overline",Padding:"Padding",Paragraph:"Paragraph","Paragraph sign":"Paragraph sign","Partial differential":"Partial differential","Paste content":"Paste content","Paste content as plain text":"Paste content as plain text","Per mille sign":"Per mille sign","Per ten thousand sign":"Per ten thousand sign","Peseta sign":"Peseta sign","Peso sign":"Peso sign",'Please enter a valid color (e.g. "ff0000").':'Please enter a valid color (e.g. "ff0000").',"Plus-minus sign":"Plus-minus sign","Pound sign":"Pound sign","Press %0 for help.":"Press %0 for help.","Press Enter to type after or press Shift + Enter to type before the widget":"Press Enter to type after or press Shift + Enter to type before the widget",Previous:"Previous","Proportional to":"Proportional to",Purple:"Purple","Question exclamation mark":"Question exclamation mark",Red:"Red",Redo:"Redo","Registered sign":"Registered sign","Remove color":"Remove color","Replace from computer":"Replace from computer","Replace image":"Replace image","Replace image from computer":"Replace image from computer","Resize image":"Resize image","Resize image (in %0)":"Resize image (in %0)","Resize image to %0":"Resize image to %0","Resize image to the original size":"Resize image to the original size","Restore default":"Restore default","Reversed order":"Reversed order","Reversed paragraph sign":"Reversed paragraph sign","Revert autoformatting action":"Revert autoformatting action","Rich Text Editor":"Rich Text Editor","Rich Text Editor. Editing area: %0":"Rich Text Editor. Editing area: %0",Ridge:"Ridge","Right aligned image":"Right aligned image","Right double quotation mark":"Right double quotation mark","Right single quotation mark":"Right single quotation mark","Right-pointing double angle quotation mark":"Right-pointing double angle quotation mark","rightwards arrow to bar":"rightwards arrow to bar","rightwards dashed arrow":"rightwards dashed arrow","rightwards double arrow":"rightwards double arrow","rightwards simple arrow":"rightwards simple arrow",Row:"Row","Ruble sign":"Ruble sign","Rupee sign":"Rupee sign",Save:"Save","Section sign":"Section sign","Select all":"Select all","Select column":"Select column","Select row":"Select row","Show more items":"Show more items","Side image":"Side image","Single left-pointing angle quotation mark":"Single left-pointing angle quotation mark","Single low-9 quotation mark":"Single low-9 quotation mark","Single right-pointing angle quotation mark":"Single right-pointing angle quotation mark",Small:"Small",Solid:"Solid","soon with rightwards arrow above":"soon with rightwards arrow above","Special characters":"Special characters","Spesmilo sign":"Spesmilo sign","Split cell horizontally":"Split cell horizontally","Split cell vertically":"Split cell vertically",Square:"Square","Square root":"Square root","Start at":"Start at","Start index must be greater than 0.":"Start index must be greater than 0.",Strikethrough:"Strikethrough","Strikethrough text":"Strikethrough text",Style:"Style",Subscript:"Subscript",Superscript:"Superscript",Table:"Table","Table alignment toolbar":"Table alignment toolbar","Table cell text alignment":"Table cell text alignment","Table properties":"Table properties","Table toolbar":"Table toolbar","Tenge sign":"Tenge sign",Text:"Text","Text alignment":"Text alignment","Text alignment toolbar":"Text alignment toolbar","Text alternative":"Text alternative",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".','The value is invalid. Try "10px" or "2em" or simply "2".':'The value is invalid. Try "10px" or "2em" or simply "2".',"The value must not be empty.":"The value must not be empty.","The value should be a plain number.":"The value should be a plain number.","There exists":"There exists","These keyboard shortcuts allow for quick access to content editing features.":"These keyboard shortcuts allow for quick access to content editing features.","Tilde operator":"Tilde operator",Tiny:"Tiny","To-do List":"To-do List","Toggle caption off":"Toggle caption off","Toggle caption on":"Toggle caption on","Toggle the circle list style":"Toggle the circle list style","Toggle the decimal list style":"Toggle the decimal list style","Toggle the decimal with leading zero list style":"Toggle the decimal with leading zero list style","Toggle the disc list style":"Toggle the disc list style","Toggle the lower–latin list style":"Toggle the lower–latin list style","Toggle the lower–roman list style":"Toggle the lower–roman list style","Toggle the square list style":"Toggle the square list style","Toggle the upper–latin list style":"Toggle the upper–latin list style","Toggle the upper–roman list style":"Toggle the upper–roman list style","top with upwards arrow above":"top with upwards arrow above","Trade mark sign":"Trade mark sign","Tugrik sign":"Tugrik sign","Turkish lira sign":"Turkish lira sign",Turquoise:"Turquoise","Two dot leader":"Two dot leader","Type or paste your content here.":"Type or paste your content here.","Type your title":"Type your title",Underline:"Underline","Underline text":"Underline text",Undo:"Undo",Union:"Union","up down arrow with base":"up down arrow with base",Update:"Update","Update image URL":"Update image URL","Upload failed":"Upload failed","Upload from computer":"Upload from computer","Upload image from computer":"Upload image from computer","Upload in progress":"Upload in progress","Uploading image":"Uploading image","Upper-latin":"Upper-latin","Upper-roman":"Upper-roman","upwards arrow to bar":"upwards arrow to bar","upwards dashed arrow":"upwards dashed arrow","upwards double arrow":"upwards double arrow","upwards simple arrow":"upwards simple arrow","Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.":"Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface.","User interface and content navigation keystrokes":"User interface and content navigation keystrokes","Vertical text alignment toolbar":"Vertical text alignment toolbar","Vulgar fraction one half":"Vulgar fraction one half","Vulgar fraction one quarter":"Vulgar fraction one quarter","Vulgar fraction three quarters":"Vulgar fraction three quarters",White:"White","Widget toolbar":"Widget toolbar",Width:"Width","Won sign":"Won sign","Wrap text":"Wrap text",Yellow:"Yellow","Yen sign":"Yen sign"})}(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={})), +/*! + * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md. + */ +function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.CKEDITOR=e():t.CKEDITOR=e()}(self,(()=>(()=>{var t={9246:(t,e,n)=>{const o=n(6931),i={};for(const t of Object.keys(o))i[o[t]]=t;const r={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};t.exports=r;for(const t of Object.keys(r)){if(!("channels"in r[t]))throw new Error("missing channels property: "+t);if(!("labels"in r[t]))throw new Error("missing channel labels property: "+t);if(r[t].labels.length!==r[t].channels)throw new Error("channel and label counts mismatch: "+t);const{channels:e,labels:n}=r[t];delete r[t].channels,delete r[t].labels,Object.defineProperty(r[t],"channels",{value:e}),Object.defineProperty(r[t],"labels",{value:n})}r.rgb.hsl=function(t){const e=t[0]/255,n=t[1]/255,o=t[2]/255,i=Math.min(e,n,o),r=Math.max(e,n,o),s=r-i;let a,c;r===i?a=0:e===r?a=(n-o)/s:n===r?a=2+(o-e)/s:o===r&&(a=4+(e-n)/s),a=Math.min(60*a,360),a<0&&(a+=360);const l=(i+r)/2;return c=r===i?0:l<=.5?s/(r+i):s/(2-r-i),[a,100*c,100*l]},r.rgb.hsv=function(t){let e,n,o,i,r;const s=t[0]/255,a=t[1]/255,c=t[2]/255,l=Math.max(s,a,c),d=l-Math.min(s,a,c),h=function(t){return(l-t)/6/d+.5};return 0===d?(i=0,r=0):(r=d/l,e=h(s),n=h(a),o=h(c),s===l?i=o-n:a===l?i=1/3+e-o:c===l&&(i=2/3+n-e),i<0?i+=1:i>1&&(i-=1)),[360*i,100*r,100*l]},r.rgb.hwb=function(t){const e=t[0],n=t[1];let o=t[2];const i=r.rgb.hsl(t)[0],s=1/255*Math.min(e,Math.min(n,o));return o=1-1/255*Math.max(e,Math.max(n,o)),[i,100*s,100*o]},r.rgb.cmyk=function(t){const e=t[0]/255,n=t[1]/255,o=t[2]/255,i=Math.min(1-e,1-n,1-o);return[100*((1-e-i)/(1-i)||0),100*((1-n-i)/(1-i)||0),100*((1-o-i)/(1-i)||0),100*i]},r.rgb.keyword=function(t){const e=i[t];if(e)return e;let n,r=1/0;for(const e of Object.keys(o)){const i=o[e],c=(a=i,((s=t)[0]-a[0])**2+(s[1]-a[1])**2+(s[2]-a[2])**2);c.04045?((e+.055)/1.055)**2.4:e/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,o=o>.04045?((o+.055)/1.055)**2.4:o/12.92;return[100*(.4124*e+.3576*n+.1805*o),100*(.2126*e+.7152*n+.0722*o),100*(.0193*e+.1192*n+.9505*o)]},r.rgb.lab=function(t){const e=r.rgb.xyz(t);let n=e[0],o=e[1],i=e[2];n/=95.047,o/=100,i/=108.883,n=n>.008856?n**(1/3):7.787*n+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;return[116*o-16,500*(n-o),200*(o-i)]},r.hsl.rgb=function(t){const e=t[0]/360,n=t[1]/100,o=t[2]/100;let i,r,s;if(0===n)return s=255*o,[s,s,s];i=o<.5?o*(1+n):o+n-o*n;const a=2*o-i,c=[0,0,0];for(let t=0;t<3;t++)r=e+1/3*-(t-1),r<0&&r++,r>1&&r--,s=6*r<1?a+6*(i-a)*r:2*r<1?i:3*r<2?a+(i-a)*(2/3-r)*6:a,c[t]=255*s;return c},r.hsl.hsv=function(t){const e=t[0];let n=t[1]/100,o=t[2]/100,i=n;const r=Math.max(o,.01);o*=2,n*=o<=1?o:2-o,i*=r<=1?r:2-r;return[e,100*(0===o?2*i/(r+i):2*n/(o+n)),100*((o+n)/2)]},r.hsv.rgb=function(t){const e=t[0]/60,n=t[1]/100;let o=t[2]/100;const i=Math.floor(e)%6,r=e-Math.floor(e),s=255*o*(1-n),a=255*o*(1-n*r),c=255*o*(1-n*(1-r));switch(o*=255,i){case 0:return[o,c,s];case 1:return[a,o,s];case 2:return[s,o,c];case 3:return[s,a,o];case 4:return[c,s,o];case 5:return[o,s,a]}},r.hsv.hsl=function(t){const e=t[0],n=t[1]/100,o=t[2]/100,i=Math.max(o,.01);let r,s;s=(2-n)*o;const a=(2-n)*i;return r=n*i,r/=a<=1?a:2-a,r=r||0,s/=2,[e,100*r,100*s]},r.hwb.rgb=function(t){const e=t[0]/360;let n=t[1]/100,o=t[2]/100;const i=n+o;let r;i>1&&(n/=i,o/=i);const s=Math.floor(6*e),a=1-o;r=6*e-s,1&s&&(r=1-r);const c=n+r*(a-n);let l,d,h;switch(s){default:case 6:case 0:l=a,d=c,h=n;break;case 1:l=c,d=a,h=n;break;case 2:l=n,d=a,h=c;break;case 3:l=n,d=c,h=a;break;case 4:l=c,d=n,h=a;break;case 5:l=a,d=n,h=c}return[255*l,255*d,255*h]},r.cmyk.rgb=function(t){const e=t[0]/100,n=t[1]/100,o=t[2]/100,i=t[3]/100;return[255*(1-Math.min(1,e*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i)),255*(1-Math.min(1,o*(1-i)+i))]},r.xyz.rgb=function(t){const e=t[0]/100,n=t[1]/100,o=t[2]/100;let i,r,s;return i=3.2406*e+-1.5372*n+-.4986*o,r=-.9689*e+1.8758*n+.0415*o,s=.0557*e+-.204*n+1.057*o,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,s=s>.0031308?1.055*s**(1/2.4)-.055:12.92*s,i=Math.min(Math.max(0,i),1),r=Math.min(Math.max(0,r),1),s=Math.min(Math.max(0,s),1),[255*i,255*r,255*s]},r.xyz.lab=function(t){let e=t[0],n=t[1],o=t[2];e/=95.047,n/=100,o/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;return[116*n-16,500*(e-n),200*(n-o)]},r.lab.xyz=function(t){let e,n,o;n=(t[0]+16)/116,e=t[1]/500+n,o=n-t[2]/200;const i=n**3,r=e**3,s=o**3;return n=i>.008856?i:(n-16/116)/7.787,e=r>.008856?r:(e-16/116)/7.787,o=s>.008856?s:(o-16/116)/7.787,e*=95.047,n*=100,o*=108.883,[e,n,o]},r.lab.lch=function(t){const e=t[0],n=t[1],o=t[2];let i;i=360*Math.atan2(o,n)/2/Math.PI,i<0&&(i+=360);return[e,Math.sqrt(n*n+o*o),i]},r.lch.lab=function(t){const e=t[0],n=t[1],o=t[2]/360*2*Math.PI;return[e,n*Math.cos(o),n*Math.sin(o)]},r.rgb.ansi16=function(t,e=null){const[n,o,i]=t;let s=null===e?r.rgb.hsv(t)[2]:e;if(s=Math.round(s/50),0===s)return 30;let a=30+(Math.round(i/255)<<2|Math.round(o/255)<<1|Math.round(n/255));return 2===s&&(a+=60),a},r.hsv.ansi16=function(t){return r.rgb.ansi16(r.hsv.rgb(t),t[2])},r.rgb.ansi256=function(t){const e=t[0],n=t[1],o=t[2];if(e===n&&n===o)return e<8?16:e>248?231:Math.round((e-8)/247*24)+232;return 16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(o/255*5)},r.ansi16.rgb=function(t){let e=t%10;if(0===e||7===e)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];const n=.5*(1+~~(t>50));return[(1&e)*n*255,(e>>1&1)*n*255,(e>>2&1)*n*255]},r.ansi256.rgb=function(t){if(t>=232){const e=10*(t-232)+8;return[e,e,e]}let e;t-=16;return[Math.floor(t/36)/5*255,Math.floor((e=t%36)/6)/5*255,e%6/5*255]},r.rgb.hex=function(t){const e=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".substring(e.length)+e},r.hex.rgb=function(t){const e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let n=e[0];3===e[0].length&&(n=n.split("").map((t=>t+t)).join(""));const o=parseInt(n,16);return[o>>16&255,o>>8&255,255&o]},r.rgb.hcg=function(t){const e=t[0]/255,n=t[1]/255,o=t[2]/255,i=Math.max(Math.max(e,n),o),r=Math.min(Math.min(e,n),o),s=i-r;let a,c;return a=s<1?r/(1-s):0,c=s<=0?0:i===e?(n-o)/s%6:i===n?2+(o-e)/s:4+(e-n)/s,c/=6,c%=1,[360*c,100*s,100*a]},r.hsl.hcg=function(t){const e=t[1]/100,n=t[2]/100,o=n<.5?2*e*n:2*e*(1-n);let i=0;return o<1&&(i=(n-.5*o)/(1-o)),[t[0],100*o,100*i]},r.hsv.hcg=function(t){const e=t[1]/100,n=t[2]/100,o=e*n;let i=0;return o<1&&(i=(n-o)/(1-o)),[t[0],100*o,100*i]},r.hcg.rgb=function(t){const e=t[0]/360,n=t[1]/100,o=t[2]/100;if(0===n)return[255*o,255*o,255*o];const i=[0,0,0],r=e%1*6,s=r%1,a=1-s;let c=0;switch(Math.floor(r)){case 0:i[0]=1,i[1]=s,i[2]=0;break;case 1:i[0]=a,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=s;break;case 3:i[0]=0,i[1]=a,i[2]=1;break;case 4:i[0]=s,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=a}return c=(1-n)*o,[255*(n*i[0]+c),255*(n*i[1]+c),255*(n*i[2]+c)]},r.hcg.hsv=function(t){const e=t[1]/100,n=e+t[2]/100*(1-e);let o=0;return n>0&&(o=e/n),[t[0],100*o,100*n]},r.hcg.hsl=function(t){const e=t[1]/100,n=t[2]/100*(1-e)+.5*e;let o=0;return n>0&&n<.5?o=e/(2*n):n>=.5&&n<1&&(o=e/(2*(1-n))),[t[0],100*o,100*n]},r.hcg.hwb=function(t){const e=t[1]/100,n=e+t[2]/100*(1-e);return[t[0],100*(n-e),100*(1-n)]},r.hwb.hcg=function(t){const e=t[1]/100,n=1-t[2]/100,o=n-e;let i=0;return o<1&&(i=(n-o)/(1-o)),[t[0],100*o,100*i]},r.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},r.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},r.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},r.gray.hsl=function(t){return[0,0,t[0]]},r.gray.hsv=r.gray.hsl,r.gray.hwb=function(t){return[0,100,t[0]]},r.gray.cmyk=function(t){return[0,0,0,t[0]]},r.gray.lab=function(t){return[t[0],0,0]},r.gray.hex=function(t){const e=255&Math.round(t[0]/100*255),n=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(n.length)+n},r.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}},9047:(t,e,n)=>{const o=n(9246),i=n(802),r={};Object.keys(o).forEach((t=>{r[t]={},Object.defineProperty(r[t],"channels",{value:o[t].channels}),Object.defineProperty(r[t],"labels",{value:o[t].labels});const e=i(t);Object.keys(e).forEach((n=>{const o=e[n];r[t][n]=function(t){const e=function(...e){const n=e[0];if(null==n)return n;n.length>1&&(e=n);const o=t(e);if("object"==typeof o)for(let t=o.length,e=0;e1&&(e=n),t(e))};return"conversion"in t&&(e.conversion=t.conversion),e}(o)}))})),t.exports=r},802:(t,e,n)=>{const o=n(9246);function i(t){const e=function(){const t={},e=Object.keys(o);for(let n=e.length,o=0;o{"use strict";t.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},4199:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-content code{background-color:hsla(0,0%,78%,.3);border-radius:2px;padding:.15em}.ck.ck-editor__editable .ck-code_selected{background-color:hsla(0,0%,78%,.5)}","",{version:3,sources:["webpack://./../ckeditor5-basic-styles/theme/code.css"],names:[],mappings:"AAKA,iBACC,kCAAuC,CAEvC,iBAAkB,CADlB,aAED,CAEA,0CACC,kCACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content code {\n\tbackground-color: hsla(0, 0%, 78%, 0.3);\n\tpadding: .15em;\n\tborder-radius: 2px;\n}\n\n.ck.ck-editor__editable .ck-code_selected {\n\tbackground-color: hsla(0, 0%, 78%, 0.5);\n}\n"],sourceRoot:""}]);const a=s},8708:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-content blockquote{border-left:5px solid #ccc;font-style:italic;margin-left:0;margin-right:0;overflow:hidden;padding-left:1.5em;padding-right:1.5em}.ck-content[dir=rtl] blockquote{border-left:0;border-right:5px solid #ccc}","",{version:3,sources:["webpack://./../ckeditor5-block-quote/theme/blockquote.css"],names:[],mappings:"AAKA,uBAWC,0BAAsC,CADtC,iBAAkB,CAFlB,aAAc,CACd,cAAe,CAPf,eAAgB,CAIhB,kBAAmB,CADnB,mBAOD,CAEA,gCACC,aAAc,CACd,2BACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content blockquote {\n\t/* See #12 */\n\toverflow: hidden;\n\n\t/* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */\n\tpadding-right: 1.5em;\n\tpadding-left: 1.5em;\n\n\tmargin-left: 0;\n\tmargin-right: 0;\n\tfont-style: italic;\n\tborder-left: solid 5px hsl(0, 0%, 80%);\n}\n\n.ck-content[dir="rtl"] blockquote {\n\tborder-left: 0;\n\tborder-right: solid 5px hsl(0, 0%, 80%);\n}\n'],sourceRoot:""}]);const a=s},7793:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,'.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position{display:inline;pointer-events:none;position:relative}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{position:absolute;width:0}.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__selection-handle,.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__type-around{display:none}.ck.ck-clipboard-drop-target-line{pointer-events:none;position:absolute}:root{--ck-clipboard-drop-target-dot-width:12px;--ck-clipboard-drop-target-dot-height:8px;--ck-clipboard-drop-target-color:var(--ck-color-focus-border)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);bottom:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);margin-left:-1px;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span:after{border-color:var(--ck-clipboard-drop-target-color) transparent transparent transparent;border-style:solid;border-width:calc(var(--ck-clipboard-drop-target-dot-height)) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5);content:"";display:block;height:0;left:50%;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);transform:translateX(-50%);width:0}.ck.ck-editor__editable .ck-widget.ck-clipboard-drop-target-range{outline:var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color)!important}.ck.ck-editor__editable .ck-widget:-webkit-drag{zoom:.6;outline:none!important}.ck.ck-clipboard-drop-target-line{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);height:0;margin-top:-1px}.ck.ck-clipboard-drop-target-line:before{border-style:solid;content:"";height:0;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-width)*-.5);width:0}[dir=ltr] .ck.ck-clipboard-drop-target-line:before{border-color:transparent transparent transparent var(--ck-clipboard-drop-target-color);border-width:calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5) var(--ck-clipboard-drop-target-dot-height);left:-1px}[dir=rtl] .ck.ck-clipboard-drop-target-line:before{border-color:transparent var(--ck-clipboard-drop-target-color) transparent transparent;border-width:calc(var(--ck-clipboard-drop-target-dot-width)*.5) var(--ck-clipboard-drop-target-dot-height) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0;right:-1px}',"",{version:3,sources:["webpack://./../ckeditor5-clipboard/theme/clipboard.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-clipboard/clipboard.css"],names:[],mappings:"AASC,8DACC,cAAe,CAEf,mBAAoB,CADpB,iBAOD,CAJC,mEACC,iBAAkB,CAClB,OACD,CAWA,qJACC,YACD,CAIF,kCAEC,mBAAoB,CADpB,iBAED,CC9BA,MACC,yCAA0C,CAC1C,yCAA0C,CAC1C,6DACD,CAOE,mEAIC,gDAAiD,CADjD,sDAAuD,CAFvD,2DAA8D,CAI9D,gBAAiB,CAHjB,wDAqBD,CAfC,yEAWC,sFAAuF,CAEvF,kBAAmB,CADnB,qKAA0K,CAX1K,UAAW,CAIX,aAAc,CAFd,QAAS,CAIT,QAAS,CADT,iBAAkB,CAElB,wDAA2D,CAE3D,0BAA2B,CAR3B,OAYD,CAOF,kEACC,gGACD,CAKA,gDACC,OAAS,CACT,sBACD,CAGD,kCAGC,gDAAiD,CADjD,sDAAuD,CADvD,QAAS,CAGT,eAwBD,CAtBC,yCAMC,kBAAmB,CALnB,UAAW,CAIX,QAAS,CAHT,iBAAkB,CAClB,uDAA0D,CAC1D,OAiBD,CArBA,mDAYE,sFAAuF,CADvF,+JAAoK,CAFpK,SAYF,CArBA,mDAmBE,sFAAuF,CADvF,+JAAmK,CAFnK,UAKF",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\tdisplay: inline;\n\t\tposition: relative;\n\t\tpointer-events: none;\n\n\t\t& span {\n\t\t\tposition: absolute;\n\t\t\twidth: 0;\n\t\t}\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\t& > .ck-widget__selection-handle {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t& > .ck-widget__type-around {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n.ck.ck-clipboard-drop-target-line {\n\tposition: absolute;\n\tpointer-events: none;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import \"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\";\n\n:root {\n\t--ck-clipboard-drop-target-dot-width: 12px;\n\t--ck-clipboard-drop-target-dot-height: 8px;\n\t--ck-clipboard-drop-target-color: var(--ck-color-focus-border);\n}\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\t& span {\n\t\t\tbottom: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\t\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\t\t\tborder: 1px solid var(--ck-clipboard-drop-target-color);\n\t\t\tbackground: var(--ck-clipboard-drop-target-color);\n\t\t\tmargin-left: -1px;\n\n\t\t\t/* The triangle above the marker */\n\t\t\t&::after {\n\t\t\t\tcontent: '';\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 50%;\n\t\t\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\n\t\t\t\ttransform: translateX(-50%);\n\t\t\t\tborder-color: var(--ck-clipboard-drop-target-color) transparent transparent transparent;\n\t\t\t\tborder-width: calc(var(--ck-clipboard-drop-target-dot-height)) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width));\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Styles of the widget that it a drop target.\n\t */\n\t& .ck-widget.ck-clipboard-drop-target-range {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color) !important;\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\tzoom: 0.6;\n\t\toutline: none !important;\n\t}\n}\n\n.ck.ck-clipboard-drop-target-line {\n\theight: 0;\n\tborder: 1px solid var(--ck-clipboard-drop-target-color);\n\tbackground: var(--ck-clipboard-drop-target-color);\n\tmargin-top: -1px;\n\n\t&::before {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-width));\n\t\twidth: 0;\n\t\theight: 0;\n\t\tborder-style: solid;\n\n\t\t@mixin ck-dir ltr {\n\t\t\tleft: -1px;\n\n\t\t\tborder-width: calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height);\n\t\t\tborder-color: transparent transparent transparent var(--ck-clipboard-drop-target-color);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tright: -1px;\n\n\t\t\tborder-width:calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0;\n\t\t\tborder-color: transparent var(--ck-clipboard-drop-target-color) transparent transparent;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},7388:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-editor{position:relative}.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar{z-index:var(--ck-z-panel)}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content{border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content,.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content{border:solid var(--ck-color-base-border);border-width:1px 1px 0}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-sticky-panel__content_sticky{border-bottom-width:1px}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-menu-bar,.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-toolbar{border:0}.ck.ck-editor__main>.ck-editor__editable{background:var(--ck-color-base-background);border-radius:0}.ck-rounded-corners .ck.ck-editor__main>.ck-editor__editable,.ck.ck-editor__main>.ck-editor__editable.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}.ck.ck-editor__main>.ck-editor__editable:not(.ck-focused){border-color:var(--ck-color-base-border)}","",{version:3,sources:["webpack://./../ckeditor5-editor-classic/theme/classiceditor.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-editor-classic/classiceditor.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,cAIC,iBAMD,CAJC,2DAEC,yBACD,CCLC,8DCED,eDeC,CAjBA,mKCMA,qCAAsC,CDJpC,2BAA4B,CAC5B,4BAcF,CAjBA,8DAOC,wCAAsB,CAAtB,sBAUD,CARC,8FACC,uBACD,CAEA,qJAEC,QACD,CAMH,yCAEC,0CAA2C,CCtB3C,eDgCD,CAZA,yHChBE,qCAAsC,CDqBtC,wBAAyB,CACzB,yBAMF,CAHC,0DACC,wCACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor {\n\t/* All the elements within `.ck-editor` are positioned relatively to it.\n\t If any element needs to be positioned with respect to the , etc.,\n\t it must land outside of the `.ck-editor` in DOM. */\n\tposition: relative;\n\n\t& .ck-editor__top .ck-sticky-panel .ck-toolbar {\n\t\t/* https://github.com/ckeditor/ckeditor5-editor-classic/issues/62 */\n\t\tz-index: var(--ck-z-panel);\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../mixins/_rounded.css";\n\n.ck.ck-editor__top {\n\t& .ck-sticky-panel {\n\t\t& .ck-sticky-panel__content {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\n\t\t\tborder: 1px solid var(--ck-color-base-border);\n\t\t\tborder-bottom-width: 0;\n\n\t\t\t&.ck-sticky-panel__content_sticky {\n\t\t\t\tborder-bottom-width: 1px;\n\t\t\t}\n\n\t\t\t& .ck-menu-bar,\n\t\t\t& .ck-toolbar {\n\t\t\t\tborder: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* Note: Use ck-editor__main to make sure these styles don\'t apply to other editor types */\n.ck.ck-editor__main > .ck-editor__editable {\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/113 */\n\tbackground: var(--ck-color-base-background);\n\n\t@mixin ck-rounded-corners {\n\t\tborder-top-left-radius: 0;\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&:not(.ck-focused) {\n\t\tborder-color: var(--ck-color-base-border);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},4098:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck .ck-placeholder,.ck.ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{content:attr(data-placeholder);left:0;pointer-events:none;position:absolute;right:0}.ck.ck-read-only .ck-placeholder:before{display:none}.ck.ck-reset_all .ck-placeholder{position:relative}@media (forced-colors:active){.ck .ck-placeholder,.ck.ck-placeholder{forced-color-adjust:preserve-parent-color}}.ck .ck-placeholder:before,.ck.ck-placeholder:before{cursor:text}@media (forced-colors:none){.ck .ck-placeholder:before,.ck.ck-placeholder:before{color:var(--ck-color-engine-placeholder-text)}}@media (forced-colors:active){.ck .ck-placeholder:before,.ck.ck-placeholder:before{font-style:italic;margin-left:1px}}","",{version:3,sources:["webpack://./../ckeditor5-engine/theme/placeholder.css","webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-engine/placeholder.css"],names:[],mappings:"AAMA,uCAEC,iBAWD,CATC,qDAIC,8BAA+B,CAF/B,MAAO,CAKP,mBAAoB,CANpB,iBAAkB,CAElB,OAKD,CAKA,wCACC,YACD,CAQD,iCACC,iBACD,CC7BC,8BACC,uCCOA,yCDLA,CACD,CCOA,qDACC,WAmBD,CDvBA,4BACC,qDCMC,6CDJD,CACD,CAZA,8BACC,qDCsBC,iBAAkB,CAMlB,eD1BD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* See ckeditor/ckeditor5#936. */\n.ck.ck-placeholder,\n.ck .ck-placeholder {\n\tposition: relative;\n\n\t&::before {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tcontent: attr(data-placeholder);\n\n\t\t/* See ckeditor/ckeditor5#469. */\n\t\tpointer-events: none;\n\t}\n}\n\n/* See ckeditor/ckeditor5#1987. */\n.ck.ck-read-only .ck-placeholder {\n\t&::before {\n\t\tdisplay: none;\n\t}\n}\n\n/*\n * Rules for the `ck-placeholder` are loaded before the rules for `ck-reset_all` in the base CKEditor 5 DLL build.\n * This fix overwrites the incorrectly set `position: static` from `ck-reset_all`.\n * See https://github.com/ckeditor/ckeditor5/issues/11418.\n */\n.ck.ck-reset_all .ck-placeholder {\n\tposition: relative;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-forced-colors {\n\t@media (forced-colors: active) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n\n@define-mixin ck-media-default-colors {\n\t@media (forced-colors: none) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css";\n\n/* See ckeditor/ckeditor5#936. */\n.ck.ck-placeholder, .ck .ck-placeholder {\n\t@mixin ck-media-forced-colors {\n\t\t/*\n\t\t * This is needed for Edge on Windows to use the right color for the placeholder content (::before).\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/14907.\n\t\t */\n\t\tforced-color-adjust: preserve-parent-color;\n\t}\n\n\t&::before {\n\t\tcursor: text;\n\n\t\t@mixin ck-media-default-colors {\n\t\t\tcolor: var(--ck-color-engine-placeholder-text);\n\t\t}\n\n\t\t@mixin ck-media-forced-colors {\n\t\t\t/*\n\t\t\t * In the high contrast mode there is no telling between regular and placeholder text. Using\n\t\t\t * italic text to address that issue. See https://github.com/ckeditor/ckeditor5/issues/14907.\n\t\t\t */\n\t\t\tfont-style: italic;\n\n\t\t\t/*\n\t\t\t * Without this margin, the caret will not show up and blink when the user puts the selection\n\t\t\t * in the placeholder (Edge on Windows). See https://github.com/ckeditor/ckeditor5/issues/14907.\n\t\t\t */\n\t\t\tmargin-left: 1px;\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},8264:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-editor__editable span[data-ck-unsafe-element]{display:none}","",{version:3,sources:["webpack://./../ckeditor5-engine/theme/renderer.css"],names:[],mappings:"AAMA,qDACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Elements marked by the Renderer as hidden should be invisible in the editor. */\n.ck.ck-editor__editable span[data-ck-unsafe-element] {\n\tdisplay: none;\n}\n"],sourceRoot:""}]);const a=s},1058:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-content .text-tiny{font-size:.7em}.ck-content .text-small{font-size:.85em}.ck-content .text-big{font-size:1.4em}.ck-content .text-huge{font-size:1.8em}","",{version:3,sources:["webpack://./../ckeditor5-font/theme/fontsize.css"],names:[],mappings:"AAUC,uBACC,cACD,CAEA,wBACC,eACD,CAEA,sBACC,eACD,CAEA,uBACC,eACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* The values should be synchronized with the "FONT_SIZE_PRESET_UNITS" object in the "/src/fontsize/utils.js" file. */\n\n/* Styles should be prefixed with the `.ck-content` class.\nSee https://github.com/ckeditor/ckeditor5/issues/6636 */\n.ck-content {\n\t& .text-tiny {\n\t\tfont-size: .7em;\n\t}\n\n\t& .text-small {\n\t\tfont-size: .85em;\n\t}\n\n\t& .text-big {\n\t\tfont-size: 1.4em;\n\t}\n\n\t& .text-huge {\n\t\tfont-size: 1.8em;\n\t}\n}\n'],sourceRoot:""}]);const a=s},6269:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-heading_heading1{font-size:20px}.ck.ck-heading_heading2{font-size:17px}.ck.ck-heading_heading3{font-size:14px}.ck[class*=ck-heading_heading]{font-weight:700}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:8em}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item{min-width:18em}","",{version:3,sources:["webpack://./../ckeditor5-heading/theme/heading.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-heading/heading.css"],names:[],mappings:"AAKA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,+BACC,eACD,CCZC,2EACC,SACD,CAEA,uEACC,cACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-heading_heading1 {\n\tfont-size: 20px;\n}\n\n.ck.ck-heading_heading2 {\n\tfont-size: 17px;\n}\n\n.ck.ck-heading_heading3 {\n\tfont-size: 14px;\n}\n\n.ck[class*="ck-heading_heading"] {\n\tfont-weight: bold;\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Resize dropdown's button label. */\n.ck.ck-dropdown.ck-heading-dropdown {\n\t& .ck-dropdown__button .ck-button__label {\n\t\twidth: 8em;\n\t}\n\n\t& .ck-dropdown__panel .ck-list__item {\n\t\tmin-width: 18em;\n\t}\n}\n"],sourceRoot:""}]);const a=s},2626:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-editor__editable .ck-horizontal-line{display:flow-root}.ck-content hr{background:#dedede;border:0;height:4px;margin:15px 0}","",{version:3,sources:["webpack://./../ckeditor5-horizontal-line/theme/horizontalline.css"],names:[],mappings:"AAMA,yCAEC,iBACD,CAEA,eAGC,kBAA2B,CAC3B,QAAS,CAFT,UAAW,CADX,aAID",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n\n.ck-editor__editable .ck-horizontal-line {\n\t/* Necessary to render properly next to floated objects, e.g. side image case. */\n\tdisplay: flow-root;\n}\n\n.ck-content hr {\n\tmargin: 15px 0;\n\theight: 4px;\n\tbackground: hsl(0, 0%, 87%);\n\tborder: 0;\n}\n"],sourceRoot:""}]);const a=s},265:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-content .image{clear:both;display:table;margin:.9em auto;min-width:50px;text-align:center}.ck-content .image img{display:block;height:auto;margin:0 auto;max-width:100%;min-width:100%}.ck-content .image-inline{align-items:flex-start;display:inline-flex;max-width:100%}.ck-content .image-inline picture{display:flex}.ck-content .image-inline img,.ck-content .image-inline picture{flex-grow:1;flex-shrink:1;max-width:100%}.ck.ck-editor__editable .image>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}.ck.ck-editor__editable .image{z-index:1}.ck.ck-editor__editable .image.ck-widget_selected{z-index:2}.ck.ck-editor__editable .image-inline{z-index:1}.ck.ck-editor__editable .image-inline.ck-widget_selected{z-index:2}.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection{display:none}.ck.ck-editor__editable .image-inline img{height:auto}.ck.ck-editor__editable td .image-inline img,.ck.ck-editor__editable th .image-inline img{max-width:none}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/image.css"],names:[],mappings:"AAMC,mBAEC,UAAW,CADX,aAAc,CAOd,gBAAkB,CAGlB,cAAe,CARf,iBA2BD,CAjBC,uBAEC,aAAc,CAad,WAAY,CAVZ,aAAc,CAGd,cAAe,CAGf,cAKD,CAGD,0BAYC,sBAAuB,CANvB,mBAAoB,CAGpB,cAoBD,CAdC,kCACC,YACD,CAGA,gEAGC,WAAY,CACZ,aAAc,CAGd,cACD,CAUD,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAKA,+BACC,SASD,CAHC,kDACC,SACD,CAMD,sCACC,SAkBD,CAZC,yDACC,SAUD,CAHC,qEACC,YACD,CAMF,0CACC,WACD,CAMC,0FACC,cACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content {\n\t& .image {\n\t\tdisplay: table;\n\t\tclear: both;\n\t\ttext-align: center;\n\n\t\t/* Make sure there is some space between the content and the image. Center image by default. */\n\t\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\t \tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\t\tmargin: 0.9em auto;\n\n\t\t/* Make sure the caption will be displayed properly (See: https://github.com/ckeditor/ckeditor5/issues/1870). */\n\t\tmin-width: 50px;\n\n\t\t& img {\n\t\t\t/* Prevent unnecessary margins caused by line-height (see #44). */\n\t\t\tdisplay: block;\n\n\t\t\t/* Center the image if its width is smaller than the content\'s width. */\n\t\t\tmargin: 0 auto;\n\n\t\t\t/* Make sure the image never exceeds the size of the parent container (ckeditor/ckeditor5-ui#67). */\n\t\t\tmax-width: 100%;\n\n\t\t\t/* Make sure the image is never smaller than the parent container (See: https://github.com/ckeditor/ckeditor5/issues/9300). */\n\t\t\tmin-width: 100%;\n\n\t\t\t/* Keep proportions of the block image if the height is set and the image is wider than the editor width.\n\t\t\tSee https://github.com/ckeditor/ckeditor5/issues/14542. */\n\t\t\theight: auto;\n\t\t}\n\t}\n\n\t& .image-inline {\n\t\t/*\n\t\t * Normally, the .image-inline would have "display: inline-block" and "img { width: 100% }" (to follow the wrapper while resizing).\n\t\t * Unfortunately, together with "srcset", it gets automatically stretched up to the width of the editing root.\n\t\t * This strange behavior does not happen with inline-flex.\n\t\t */\n\t\tdisplay: inline-flex;\n\n\t\t/* While being resized, don\'t allow the image to exceed the width of the editing root. */\n\t\tmax-width: 100%;\n\n\t\t/* This is required by Safari to resize images in a sensible way. Without this, the browser breaks the ratio. */\n\t\talign-items: flex-start;\n\n\t\t/* When the picture is present it must act as a flex container to let the img resize properly */\n\t\t& picture {\n\t\t\tdisplay: flex;\n\t\t}\n\n\t\t/* When the picture is present, it must act like a resizable img. */\n\t\t& picture,\n\t\t& img {\n\t\t\t/* This is necessary for the img to span the entire .image-inline wrapper and to resize properly. */\n\t\t\tflex-grow: 1;\n\t\t\tflex-shrink: 1;\n\n\t\t\t/* Prevents overflowing the editing root boundaries when an inline image is very wide. */\n\t\t\tmax-width: 100%;\n\t\t}\n\t}\n}\n\n.ck.ck-editor__editable {\n\t/*\n\t * Inhertit the content styles padding of the
in case the integration overrides `text-align: center`\n\t * of `.image` (e.g. to the left/right). This ensures the placeholder stays at the padding just like the native\n\t * caret does, and not at the edge of
.\n\t */\n\t& .image > figcaption.ck-placeholder::before {\n\t\tpadding-left: inherit;\n\t\tpadding-right: inherit;\n\n\t\t/*\n\t\t * Make sure the image caption placeholder doesn\'t overflow the placeholder area.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\n\t\t */\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t/*\n\t * See https://github.com/ckeditor/ckeditor5/issues/15115.\n\t */\n\t& .image {\n\t\tz-index: 1;\n\n\t\t/*\n\t\t * Make sure the selected image always stays on top of its siblings.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\n\t\t */\n\t\t&.ck-widget_selected {\n\t\t\tz-index: 2;\n\t\t}\n\t}\n\n\t/*\n\t * See https://github.com/ckeditor/ckeditor5/issues/15115.\n\t */\n\t& .image-inline {\n\t\tz-index: 1;\n\n\t\t/*\n\t\t * Make sure the selected inline image always stays on top of its siblings.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\n\t\t */\n\t\t&.ck-widget_selected {\n\t\t\tz-index: 2;\n\n\t\t\t/*\n\t\t\t * Make sure the native browser selection style is not displayed.\n\t\t\t * Inline image widgets have their own styles for the selected state and\n\t\t\t * leaving this up to the browser is asking for a visual collision.\n\t\t\t */\n\t\t\t& ::selection {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Keep proportions of the inline image if the height is set and the image is wider than the editor width.\n\tSee https://github.com/ckeditor/ckeditor5/issues/14542. */\n\t& .image-inline img {\n\t\theight: auto;\n\t}\n\n\t/* The inline image nested in the table should have its original size if not resized.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\n\t& td,\n\t& th {\n\t\t& .image-inline img {\n\t\t\tmax-width: none;\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},5247:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-image-caption-background:#f7f7f7;--ck-color-image-caption-text:#333;--ck-color-image-caption-highlighted-background:#fd0}.ck-content .image>figcaption{background-color:var(--ck-color-image-caption-background);caption-side:bottom;color:var(--ck-color-image-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;word-break:break-word}@media (forced-colors:active){.ck-content .image>figcaption{background-color:unset;color:unset}}@media (forced-colors:none){.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:ck-image-caption-highlight .6s ease-out}}@media (prefers-reduced-motion:reduce){.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:none}}@keyframes ck-image-caption-highlight{0%{background-color:var(--ck-color-image-caption-highlighted-background)}to{background-color:var(--ck-color-image-caption-background)}}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imagecaption.css","webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css"],names:[],mappings:"AAOA,MACC,2CAAoD,CACpD,kCAA8C,CAC9C,oDACD,CAGA,8BAKC,yDAA0D,CAH1D,mBAAoB,CAEpB,wCAAyC,CAHzC,qBAAsB,CAMtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,qBAYD,CAJC,8BAXD,8BAYE,sBAAuB,CACvB,WAEF,CADC,CCdA,4BACC,qEDmBA,iDCjBA,CACD,CDmBA,uCALD,qEAME,cAEF,CADC,CAGD,sCACC,GACC,qEACD,CAEA,GACC,yDACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css";\n\n:root {\n\t--ck-color-image-caption-background: hsl(0, 0%, 97%);\n\t--ck-color-image-caption-text: hsl(0, 0%, 20%);\n\t--ck-color-image-caption-highlighted-background: hsl(52deg 100% 50%);\n}\n\n/* Content styles */\n.ck-content .image > figcaption {\n\tdisplay: table-caption;\n\tcaption-side: bottom;\n\tword-break: break-word;\n\tcolor: var(--ck-color-image-caption-text);\n\tbackground-color: var(--ck-color-image-caption-background);\n\tpadding: .6em;\n\tfont-size: .75em;\n\toutline-offset: -1px;\n\n\t/* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */\n\t@media (forced-colors: active) {\n\t\tbackground-color: unset;\n\t\tcolor: unset;\n\t}\n}\n\n/* Editing styles */\n.ck.ck-editor__editable .image > figcaption.image__caption_highlighted {\n\t@mixin ck-media-default-colors {\n\t\tanimation: ck-image-caption-highlight .6s ease-out;\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\tanimation: none;\n\t}\n}\n\n@keyframes ck-image-caption-highlight {\n\t0% {\n\t\tbackground-color: var(--ck-color-image-caption-highlighted-background);\n\t}\n\n\t100% {\n\t\tbackground-color: var(--ck-color-image-caption-background);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-forced-colors {\n\t@media (forced-colors: active) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n\n@define-mixin ck-media-default-colors {\n\t@media (forced-colors: none) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},4642:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-image-custom-resize-form{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-image-custom-resize-form .ck-labeled-field-view{display:inline-block}.ck.ck-image-custom-resize-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-image-custom-resize-form{flex-wrap:wrap}.ck.ck-image-custom-resize-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-image-custom-resize-form .ck-button{flex-basis:50%}}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imagecustomresizeform.css","webpack://./../ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAOA,gCAIC,sBAAuB,CAHvB,YAAa,CACb,kBAAmB,CACnB,gBAsBD,CAnBC,uDACC,oBACD,CAEA,0CACC,YACD,CCbA,oCDCD,gCAeE,cAUF,CARE,uDACC,eACD,CAEA,2CACC,cACD,CCtBD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-image-custom-resize-form {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\talign-items: flex-start;\n\n\t& .ck-labeled-field-view {\n\t\tdisplay: inline-block;\n\t}\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},3350:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-image-insert-url .ck-image-insert-url__action-row{display:grid;grid-template-columns:repeat(2,1fr)}:root{--ck-image-insert-insert-by-url-width:250px}.ck.ck-image-insert-url{--ck-input-width:100%}.ck.ck-image-insert-url .ck-image-insert-url__action-row{grid-column-gap:var(--ck-spacing-large);margin-top:var(--ck-spacing-large)}.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-cancel,.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-save{justify-content:center;min-width:auto}.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}.ck.ck-image-insert-form>.ck.ck-button{display:block;padding:var(--ck-list-button-padding);width:100%}[dir=ltr] .ck.ck-image-insert-form>.ck.ck-button{text-align:left}[dir=rtl] .ck.ck-image-insert-form>.ck.ck-button{text-align:right}.ck.ck-image-insert-form>.ck.ck-collapsible:not(:first-child){border-top:1px solid var(--ck-color-base-border)}.ck.ck-image-insert-form>.ck.ck-collapsible:not(:last-child){border-bottom:1px solid var(--ck-color-base-border)}.ck.ck-image-insert-form>.ck.ck-collapsible,.ck.ck-image-insert-form>.ck.ck-image-insert-url{min-width:var(--ck-image-insert-insert-by-url-width)}.ck.ck-image-insert-form>.ck.ck-image-insert-url{padding:var(--ck-spacing-large)}.ck.ck-image-insert-form:focus{outline:none}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imageinsert.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageinsert.css"],names:[],mappings:"AAMC,yDACC,YAAa,CACb,mCACD,CCFD,MACC,2CACD,CAEA,wBACC,qBAgBD,CAdC,yDACC,uCAAwC,CACxC,kCAWD,CATC,oJAEC,sBAAuB,CACvB,cACD,CAEA,sFACC,0BACD,CAKD,uCACC,aAAc,CAEd,qCAAsC,CADtC,UAUD,CAZA,iDAME,eAMF,CAZA,iDAUE,gBAEF,CAGC,8DACC,gDACD,CAEA,6DACC,mDACD,CAMD,6FAJC,oDAOD,CAHA,iDAEC,+BACD,CAEA,+BACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-image-insert-url {\n\t& .ck-image-insert-url__action-row {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: repeat(2, 1fr);\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n:root {\n\t--ck-image-insert-insert-by-url-width: 250px;\n}\n\n.ck.ck-image-insert-url {\n\t--ck-input-width: 100%;\n\n\t& .ck-image-insert-url__action-row {\n\t\tgrid-column-gap: var(--ck-spacing-large);\n\t\tmargin-top: var(--ck-spacing-large);\n\n\t\t& .ck-button-save,\n\t\t& .ck-button-cancel {\n\t\t\tjustify-content: center;\n\t\t\tmin-width: auto;\n\t\t}\n\n\t\t& .ck-button .ck-button__label {\n\t\t\tcolor: var(--ck-color-text);\n\t\t}\n\t}\n}\n\n.ck.ck-image-insert-form {\n\t& > .ck.ck-button {\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\tpadding: var(--ck-list-button-padding);\n\n\t\t@mixin ck-dir ltr {\n\t\t\ttext-align: left;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttext-align: right;\n\t\t}\n\t}\n\n\t& > .ck.ck-collapsible {\n\t\t&:not(:first-child) {\n\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t\t}\n\n\t\t&:not(:last-child) {\n\t\t\tborder-bottom: 1px solid var(--ck-color-base-border);\n\t\t}\n\n\t\tmin-width: var(--ck-image-insert-insert-by-url-width);\n\t}\n\n\t/* This is the case when there are no other integrations configured than insert by URL */\n\t& > .ck.ck-image-insert-url {\n\t\tmin-width: var(--ck-image-insert-insert-by-url-width);\n\t\tpadding: var(--ck-spacing-large);\n\t}\n\n\t&:focus {\n\t\toutline: none;\n\t}\n}\n'],sourceRoot:""}]);const a=s},7378:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-editor__editable img.image_placeholder{background-size:100% 100%}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imageplaceholder.css"],names:[],mappings:"AAMC,8CACC,yBACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t& img.image_placeholder {\n\t\tbackground-size: 100% 100%;\n\t}\n}\n"],sourceRoot:""}]);const a=s},3469:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-content img.image_resized{height:auto}.ck-content .image.image_resized{box-sizing:border-box;display:block;max-width:100%}.ck-content .image.image_resized img{width:100%}.ck-content .image.image_resized>figcaption{display:block}.ck.ck-editor__editable td .image-inline.image_resized img,.ck.ck-editor__editable th .image-inline.image_resized img{max-width:100%}[dir=ltr] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-left:var(--ck-spacing-standard)}.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label{width:4em}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imageresize.css"],names:[],mappings:"AAMA,8BACC,WACD,CAEA,iCAQC,qBAAsB,CADtB,aAAc,CANd,cAkBD,CATC,qCAEC,UACD,CAEA,4CAEC,aACD,CAQC,sHACC,cACD,CAIF,oFACC,uCACD,CAEA,oFACC,sCACD,CAEA,oEACC,SACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Preserve aspect ratio of the resized image after introducing image height attribute. */\n.ck-content img.image_resized {\n\theight: auto;\n}\n\n.ck-content .image.image_resized {\n\tmax-width: 100%;\n\t/*\n\tThe `
` element for resized images must not use `display:table` as browsers do not support `max-width` for it well.\n\tSee https://stackoverflow.com/questions/4019604/chrome-safari-ignoring-max-width-in-table/14420691#14420691 for more.\n\tFortunately, since we control the width, there is no risk that the image will look bad.\n\t*/\n\tdisplay: block;\n\tbox-sizing: border-box;\n\n\t& img {\n\t\t/* For resized images it is the `
` element that determines the image width. */\n\t\twidth: 100%;\n\t}\n\n\t& > figcaption {\n\t\t/* The `
` element uses `display:block`, so `
` also has to. */\n\t\tdisplay: block;\n\t}\n}\n\n.ck.ck-editor__editable {\n\t/* The resized inline image nested in the table should respect its parent size.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\n\t& td,\n\t& th {\n\t\t& .image-inline.image_resized img {\n\t\t\tmax-width: 100%;\n\t\t}\n\t}\n}\n\n[dir="ltr"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {\n\tmargin-right: var(--ck-spacing-standard);\n}\n\n[dir="rtl"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {\n\tmargin-left: var(--ck-spacing-standard);\n}\n\n.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label {\n\twidth: 4em;\n}\n'],sourceRoot:""}]);const a=s},6386:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-image-style-spacing:1.5em;--ck-inline-image-style-spacing:calc(var(--ck-image-style-spacing)/2)}.ck-content .image-style-block-align-left,.ck-content .image-style-block-align-right{max-width:calc(100% - var(--ck-image-style-spacing))}.ck-content .image-style-align-left,.ck-content .image-style-align-right{clear:none}.ck-content .image-style-side{float:right;margin-left:var(--ck-image-style-spacing);max-width:50%}.ck-content .image-style-align-left{float:left;margin-right:var(--ck-image-style-spacing)}.ck-content .image-style-align-center{margin-left:auto;margin-right:auto}.ck-content .image-style-align-right{float:right;margin-left:var(--ck-image-style-spacing)}.ck-content .image-style-block-align-right{margin-left:auto;margin-right:0}.ck-content .image-style-block-align-left{margin-left:0;margin-right:auto}.ck-content p+.image-style-align-left,.ck-content p+.image-style-align-right,.ck-content p+.image-style-side{margin-top:0}.ck-content .image-inline.image-style-align-left,.ck-content .image-inline.image-style-align-right{margin-bottom:var(--ck-inline-image-style-spacing);margin-top:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-left{margin-right:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-right{margin-left:var(--ck-inline-image-style-spacing)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-background)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after{display:none}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-hover-background)}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imagestyle.css"],names:[],mappings:"AAKA,MACC,8BAA+B,CAC/B,qEACD,CAMC,qFAEC,oDACD,CAIA,yEAEC,UACD,CAEA,8BACC,WAAY,CACZ,yCAA0C,CAC1C,aACD,CAEA,oCACC,UAAW,CACX,0CACD,CAEA,sCACC,gBAAiB,CACjB,iBACD,CAEA,qCACC,WAAY,CACZ,yCACD,CAEA,2CAEC,gBAAiB,CADjB,cAED,CAEA,0CACC,aAAc,CACd,iBACD,CAGA,6GAGC,YACD,CAGC,mGAGC,kDAAmD,CADnD,+CAED,CAEA,iDACC,iDACD,CAEA,kDACC,gDACD,CAUC,0lBAGC,qDAKD,CAHC,8nBACC,YACD,CAKD,oVAGC,2DACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-image-style-spacing: 1.5em;\n\t--ck-inline-image-style-spacing: calc(var(--ck-image-style-spacing) / 2);\n}\n\n.ck-content {\n\t/* Provides a minimal side margin for the left and right aligned images, so that the user has a visual feedback\n\tconfirming successful application of the style if image width exceeds the editor's size.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9342 */\n\t& .image-style-block-align-left,\n\t& .image-style-block-align-right {\n\t\tmax-width: calc(100% - var(--ck-image-style-spacing));\n\t}\n\n\t/* Allows displaying multiple floating images in the same line.\n\tSee https://github.com/ckeditor/ckeditor5/issues/9183#issuecomment-804988132 */\n\t& .image-style-align-left,\n\t& .image-style-align-right {\n\t\tclear: none;\n\t}\n\n\t& .image-style-side {\n\t\tfloat: right;\n\t\tmargin-left: var(--ck-image-style-spacing);\n\t\tmax-width: 50%;\n\t}\n\n\t& .image-style-align-left {\n\t\tfloat: left;\n\t\tmargin-right: var(--ck-image-style-spacing);\n\t}\n\n\t& .image-style-align-center {\n\t\tmargin-left: auto;\n\t\tmargin-right: auto;\n\t}\n\n\t& .image-style-align-right {\n\t\tfloat: right;\n\t\tmargin-left: var(--ck-image-style-spacing);\n\t}\n\n\t& .image-style-block-align-right {\n\t\tmargin-right: 0;\n\t\tmargin-left: auto;\n\t}\n\n\t& .image-style-block-align-left {\n\t\tmargin-left: 0;\n\t\tmargin-right: auto;\n\t}\n\n\t/* Simulates margin collapsing with the preceding paragraph, which does not work for the floating elements. */\n\t& p + .image-style-align-left,\n\t& p + .image-style-align-right,\n\t& p + .image-style-side {\n\t\tmargin-top: 0;\n\t}\n\n\t& .image-inline {\n\t\t&.image-style-align-left,\n\t\t&.image-style-align-right {\n\t\t\tmargin-top: var(--ck-inline-image-style-spacing);\n\t\t\tmargin-bottom: var(--ck-inline-image-style-spacing);\n\t\t}\n\n\t\t&.image-style-align-left {\n\t\t\tmargin-right: var(--ck-inline-image-style-spacing);\n\t\t}\n\n\t\t&.image-style-align-right {\n\t\t\tmargin-left: var(--ck-inline-image-style-spacing);\n\t\t}\n\t}\n}\n\n.ck.ck-splitbutton {\n\t/* The button should display as a regular drop-down if the action button\n\tis forced to fire the same action as the arrow button. */\n\t&.ck-splitbutton_flatten {\n\t\t&:hover,\n\t\t&.ck-splitbutton_open {\n\t\t\t& > .ck-splitbutton__action:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\n\t\t\t\tbackground-color: var(--ck-color-button-on-background);\n\n\t\t\t\t&::after {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&.ck-splitbutton_open:hover {\n\t\t\t& > .ck-splitbutton__action:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled),\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\n\t\t\t\tbackground-color: var(--ck-color-button-on-hover-background);\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},7693:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,'.ck-image-upload-complete-icon{border-radius:50%;display:block;position:absolute;right:min(var(--ck-spacing-medium),6%);top:min(var(--ck-spacing-medium),6%);z-index:1}.ck-image-upload-complete-icon:after{content:"";position:absolute}:root{--ck-color-image-upload-icon:#fff;--ck-color-image-upload-icon-background:#008a00;--ck-image-upload-icon-size:20;--ck-image-upload-icon-width:2px;--ck-image-upload-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck-image-upload-complete-icon{animation-delay:0ms,3s;animation-duration:.5s,.5s;animation-fill-mode:forwards,forwards;animation-name:ck-upload-complete-icon-show,ck-upload-complete-icon-hide;background:var(--ck-color-image-upload-icon-background);font-size:calc(1px*var(--ck-image-upload-icon-size));height:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size));opacity:0;overflow:hidden;width:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size))}.ck-image-upload-complete-icon:after{animation-delay:.5s;animation-duration:.5s;animation-fill-mode:forwards;animation-name:ck-upload-complete-icon-check;border-right:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);border-top:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);box-sizing:border-box;height:0;left:25%;opacity:0;top:50%;transform:scaleX(-1) rotate(135deg);transform-origin:left top;width:0}@media (prefers-reduced-motion:reduce){.ck-image-upload-complete-icon{animation-duration:0ms}.ck-image-upload-complete-icon:after{animation:none;height:.45em;opacity:1;width:.3em}}@keyframes ck-upload-complete-icon-show{0%{opacity:0}to{opacity:1}}@keyframes ck-upload-complete-icon-hide{0%{opacity:1}to{opacity:0}}@keyframes ck-upload-complete-icon-check{0%{height:0;opacity:1;width:0}33%{height:0;width:.3em}to{height:.45em;opacity:1;width:.3em}}',"",{version:3,sources:["webpack://./../ckeditor5-image/theme/imageuploadicon.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadicon.css"],names:[],mappings:"AAKA,+BAUC,iBAAkB,CATlB,aAAc,CACd,iBAAkB,CAOlB,sCAAwC,CADxC,oCAAsC,CAGtC,SAMD,CAJC,qCACC,UAAW,CACX,iBACD,CChBD,MACC,iCAA8C,CAC9C,+CAA4D,CAG5D,8BAA+B,CAC/B,gCAAiC,CACjC,4DACD,CAEA,+BAWC,sBAA4B,CAN5B,0BAAgC,CADhC,qCAAuC,CADvC,wEAA0E,CAD1E,uDAAwD,CAMxD,oDAAuD,CAWvD,oFAAuF,CAlBvF,SAAU,CAgBV,eAAgB,CAChB,mFAqCD,CAjCC,qCAgBC,mBAAsB,CADtB,sBAAyB,CAEzB,4BAA6B,CAH7B,4CAA6C,CAF7C,sFAAuF,CADvF,oFAAqF,CASrF,qBAAsB,CAdtB,QAAS,CAJT,QAAS,CAGT,SAAU,CADV,OAAQ,CAKR,mCAAoC,CACpC,yBAA0B,CAH1B,OAcD,CAEA,uCA7CD,+BA8CE,sBASF,CAPE,qCACC,cAAe,CAGf,YAAc,CAFd,SAAU,CACV,UAED,CACD,CAGD,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,yCACC,GAGC,QAAS,CAFT,SAAU,CACV,OAED,CACA,IAEC,QAAS,CADT,UAED,CACA,GAGC,YAAc,CAFd,SAAU,CACV,UAED,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-image-upload-complete-icon {\n\tdisplay: block;\n\tposition: absolute;\n\n\t/*\n\t * Smaller images should have the icon closer to the border.\n\t * Match the icon position with the linked image indicator brought by the link image feature.\n\t */\n\ttop: min(var(--ck-spacing-medium), 6%);\n\tright: min(var(--ck-spacing-medium), 6%);\n\tborder-radius: 50%;\n\tz-index: 1;\n\n\t&::after {\n\t\tcontent: "";\n\t\tposition: absolute;\n\t}\n}\n','/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-image-upload-icon: hsl(0, 0%, 100%);\n\t--ck-color-image-upload-icon-background: hsl(120, 100%, 27%);\n\n\t/* Match the icon size with the linked image indicator brought by the link image feature. */\n\t--ck-image-upload-icon-size: 20;\n\t--ck-image-upload-icon-width: 2px;\n\t--ck-image-upload-icon-is-visible: clamp(0px, 100% - 50px, 1px);\n}\n\n.ck-image-upload-complete-icon {\n\topacity: 0;\n\tbackground: var(--ck-color-image-upload-icon-background);\n\tanimation-name: ck-upload-complete-icon-show, ck-upload-complete-icon-hide;\n\tanimation-fill-mode: forwards, forwards;\n\tanimation-duration: 500ms, 500ms;\n\n\t/* To make animation scalable. */\n\tfont-size: calc(1px * var(--ck-image-upload-icon-size));\n\n\t/* Hide completed upload icon after 3 seconds. */\n\tanimation-delay: 0ms, 3000ms;\n\n\t/*\n\t * Use CSS math to simulate container queries.\n\t * https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things\n\t */\n\toverflow: hidden;\n\twidth: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\n\theight: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\n\n\t/* This is check icon element made from border-width mixed with animations. */\n\t&::after {\n\t\t/* Because of border transformation we need to "hard code" left position. */\n\t\tleft: 25%;\n\n\t\ttop: 50%;\n\t\topacity: 0;\n\t\theight: 0;\n\t\twidth: 0;\n\n\t\ttransform: scaleX(-1) rotate(135deg);\n\t\ttransform-origin: left top;\n\t\tborder-top: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\n\t\tborder-right: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\n\n\t\tanimation-name: ck-upload-complete-icon-check;\n\t\tanimation-duration: 500ms;\n\t\tanimation-delay: 500ms;\n\t\tanimation-fill-mode: forwards;\n\n\t\t/* #1095. While reset is not providing proper box-sizing for pseudoelements, we need to handle it. */\n\t\tbox-sizing: border-box;\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\tanimation-duration: 0ms;\n\n\t\t&::after {\n\t\t\tanimation: none;\n\t\t\topacity: 1;\n\t\t\twidth: 0.3em;\n\t\t\theight: 0.45em;\n\t\t}\n\t}\n}\n\n@keyframes ck-upload-complete-icon-show {\n\tfrom {\n\t\topacity: 0;\n\t}\n\n\tto {\n\t\topacity: 1;\n\t}\n}\n\n@keyframes ck-upload-complete-icon-hide {\n\tfrom {\n\t\topacity: 1;\n\t}\n\n\tto {\n\t\topacity: 0;\n\t}\n}\n\n@keyframes ck-upload-complete-icon-check {\n\t0% {\n\t\topacity: 1;\n\t\twidth: 0;\n\t\theight: 0;\n\t}\n\t33% {\n\t\twidth: 0.3em;\n\t\theight: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t\twidth: 0.3em;\n\t\theight: 0.45em;\n\t}\n}\n'],sourceRoot:""}]);const a=s},1559:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,'.ck .ck-upload-placeholder-loader{align-items:center;display:flex;justify-content:center;left:0;position:absolute;top:0}.ck .ck-upload-placeholder-loader:before{content:"";position:relative}:root{--ck-color-upload-placeholder-loader:#b3b3b3;--ck-upload-placeholder-loader-size:32px;--ck-upload-placeholder-image-aspect-ratio:2.8}.ck .ck-image-upload-placeholder{margin:0;width:100%}.ck .ck-image-upload-placeholder.image-inline{width:calc(var(--ck-upload-placeholder-loader-size)*2*var(--ck-upload-placeholder-image-aspect-ratio))}.ck .ck-image-upload-placeholder img{aspect-ratio:var(--ck-upload-placeholder-image-aspect-ratio)}.ck .ck-upload-placeholder-loader{height:100%;width:100%}.ck .ck-upload-placeholder-loader:before{animation:ck-upload-placeholder-loader 1s linear infinite;border-radius:50%;border-right:2px solid transparent;border-top:3px solid var(--ck-color-upload-placeholder-loader);height:var(--ck-upload-placeholder-loader-size);width:var(--ck-upload-placeholder-loader-size)}@keyframes ck-upload-placeholder-loader{to{transform:rotate(1turn)}}',"",{version:3,sources:["webpack://./../ckeditor5-image/theme/imageuploadloader.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadloader.css"],names:[],mappings:"AAKA,kCAGC,kBAAmB,CADnB,YAAa,CAEb,sBAAuB,CAEvB,MAAO,CALP,iBAAkB,CAIlB,KAOD,CAJC,yCACC,UAAW,CACX,iBACD,CCXD,MACC,4CAAqD,CACrD,wCAAyC,CACzC,8CACD,CAEA,iCAGC,QAAS,CADT,UAgBD,CAbC,8CACC,sGACD,CAEA,qCAOC,4DACD,CAGD,kCAEC,WAAY,CADZ,UAWD,CARC,yCAMC,yDAA0D,CAH1D,iBAAkB,CAElB,kCAAmC,CADnC,8DAA+D,CAF/D,+CAAgD,CADhD,8CAMD,CAGD,wCACC,GACC,uBACD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-upload-placeholder-loader {\n\tposition: absolute;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\ttop: 0;\n\tleft: 0;\n\n\t&::before {\n\t\tcontent: '';\n\t\tposition: relative;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-upload-placeholder-loader: hsl(0, 0%, 70%);\n\t--ck-upload-placeholder-loader-size: 32px;\n\t--ck-upload-placeholder-image-aspect-ratio: 2.8;\n}\n\n.ck .ck-image-upload-placeholder {\n\t/* We need to control the full width of the SVG gray background. */\n\twidth: 100%;\n\tmargin: 0;\n\n\t&.image-inline {\n\t\twidth: calc( 2 * var(--ck-upload-placeholder-loader-size) * var(--ck-upload-placeholder-image-aspect-ratio) );\n\t}\n\n\t& img {\n\t\t/*\n\t\t * This is an arbitrary aspect for a 1x1 px GIF to display to the user. Not too tall, not too short.\n\t\t * There's nothing special about this number except that it should make the image placeholder look like\n\t\t * a real image during this short period after the upload started and before the image was read from the\n\t\t * file system (and a rich preview was loaded).\n\t\t */\n\t\taspect-ratio: var(--ck-upload-placeholder-image-aspect-ratio);\n\t}\n}\n\n.ck .ck-upload-placeholder-loader {\n\twidth: 100%;\n\theight: 100%;\n\n\t&::before {\n\t\twidth: var(--ck-upload-placeholder-loader-size);\n\t\theight: var(--ck-upload-placeholder-loader-size);\n\t\tborder-radius: 50%;\n\t\tborder-top: 3px solid var(--ck-color-upload-placeholder-loader);\n\t\tborder-right: 2px solid transparent;\n\t\tanimation: ck-upload-placeholder-loader 1s linear infinite;\n\t}\n}\n\n@keyframes ck-upload-placeholder-loader {\n\tto {\n\t\ttransform: rotate( 360deg );\n\t}\n}\n"],sourceRoot:""}]);const a=s},2267:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-editor__editable .image,.ck.ck-editor__editable .image-inline{position:relative}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{left:0;position:absolute;top:0}.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:fadeIn .7s}@media (prefers-reduced-motion:reduce){.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:none;opacity:1}}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{background:var(--ck-color-upload-bar-background);height:2px;transition:width .1s;width:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/imageuploadprogress.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadprogress.css"],names:[],mappings:"AAMC,qEAEC,iBACD,CAGA,uGAIC,MAAO,CAFP,iBAAkB,CAClB,KAED,CCRC,yFACC,oBAMD,CAJC,uCAHD,yFAKE,cAAe,CADf,SAGF,CADC,CAKF,uGAIC,gDAAiD,CAFjD,UAAW,CAGX,oBAAuB,CAFvB,OAGD,CAGD,kBACC,GAAO,SAAY,CACnB,GAAO,SAAY,CACpB",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t& .image,\n\t& .image-inline {\n\t\tposition: relative;\n\t}\n\n\t/* Upload progress bar. */\n\t& .image .ck-progress-bar,\n\t& .image-inline .ck-progress-bar {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t& .image,\n\t& .image-inline {\n\t\t/* Showing animation. */\n\t\t&.ck-appear {\n\t\t\tanimation: fadeIn 700ms;\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\topacity: 1;\n\t\t\t\tanimation: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Upload progress bar. */\n\t& .image .ck-progress-bar,\n\t& .image-inline .ck-progress-bar {\n\t\theight: 2px;\n\t\twidth: 0;\n\t\tbackground: var(--ck-color-upload-bar-background);\n\t\ttransition: width 100ms;\n\t}\n}\n\n@keyframes fadeIn {\n\tfrom { opacity: 0; }\n\tto { opacity: 1; }\n}\n"],sourceRoot:""}]);const a=s},4062:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-text-alternative-form{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-text-alternative-form .ck-labeled-field-view{display:inline-block}.ck.ck-text-alternative-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-text-alternative-form{flex-wrap:wrap}.ck.ck-text-alternative-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-text-alternative-form .ck-button{flex-basis:50%}}","",{version:3,sources:["webpack://./../ckeditor5-image/theme/textalternativeform.css","webpack://./../ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAOA,6BACC,YAAa,CACb,kBAAmB,CACnB,gBAqBD,CAnBC,oDACC,oBACD,CAEA,uCACC,YACD,CCZA,oCDCD,6BAcE,cAUF,CARE,oDACC,eACD,CAEA,wCACC,cACD,CCrBD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-text-alternative-form {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\n\t& .ck-labeled-field-view {\n\t\tdisplay: inline-block;\n\t}\n\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tflex-wrap: wrap;\n\n\t\t& .ck-labeled-field-view {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t& .ck-button {\n\t\t\tflex-basis: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},1232:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-editor__editable .ck-list-bogus-paragraph{display:block}","",{version:3,sources:["webpack://./../ckeditor5-list/theme/documentlist.css"],names:[],mappings:"AAKA,8CACC,aACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-editor__editable .ck-list-bogus-paragraph {\n\tdisplay: block;\n}\n"],sourceRoot:""}]);const a=s},6903:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-content ol{list-style-type:decimal}.ck-content ol ol{list-style-type:lower-latin}.ck-content ol ol ol{list-style-type:lower-roman}.ck-content ol ol ol ol{list-style-type:upper-latin}.ck-content ol ol ol ol ol{list-style-type:upper-roman}.ck-content ul{list-style-type:disc}.ck-content ul ul{list-style-type:circle}.ck-content ul ul ul,.ck-content ul ul ul ul{list-style-type:square}","",{version:3,sources:["webpack://./../ckeditor5-list/theme/list.css"],names:[],mappings:"AAKA,eACC,uBAiBD,CAfC,kBACC,2BAaD,CAXC,qBACC,2BASD,CAPC,wBACC,2BAKD,CAHC,2BACC,2BACD,CAMJ,eACC,oBAaD,CAXC,kBACC,sBASD,CAJE,6CACC,sBACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content ol {\n\tlist-style-type: decimal;\n\n\t& ol {\n\t\tlist-style-type: lower-latin;\n\n\t\t& ol {\n\t\t\tlist-style-type: lower-roman;\n\n\t\t\t& ol {\n\t\t\t\tlist-style-type: upper-latin;\n\n\t\t\t\t& ol {\n\t\t\t\t\tlist-style-type: upper-roman;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck-content ul {\n\tlist-style-type: disc;\n\n\t& ul {\n\t\tlist-style-type: circle;\n\n\t\t& ul {\n\t\t\tlist-style-type: square;\n\n\t\t\t& ul {\n\t\t\t\tlist-style-type: square;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},9968:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-list-properties.ck-list-properties_without-styles{padding:var(--ck-spacing-large)}.ck.ck-list-properties.ck-list-properties_without-styles>*{min-width:14em}.ck.ck-list-properties.ck-list-properties_without-styles>*+*{margin-top:var(--ck-spacing-standard)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-list-styles-list{grid-template-columns:repeat(4,auto)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible{border-top:1px solid var(--ck-color-base-border)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible>.ck-collapsible__children>*{width:100%}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible>.ck-collapsible__children>*+*{margin-top:var(--ck-spacing-standard)}.ck.ck-list-properties .ck.ck-numbered-list-properties__start-index .ck-input{min-width:auto;width:100%}.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order{background:transparent;margin-bottom:calc(var(--ck-spacing-tiny)*-1);padding-left:0;padding-right:0}.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:active,.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:hover{background:none;border-color:transparent;box-shadow:none}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-list/listproperties.css"],names:[],mappings:"AAOC,yDACC,+BASD,CAPC,2DACC,cAKD,CAHC,6DACC,qCACD,CASD,wFACC,oCACD,CAGA,mFACC,gDAWD,CARE,+GACC,UAKD,CAHC,iHACC,qCACD,CAMJ,8EACC,cAAe,CACf,UACD,CAEA,uEACC,sBAAuB,CAGvB,6CAAgD,CAFhD,cAAe,CACf,eAQD,CALC,2JAGC,eAAgB,CADhB,wBAAyB,CADzB,eAGD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-list-properties {\n\t/* When there are no list styles and there is no collapsible. */\n\t&.ck-list-properties_without-styles {\n\t\tpadding: var(--ck-spacing-large);\n\n\t\t& > * {\n\t\t\tmin-width: 14em;\n\n\t\t\t& + * {\n\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * When the numbered list property fields (start at, reversed) should be displayed,\n\t * more horizontal space is needed. Reconfigure the style grid to create that space.\n\t */\n\t&.ck-list-properties_with-numbered-properties {\n\t\t& > .ck-list-styles-list {\n\t\t\tgrid-template-columns: repeat( 4, auto );\n\t\t}\n\n\t\t/* When list styles are rendered and property fields are in a collapsible. */\n\t\t& > .ck-collapsible {\n\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\n\t\t\t& > .ck-collapsible__children {\n\t\t\t\t& > * {\n\t\t\t\t\twidth: 100%;\n\n\t\t\t\t\t& + * {\n\t\t\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-numbered-list-properties__start-index .ck-input {\n\t\tmin-width: auto;\n\t\twidth: 100%;\n\t}\n\n\t& .ck.ck-numbered-list-properties__reversed-order {\n\t\tbackground: transparent;\n\t\tpadding-left: 0;\n\t\tpadding-right: 0;\n\t\tmargin-bottom: calc(-1 * var(--ck-spacing-tiny));\n\n\t\t&:active, &:hover {\n\t\t\tbox-shadow: none;\n\t\t\tborder-color: transparent;\n\t\t\tbackground: none;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},7141:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-list-styles-list{display:grid}:root{--ck-list-style-button-size:44px}.ck.ck-list-styles-list{column-gap:var(--ck-spacing-medium);grid-template-columns:repeat(3,auto);padding:var(--ck-spacing-large);row-gap:var(--ck-spacing-medium)}.ck.ck-list-styles-list .ck-button{box-sizing:content-box;margin:0;padding:0}.ck.ck-list-styles-list .ck-button,.ck.ck-list-styles-list .ck-button .ck-icon{height:var(--ck-list-style-button-size);width:var(--ck-list-style-button-size)}","",{version:3,sources:["webpack://./../ckeditor5-list/theme/liststyles.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-list/liststyles.css"],names:[],mappings:"AAKA,wBACC,YACD,CCFA,MACC,gCACD,CAEA,wBAGC,mCAAoC,CAFpC,oCAAwC,CAGxC,+BAAgC,CAFhC,gCA4BD,CAxBC,mCAiBC,sBAAuB,CAPvB,QAAS,CANT,SAmBD,CAJC,+EAhBA,uCAAwC,CADxC,sCAoBA",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-list-styles-list {\n\tdisplay: grid;\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-list-style-button-size: 44px;\n}\n\n.ck.ck-list-styles-list {\n\tgrid-template-columns: repeat( 3, auto );\n\trow-gap: var(--ck-spacing-medium);\n\tcolumn-gap: var(--ck-spacing-medium);\n\tpadding: var(--ck-spacing-large);\n\n\t& .ck-button {\n\t\t/* Make the button look like a thumbnail (the icon "takes it all"). */\n\t\twidth: var(--ck-list-style-button-size);\n\t\theight: var(--ck-list-style-button-size);\n\t\tpadding: 0;\n\n\t\t/*\n\t\t * Buttons are aligned by the grid so disable default button margins to not collide with the\n\t\t * gaps in the grid.\n\t\t */\n\t\tmargin: 0;\n\n\t\t/*\n\t\t * Make sure the button border (which is displayed on focus, BTW) does not steal pixels\n\t\t * from the button dimensions and, as a result, decrease the size of the icon\n\t\t * (which becomes blurry as it scales down).\n\t\t */\n\t\tbox-sizing: content-box;\n\n\t\t& .ck-icon {\n\t\t\twidth: var(--ck-list-style-button-size);\n\t\t\theight: var(--ck-list-style-button-size);\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},8991:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,':root{--ck-todo-list-checkmark-size:16px}.ck-content .todo-list{list-style:none}.ck-content .todo-list li{margin-bottom:5px;position:relative}.ck-content .todo-list li .todo-list{margin-top:5px}.ck-content .todo-list .todo-list__label>input{-webkit-appearance:none;border:0;display:inline-block;height:var(--ck-todo-list-checkmark-size);left:-25px;margin-left:0;margin-right:-15px;position:relative;right:0;vertical-align:middle;width:var(--ck-todo-list-checkmark-size)}.ck-content[dir=rtl] .todo-list .todo-list__label>input{left:0;margin-left:-15px;margin-right:0;right:-25px}.ck-content .todo-list .todo-list__label>input:before{border:1px solid #333;border-radius:2px;box-sizing:border-box;content:"";display:block;height:100%;position:absolute;transition:box-shadow .25s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.ck-content .todo-list .todo-list__label>input:before{transition:none}}.ck-content .todo-list .todo-list__label>input:after{border-color:transparent;border-style:solid;border-width:0 calc(var(--ck-todo-list-checkmark-size)/8) calc(var(--ck-todo-list-checkmark-size)/8) 0;box-sizing:content-box;content:"";display:block;height:calc(var(--ck-todo-list-checkmark-size)/2.6);left:calc(var(--ck-todo-list-checkmark-size)/3);pointer-events:none;position:absolute;top:calc(var(--ck-todo-list-checkmark-size)/5.3);transform:rotate(45deg);width:calc(var(--ck-todo-list-checkmark-size)/5.3)}.ck-content .todo-list .todo-list__label>input[checked]:before{background:#26ab33;border-color:#26ab33}.ck-content .todo-list .todo-list__label>input[checked]:after{border-color:#fff}.ck-content .todo-list .todo-list__label .todo-list__label__description{vertical-align:middle}.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox]{position:absolute}.ck-editor__editable.ck-content .todo-list .todo-list__label>input,.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input{cursor:pointer}.ck-editor__editable.ck-content .todo-list .todo-list__label>input:hover:before,.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:hover:before{box-shadow:0 0 0 5px rgba(0,0,0,.1)}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input{-webkit-appearance:none;border:0;display:inline-block;height:var(--ck-todo-list-checkmark-size);left:-25px;margin-left:0;margin-right:-15px;position:relative;right:0;vertical-align:middle;width:var(--ck-todo-list-checkmark-size)}.ck-editor__editable.ck-content[dir=rtl] .todo-list .todo-list__label>span[contenteditable=false]>input{left:0;margin-left:-15px;margin-right:0;right:-25px}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:before{border:1px solid #333;border-radius:2px;box-sizing:border-box;content:"";display:block;height:100%;position:absolute;transition:box-shadow .25s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:before{transition:none}}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:after{border-color:transparent;border-style:solid;border-width:0 calc(var(--ck-todo-list-checkmark-size)/8) calc(var(--ck-todo-list-checkmark-size)/8) 0;box-sizing:content-box;content:"";display:block;height:calc(var(--ck-todo-list-checkmark-size)/2.6);left:calc(var(--ck-todo-list-checkmark-size)/3);pointer-events:none;position:absolute;top:calc(var(--ck-todo-list-checkmark-size)/5.3);transform:rotate(45deg);width:calc(var(--ck-todo-list-checkmark-size)/5.3)}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input[checked]:before{background:#26ab33;border-color:#26ab33}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input[checked]:after{border-color:#fff}.ck-editor__editable.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox]{position:absolute}',"",{version:3,sources:["webpack://./../ckeditor5-list/theme/todolist.css"],names:[],mappings:"AAKA,MACC,kCACD,CA4EA,uBACC,eAwBD,CAtBC,0BAEC,iBAAkB,CADlB,iBAMD,CAHC,qCACC,cACD,CAIA,+CAtFD,uBAAwB,CAQxB,QAAS,CAPT,oBAAqB,CAGrB,yCAA0C,CAO1C,UAAW,CAGX,aAAc,CAFd,kBAAmB,CAVnB,iBAAkB,CAWlB,OAAQ,CARR,qBAAsB,CAFtB,wCAqFC,CAFA,wDApEA,MAAO,CAGP,iBAAkB,CAFlB,cAAe,CACf,WAoEA,CAhED,sDAOC,qBAAiC,CACjC,iBAAkB,CALlB,qBAAsB,CACtB,UAAW,CAHX,aAAc,CAKd,WAAY,CAJZ,iBAAkB,CAOlB,sCAAwC,CAJxC,UASD,CAHC,uCAXD,sDAYE,eAEF,CADC,CAGD,qDAaC,wBAAyB,CADzB,kBAAmB,CAEnB,sGAA+G,CAX/G,sBAAuB,CAEvB,UAAW,CAJX,aAAc,CAUd,mDAAwD,CAHxD,+CAAoD,CAJpD,mBAAoB,CAFpB,iBAAkB,CAOlB,gDAAqD,CAMrD,uBAAwB,CALxB,kDAMD,CAGC,+DACC,kBAA8B,CAC9B,oBACD,CAEA,8DACC,iBACD,CAwBA,wEACC,qBACD,CAEA,mGACC,iBACD,CAYD,kKAEC,cAKD,CAHC,4LACC,mCACD,CAMD,+FAxHA,uBAAwB,CAQxB,QAAS,CAPT,oBAAqB,CAGrB,yCAA0C,CAO1C,UAAW,CAGX,aAAc,CAFd,kBAAmB,CAVnB,iBAAkB,CAWlB,OAAQ,CARR,qBAAsB,CAFtB,wCAuHA,CAFA,wGAtGC,MAAO,CAGP,iBAAkB,CAFlB,cAAe,CACf,WAsGD,CAlGA,sGAOC,qBAAiC,CACjC,iBAAkB,CALlB,qBAAsB,CACtB,UAAW,CAHX,aAAc,CAKd,WAAY,CAJZ,iBAAkB,CAOlB,sCAAwC,CAJxC,UASD,CAHC,uCAXD,sGAYE,eAEF,CADC,CAGD,qGAaC,wBAAyB,CADzB,kBAAmB,CAEnB,sGAA+G,CAX/G,sBAAuB,CAEvB,UAAW,CAJX,aAAc,CAUd,mDAAwD,CAHxD,+CAAoD,CAJpD,mBAAoB,CAFpB,iBAAkB,CAOlB,gDAAqD,CAMrD,uBAAwB,CALxB,kDAMD,CAGC,+GACC,kBAA8B,CAC9B,oBACD,CAEA,8GACC,iBACD,CA2DA,uHACC,iBACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-todo-list-checkmark-size: 16px;\n}\n\n@define-mixin todo-list-checkbox {\n\t-webkit-appearance: none;\n\tdisplay: inline-block;\n\tposition: relative;\n\twidth: var(--ck-todo-list-checkmark-size);\n\theight: var(--ck-todo-list-checkmark-size);\n\tvertical-align: middle;\n\n\t/* Needed on iOS */\n\tborder: 0;\n\n\t/* LTR styles */\n\tleft: -25px;\n\tmargin-right: -15px;\n\tright: 0;\n\tmargin-left: 0;\n\n\t/* RTL styles */\n\t@nest [dir=rtl]& {\n\t\tleft: 0;\n\t\tmargin-right: 0;\n\t\tright: -25px;\n\t\tmargin-left: -15px;\n\t}\n\n\t&::before {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\tbox-sizing: border-box;\n\t\tcontent: '';\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tborder: 1px solid hsl(0, 0%, 20%);\n\t\tborder-radius: 2px;\n\t\ttransition: 250ms ease-in-out box-shadow;\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\ttransition: none;\n\t\t}\n\t}\n\n\t&::after {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\tbox-sizing: content-box;\n\t\tpointer-events: none;\n\t\tcontent: '';\n\n\t\t/* Calculate tick position, size and border-width proportional to the checkmark size. */\n\t\tleft: calc( var(--ck-todo-list-checkmark-size) / 3 );\n\t\ttop: calc( var(--ck-todo-list-checkmark-size) / 5.3 );\n\t\twidth: calc( var(--ck-todo-list-checkmark-size) / 5.3 );\n\t\theight: calc( var(--ck-todo-list-checkmark-size) / 2.6 );\n\t\tborder-style: solid;\n\t\tborder-color: transparent;\n\t\tborder-width: 0 calc( var(--ck-todo-list-checkmark-size) / 8 ) calc( var(--ck-todo-list-checkmark-size) / 8 ) 0;\n\t\ttransform: rotate(45deg);\n\t}\n\n\t&[checked] {\n\t\t&::before {\n\t\t\tbackground: hsl(126, 64%, 41%);\n\t\t\tborder-color: hsl(126, 64%, 41%);\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: hsl(0, 0%, 100%);\n\t\t}\n\t}\n}\n\n/*\n * To-do list content styles.\n */\n.ck-content .todo-list {\n\tlist-style: none;\n\n\t& li {\n\t\tposition: relative;\n\t\tmargin-bottom: 5px;\n\n\t\t& .todo-list {\n\t\t\tmargin-top: 5px;\n\t\t}\n\t}\n\n\t& .todo-list__label {\n\t\t& > input {\n\t\t\t@mixin todo-list-checkbox;\n\t\t}\n\n\t\t& .todo-list__label__description {\n\t\t\tvertical-align: middle;\n\t\t}\n\n\t\t&.todo-list__label_without-description input[type=checkbox] {\n\t\t\tposition: absolute;\n\t\t}\n\t}\n}\n\n/*\n * To-do list editing view styles.\n */\n.ck-editor__editable.ck-content .todo-list .todo-list__label {\n\t/*\n\t * To-do list should be interactive only during the editing\n\t * (https://github.com/ckeditor/ckeditor5/issues/2090).\n\t */\n\t& > input,\n\t& > span[contenteditable=false] > input {\n\t\tcursor: pointer;\n\n\t\t&:hover::before {\n\t\t\tbox-shadow: 0 0 0 5px hsla(0, 0%, 0%, 0.1);\n\t\t}\n\t}\n\n\t/*\n\t * Document Lists - editing view has an additional span around checkbox.\n\t */\n\t& > span[contenteditable=false] > input {\n\t\t@mixin todo-list-checkbox;\n\t}\n\n\t&.todo-list__label_without-description {\n\t\t& input[type=checkbox] {\n\t\t\tposition: absolute;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},8868:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-character-grid{max-width:100%}.ck.ck-character-grid .ck-character-grid__tiles{display:grid}:root{--ck-character-grid-tile-size:24px}.ck.ck-character-grid{max-height:200px;overflow-x:hidden;overflow-y:auto;width:350px}@media screen and (max-width:600px){.ck.ck-character-grid{width:190px}}.ck.ck-character-grid .ck-character-grid__tiles{grid-template-columns:repeat(10,1fr);margin:var(--ck-spacing-standard) var(--ck-spacing-large);grid-gap:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-character-grid .ck-character-grid__tiles{grid-template-columns:repeat(5,1fr)}}.ck.ck-character-grid .ck-character-grid__tile{border:0;font-size:1.2em;height:var(--ck-character-grid-tile-size);min-height:var(--ck-character-grid-tile-size);min-width:var(--ck-character-grid-tile-size);padding:0;transition:box-shadow .2s ease;width:var(--ck-character-grid-tile-size)}@media (prefers-reduced-motion:reduce){.ck.ck-character-grid .ck-character-grid__tile{transition:none}}.ck.ck-character-grid .ck-character-grid__tile:focus:not(.ck-disabled),.ck.ck-character-grid .ck-character-grid__tile:hover:not(.ck-disabled){border:0;box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}.ck.ck-character-grid .ck-character-grid__tile .ck-button__label{line-height:var(--ck-character-grid-tile-size);text-align:center;width:100%}","",{version:3,sources:["webpack://./../ckeditor5-special-characters/theme/charactergrid.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-special-characters/charactergrid.css","webpack://./../ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAKA,sBACC,cAKD,CAHC,gDACC,YACD,CCFD,MACC,kCACD,CAEA,sBAIC,gBAAiB,CAFjB,iBAAkB,CADlB,eAAgB,CAEhB,WA6CD,CCtDC,oCDMD,sBAOE,WAyCF,CCpDC,CDcA,gDACC,oCAAsC,CACtC,yDAA0D,CAC1D,mCAKD,CCxBA,oCDgBA,gDAME,mCAEF,CCtBA,CDwBA,+CAQC,QAAS,CAHT,eAAgB,CAHhB,yCAA0C,CAE1C,6CAA8C,CAD9C,4CAA6C,CAG7C,SAAU,CACV,8BAA+B,CAN/B,wCA0BD,CAjBC,uCAVD,+CAWE,eAgBF,CAfC,CAEA,8IAGC,QAAS,CACT,iGACD,CAGA,iEACC,8CAA+C,CAE/C,iBAAkB,CADlB,UAED",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-character-grid {\n\tmax-width: 100%;\n\n\t& .ck-character-grid__tiles {\n\t\tdisplay: grid;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n@import "../mixins/_rounded.css";\n\n:root {\n\t--ck-character-grid-tile-size: 24px;\n}\n\n.ck.ck-character-grid {\n\toverflow-y: auto;\n\toverflow-x: hidden;\n\twidth: 350px;\n\tmax-height: 200px;\n\n\t@mixin ck-media-phone {\n\t\twidth: 190px;\n\t}\n\n\t& .ck-character-grid__tiles {\n\t\tgrid-template-columns: repeat(10, 1fr);\n\t\tmargin: var(--ck-spacing-standard) var(--ck-spacing-large);\n\t\tgrid-gap: var(--ck-spacing-standard);\n\n\t\t@mixin ck-media-phone {\n\t\t\tgrid-template-columns: repeat(5, 1fr);\n\t\t}\n\t}\n\n\t& .ck-character-grid__tile {\n\t\twidth: var(--ck-character-grid-tile-size);\n\t\theight: var(--ck-character-grid-tile-size);\n\t\tmin-width: var(--ck-character-grid-tile-size);\n\t\tmin-height: var(--ck-character-grid-tile-size);\n\t\tfont-size: 1.2em;\n\t\tpadding: 0;\n\t\ttransition: .2s ease box-shadow;\n\t\tborder: 0;\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\ttransition: none;\n\t\t}\n\n\t\t&:focus:not( .ck-disabled ),\n\t\t&:hover:not( .ck-disabled ) {\n\t\t\t/* Disable the default .ck-button\'s border ring. */\n\t\t\tborder: 0;\n\t\t\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);\n\t\t}\n\n\t\t/* Make sure the glyph is rendered in the center of the button */\n\t\t& .ck-button__label {\n\t\t\tline-height: var(--ck-character-grid-tile-size);\n\t\t\twidth: 100%;\n\t\t\ttext-align: center;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},128:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-character-info{border-top:1px solid var(--ck-color-base-border);display:flex;justify-content:space-between;padding:var(--ck-spacing-small) var(--ck-spacing-large)}.ck.ck-character-info>*{font-size:var(--ck-font-size-small);text-transform:uppercase}.ck.ck-character-info .ck-character-info__name{max-width:280px;overflow:hidden;text-overflow:ellipsis}.ck.ck-character-info .ck-character-info__code{opacity:.6}@media screen and (max-width:600px){.ck.ck-character-info{max-width:190px}}","",{version:3,sources:["webpack://./../ckeditor5-special-characters/theme/characterinfo.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-special-characters/characterinfo.css","webpack://./../ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAKA,sBCIC,gDAAiD,CDHjD,YAAa,CACb,6BAA8B,CCC9B,uDDAD,CCGC,wBAEC,mCAAoC,CADpC,wBAED,CAEA,+CACC,eAAgB,CAEhB,eAAgB,CADhB,sBAED,CAEA,+CACC,UACD,CClBA,oCDCD,sBAoBE,eAEF,CCrBC",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-character-info {\n\tdisplay: flex;\n\tjustify-content: space-between;\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-character-info {\n\tpadding: var(--ck-spacing-small) var(--ck-spacing-large);\n\tborder-top: 1px solid var(--ck-color-base-border);\n\n\t& > * {\n\t\ttext-transform: uppercase;\n\t\tfont-size: var(--ck-font-size-small);\n\t}\n\n\t& .ck-character-info__name {\n\t\tmax-width: 280px;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t}\n\n\t& .ck-character-info__code {\n\t\topacity: .6;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tmax-width: 190px;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},4272:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-special-characters-navigation>.ck-label{max-width:160px;overflow:hidden;text-overflow:ellipsis}.ck.ck-special-characters-navigation>.ck-dropdown .ck-dropdown__panel{max-height:250px;overflow-x:hidden;overflow-y:auto}@media screen and (max-width:600px){.ck.ck-special-characters-navigation{max-width:190px}.ck.ck-special-characters-navigation>.ck-form__header__label{overflow:hidden;text-overflow:ellipsis}}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-special-characters/specialcharacters.css","webpack://./../ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAUC,+CACC,eAAgB,CAEhB,eAAgB,CADhB,sBAED,CAEA,sEAEC,gBAAiB,CAEjB,iBAAkB,CADlB,eAED,CCfA,oCDED,qCAgBE,eAOF,CALE,6DAEC,eAAgB,CADhB,sBAED,CCrBD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck.ck-special-characters-navigation {\n\n\t& > .ck-label {\n\t\tmax-width: 160px;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t}\n\n\t& > .ck-dropdown .ck-dropdown__panel {\n\t\t/* There could be dozens of categories available. Use scroll to prevent a 10e6px dropdown. */\n\t\tmax-height: 250px;\n\t\toverflow-y: auto;\n\t\toverflow-x: hidden;\n\t}\n\n\t@mixin ck-media-phone {\n\t\tmax-width: 190px;\n\n\t\t& > .ck-form__header__label {\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},5506:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-input-color{display:flex;flex-direction:row-reverse;width:100%}.ck.ck-input-color>input.ck.ck-input-text{flex-grow:1;min-width:auto}.ck.ck-input-color>div.ck.ck-dropdown{min-width:auto}.ck.ck-input-color>div.ck.ck-dropdown>.ck-input-color__button .ck-dropdown__arrow{display:none}.ck.ck-input-color .ck.ck-input-color__button{display:flex}.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview{overflow:hidden;position:relative}.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview>.ck.ck-input-color__button__preview__no-color-indicator{display:block;position:absolute}[dir=ltr] .ck.ck-input-color>.ck.ck-input-text{border-bottom-right-radius:0;border-top-right-radius:0}[dir=rtl] .ck.ck-input-color>.ck.ck-input-text{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-input-color>.ck.ck-input-text:focus{z-index:0}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{padding:0}[dir=ltr] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{border-bottom-left-radius:0;border-top-left-radius:0}[dir=ltr] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button:not(:focus){border-left:1px solid transparent}[dir=rtl] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{border-bottom-right-radius:0;border-top-right-radius:0}[dir=rtl] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button:not(:focus){border-right:1px solid transparent}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button.ck-disabled{background:var(--ck-color-input-disabled-background)}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview{border-radius:0}.ck-rounded-corners .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview,.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview{border:1px solid var(--ck-color-input-border);height:20px;width:20px}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview>.ck.ck-input-color__button__preview__no-color-indicator{background:red;border-radius:2px;height:150%;left:50%;top:-30%;transform:rotate(45deg);transform-origin:50%;width:8%}.ck.ck-input-color .ck.ck-input-color__remove-color{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(var(--ck-spacing-standard)/2) var(--ck-spacing-standard);width:100%}.ck.ck-input-color .ck.ck-input-color__remove-color:not(:focus){border-bottom:1px solid var(--ck-color-input-border)}[dir=ltr] .ck.ck-input-color .ck.ck-input-color__remove-color{border-top-right-radius:0}[dir=rtl] .ck.ck-input-color .ck.ck-input-color__remove-color{border-top-left-radius:0}.ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon{margin-left:var(--ck-spacing-standard);margin-right:0}","",{version:3,sources:["webpack://./../ckeditor5-table/theme/colorinput.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/colorinput.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,mBAEC,YAAa,CACb,0BAA2B,CAF3B,UAgCD,CA5BC,0CAEC,WAAY,CADZ,cAED,CAEA,sCACC,cAMD,CAHC,kFACC,YACD,CAGD,8CAEC,YAWD,CATC,kFAEC,eAAgB,CADhB,iBAOD,CAJC,0IAEC,aAAc,CADd,iBAED,CC1BF,+CAGE,4BAA6B,CAD7B,yBAcF,CAhBA,+CAQE,2BAA4B,CAD5B,wBASF,CAHC,2CACC,SACD,CAIA,wEACC,SA0CD,CA3CA,kFAKE,2BAA4B,CAD5B,wBAuCF,CApCE,8FACC,iCACD,CATF,kFAcE,4BAA6B,CAD7B,yBA8BF,CA3BE,8FACC,kCACD,CAGD,oFACC,oDACD,CAEA,4GC1CF,eD2DE,CAjBA,+PCtCD,qCDuDC,CAjBA,4GAKC,6CAA8C,CAD9C,WAAY,CADZ,UAcD,CAVC,oKAKC,cAA6B,CAC7B,iBAAkB,CAHlB,WAAY,CADZ,QAAS,CADT,QAAS,CAMT,uBAAwB,CACxB,oBAAqB,CAJrB,QAKD,CAKH,oDAIC,2BAA4B,CAC5B,4BAA6B,CAH7B,qEAAwE,CADxE,UA0BD,CApBC,gEACC,oDACD,CATD,8DAYE,yBAeF,CA3BA,8DAgBE,wBAWF,CARC,gEACC,uCAMD,CAPA,0EAKE,sCAAuC,CADvC,cAGF",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-input-color {\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: row-reverse;\n\n\t& > input.ck.ck-input-text {\n\t\tmin-width: auto;\n\t\tflex-grow: 1;\n\t}\n\n\t& > div.ck.ck-dropdown {\n\t\tmin-width: auto;\n\n\t\t/* This dropdown has no arrow but a color preview instead. */\n\t\t& > .ck-input-color__button .ck-dropdown__arrow {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& .ck.ck-input-color__button {\n\t\t/* Resolving issue with misaligned buttons on Safari (see #10589) */\n\t\tdisplay: flex;\n\n\t\t& .ck.ck-input-color__button__preview {\n\t\t\tposition: relative;\n\t\t\toverflow: hidden;\n\n\t\t\t& > .ck.ck-input-color__button__preview__no-color-indicator {\n\t\t\t\tposition: absolute;\n\t\t\t\tdisplay: block;\n\t\t\t}\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "../mixins/_rounded.css";\n\n.ck.ck-input-color {\n\t& > .ck.ck-input-text {\n\t\t@mixin ck-dir ltr {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\n\t\t/* Make sure the focused input is always on top of the dropdown button so its\n\t\t outline and border are never cropped (also when the input is read-only). */\n\t\t&:focus {\n\t\t\tz-index: 0;\n\t\t}\n\t}\n\n\t& > .ck.ck-dropdown {\n\t\t& > .ck.ck-button.ck-input-color__button {\n\t\t\tpadding: 0;\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-bottom-left-radius: 0;\n\n\t\t\t\t&:not(:focus) {\n\t\t\t\t\tborder-left: 1px solid transparent;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tborder-top-right-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\n\t\t\t\t&:not(:focus) {\n\t\t\t\t\tborder-right: 1px solid transparent;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&.ck-disabled {\n\t\t\t\tbackground: var(--ck-color-input-disabled-background);\n\t\t\t}\n\n\t\t\t& > .ck.ck-input-color__button__preview {\n\t\t\t\t@mixin ck-rounded-corners;\n\n\t\t\t\twidth: 20px;\n\t\t\t\theight: 20px;\n\t\t\t\tborder: 1px solid var(--ck-color-input-border);\n\n\t\t\t\t& > .ck.ck-input-color__button__preview__no-color-indicator {\n\t\t\t\t\ttop: -30%;\n\t\t\t\t\tleft: 50%;\n\t\t\t\t\theight: 150%;\n\t\t\t\t\twidth: 8%;\n\t\t\t\t\tbackground: hsl(0, 100%, 50%);\n\t\t\t\t\tborder-radius: 2px;\n\t\t\t\t\ttransform: rotate(45deg);\n\t\t\t\t\ttransform-origin: 50%;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-input-color__remove-color {\n\t\twidth: 100%;\n\t\tpadding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);\n\n\t\tborder-bottom-left-radius: 0;\n\t\tborder-bottom-right-radius: 0;\n\n\t\t&:not(:focus) {\n\t\t\tborder-bottom: 1px solid var(--ck-color-input-border);\n\t\t}\n\n\t\t@mixin ck-dir ltr {\n\t\t\tborder-top-right-radius: 0;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tborder-top-left-radius: 0;\n\t\t}\n\n\t\t& .ck.ck-icon {\n\t\t\tmargin-right: var(--ck-spacing-standard);\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-right: 0;\n\t\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},4043:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-form{padding:0 0 var(--ck-spacing-large)}.ck.ck-form:focus{outline:none}.ck.ck-form .ck.ck-input-text{min-width:100%;width:0}.ck.ck-form .ck.ck-dropdown{min-width:100%}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button:not(:focus){border:1px solid var(--ck-color-base-border)}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label{width:100%}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/form.css"],names:[],mappings:"AAKA,YACC,mCAyBD,CAvBC,kBAEC,YACD,CAEA,8BACC,cAAe,CACf,OACD,CAEA,4BACC,cAWD,CARE,6DACC,4CACD,CAEA,mEACC,UACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-form {\n\tpadding: 0 0 var(--ck-spacing-large);\n\n\t&:focus {\n\t\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\n\t\toutline: none;\n\t}\n\n\t& .ck.ck-input-text {\n\t\tmin-width: 100%;\n\t\twidth: 0;\n\t}\n\n\t& .ck.ck-dropdown {\n\t\tmin-width: 100%;\n\n\t\t& .ck-dropdown__button {\n\t\t\t&:not(:focus) {\n\t\t\t\tborder: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\n\t\t\t& .ck-button__label {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},2655:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-form__row{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}.ck.ck-form__row>:not(.ck-label){flex-grow:1}.ck.ck-form__row.ck-table-form__action-row .ck-button-cancel,.ck.ck-form__row.ck-table-form__action-row .ck-button-save{justify-content:center}.ck.ck-form__row{padding:var(--ck-spacing-standard) var(--ck-spacing-large) 0}[dir=ltr] .ck.ck-form__row>:not(.ck-label)+*{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-form__row>:not(.ck-label)+*{margin-right:var(--ck-spacing-large)}.ck.ck-form__row>.ck-label{min-width:100%;width:100%}.ck.ck-form__row.ck-table-form__action-row{margin-top:var(--ck-spacing-large)}.ck.ck-form__row.ck-table-form__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}","",{version:3,sources:["webpack://./../ckeditor5-table/theme/formrow.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/formrow.css"],names:[],mappings:"AAKA,iBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAaD,CAVC,iCACC,WACD,CAGC,wHAEC,sBACD,CCbF,iBACC,4DA2BD,CAvBE,6CAEE,mCAMF,CARA,6CAME,oCAEF,CAGD,2BAEC,cAAe,CADf,UAED,CAEA,2CACC,kCAKD,CAHC,wEACC,0BACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-form__row {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tjustify-content: space-between;\n\n\t/* Ignore labels that work as fieldset legends */\n\t& > *:not(.ck-label) {\n\t\tflex-grow: 1;\n\t}\n\n\t&.ck-table-form__action-row {\n\t\t& .ck-button-save,\n\t\t& .ck-button-cancel {\n\t\t\tjustify-content: center;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-form__row {\n\tpadding: var(--ck-spacing-standard) var(--ck-spacing-large) 0;\n\n\t/* Ignore labels that work as fieldset legends */\n\t& > *:not(.ck-label) {\n\t\t& + * {\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: var(--ck-spacing-large);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-right: var(--ck-spacing-large);\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .ck-label {\n\t\twidth: 100%;\n\t\tmin-width: 100%;\n\t}\n\n\t&.ck-table-form__action-row {\n\t\tmargin-top: var(--ck-spacing-large);\n\n\t\t& .ck-button .ck-button__label {\n\t\t\tcolor: var(--ck-color-text);\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},5032:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck .ck-insert-table-dropdown__grid{display:flex;flex-direction:row;flex-wrap:wrap}:root{--ck-insert-table-dropdown-padding:10px;--ck-insert-table-dropdown-box-height:11px;--ck-insert-table-dropdown-box-width:12px;--ck-insert-table-dropdown-box-margin:1px}.ck .ck-insert-table-dropdown__grid{padding:var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;width:calc(var(--ck-insert-table-dropdown-box-width)*10 + var(--ck-insert-table-dropdown-box-margin)*20 + var(--ck-insert-table-dropdown-padding)*2)}.ck .ck-insert-table-dropdown__label,.ck[dir=rtl] .ck-insert-table-dropdown__label{text-align:center}.ck .ck-insert-table-dropdown-grid-box{border:1px solid var(--ck-color-base-border);border-radius:1px;margin:var(--ck-insert-table-dropdown-box-margin);min-height:var(--ck-insert-table-dropdown-box-height);min-width:var(--ck-insert-table-dropdown-box-width);outline:none;transition:none}@media (prefers-reduced-motion:reduce){.ck .ck-insert-table-dropdown-grid-box{transition:none}}.ck .ck-insert-table-dropdown-grid-box:focus{box-shadow:none}.ck .ck-insert-table-dropdown-grid-box.ck-on{background:var(--ck-color-focus-outer-shadow);border-color:var(--ck-color-focus-border)}","",{version:3,sources:["webpack://./../ckeditor5-table/theme/inserttable.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/inserttable.css"],names:[],mappings:"AAKA,oCACC,YAAa,CACb,kBAAmB,CACnB,cACD,CCJA,MACC,uCAAwC,CACxC,0CAA2C,CAC3C,yCAA0C,CAC1C,yCACD,CAEA,oCAGC,yFAA0F,CAD1F,oJAED,CAEA,mFAEC,iBACD,CAEA,uCAIC,4CAA6C,CAC7C,iBAAkB,CAFlB,iDAAkD,CADlD,qDAAsD,CADtD,mDAAoD,CAKpD,YAAa,CACb,eAcD,CAZC,uCATD,uCAUE,eAWF,CAVC,CAEA,6CACC,eACD,CAEA,6CAEC,6CAA8C,CAD9C,yCAED",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-insert-table-dropdown__grid {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: wrap;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-insert-table-dropdown-padding: 10px;\n\t--ck-insert-table-dropdown-box-height: 11px;\n\t--ck-insert-table-dropdown-box-width: 12px;\n\t--ck-insert-table-dropdown-box-margin: 1px;\n}\n\n.ck .ck-insert-table-dropdown__grid {\n\t/* The width of a container should match 10 items in a row so there will be a 10x10 grid. */\n\twidth: calc(var(--ck-insert-table-dropdown-box-width) * 10 + var(--ck-insert-table-dropdown-box-margin) * 20 + var(--ck-insert-table-dropdown-padding) * 2);\n\tpadding: var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;\n}\n\n.ck .ck-insert-table-dropdown__label,\n.ck[dir=rtl] .ck-insert-table-dropdown__label {\n\ttext-align: center;\n}\n\n.ck .ck-insert-table-dropdown-grid-box {\n\tmin-width: var(--ck-insert-table-dropdown-box-width);\n\tmin-height: var(--ck-insert-table-dropdown-box-height);\n\tmargin: var(--ck-insert-table-dropdown-box-margin);\n\tborder: 1px solid var(--ck-color-base-border);\n\tborder-radius: 1px;\n\toutline: none;\n\ttransition: none;\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: none;\n\t}\n\n\t&:focus {\n\t\tbox-shadow: none;\n\t}\n\n\t&.ck-on {\n\t\tborder-color: var(--ck-color-focus-border);\n\t\tbackground: var(--ck-color-focus-outer-shadow);\n\t}\n}\n\n"],sourceRoot:""}]);const a=s},2329:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-content .table{display:table;margin:.9em auto}.ck-content .table table{border:1px double #b3b3b3;border-collapse:collapse;border-spacing:0;height:100%;width:100%}.ck-content .table table td,.ck-content .table table th{border:1px solid #bfbfbf;min-width:2em;padding:.4em}.ck-content .table table th{background:rgba(0,0,0,.05);font-weight:700}.ck-content[dir=rtl] .table th{text-align:right}.ck-content[dir=ltr] .table th{text-align:left}.ck-editor__editable .ck-table-bogus-paragraph{display:inline-block;width:100%}","",{version:3,sources:["webpack://./../ckeditor5-table/theme/table.css"],names:[],mappings:"AAKA,mBAKC,aAAc,CADd,gBAiCD,CA9BC,yBAYC,yBAAkC,CAVlC,wBAAyB,CACzB,gBAAiB,CAKjB,WAAY,CADZ,UAsBD,CAfC,wDAQC,wBAAiC,CANjC,aAAc,CACd,YAMD,CAEA,4BAEC,0BAA+B,CAD/B,eAED,CAMF,+BACC,gBACD,CAEA,+BACC,eACD,CAEA,+CAKC,oBAAqB,CAMrB,UACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content .table {\n\t/* Give the table widget some air and center it horizontally */\n\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\n\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\n\tmargin: 0.9em auto;\n\tdisplay: table;\n\n\t& table {\n\t\t/* The table cells should have slight borders */\n\t\tborder-collapse: collapse;\n\t\tborder-spacing: 0;\n\n\t\t/* Table width and height are set on the parent
. Make sure the table inside stretches\n\t\tto the full dimensions of the container (https://github.com/ckeditor/ckeditor5/issues/6186). */\n\t\twidth: 100%;\n\t\theight: 100%;\n\n\t\t/* The outer border of the table should be slightly darker than the inner lines.\n\t\tAlso see https://github.com/ckeditor/ckeditor5-table/issues/50. */\n\t\tborder: 1px double hsl(0, 0%, 70%);\n\n\t\t& td,\n\t\t& th {\n\t\t\tmin-width: 2em;\n\t\t\tpadding: .4em;\n\n\t\t\t/* The border is inherited from .ck-editor__nested-editable styles, so theoretically it\'s not necessary here.\n\t\t\tHowever, the border is a content style, so it should use .ck-content (so it works outside the editor).\n\t\t\tHence, the duplication. See https://github.com/ckeditor/ckeditor5/issues/6314 */\n\t\t\tborder: 1px solid hsl(0, 0%, 75%);\n\t\t}\n\n\t\t& th {\n\t\t\tfont-weight: bold;\n\t\t\tbackground: hsla(0, 0%, 0%, 5%);\n\t\t}\n\t}\n}\n\n/* Text alignment of the table header should match the editor settings and override the native browser styling,\nwhen content is available outside the editor. See https://github.com/ckeditor/ckeditor5/issues/6638 */\n.ck-content[dir="rtl"] .table th {\n\ttext-align: right;\n}\n\n.ck-content[dir="ltr"] .table th {\n\ttext-align: left;\n}\n\n.ck-editor__editable .ck-table-bogus-paragraph {\n\t/*\n\t * Use display:inline-block to force Chrome/Safari to limit text mutations to this element.\n\t * See https://github.com/ckeditor/ckeditor5/issues/6062.\n\t */\n\tdisplay: inline-block;\n\n\t/*\n\t * Inline HTML elements nested in the span should always be dimensioned in relation to the whole cell width.\n\t * See https://github.com/ckeditor/ckeditor5/issues/9117.\n\t */\n\twidth: 100%;\n}\n'],sourceRoot:""}]);const a=s},4143:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-selector-caption-background:#f7f7f7;--ck-color-selector-caption-text:#333;--ck-color-selector-caption-highlighted-background:#fd0}.ck-content .table>figcaption{background-color:var(--ck-color-selector-caption-background);caption-side:top;color:var(--ck-color-selector-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;text-align:center;word-break:break-word}@media (forced-colors:active){.ck-content .table>figcaption{background-color:unset;color:unset}}@media (forced-colors:none){.ck.ck-editor__editable .table>figcaption.table__caption_highlighted{animation:ck-table-caption-highlight .6s ease-out}}.ck.ck-editor__editable .table>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}@keyframes ck-table-caption-highlight{0%{background-color:var(--ck-color-selector-caption-highlighted-background)}to{background-color:var(--ck-color-selector-caption-background)}}","",{version:3,sources:["webpack://./../ckeditor5-table/theme/tablecaption.css","webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css"],names:[],mappings:"AAOA,MACC,8CAAuD,CACvD,qCAAiD,CACjD,uDACD,CAGA,8BAMC,4DAA6D,CAJ7D,gBAAiB,CAGjB,2CAA4C,CAJ5C,qBAAsB,CAOtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,iBAAkB,CADlB,qBAaD,CCxBC,8BACC,8BDoBA,sBAAuB,CACvB,WCnBA,CACD,CAIA,4BDqBC,qEACC,iDACD,CCnBD,CDsBA,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAGD,sCACC,GACC,wEACD,CAEA,GACC,4DACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css";\n\n:root {\n\t--ck-color-selector-caption-background: hsl(0, 0%, 97%);\n\t--ck-color-selector-caption-text: hsl(0, 0%, 20%);\n\t--ck-color-selector-caption-highlighted-background: hsl(52deg 100% 50%);\n}\n\n/* Content styles */\n.ck-content .table > figcaption {\n\tdisplay: table-caption;\n\tcaption-side: top;\n\tword-break: break-word;\n\ttext-align: center;\n\tcolor: var(--ck-color-selector-caption-text);\n\tbackground-color: var(--ck-color-selector-caption-background);\n\tpadding: .6em;\n\tfont-size: .75em;\n\toutline-offset: -1px;\n\n\t/* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */\n\t@mixin ck-media-forced-colors {\n\t\tbackground-color: unset;\n\t\tcolor: unset;\n\t}\n}\n\n/* Editing styles */\n.ck.ck-editor__editable .table > figcaption {\n\t@mixin ck-media-default-colors {\n\t\t&.table__caption_highlighted {\n\t\t\tanimation: ck-table-caption-highlight .6s ease-out;\n\t\t}\n\t}\n\n\t&.ck-placeholder::before {\n\t\tpadding-left: inherit;\n\t\tpadding-right: inherit;\n\n\t\t/*\n\t\t * Make sure the table caption placeholder doesn\'t overflow the placeholder area.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\n\t\t */\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n\n@keyframes ck-table-caption-highlight {\n\t0% {\n\t\tbackground-color: var(--ck-color-selector-caption-highlighted-background);\n\t}\n\n\t100% {\n\t\tbackground-color: var(--ck-color-selector-caption-background);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-forced-colors {\n\t@media (forced-colors: active) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n\n@define-mixin ck-media-default-colors {\n\t@media (forced-colors: none) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},8986:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row{flex-wrap:wrap}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:first-of-type{flex-grow:0.57}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:last-of-type{flex-grow:0.43}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar .ck-button{flex-grow:1}.ck.ck-table-cell-properties-form{width:320px}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__padding-row{align-self:flex-end;padding:0;width:25%}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar{background:none;margin-top:var(--ck-spacing-standard)}","",{version:3,sources:["webpack://./../ckeditor5-table/theme/tablecellproperties.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tablecellproperties.css"],names:[],mappings:"AAOE,6FACC,cAiBD,CAdE,0HAEC,cACD,CAEA,yHAEC,cACD,CAEA,uHACC,WACD,CClBJ,kCACC,WAkBD,CAfE,2FACC,mBAAoB,CACpB,SAAU,CACV,SACD,CAGC,4GACC,eAAgB,CAGhB,qCACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-cell-properties-form {\n\t& .ck-form__row {\n\t\t&.ck-table-cell-properties-form__alignment-row {\n\t\t\tflex-wrap: wrap;\n\n\t\t\t& .ck.ck-toolbar {\n\t\t\t\t&:first-of-type {\n\t\t\t\t\t/* 4 buttons out of 7 (h-alignment + v-alignment) = 0.57 */\n\t\t\t\t\tflex-grow: 0.57;\n\t\t\t\t}\n\n\t\t\t\t&:last-of-type {\n\t\t\t\t\t/* 3 buttons out of 7 (h-alignment + v-alignment) = 0.43 */\n\t\t\t\t\tflex-grow: 0.43;\n\t\t\t\t}\n\n\t\t\t\t& .ck-button {\n\t\t\t\t\tflex-grow: 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-cell-properties-form {\n\twidth: 320px;\n\n\t& .ck-form__row {\n\t\t&.ck-table-cell-properties-form__padding-row {\n\t\t\talign-self: flex-end;\n\t\t\tpadding: 0;\n\t\t\twidth: 25%;\n\t\t}\n\n\t\t&.ck-table-cell-properties-form__alignment-row {\n\t\t\t& .ck.ck-toolbar {\n\t\t\t\tbackground: none;\n\n\t\t\t\t/* Compensate for missing input label that would push the margin (toolbar has no inputs). */\n\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},8795:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-selector-column-resizer-hover:var(--ck-color-base-active);--ck-table-column-resizer-width:7px;--ck-table-column-resizer-position-offset:calc(var(--ck-table-column-resizer-width)*-0.5 - 0.5px)}.ck-content .table .ck-table-resized{table-layout:fixed}.ck-content .table table{overflow:hidden}.ck-content .table td,.ck-content .table th{overflow-wrap:break-word;position:relative}.ck.ck-editor__editable .table .ck-table-column-resizer{bottom:0;cursor:col-resize;position:absolute;right:var(--ck-table-column-resizer-position-offset);top:0;user-select:none;width:var(--ck-table-column-resizer-width);z-index:var(--ck-z-default)}.ck.ck-editor__editable .table[draggable] .ck-table-column-resizer,.ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer{display:none}.ck.ck-editor__editable .table .ck-table-column-resizer:hover,.ck.ck-editor__editable .table .ck-table-column-resizer__active{background-color:var(--ck-color-selector-column-resizer-hover);bottom:-999999px;opacity:.25;top:-999999px}.ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer{left:var(--ck-table-column-resizer-position-offset);right:unset}","",{version:3,sources:["webpack://./../ckeditor5-table/theme/tablecolumnresize.css"],names:[],mappings:"AAKA,MACC,oEAAqE,CACrE,mCAAoC,CAIpC,iGACD,CAEA,qCACC,kBACD,CAEA,yBACC,eACD,CAEA,4CAIC,wBAAyB,CACzB,iBACD,CAEA,wDAGC,QAAS,CAGT,iBAAkB,CALlB,iBAAkB,CAGlB,oDAAqD,CAFrD,KAAM,CAKN,gBAAiB,CAFjB,0CAA2C,CAG3C,2BACD,CAQA,qJACC,YACD,CAEA,8HAEC,8DAA+D,CAO/D,gBAAiB,CANjB,WAAa,CAKb,aAED,CAEA,iEACC,mDAAoD,CACpD,WACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-selector-column-resizer-hover: var(--ck-color-base-active);\n\t--ck-table-column-resizer-width: 7px;\n\n\t/* The offset used for absolute positioning of the resizer element, so that it is placed exactly above the cell border.\n\t The value is: minus half the width of the resizer decreased additionaly by the half the width of the border (0.5px). */\n\t--ck-table-column-resizer-position-offset: calc(var(--ck-table-column-resizer-width) * -0.5 - 0.5px);\n}\n\n.ck-content .table .ck-table-resized {\n\ttable-layout: fixed;\n}\n\n.ck-content .table table {\n\toverflow: hidden;\n}\n\n.ck-content .table td,\n.ck-content .table th {\n\t/* To prevent text overflowing beyond its cell when columns are resized by resize handler\n\t(https://github.com/ckeditor/ckeditor5/pull/14379#issuecomment-1589460978). */\n\toverflow-wrap: break-word;\n\tposition: relative;\n}\n\n.ck.ck-editor__editable .table .ck-table-column-resizer {\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tright: var(--ck-table-column-resizer-position-offset);\n\twidth: var(--ck-table-column-resizer-width);\n\tcursor: col-resize;\n\tuser-select: none;\n\tz-index: var(--ck-z-default);\n}\n\n.ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer {\n\tdisplay: none;\n}\n\n/* The resizer elements, which are extended to an extremely high height, break the drag & drop feature in Chrome. To make it work again,\n all resizers must be hidden while the table is dragged. */\n.ck.ck-editor__editable .table[draggable] .ck-table-column-resizer {\n\tdisplay: none;\n}\n\n.ck.ck-editor__editable .table .ck-table-column-resizer:hover,\n.ck.ck-editor__editable .table .ck-table-column-resizer__active {\n\tbackground-color: var(--ck-color-selector-column-resizer-hover);\n\topacity: 0.25;\n\t/* The resizer element resides in each cell so to occupy the entire height of the table, which is unknown from a CSS point of view,\n\t it is extended to an extremely high height. Even for screens with a very high pixel density, the resizer will fulfill its role as\n\t it should, i.e. for a screen of 476 ppi the total height of the resizer will take over 350 sheets of A4 format, which is totally\n\t unrealistic height for a single table. */\n\ttop: -999999px;\n\tbottom: -999999px;\n}\n\n.ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer {\n\tleft: var(--ck-table-column-resizer-position-offset);\n\tright: unset;\n}\n"],sourceRoot:""}]);const a=s},8137:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-selector-focused-cell-background:rgba(158,201,250,.3)}.ck-widget.table td.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table td.ck-editor__nested-editable:focus,.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table th.ck-editor__nested-editable:focus{background:var(--ck-color-selector-focused-cell-background);border-style:none;outline:1px solid var(--ck-color-focus-border);outline-offset:-1px}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableediting.css"],names:[],mappings:"AAKA,MACC,gEACD,CAKE,8QAGC,2DAA4D,CAK5D,iBAAkB,CAClB,8CAA+C,CAC/C,mBACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-selector-focused-cell-background: hsla(212, 90%, 80%, .3);\n}\n\n.ck-widget.table {\n\t& td,\n\t& th {\n\t\t&.ck-editor__nested-editable.ck-editor__nested-editable_focused,\n\t\t&.ck-editor__nested-editable:focus {\n\t\t\t/* A very slight background to highlight the focused cell */\n\t\t\tbackground: var(--ck-color-selector-focused-cell-background);\n\n\t\t\t/* Fixes the problem where surrounding cells cover the focused cell's border.\n\t\t\tIt does not fix the problem in all places but the UX is improved.\n\t\t\tSee https://github.com/ckeditor/ckeditor5-table/issues/29. */\n\t\t\tborder-style: none;\n\t\t\toutline: 1px solid var(--ck-color-focus-border);\n\t\t\toutline-offset: -1px; /* progressive enhancement - no IE support */\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},1623:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,'.ck.ck-table-form .ck-form__row.ck-table-form__background-row,.ck.ck-table-form .ck-form__row.ck-table-form__border-row{flex-wrap:wrap}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row{align-items:center;flex-wrap:wrap}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view{align-items:center;display:flex;flex-direction:column-reverse}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view .ck.ck-dropdown,.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator{flex-grow:0}.ck.ck-table-form .ck.ck-labeled-field-view{position:relative}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{bottom:calc(var(--ck-table-properties-error-arrow-size)*-1);left:50%;position:absolute;transform:translate(-50%,100%);z-index:1}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after{content:"";left:50%;position:absolute;top:calc(var(--ck-table-properties-error-arrow-size)*-1);transform:translateX(-50%)}:root{--ck-table-properties-error-arrow-size:6px;--ck-table-properties-min-error-width:150px}.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-labeled-field-view>.ck-label{font-size:var(--ck-font-size-tiny);text-align:center}.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-style,.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-width{max-width:80px;min-width:80px;width:80px}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row{padding:0}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__height,.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__width{margin:0}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator{align-self:flex-end;display:inline-block;height:var(--ck-ui-component-min-height);line-height:var(--ck-ui-component-min-height);margin:0 var(--ck-spacing-small)}.ck.ck-table-form .ck.ck-labeled-field-view{padding-top:var(--ck-spacing-standard)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{border-radius:0}.ck-rounded-corners .ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status,.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{background:var(--ck-color-base-error);color:var(--ck-color-base-background);min-width:var(--ck-table-properties-min-error-width);padding:var(--ck-spacing-small) var(--ck-spacing-medium);text-align:center}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after{border-color:transparent transparent var(--ck-color-base-error) transparent;border-style:solid;border-width:0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{animation:ck-table-form-labeled-view-status-appear .15s ease both}@media (prefers-reduced-motion:reduce){.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{animation:none}}.ck.ck-table-form .ck.ck-labeled-field-view .ck-input.ck-error:not(:focus)+.ck.ck-labeled-field-view__status{display:none}@keyframes ck-table-form-labeled-view-status-appear{0%{opacity:0}to{opacity:1}}',"",{version:3,sources:["webpack://./../ckeditor5-table/theme/tableform.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableform.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAWE,wHACC,cACD,CAEA,8DAEC,kBAAmB,CADnB,cAgBD,CAbC,qFAGC,kBAAmB,CAFnB,YAAa,CACb,6BAMD,CAEA,sMACC,WACD,CAIF,4CAEC,iBAoBD,CAlBC,8EAGC,2DAAgE,CADhE,QAAS,CADT,iBAAkB,CAGlB,8BAA+B,CAG/B,SAUD,CAPC,oFACC,UAAW,CAGX,QAAS,CAFT,iBAAkB,CAClB,wDAA6D,CAE7D,0BACD,CChDH,MACC,0CAA2C,CAC3C,2CACD,CAMI,2FACC,kCAAmC,CACnC,iBACD,CAGD,8KAIC,cAAe,CADf,cAAe,CADf,UAGD,CAGD,8DACC,SAcD,CAZC,yMAEC,QACD,CAEA,iGACC,mBAAoB,CACpB,oBAAqB,CACrB,wCAAyC,CACzC,6CAA8C,CAC9C,gCACD,CAIF,4CACC,sCA6BD,CA3BC,8ECxCD,eD6DC,CArBA,mMCpCA,qCDyDA,CArBA,8EAGC,qCAAsC,CACtC,qCAAsC,CAEtC,oDAAqD,CADrD,wDAAyD,CAEzD,iBAcD,CAXC,oFACC,2EAA4E,CAE5E,kBAAmB,CADnB,kJAED,CAdD,8EAgBC,iEAKD,CAHC,uCAlBD,8EAmBE,cAEF,CADC,CAID,6GACC,YACD,CAIF,oDACC,GACC,SACD,CAEA,GACC,SACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-form {\n\t& .ck-form__row {\n\t\t&.ck-table-form__border-row {\n\t\t\tflex-wrap: wrap;\n\t\t}\n\n\t\t&.ck-table-form__background-row {\n\t\t\tflex-wrap: wrap;\n\t\t}\n\n\t\t&.ck-table-form__dimensions-row {\n\t\t\tflex-wrap: wrap;\n\t\t\talign-items: center;\n\n\t\t\t& .ck-labeled-field-view {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column-reverse;\n\t\t\t\talign-items: center;\n\n\t\t\t\t& .ck.ck-dropdown {\n\t\t\t\t\tflex-grow: 0;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t& .ck-table-form__dimension-operator {\n\t\t\t\tflex-grow: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-labeled-field-view {\n\t\t/* Allow absolute positioning of the status (error) balloons. */\n\t\tposition: relative;\n\n\t\t& .ck.ck-labeled-field-view__status {\n\t\t\tposition: absolute;\n\t\t\tleft: 50%;\n\t\t\tbottom: calc( -1 * var(--ck-table-properties-error-arrow-size) );\n\t\t\ttransform: translate(-50%,100%);\n\n\t\t\t/* Make sure the balloon status stays on top of other form elements. */\n\t\t\tz-index: 1;\n\n\t\t\t/* The arrow pointing towards the field. */\n\t\t\t&::after {\n\t\t\t\tcontent: "";\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: calc( -1 * var(--ck-table-properties-error-arrow-size) );\n\t\t\t\tleft: 50%;\n\t\t\t\ttransform: translateX( -50% );\n\t\t\t}\n\t\t}\n\t}\n}\n','/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../mixins/_rounded.css";\n\n:root {\n\t--ck-table-properties-error-arrow-size: 6px;\n\t--ck-table-properties-min-error-width: 150px;\n}\n\n.ck.ck-table-form {\n\t& .ck-form__row {\n\t\t&.ck-table-form__border-row {\n\t\t\t& .ck-labeled-field-view {\n\t\t\t\t& > .ck-label {\n\t\t\t\t\tfont-size: var(--ck-font-size-tiny);\n\t\t\t\t\ttext-align: center;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t& .ck-table-form__border-style,\n\t\t\t& .ck-table-form__border-width {\n\t\t\t\twidth: 80px;\n\t\t\t\tmin-width: 80px;\n\t\t\t\tmax-width: 80px;\n\t\t\t}\n\t\t}\n\n\t\t&.ck-table-form__dimensions-row {\n\t\t\tpadding: 0;\n\n\t\t\t& .ck-table-form__dimensions-row__width,\n\t\t\t& .ck-table-form__dimensions-row__height {\n\t\t\t\tmargin: 0\n\t\t\t}\n\n\t\t\t& .ck-table-form__dimension-operator {\n\t\t\t\talign-self: flex-end;\n\t\t\t\tdisplay: inline-block;\n\t\t\t\theight: var(--ck-ui-component-min-height);\n\t\t\t\tline-height: var(--ck-ui-component-min-height);\n\t\t\t\tmargin: 0 var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\t}\n\n\t& .ck.ck-labeled-field-view {\n\t\tpadding-top: var(--ck-spacing-standard);\n\n\t\t& .ck.ck-labeled-field-view__status {\n\t\t\t@mixin ck-rounded-corners;\n\n\t\t\tbackground: var(--ck-color-base-error);\n\t\t\tcolor: var(--ck-color-base-background);\n\t\t\tpadding: var(--ck-spacing-small) var(--ck-spacing-medium);\n\t\t\tmin-width: var(--ck-table-properties-min-error-width);\n\t\t\ttext-align: center;\n\n\t\t\t/* The arrow pointing towards the field. */\n\t\t\t&::after {\n\t\t\t\tborder-color: transparent transparent var(--ck-color-base-error) transparent;\n\t\t\t\tborder-width: 0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size);\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\n\t\t\tanimation: ck-table-form-labeled-view-status-appear .15s ease both;\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\tanimation: none;\n\t\t\t}\n\t\t}\n\n\t\t/* Hide the error balloon when the field is blurred. Makes the experience much more clear. */\n\t\t& .ck-input.ck-error:not(:focus) + .ck.ck-labeled-field-view__status {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n@keyframes ck-table-form-labeled-view-status-appear {\n\t0% {\n\t\topacity: 0;\n\t}\n\n\t100% {\n\t\topacity: 1;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},5562:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row{align-content:baseline;flex-basis:0;flex-wrap:wrap}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items{flex-wrap:nowrap}.ck.ck-table-properties-form{width:320px}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row{align-self:flex-end;padding:0}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar{background:none;margin-top:var(--ck-spacing-standard)}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items>*{width:40px}","",{version:3,sources:["webpack://./../ckeditor5-table/theme/tableproperties.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableproperties.css"],names:[],mappings:"AAOE,mFAGC,sBAAuB,CADvB,YAAa,CADb,cAOD,CAHC,qHACC,gBACD,CCTH,6BACC,WAmBD,CAhBE,mFACC,mBAAoB,CACpB,SAYD,CAVC,kGACC,eAAgB,CAGhB,qCAKD,CAHC,uHACC,UACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-properties-form {\n\t& .ck-form__row {\n\t\t&.ck-table-properties-form__alignment-row {\n\t\t\tflex-wrap: wrap;\n\t\t\tflex-basis: 0;\n\t\t\talign-content: baseline;\n\n\t\t\t& .ck.ck-toolbar .ck-toolbar__items {\n\t\t\t\tflex-wrap: nowrap;\n\t\t\t}\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-table-properties-form {\n\twidth: 320px;\n\n\t& .ck-form__row {\n\t\t&.ck-table-properties-form__alignment-row {\n\t\t\talign-self: flex-end;\n\t\t\tpadding: 0;\n\n\t\t\t& .ck.ck-toolbar {\n\t\t\t\tbackground: none;\n\n\t\t\t\t/* Compensate for missing input label that would push the margin (toolbar has no inputs). */\n\t\t\t\tmargin-top: var(--ck-spacing-standard);\n\n\t\t\t\t& .ck-toolbar__items > * {\n\t\t\t\t\twidth: 40px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},8423:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,':root{--ck-table-selected-cell-background:rgba(158,207,250,.3)}.ck.ck-editor__editable .table table td.ck-editor__editable_selected,.ck.ck-editor__editable .table table th.ck-editor__editable_selected{box-shadow:unset;caret-color:transparent;outline:unset;position:relative}.ck.ck-editor__editable .table table td.ck-editor__editable_selected:after,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:after{background-color:var(--ck-table-selected-cell-background);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table td.ck-editor__editable_selected:focus,.ck.ck-editor__editable .table table th.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:focus{background-color:transparent}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget{outline:unset}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle{display:none}',"",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableselection.css"],names:[],mappings:"AAKA,MACC,wDACD,CAGC,0IAKC,gBAAiB,CAFjB,uBAAwB,CACxB,aAAc,CAFd,iBAiCD,CA3BC,sJAGC,yDAA0D,CAK1D,QAAS,CAPT,UAAW,CAKX,MAAO,CAJP,mBAAoB,CAEpB,iBAAkB,CAGlB,OAAQ,CAFR,KAID,CAEA,wTAEC,4BACD,CAMA,gKACC,aAKD,CAHC,0NACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-table-selected-cell-background: hsla(208, 90%, 80%, .3);\n}\n\n.ck.ck-editor__editable .table table {\n\t& td.ck-editor__editable_selected,\n\t& th.ck-editor__editable_selected {\n\t\tposition: relative;\n\t\tcaret-color: transparent;\n\t\toutline: unset;\n\t\tbox-shadow: unset;\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/6446 */\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tpointer-events: none;\n\t\t\tbackground-color: var(--ck-table-selected-cell-background);\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t\tleft: 0;\n\t\t\tright: 0;\n\t\t\tbottom: 0;\n\t\t}\n\n\t\t& ::selection,\n\t\t&:focus {\n\t\t\tbackground-color: transparent;\n\t\t}\n\n\t\t/*\n\t\t * To reduce the amount of noise, all widgets in the table selection have no outline and no selection handle.\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/9491.\n\t\t */\n\t\t& .ck-widget {\n\t\t\toutline: unset;\n\n\t\t\t& > .ck-widget__selection-handle {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},1801:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-aria-live-announcer{left:-10000px;position:absolute;top:-10000px}.ck.ck-aria-live-region-list{list-style-type:none}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/arialiveannouncer/arialiveannouncer.css"],names:[],mappings:"AAKA,2BAEC,aAAc,CADd,iBAAkB,CAElB,YACD,CAEA,6BACC,oBACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-aria-live-announcer {\n\tposition: absolute;\n\tleft: -10000px;\n\ttop: -10000px;\n}\n\n.ck.ck-aria-live-region-list {\n\tlist-style-type: none;\n}\n"],sourceRoot:""}]);const a=s},5727:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-autocomplete{position:relative}.ck.ck-autocomplete>.ck-search__results{position:absolute;z-index:var(--ck-z-panel)}.ck.ck-autocomplete>.ck-search__results.ck-search__results_n{bottom:100%}.ck.ck-autocomplete>.ck-search__results.ck-search__results_s{bottom:auto;top:100%}.ck.ck-autocomplete>.ck-search__results{border-radius:0}.ck-rounded-corners .ck.ck-autocomplete>.ck-search__results,.ck.ck-autocomplete>.ck-search__results.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-autocomplete>.ck-search__results{background:var(--ck-color-base-background);border:1px solid var(--ck-color-dropdown-panel-border);box-shadow:var(--ck-drop-shadow),0 0;max-height:200px;min-width:auto;overflow-y:auto}.ck.ck-autocomplete>.ck-search__results.ck-search__results_n{border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:-1px}.ck.ck-autocomplete>.ck-search__results.ck-search__results_s{border-top-left-radius:0;border-top-right-radius:0;margin-top:-1px}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/autocomplete/autocomplete.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/autocomplete/autocomplete.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,oBACC,iBAeD,CAbC,wCACC,iBAAkB,CAClB,yBAUD,CARC,6DACC,WACD,CAEA,6DAEC,WAAY,CADZ,QAED,CCVD,wCCEA,eDuBA,CAzBA,uHCMC,qCDmBD,CAzBA,wCAMC,0CAA2C,CAC3C,sDAAuD,CEPxD,oCAA8B,CFI7B,gBAAiB,CAIjB,cAAe,CAHf,eAoBD,CAfC,6DACC,2BAA4B,CAC5B,4BAA6B,CAG7B,kBACD,CAEA,6DACC,wBAAyB,CACzB,yBAA0B,CAG1B,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-autocomplete {\n\tposition: relative;\n\n\t& > .ck-search__results {\n\t\tposition: absolute;\n\t\tz-index: var(--ck-z-panel);\n\n\t\t&.ck-search__results_n {\n\t\t\tbottom: 100%;\n\t\t}\n\n\t\t&.ck-search__results_s {\n\t\t\ttop: 100%;\n\t\t\tbottom: auto;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css";\n@import "@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css";\n\n.ck.ck-autocomplete {\n\t& > .ck-search__results {\n\t\t@mixin ck-rounded-corners;\n\t\t@mixin ck-drop-shadow;\n\n\t\tmax-height: 200px;\n\t\toverflow-y: auto;\n\t\tbackground: var(--ck-color-base-background);\n\t\tborder: 1px solid var(--ck-color-dropdown-panel-border);\n\t\tmin-width: auto;\n\n\t\t&.ck-search__results_n {\n\t\t\tborder-bottom-left-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\n\t\t\t/* Prevent duplicated borders between the input and the results pane. */\n\t\t\tmargin-bottom: -1px;\n\t\t}\n\n\t\t&.ck-search__results_s {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-top-right-radius: 0;\n\n\t\t\t/* Prevent duplicated borders between the input and the results pane. */\n\t\t\tmargin-top: -1px;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},9715:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-button,a.ck.ck-button{align-items:center;display:inline-flex;position:relative;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}[dir=ltr] .ck.ck-button,[dir=ltr] a.ck.ck-button{justify-content:left}[dir=rtl] .ck.ck-button,[dir=rtl] a.ck.ck-button{justify-content:right}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{display:none}.ck.ck-button.ck-button_with-text .ck-button__label,a.ck.ck-button.ck-button_with-text .ck-button__label{display:inline-block}.ck.ck-button:not(.ck-button_with-text),a.ck.ck-button:not(.ck-button_with-text){justify-content:center}.ck.ck-button,a.ck.ck-button{background:var(--ck-color-button-default-background)}.ck.ck-button:not(.ck-disabled):hover,a.ck.ck-button:not(.ck-disabled):hover{background:var(--ck-color-button-default-hover-background)}.ck.ck-button:not(.ck-disabled):active,a.ck.ck-button:not(.ck-disabled):active{background:var(--ck-color-button-default-active-background)}.ck.ck-button.ck-disabled,a.ck.ck-button.ck-disabled{background:var(--ck-color-button-default-disabled-background)}.ck.ck-button,a.ck.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-button,.ck-rounded-corners a.ck.ck-button,.ck.ck-button.ck-rounded-corners,a.ck.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-button,a.ck.ck-button{-webkit-appearance:none;border:1px solid transparent;cursor:default;font-size:inherit;line-height:1;min-height:var(--ck-ui-component-min-height);min-width:var(--ck-ui-component-min-height);padding:var(--ck-spacing-tiny);text-align:center;transition:box-shadow .2s ease-in-out,border .2s ease-in-out;vertical-align:middle;white-space:nowrap}@media (prefers-reduced-motion:reduce){.ck.ck-button,a.ck.ck-button{transition:none}}.ck.ck-button:active,.ck.ck-button:focus,a.ck.ck-button:active,a.ck.ck-button:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-button .ck-button__icon use,.ck.ck-button .ck-button__icon use *,a.ck.ck-button .ck-button__icon use,a.ck.ck-button .ck-button__icon use *{color:inherit}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{color:inherit;cursor:inherit;font-size:inherit;font-weight:inherit;vertical-align:middle}[dir=ltr] .ck.ck-button .ck-button__label,[dir=ltr] a.ck.ck-button .ck-button__label{text-align:left}[dir=rtl] .ck.ck-button .ck-button__label,[dir=rtl] a.ck.ck-button .ck-button__label{text-align:right}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{color:inherit}[dir=ltr] .ck.ck-button .ck-button__keystroke,[dir=ltr] a.ck.ck-button .ck-button__keystroke{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-button .ck-button__keystroke,[dir=rtl] a.ck.ck-button .ck-button__keystroke{margin-right:var(--ck-spacing-large)}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{opacity:.5}.ck.ck-button.ck-disabled:active,.ck.ck-button.ck-disabled:focus,a.ck.ck-button.ck-disabled:active,a.ck.ck-button.ck-disabled:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-button.ck-disabled .ck-button__icon,.ck.ck-button.ck-disabled .ck-button__label,a.ck.ck-button.ck-disabled .ck-button__icon,a.ck.ck-button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-disabled .ck-button__keystroke,a.ck.ck-button.ck-disabled .ck-button__keystroke{opacity:.3}.ck.ck-button.ck-button_with-text,a.ck.ck-button.ck-button_with-text{padding:var(--ck-spacing-tiny) var(--ck-spacing-standard)}[dir=ltr] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=ltr] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:calc(var(--ck-spacing-small)*-1);margin-right:var(--ck-spacing-small)}[dir=rtl] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=rtl] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:var(--ck-spacing-small);margin-right:calc(var(--ck-spacing-small)*-1)}.ck.ck-button.ck-button_with-keystroke .ck-button__label,a.ck.ck-button.ck-button_with-keystroke .ck-button__label{flex-grow:1}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{background:var(--ck-color-button-on-background)}.ck.ck-button.ck-on:not(.ck-disabled):hover,a.ck.ck-button.ck-on:not(.ck-disabled):hover{background:var(--ck-color-button-on-hover-background)}.ck.ck-button.ck-on:not(.ck-disabled):active,a.ck.ck-button.ck-on:not(.ck-disabled):active{background:var(--ck-color-button-on-active-background)}.ck.ck-button.ck-on.ck-disabled,a.ck.ck-button.ck-on.ck-disabled{background:var(--ck-color-button-on-disabled-background)}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{color:var(--ck-color-button-on-color)}.ck.ck-button.ck-button-save,a.ck.ck-button.ck-button-save{color:var(--ck-color-button-save)}.ck.ck-button.ck-button-cancel,a.ck.ck-button.ck-button-cancel{color:var(--ck-color-button-cancel)}.ck.ck-button-action,a.ck.ck-button-action{background:var(--ck-color-button-action-background)}.ck.ck-button-action:not(.ck-disabled):hover,a.ck.ck-button-action:not(.ck-disabled):hover{background:var(--ck-color-button-action-hover-background)}.ck.ck-button-action:not(.ck-disabled):active,a.ck.ck-button-action:not(.ck-disabled):active{background:var(--ck-color-button-action-active-background)}.ck.ck-button-action.ck-disabled,a.ck.ck-button-action.ck-disabled{background:var(--ck-color-button-action-disabled-background)}.ck.ck-button-action,a.ck.ck-button-action{color:var(--ck-color-button-action-text)}.ck.ck-button-bold,a.ck.ck-button-bold{font-weight:700}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/button/button.css","webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/button.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/mixins/_button.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css"],names:[],mappings:"AAQA,6BAMC,kBAAmB,CADnB,mBAAoB,CADpB,iBAAkB,CCHlB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD0BD,CA9BA,iDASE,oBAqBF,CA9BA,iDAaE,qBAiBF,CAdC,iEACC,YACD,CAGC,yGACC,oBACD,CAID,iFACC,sBACD,CEzBD,6BCAC,oDD+ID,CC5IE,6EACC,0DACD,CAEA,+EACC,2DACD,CAID,qDACC,6DACD,CDfD,6BEDC,eFgJD,CA/IA,wIEGE,qCF4IF,CA/IA,6BA6BC,uBAAwB,CANxB,4BAA6B,CAjB7B,cAAe,CAcf,iBAAkB,CAHlB,aAAc,CAJd,4CAA6C,CAD7C,2CAA4C,CAJ5C,8BAA+B,CAC/B,iBAAkB,CAiBlB,4DAA8D,CAnB9D,qBAAsB,CAFtB,kBA0ID,CAhHC,uCA/BD,6BAgCE,eA+GF,CA9GC,CAEA,oFGpCA,2BAA2B,CCF3B,2CAA8B,CDC9B,YHyCA,CAIC,kJAEC,aACD,CAGD,iEAIC,aAAc,CACd,cAAe,CAHf,iBAAkB,CAClB,mBAAoB,CAMpB,qBASD,CAlBA,qFAYE,eAMF,CAlBA,qFAgBE,gBAEF,CAEA,yEACC,aAWD,CAZA,6FAIE,mCAQF,CAZA,6FAQE,oCAIF,CAZA,yEAWC,UACD,CAIC,oIIxFD,oDJ4FC,CAOA,gLKnGD,kCLqGC,CAEA,iGACC,UACD,CAGD,qEACC,yDAcD,CAXC,2HAEE,4CAA+C,CAC/C,oCAOF,CAVA,2HAQE,mCAAoC,CADpC,6CAGF,CAKA,mHACC,WACD,CAID,yCClIA,+CDsIA,CCnIC,yFACC,qDACD,CAEA,2FACC,sDACD,CAID,iEACC,wDACD,CDmHA,yCAGC,qCACD,CAEA,2DACC,iCACD,CAEA,+DACC,mCACD,CAID,2CClJC,mDDuJD,CCpJE,2FACC,yDACD,CAEA,6FACC,0DACD,CAID,mEACC,4DACD,CDmID,2CAIC,wCACD,CAEA,uCAEC,eACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n@import "../../mixins/_dir.css";\n\n.ck.ck-button,\na.ck.ck-button {\n\t@mixin ck-unselectable;\n\n\tposition: relative;\n\tdisplay: inline-flex;\n\talign-items: center;\n\n\t@mixin ck-dir ltr {\n\t\tjustify-content: left;\n\t}\n\n\t@mixin ck-dir rtl {\n\t\tjustify-content: right;\n\t}\n\n\t& .ck-button__label {\n\t\tdisplay: none;\n\t}\n\n\t&.ck-button_with-text {\n\t\t& .ck-button__label {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n\n\t/* Center the icon horizontally in a button without text. */\n\t&:not(.ck-button_with-text) {\n\t\tjustify-content: center;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_focus.css";\n@import "../../../mixins/_shadow.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_rounded.css";\n@import "../../mixins/_button.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-button,\na.ck.ck-button {\n\t@mixin ck-button-colors --ck-color-button-default;\n\t@mixin ck-rounded-corners;\n\n\twhite-space: nowrap;\n\tcursor: default;\n\tvertical-align: middle;\n\tpadding: var(--ck-spacing-tiny);\n\ttext-align: center;\n\n\t/* A very important piece of styling. Go to variable declaration to learn more. */\n\tmin-width: var(--ck-ui-component-min-height);\n\tmin-height: var(--ck-ui-component-min-height);\n\n\t/* Normalize the height of the line. Removing this will break consistent height\n\tamong text and text-less buttons (with icons). */\n\tline-height: 1;\n\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t/* Avoid flickering when the foucs border shows up. */\n\tborder: 1px solid transparent;\n\n\t/* Apply some smooth transition to the box-shadow and border. */\n\ttransition: box-shadow .2s ease-in-out, border .2s ease-in-out;\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/189 */\n\t-webkit-appearance: none;\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: none;\n\t}\n\n\t&:active,\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t}\n\n\t/* Allow icon coloring using the text "color" property. */\n\t& .ck-button__icon {\n\t\t& use,\n\t\t& use * {\n\t\t\tcolor: inherit;\n\t\t}\n\t}\n\n\t& .ck-button__label {\n\t\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\t\tfont-size: inherit;\n\t\tfont-weight: inherit;\n\t\tcolor: inherit;\n\t\tcursor: inherit;\n\n\t\t/* Must be consistent with .ck-icon\'s vertical align. Otherwise, buttons with and\n\t\twithout labels (but with icons) have different sizes in Chrome */\n\t\tvertical-align: middle;\n\n\t\t@mixin ck-dir ltr {\n\t\t\ttext-align: left;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttext-align: right;\n\t\t}\n\t}\n\n\t& .ck-button__keystroke {\n\t\tcolor: inherit;\n\n\t\t@mixin ck-dir ltr {\n\t\t\tmargin-left: var(--ck-spacing-large);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tmargin-right: var(--ck-spacing-large);\n\t\t}\n\n\t\topacity: .5;\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\n\t&.ck-disabled {\n\t\t&:active,\n\t\t&:focus {\n\t\t\t/* The disabled button should have a slightly less visible shadow when focused. */\n\t\t\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\n\t\t}\n\n\t\t& .ck-button__icon {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\n\t\t& .ck-button__label {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t& .ck-button__keystroke {\n\t\t\topacity: .3;\n\t\t}\n\t}\n\n\t&.ck-button_with-text {\n\t\tpadding: var(--ck-spacing-tiny) var(--ck-spacing-standard);\n\n\t\t/* stylelint-disable-next-line no-descending-specificity */\n\t\t& .ck-button__icon {\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: calc(-1 * var(--ck-spacing-small));\n\t\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-right: calc(-1 * var(--ck-spacing-small));\n\t\t\t\tmargin-left: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.ck-button_with-keystroke {\n\t\t/* stylelint-disable-next-line no-descending-specificity */\n\t\t& .ck-button__label {\n\t\t\tflex-grow: 1;\n\t\t}\n\t}\n\n\t/* A style of the button which is currently on, e.g. its feature is active. */\n\t&.ck-on {\n\t\t@mixin ck-button-colors --ck-color-button-on;\n\n\t\tcolor: var(--ck-color-button-on-color);\n\t}\n\n\t&.ck-button-save {\n\t\tcolor: var(--ck-color-button-save);\n\t}\n\n\t&.ck-button-cancel {\n\t\tcolor: var(--ck-color-button-cancel);\n\t}\n}\n\n/* A style of the button which handles the primary action. */\n.ck.ck-button-action,\na.ck.ck-button-action {\n\t@mixin ck-button-colors --ck-color-button-action;\n\n\tcolor: var(--ck-color-button-action-text);\n}\n\n.ck.ck-button-bold,\na.ck.ck-button-bold {\n\tfont-weight: bold;\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements a button of given background color.\n *\n * @param {String} $background - Background color of the button.\n * @param {String} $border - Border color of the button.\n */\n@define-mixin ck-button-colors $prefix {\n\tbackground: var($(prefix)-background);\n\n\t&:not(.ck-disabled) {\n\t\t&:hover {\n\t\t\tbackground: var($(prefix)-hover-background);\n\t\t}\n\n\t\t&:active {\n\t\t\tbackground: var($(prefix)-active-background);\n\t\t}\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\n\t&.ck-disabled {\n\t\tbackground: var($(prefix)-disabled-background);\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n"],sourceRoot:""}]);const a=s},4391:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{display:block}:root{--ck-switch-button-toggle-width:2.6153846154em;--ck-switch-button-toggle-inner-size:calc(1.07692em + 1px);--ck-switch-button-translation:calc(var(--ck-switch-button-toggle-width) - var(--ck-switch-button-toggle-inner-size) - 2px);--ck-switch-button-inner-hover-shadow:0 0 0 5px var(--ck-color-switch-button-inner-shadow)}.ck.ck-button.ck-switchbutton,.ck.ck-button.ck-switchbutton.ck-on:active,.ck.ck-button.ck-switchbutton.ck-on:focus,.ck.ck-button.ck-switchbutton.ck-on:hover,.ck.ck-button.ck-switchbutton:active,.ck.ck-button.ck-switchbutton:focus,.ck.ck-button.ck-switchbutton:hover{background:transparent;color:inherit}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__label{margin-right:calc(var(--ck-spacing-large)*2)}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__label{margin-left:calc(var(--ck-spacing-large)*2)}.ck.ck-button.ck-switchbutton .ck-button__toggle{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle.ck-rounded-corners{border-radius:var(--ck-border-radius)}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-left:auto}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-right:auto}.ck.ck-button.ck-switchbutton .ck-button__toggle{background:var(--ck-color-switch-button-off-background);border:1px solid transparent;transition:background .4s ease,box-shadow .2s ease-in-out,outline .2s ease-in-out;width:var(--ck-switch-button-toggle-width)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:calc(var(--ck-border-radius)*.5)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{background:var(--ck-color-switch-button-inner-background);height:var(--ck-switch-button-toggle-inner-size);transition:all .3s ease;width:var(--ck-switch-button-toggle-inner-size)}@media (prefers-reduced-motion:reduce){.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{transition:none}}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover{background:var(--ck-color-switch-button-off-hover-background)}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover .ck-button__toggle__inner{box-shadow:var(--ck-switch-button-inner-hover-shadow)}.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-switchbutton:focus{border-color:transparent;box-shadow:none;outline:none}.ck.ck-button.ck-switchbutton:focus .ck-button__toggle{box-shadow:0 0 0 1px var(--ck-color-base-background),0 0 0 5px var(--ck-color-focus-outer-shadow);outline:var(--ck-focus-ring);outline-offset:1px}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle{background:var(--ck-color-switch-button-on-background)}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover{background:var(--ck-color-switch-button-on-hover-background)}[dir=ltr] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(var( --ck-switch-button-translation ))}[dir=rtl] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(calc(var( --ck-switch-button-translation )*-1))}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/button/switchbutton.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/switchbutton.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css"],names:[],mappings:"AASE,4HACC,aACD,CCCF,MAEC,8CAA+C,CAE/C,0DAAgE,CAChE,2HAIC,CACD,0FACD,CAOC,0QAEC,sBAAuB,CADvB,aAED,CAEA,0DAGE,4CAOF,CAVA,0DAQE,2CAEF,CAEA,iDCpCA,eDgFA,CA5CA,yIChCC,qCD4ED,CA5CA,2DAKE,gBAuCF,CA5CA,2DAUE,iBAkCF,CA5CA,iDAkBC,uDAAwD,CAFxD,4BAA6B,CAD7B,iFAAsF,CAEtF,0CA2BD,CAxBC,2ECxDD,eDuEC,CAfA,6LCpDA,qCAAsC,CDsDpC,8CAaF,CAfA,2EAOC,yDAA0D,CAD1D,gDAAiD,CAIjD,uBAA0B,CAL1B,+CAUD,CAHC,uCAZD,2EAaE,eAEF,CADC,CAGD,uDACC,6DAKD,CAHC,iFACC,qDACD,CAIF,6DEpFA,kCFsFA,CAGA,oCACC,wBAAyB,CAEzB,eAAgB,CADhB,YAQD,CALC,uDACC,iGAAmG,CAEnG,4BAA6B,CAD7B,kBAED,CAKA,uDACC,sDAkBD,CAhBC,6DACC,4DACD,CAEA,2FAKE,2DAMF,CAXA,2FASE,oEAEF",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-button.ck-switchbutton {\n\t& .ck-button__toggle {\n\t\tdisplay: block;\n\n\t\t& .ck-button__toggle__inner {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n/* Note: To avoid rendering issues (aliasing) but to preserve the responsive nature\nof the component, floating–point numbers have been used which, for the default font size\n(see: --ck-font-size-base), will generate simple integers. */\n:root {\n\t/* 34px at 13px font-size */\n\t--ck-switch-button-toggle-width: 2.6153846154em;\n\t/* 14px at 13px font-size */\n\t--ck-switch-button-toggle-inner-size: calc(1.0769230769em + 1px);\n\t--ck-switch-button-translation: calc(\n\t\tvar(--ck-switch-button-toggle-width) -\n\t\tvar(--ck-switch-button-toggle-inner-size) -\n\t\t2px /* Border */\n\t);\n\t--ck-switch-button-inner-hover-shadow: 0 0 0 5px var(--ck-color-switch-button-inner-shadow);\n}\n\n.ck.ck-button.ck-switchbutton {\n\t/* Unlike a regular button, the switch button text color and background should never change.\n\t * Changing toggle switch (background, outline) is enough to carry the information about the\n\t * state of the entire component (https://github.com/ckeditor/ckeditor5/issues/12519)\n\t */\n\t&, &:hover, &:focus, &:active, &.ck-on:hover, &.ck-on:focus, &.ck-on:active {\n\t\tcolor: inherit;\n\t\tbackground: transparent;\n\t}\n\n\t& .ck-button__label {\n\t\t@mixin ck-dir ltr {\n\t\t\t/* Separate the label from the switch */\n\t\t\tmargin-right: calc(2 * var(--ck-spacing-large));\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t/* Separate the label from the switch */\n\t\t\tmargin-left: calc(2 * var(--ck-spacing-large));\n\t\t}\n\t}\n\n\t& .ck-button__toggle {\n\t\t@mixin ck-rounded-corners;\n\n\t\t@mixin ck-dir ltr {\n\t\t\t/* Make sure the toggle is always to the right as far as possible. */\n\t\t\tmargin-left: auto;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t/* Make sure the toggle is always to the left as far as possible. */\n\t\t\tmargin-right: auto;\n\t\t}\n\n\t\t/* Apply some smooth transition to the box-shadow and border. */\n\t\t/* Gently animate the background color of the toggle switch */\n\t\ttransition: background 400ms ease, box-shadow .2s ease-in-out, outline .2s ease-in-out;\n\t\tborder: 1px solid transparent;\n\t\twidth: var(--ck-switch-button-toggle-width);\n\t\tbackground: var(--ck-color-switch-button-off-background);\n\n\t\t& .ck-button__toggle__inner {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-radius: calc(.5 * var(--ck-border-radius));\n\t\t\t}\n\n\t\t\twidth: var(--ck-switch-button-toggle-inner-size);\n\t\t\theight: var(--ck-switch-button-toggle-inner-size);\n\t\t\tbackground: var(--ck-color-switch-button-inner-background);\n\n\t\t\t/* Gently animate the inner part of the toggle switch */\n\t\t\ttransition: all 300ms ease;\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\ttransition: none;\n\t\t\t}\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground: var(--ck-color-switch-button-off-hover-background);\n\n\t\t\t& .ck-button__toggle__inner {\n\t\t\t\tbox-shadow: var(--ck-switch-button-inner-hover-shadow);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.ck-disabled .ck-button__toggle {\n\t\t@mixin ck-disabled;\n\t}\n\n\t/* Overriding default .ck-button:focus styles + an outline around the toogle */\n\t&:focus {\n\t\tborder-color: transparent;\n\t\toutline: none;\n\t\tbox-shadow: none;\n\n\t\t& .ck-button__toggle {\n\t\t\tbox-shadow: 0 0 0 1px var(--ck-color-base-background), 0 0 0 5px var(--ck-color-focus-outer-shadow);\n\t\t\toutline-offset: 1px;\n\t\t\toutline: var(--ck-focus-ring);\n\t\t}\n\t}\n\n\t/* stylelint-disable-next-line no-descending-specificity */\n\t&.ck-on {\n\t\t& .ck-button__toggle {\n\t\t\tbackground: var(--ck-color-switch-button-on-background);\n\n\t\t\t&:hover {\n\t\t\t\tbackground: var(--ck-color-switch-button-on-hover-background);\n\t\t\t}\n\n\t\t\t& .ck-button__toggle__inner {\n\t\t\t\t/*\n\t\t\t\t* Move the toggle switch to the right. It will be animated.\n\t\t\t\t*/\n\t\t\t\t@mixin ck-dir ltr {\n\t\t\t\t\ttransform: translateX( var( --ck-switch-button-translation ) );\n\t\t\t\t}\n\n\t\t\t\t@mixin ck-dir rtl {\n\t\t\t\t\ttransform: translateX( calc( -1 * var( --ck-switch-button-translation ) ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n"],sourceRoot:""}]);const a=s},25:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-collapsible.ck-collapsible_collapsed>.ck-collapsible__children{display:none}:root{--ck-collapsible-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-collapsible>.ck.ck-button{border-radius:0;color:inherit;font-weight:700;padding:var(--ck-list-button-padding);width:100%}.ck.ck-collapsible>.ck.ck-button:focus{background:transparent}.ck.ck-collapsible>.ck.ck-button:active,.ck.ck-collapsible>.ck.ck-button:hover:not(:focus),.ck.ck-collapsible>.ck.ck-button:not(:focus){background:transparent;border-color:transparent;box-shadow:none}.ck.ck-collapsible>.ck.ck-button>.ck-icon{margin-right:var(--ck-spacing-medium);width:var(--ck-collapsible-arrow-size)}.ck.ck-collapsible>.ck-collapsible__children{padding:var(--ck-spacing-medium) var(--ck-spacing-large) var(--ck-spacing-large)}.ck.ck-collapsible.ck-collapsible_collapsed>.ck.ck-button .ck-icon{transform:rotate(-90deg)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/collapsible/collapsible.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/collapsible/collapsible.css"],names:[],mappings:"AAMC,sEACC,YACD,CCHD,MACC,yDACD,CAGC,iCAIC,eAAgB,CAChB,aAAc,CAHd,eAAiB,CACjB,qCAAsC,CAFtC,UAoBD,CAdC,uCACC,sBACD,CAEA,wIACC,sBAAuB,CACvB,wBAAyB,CACzB,eACD,CAEA,0CACC,qCAAsC,CACtC,sCACD,CAGD,6CACC,gFACD,CAGC,mEACC,wBACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-collapsible.ck-collapsible_collapsed {\n\t& > .ck-collapsible__children {\n\t\tdisplay: none;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-collapsible-arrow-size: calc(0.5 * var(--ck-icon-size));\n}\n\n.ck.ck-collapsible {\n\t& > .ck.ck-button {\n\t\twidth: 100%;\n\t\tfont-weight: bold;\n\t\tpadding: var(--ck-list-button-padding);\n\t\tborder-radius: 0;\n\t\tcolor: inherit;\n\n\t\t&:focus {\n\t\t\tbackground: transparent;\n\t\t}\n\n\t\t&:active, &:not(:focus), &:hover:not(:focus) {\n\t\t\tbackground: transparent;\n\t\t\tborder-color: transparent;\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t& > .ck-icon {\n\t\t\tmargin-right: var(--ck-spacing-medium);\n\t\t\twidth: var(--ck-collapsible-arrow-size);\n\t\t}\n\t}\n\n\t& > .ck-collapsible__children {\n\t\tpadding: var(--ck-spacing-medium) var(--ck-spacing-large) var(--ck-spacing-large);\n\t}\n\n\t&.ck-collapsible_collapsed {\n\t\t& > .ck.ck-button .ck-icon {\n\t\t\ttransform: rotate(-90deg);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},7317:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-color-grid{display:grid}:root{--ck-color-grid-tile-size:24px;--ck-color-color-grid-check-icon:#166fd4}.ck.ck-color-grid{grid-gap:5px;padding:8px}.ck.ck-color-grid__tile{transition:box-shadow .2s ease}@media (forced-colors:none){.ck.ck-color-grid__tile{border:0;height:var(--ck-color-grid-tile-size);min-height:var(--ck-color-grid-tile-size);min-width:var(--ck-color-grid-tile-size);padding:0;width:var(--ck-color-grid-tile-size)}.ck.ck-color-grid__tile.ck-on,.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){border:0}.ck.ck-color-grid__tile.ck-color-selector__color-tile_bordered{box-shadow:0 0 0 1px var(--ck-color-base-border)}.ck.ck-color-grid__tile.ck-on{box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-base-text)}.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}}@media (forced-colors:active){.ck.ck-color-grid__tile{height:unset;min-height:unset;min-width:unset;padding:0 var(--ck-spacing-small);width:unset}.ck.ck-color-grid__tile .ck-button__label{display:inline-block}}@media (prefers-reduced-motion:reduce){.ck.ck-color-grid__tile{transition:none}}.ck.ck-color-grid__tile.ck-disabled{cursor:unset;transition:unset}.ck.ck-color-grid__tile .ck.ck-icon{color:var(--ck-color-color-grid-check-icon);display:none}.ck.ck-color-grid__tile.ck-on .ck.ck-icon{display:block}.ck.ck-color-grid__label{padding:0 var(--ck-spacing-standard)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/colorgrid/colorgrid.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/colorgrid/colorgrid.css","webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css"],names:[],mappings:"AAKA,kBACC,YACD,CCCA,MACC,8BAA+B,CAK/B,wCACD,CAEA,kBACC,YAAa,CACb,WACD,CAEA,wBACC,8BAkED,CC3EC,4BACC,wBDgBA,QAAS,CAJT,qCAAsC,CAEtC,yCAA0C,CAD1C,wCAAyC,CAEzC,SAAU,CAJV,oCCTA,CDgBA,8HAIC,QACD,CAEA,+DACC,gDACD,CAEA,8BACC,8FACD,CAEA,gGAEC,iGACD,CCjCD,CAZA,8BACC,wBDqDA,YAAa,CAEb,gBAAiB,CADjB,eAAgB,CAEhB,iCAAkC,CAJlC,WClDA,CDwDA,0CACC,oBACD,CCzDD,CD4DA,uCAhDD,wBAiDE,eAkBF,CAjBC,CAEA,oCACC,YAAa,CACb,gBACD,CAEA,oCAEC,2CAA4C,CAD5C,YAED,CAGC,0CACC,aACD,CAIF,yBACC,oCACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-color-grid {\n\tdisplay: grid;\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css";\n\n:root {\n\t--ck-color-grid-tile-size: 24px;\n\n\t/* Not using global colors here because these may change but some colors in a pallette\n\t * require special treatment. For instance, this ensures no matter what the UI text color is,\n\t * the check icon will look good on the black color tile. */\n\t--ck-color-color-grid-check-icon: hsl(212, 81%, 46%);\n}\n\n.ck.ck-color-grid {\n\tgrid-gap: 5px;\n\tpadding: 8px;\n}\n\n.ck.ck-color-grid__tile {\n\ttransition: .2s ease box-shadow;\n\n\t@mixin ck-media-default-colors {\n\t\twidth: var(--ck-color-grid-tile-size);\n\t\theight: var(--ck-color-grid-tile-size);\n\t\tmin-width: var(--ck-color-grid-tile-size);\n\t\tmin-height: var(--ck-color-grid-tile-size);\n\t\tpadding: 0;\n\t\tborder: 0;\n\n\t\t&.ck-on,\n\t\t&:focus:not( .ck-disabled ),\n\t\t&:hover:not( .ck-disabled ) {\n\t\t\t/* Disable the default .ck-button\'s border ring. */\n\t\t\tborder: 0;\n\t\t}\n\n\t\t&.ck-color-selector__color-tile_bordered {\n\t\t\tbox-shadow: 0 0 0 1px var(--ck-color-base-border);\n\t\t}\n\n\t\t&.ck-on {\n\t\t\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-base-text);\n\t\t}\n\n\t\t&:focus:not( .ck-disabled ),\n\t\t&:hover:not( .ck-disabled ) {\n\t\t\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);\n\t\t}\n\t}\n\n\t/*\n\t * In high contrast mode, the colors are replaced with text labels.\n\t * See https://github.com/ckeditor/ckeditor5/issues/14907.\n\t */\n\t@mixin ck-media-forced-colors {\n\t\twidth: unset;\n\t\theight: unset;\n\t\tmin-width: unset;\n\t\tmin-height: unset;\n\t\tpadding: 0 var(--ck-spacing-small);\n\n\t\t& .ck-button__label {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: none;\n\t}\n\n\t&.ck-disabled {\n\t\tcursor: unset;\n\t\ttransition: unset;\n\t}\n\n\t& .ck.ck-icon {\n\t\tdisplay: none;\n\t\tcolor: var(--ck-color-color-grid-check-icon);\n\t}\n\n\t&.ck-on {\n\t\t& .ck.ck-icon {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n}\n\n.ck.ck-color-grid__label {\n\tpadding: 0 var(--ck-spacing-standard);\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-forced-colors {\n\t@media (forced-colors: active) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n\n@define-mixin ck-media-default-colors {\n\t@media (forced-colors: none) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},1905:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".color-picker-hex-input{width:max-content}.color-picker-hex-input .ck.ck-input{min-width:unset}.ck.ck-color-picker__row{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;margin:var(--ck-spacing-large) 0 0;width:unset}.ck.ck-color-picker__row .ck.ck-labeled-field-view{padding-top:unset}.ck.ck-color-picker__row .ck.ck-input-text{width:unset}.ck.ck-color-picker__row .ck-color-picker__hash-view{padding-right:var(--ck-spacing-medium);padding-top:var(--ck-spacing-tiny)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/colorpicker/colorpicker.css"],names:[],mappings:"AAKA,wBACC,iBAKD,CAHC,qCACC,eACD,CAGD,yBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAA8B,CAC9B,kCAAmC,CACnC,WAcD,CAZC,mDACC,iBACD,CAEA,2CACC,WACD,CAEA,qDAEC,sCAAuC,CADvC,kCAED",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.color-picker-hex-input {\n\twidth: max-content;\n\n\t& .ck.ck-input {\n\t\tmin-width: unset;\n\t}\n}\n\n.ck.ck-color-picker__row {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tjustify-content: space-between;\n\tmargin: var(--ck-spacing-large) 0 0;\n\twidth: unset;\n\n\t& .ck.ck-labeled-field-view {\n\t\tpadding-top: unset;\n\t}\n\n\t& .ck.ck-input-text {\n\t\twidth: unset;\n\t}\n\n\t& .ck-color-picker__hash-view {\n\t\tpadding-top: var(--ck-spacing-tiny);\n\t\tpadding-right: var(--ck-spacing-medium);\n\t}\n}\n"],sourceRoot:""}]);const a=s},6309:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{align-items:center;display:flex}[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{justify-content:flex-start}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar{display:flex;flex-direction:row;justify-content:space-around}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-cancel,.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-save{flex:1}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{width:100%}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(var(--ck-spacing-standard)/2) var(--ck-spacing-standard)}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker:not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon{margin-left:var(--ck-spacing-standard)}.ck.ck-color-selector .ck-color-grids-fragment label.ck.ck-color-grid__label{font-weight:unset}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker{padding:8px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker{height:100px;min-width:180px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation){border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue){border-radius:0 0 var(--ck-border-radius) var(--ck-border-radius)}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue-pointer),.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation-pointer){height:15px;width:15px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar{padding:0 8px 8px}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/colorselector/colorselector.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/colorselector/colorselector.css"],names:[],mappings:"AAUE,oLAGC,kBAAmB,CADnB,YAMD,CARA,wMAME,0BAEF,CAKA,iFACC,YAAa,CACb,kBAAmB,CACnB,4BAMD,CAJC,oMAEC,MACD,CCrBD,oLAEC,UACD,CAEA,0FAEC,2BAA4B,CAC5B,4BAA6B,CAF7B,qEAiBD,CAbC,sGACC,gDACD,CAEA,gHAEE,uCAMF,CARA,gHAME,sCAEF,CAGD,6EACC,iBACD,CAKA,oEACC,WAoBD,CAlBC,sFACC,YAAa,CACb,eAeD,CAbC,wGACC,iEACD,CAEA,iGACC,iEACD,CAEA,yNAGC,WAAY,CADZ,UAED,CAIF,iFACC,iBACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-color-selector {\n\t/* View fragment with color grids. */\n\t& .ck-color-grids-fragment {\n\t\t& .ck-button.ck-color-selector__remove-color,\n\t\t& .ck-button.ck-color-selector__color-picker {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tjustify-content: flex-start;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* View fragment with a color picker. */\n\t& .ck-color-picker-fragment {\n\t\t& .ck.ck-color-selector_action-bar {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\tjustify-content: space-around;\n\n\t\t\t& .ck-button-save,\n\t\t\t& .ck-button-cancel {\n\t\t\t\tflex: 1\n\t\t\t}\n\t\t}\n\t}\n}\n','/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-color-selector {\n\t/* View fragment with color grids. */\n\t& .ck-color-grids-fragment {\n\t\t& .ck-button.ck-color-selector__remove-color,\n\t\t& .ck-button.ck-color-selector__color-picker {\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t& .ck-button.ck-color-selector__color-picker {\n\t\t\tpadding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);\n\t\t\tborder-bottom-left-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\n\t\t\t&:not(:focus) {\n\t\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\n\t\t\t& .ck.ck-icon {\n\t\t\t\t@mixin ck-dir ltr {\n\t\t\t\t\tmargin-right: var(--ck-spacing-standard);\n\t\t\t\t}\n\n\t\t\t\t@mixin ck-dir rtl {\n\t\t\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t& label.ck.ck-color-grid__label {\n\t\t\tfont-weight: unset;\n\t\t}\n\t}\n\n\t/* View fragment with a color picker. */\n\t& .ck-color-picker-fragment {\n\t\t& .ck.ck-color-picker {\n\t\t\tpadding: 8px;\n\n\t\t\t& .hex-color-picker {\n\t\t\t\theight: 100px;\n\t\t\t\tmin-width: 180px;\n\n\t\t\t\t&::part(saturation) {\n\t\t\t\t\tborder-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;\n\t\t\t\t}\n\n\t\t\t\t&::part(hue) {\n\t\t\t\t\tborder-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);\n\t\t\t\t}\n\n\t\t\t\t&::part(saturation-pointer),\n\t\t\t\t&::part(hue-pointer) {\n\t\t\t\t\twidth: 15px;\n\t\t\t\t\theight: 15px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t& .ck.ck-color-selector_action-bar {\n\t\t\tpadding: 0 8px 8px;\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},9819:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-dialog-overlay{bottom:0;left:0;overscroll-behavior:none;position:fixed;right:0;top:0;user-select:none}.ck.ck-dialog-overlay.ck-dialog-overlay__transparent{animation:none;background:none;pointer-events:none}.ck.ck-dialog{overscroll-behavior:none;position:absolute;width:fit-content}.ck.ck-dialog .ck.ck-form__header{flex-shrink:0}.ck.ck-dialog .ck.ck-form__header .ck-form__header__label{cursor:grab}.ck.ck-dialog-overlay.ck-dialog-overlay__transparent .ck.ck-dialog{pointer-events:all}:root{--ck-dialog-overlay-background-color:rgba(0,0,0,.5);--ck-dialog-drop-shadow:0px 0px 6px 2px rgba(0,0,0,.15);--ck-dialog-max-width:100vw;--ck-dialog-max-height:90vh;--ck-color-dialog-background:var(--ck-color-base-background);--ck-color-dialog-form-header-border:var(--ck-color-base-border)}.ck.ck-dialog-overlay{animation:ck-dialog-fade-in .3s;background:var(--ck-dialog-overlay-background-color);z-index:var(--ck-z-dialog)}.ck.ck-dialog{border-radius:0}.ck-rounded-corners .ck.ck-dialog,.ck.ck-dialog.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dialog{box-shadow:var(--ck-drop-shadow),0 0;--ck-drop-shadow:var(--ck-dialog-drop-shadow);background:var(--ck-color-dialog-background);border:1px solid var(--ck-color-base-border);max-height:var(--ck-dialog-max-height);max-width:var(--ck-dialog-max-width)}.ck.ck-dialog .ck.ck-form__header{border-bottom:1px solid var(--ck-color-dialog-form-header-border)}@keyframes ck-dialog-fade-in{0%{background:transparent}to{background:var(--ck-dialog-overlay-background-color)}}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/dialog/dialog.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dialog/dialog.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,sBAKC,QAAS,CACT,MAAO,CAJP,wBAAyB,CAEzB,cAAe,CAGf,OAAQ,CACR,KAAM,CAPN,gBAcD,CALC,qDAEC,cAAe,CACf,eAAgB,CAFhB,mBAGD,CAGD,cACC,wBAAyB,CAEzB,iBAAkB,CADlB,iBAcD,CAXC,kCACC,aAKD,CAHC,0DACC,WACD,CAVF,mEAcE,kBAEF,CC7BA,MACC,mDAA2D,CAC3D,uDAA8D,CAC9D,2BAA4B,CAC5B,2BAA4B,CAC5B,4DAA6D,CAC7D,gEACD,CAEA,sBACC,+BAAgC,CAChC,oDAAqD,CACrD,0BACD,CAEA,cCbC,eD2BD,CAdA,mECTE,qCDuBF,CAdA,cEfC,oCAA8B,CFmB9B,6CAA8C,CAE9C,4CAA6C,CAG7C,4CAA6C,CAF7C,sCAAuC,CACvC,oCAMD,CAHC,kCACC,iEACD,CAGD,6BACC,GACC,sBACD,CAEA,GACC,oDACD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-dialog-overlay {\n\tuser-select: none;\n\toverscroll-behavior: none;\n\n\tposition: fixed;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\ttop: 0;\n\n\t&.ck-dialog-overlay__transparent {\n\t\tpointer-events: none;\n\t\tanimation: none;\n\t\tbackground: none;\n\t}\n}\n\n.ck.ck-dialog {\n\toverscroll-behavior: none;\n\twidth: fit-content;\n\tposition: absolute;\n\n\t& .ck.ck-form__header {\n\t\tflex-shrink: 0;\n\n\t\t& .ck-form__header__label {\n\t\t\tcursor: grab;\n\t\t}\n\t}\n\n\t@nest .ck.ck-dialog-overlay.ck-dialog-overlay__transparent & {\n\t\tpointer-events: all;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n:root {\n\t--ck-dialog-overlay-background-color: hsla( 0, 0%, 0%, .5 );\n\t--ck-dialog-drop-shadow: 0px 0px 6px 2px hsl(0deg 0% 0% / 15%);\n\t--ck-dialog-max-width: 100vw;\n\t--ck-dialog-max-height: 90vh;\n\t--ck-color-dialog-background: var(--ck-color-base-background);\n\t--ck-color-dialog-form-header-border: var(--ck-color-base-border);\n}\n\n.ck.ck-dialog-overlay {\n\tanimation: ck-dialog-fade-in .3s;\n\tbackground: var(--ck-dialog-overlay-background-color);\n\tz-index: var(--ck-z-dialog);\n}\n\n.ck.ck-dialog {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\t--ck-drop-shadow: var(--ck-dialog-drop-shadow);\n\n\tbackground: var(--ck-color-dialog-background);\n\tmax-height: var(--ck-dialog-max-height);\n\tmax-width: var(--ck-dialog-max-width);\n\tborder: 1px solid var(--ck-color-base-border);\n\n\t& .ck.ck-form__header {\n\t\tborder-bottom: 1px solid var(--ck-color-dialog-form-header-border);\n\t}\n}\n\n@keyframes ck-dialog-fade-in {\n\t0% {\n\t\tbackground: hsla( 0, 0%, 0%, 0 );\n\t}\n\n\t100% {\n\t\tbackground: var(--ck-dialog-overlay-background-color);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},9822:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-dialog .ck.ck-dialog__actions{display:flex;justify-content:flex-end;padding:var(--ck-spacing-large)}.ck.ck-dialog .ck.ck-dialog__actions>*+*{margin-left:var(--ck-spacing-large)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/dialog/dialogactions.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dialog/dialogactions.css"],names:[],mappings:"AAMC,qCACC,YAAa,CACb,wBAAyB,CCDzB,+BDED,CCAC,yCACC,mCACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-dialog {\n\t& .ck.ck-dialog__actions {\n\t\tdisplay: flex;\n\t\tjustify-content: flex-end;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-dialog {\n\t& .ck.ck-dialog__actions {\n\t\tpadding: var(--ck-spacing-large);\n\n\t\t& > * + * {\n\t\t\tmargin-left: var(--ck-spacing-large);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},8149:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-dropdown-max-width:75vw}.ck.ck-dropdown{display:inline-block;position:relative}.ck.ck-dropdown .ck-dropdown__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-dropdown .ck-button.ck-dropdown__button{width:100%}.ck.ck-dropdown .ck-dropdown__panel{display:none;max-width:var(--ck-dropdown-max-width);position:absolute;z-index:var(--ck-z-panel)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible{display:inline-block}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw{bottom:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{bottom:auto;top:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se{left:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{right:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s{left:50%;transform:translateX(-50%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw{left:75%;transform:translateX(-75%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme{left:25%;transform:translateX(-25%)}.ck.ck-toolbar .ck-dropdown__panel{z-index:calc(var(--ck-z-panel) + 1)}:root{--ck-dropdown-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-dropdown{font-size:inherit}.ck.ck-dropdown .ck-dropdown__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-dropdown .ck-dropdown__arrow{margin-left:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-dropdown .ck-dropdown__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{overflow:hidden;text-overflow:ellipsis;width:7em}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label{width:auto}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active{box-shadow:none}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active:focus,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active:focus{box-shadow:var(--ck-focus-outer-shadow),0 0}.ck.ck-dropdown__panel{border-radius:0}.ck-rounded-corners .ck.ck-dropdown__panel,.ck.ck-dropdown__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dropdown__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:0;box-shadow:var(--ck-drop-shadow),0 0;min-width:100%}.ck.ck-dropdown__panel.ck-dropdown__panel_se{border-top-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_sw{border-top-right-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_ne{border-bottom-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_nw{border-bottom-right-radius:0}.ck.ck-dropdown__panel:focus{outline:none}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/dropdown/dropdown.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/dropdown.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,MACC,4BACD,CAEA,gBACC,oBAAqB,CACrB,iBA2ED,CAzEC,oCACC,mBAAoB,CACpB,2BACD,CAGA,+CACC,UACD,CAEA,oCACC,YAAa,CAEb,sCAAuC,CAEvC,iBAAkB,CAHlB,yBA4DD,CAvDC,+DACC,oBACD,CAEA,mSAKC,WACD,CAEA,mSAUC,WAAY,CADZ,QAED,CAEA,oHAEC,MACD,CAEA,oHAEC,OACD,CAEA,kHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAQF,mCACC,mCACD,CCpFA,MACC,sDACD,CAEA,gBAEC,iBA2ED,CAzEC,oCACC,mCACD,CAGC,8CAIC,sCAAuC,CAHvC,gCAID,CAIA,8CACC,+BAAgC,CAGhC,oCACD,CAGD,gDC/BA,kCDiCA,CAIE,mFAEC,oCACD,CAIA,mFAEC,qCACD,CAID,iEAEC,eAAgB,CAChB,sBAAuB,CAFvB,SAGD,CAGA,6EC1DD,kCD4DC,CAGA,qDACC,2BAA4B,CAC5B,4BACD,CAEA,sGACC,UACD,CAGA,yHAEC,eAKD,CAHC,qIE7EF,2CF+EE,CAKH,uBGlFC,eHkHD,CAhCA,qFG9EE,qCH8GF,CAhCA,uBAIC,oDAAqD,CACrD,sDAAuD,CACvD,QAAS,CE1FT,oCAA8B,CF6F9B,cAuBD,CAnBC,6CACC,wBACD,CAEA,6CACC,yBACD,CAEA,6CACC,2BACD,CAEA,6CACC,4BACD,CAEA,6BACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-dropdown-max-width: 75vw;\n}\n\n.ck.ck-dropdown {\n\tdisplay: inline-block;\n\tposition: relative;\n\n\t& .ck-dropdown__arrow {\n\t\tpointer-events: none;\n\t\tz-index: var(--ck-z-default);\n\t}\n\n\t/* Dropdown button should span horizontally, e.g. in vertical toolbars */\n\t& .ck-button.ck-dropdown__button {\n\t\twidth: 100%;\n\t}\n\n\t& .ck-dropdown__panel {\n\t\tdisplay: none;\n\t\tz-index: var(--ck-z-panel);\n\t\tmax-width: var(--ck-dropdown-max-width);\n\n\t\tposition: absolute;\n\n\t\t&.ck-dropdown__panel-visible {\n\t\t\tdisplay: inline-block;\n\t\t}\n\n\t\t&.ck-dropdown__panel_ne,\n\t\t&.ck-dropdown__panel_nw,\n\t\t&.ck-dropdown__panel_n,\n\t\t&.ck-dropdown__panel_nmw,\n\t\t&.ck-dropdown__panel_nme {\n\t\t\tbottom: 100%;\n\t\t}\n\n\t\t&.ck-dropdown__panel_se,\n\t\t&.ck-dropdown__panel_sw,\n\t\t&.ck-dropdown__panel_smw,\n\t\t&.ck-dropdown__panel_sme,\n\t\t&.ck-dropdown__panel_s {\n\t\t\t/*\n\t\t\t * Using transform: translate3d( 0, 100%, 0 ) causes blurry dropdown on Chrome 67-78+ on non-retina displays.\n\t\t\t * See https://github.com/ckeditor/ckeditor5/issues/1053.\n\t\t\t */\n\t\t\ttop: 100%;\n\t\t\tbottom: auto;\n\t\t}\n\n\t\t&.ck-dropdown__panel_ne,\n\t\t&.ck-dropdown__panel_se {\n\t\t\tleft: 0px;\n\t\t}\n\n\t\t&.ck-dropdown__panel_nw,\n\t\t&.ck-dropdown__panel_sw {\n\t\t\tright: 0px;\n\t\t}\n\n\t\t&.ck-dropdown__panel_s,\n\t\t&.ck-dropdown__panel_n {\n\t\t\t/* Positioning panels relative to the center of the button */\n\t\t\tleft: 50%;\n\t\t\ttransform: translateX(-50%);\n\t\t}\n\n\t\t&.ck-dropdown__panel_nmw,\n\t\t&.ck-dropdown__panel_smw {\n\t\t\t/* Positioning panels relative to the middle-west of the button */\n\t\t\tleft: 75%;\n\t\t\ttransform: translateX(-75%);\n\t\t}\n\n\t\t&.ck-dropdown__panel_nme,\n\t\t&.ck-dropdown__panel_sme {\n\t\t\t/* Positioning panels relative to the middle-east of the button */\n\t\t\tleft: 25%;\n\t\t\ttransform: translateX(-25%);\n\t\t}\n\t}\n}\n\n/*\n * Toolbar dropdown panels should be always above the UI (eg. other dropdown panels) from the editor's content.\n * See https://github.com/ckeditor/ckeditor5/issues/7874\n */\n.ck.ck-toolbar .ck-dropdown__panel {\n\tz-index: calc( var(--ck-z-panel) + 1 );\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n:root {\n\t--ck-dropdown-arrow-size: calc(0.5 * var(--ck-icon-size));\n}\n\n.ck.ck-dropdown {\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t& .ck-dropdown__arrow {\n\t\twidth: var(--ck-dropdown-arrow-size);\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& .ck-dropdown__arrow {\n\t\t\tright: var(--ck-spacing-standard);\n\n\t\t\t/* A space to accommodate the triangle. */\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& .ck-dropdown__arrow {\n\t\t\tleft: var(--ck-spacing-standard);\n\n\t\t\t/* A space to accommodate the triangle. */\n\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t}\n\t}\n\n\t&.ck-disabled .ck-dropdown__arrow {\n\t\t@mixin ck-disabled;\n\t}\n\n\t& .ck-button.ck-dropdown__button {\n\t\t@mixin ck-dir ltr {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\t/* Make sure dropdowns with just an icon have the right inner spacing */\n\t\t\t\tpadding-left: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\t/* Make sure dropdowns with just an icon have the right inner spacing */\n\t\t\t\tpadding-right: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\n\t\t/* #23 */\n\t\t& .ck-button__label {\n\t\t\twidth: 7em;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\n\t\t&.ck-disabled .ck-button__label {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/816 */\n\t\t&.ck-on {\n\t\t\tborder-bottom-left-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t&.ck-dropdown__button_label-width_auto .ck-button__label {\n\t\t\twidth: auto;\n\t\t}\n\n\t\t/* https://github.com/ckeditor/ckeditor5/issues/8699 */\n\t\t&.ck-off:active,\n\t\t&.ck-on:active {\n\t\t\tbox-shadow: none;\n\n\t\t\t&:focus {\n\t\t\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck.ck-dropdown__panel {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\tbackground: var(--ck-color-dropdown-panel-background);\n\tborder: 1px solid var(--ck-color-dropdown-panel-border);\n\tbottom: 0;\n\n\t/* Make sure the panel is at least as wide as the drop-down\'s button. */\n\tmin-width: 100%;\n\n\t/* Disabled corner border radius to be consistent with the .dropdown__button\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t&.ck-dropdown__panel_se {\n\t\tborder-top-left-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_sw {\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_ne {\n\t\tborder-bottom-left-radius: 0;\n\t}\n\n\t&.ck-dropdown__panel_nw {\n\t\tborder-bottom-right-radius: 0;\n\t}\n\n\t&:focus {\n\t\toutline: none;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},3629:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-dropdown>.ck-dropdown__panel>.ck-list{border-radius:0}.ck-rounded-corners .ck.ck-dropdown>.ck-dropdown__panel>.ck-list,.ck.ck-dropdown>.ck-dropdown__panel>.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0}.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:first-child>.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:first-child>.ck-button,.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:first-child>.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:0}.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:last-child>.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:last-child>.ck-button,.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:last-child>.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/listdropdown.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,6CCIC,eDqBD,CAzBA,iICQE,qCAAsC,CDJtC,wBAqBF,CAfE,mFCND,eDYC,CANA,6MCFA,qCAAsC,CDKpC,2BAA4B,CAC5B,4BAA6B,CAF7B,wBAIF,CAEA,kFCdD,eDmBC,CALA,2MCVA,qCAAsC,CDYpC,wBAAyB,CACzB,yBAEF",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n.ck.ck-dropdown > .ck-dropdown__panel > .ck-list {\n\t/* Disabled radius of top-left border to be consistent with .dropdown__button\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t@mixin ck-rounded-corners {\n\t\tborder-top-left-radius: 0;\n\t}\n\n\t/* Make sure the button belonging to the first/last child of the list goes well with the\n\tborder radius of the entire panel. */\n\t& .ck-list__item {\n\t\t&:first-child > .ck-button {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\t\t}\n\n\t\t&:last-child > .ck-button {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-top-left-radius: 0;\n\t\t\t\tborder-top-right-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},1792:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,'.ck.ck-splitbutton{font-size:inherit}.ck.ck-splitbutton .ck-splitbutton__action:focus{z-index:calc(var(--ck-z-default) + 1)}:root{--ck-color-split-button-hover-background:#ebebeb;--ck-color-split-button-hover-border:#b3b3b3}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-right-radius:unset;border-top-right-radius:unset}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-left-radius:unset;border-top-left-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow{min-width:unset}[dir=ltr] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-left-radius:unset;border-top-left-radius:unset}[dir=rtl] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-right-radius:unset;border-top-right-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow svg{width:var(--ck-dropdown-arrow-size)}.ck.ck-splitbutton>.ck-splitbutton__arrow:not(:focus){border-bottom-width:0;border-top-width:0}.ck.ck-splitbutton.ck-splitbutton_open>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover),.ck.ck-splitbutton:hover>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover){background:var(--ck-color-split-button-hover-background)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{background-color:var(--ck-color-split-button-hover-border);content:"";height:100%;position:absolute;width:1px}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:focus:after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:focus:after{--ck-color-split-button-hover-border:var(--ck-color-focus-border)}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{left:-1px}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{right:-1px}.ck.ck-splitbutton.ck-splitbutton_open{border-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__action{border-bottom-left-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__arrow{border-bottom-right-radius:0}',"",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/dropdown/splitbutton.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/splitbutton.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,mBAEC,iBAKD,CAHC,iDACC,qCACD,CCJD,MACC,gDAAyD,CACzD,4CACD,CAMC,oIAKE,gCAAiC,CADjC,6BASF,CAbA,oIAWE,+BAAgC,CADhC,4BAGF,CAEA,0CAGC,eAiBD,CApBA,oDAQE,+BAAgC,CADhC,4BAaF,CApBA,oDAcE,gCAAiC,CADjC,6BAOF,CAHC,8CACC,mCACD,CAKD,sDAEC,qBAAwB,CADxB,kBAED,CAQC,0KACC,wDACD,CAIA,8JAKC,0DAA2D,CAJ3D,UAAW,CAGX,WAAY,CAFZ,iBAAkB,CAClB,SAGD,CAGA,sIACC,iEACD,CAGC,kLACC,SACD,CAIA,kLACC,UACD,CAMF,uCCzFA,eDmGA,CAVA,qHCrFC,qCD+FD,CARE,qKACC,2BACD,CAEA,mKACC,4BACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-splitbutton {\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t& .ck-splitbutton__action:focus {\n\t\tz-index: calc(var(--ck-z-default) + 1);\n\t}\n}\n\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-color-split-button-hover-background: hsl(0, 0%, 92%);\n\t--ck-color-split-button-hover-border: hsl(0, 0%, 70%);\n}\n\n.ck.ck-splitbutton {\n\t/*\n\t * Note: ck-rounded and ck-dir mixins don\'t go together (because they both use @nest).\n\t */\n\t&:hover > .ck-splitbutton__action,\n\t&.ck-splitbutton_open > .ck-splitbutton__action {\n\t\t@nest [dir="ltr"] & {\n\t\t\t/* Don\'t round the action button on the right side */\n\t\t\tborder-top-right-radius: unset;\n\t\t\tborder-bottom-right-radius: unset;\n\t\t}\n\n\t\t@nest [dir="rtl"] & {\n\t\t\t/* Don\'t round the action button on the left side */\n\t\t\tborder-top-left-radius: unset;\n\t\t\tborder-bottom-left-radius: unset;\n\t\t}\n\t}\n\n\t& > .ck-splitbutton__arrow {\n\t\t/* It\'s a text-less button and since the icon is positioned absolutely in such situation,\n\t\tit must get some arbitrary min-width. */\n\t\tmin-width: unset;\n\n\t\t@nest [dir="ltr"] & {\n\t\t\t/* Don\'t round the arrow button on the left side */\n\t\t\tborder-top-left-radius: unset;\n\t\t\tborder-bottom-left-radius: unset;\n\t\t}\n\n\t\t@nest [dir="rtl"] & {\n\t\t\t/* Don\'t round the arrow button on the right side */\n\t\t\tborder-top-right-radius: unset;\n\t\t\tborder-bottom-right-radius: unset;\n\t\t}\n\n\t\t& svg {\n\t\t\twidth: var(--ck-dropdown-arrow-size);\n\t\t}\n\t}\n\n\t/* Make sure the divider stretches 100% height of the button\n\thttps://github.com/ckeditor/ckeditor5/issues/10936 */\n\t& > .ck-splitbutton__arrow:not(:focus) {\n\t\tborder-top-width: 0px;\n\t\tborder-bottom-width: 0px;\n\t}\n\n\t/* When the split button is "open" (the arrow is on) or being hovered, it should get some styling\n\tas a whole. The background of both buttons should stand out and there should be a visual\n\tseparation between both buttons. */\n\t&.ck-splitbutton_open,\n\t&:hover {\n\t\t/* When the split button hovered as a whole, not as individual buttons. */\n\t\t& > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover) {\n\t\t\tbackground: var(--ck-color-split-button-hover-background);\n\t\t}\n\n\t\t/* Splitbutton separator needs to be set with the ::after pseudoselector\n\t\tto display properly the borders on focus */\n\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\tcontent: \'\';\n\t\t\tposition: absolute;\n\t\t\twidth: 1px;\n\t\t\theight: 100%;\n\t\t\tbackground-color: var(--ck-color-split-button-hover-border);\n\t\t}\n\n\t\t/* Make sure the divider between the buttons looks fine when the button is focused */\n\t\t& > .ck-splitbutton__arrow:focus::after {\n\t\t\t--ck-color-split-button-hover-border: var(--ck-color-focus-border);\n\t\t}\n\n\t\t@nest [dir="ltr"] & {\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\t\tleft: -1px;\n\t\t\t}\n\t\t}\n\n\t\t@nest [dir="rtl"] & {\n\t\t\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\n\t\t\t\tright: -1px;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Don\'t round the bottom left and right corners of the buttons when "open"\n\thttps://github.com/ckeditor/ckeditor5/issues/816 */\n\t&.ck-splitbutton_open {\n\t\t@mixin ck-rounded-corners {\n\t\t\t& > .ck-splitbutton__action {\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t}\n\n\t\t\t& > .ck-splitbutton__arrow {\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},1666:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-toolbar-dropdown-max-width:60vw}.ck.ck-toolbar-dropdown>.ck-dropdown__panel{max-width:var(--ck-toolbar-dropdown-max-width);width:max-content}.ck.ck-toolbar-dropdown>.ck-dropdown__panel .ck-button:focus{z-index:calc(var(--ck-z-default) + 1)}.ck.ck-toolbar-dropdown .ck-toolbar{border:0}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/dropdown/toolbardropdown.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/toolbardropdown.css"],names:[],mappings:"AAKA,MACC,oCACD,CAEA,4CAGC,8CAA+C,CAD/C,iBAQD,CAJE,6DACC,qCACD,CCZF,oCACC,QACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-toolbar-dropdown-max-width: 60vw;\n}\n\n.ck.ck-toolbar-dropdown > .ck-dropdown__panel {\n\t/* https://github.com/ckeditor/ckeditor5/issues/5586 */\n\twidth: max-content;\n\tmax-width: var(--ck-toolbar-dropdown-max-width);\n\n\t& .ck-button {\n\t\t&:focus {\n\t\t\tz-index: calc(var(--ck-z-default) + 1);\n\t\t}\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-toolbar-dropdown .ck-toolbar {\n\tborder: 0;\n}\n"],sourceRoot:""}]);const a=s},8527:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-accessibility-help-dialog-max-width:600px;--ck-accessibility-help-dialog-max-height:400px;--ck-accessibility-help-dialog-border-color:#ccced1;--ck-accessibility-help-dialog-code-background-color:#ededed;--ck-accessibility-help-dialog-kbd-shadow-color:#9c9c9c}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content{border:1px solid transparent;max-height:var(--ck-accessibility-help-dialog-max-height);max-width:var(--ck-accessibility-help-dialog-max-width);overflow:auto;padding:var(--ck-spacing-large);user-select:text}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content{*{white-space:normal}}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content .ck-label{display:none}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3{font-size:1.2em;font-weight:700}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4{font-size:1em;font-weight:700}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content p,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content table{margin:1em 0}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl{border-bottom:none;border-top:1px solid var(--ck-accessibility-help-dialog-border-color);display:grid;grid-template-columns:2fr 1fr}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt{border-bottom:1px solid var(--ck-accessibility-help-dialog-border-color);padding:.4em 0}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt{grid-column-start:1}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd{grid-column-start:2;text-align:right}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd{background:var(--ck-accessibility-help-dialog-code-background-color);border-radius:2px;display:inline-block;font-size:.9em;line-height:1;padding:.4em;text-align:center;vertical-align:middle}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code{font-family:monospace}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd{box-shadow:0 1px 1px var(--ck-accessibility-help-dialog-kbd-shadow-color);margin:0 1px;min-width:1.8em}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd+kbd{margin-left:2px}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/editorui/accessibilityhelp.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAQA,MACC,8CAA+C,CAC/C,+CAAgD,CAChD,mDAA8D,CAC9D,4DAAyE,CACzE,uDACD,CAEA,wEAOC,4BAA6B,CAJ7B,yDAA0D,CAD1D,uDAAwD,CAExD,aAAc,CAHd,+BAAgC,CAIhC,gBAgFD,CA5EC,8ECdA,2BAA2B,CCF3B,2CAA8B,CDC9B,YDkBA,CAZD,wEAcC,EACC,kBACD,CAqED,CAlEC,kFACC,YACD,CAEA,2EAEC,eAAgB,CADhB,eAED,CAEA,2EAEC,aAAc,CADd,eAED,CAEA,8SAIC,YACD,CAEA,2EAIC,kBAAmB,CADnB,qEAAsE,CAFtE,YAAa,CACb,6BAiBD,CAbC,4JACC,wEAAyE,CACzE,cACD,CAEA,8EACC,mBACD,CAEA,8EACC,mBAAoB,CACpB,gBACD,CAGD,yJAEC,oEAAqE,CAIrE,iBAAkB,CALlB,oBAAqB,CAOrB,cAAe,CAHf,aAAc,CAFd,YAAa,CAIb,iBAAkB,CAHlB,qBAKD,CAEA,6EACC,qBACD,CAEA,4EAEC,yEAA4E,CAC5E,YAAa,CAFb,eAOD,CAHC,gFACC,eACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_focus.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-accessibility-help-dialog-max-width: 600px;\n\t--ck-accessibility-help-dialog-max-height: 400px;\n\t--ck-accessibility-help-dialog-border-color: hsl(220, 6%, 81%);\n\t--ck-accessibility-help-dialog-code-background-color: hsl(0deg 0% 92.94%);\n\t--ck-accessibility-help-dialog-kbd-shadow-color: hsl(0deg 0% 61%);\n}\n\n.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content {\n\tpadding: var(--ck-spacing-large);\n\tmax-width: var(--ck-accessibility-help-dialog-max-width);\n\tmax-height: var(--ck-accessibility-help-dialog-max-height);\n\toverflow: auto;\n\tuser-select: text;\n\n\tborder: 1px solid transparent;\n\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t}\n\n\t* {\n\t\twhite-space: normal;\n\t}\n\n\t/* Hide the main label of the content container. */\n\t& .ck-label {\n\t\tdisplay: none;\n\t}\n\n\t& h3 {\n\t\tfont-weight: bold;\n\t\tfont-size: 1.2em;\n\t}\n\n\t& h4 {\n\t\tfont-weight: bold;\n\t\tfont-size: 1em;\n\t}\n\n\t& p,\n\t& h3,\n\t& h4,\n\t& table {\n\t\tmargin: 1em 0;\n\t}\n\n\t& dl {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: 2fr 1fr;\n\t\tborder-top: 1px solid var(--ck-accessibility-help-dialog-border-color);\n\t\tborder-bottom: none;\n\n\t\t& dt, & dd {\n\t\t\tborder-bottom: 1px solid var(--ck-accessibility-help-dialog-border-color);\n\t\t\tpadding: .4em 0;\n\t\t}\n\n\t\t& dt {\n\t\t\tgrid-column-start: 1;\n\t\t}\n\n\t\t& dd {\n\t\t\tgrid-column-start: 2;\n\t\t\ttext-align: right;\n\t\t}\n\t}\n\n\t& kbd, & code {\n\t\tdisplay: inline-block;\n\t\tbackground: var(--ck-accessibility-help-dialog-code-background-color);\n\t\tpadding: .4em;\n\t\tvertical-align: middle;\n\t\tline-height: 1;\n\t\tborder-radius: 2px;\n\t\ttext-align: center;\n\t\tfont-size: .9em;\n\t}\n\n\t& code {\n\t\tfont-family: monospace;\n\t}\n\n\t& kbd {\n\t\tmin-width: 1.8em;\n\t\tbox-shadow: 0px 1px 1px var(--ck-accessibility-help-dialog-kbd-shadow-color);\n\t\tmargin: 0 1px;\n\n\t\t& + kbd {\n\t\t\tmargin-left: 2px;\n\t\t}\n\t}\n}\n\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},1185:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-editable-blur-selection:#d9d9d9}.ck.ck-editor__editable:not(.ck-editor__nested-editable){border-radius:0}.ck-rounded-corners .ck.ck-editor__editable:not(.ck-editor__nested-editable),.ck.ck-editor__editable.ck-rounded-corners:not(.ck-editor__nested-editable){border-radius:var(--ck-border-radius)}.ck.ck-editor__editable.ck-focused:not(.ck-editor__nested-editable){border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}.ck.ck-editor__editable_inline{border:1px solid transparent;overflow:auto;padding:0 var(--ck-spacing-standard)}.ck.ck-editor__editable_inline[dir=ltr]{text-align:left}.ck.ck-editor__editable_inline[dir=rtl]{text-align:right}.ck.ck-editor__editable_inline>:first-child{margin-top:var(--ck-spacing-large)}.ck.ck-editor__editable_inline>:last-child{margin-bottom:var(--ck-spacing-large)}.ck.ck-editor__editable_inline.ck-blurred ::selection{background:var(--ck-color-editable-blur-selection)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_n]:after{border-bottom-color:var(--ck-color-panel-background)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_s]:after{border-top-color:var(--ck-color-panel-background)}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/editorui/editorui.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAWA,MACC,0CACD,CAEA,yDCJC,eDWD,CAPA,yJCAE,qCDOF,CAJC,oEEPA,2BAA2B,CCF3B,qCAA8B,CDC9B,YFWA,CAGD,+BAGC,4BAA6B,CAF7B,aAAc,CACd,oCA6BD,CA1BC,wCACC,eACD,CAEA,wCACC,gBACD,CAGA,4CACC,kCACD,CAGA,2CAKC,qCACD,CAGA,sDACC,kDACD,CAKA,gEACC,oDACD,CAIA,gEACC,iDACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_shadow.css";\n@import "../../../mixins/_focus.css";\n@import "../../mixins/_button.css";\n\n:root {\n\t--ck-color-editable-blur-selection: hsl(0, 0%, 85%);\n}\n\n.ck.ck-editor__editable:not(.ck-editor__nested-editable) {\n\t@mixin ck-rounded-corners;\n\n\t&.ck-focused {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-inner-shadow);\n\t}\n}\n\n.ck.ck-editor__editable_inline {\n\toverflow: auto;\n\tpadding: 0 var(--ck-spacing-standard);\n\tborder: 1px solid transparent;\n\n\t&[dir="ltr"] {\n\t\ttext-align: left;\n\t}\n\n\t&[dir="rtl"] {\n\t\ttext-align: right;\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/116 */\n\t& > *:first-child {\n\t\tmargin-top: var(--ck-spacing-large);\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5/issues/847 */\n\t& > *:last-child {\n\t\t/*\n\t\t * This value should match with the default margins of the block elements (like .media or .image)\n\t\t * to avoid a content jumping when the fake selection container shows up (See https://github.com/ckeditor/ckeditor5/issues/9825).\n\t\t */\n\t\tmargin-bottom: var(--ck-spacing-large);\n\t}\n\n\t/* https://github.com/ckeditor/ckeditor5/issues/6517 */\n\t&.ck-blurred ::selection {\n\t\tbackground: var(--ck-color-editable-blur-selection);\n\t}\n}\n\n/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/111 */\n.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_n"] {\n\t&::after {\n\t\tborder-bottom-color: var(--ck-color-panel-background);\n\t}\n}\n\n.ck.ck-balloon-panel.ck-toolbar-container[class*="arrow_s"] {\n\t&::after {\n\t\tborder-top-color: var(--ck-color-panel-background);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},7913:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-form__header{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}.ck.ck-form__header h2.ck-form__header__label{flex-grow:1}:root{--ck-form-header-height:44px}.ck.ck-form__header{border-bottom:1px solid var(--ck-color-base-border);height:var(--ck-form-header-height);line-height:var(--ck-form-header-height);padding:var(--ck-spacing-small) var(--ck-spacing-large)}[dir=ltr] .ck.ck-form__header>.ck-icon{margin-right:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-form__header>.ck-icon{margin-left:var(--ck-spacing-medium)}.ck.ck-form__header .ck-form__header__label{--ck-font-size-base:15px;font-weight:700}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/formheader/formheader.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/formheader/formheader.css"],names:[],mappings:"AAKA,oBAIC,kBAAmB,CAHnB,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CAEjB,6BAKD,CAHC,8CACC,WACD,CCPD,MACC,4BACD,CAEA,oBAIC,mDAAoD,CAFpD,mCAAoC,CACpC,wCAAyC,CAFzC,uDAmBD,CAdC,uCAEE,qCAMF,CARA,uCAME,oCAEF,CAEA,4CACC,wBAAyB,CACzB,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-form__header {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\talign-items: center;\n\tjustify-content: space-between;\n\n\t& h2.ck-form__header__label {\n\t\tflex-grow: 1;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n:root {\n\t--ck-form-header-height: 44px;\n}\n\n.ck.ck-form__header {\n\tpadding: var(--ck-spacing-small) var(--ck-spacing-large);\n\theight: var(--ck-form-header-height);\n\tline-height: var(--ck-form-header-height);\n\tborder-bottom: 1px solid var(--ck-color-base-border);\n\n\t& > .ck-icon {\n\t\t@mixin ck-dir ltr {\n\t\t\tmargin-right: var(--ck-spacing-medium);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tmargin-left: var(--ck-spacing-medium);\n\t\t}\n\t}\n\n\t& .ck-form__header__label {\n\t\t--ck-font-size-base: 15px;\n\t\tfont-weight: bold;\n\t}\n}\n'],sourceRoot:""}]);const a=s},9529:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-highlighted-text mark{background:var(--ck-color-highlight-background);font-size:inherit;font-weight:inherit;line-height:inherit;vertical-align:initial}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/highlightedtext/highlightedtext.css"],names:[],mappings:"AAKA,6BACC,+CAAgD,CAIhD,iBAAkB,CAFlB,mBAAoB,CACpB,mBAAoB,CAFpB,sBAID",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-highlighted-text mark {\n\tbackground: var(--ck-color-highlight-background);\n\tvertical-align: initial;\n\tfont-weight: inherit;\n\tline-height: inherit;\n\tfont-size: inherit;\n}\n"],sourceRoot:""}]);const a=s},7621:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-icon{vertical-align:middle}:root{--ck-icon-size:calc(var(--ck-line-height-base)*var(--ck-font-size-normal))}.ck.ck-icon{font-size:.8333350694em;height:var(--ck-icon-size);width:var(--ck-icon-size);will-change:transform}.ck.ck-icon,.ck.ck-icon *{cursor:inherit}.ck.ck-icon.ck-icon_inherit-color,.ck.ck-icon.ck-icon_inherit-color *{color:inherit}.ck.ck-icon.ck-icon_inherit-color :not([fill]){fill:currentColor}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/icon/icon.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/icon/icon.css"],names:[],mappings:"AAKA,YACC,qBACD,CCFA,MACC,0EACD,CAEA,YAKC,uBAAwB,CAHxB,0BAA2B,CAD3B,yBAA0B,CAU1B,qBAoBD,CAlBC,0BALA,cAQA,CAMC,sEACC,aAMD,CAJC,+CAEC,iBACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-icon {\n\tvertical-align: middle;\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-icon-size: calc(var(--ck-line-height-base) * var(--ck-font-size-normal));\n}\n\n.ck.ck-icon {\n\twidth: var(--ck-icon-size);\n\theight: var(--ck-icon-size);\n\n\t/* Multiplied by the height of the line in "px" should give SVG "viewport" dimensions */\n\tfont-size: .8333350694em;\n\n\t/* Inherit cursor style (#5). */\n\tcursor: inherit;\n\n\t/* This will prevent blurry icons on Firefox. See #340. */\n\twill-change: transform;\n\n\t& * {\n\t\t/* Inherit cursor style (#5). */\n\t\tcursor: inherit;\n\t}\n\n\t/* Allows dynamic coloring of an icon by inheriting its color from the parent. */\n\t&.ck-icon_inherit-color {\n\t\tcolor: inherit;\n\n\t\t& * {\n\t\t\tcolor: inherit;\n\n\t\t\t&:not([fill]) {\n\t\t\t\t/* Needed by FF. */\n\t\t\t\tfill: currentColor;\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},253:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-input-width:18em;--ck-input-text-width:var(--ck-input-width)}.ck.ck-input{border-radius:0}.ck-rounded-corners .ck.ck-input,.ck.ck-input.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input{background:var(--ck-color-input-background);border:1px solid var(--ck-color-input-border);min-height:var(--ck-ui-component-min-height);min-width:var(--ck-input-width);padding:var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);transition:box-shadow .1s ease-in-out,border .1s ease-in-out}@media (prefers-reduced-motion:reduce){.ck.ck-input{transition:none}}.ck.ck-input:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-input[readonly]{background:var(--ck-color-input-disabled-background);border:1px solid var(--ck-color-input-disabled-border);color:var(--ck-color-input-disabled-text)}.ck.ck-input[readonly]:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-input.ck-error{animation:ck-input-shake .3s ease both;border-color:var(--ck-color-input-error-border)}@media (prefers-reduced-motion:reduce){.ck.ck-input.ck-error{animation:none}}.ck.ck-input.ck-error:focus{box-shadow:var(--ck-focus-error-outer-shadow),0 0}@keyframes ck-input-shake{20%{transform:translateX(-2px)}40%{transform:translateX(2px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/input/input.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AASA,MACC,qBAAsB,CAGtB,2CACD,CAEA,aCLC,eDmDD,CA9CA,iECDE,qCD+CF,CA9CA,aAGC,2CAA4C,CAC5C,6CAA8C,CAK9C,4CAA6C,CAH7C,+BAAgC,CADhC,6DAA8D,CAO9D,4DAkCD,CAhCC,uCAdD,aAeE,eA+BF,CA9BC,CAEA,mBEvBA,2BAA2B,CCF3B,2CAA8B,CDC9B,YF2BA,CAEA,uBAEC,oDAAqD,CADrD,sDAAuD,CAEvD,yCAMD,CAJC,6BGnCD,oDHsCC,CAGD,sBAEC,sCAAuC,CADvC,+CAUD,CAPC,uCAJD,sBAKE,cAMF,CALC,CAEA,4BGjDD,iDHmDC,CAIF,0BACC,IACC,0BACD,CAEA,IACC,yBACD,CAEA,IACC,0BACD,CAEA,IACC,yBACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_focus.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-input-width: 18em;\n\n\t/* Backward compatibility. */\n\t--ck-input-text-width: var(--ck-input-width);\n}\n\n.ck.ck-input {\n\t@mixin ck-rounded-corners;\n\n\tbackground: var(--ck-color-input-background);\n\tborder: 1px solid var(--ck-color-input-border);\n\tpadding: var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);\n\tmin-width: var(--ck-input-width);\n\n\t/* This is important to stay of the same height as surrounding buttons */\n\tmin-height: var(--ck-ui-component-min-height);\n\n\t/* Apply some smooth transition to the box-shadow and border. */\n\ttransition: box-shadow .1s ease-in-out, border .1s ease-in-out;\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: none;\n\t}\n\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\n\t}\n\n\t&[readonly] {\n\t\tborder: 1px solid var(--ck-color-input-disabled-border);\n\t\tbackground: var(--ck-color-input-disabled-background);\n\t\tcolor: var(--ck-color-input-disabled-text);\n\n\t\t&:focus {\n\t\t\t/* The read-only input should have a slightly less visible shadow when focused. */\n\t\t\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\n\t\t}\n\t}\n\n\t&.ck-error {\n\t\tborder-color: var(--ck-color-input-error-border);\n\t\tanimation: ck-input-shake .3s ease both;\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\tanimation: none;\n\t\t}\n\n\t\t&:focus {\n\t\t\t@mixin ck-box-shadow var(--ck-focus-error-outer-shadow);\n\t\t}\n\t}\n}\n\n@keyframes ck-input-shake {\n\t20% {\n\t\ttransform: translateX(-2px);\n\t}\n\n\t40% {\n\t\ttransform: translateX(2px);\n\t}\n\n\t60% {\n\t\ttransform: translateX(-1px);\n\t}\n\n\t80% {\n\t\ttransform: translateX(1px);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},7801:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-label{display:block}.ck.ck-voice-label{display:none}.ck.ck-label{font-weight:700}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/label/label.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/label/label.css"],names:[],mappings:"AAKA,aACC,aACD,CAEA,mBACC,YACD,CCNA,aACC,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-label {\n\tdisplay: block;\n}\n\n.ck.ck-voice-label {\n\tdisplay: none;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-label {\n\tfont-weight: bold;\n}\n"],sourceRoot:""}]);const a=s},4962:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{display:flex;position:relative}.ck.ck-labeled-field-view .ck.ck-label{display:block;position:absolute}:root{--ck-labeled-field-view-transition:.1s cubic-bezier(0,0,0.24,0.95);--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-spacing-medium);--ck-labeled-field-label-default-position-x:var(--ck-spacing-medium);--ck-labeled-field-label-default-position-y:calc(var(--ck-font-size-base)*0.6);--ck-color-labeled-field-label-background:var(--ck-color-base-background)}.ck.ck-labeled-field-view{border-radius:0}.ck-rounded-corners .ck.ck-labeled-field-view,.ck.ck-labeled-field-view.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{width:100%}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{top:0}[dir=ltr] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{left:0;transform:translate(var(--ck-spacing-medium),-6px) scale(.75);transform-origin:0 0}[dir=rtl] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{right:0;transform:translate(calc(var(--ck-spacing-medium)*-1),-6px) scale(.75);transform-origin:100% 0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:var(--ck-color-labeled-field-label-background);font-weight:400;line-height:normal;max-width:100%;overflow:hidden;padding:0 calc(var(--ck-font-size-tiny)*.5);pointer-events:none;text-overflow:ellipsis;transition:transform var(--ck-labeled-field-view-transition),padding var(--ck-labeled-field-view-transition),background var(--ck-labeled-field-view-transition)}@media (prefers-reduced-motion:reduce){.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transition:none}}.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly])+.ck.ck-label,.ck.ck-labeled-field-view.ck-error>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view .ck-labeled-field-view__status{font-size:var(--ck-font-size-small);margin-top:var(--ck-spacing-small);white-space:normal}.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-input-disabled-text)}[dir=ltr] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=ltr] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(var(--ck-labeled-field-label-default-position-x),var(--ck-labeled-field-label-default-position-y)) scale(1)}[dir=rtl] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=rtl] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(calc(var(--ck-labeled-field-label-default-position-x)*-1),var(--ck-labeled-field-label-default-position-y)) scale(1)}.ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:transparent;max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width));padding:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck.ck-button{background:transparent}.ck.ck-labeled-field-view.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck-button>.ck-button__label{opacity:0}.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown+.ck-label{max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard))}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/labeledfield/labeledfieldview.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAMC,mEACC,YAAa,CACb,iBACD,CAEA,uCACC,aAAc,CACd,iBACD,CCND,MACC,kEAAsE,CACtE,gFAAiF,CACjF,oEAAqE,CACrE,8EAAiF,CACjF,yEACD,CAEA,0BCLC,eDmHD,CA9GA,2FCDE,qCD+GF,CA3GC,mEACC,UAwCD,CAtCC,gFACC,KAoCD,CArCA,0FAIE,MAAS,CAGT,6DAA+D,CAF/D,oBAgCF,CArCA,0FAWE,OAAU,CAEV,sEAA0E,CAD1E,uBAyBF,CArCA,gFAkBC,yDAA0D,CAG1D,eAAmB,CADnB,kBAAoB,CAOpB,cAAe,CAFf,eAAgB,CANhB,2CAA8C,CAH9C,mBAAoB,CAQpB,sBAAuB,CAKvB,+JAQD,CAHC,uCAlCD,gFAmCE,eAEF,CADC,CASD,mKACC,gCACD,CAGD,yDACC,mCAAoC,CACpC,kCAAmC,CAInC,kBAKD,CAHC,6FACC,gCACD,CAID,4OAEC,yCACD,CAIA,2XAGE,+HAYF,CAfA,2XAOE,wIAQF,CAfA,uWAaC,sBAAuB,CAFvB,iEAAkE,CAGlE,SACD,CAKA,8FACC,sBACD,CAGA,yIACC,SACD,CAGA,kMACC,8HACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-labeled-field-view {\n\t& > .ck.ck-labeled-field-view__input-wrapper {\n\t\tdisplay: flex;\n\t\tposition: relative;\n\t}\n\n\t& .ck.ck-label {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n@import "../../../mixins/_rounded.css";\n\n:root {\n\t--ck-labeled-field-view-transition: .1s cubic-bezier(0, 0, 0.24, 0.95);\n\t--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-spacing-medium);\n\t--ck-labeled-field-label-default-position-x: var(--ck-spacing-medium);\n\t--ck-labeled-field-label-default-position-y: calc(0.6 * var(--ck-font-size-base));\n\t--ck-color-labeled-field-label-background: var(--ck-color-base-background);\n}\n\n.ck.ck-labeled-field-view {\n\t@mixin ck-rounded-corners;\n\n\t& > .ck.ck-labeled-field-view__input-wrapper {\n\t\twidth: 100%;\n\n\t\t& > .ck.ck-label {\n\t\t\ttop: 0px;\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tleft: 0px;\n\t\t\t\ttransform-origin: 0 0;\n\t\t\t\t/* By default, display the label scaled down above the field. */\n\t\t\t\ttransform: translate(var(--ck-spacing-medium), -6px) scale(.75);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tright: 0px;\n\t\t\t\ttransform-origin: 100% 0;\n\t\t\t\ttransform: translate(calc(-1 * var(--ck-spacing-medium)), -6px) scale(.75);\n\t\t\t}\n\n\t\t\tpointer-events: none;\n\n\t\t\tbackground: var(--ck-color-labeled-field-label-background);\n\t\t\tpadding: 0 calc(.5 * var(--ck-font-size-tiny));\n\t\t\tline-height: initial;\n\t\t\tfont-weight: normal;\n\n\t\t\t/* Prevent overflow when the label is longer than the input */\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\n\t\t\tmax-width: 100%;\n\n\t\t\ttransition:\n\t\t\t\ttransform var(--ck-labeled-field-view-transition),\n\t\t\t\tpadding var(--ck-labeled-field-view-transition),\n\t\t\t\tbackground var(--ck-labeled-field-view-transition);\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\ttransition: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t&.ck-error {\n\t\t& > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\n\t\t& .ck-input:not([readonly]) + .ck.ck-label {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\t}\n\n\t& .ck-labeled-field-view__status {\n\t\tfont-size: var(--ck-font-size-small);\n\t\tmargin-top: var(--ck-spacing-small);\n\n\t\t/* Let the info wrap to the next line to avoid stretching the layout horizontally.\n\t\tThe status could be very long. */\n\t\twhite-space: normal;\n\n\t\t&.ck-labeled-field-view__status_error {\n\t\t\tcolor: var(--ck-color-base-error);\n\t\t}\n\t}\n\n\t/* Disabled fields and fields that have no focus should fade out. */\n\t&.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\tcolor: var(--ck-color-input-disabled-text);\n\t}\n\n\t/* Fields that are disabled or not focused and without a placeholder should have full-sized labels. */\n\t/* stylelint-disable-next-line no-descending-specificity */\n\t&.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\n\t\t@mixin ck-dir ltr {\n\t\t\ttransform: translate(var(--ck-labeled-field-label-default-position-x), var(--ck-labeled-field-label-default-position-y)) scale(1);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttransform: translate(calc(-1 * var(--ck-labeled-field-label-default-position-x)), var(--ck-labeled-field-label-default-position-y)) scale(1);\n\t\t}\n\n\t\t/* Compensate for the default translate position. */\n\t\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width));\n\n\t\tbackground: transparent;\n\t\tpadding: 0;\n\t}\n\n\t/*------ DropdownView integration ----------------------------------------------------------------------------------- */\n\n\t/* Make sure dropdown\' background color in any of dropdown\'s state does not collide with labeled field. */\n\t& > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck.ck-button {\n\t\tbackground: transparent;\n\t}\n\n\t/* When the dropdown is "empty", the labeled field label replaces its label. */\n\t&.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck-button > .ck-button__label {\n\t\topacity: 0;\n\t}\n\n\t/* Make sure the label of the empty, unfocused input does not cover the dropdown arrow. */\n\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown + .ck-label {\n\t\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard));\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},5199:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-list{display:flex;flex-direction:column;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-list .ck-list__item,.ck.ck-list .ck-list__separator{display:block}.ck.ck-list .ck-list__item>:focus{position:relative;z-index:var(--ck-z-default)}:root{--ck-list-button-padding:calc(var(--ck-line-height-base)*0.11*var(--ck-font-size-base)) calc(var(--ck-line-height-base)*0.4*var(--ck-font-size-base))}.ck.ck-list{border-radius:0}.ck-rounded-corners .ck.ck-list,.ck.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-list{background:var(--ck-color-list-background);list-style-type:none}.ck.ck-list__item{cursor:default;min-width:12em}.ck.ck-list__item>.ck-button{border-radius:0;min-height:unset;width:100%}[dir=ltr] .ck.ck-list__item>.ck-button{text-align:left}[dir=rtl] .ck.ck-list__item>.ck-button{text-align:right}.ck.ck-list__item>.ck-button{padding:var(--ck-list-button-padding)}.ck.ck-list__item>.ck-button:active{box-shadow:none}.ck.ck-list__item>.ck-button.ck-on{background:var(--ck-color-list-button-on-background);color:var(--ck-color-list-button-on-text)}.ck.ck-list__item>.ck-button.ck-on:active{box-shadow:none}.ck.ck-list__item>.ck-button.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-on-background-focus)}.ck.ck-list__item>.ck-button.ck-on:focus:not(.ck-switchbutton):not(.ck-disabled){border-color:var(--ck-color-base-background)}.ck.ck-list__item>.ck-button:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background)}.ck.ck-list__item>.ck-switchbutton.ck-on{background:var(--ck-color-list-background);color:inherit}.ck.ck-list__item>.ck-switchbutton.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background);color:inherit}.ck-list .ck-list__group{padding-top:var(--ck-spacing-medium);:not(.ck-hidden)~&{border-top:1px solid var(--ck-color-base-border)}}.ck-list .ck-list__group>.ck-label{font-size:11px;font-weight:700;padding:var(--ck-spacing-medium) var(--ck-spacing-medium) 0 var(--ck-spacing-medium)}.ck.ck-list__separator{background:var(--ck-color-base-border);height:1px;width:100%}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/list/list.css","webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/list/list.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,YAGC,YAAa,CACb,qBAAsB,CCFtB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBDaD,CAZC,2DAEC,aACD,CAKA,kCACC,iBAAkB,CAClB,2BACD,CEdD,MACC,qJAGD,CAEA,YCLC,eDUD,CALA,+DCDE,qCDMF,CALA,YAIC,0CAA2C,CAD3C,oBAED,CAEA,kBACC,cAAe,CACf,cA2DD,CAzDC,6BAGC,eAAgB,CAFhB,gBAAiB,CACjB,UAwCD,CA1CA,uCAME,eAoCF,CA1CA,uCAUE,gBAgCF,CA1CA,6BAgBC,qCA0BD,CAxBC,oCACC,eACD,CAEA,mCACC,oDAAqD,CACrD,yCAaD,CAXC,0CACC,eACD,CAEA,2DACC,0DACD,CAEA,iFACC,4CACD,CAGD,qDACC,uDACD,CAMA,yCACC,0CAA2C,CAC3C,aAMD,CAJC,iEACC,uDAAwD,CACxD,aACD,CAKH,yBACC,oCAAqC,CAGrC,mBACC,gDACD,CAOD,CALC,mCACC,cAAe,CACf,eAAiB,CACjB,oFACD,CAGD,uBAGC,sCAAuC,CAFvC,UAAW,CACX,UAED",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-list {\n\t@mixin ck-unselectable;\n\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t& .ck-list__item,\n\t& .ck-list__separator {\n\t\tdisplay: block;\n\t}\n\n\t/* Make sure that whatever child of the list item gets focus, it remains on the\n\ttop. Thanks to that, styles like box-shadow, outline, etc. are not masked by\n\tadjacent list items. */\n\t& .ck-list__item > *:focus {\n\t\tposition: relative;\n\t\tz-index: var(--ck-z-default);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_disabled.css";\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n:root {\n\t--ck-list-button-padding:\n\t\tcalc(.11 * var(--ck-line-height-base) * var(--ck-font-size-base))\n\t\tcalc(.4 * var(--ck-line-height-base) * var(--ck-font-size-base));\n}\n\n.ck.ck-list {\n\t@mixin ck-rounded-corners;\n\n\tlist-style-type: none;\n\tbackground: var(--ck-color-list-background);\n}\n\n.ck.ck-list__item {\n\tcursor: default;\n\tmin-width: 12em;\n\n\t& > .ck-button {\n\t\tmin-height: unset;\n\t\twidth: 100%;\n\t\tborder-radius: 0;\n\n\t\t@mixin ck-dir ltr {\n\t\t\ttext-align: left;\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\ttext-align: right;\n\t\t}\n\n\t\t/* List items should have the same height. Use absolute units to make sure it is so\n\t\t because e.g. different heading styles may have different height\n\t\t https://github.com/ckeditor/ckeditor5-heading/issues/63 */\n\t\tpadding: var(--ck-list-button-padding);\n\n\t\t&:active {\n\t\t\tbox-shadow: none;\n\t\t}\n\n\t\t&.ck-on {\n\t\t\tbackground: var(--ck-color-list-button-on-background);\n\t\t\tcolor: var(--ck-color-list-button-on-text);\n\n\t\t\t&:active {\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n\n\t\t\t&:hover:not(.ck-disabled) {\n\t\t\t\tbackground: var(--ck-color-list-button-on-background-focus);\n\t\t\t}\n\n\t\t\t&:focus:not(.ck-switchbutton):not(.ck-disabled) {\n\t\t\t\tborder-color: var(--ck-color-base-background);\n\t\t\t}\n\t\t}\n\n\t\t&:hover:not(.ck-disabled) {\n\t\t\tbackground: var(--ck-color-list-button-hover-background);\n\t\t}\n\t}\n\n\t/* It\'s unnecessary to change the background/text of a switch toggle; it has different ways\n\tof conveying its state (like the switcher) */\n\t& > .ck-switchbutton {\n\t\t&.ck-on {\n\t\t\tbackground: var(--ck-color-list-background);\n\t\t\tcolor: inherit;\n\n\t\t\t&:hover:not(.ck-disabled) {\n\t\t\t\tbackground: var(--ck-color-list-button-hover-background);\n\t\t\t\tcolor: inherit;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck-list .ck-list__group {\n\tpadding-top: var(--ck-spacing-medium);\n\n\t/* The group should have a border when it\'s not the first item. */\n\t*:not(.ck-hidden) ~ & {\n\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t}\n\n\t& > .ck-label {\n\t\tfont-size: 11px;\n\t\tfont-weight: bold;\n\t\tpadding: var(--ck-spacing-medium) var(--ck-spacing-medium) 0 var(--ck-spacing-medium);\n\t}\n}\n\n.ck.ck-list__separator {\n\theight: 1px;\n\twidth: 100%;\n\tbackground: var(--ck-color-base-border);\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},497:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-menu-bar{background:var(--ck-color-base-background);border:1px solid var(--ck-color-toolbar-border);display:flex;flex-wrap:wrap;gap:var(--ck-spacing-small);justify-content:flex-start;padding:var(--ck-spacing-small);width:100%}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubar.css"],names:[],mappings:"AAKA,gBAIC,0CAA2C,CAG3C,+CAAgD,CANhD,YAAa,CACb,cAAe,CAIf,2BAA4B,CAH5B,0BAA2B,CAE3B,+BAAgC,CAGhC,UACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-menu-bar {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tjustify-content: flex-start;\n\tbackground: var(--ck-color-base-background);\n\tpadding: var(--ck-spacing-small);\n\tgap: var(--ck-spacing-small);\n\tborder: 1px solid var(--ck-color-toolbar-border);\n\twidth: 100%;\n}\n"],sourceRoot:""}]);const a=s},4:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-menu-bar__menu{display:block;font-size:inherit;position:relative}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level{max-width:100%}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/menubar/menubarmenu.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenu.css"],names:[],mappings:"AAKA,sBACC,aAAc,CCCd,iBAAkB,CDAlB,iBACD,CCCC,kDACC,cACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-menu-bar__menu {\n\tdisplay: block;\n\tposition: relative;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-menu-bar__menu {\n\t/* Enable font size inheritance, which allows fluid UI scaling. */\n\tfont-size: inherit;\n\n\t&.ck-menu-bar__menu_top-level {\n\t\tmax-width: 100%;\n\t}\n}\n"],sourceRoot:""}]);const a=s},3344:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-menu-bar__menu>.ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button{padding:var(--ck-list-button-padding);width:100%}.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button>.ck-button__label{flex-grow:1;overflow:hidden;text-overflow:ellipsis}.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button.ck-disabled>.ck-button__label{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-menu-bar__menu>.ck-menu-bar__menu__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-menu-bar__menu>.ck-menu-bar__menu__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button{min-height:unset;padding:var(--ck-spacing-small) var(--ck-spacing-medium)}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button .ck-button__label{line-height:unset;width:unset}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button .ck-icon{display:none}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button{border-radius:0}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button:focus{border-color:transparent;box-shadow:none}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button:focus:not(.ck-on){background:var(--ck-color-button-default-hover-background)}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button:not(:has(.ck-button__icon))>.ck-button__label{margin-left:calc(var(--ck-icon-size) - var(--ck-spacing-small))}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{transform:rotate(-90deg)}[dir=rtl] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{transform:rotate(90deg)}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button.ck-disabled>.ck-menu-bar__menu__button__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{margin-left:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/menubar/menubarmenubutton.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenubutton.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css"],names:[],mappings:"AAMC,mFACC,mBAAoB,CACpB,2BACD,CCIA,iDACC,qCAAsC,CACtC,UAuBD,CArBC,mEACC,WAAY,CACZ,eAAgB,CAChB,sBACD,CAEA,+ECdD,kCDgBC,CAGC,qFACC,oCACD,CAIA,qFACC,qCACD,CAOF,6EAEC,gBAAiB,CADjB,wDAgBD,CAbC,+FAEC,iBAAkB,CADlB,WAED,CAEA,mFACC,2BAA4B,CAC5B,4BACD,CAEA,sFACC,YACD,CAMD,mFACC,eAiDD,CA/CC,yFACC,wBAAyB,CACzB,eAKD,CAHC,qGACC,0DACD,CAID,iIACC,+DACD,CAEA,qHACC,mCASD,CAVA,+HAIE,wBAMF,CAVA,+HAQE,uBAEF,CAEA,iICrFD,kCDuFC,CAGC,+HAIC,sCAAuC,CAHvC,gCAID,CAIA,+HACC,+BAAgC,CAGhC,oCACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-menu-bar__menu {\n\t& > .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow {\n\t\tpointer-events: none;\n\t\tz-index: var(--ck-z-default);\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_disabled.css";\n@import "../../mixins/_button.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-menu-bar__menu {\n\t/*\n\t * All menu buttons.\n\t */\n\t& > .ck-menu-bar__menu__button {\n\t\tpadding: var(--ck-list-button-padding);\n\t\twidth: 100%;\n\n\t\t& > .ck-button__label {\n\t\t\tflex-grow: 1;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\n\t\t&.ck-disabled > .ck-button__label {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t@mixin ck-dir ltr {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\tpadding-left: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t&:not(.ck-button_with-text) {\n\t\t\t\tpadding-right: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Top-level menu buttons only.\n\t */\n\t&.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button {\n\t\tpadding: var(--ck-spacing-small) var(--ck-spacing-medium);\n\t\tmin-height: unset;\n\n\t\t& .ck-button__label {\n\t\t\twidth: unset;\n\t\t\tline-height: unset;\n\t\t}\n\n\t\t&.ck-on {\n\t\t\tborder-bottom-left-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t& .ck-icon {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t/*\n\t * Sub-menu buttons.\n\t */\n\t&:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button {\n\t\tborder-radius: 0;\n\n\t\t&:focus {\n\t\t\tborder-color: transparent;\n\t\t\tbox-shadow: none;\n\n\t\t\t&:not(.ck-on) {\n\t\t\t\tbackground: var(--ck-color-button-default-hover-background);\n\t\t\t}\n\t\t}\n\n\t\t/* Spacing in buttons that miss the icon. */\n\t\t&:not(:has(.ck-button__icon)) > .ck-button__label {\n\t\t\tmargin-left: calc(var(--ck-icon-size) - var(--ck-spacing-small));\n\t\t}\n\n\t\t& > .ck-menu-bar__menu__button__arrow {\n\t\t\twidth: var(--ck-dropdown-arrow-size);\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\ttransform: rotate(-90deg);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\ttransform: rotate(90deg);\n\t\t\t}\n\t\t}\n\n\t\t&.ck-disabled > .ck-menu-bar__menu__button__arrow {\n\t\t\t@mixin ck-disabled;\n\t\t}\n\n\t\t@mixin ck-dir ltr {\n\t\t\t& > .ck-menu-bar__menu__button__arrow {\n\t\t\t\tright: var(--ck-spacing-standard);\n\n\t\t\t\t/* A space to accommodate the triangle. */\n\t\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t\t}\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\t& > .ck-menu-bar__menu__button__arrow {\n\t\t\t\tleft: var(--ck-spacing-standard);\n\n\t\t\t\t/* A space to accommodate the triangle. */\n\t\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which indicates that an element holding it is disabled.\n */\n@define-mixin ck-disabled {\n\topacity: var(--ck-disabled-opacity);\n}\n"],sourceRoot:""}]);const a=s},9481:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-menu-bar-menu-item-min-width:18em}.ck.ck-menu-bar__menu .ck.ck-menu-bar__menu__item{min-width:var(--ck-menu-bar-menu-item-min-width)}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenulistitem.css"],names:[],mappings:"AAKA,MACC,sCACD,CAEA,kDACC,gDACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-menu-bar-menu-item-min-width: 18em;\n}\n\n.ck.ck-menu-bar__menu .ck.ck-menu-bar__menu__item {\n\tmin-width: var(--ck-menu-bar-menu-item-min-width);\n}\n"],sourceRoot:""}]);const a=s},977:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button{border-radius:0}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container,.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container .ck-spinner{--ck-toolbar-spinner-size:20px}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container{margin-left:calc(var(--ck-spacing-small)*-1);margin-right:var(--ck-spacing-small)}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button:focus{border-color:transparent;box-shadow:none}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button:focus:not(.ck-on){background:var(--ck-color-button-default-hover-background)}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__panel>ul>.ck-menu-bar__menu__item>.ck-menu-bar__menu__item__button:not(:has(.ck-button__icon))>.ck-button__label{margin-left:calc(var(--ck-icon-size) - var(--ck-spacing-small))}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenulistitembutton.css"],names:[],mappings:"AASC,iEACC,eA0BD,CAxBC,0LAGC,8BACD,CAEA,uFAEC,4CAA+C,CAC/C,oCACD,CAMA,uEACC,wBAAyB,CACzB,eAKD,CAHC,mFACC,0DACD,CASD,uLACC,+DACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-menu-bar__menu {\n\t/*\n\t * List item buttons.\n\t */\n\t& .ck-button.ck-menu-bar__menu__item__button {\n\t\tborder-radius: 0;\n\n\t\t& > .ck-spinner-container,\n\t\t& > .ck-spinner-container .ck-spinner {\n\t\t\t/* These styles correspond to .ck-icon so that the spinner seamlessly replaces the icon. */\n\t\t\t--ck-toolbar-spinner-size: 20px;\n\t\t}\n\n\t\t& > .ck-spinner-container {\n\t\t\t/* These margins are the same as for .ck-icon. */\n\t\t\tmargin-left: calc(-1 * var(--ck-spacing-small));\n\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t}\n\n\t\t/*\n\t\t * Hovered items automatically get focused. Default focus styles look odd\n\t\t * while moving across a huge list of items so let's get rid of them\n\t\t */\n\t\t&:focus {\n\t\t\tborder-color: transparent;\n\t\t\tbox-shadow: none;\n\n\t\t\t&:not(.ck-on) {\n\t\t\t\tbackground: var(--ck-color-button-default-hover-background);\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * First-level sub-menu item buttons.\n\t */\n\t&.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__panel > ul > .ck-menu-bar__menu__item > .ck-menu-bar__menu__item__button {\n\t\t/* Spacing in buttons that miss the icon. */\n\t\t&:not(:has(.ck-button__icon)) > .ck-button__label {\n\t\t\tmargin-left: calc(var(--ck-icon-size) - var(--ck-spacing-small));\n\t\t}\n\t}\n}\n\n\n"],sourceRoot:""}]);const a=s},9108:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-menu-bar-menu-max-width:75vw;--ck-menu-bar-nested-menu-horizontal-offset:5px}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel{max-width:var(--ck-menu-bar-menu-max-width);position:absolute;z-index:var(--ck-z-panel)}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw{bottom:100%}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw{bottom:auto;top:100%}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se{left:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw{right:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es{left:calc(100% - var(--ck-menu-bar-nested-menu-horizontal-offset))}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es{top:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en{bottom:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws{right:calc(100% - var(--ck-menu-bar-nested-menu-horizontal-offset))}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws{top:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn{bottom:0}:root{--ck-menu-bar-menu-panel-max-width:75vw}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel{border-radius:0}.ck-rounded-corners .ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:0;box-shadow:var(--ck-drop-shadow),0 0;height:fit-content;max-width:var(--ck-menu-bar-menu-panel-max-width)}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se{border-top-left-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws{border-top-right-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne{border-bottom-left-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn{border-bottom-right-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel:focus{outline:none}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/menubar/menubarmenupanel.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenupanel.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,MACC,iCAAkC,CAClC,+CACD,CAEA,mDAEC,2CAA4C,CAC5C,iBAAkB,CAFlB,yBAkDD,CA9CC,gLAEC,WACD,CAEA,gLAGC,WAAY,CADZ,QAED,CAEA,gLAEC,MACD,CAEA,gLAEC,OACD,CAEA,gLAEC,kEACD,CAEA,wFACC,KACD,CAEA,wFACC,QACD,CAEA,gLAEC,mEACD,CAEA,wFACC,KACD,CAEA,wFACC,QACD,CCpDD,MACC,uCACD,CAEA,mDCDC,eDmCD,CAlCA,6ICGE,qCD+BF,CAlCA,mDAIC,oDAAqD,CACrD,sDAAuD,CACvD,QAAS,CETT,oCAA8B,CFU9B,kBAAmB,CACnB,iDA0BD,CAvBC,gLAEC,wBACD,CAEA,gLAEC,yBACD,CAEA,gLAEC,2BACD,CAEA,gLAEC,4BACD,CAEA,yDACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-menu-bar-menu-max-width: 75vw;\n\t--ck-menu-bar-nested-menu-horizontal-offset: 5px;\n}\n\n.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {\n\tz-index: var(--ck-z-panel);\n\tmax-width: var(--ck-menu-bar-menu-max-width);\n\tposition: absolute;\n\n\t&.ck-menu-bar__menu__panel_position_ne,\n\t&.ck-menu-bar__menu__panel_position_nw {\n\t\tbottom: 100%;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_se,\n\t&.ck-menu-bar__menu__panel_position_sw {\n\t\ttop: 100%;\n\t\tbottom: auto;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_ne,\n\t&.ck-menu-bar__menu__panel_position_se {\n\t\tleft: 0px;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_nw,\n\t&.ck-menu-bar__menu__panel_position_sw {\n\t\tright: 0px;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_es,\n\t&.ck-menu-bar__menu__panel_position_en {\n\t\tleft: calc( 100% - var(--ck-menu-bar-nested-menu-horizontal-offset) );\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_es {\n\t\ttop: 0px;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_en {\n\t\tbottom: 0px;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_ws,\n\t&.ck-menu-bar__menu__panel_position_wn {\n\t\tright: calc( 100% - var(--ck-menu-bar-nested-menu-horizontal-offset) );\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_ws {\n\t\ttop: 0px;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_wn {\n\t\tbottom: 0px;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-menu-bar-menu-panel-max-width: 75vw;\n}\n\n.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\tbackground: var(--ck-color-dropdown-panel-background);\n\tborder: 1px solid var(--ck-color-dropdown-panel-border);\n\tbottom: 0;\n\theight: fit-content;\n\tmax-width: var(--ck-menu-bar-menu-panel-max-width);\n\n\t/* Corner border radius consistent with the button. */\n\t&.ck-menu-bar__menu__panel_position_es,\n\t&.ck-menu-bar__menu__panel_position_se {\n\t\tborder-top-left-radius: 0;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_ws,\n\t&.ck-menu-bar__menu__panel_position_sw {\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_en,\n\t&.ck-menu-bar__menu__panel_position_ne {\n\t\tborder-bottom-left-radius: 0;\n\t}\n\n\t&.ck-menu-bar__menu__panel_position_wn,\n\t&.ck-menu-bar__menu__panel_position_nw {\n\t\tborder-bottom-right-radius: 0;\n\t}\n\n\t&:focus {\n\t\toutline: none;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},3710:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,':root{--ck-balloon-panel-arrow-z-index:calc(var(--ck-z-default) - 3)}.ck.ck-balloon-panel{display:none;position:absolute;z-index:var(--ck-z-panel)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{content:"";position:absolute}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_n]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_n]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_s]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_s]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel.ck-balloon-panel_visible{display:block}:root{--ck-balloon-border-width:1px;--ck-balloon-arrow-offset:2px;--ck-balloon-arrow-height:10px;--ck-balloon-arrow-half-width:8px;--ck-balloon-arrow-drop-shadow:0 2px 2px var(--ck-color-shadow-drop)}.ck.ck-balloon-panel{border-radius:0}.ck-rounded-corners .ck.ck-balloon-panel,.ck.ck-balloon-panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-balloon-panel{background:var(--ck-color-panel-background);border:var(--ck-balloon-border-width) solid var(--ck-color-panel-border);box-shadow:var(--ck-drop-shadow),0 0;min-height:15px}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{border-style:solid;height:0;width:0}.ck.ck-balloon-panel[class*=arrow_n]:after,.ck.ck-balloon-panel[class*=arrow_n]:before{border-width:0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_n]:before{border-color:transparent transparent var(--ck-color-panel-border) transparent;margin-top:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_n]:after{border-color:transparent transparent var(--ck-color-panel-background) transparent;margin-top:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_s]:after,.ck.ck-balloon-panel[class*=arrow_s]:before{border-width:var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_s]:before{border-color:var(--ck-color-panel-border) transparent transparent;filter:drop-shadow(var(--ck-balloon-arrow-drop-shadow));margin-bottom:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_s]:after{border-color:var(--ck-color-panel-background) transparent transparent transparent;margin-bottom:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_e]:after,.ck.ck-balloon-panel[class*=arrow_e]:before{border-width:var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height)}.ck.ck-balloon-panel[class*=arrow_e]:before{border-color:transparent transparent transparent var(--ck-color-panel-border);margin-right:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_e]:after{border-color:transparent transparent transparent var(--ck-color-panel-background);margin-right:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_w]:after,.ck.ck-balloon-panel[class*=arrow_w]:before{border-width:var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0}.ck.ck-balloon-panel[class*=arrow_w]:before{border-color:transparent var(--ck-color-panel-border) transparent transparent;margin-left:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_w]:after{border-color:transparent var(--ck-color-panel-background) transparent transparent;margin-left:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:before{left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:before{right:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);right:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:before{margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%;top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:before{left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:before{margin-top:calc(var(--ck-balloon-arrow-half-width)*-1);right:calc(var(--ck-balloon-arrow-height)*-1);top:50%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:before{left:calc(var(--ck-balloon-arrow-height)*-1);margin-top:calc(var(--ck-balloon-arrow-half-width)*-1);top:50%}',"",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/panel/balloonpanel.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonpanel.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,MAEC,8DACD,CAEA,qBACC,YAAa,CACb,iBAAkB,CAElB,yBAyCD,CAtCE,+GAEC,UAAW,CACX,iBACD,CAEA,wDACC,6CACD,CAEA,uDACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAGD,8CACC,aACD,CC9CD,MACC,6BAA8B,CAC9B,6BAA8B,CAC9B,8BAA+B,CAC/B,iCAAkC,CAClC,oEACD,CAEA,qBCLC,eDmMD,CA9LA,iFCDE,qCD+LF,CA9LA,qBAMC,2CAA4C,CAC5C,wEAAyE,CEdzE,oCAA8B,CFW9B,eA0LD,CApLE,+GAIC,kBAAmB,CADnB,QAAS,CADT,OAGD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,kDACD,CAEA,2CACC,iFAAkF,CAClF,gFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,iEAAkE,CAClE,uDAAwD,CACxD,qDACD,CAEA,2CACC,iFAAkF,CAClF,mFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,oDACD,CAEA,2CACC,iFAAkF,CAClF,kFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,mDACD,CAEA,2CACC,iFAAkF,CAClF,iFACD,CAIA,yGAEC,QAAS,CACT,uDAA0D,CAC1D,2CACD,CAIA,2GAEC,+CAAkD,CAClD,2CACD,CAIA,2GAEC,gDAAmD,CACnD,2CACD,CAIA,yGAIC,8CAAiD,CAFjD,QAAS,CACT,uDAED,CAIA,2GAGC,8CAAiD,CADjD,+CAED,CAIA,2GAGC,8CAAiD,CADjD,gDAED,CAIA,6GAIC,8CAAiD,CADjD,uDAA0D,CAD1D,SAGD,CAIA,6GAIC,8CAAiD,CAFjD,QAAS,CACT,sDAED,CAIA,6GAGC,uDAA0D,CAD1D,SAAU,CAEV,2CACD,CAIA,6GAEC,QAAS,CACT,sDAAyD,CACzD,2CACD,CAIA,yGAGC,sDAAyD,CADzD,6CAAgD,CAEhD,OACD,CAIA,yGAEC,4CAA+C,CAC/C,sDAAyD,CACzD,OACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/* Make sure the balloon arrow does not float over its children. */\n\t--ck-balloon-panel-arrow-z-index: calc(var(--ck-z-default) - 3);\n}\n\n.ck.ck-balloon-panel {\n\tdisplay: none;\n\tposition: absolute;\n\n\tz-index: var(--ck-z-panel);\n\n\t&.ck-balloon-panel_with-arrow {\n\t\t&::before,\n\t\t&::after {\n\t\t\tcontent: "";\n\t\t\tposition: absolute;\n\t\t}\n\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&[class*="arrow_n"] {\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&[class*="arrow_s"] {\n\t\t&::before {\n\t\t\tz-index: var(--ck-balloon-panel-arrow-z-index);\n\t\t}\n\n\t\t&::after {\n\t\t\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_visible {\n\t\tdisplay: block;\n\t}\n}\n','/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-balloon-border-width: 1px;\n\t--ck-balloon-arrow-offset: 2px;\n\t--ck-balloon-arrow-height: 10px;\n\t--ck-balloon-arrow-half-width: 8px;\n\t--ck-balloon-arrow-drop-shadow: 0 2px 2px var(--ck-color-shadow-drop);\n}\n\n.ck.ck-balloon-panel {\n\t@mixin ck-rounded-corners;\n\t@mixin ck-drop-shadow;\n\n\tmin-height: 15px;\n\n\tbackground: var(--ck-color-panel-background);\n\tborder: var(--ck-balloon-border-width) solid var(--ck-color-panel-border);\n\n\t&.ck-balloon-panel_with-arrow {\n\t\t&::before,\n\t\t&::after {\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\t\t\tborder-style: solid;\n\t\t}\n\t}\n\n\t&[class*="arrow_n"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: transparent transparent var(--ck-color-panel-border) transparent;\n\t\t\tmargin-top: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: transparent transparent var(--ck-color-panel-background) transparent;\n\t\t\tmargin-top: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&[class*="arrow_s"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: var(--ck-color-panel-border) transparent transparent;\n\t\t\tfilter: drop-shadow(var(--ck-balloon-arrow-drop-shadow));\n\t\t\tmargin-bottom: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: var(--ck-color-panel-background) transparent transparent transparent;\n\t\t\tmargin-bottom: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&[class*="arrow_e"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height);\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: transparent transparent transparent var(--ck-color-panel-border);\n\t\t\tmargin-right: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: transparent transparent transparent var(--ck-color-panel-background);\n\t\t\tmargin-right: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&[class*="arrow_w"] {\n\t\t&::before,\n\t\t&::after {\n\t\t\tborder-width: var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0;\n\t\t}\n\n\t\t&::before {\n\t\t\tborder-color: transparent var(--ck-color-panel-border) transparent transparent;\n\t\t\tmargin-left: calc( -1 * var(--ck-balloon-border-width) );\n\t\t}\n\n\t\t&::after {\n\t\t\tborder-color: transparent var(--ck-color-panel-background) transparent transparent;\n\t\t\tmargin-left: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_n {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 50%;\n\t\t\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_ne {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_s {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 50%;\n\t\t\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_sw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_se {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_sme {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: 25%;\n\t\t\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_smw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 25%;\n\t\t\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nme {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: 25%;\n\t\t\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_nmw {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: 25%;\n\t\t\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_e {\n\t\t&::before,\n\t\t&::after {\n\t\t\tright: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t\tmargin-top: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: 50%;\n\t\t}\n\t}\n\n\t&.ck-balloon-panel_arrow_w {\n\t\t&::before,\n\t\t&::after {\n\t\t\tleft: calc(-1 * var(--ck-balloon-arrow-height));\n\t\t\tmargin-top: calc(-1 * var(--ck-balloon-arrow-half-width));\n\t\t\ttop: 50%;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},991:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck .ck-balloon-rotator__navigation{align-items:center;display:flex;justify-content:center}.ck .ck-balloon-rotator__content .ck-toolbar{justify-content:center}.ck .ck-balloon-rotator__navigation{background:var(--ck-color-toolbar-background);border-bottom:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation>*{margin-bottom:var(--ck-spacing-small);margin-right:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter{margin-left:var(--ck-spacing-small);margin-right:var(--ck-spacing-standard)}.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper{box-shadow:none}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/panel/balloonrotator.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonrotator.css"],names:[],mappings:"AAKA,oCAEC,kBAAmB,CADnB,YAAa,CAEb,sBACD,CAKA,6CACC,sBACD,CCXA,oCACC,6CAA8C,CAC9C,sDAAuD,CACvD,iCAgBD,CAbC,sCAGC,qCAAsC,CAFtC,oCAAqC,CACrC,kCAED,CAGA,iEAIC,mCAAoC,CAHpC,uCAID,CAMA,2DACC,eACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-balloon-rotator__navigation {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/* Buttons inside a toolbar should be centered when rotator bar is wider.\n * See: https://github.com/ckeditor/ckeditor5-ui/issues/495\n */\n.ck .ck-balloon-rotator__content .ck-toolbar {\n\tjustify-content: center;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-balloon-rotator__navigation {\n\tbackground: var(--ck-color-toolbar-background);\n\tborder-bottom: 1px solid var(--ck-color-toolbar-border);\n\tpadding: 0 var(--ck-spacing-small);\n\n\t/* Let's keep similar appearance to `ck-toolbar`. */\n\t& > * {\n\t\tmargin-right: var(--ck-spacing-small);\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t/* Gives counter more breath than buttons. */\n\t& .ck-balloon-rotator__counter {\n\t\tmargin-right: var(--ck-spacing-standard);\n\n\t\t/* We need to use smaller margin because of previous button's right margin. */\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n}\n\n.ck .ck-balloon-rotator__content {\n\n\t/* Disable default annotation shadow inside rotator with fake panels. */\n\t& .ck.ck-annotation-wrapper {\n\t\tbox-shadow: none;\n\t}\n}\n"],sourceRoot:""}]);const a=s},5380:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck .ck-fake-panel{position:absolute;z-index:calc(var(--ck-z-panel) - 1)}.ck .ck-fake-panel div{position:absolute}.ck .ck-fake-panel div:first-child{z-index:2}.ck .ck-fake-panel div:nth-child(2){z-index:1}:root{--ck-balloon-fake-panel-offset-horizontal:6px;--ck-balloon-fake-panel-offset-vertical:6px}.ck .ck-fake-panel div{background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border);border-radius:var(--ck-border-radius);box-shadow:var(--ck-drop-shadow),0 0;height:100%;min-height:15px;width:100%}.ck .ck-fake-panel div:first-child{margin-left:var(--ck-balloon-fake-panel-offset-horizontal);margin-top:var(--ck-balloon-fake-panel-offset-vertical)}.ck .ck-fake-panel div:nth-child(2){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*2);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*2)}.ck .ck-fake-panel div:nth-child(3){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*3);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*3)}.ck .ck-balloon-panel_arrow_s+.ck-fake-panel,.ck .ck-balloon-panel_arrow_se+.ck-fake-panel,.ck .ck-balloon-panel_arrow_sw+.ck-fake-panel{--ck-balloon-fake-panel-offset-vertical:-6px}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/panel/fakepanel.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/fakepanel.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAKA,mBACC,iBAAkB,CAGlB,mCACD,CAEA,uBACC,iBACD,CAEA,mCACC,SACD,CAEA,oCACC,SACD,CCfA,MACC,6CAA8C,CAC9C,2CACD,CAGA,uBAKC,2CAA4C,CAC5C,6CAA8C,CAC9C,qCAAsC,CCXtC,oCAA8B,CDc9B,WAAY,CAPZ,eAAgB,CAMhB,UAED,CAEA,mCACC,0DAA2D,CAC3D,uDACD,CAEA,oCACC,kEAAqE,CACrE,+DACD,CACA,oCACC,kEAAqE,CACrE,+DACD,CAGA,yIAGC,4CACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-fake-panel {\n\tposition: absolute;\n\n\t/* Fake panels should be placed under main balloon content. */\n\tz-index: calc(var(--ck-z-panel) - 1);\n}\n\n.ck .ck-fake-panel div {\n\tposition: absolute;\n}\n\n.ck .ck-fake-panel div:nth-child( 1 ) {\n\tz-index: 2;\n}\n\n.ck .ck-fake-panel div:nth-child( 2 ) {\n\tz-index: 1;\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_shadow.css";\n\n:root {\n\t--ck-balloon-fake-panel-offset-horizontal: 6px;\n\t--ck-balloon-fake-panel-offset-vertical: 6px;\n}\n\n/* Let\'s use `.ck-balloon-panel` appearance. See: balloonpanel.css. */\n.ck .ck-fake-panel div {\n\t@mixin ck-drop-shadow;\n\n\tmin-height: 15px;\n\n\tbackground: var(--ck-color-panel-background);\n\tborder: 1px solid var(--ck-color-panel-border);\n\tborder-radius: var(--ck-border-radius);\n\n\twidth: 100%;\n\theight: 100%;\n}\n\n.ck .ck-fake-panel div:nth-child( 1 ) {\n\tmargin-left: var(--ck-balloon-fake-panel-offset-horizontal);\n\tmargin-top: var(--ck-balloon-fake-panel-offset-vertical);\n}\n\n.ck .ck-fake-panel div:nth-child( 2 ) {\n\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 2);\n\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 2);\n}\n.ck .ck-fake-panel div:nth-child( 3 ) {\n\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 3);\n\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 3);\n}\n\n/* If balloon is positioned above element, we need to move fake panel to the top. */\n.ck .ck-balloon-panel_arrow_s + .ck-fake-panel,\n.ck .ck-balloon-panel_arrow_se + .ck-fake-panel,\n.ck .ck-balloon-panel_arrow_sw + .ck-fake-panel {\n\t--ck-balloon-fake-panel-offset-vertical: -6px;\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},8298:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-sticky-panel .ck-sticky-panel__content_sticky{position:fixed;top:0;z-index:var(--ck-z-panel)}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit{position:absolute;top:auto}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky{border-top-left-radius:0;border-top-right-radius:0;border-width:0 1px 1px;box-shadow:var(--ck-drop-shadow),0 0}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/panel/stickypanel.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/stickypanel.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css"],names:[],mappings:"AAMC,qDAEC,cAAe,CACf,KAAM,CAFN,yBAGD,CAEA,kEAEC,iBAAkB,CADlB,QAED,CCPA,qDAIC,wBAAyB,CACzB,yBAA0B,CAF1B,sBAAuB,CCFxB,oCDKA",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-sticky-panel {\n\t& .ck-sticky-panel__content_sticky {\n\t\tz-index: var(--ck-z-panel); /* #315 */\n\t\tposition: fixed;\n\t\ttop: 0;\n\t}\n\n\t& .ck-sticky-panel__content_sticky_bottom-limit {\n\t\ttop: auto;\n\t\tposition: absolute;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_shadow.css";\n\n.ck.ck-sticky-panel {\n\t& .ck-sticky-panel__content_sticky {\n\t\t@mixin ck-drop-shadow;\n\n\t\tborder-width: 0 1px 1px;\n\t\tborder-top-left-radius: 0;\n\t\tborder-top-right-radius: 0;\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n"],sourceRoot:""}]);const a=s},2722:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,'.ck-vertical-form .ck-button:after{bottom:-1px;content:"";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck-vertical-form .ck-button:focus:after{display:none}@media screen and (max-width:600px){.ck.ck-responsive-form .ck-button:after{bottom:-1px;content:"";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck.ck-responsive-form .ck-button:focus:after{display:none}}.ck-vertical-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form{padding:var(--ck-spacing-large)}.ck.ck-responsive-form:focus{outline:none}[dir=ltr] .ck.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-responsive-form>:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-responsive-form{padding:0;width:calc(var(--ck-input-width)*.8)}.ck.ck-responsive-form .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-responsive-form .ck-labeled-field-view .ck-input-number,.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error{white-space:normal}.ck.ck-responsive-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form>.ck-button:last-child,.ck.ck-responsive-form>.ck-button:nth-last-child(2){border-radius:0;margin-top:var(--ck-spacing-large);padding:var(--ck-spacing-standard)}.ck.ck-responsive-form>.ck-button:last-child:not(:focus),.ck.ck-responsive-form>.ck-button:nth-last-child(2):not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-responsive-form>.ck-button:last-child,[dir=ltr] .ck.ck-responsive-form>.ck-button:nth-last-child(2),[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2){margin-left:0}[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child:last-of-type,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2):last-of-type{border-right:1px solid var(--ck-color-base-border)}}',"",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/responsive-form/responsiveform.css","webpack://./../ckeditor5-ui/theme/mixins/_rwd.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/responsive-form/responsiveform.css"],names:[],mappings:"AAQC,mCAMC,WAAY,CALZ,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,QAAS,CAHT,OAAQ,CAKR,SACD,CAEA,yCACC,YACD,CCdA,oCDoBE,wCAMC,WAAY,CALZ,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,QAAS,CAHT,OAAQ,CAKR,SACD,CAEA,8CACC,YACD,CC9BF,CCAD,qDACC,kDACD,CAEA,uBACC,+BAoED,CAlEC,6BAEC,YACD,CASC,uGACC,sCACD,CDvBD,oCCMD,uBAqBE,SAAU,CACV,oCA+CF,CA7CE,8CACC,wDAYD,CAVC,4HAEC,WAAY,CACZ,UACD,CAGA,4EACC,kBACD,CAKA,0DACC,kDACD,CAGD,iGAIC,eAAgB,CADhB,kCAAmC,CADnC,kCAmBD,CAfC,yHACC,gDACD,CARD,0OAeE,aAMF,CAJE,+IACC,kDACD,CDrEH",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n\n.ck-vertical-form .ck-button {\n\t&::after {\n\t\tcontent: "";\n\t\twidth: 0;\n\t\tposition: absolute;\n\t\tright: -1px;\n\t\ttop: -1px;\n\t\tbottom: -1px;\n\t\tz-index: 1;\n\t}\n\n\t&:focus::after {\n\t\tdisplay: none;\n\t}\n}\n\n.ck.ck-responsive-form {\n\t@mixin ck-media-phone {\n\t\t& .ck-button {\n\t\t\t&::after {\n\t\t\t\tcontent: "";\n\t\t\t\twidth: 0;\n\t\t\t\tposition: absolute;\n\t\t\t\tright: -1px;\n\t\t\t\ttop: -1px;\n\t\t\t\tbottom: -1px;\n\t\t\t\tz-index: 1;\n\t\t\t}\n\n\t\t\t&:focus::after {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-phone {\n\t@media screen and (max-width: 600px) {\n\t\t@mixin-content;\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck-vertical-form > .ck-button:nth-last-child(2)::after {\n\tborder-right: 1px solid var(--ck-color-base-border);\n}\n\n.ck.ck-responsive-form {\n\tpadding: var(--ck-spacing-large);\n\n\t&:focus {\n\t\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\n\t\toutline: none;\n\t}\n\n\t@mixin ck-dir ltr {\n\t\t& > :not(:first-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-dir rtl {\n\t\t& > :not(:last-child) {\n\t\t\tmargin-left: var(--ck-spacing-standard);\n\t\t}\n\t}\n\n\t@mixin ck-media-phone {\n\t\tpadding: 0;\n\t\twidth: calc(.8 * var(--ck-input-width));\n\n\t\t& .ck-labeled-field-view {\n\t\t\tmargin: var(--ck-spacing-large) var(--ck-spacing-large) 0;\n\n\t\t\t& .ck-input-text,\n\t\t\t& .ck-input-number {\n\t\t\t\tmin-width: 0;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t/* Let the long error messages wrap in the narrow form. */\n\t\t\t& .ck-labeled-field-view__error {\n\t\t\t\twhite-space: normal;\n\t\t\t}\n\t\t}\n\n\t\t/* Styles for two last buttons in the form (save&cancel, edit&unlink, etc.). */\n\t\t& > .ck-button:nth-last-child(2) {\n\t\t\t&::after {\n\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\t\t}\n\n\t\t& > .ck-button:nth-last-child(1),\n\t\t& > .ck-button:nth-last-child(2) {\n\t\t\tpadding: var(--ck-spacing-standard);\n\t\t\tmargin-top: var(--ck-spacing-large);\n\t\t\tborder-radius: 0;\n\n\t\t\t&:not(:focus) {\n\t\t\t\tborder-top: 1px solid var(--ck-color-base-border);\n\t\t\t}\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tmargin-left: 0;\n\n\t\t\t\t&:last-of-type {\n\t\t\t\t\tborder-right: 1px solid var(--ck-color-base-border);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n'],sourceRoot:""}]);const a=s},8107:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-search>.ck-labeled-field-view>.ck-labeled-field-view__input-wrapper>.ck-icon{position:absolute;top:50%;transform:translateY(-50%)}[dir=ltr] .ck.ck-search>.ck-labeled-field-view>.ck-labeled-field-view__input-wrapper>.ck-icon{left:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-search>.ck-labeled-field-view>.ck-labeled-field-view__input-wrapper>.ck-icon{right:var(--ck-spacing-medium)}.ck.ck-search>.ck-labeled-field-view .ck-search__reset{position:absolute;top:50%;transform:translateY(-50%)}.ck.ck-search>.ck-search__results>.ck-search__info>span:first-child{display:block}.ck.ck-search>.ck-search__results>.ck-search__info:not(.ck-hidden)~*{display:none}:root{--ck-search-field-view-horizontal-spacing:calc(var(--ck-icon-size) + var(--ck-spacing-medium))}.ck.ck-search>.ck-labeled-field-view .ck-input{width:100%}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon{--ck-labeled-field-label-default-position-x:var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon>.ck-labeled-field-view__input-wrapper>.ck-icon{opacity:.5;pointer-events:none}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon .ck-input{width:100%}[dir=ltr] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon .ck-input,[dir=rtl] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon .ck-input:not(.ck-input-text_empty){padding-left:var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset{--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset.ck-labeled-field-view_empty{--ck-labeled-field-empty-unfocused-max-width:100% - var(--ck-search-field-view-horizontal-spacing) - var(--ck-spacing-medium)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset{background:none;min-height:auto;min-width:auto;opacity:.5;padding:0}[dir=ltr] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset{right:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset{left:var(--ck-spacing-medium)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset:hover{opacity:1}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-input{width:100%}[dir=ltr] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-input:not(.ck-input-text_empty),[dir=rtl] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-input{padding-right:var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-search__results{min-width:100%}.ck.ck-search>.ck-search__results>.ck-search__info{padding:var(--ck-spacing-medium) var(--ck-spacing-large);width:100%}.ck.ck-search>.ck-search__results>.ck-search__info *{white-space:normal}.ck.ck-search>.ck-search__results>.ck-search__info>span:first-child{font-weight:700}.ck.ck-search>.ck-search__results>.ck-search__info>span:last-child{margin-top:var(--ck-spacing-medium)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/search/search.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/search/search.css"],names:[],mappings:"AASE,oFACC,iBAAkB,CAClB,OAAQ,CACR,0BASD,CAZA,8FAME,6BAMF,CAZA,8FAUE,8BAEF,CAEA,uDACC,iBAAkB,CAClB,OAAQ,CACR,0BACD,CAKC,oEACC,aACD,CAGA,qEACC,YACD,CChCH,MACC,8FACD,CAIE,+CACC,UACD,CAEA,gEACC,0FAoBD,CAlBC,+GACC,UAAW,CACX,mBACD,CAEA,0EACC,UAWD,CAJE,kMACC,2DACD,CAKH,iEACC,sGAwCD,CAtCC,6FACC,6HACD,CAEA,mFAIC,eAAgB,CAFhB,eAAgB,CADhB,cAAe,CAIf,UAAW,CACX,SAaD,CAnBA,6FASE,8BAUF,CAnBA,6FAaE,6BAMF,CAHC,yFACC,SACD,CAGD,2EACC,UAWD,CAZA,oMAUE,4DAEF,CAIF,kCACC,cAkBD,CAhBC,mDAEC,wDAAyD,CADzD,UAcD,CAXC,qDACC,kBACD,CAEA,oEACC,eACD,CAEA,mEACC,mCACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-search {\n\t& > .ck-labeled-field-view {\n\t\t& > .ck-labeled-field-view__input-wrapper > .ck-icon {\n\t\t\tposition: absolute;\n\t\t\ttop: 50%;\n\t\t\ttransform: translateY(-50%);\n\n\t\t\t@mixin ck-dir ltr {\n\t\t\t\tleft: var(--ck-spacing-medium);\n\t\t\t}\n\n\t\t\t@mixin ck-dir rtl {\n\t\t\t\tright: var(--ck-spacing-medium);\n\t\t\t}\n\t\t}\n\n\t\t& .ck-search__reset {\n\t\t\tposition: absolute;\n\t\t\ttop: 50%;\n\t\t\ttransform: translateY(-50%);\n\t\t}\n\t}\n\n\t& > .ck-search__results {\n\t\t& > .ck-search__info {\n\t\t\t& > span:first-child {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\n\t\t\t/* Hide the filtered view when nothing was found */\n\t\t\t&:not(.ck-hidden) ~ * {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n','/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n:root {\n\t--ck-search-field-view-horizontal-spacing: calc(var(--ck-icon-size) + var(--ck-spacing-medium));\n}\n\n.ck.ck-search {\n\t& > .ck-labeled-field-view {\n\t\t& .ck-input {\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t&.ck-search__query_with-icon {\n\t\t\t--ck-labeled-field-label-default-position-x: var(--ck-search-field-view-horizontal-spacing);\n\n\t\t\t& > .ck-labeled-field-view__input-wrapper > .ck-icon {\n\t\t\t\topacity: .5;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\n\t\t\t& .ck-input {\n\t\t\t\twidth: 100%;\n\n\t\t\t\t@mixin ck-dir ltr {\n\t\t\t\t\tpadding-left: var(--ck-search-field-view-horizontal-spacing);\n\t\t\t\t}\n\n\t\t\t\t@mixin ck-dir rtl {\n\t\t\t\t\t&:not(.ck-input-text_empty) {\n\t\t\t\t\t\tpadding-left: var(--ck-search-field-view-horizontal-spacing);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&.ck-search__query_with-reset {\n\t\t\t--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-search-field-view-horizontal-spacing);\n\n\t\t\t&.ck-labeled-field-view_empty {\n\t\t\t\t--ck-labeled-field-empty-unfocused-max-width: 100% - var(--ck-search-field-view-horizontal-spacing) - var(--ck-spacing-medium);\n\t\t\t}\n\n\t\t\t& .ck-search__reset {\n\t\t\t\tmin-width: auto;\n\t\t\t\tmin-height: auto;\n\n\t\t\t\tbackground: none;\n\t\t\t\topacity: .5;\n\t\t\t\tpadding: 0;\n\n\t\t\t\t@mixin ck-dir ltr {\n\t\t\t\t\tright: var(--ck-spacing-medium);\n\t\t\t\t}\n\n\t\t\t\t@mixin ck-dir rtl {\n\t\t\t\t\tleft: var(--ck-spacing-medium);\n\t\t\t\t}\n\n\t\t\t\t&:hover {\n\t\t\t\t\topacity: 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t& .ck-input {\n\t\t\t\twidth: 100%;\n\n\t\t\t\t@mixin ck-dir ltr {\n\t\t\t\t\t&:not(.ck-input-text_empty) {\n\t\t\t\t\t\tpadding-right: var(--ck-search-field-view-horizontal-spacing);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t@mixin ck-dir rtl {\n\t\t\t\t\tpadding-right: var(--ck-search-field-view-horizontal-spacing);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .ck-search__results {\n\t\tmin-width: 100%;\n\n\t\t& > .ck-search__info {\n\t\t\twidth: 100%;\n\t\t\tpadding: var(--ck-spacing-medium) var(--ck-spacing-large);\n\n\t\t\t& * {\n\t\t\t\twhite-space: normal;\n\t\t\t}\n\n\t\t\t& > span:first-child {\n\t\t\t\tfont-weight: bold;\n\t\t\t}\n\n\t\t\t& > span:last-child {\n\t\t\t\tmargin-top: var(--ck-spacing-medium);\n\t\t\t}\n\t\t}\n\t}\n}\n\n'],sourceRoot:""}]);const a=s},109:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-spinner-container{display:block;position:relative}.ck.ck-spinner{left:0;margin:0 auto;position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:1}:root{--ck-toolbar-spinner-size:18px}.ck.ck-spinner-container{animation:rotate 1.5s linear infinite;height:var(--ck-toolbar-spinner-size);width:var(--ck-toolbar-spinner-size)}@media (prefers-reduced-motion:reduce){.ck.ck-spinner-container{animation-duration:3s}}.ck.ck-spinner{border:2px solid var(--ck-color-text);border-radius:50%;border-top:2px solid transparent;height:var(--ck-toolbar-spinner-size);width:var(--ck-toolbar-spinner-size)}@keyframes rotate{to{transform:rotate(1turn)}}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/spinner/spinner.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/spinner/spinner.css"],names:[],mappings:"AASA,yBACC,aAAc,CACd,iBACD,CAEA,eAGC,MAAO,CAEP,aAAc,CAJd,iBAAkB,CAGlB,OAAQ,CAFR,OAAQ,CAIR,0BAA2B,CAC3B,SACD,CCjBA,MACC,8BACD,CAEA,yBAGC,qCAAsC,CADtC,qCAAsC,CADtC,oCAOD,CAHC,uCALD,yBAME,qBAEF,CADC,CAGD,eAKC,qCAA6B,CAF7B,iBAAkB,CAElB,gCAA6B,CAH7B,qCAAsC,CADtC,oCAKD,CAEA,kBACC,GACC,uBACD,CACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-toolbar-spinner-size: 18px;\n}\n\n.ck.ck-spinner-container {\n\tdisplay: block;\n\tposition: relative;\n}\n\n.ck.ck-spinner {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 0;\n\tright: 0;\n\tmargin: 0 auto;\n\ttransform: translateY(-50%);\n\tz-index: 1;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-toolbar-spinner-size: 18px;\n}\n\n.ck.ck-spinner-container {\n\twidth: var(--ck-toolbar-spinner-size);\n\theight: var(--ck-toolbar-spinner-size);\n\tanimation: 1.5s infinite rotate linear;\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\tanimation-duration: 3s;\n\t}\n}\n\n.ck.ck-spinner {\n\twidth: var(--ck-toolbar-spinner-size);\n\theight: var(--ck-toolbar-spinner-size);\n\tborder-radius: 50%;\n\tborder: 2px solid var(--ck-color-text);\n\tborder-top-color: transparent;\n}\n\n@keyframes rotate {\n\tto {\n\t\ttransform: rotate(360deg)\n\t}\n}\n"],sourceRoot:""}]);const a=s},1671:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-textarea{overflow-x:hidden}","",{version:3,sources:["webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/textarea/textarea.css"],names:[],mappings:"AASA,aACC,iBACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/*\n * This fixes a problem in Firefox when the initial height of the complement does not match the number of rows.\n * This bug is especially visible when rows=1.\n */\n.ck-textarea {\n\toverflow-x: hidden\n}\n"],sourceRoot:""}]);const a=s},2710:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-block-toolbar-button{position:absolute;z-index:var(--ck-z-default)}:root{--ck-color-block-toolbar-button:var(--ck-color-text);--ck-block-toolbar-button-size:var(--ck-font-size-normal)}.ck.ck-block-toolbar-button{color:var(--ck-color-block-toolbar-button);font-size:var(--ck-block-toolbar-size)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/toolbar/blocktoolbar.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/blocktoolbar.css"],names:[],mappings:"AAKA,4BACC,iBAAkB,CAClB,2BACD,CCHA,MACC,oDAAqD,CACrD,yDACD,CAEA,4BACC,0CAA2C,CAC3C,sCACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-block-toolbar-button {\n\tposition: absolute;\n\tz-index: var(--ck-z-default);\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-block-toolbar-button: var(--ck-color-text);\n\t--ck-block-toolbar-button-size: var(--ck-font-size-normal);\n}\n\n.ck.ck-block-toolbar-button {\n\tcolor: var(--ck-color-block-toolbar-button);\n\tfont-size: var(--ck-block-toolbar-size);\n}\n"],sourceRoot:""}]);const a=s},9677:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-toolbar{align-items:center;display:flex;flex-flow:row nowrap;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-toolbar>.ck-toolbar__items{align-items:center;display:flex;flex-flow:row wrap;flex-grow:1}.ck.ck-toolbar .ck.ck-toolbar__separator{display:inline-block}.ck.ck-toolbar .ck.ck-toolbar__separator:first-child,.ck.ck-toolbar .ck.ck-toolbar__separator:last-child{display:none}.ck.ck-toolbar .ck-toolbar__line-break{flex-basis:100%}.ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items{flex-direction:column}.ck.ck-toolbar.ck-toolbar_floating>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck-dropdown__button .ck-dropdown__arrow{display:none}.ck.ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-toolbar,.ck.ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-toolbar{background:var(--ck-color-toolbar-background);border:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck.ck-toolbar .ck.ck-toolbar__separator{align-self:stretch;background:var(--ck-color-toolbar-border);margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small);min-width:1px;width:1px}.ck.ck-toolbar .ck-toolbar__line-break{height:0}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break){margin-right:var(--ck-spacing-small)}.ck.ck-toolbar>.ck-toolbar__items:empty+.ck.ck-toolbar__separator{display:none}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break),.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown{margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck.ck-toolbar.ck-toolbar_vertical{padding:0}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items>.ck{border-radius:0;margin:0;width:100%}.ck.ck-toolbar.ck-toolbar_compact{padding:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>*{margin:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>:not(:first-child):not(:last-child){border-radius:0}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck.ck-button.ck-dropdown__button{padding-left:var(--ck-spacing-tiny)}.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown>.ck-dropdown__panel{min-width:auto}.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown>.ck-button>.ck-button__label{max-width:7em;width:auto}.ck.ck-toolbar:focus{outline:none}.ck-toolbar-container .ck.ck-toolbar{border:0}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck{margin-right:0}.ck.ck-toolbar[dir=rtl]:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-left:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:first-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=rtl]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=rtl]>.ck.ck-toolbar__separator,[dir=rtl] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=rtl] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-right:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:first-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=ltr]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=ltr]>.ck.ck-toolbar__separator,[dir=ltr] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=ltr] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-right:var(--ck-spacing-small)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/toolbar/toolbar.css","webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/toolbar.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAOA,eAKC,kBAAmB,CAFnB,YAAa,CACb,oBAAqB,CCFrB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD6CD,CA3CC,kCAGC,kBAAmB,CAFnB,YAAa,CACb,kBAAmB,CAEnB,WAED,CAEA,yCACC,oBAWD,CAJC,yGAEC,YACD,CAGD,uCACC,eACD,CAEA,sDACC,gBACD,CAEA,sDACC,qBACD,CAEA,sDACC,gBACD,CAGC,yFACC,YACD,CE/CF,eCGC,eDwGD,CA3GA,qECOE,qCDoGF,CA3GA,eAGC,6CAA8C,CAE9C,+CAAgD,CADhD,iCAuGD,CApGC,yCACC,kBAAmB,CAGnB,yCAA0C,CAO1C,qCAAsC,CADtC,kCAAmC,CAPnC,aAAc,CADd,SAUD,CAEA,uCACC,QACD,CAGC,gEAEC,oCACD,CAIA,kEACC,YACD,CAGD,gHAIC,qCAAsC,CADtC,kCAED,CAEA,mCAEC,SAaD,CAVC,0DAQC,eAAgB,CAHhB,QAAS,CAHT,UAOD,CAGD,kCAEC,SAWD,CATC,uDAEC,QAMD,CAHC,yFACC,eACD,CASD,kFACC,mCACD,CAMA,wEACC,cACD,CAEA,iFACC,aAAc,CACd,UACD,CAGD,qBACC,YACD,CAtGD,qCAyGE,QAEF,CAYC,+FACC,cACD,CAEA,iJAEC,mCACD,CAEA,qHACC,aACD,CAIC,6JAEC,2BAA4B,CAD5B,wBAED,CAGA,2JAEC,4BAA6B,CAD7B,yBAED,CASD,8RACC,mCACD,CAWA,qHACC,cACD,CAIC,6JAEC,4BAA6B,CAD7B,yBAED,CAGA,2JAEC,2BAA4B,CAD5B,wBAED,CASD,8RACC,oCACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-toolbar {\n\t@mixin ck-unselectable;\n\n\tdisplay: flex;\n\tflex-flow: row nowrap;\n\talign-items: center;\n\n\t& > .ck-toolbar__items {\n\t\tdisplay: flex;\n\t\tflex-flow: row wrap;\n\t\talign-items: center;\n\t\tflex-grow: 1;\n\n\t}\n\n\t& .ck.ck-toolbar__separator {\n\t\tdisplay: inline-block;\n\n\t\t/*\n\t\t * A leading or trailing separator makes no sense (separates from nothing on one side).\n\t\t * For instance, it can happen when toolbar items (also separators) are getting grouped one by one and\n\t\t * moved to another toolbar in the dropdown.\n\t\t */\n\t\t&:first-child,\n\t\t&:last-child {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& .ck-toolbar__line-break {\n\t\tflex-basis: 100%;\n\t}\n\n\t&.ck-toolbar_grouping > .ck-toolbar__items {\n\t\tflex-wrap: nowrap;\n\t}\n\n\t&.ck-toolbar_vertical > .ck-toolbar__items {\n\t\tflex-direction: column;\n\t}\n\n\t&.ck-toolbar_floating > .ck-toolbar__items {\n\t\tflex-wrap: nowrap;\n\t}\n\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t& > .ck-dropdown__button .ck-dropdown__arrow {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-toolbar {\n\t@mixin ck-rounded-corners;\n\n\tbackground: var(--ck-color-toolbar-background);\n\tpadding: 0 var(--ck-spacing-small);\n\tborder: 1px solid var(--ck-color-toolbar-border);\n\n\t& .ck.ck-toolbar__separator {\n\t\talign-self: stretch;\n\t\twidth: 1px;\n\t\tmin-width: 1px;\n\t\tbackground: var(--ck-color-toolbar-border);\n\n\t\t/*\n\t\t * These margins make the separators look better in balloon toolbars (when aligned with the "tip").\n\t\t * See https://github.com/ckeditor/ckeditor5/issues/7493.\n\t\t */\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t& .ck-toolbar__line-break {\n\t\theight: 0;\n\t}\n\n\t& > .ck-toolbar__items {\n\t\t& > *:not(.ck-toolbar__line-break) {\n\t\t\t/* (#11) Separate toolbar items. */\n\t\t\tmargin-right: var(--ck-spacing-small);\n\t\t}\n\n\t\t/* Don\'t display a separator after an empty items container, for instance,\n\t\twhen all items were grouped */\n\t\t&:empty + .ck.ck-toolbar__separator {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t& > .ck-toolbar__items > *:not(.ck-toolbar__line-break),\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t/* Make sure items wrapped to the next line have v-spacing */\n\t\tmargin-top: var(--ck-spacing-small);\n\t\tmargin-bottom: var(--ck-spacing-small);\n\t}\n\n\t&.ck-toolbar_vertical {\n\t\t/* Items in a vertical toolbar span the entire width. */\n\t\tpadding: 0;\n\n\t\t/* Specificity matters here. See https://github.com/ckeditor/ckeditor5-theme-lark/issues/168. */\n\t\t& > .ck-toolbar__items > .ck {\n\t\t\t/* Items in a vertical toolbar should span the horizontal space. */\n\t\t\twidth: 100%;\n\n\t\t\t/* Items in a vertical toolbar should have no margin. */\n\t\t\tmargin: 0;\n\n\t\t\t/* Items in a vertical toolbar span the entire width so rounded corners are pointless. */\n\t\t\tborder-radius: 0;\n\t\t}\n\t}\n\n\t&.ck-toolbar_compact {\n\t\t/* No spacing around items. */\n\t\tpadding: 0;\n\n\t\t& > .ck-toolbar__items > * {\n\t\t\t/* Compact toolbar items have no spacing between them. */\n\t\t\tmargin: 0;\n\n\t\t\t/* "Middle" children should have no rounded corners. */\n\t\t\t&:not(:first-child):not(:last-child) {\n\t\t\t\tborder-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n\n\t& > .ck.ck-toolbar__grouped-dropdown {\n\t\t/*\n\t\t * Dropdown button has asymmetric padding to fit the arrow.\n\t\t * This button has no arrow so let\'s revert that padding back to normal.\n\t\t */\n\t\t& > .ck.ck-button.ck-dropdown__button {\n\t\t\tpadding-left: var(--ck-spacing-tiny);\n\t\t}\n\t}\n\n\t/* A drop-down containing the nested toolbar with configured items. */\n\t& .ck-toolbar__nested-toolbar-dropdown {\n\t\t/* Prevent empty space in the panel when the dropdown label is visible and long but the toolbar has few items. */\n\t\t& > .ck-dropdown__panel {\n\t\t\tmin-width: auto;\n\t\t}\n\n\t\t& > .ck-button > .ck-button__label {\n\t\t\tmax-width: 7em;\n\t\t\twidth: auto;\n\t\t}\n\t}\n\n\t&:focus {\n\t\toutline: none;\n\t}\n\n\t@nest .ck-toolbar-container & {\n\t\tborder: 0;\n\t}\n}\n\n/* stylelint-disable */\n\n/*\n * Styles for RTL toolbars.\n *\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"\n * because its parent is not controlled by the editor framework.\n */\n[dir="rtl"] .ck.ck-toolbar,\n.ck.ck-toolbar[dir="rtl"] {\n\t& > .ck-toolbar__items > .ck {\n\t\tmargin-right: 0;\n\t}\n\n\t&:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck {\n\t\t/* (#11) Separate toolbar items. */\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n\n\t& > .ck-toolbar__items > .ck:last-child {\n\t\tmargin-left: 0;\n\t}\n\n\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\n\t\t/* No rounded corners on the right side of the first child. */\n\t\t&:first-child {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\n\t\t/* No rounded corners on the left side of the last child. */\n\t\t&:last-child {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\t}\n\n\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\n\t& > .ck.ck-toolbar__separator {\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n\n\t/* Some spacing between the items and the separator before the grouped items dropdown. */\n\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\n\t\tmargin-left: var(--ck-spacing-small);\n\t}\n}\n\n/*\n * Styles for LTR toolbars.\n *\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own "dir"\n * because its parent is not controlled by the editor framework.\n */\n[dir="ltr"] .ck.ck-toolbar,\n.ck.ck-toolbar[dir="ltr"] {\n\t& > .ck-toolbar__items > .ck:last-child {\n\t\tmargin-right: 0;\n\t}\n\n\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\n\t\t/* No rounded corners on the right side of the first child. */\n\t\t&:first-child {\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t}\n\n\t\t/* No rounded corners on the left side of the last child. */\n\t\t&:last-child {\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\n\t}\n\n\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\n\t& > .ck.ck-toolbar__separator {\n\t\tmargin-right: var(--ck-spacing-small);\n\t}\n\n\t/* Some spacing between the items and the separator before the grouped items dropdown. */\n\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\n\t\tmargin-right: var(--ck-spacing-small);\n\t}\n}\n\n/* stylelint-enable */\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const a=s},9205:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck.ck-balloon-panel.ck-tooltip{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;z-index:calc(var(--ck-z-dialog) + 100);--ck-balloon-border-width:0px;--ck-balloon-arrow-offset:0px;--ck-balloon-arrow-half-width:4px;--ck-balloon-arrow-height:4px;--ck-tooltip-text-padding:4px;--ck-color-panel-background:var(--ck-color-tooltip-background);padding:0 var(--ck-spacing-medium)}.ck.ck-balloon-panel.ck-tooltip .ck-tooltip__text{color:var(--ck-color-tooltip-text);font-size:.9em;line-height:1.5}.ck.ck-balloon-panel.ck-tooltip.ck-tooltip_multi-line .ck-tooltip__text{display:inline-block;max-width:200px;padding:var(--ck-tooltip-text-padding) 0;white-space:break-spaces}.ck.ck-balloon-panel.ck-tooltip{box-shadow:none}.ck.ck-balloon-panel.ck-tooltip:before{display:none}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/components/tooltip/tooltip.css","webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/tooltip/tooltip.css"],names:[],mappings:"AAOA,gCCEC,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBAAgB,CDFhB,sCAAyC,CEFzC,6BAA8B,CAC9B,6BAA8B,CAC9B,iCAAkC,CAClC,6BAA8B,CAC9B,6BAA8B,CAC9B,8DAA+D,CAE/D,kCFJD,CEMC,kDAGC,kCAAmC,CAFnC,cAAe,CACf,eAED,CAEA,wEAEC,oBAAqB,CAErB,eAAgB,CADhB,wCAAyC,CAFzC,wBAID,CArBD,gCAwBC,eAMD,CAHC,uCACC,YACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../mixins/_unselectable.css";\n\n.ck.ck-balloon-panel.ck-tooltip {\n\t@mixin ck-unselectable;\n\n\tz-index: calc( var(--ck-z-dialog) + 100 );\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Makes element unselectable.\n */\n@define-mixin ck-unselectable {\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../../../mixins/_rounded.css";\n\n.ck.ck-balloon-panel.ck-tooltip {\n\t--ck-balloon-border-width: 0px;\n\t--ck-balloon-arrow-offset: 0px;\n\t--ck-balloon-arrow-half-width: 4px;\n\t--ck-balloon-arrow-height: 4px;\n\t--ck-tooltip-text-padding: 4px;\n\t--ck-color-panel-background: var(--ck-color-tooltip-background);\n\n\tpadding: 0 var(--ck-spacing-medium);\n\n\t& .ck-tooltip__text {\n\t\tfont-size: .9em;\n\t\tline-height: 1.5;\n\t\tcolor: var(--ck-color-tooltip-text);\n\t}\n\n\t&.ck-tooltip_multi-line .ck-tooltip__text {\n\t\twhite-space: break-spaces;\n\t\tdisplay: inline-block;\n\t\tpadding: var(--ck-tooltip-text-padding) 0;\n\t\tmax-width: 200px;\n\t}\n\n\t/* Reset balloon panel styles */\n\tbox-shadow: none;\n\n\t/* Hide the default shadow of the .ck-balloon-panel tip */\n\t&::before {\n\t\tdisplay: none;\n\t}\n}\n'],sourceRoot:""}]);const a=s},7676:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck-hidden{display:none!important}:root{--ck-z-default:1;--ck-z-panel:calc(var(--ck-z-default) + 999);--ck-z-dialog:9999}.ck-transitions-disabled,.ck-transitions-disabled *{transition:none!important}:root{--ck-powered-by-line-height:10px;--ck-powered-by-padding-vertical:2px;--ck-powered-by-padding-horizontal:4px;--ck-powered-by-text-color:#4f4f4f;--ck-powered-by-border-radius:var(--ck-border-radius);--ck-powered-by-background:#fff;--ck-powered-by-border-color:var(--ck-color-focus-border)}.ck.ck-balloon-panel.ck-powered-by-balloon{--ck-border-radius:var(--ck-powered-by-border-radius);background:var(--ck-powered-by-background);box-shadow:none;min-height:unset;z-index:calc(var(--ck-z-panel) - 1)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by{line-height:var(--ck-powered-by-line-height)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by a{align-items:center;cursor:pointer;display:flex;filter:grayscale(80%);line-height:var(--ck-powered-by-line-height);opacity:.66;padding:var(--ck-powered-by-padding-vertical) var(--ck-powered-by-padding-horizontal)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-powered-by__label{color:var(--ck-powered-by-text-color);cursor:pointer;font-size:7.5px;font-weight:700;letter-spacing:-.2px;line-height:normal;margin-right:4px;padding-left:2px;text-transform:uppercase}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-icon{cursor:pointer;display:block}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by:hover a{filter:grayscale(0);opacity:1}.ck.ck-balloon-panel.ck-powered-by-balloon[class*=position_inside]{border-color:transparent}.ck.ck-balloon-panel.ck-powered-by-balloon[class*=position_border]{border:var(--ck-focus-ring);border-color:var(--ck-powered-by-border-color)}:root{--ck-color-base-foreground:#fafafa;--ck-color-base-background:#fff;--ck-color-base-border:#ccced1;--ck-color-base-action:#53a336;--ck-color-base-focus:#6cb5f9;--ck-color-base-text:#333;--ck-color-base-active:#2977ff;--ck-color-base-active-focus:#0d65ff;--ck-color-base-error:#db3700;--ck-color-focus-border-coordinates:218,81.8%,56.9%;--ck-color-focus-border:hsl(var(--ck-color-focus-border-coordinates));--ck-color-focus-outer-shadow:#cae1fc;--ck-color-focus-disabled-shadow:rgba(119,186,248,.3);--ck-color-focus-error-shadow:rgba(255,64,31,.3);--ck-color-text:var(--ck-color-base-text);--ck-color-shadow-drop:rgba(0,0,0,.15);--ck-color-shadow-drop-active:rgba(0,0,0,.2);--ck-color-shadow-inner:rgba(0,0,0,.1);--ck-color-button-default-background:transparent;--ck-color-button-default-hover-background:#f0f0f0;--ck-color-button-default-active-background:#f0f0f0;--ck-color-button-default-disabled-background:transparent;--ck-color-button-on-background:#f0f7ff;--ck-color-button-on-hover-background:#dbecff;--ck-color-button-on-active-background:#dbecff;--ck-color-button-on-disabled-background:#f0f2f4;--ck-color-button-on-color:#2977ff;--ck-color-button-action-background:var(--ck-color-base-action);--ck-color-button-action-hover-background:#4d9d30;--ck-color-button-action-active-background:#4d9d30;--ck-color-button-action-disabled-background:#7ec365;--ck-color-button-action-text:var(--ck-color-base-background);--ck-color-button-save:#008a00;--ck-color-button-cancel:#db3700;--ck-color-switch-button-off-background:#939393;--ck-color-switch-button-off-hover-background:#7d7d7d;--ck-color-switch-button-on-background:var(--ck-color-button-action-background);--ck-color-switch-button-on-hover-background:#4d9d30;--ck-color-switch-button-inner-background:var(--ck-color-base-background);--ck-color-switch-button-inner-shadow:rgba(0,0,0,.1);--ck-color-dropdown-panel-background:var(--ck-color-base-background);--ck-color-dropdown-panel-border:var(--ck-color-base-border);--ck-color-dialog-background:var(--ck-custom-background);--ck-color-dialog-form-header-border:var(--ck-custom-border);--ck-color-input-background:var(--ck-color-base-background);--ck-color-input-border:var(--ck-color-base-border);--ck-color-input-error-border:var(--ck-color-base-error);--ck-color-input-text:var(--ck-color-base-text);--ck-color-input-disabled-background:#f2f2f2;--ck-color-input-disabled-border:var(--ck-color-base-border);--ck-color-input-disabled-text:#757575;--ck-color-list-background:var(--ck-color-base-background);--ck-color-list-button-hover-background:var(--ck-color-button-default-hover-background);--ck-color-list-button-on-background:var(--ck-color-button-on-color);--ck-color-list-button-on-background-focus:var(--ck-color-button-on-color);--ck-color-list-button-on-text:var(--ck-color-base-background);--ck-color-panel-background:var(--ck-color-base-background);--ck-color-panel-border:var(--ck-color-base-border);--ck-color-toolbar-background:var(--ck-color-base-background);--ck-color-toolbar-border:var(--ck-color-base-border);--ck-color-tooltip-background:var(--ck-color-base-text);--ck-color-tooltip-text:var(--ck-color-base-background);--ck-color-engine-placeholder-text:#707070;--ck-color-upload-bar-background:#6cb5f9;--ck-color-link-default:#0000f0;--ck-color-link-selected-background:rgba(31,176,255,.1);--ck-color-link-fake-selection:rgba(31,176,255,.3);--ck-color-highlight-background:#ff0;--ck-color-light-red:#fcc;--ck-disabled-opacity:.5;--ck-focus-outer-shadow-geometry:0 0 0 3px;--ck-focus-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);--ck-focus-disabled-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);--ck-focus-error-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);--ck-focus-ring:1px solid var(--ck-color-focus-border);--ck-font-size-base:13px;--ck-line-height-base:1.84615;--ck-font-face:Helvetica,Arial,Tahoma,Verdana,Sans-Serif;--ck-font-size-tiny:0.7em;--ck-font-size-small:0.75em;--ck-font-size-normal:1em;--ck-font-size-big:1.4em;--ck-font-size-large:1.8em;--ck-ui-component-min-height:2.3em}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset,.ck.ck-reset_all{background:transparent;border:0;box-sizing:border-box;height:auto;margin:0;padding:0;position:static;text-decoration:none;transition:none;vertical-align:middle;width:auto;word-wrap:break-word}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset_all{border-collapse:collapse;color:var(--ck-color-text);cursor:auto;float:none;font:normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);text-align:left;white-space:nowrap}.ck-reset_all .ck-rtl :not(.ck-reset_all-excluded *){text-align:right}.ck-reset_all iframe:not(.ck-reset_all-excluded *){vertical-align:inherit}.ck-reset_all textarea:not(.ck-reset_all-excluded *){white-space:pre-wrap}.ck-reset_all input[type=password]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text]:not(.ck-reset_all-excluded *),.ck-reset_all textarea:not(.ck-reset_all-excluded *){cursor:text}.ck-reset_all input[type=password][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all textarea[disabled]:not(.ck-reset_all-excluded *){cursor:default}.ck-reset_all fieldset:not(.ck-reset_all-excluded *){border:2px groove #dfdee3;padding:10px}.ck-reset_all button:not(.ck-reset_all-excluded *)::-moz-focus-inner{border:0;padding:0}.ck[dir=rtl],.ck[dir=rtl] .ck{text-align:right}:root{--ck-border-radius:2px;--ck-inner-shadow:2px 2px 3px var(--ck-color-shadow-inner) inset;--ck-drop-shadow:0 1px 2px 1px var(--ck-color-shadow-drop);--ck-drop-shadow-active:0 3px 6px 1px var(--ck-color-shadow-drop-active);--ck-spacing-unit:0.6em;--ck-spacing-large:calc(var(--ck-spacing-unit)*1.5);--ck-spacing-standard:var(--ck-spacing-unit);--ck-spacing-medium:calc(var(--ck-spacing-unit)*0.8);--ck-spacing-small:calc(var(--ck-spacing-unit)*0.5);--ck-spacing-tiny:calc(var(--ck-spacing-unit)*0.3);--ck-spacing-extra-tiny:calc(var(--ck-spacing-unit)*0.16)}","",{version:3,sources:["webpack://./../ckeditor5-ui/theme/globals/_hidden.css","webpack://./../ckeditor5-ui/theme/globals/_zindex.css","webpack://./../ckeditor5-ui/theme/globals/_transition.css","webpack://./../ckeditor5-ui/theme/globals/_poweredby.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_colors.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_disabled.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_focus.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_fonts.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_reset.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_rounded.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_shadow.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_spacing.css"],names:[],mappings:"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",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class which hides an element in DOM.\n */\n.ck-hidden {\n\t/* Override selector specificity. Otherwise, all elements with some display\n\tstyle defined will override this one, which is not a desired result. */\n\tdisplay: none !important;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-z-default: 1;\n\t--ck-z-panel: calc( var(--ck-z-default) + 999 );\n\t--ck-z-dialog: 9999;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A class that disables all transitions of the element and its children.\n */\n.ck-transitions-disabled,\n.ck-transitions-disabled * {\n\ttransition: none !important;\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-powered-by-line-height: 10px;\n\t--ck-powered-by-padding-vertical: 2px;\n\t--ck-powered-by-padding-horizontal: 4px;\n\t--ck-powered-by-text-color: hsl(0, 0%, 31%);\n\t--ck-powered-by-border-radius: var(--ck-border-radius);\n\t--ck-powered-by-background: hsl(0, 0%, 100%);\n\t--ck-powered-by-border-color: var(--ck-color-focus-border);\n}\n\n.ck.ck-balloon-panel.ck-powered-by-balloon {\n\t--ck-border-radius: var(--ck-powered-by-border-radius);\n\n\tbox-shadow: none;\n\tbackground: var(--ck-powered-by-background);\n\tmin-height: unset;\n\tz-index: calc( var(--ck-z-panel) - 1 );\n\n\t& .ck.ck-powered-by {\n\t\tline-height: var(--ck-powered-by-line-height);\n\n\t\t& a {\n\t\t\tcursor: pointer;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\topacity: .66;\n\t\t\tfilter: grayscale(80%);\n\t\t\tline-height: var(--ck-powered-by-line-height);\n\t\t\tpadding: var(--ck-powered-by-padding-vertical) var(--ck-powered-by-padding-horizontal);\n\t\t}\n\n\t\t& .ck-powered-by__label {\n\t\t\tfont-size: 7.5px;\n\t\t\tletter-spacing: -.2px;\n\t\t\tpadding-left: 2px;\n\t\t\ttext-transform: uppercase;\n\t\t\tfont-weight: bold;\n\t\t\tmargin-right: 4px;\n\t\t\tcursor: pointer;\n\t\t\tline-height: normal;\n\t\t\tcolor: var(--ck-powered-by-text-color);\n\n\t\t}\n\n\t\t& .ck-icon {\n\t\t\tdisplay: block;\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\t&:hover {\n\t\t\t& a {\n\t\t\t\tfilter: grayscale(0%);\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\t}\n\n\t&[class*="position_inside"] {\n\t\tborder-color: transparent;\n\t}\n\n\t&[class*="position_border"] {\n\t\tborder: var(--ck-focus-ring);\n\t\tborder-color: var(--ck-powered-by-border-color);\n\t}\n}\n\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-base-foreground: \t\t\t\t\t\t\t\thsl(0, 0%, 98%);\n\t--ck-color-base-background: \t\t\t\t\t\t\t\thsl(0, 0%, 100%);\n\t--ck-color-base-border: \t\t\t\t\t\t\t\t\thsl(220, 6%, 81%);\n\t--ck-color-base-action: \t\t\t\t\t\t\t\t\thsl(104, 50.2%, 42.5%);\n\t--ck-color-base-focus: \t\t\t\t\t\t\t\t\t\thsl(209, 92%, 70%);\n\t--ck-color-base-text: \t\t\t\t\t\t\t\t\t\thsl(0, 0%, 20%);\n\t--ck-color-base-active: \t\t\t\t\t\t\t\t\thsl(218.1, 100%, 58%);\n\t--ck-color-base-active-focus:\t\t\t\t\t\t\t\thsl(218.2, 100%, 52.5%);\n\t--ck-color-base-error:\t\t\t\t\t\t\t\t\t\thsl(15, 100%, 43%);\n\n\t/* -- Generic colors ------------------------------------------------------------------------ */\n\n\t--ck-color-focus-border-coordinates: \t\t\t\t\t\t218, 81.8%, 56.9%;\n\t--ck-color-focus-border: \t\t\t\t\t\t\t\t\thsl(var(--ck-color-focus-border-coordinates));\n\t--ck-color-focus-outer-shadow:\t\t\t\t\t\t\t\thsl(212.4, 89.3%, 89%);\n\t--ck-color-focus-disabled-shadow:\t\t\t\t\t\t\thsla(209, 90%, 72%,.3);\n\t--ck-color-focus-error-shadow:\t\t\t\t\t\t\t\thsla(9,100%,56%,.3);\n\t--ck-color-text: \t\t\t\t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-shadow-drop: \t\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.15);\n\t--ck-color-shadow-drop-active:\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.2);\n\t--ck-color-shadow-inner: \t\t\t\t\t\t\t\t\thsla(0, 0%, 0%, 0.1);\n\n\t/* -- Buttons ------------------------------------------------------------------------------- */\n\n\t--ck-color-button-default-background: \t\t\t\t\t\ttransparent;\n\t--ck-color-button-default-hover-background: \t\t\t\thsl(0, 0%, 94.1%);\n\t--ck-color-button-default-active-background: \t\t\t\thsl(0, 0%, 94.1%);\n\t--ck-color-button-default-disabled-background: \t\t\t\ttransparent;\n\n\t--ck-color-button-on-background: \t\t\t\t\t\t\thsl(212, 100%, 97.1%);\n\t--ck-color-button-on-hover-background: \t\t\t\t\t\thsl(211.7, 100%, 92.9%);\n\t--ck-color-button-on-active-background: \t\t\t\t\thsl(211.7, 100%, 92.9%);\n\t--ck-color-button-on-disabled-background: \t\t\t\t\thsl(211, 15%, 95%);\n\t--ck-color-button-on-color:\t\t\t\t\t\t\t\t\thsl(218.1, 100%, 58%);\n\n\n\t--ck-color-button-action-background: \t\t\t\t\t\tvar(--ck-color-base-action);\n\t--ck-color-button-action-hover-background: \t\t\t\t\thsl(104, 53.2%, 40.2%);\n\t--ck-color-button-action-active-background: \t\t\t\thsl(104, 53.2%, 40.2%);\n\t--ck-color-button-action-disabled-background: \t\t\t\thsl(104, 44%, 58%);\n\t--ck-color-button-action-text: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t--ck-color-button-save: \t\t\t\t\t\t\t\t\thsl(120, 100%, 27%);\n\t--ck-color-button-cancel: \t\t\t\t\t\t\t\t\thsl(15, 100%, 43%);\n\n\t--ck-color-switch-button-off-background:\t\t\t\t\thsl(0, 0%, 57.6%);\n\t--ck-color-switch-button-off-hover-background:\t\t\t\thsl(0, 0%, 49%);\n\t--ck-color-switch-button-on-background:\t\t\t\t\t\tvar(--ck-color-button-action-background);\n\t--ck-color-switch-button-on-hover-background:\t\t\t\thsl(104, 53.2%, 40.2%);\n\t--ck-color-switch-button-inner-background:\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-switch-button-inner-shadow:\t\t\t\t\t\thsla(0, 0%, 0%, 0.1);\n\n\t/* -- Dropdown ------------------------------------------------------------------------------ */\n\n\t--ck-color-dropdown-panel-background: \t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-dropdown-panel-border: \t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Dialog -------------------------------------------------------------------------------- */\n\n\t--ck-color-dialog-background: \t\t\t\t\t\t\t\tvar(--ck-custom-background);\n\t--ck-color-dialog-form-header-border: \t\t\t\t\t\tvar(--ck-custom-border);\n\n\t/* -- Input --------------------------------------------------------------------------------- */\n\n\t--ck-color-input-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-input-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\t--ck-color-input-error-border:\t\t\t\t\t\t\t\tvar(--ck-color-base-error);\n\t--ck-color-input-text: \t\t\t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-input-disabled-background: \t\t\t\t\t\thsl(0, 0%, 95%);\n\t--ck-color-input-disabled-border: \t\t\t\t\t\t\tvar(--ck-color-base-border);\n\t--ck-color-input-disabled-text: \t\t\t\t\t\t\thsl(0, 0%, 46%);\n\n\t/* -- List ---------------------------------------------------------------------------------- */\n\n\t--ck-color-list-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-list-button-hover-background: \t\t\t\t\tvar(--ck-color-button-default-hover-background);\n\t--ck-color-list-button-on-background: \t\t\t\t\t\tvar(--ck-color-button-on-color);\n\t--ck-color-list-button-on-background-focus: \t\t\t\tvar(--ck-color-button-on-color);\n\t--ck-color-list-button-on-text:\t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t/* -- Panel --------------------------------------------------------------------------------- */\n\n\t--ck-color-panel-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-panel-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Toolbar ------------------------------------------------------------------------------- */\n\n\t--ck-color-toolbar-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\t--ck-color-toolbar-border: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-border);\n\n\t/* -- Tooltip ------------------------------------------------------------------------------- */\n\n\t--ck-color-tooltip-background: \t\t\t\t\t\t\t\tvar(--ck-color-base-text);\n\t--ck-color-tooltip-text: \t\t\t\t\t\t\t\t\tvar(--ck-color-base-background);\n\n\t/* -- Engine -------------------------------------------------------------------------------- */\n\n\t--ck-color-engine-placeholder-text: \t\t\t\t\t\thsl(0, 0%, 44%);\n\n\t/* -- Upload -------------------------------------------------------------------------------- */\n\n\t--ck-color-upload-bar-background:\t\t \t\t\t\t\thsl(209, 92%, 70%);\n\n\t/* -- Link -------------------------------------------------------------------------------- */\n\n\t--ck-color-link-default:\t\t\t\t\t\t\t\t\thsl(240, 100%, 47%);\n\t--ck-color-link-selected-background:\t\t\t\t\t\thsla(201, 100%, 56%, 0.1);\n\t--ck-color-link-fake-selection:\t\t\t\t\t\t\t\thsla(201, 100%, 56%, 0.3);\n\n\t/* -- Search result highlight ---------------------------------------------------------------- */\n\n\t--ck-color-highlight-background:\t\t\t\t\t\t\thsl(60, 100%, 50%);\n\n\t/* -- Generic colors ------------------------------------------------------------------------- */\n\n\t--ck-color-light-red:\t\t\t\t\t\t\t\t\t\thsl(0, 100%, 90%);\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/**\n\t * An opacity value of disabled UI item.\n\t */\n\t--ck-disabled-opacity: .5;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/**\n\t * The geometry of the of focused element's outer shadow.\n\t */\n\t--ck-focus-outer-shadow-geometry: 0 0 0 3px;\n\n\t/**\n\t * A visual style of focused element's outer shadow.\n\t */\n\t--ck-focus-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);\n\n\t/**\n\t * A visual style of focused element's outer shadow (when disabled).\n\t */\n\t--ck-focus-disabled-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);\n\n\t/**\n\t * A visual style of focused element's outer shadow (when has errors).\n\t */\n\t--ck-focus-error-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);\n\n\t/**\n\t * A visual style of focused element's border or outline.\n\t */\n\t--ck-focus-ring: 1px solid var(--ck-color-focus-border);\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-font-size-base: 13px;\n\t--ck-line-height-base: 1.84615;\n\t--ck-font-face: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;\n\n\t--ck-font-size-tiny: 0.7em;\n\t--ck-font-size-small: 0.75em;\n\t--ck-font-size-normal: 1em;\n\t--ck-font-size-big: 1.4em;\n\t--ck-font-size-large: 1.8em;\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/* This is super-important. This is **manually** adjusted so a button without an icon\n\tis never smaller than a button with icon, additionally making sure that text-less buttons\n\tare perfect squares. The value is also shared by other components which should stay "in-line"\n\twith buttons. */\n\t--ck-ui-component-min-height: 2.3em;\n}\n\n/**\n * Resets an element, ignoring its children.\n */\n.ck.ck-reset,\n.ck.ck-reset_all,\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\n\tbox-sizing: border-box;\n\twidth: auto;\n\theight: auto;\n\tposition: static;\n\n\t/* Do not include inheritable rules here. */\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tbackground: transparent;\n\ttext-decoration: none;\n\tvertical-align: middle;\n\ttransition: none;\n\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/105 */\n\tword-wrap: break-word;\n}\n\n/**\n * Resets an element AND its children.\n */\n.ck.ck-reset_all,\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\n\t/* These are rule inherited by all children elements. */\n\tborder-collapse: collapse;\n\tfont: normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);\n\tcolor: var(--ck-color-text);\n\ttext-align: left;\n\twhite-space: nowrap;\n\tcursor: auto;\n\tfloat: none;\n}\n\n.ck-reset_all {\n\t& .ck-rtl *:not(.ck-reset_all-excluded *) {\n\t\ttext-align: right;\n\t}\n\n\t& iframe:not(.ck-reset_all-excluded *) {\n\t\t/* For IE */\n\t\tvertical-align: inherit;\n\t}\n\n\t& textarea:not(.ck-reset_all-excluded *) {\n\t\twhite-space: pre-wrap;\n\t}\n\n\t& textarea:not(.ck-reset_all-excluded *),\n\t& input[type="text"]:not(.ck-reset_all-excluded *),\n\t& input[type="password"]:not(.ck-reset_all-excluded *) {\n\t\tcursor: text;\n\t}\n\n\t& textarea[disabled]:not(.ck-reset_all-excluded *),\n\t& input[type="text"][disabled]:not(.ck-reset_all-excluded *),\n\t& input[type="password"][disabled]:not(.ck-reset_all-excluded *) {\n\t\tcursor: default;\n\t}\n\n\t& fieldset:not(.ck-reset_all-excluded *) {\n\t\tpadding: 10px;\n\t\tborder: 2px groove hsl(255, 7%, 88%);\n\t}\n\n\t& button:not(.ck-reset_all-excluded *)::-moz-focus-inner {\n\t\t/* See http://stackoverflow.com/questions/5517744/remove-extra-button-spacing-padding-in-firefox */\n\t\tpadding: 0;\n\t\tborder: 0\n\t}\n}\n\n/**\n * Default UI rules for RTL languages.\n */\n.ck[dir="rtl"],\n.ck[dir="rtl"] .ck {\n\ttext-align: right;\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Default border-radius value.\n */\n:root{\n\t--ck-border-radius: 2px;\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t/**\n\t * A visual style of element's inner shadow (i.e. input).\n\t */\n\t--ck-inner-shadow: 2px 2px 3px var(--ck-color-shadow-inner) inset;\n\n\t/**\n\t * A visual style of element's drop shadow (i.e. panel).\n\t */\n\t--ck-drop-shadow: 0 1px 2px 1px var(--ck-color-shadow-drop);\n\n\t/**\n\t * A visual style of element's active shadow (i.e. comment or suggestion).\n\t */\n\t--ck-drop-shadow-active: 0 3px 6px 1px var(--ck-color-shadow-drop-active);\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-spacing-unit: \t\t\t\t\t\t0.6em;\n\t--ck-spacing-large: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 1.5);\n\t--ck-spacing-standard: \t\t\t\t\tvar(--ck-spacing-unit);\n\t--ck-spacing-medium: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.8);\n\t--ck-spacing-small: \t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.5);\n\t--ck-spacing-tiny: \t\t\t\t\t\tcalc(var(--ck-spacing-unit) * 0.3);\n\t--ck-spacing-extra-tiny: \t\t\t\tcalc(var(--ck-spacing-unit) * 0.16);\n}\n"],sourceRoot:""}]);const a=s},695:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,":root{--ck-color-resizer:var(--ck-color-focus-border);--ck-color-resizer-tooltip-background:#262626;--ck-color-resizer-tooltip-text:#f2f2f2;--ck-resizer-border-radius:var(--ck-border-radius);--ck-resizer-tooltip-offset:10px;--ck-resizer-tooltip-height:calc(var(--ck-spacing-small)*2 + 10px)}.ck .ck-widget,.ck .ck-widget.ck-widget_with-selection-handle{position:relative}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{position:absolute}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{display:block}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{visibility:visible}.ck .ck-size-view{background:var(--ck-color-resizer-tooltip-background);border:1px solid var(--ck-color-resizer-tooltip-text);border-radius:var(--ck-resizer-border-radius);color:var(--ck-color-resizer-tooltip-text);display:block;font-size:var(--ck-font-size-tiny);height:var(--ck-resizer-tooltip-height);line-height:var(--ck-resizer-tooltip-height);padding:0 var(--ck-spacing-small)}.ck .ck-size-view.ck-orientation-above-center,.ck .ck-size-view.ck-orientation-bottom-left,.ck .ck-size-view.ck-orientation-bottom-right,.ck .ck-size-view.ck-orientation-top-left,.ck .ck-size-view.ck-orientation-top-right{position:absolute}.ck .ck-size-view.ck-orientation-top-left{left:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-top-right{right:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-right{bottom:var(--ck-resizer-tooltip-offset);right:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-left{bottom:var(--ck-resizer-tooltip-offset);left:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-above-center{left:50%;top:calc(var(--ck-resizer-tooltip-height)*-1);transform:translate(-50%)}:root{--ck-widget-outline-thickness:3px;--ck-widget-handler-icon-size:16px;--ck-widget-handler-animation-duration:200ms;--ck-widget-handler-animation-curve:ease;--ck-color-widget-blurred-border:#dedede;--ck-color-widget-hover-border:#ffc83d;--ck-color-widget-editable-focus-background:var(--ck-color-base-background);--ck-color-widget-drag-handler-icon-color:var(--ck-color-base-background)}.ck .ck-widget{outline-color:transparent;outline-style:solid;outline-width:var(--ck-widget-outline-thickness);transition:outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}@media (prefers-reduced-motion:reduce){.ck .ck-widget{transition:none}}.ck .ck-widget.ck-widget_selected,.ck .ck-widget.ck-widget_selected:hover{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border)}.ck .ck-widget:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-editor__nested-editable{border:1px solid transparent}.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}@media (forced-colors:none){.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{background-color:var(--ck-color-widget-editable-focus-background)}}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{background-color:transparent;border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0;box-sizing:border-box;left:calc(0px - var(--ck-widget-outline-thickness));opacity:0;padding:4px;top:0;transform:translateY(-100%);transition:background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}@media (prefers-reduced-motion:reduce){.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{transition:none}}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{color:var(--ck-color-widget-drag-handler-icon-color);height:var(--ck-widget-handler-icon-size);width:var(--ck-widget-handler-icon-size)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:0;transition:opacity .3s var(--ck-widget-handler-animation-curve)}@media (prefers-reduced-motion:reduce){.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{transition:none}}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator{opacity:1}.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{background-color:var(--ck-color-widget-hover-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{background-color:var(--ck-color-focus-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:1}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{left:auto;right:calc(0px - var(--ck-widget-outline-thickness))}.ck.ck-editor__editable.ck-read-only .ck-widget{transition:none}.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected){--ck-widget-outline-thickness:0px}.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle,.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover{outline-color:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle:hover,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable blockquote>.ck-widget.ck-widget_with-selection-handle:first-child,.ck.ck-editor__editable>.ck-widget.ck-widget_with-selection-handle:first-child{margin-top:calc(1em + var(--ck-widget-handler-icon-size))}","",{version:3,sources:["webpack://./../ckeditor5-widget/theme/widget.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-widget/widget.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css","webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css","webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css"],names:[],mappings:"AAKA,MACC,+CAAgD,CAChD,6CAAsD,CACtD,uCAAgD,CAEhD,kDAAmD,CACnD,gCAAiC,CACjC,kEACD,CAOA,8DAEC,iBAqBD,CAnBC,4EACC,iBAOD,CALC,qFAGC,aACD,CASD,iLACC,kBACD,CAGD,kBACC,qDAAsD,CAEtD,qDAAsD,CACtD,6CAA8C,CAF9C,0CAA2C,CAI3C,aAAc,CADd,kCAAmC,CAGnC,uCAAwC,CACxC,4CAA6C,CAF7C,iCAsCD,CAlCC,8NAKC,iBACD,CAEA,0CAEC,qCAAsC,CADtC,oCAED,CAEA,2CAEC,sCAAuC,CADvC,oCAED,CAEA,8CACC,uCAAwC,CACxC,sCACD,CAEA,6CACC,uCAAwC,CACxC,qCACD,CAGA,8CAEC,QAAS,CADT,6CAAgD,CAEhD,yBACD,CChFD,MACC,iCAAkC,CAClC,kCAAmC,CACnC,4CAA6C,CAC7C,wCAAyC,CAEzC,wCAAiD,CACjD,sCAAkD,CAClD,2EAA4E,CAC5E,yEACD,CAEA,eAGC,yBAA0B,CAD1B,mBAAoB,CADpB,gDAAiD,CAGjD,6GAcD,CAZC,uCAND,eAOE,eAWF,CAVC,CAEA,0EAEC,6EACD,CAEA,qBACC,iDACD,CAGD,gCACC,4BAYD,CARC,yGCnCA,2BAA2B,CCF3B,qCAA8B,CDC9B,YD2CA,CGvCA,4BACC,yGHoCC,iEGlCD,CACD,CHuCA,4EAKC,4BAA6B,CAa7B,iEAAkE,CAhBlE,qBAAsB,CAoBtB,mDAAoD,CAhBpD,SAAU,CALV,WAAY,CAsBZ,KAAM,CAFN,2BAA4B,CAT5B,6SAwCD,CA3BC,uCAzBD,4EA0BE,eA0BF,CAzBC,CAEA,qFAIC,oDAAqD,CADrD,yCAA0C,CAD1C,wCAeD,CAVC,kHACC,SAAU,CAGV,+DAKD,CAHC,uCAND,kHAOE,eAEF,CADC,CAKF,wHACC,SACD,CAID,kFAEC,oDAAqD,CADrD,SAED,CAKC,oMAEC,6CAA8C,CAD9C,SAOD,CAHC,gRACC,SACD,CAOH,qFACC,SAAU,CACV,oDACD,CAGA,gDAEC,eAkBD,CAhBC,yEAOC,iCACD,CAGC,gOAEC,gDACD,CAOD,wIAEC,mDAQD,CALE,ghBAEC,gDACD,CAKH,yKAOC,yDACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-resizer: var(--ck-color-focus-border);\n\t--ck-color-resizer-tooltip-background: hsl(0, 0%, 15%);\n\t--ck-color-resizer-tooltip-text: hsl(0, 0%, 95%);\n\n\t--ck-resizer-border-radius: var(--ck-border-radius);\n\t--ck-resizer-tooltip-offset: 10px;\n\t--ck-resizer-tooltip-height: calc(var(--ck-spacing-small) * 2 + 10px);\n}\n\n.ck .ck-widget {\n\t/* This is neccessary for type around UI to be positioned properly. */\n\tposition: relative;\n}\n\n.ck .ck-widget.ck-widget_with-selection-handle {\n\t/* Make the widget wrapper a relative positioning container for the drag handle. */\n\tposition: relative;\n\n\t& .ck-widget__selection-handle {\n\t\tposition: absolute;\n\n\t\t& .ck-icon {\n\t\t\t/* Make sure the icon in not a subject to font-size or line-height to avoid\n\t\t\tunnecessary spacing around it. */\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t/* Show the selection handle on mouse hover over the widget, but not for nested widgets. */\n\t&:hover > .ck-widget__selection-handle {\n\t\tvisibility: visible;\n\t}\n\n\t/* Show the selection handle when the widget is selected, but not for nested widgets. */\n\t&.ck-widget_selected > .ck-widget__selection-handle {\n\t\tvisibility: visible;\n\t}\n}\n\n.ck .ck-size-view {\n\tbackground: var(--ck-color-resizer-tooltip-background);\n\tcolor: var(--ck-color-resizer-tooltip-text);\n\tborder: 1px solid var(--ck-color-resizer-tooltip-text);\n\tborder-radius: var(--ck-resizer-border-radius);\n\tfont-size: var(--ck-font-size-tiny);\n\tdisplay: block;\n\tpadding: 0 var(--ck-spacing-small);\n\theight: var(--ck-resizer-tooltip-height);\n\tline-height: var(--ck-resizer-tooltip-height);\n\n\t&.ck-orientation-top-left,\n\t&.ck-orientation-top-right,\n\t&.ck-orientation-bottom-right,\n\t&.ck-orientation-bottom-left,\n\t&.ck-orientation-above-center {\n\t\tposition: absolute;\n\t}\n\n\t&.ck-orientation-top-left {\n\t\ttop: var(--ck-resizer-tooltip-offset);\n\t\tleft: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-top-right {\n\t\ttop: var(--ck-resizer-tooltip-offset);\n\t\tright: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-bottom-right {\n\t\tbottom: var(--ck-resizer-tooltip-offset);\n\t\tright: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t&.ck-orientation-bottom-left {\n\t\tbottom: var(--ck-resizer-tooltip-offset);\n\t\tleft: var(--ck-resizer-tooltip-offset);\n\t}\n\n\t/* Class applied if the widget is too small to contain the size label */\n\t&.ck-orientation-above-center {\n\t\ttop: calc(var(--ck-resizer-tooltip-height) * -1);\n\t\tleft: 50%;\n\t\ttransform: translate(-50%);\n\t}\n}\n",'/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../mixins/_focus.css";\n@import "../mixins/_shadow.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css";\n\n:root {\n\t--ck-widget-outline-thickness: 3px;\n\t--ck-widget-handler-icon-size: 16px;\n\t--ck-widget-handler-animation-duration: 200ms;\n\t--ck-widget-handler-animation-curve: ease;\n\n\t--ck-color-widget-blurred-border: hsl(0, 0%, 87%);\n\t--ck-color-widget-hover-border: hsl(43, 100%, 62%);\n\t--ck-color-widget-editable-focus-background: var(--ck-color-base-background);\n\t--ck-color-widget-drag-handler-icon-color: var(--ck-color-base-background);\n}\n\n.ck .ck-widget {\n\toutline-width: var(--ck-widget-outline-thickness);\n\toutline-style: solid;\n\toutline-color: transparent;\n\ttransition: outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\ttransition: none;\n\t}\n\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border);\n\t}\n\n\t&:hover {\n\t\toutline-color: var(--ck-color-widget-hover-border);\n\t}\n}\n\n.ck .ck-editor__nested-editable {\n\tborder: 1px solid transparent;\n\n\t/* The :focus style is applied before .ck-editor__nested-editable_focused class is rendered in the view.\n\tThese styles show a different border for a blink of an eye, so `:focus` need to have same styles applied. */\n\t&.ck-editor__nested-editable_focused,\n\t&:focus {\n\t\t@mixin ck-focus-ring;\n\t\t@mixin ck-box-shadow var(--ck-inner-shadow);\n\t\t@mixin ck-media-default-colors {\n\t\t\tbackground-color: var(--ck-color-widget-editable-focus-background);\n\t\t}\n\t}\n}\n\n.ck .ck-widget.ck-widget_with-selection-handle {\n\t& .ck-widget__selection-handle {\n\t\tpadding: 4px;\n\t\tbox-sizing: border-box;\n\n\t\t/* Background and opacity will be animated as the handler shows up or the widget gets selected. */\n\t\tbackground-color: transparent;\n\t\topacity: 0;\n\n\t\t/* Transition:\n\t\t * background-color for the .ck-widget_selected state change,\n\t\t * visibility for hiding the handler,\n\t\t * opacity for the proper look of the icon when the handler disappears. */\n\t\ttransition:\n\t\t\tbackground-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\n\t\t\tvisibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\n\t\t\topacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t\t/* Make only top corners round. */\n\t\tborder-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;\n\n\t\t/* Place the drag handler outside the widget wrapper. */\n\t\ttransform: translateY(-100%);\n\t\tleft: calc(0px - var(--ck-widget-outline-thickness));\n\t\ttop: 0;\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\ttransition: none;\n\t\t}\n\n\t\t& .ck-icon {\n\t\t\t/* Make sure the dimensions of the icon are independent of the fon-size of the content. */\n\t\t\twidth: var(--ck-widget-handler-icon-size);\n\t\t\theight: var(--ck-widget-handler-icon-size);\n\t\t\tcolor: var(--ck-color-widget-drag-handler-icon-color);\n\n\t\t\t/* The "selected" part of the icon is invisible by default */\n\t\t\t& .ck-icon__selected-indicator {\n\t\t\t\topacity: 0;\n\n\t\t\t\t/* Note: The animation is longer on purpose. Simply feels better. */\n\t\t\t\ttransition: opacity 300ms var(--ck-widget-handler-animation-curve);\n\n\t\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\t\ttransition: none;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/* Advertise using the look of the icon that once clicked the handler, the widget will be selected. */\n\t\t&:hover .ck-icon .ck-icon__selected-indicator {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t/* Show the selection handler on mouse hover over the widget, but not for nested widgets. */\n\t&:hover > .ck-widget__selection-handle {\n\t\topacity: 1;\n\t\tbackground-color: var(--ck-color-widget-hover-border);\n\t}\n\n\t/* Show the selection handler when the widget is selected, but not for nested widgets. */\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\t& > .ck-widget__selection-handle {\n\t\t\topacity: 1;\n\t\t\tbackground-color: var(--ck-color-focus-border);\n\n\t\t\t/* When the widget is selected, notify the user using the proper look of the icon. */\n\t\t\t& .ck-icon .ck-icon__selected-indicator {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* In a RTL environment, align the selection handler to the right side of the widget */\n/* stylelint-disable-next-line no-descending-specificity */\n.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {\n\tleft: auto;\n\tright: calc(0px - var(--ck-widget-outline-thickness));\n}\n\n/* https://github.com/ckeditor/ckeditor5/issues/6415 */\n.ck.ck-editor__editable.ck-read-only .ck-widget {\n\t/* Prevent the :hover outline from showing up because of the used outline-color transition. */\n\ttransition: none;\n\n\t&:not(.ck-widget_selected) {\n\t\t/* Disable visual effects of hover/active widget when CKEditor is in readOnly mode.\n\t\t * See: https://github.com/ckeditor/ckeditor5/issues/1261\n\t\t *\n\t\t * Leave the unit because this custom property is used in calc() by other features.\n\t\t * See: https://github.com/ckeditor/ckeditor5/issues/6775\n\t\t */\n\t\t--ck-widget-outline-thickness: 0px;\n\t}\n\n\t&.ck-widget_with-selection-handle {\n\t\t& .ck-widget__selection-handle,\n\t\t& .ck-widget__selection-handle:hover {\n\t\t\tbackground: var(--ck-color-widget-blurred-border);\n\t\t}\n\t}\n}\n\n/* Style the widget when it\'s selected but the editable it belongs to lost focus. */\n/* stylelint-disable-next-line no-descending-specificity */\n.ck.ck-editor__editable.ck-blurred .ck-widget {\n\t&.ck-widget_selected,\n\t&.ck-widget_selected:hover {\n\t\toutline-color: var(--ck-color-widget-blurred-border);\n\n\t\t&.ck-widget_with-selection-handle {\n\t\t\t& > .ck-widget__selection-handle,\n\t\t\t& > .ck-widget__selection-handle:hover {\n\t\t\t\tbackground: var(--ck-color-widget-blurred-border);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.ck.ck-editor__editable > .ck-widget.ck-widget_with-selection-handle:first-child,\n.ck.ck-editor__editable blockquote > .ck-widget.ck-widget_with-selection-handle:first-child {\n\t/* Do not crop selection handler if a widget is a first-child in the blockquote or in the root editable.\n\tIn fact, anything with overflow: hidden.\n\thttps://github.com/ckeditor/ckeditor5-block-quote/issues/28\n\thttps://github.com/ckeditor/ckeditor5-widget/issues/44\n\thttps://github.com/ckeditor/ckeditor5-widget/issues/66 */\n\tmargin-top: calc(1em + var(--ck-widget-handler-icon-size));\n}\n',"/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A visual style of focused element's border.\n */\n@define-mixin ck-focus-ring {\n\t/* Disable native outline. */\n\toutline: none;\n\tborder: var(--ck-focus-ring)\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * A helper to combine multiple shadows.\n */\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\n\tbox-shadow: $shadowA, $shadowB;\n}\n\n/**\n * Gives an element a drop shadow so it looks like a floating panel.\n */\n@define-mixin ck-drop-shadow {\n\t@mixin ck-box-shadow var(--ck-drop-shadow);\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@define-mixin ck-media-forced-colors {\n\t@media (forced-colors: active) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n\n@define-mixin ck-media-default-colors {\n\t@media (forced-colors: none) {\n\t\t& {\n\t\t\t@mixin-content;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const a=s},4095:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,".ck .ck-widget_with-resizer{position:relative}.ck .ck-widget__resizer{display:none;left:0;pointer-events:none;position:absolute;top:0}.ck-focused .ck-widget_with-resizer.ck-widget_selected>.ck-widget__resizer{display:block}.ck .ck-widget__resizer__handle{pointer-events:all;position:absolute}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{cursor:nwse-resize}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{cursor:nesw-resize}:root{--ck-resizer-size:10px;--ck-resizer-offset:calc(var(--ck-resizer-size)/-2 - 2px);--ck-resizer-border-width:1px}.ck .ck-widget__resizer{outline:1px solid var(--ck-color-resizer)}.ck .ck-widget__resizer__handle{background:var(--ck-color-focus-border);border:var(--ck-resizer-border-width) solid #fff;border-radius:var(--ck-resizer-border-radius);height:var(--ck-resizer-size);width:var(--ck-resizer-size)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{left:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{right:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right{bottom:var(--ck-resizer-offset);right:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left{bottom:var(--ck-resizer-offset);left:var(--ck-resizer-offset)}","",{version:3,sources:["webpack://./../ckeditor5-widget/theme/widgetresize.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-widget/widgetresize.css"],names:[],mappings:"AAKA,4BAEC,iBACD,CAEA,wBACC,YAAa,CAMb,MAAO,CAFP,mBAAoB,CAHpB,iBAAkB,CAMlB,KACD,CAGC,2EACC,aACD,CAGD,gCAIC,kBAAmB,CAHnB,iBAcD,CATC,4IAEC,kBACD,CAEA,4IAEC,kBACD,CCpCD,MACC,sBAAuB,CAGvB,yDAAiE,CACjE,6BACD,CAEA,wBACC,yCACD,CAEA,gCAGC,uCAAwC,CACxC,gDAA6D,CAC7D,6CAA8C,CAH9C,6BAA8B,CAD9B,4BAyBD,CAnBC,oEAEC,6BAA8B,CAD9B,4BAED,CAEA,qEAEC,8BAA+B,CAD/B,4BAED,CAEA,wEACC,+BAAgC,CAChC,8BACD,CAEA,uEACC,+BAAgC,CAChC,6BACD",sourcesContent:["/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-widget_with-resizer {\n\t/* Make the widget wrapper a relative positioning container for the drag handle. */\n\tposition: relative;\n}\n\n.ck .ck-widget__resizer {\n\tdisplay: none;\n\tposition: absolute;\n\n\t/* The wrapper itself should not interfere with the pointer device, only the handles should. */\n\tpointer-events: none;\n\n\tleft: 0;\n\ttop: 0;\n}\n\n.ck-focused .ck-widget_with-resizer.ck-widget_selected {\n\t& > .ck-widget__resizer {\n\t\tdisplay: block;\n\t}\n}\n\n.ck .ck-widget__resizer__handle {\n\tposition: absolute;\n\n\t/* Resizers are the only UI elements that should interfere with a pointer device. */\n\tpointer-events: all;\n\n\t&.ck-widget__resizer__handle-top-left,\n\t&.ck-widget__resizer__handle-bottom-right {\n\t\tcursor: nwse-resize;\n\t}\n\n\t&.ck-widget__resizer__handle-top-right,\n\t&.ck-widget__resizer__handle-bottom-left {\n\t\tcursor: nesw-resize;\n\t}\n}\n","/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-resizer-size: 10px;\n\n\t/* Set the resizer with a 50% offset. */\n\t--ck-resizer-offset: calc( ( var(--ck-resizer-size) / -2 ) - 2px);\n\t--ck-resizer-border-width: 1px;\n}\n\n.ck .ck-widget__resizer {\n\toutline: 1px solid var(--ck-color-resizer);\n}\n\n.ck .ck-widget__resizer__handle {\n\twidth: var(--ck-resizer-size);\n\theight: var(--ck-resizer-size);\n\tbackground: var(--ck-color-focus-border);\n\tborder: var(--ck-resizer-border-width) solid hsl(0, 0%, 100%);\n\tborder-radius: var(--ck-resizer-border-radius);\n\n\t&.ck-widget__resizer__handle-top-left {\n\t\ttop: var(--ck-resizer-offset);\n\t\tleft: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-top-right {\n\t\ttop: var(--ck-resizer-offset);\n\t\tright: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-bottom-right {\n\t\tbottom: var(--ck-resizer-offset);\n\t\tright: var(--ck-resizer-offset);\n\t}\n\n\t&.ck-widget__resizer__handle-bottom-left {\n\t\tbottom: var(--ck-resizer-offset);\n\t\tleft: var(--ck-resizer-offset);\n\t}\n}\n"],sourceRoot:""}]);const a=s},8508:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var o=n(9372),i=n.n(o),r=n(935),s=n.n(r)()(i());s.push([t.id,'.ck .ck-widget .ck-widget__type-around__button{display:block;overflow:hidden;position:absolute;z-index:var(--ck-z-default)}.ck .ck-widget .ck-widget__type-around__button svg{left:50%;position:absolute;top:50%;z-index:calc(var(--ck-z-default) + 2)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before{left:min(10%,30px);top:calc(var(--ck-widget-outline-thickness)*-.5);transform:translateY(-50%)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after{bottom:calc(var(--ck-widget-outline-thickness)*-.5);right:min(10%,30px);transform:translateY(50%)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{content:"";display:block;left:1px;position:absolute;top:1px;z-index:calc(var(--ck-z-default) + 1)}.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:none;left:0;position:absolute;right:0}.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__fake-caret{left:calc(var(--ck-widget-outline-thickness)*-1);right:calc(var(--ck-widget-outline-thickness)*-1)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:block;top:calc(var(--ck-widget-outline-thickness)*-1 - 1px)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__fake-caret{bottom:calc(var(--ck-widget-outline-thickness)*-1 - 1px);display:block}.ck.ck-editor__editable.ck-read-only .ck-widget__type-around,.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around,.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around{display:none}:root{--ck-widget-type-around-button-size:20px;--ck-color-widget-type-around-button-active:var(--ck-color-focus-border);--ck-color-widget-type-around-button-hover:var(--ck-color-widget-hover-border);--ck-color-widget-type-around-button-blurred-editable:var(--ck-color-widget-blurred-border);--ck-color-widget-type-around-button-radar-start-alpha:0;--ck-color-widget-type-around-button-radar-end-alpha:.3;--ck-color-widget-type-around-button-icon:var(--ck-color-base-background)}.ck .ck-widget .ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button);border-radius:100px;height:var(--ck-widget-type-around-button-size);opacity:0;pointer-events:none;transition:opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);width:var(--ck-widget-type-around-button-size)}@media (prefers-reduced-motion:reduce){.ck .ck-widget .ck-widget__type-around__button{transition:none}}.ck .ck-widget .ck-widget__type-around__button svg{height:8px;margin-top:1px;transform:translate(-50%,-50%);transition:transform .5s ease;width:10px}@media (prefers-reduced-motion:reduce){.ck .ck-widget .ck-widget__type-around__button svg{transition:none}}.ck .ck-widget .ck-widget__type-around__button svg *{stroke-dasharray:10;stroke-dashoffset:0;fill:none;stroke:var(--ck-color-widget-type-around-button-icon);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.ck .ck-widget .ck-widget__type-around__button svg line{stroke-dasharray:7}.ck .ck-widget .ck-widget__type-around__button:hover{animation:ck-widget-type-around-button-sonar 1s ease infinite}.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:ck-widget-type-around-arrow-dash 2s linear}.ck .ck-widget .ck-widget__type-around__button:hover svg line{animation:ck-widget-type-around-arrow-tip-dash 2s linear}@media (prefers-reduced-motion:reduce){.ck .ck-widget .ck-widget__type-around__button:hover,.ck .ck-widget .ck-widget__type-around__button:hover svg line,.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:none}}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:1;pointer-events:auto}.ck .ck-widget:not(.ck-widget_selected)>.ck-widget__type-around>.ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button-hover)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover{background:var(--ck-color-widget-type-around-button-active)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{background:linear-gradient(135deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3));border-radius:100px;height:calc(var(--ck-widget-type-around-button-size) - 2px);width:calc(var(--ck-widget-type-around-button-size) - 2px)}.ck .ck-widget.ck-widget_with-selection-handle>.ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:20px}.ck .ck-widget .ck-widget__type-around__fake-caret{animation:ck-widget-type-around-fake-caret-pulse 1s linear infinite normal forwards;background:var(--ck-color-base-text);height:1px;outline:1px solid hsla(0,0%,100%,.5);pointer-events:none}.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after,.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before{outline-color:transparent}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected:hover,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{opacity:0}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:0;margin-right:20px}.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover){background:var(--ck-color-widget-type-around-button-blurred-editable)}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover) svg *{stroke:#999}@keyframes ck-widget-type-around-arrow-dash{0%{stroke-dashoffset:10}20%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-arrow-tip-dash{0%,20%{stroke-dashoffset:7}40%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-button-sonar{0%{box-shadow:0 0 0 0 hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}50%{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-end-alpha))}to{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}}@keyframes ck-widget-type-around-fake-caret-pulse{0%{opacity:1}49%{opacity:1}50%{opacity:0}99%{opacity:0}to{opacity:1}}',"",{version:3,sources:["webpack://./../ckeditor5-widget/theme/widgettypearound.css","webpack://./../ckeditor5-theme-lark/theme/ckeditor5-widget/widgettypearound.css"],names:[],mappings:"AASC,+CACC,aAAc,CAEd,eAAgB,CADhB,iBAAkB,CAElB,2BAwBD,CAtBC,mDAGC,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAEA,qFAGC,kBAAoB,CADpB,gDAAoD,CAGpD,0BACD,CAEA,oFAEC,mDAAuD,CACvD,mBAAqB,CAErB,yBACD,CAUA,mLACC,UAAW,CACX,aAAc,CAGd,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAMD,2EACC,YAAa,CAEb,MAAO,CADP,iBAAkB,CAElB,OACD,CAOA,iFACC,gDAAqD,CACrD,iDACD,CAKA,wHAEC,aAAc,CADd,qDAED,CAKA,uHACC,wDAA6D,CAC7D,aACD,CAoBD,mOACC,YACD,CC3GA,MACC,wCAAyC,CACzC,wEAAyE,CACzE,8EAA+E,CAC/E,2FAA4F,CAC5F,wDAAyD,CACzD,uDAAwD,CACxD,yEACD,CAgBC,+CAGC,oDAAqD,CACrD,mBAAoB,CAFpB,+CAAgD,CAVjD,SAAU,CACV,mBAAoB,CAYnB,uMAAyM,CAJzM,8CAwED,CAhEC,uCATD,+CAUE,eA+DF,CA9DC,CAEA,mDAEC,UAAW,CAGX,cAAe,CAFf,8BAA+B,CAC/B,6BAA8B,CAH9B,UAwBD,CAlBC,uCAPD,mDAQE,eAiBF,CAhBC,CAEA,qDACC,mBAAoB,CACpB,mBAAoB,CAEpB,SAAU,CACV,qDAAsD,CACtD,kBAAmB,CACnB,oBAAqB,CACrB,qBACD,CAEA,wDACC,kBACD,CAGD,qDAIC,6DA4BD,CAtBE,kEACC,oDACD,CAEA,8DACC,wDACD,CAGD,uCAQE,qLACC,cACD,CAEF,CASD,uKA7FD,SAAU,CACV,mBA8FC,CAOD,gGACC,0DACD,CAOA,uKAEC,2DAQD,CANC,mLAIC,uEAAkF,CADlF,mBAAoB,CADpB,2DAA4D,CAD5D,0DAID,CAOD,8GACC,gBACD,CAKA,mDAGC,mFAAoF,CAOpF,oCAAqC,CARrC,UAAW,CAOX,oCAAwC,CARxC,mBAUD,CAOC,6JAEC,yBACD,CAUA,yKACC,iDACD,CAMA,uOAxKD,SAAU,CACV,mBAyKC,CAoBA,6yBACC,SACD,CASF,uHACC,aAAc,CACd,iBACD,CAYG,iRAxNF,SAAU,CACV,mBAyNE,CAQH,kIACC,qEAKD,CAHC,wIACC,WACD,CAGD,4CACC,GACC,oBACD,CACA,OACC,mBACD,CACD,CAEA,gDACC,OACC,mBACD,CACA,OACC,mBACD,CACD,CAEA,8CACC,GACC,6HACD,CACA,IACC,6HACD,CACA,GACC,+HACD,CACD,CAEA,kDACC,GACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,GACC,SACD,CACD",sourcesContent:['/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck .ck-widget {\n\t/*\n\t * Styles of the type around buttons\n\t */\n\t& .ck-widget__type-around__button {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\toverflow: hidden;\n\t\tz-index: var(--ck-z-default);\n\n\t\t& svg {\n\t\t\tposition: absolute;\n\t\t\ttop: 50%;\n\t\t\tleft: 50%;\n\t\t\tz-index: calc(var(--ck-z-default) + 2);\n\t\t}\n\n\t\t&.ck-widget__type-around__button_before {\n\t\t\t/* Place it in the middle of the outline */\n\t\t\ttop: calc(-0.5 * var(--ck-widget-outline-thickness));\n\t\t\tleft: min(10%, 30px);\n\n\t\t\ttransform: translateY(-50%);\n\t\t}\n\n\t\t&.ck-widget__type-around__button_after {\n\t\t\t/* Place it in the middle of the outline */\n\t\t\tbottom: calc(-0.5 * var(--ck-widget-outline-thickness));\n\t\t\tright: min(10%, 30px);\n\n\t\t\ttransform: translateY(50%);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the buttons when:\n\t * - the widget is selected,\n\t * - or the button is being hovered (regardless of the widget state).\n\t */\n\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\n\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\n\t\t&::after {\n\t\t\tcontent: "";\n\t\t\tdisplay: block;\n\t\t\tposition: absolute;\n\t\t\ttop: 1px;\n\t\t\tleft: 1px;\n\t\t\tz-index: calc(var(--ck-z-default) + 1);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.\n\t */\n\t& > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tdisplay: none;\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n\n\t/*\n\t * When the widget is hovered the "fake caret" would normally be narrower than the\n\t * extra outline displayed around the widget. Let\'s extend the "fake caret" to match\n\t * the full width of the widget.\n\t */\n\t&:hover > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tleft: calc( -1 * var(--ck-widget-outline-thickness) );\n\t\tright: calc( -1 * var(--ck-widget-outline-thickness) );\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" when it should be displayed before the widget (backward keyboard navigation).\n\t */\n\t&.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\ttop: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\n\t\tdisplay: block;\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" when it should be displayed after the widget (forward keyboard navigation).\n\t */\n\t&.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\n\t\tbottom: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\n\t\tdisplay: block;\n\t}\n}\n\n/*\n * Integration with the read-only mode of the editor.\n */\n.ck.ck-editor__editable.ck-read-only .ck-widget__type-around {\n\tdisplay: none;\n}\n\n/*\n * Integration with the restricted editing mode (feature) of the editor.\n */\n.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around {\n\tdisplay: none;\n}\n\n/*\n * Integration with the #isEnabled property of the WidgetTypeAround plugin.\n */\n.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around {\n\tdisplay: none;\n}\n','/*\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-widget-type-around-button-size: 20px;\n\t--ck-color-widget-type-around-button-active: var(--ck-color-focus-border);\n\t--ck-color-widget-type-around-button-hover: var(--ck-color-widget-hover-border);\n\t--ck-color-widget-type-around-button-blurred-editable: var(--ck-color-widget-blurred-border);\n\t--ck-color-widget-type-around-button-radar-start-alpha: 0;\n\t--ck-color-widget-type-around-button-radar-end-alpha: .3;\n\t--ck-color-widget-type-around-button-icon: var(--ck-color-base-background);\n}\n\n@define-mixin ck-widget-type-around-button-visible {\n\topacity: 1;\n\tpointer-events: auto;\n}\n\n@define-mixin ck-widget-type-around-button-hidden {\n\topacity: 0;\n\tpointer-events: none;\n}\n\n.ck .ck-widget {\n\t/*\n\t * Styles of the type around buttons\n\t */\n\t& .ck-widget__type-around__button {\n\t\twidth: var(--ck-widget-type-around-button-size);\n\t\theight: var(--ck-widget-type-around-button-size);\n\t\tbackground: var(--ck-color-widget-type-around-button);\n\t\tborder-radius: 100px;\n\t\ttransition: opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\n\n\t\t@mixin ck-widget-type-around-button-hidden;\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\ttransition: none;\n\t\t}\n\n\t\t& svg {\n\t\t\twidth: 10px;\n\t\t\theight: 8px;\n\t\t\ttransform: translate(-50%,-50%);\n\t\t\ttransition: transform .5s ease;\n\t\t\tmargin-top: 1px;\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\ttransition: none;\n\t\t\t}\n\n\t\t\t& * {\n\t\t\t\tstroke-dasharray: 10;\n\t\t\t\tstroke-dashoffset: 0;\n\n\t\t\t\tfill: none;\n\t\t\t\tstroke: var(--ck-color-widget-type-around-button-icon);\n\t\t\t\tstroke-width: 1.5px;\n\t\t\t\tstroke-linecap: round;\n\t\t\t\tstroke-linejoin: round;\n\t\t\t}\n\n\t\t\t& line {\n\t\t\t\tstroke-dasharray: 7;\n\t\t\t}\n\t\t}\n\n\t\t&:hover {\n\t\t\t/*\n\t\t\t * Display the "sonar" around the button when hovered.\n\t\t\t */\n\t\t\tanimation: ck-widget-type-around-button-sonar 1s ease infinite;\n\n\t\t\t/*\n\t\t\t * Animate active button\'s icon.\n\t\t\t */\n\t\t\t& svg {\n\t\t\t\t& polyline {\n\t\t\t\t\tanimation: ck-widget-type-around-arrow-dash 2s linear;\n\t\t\t\t}\n\n\t\t\t\t& line {\n\t\t\t\t\tanimation: ck-widget-type-around-arrow-tip-dash 2s linear;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\t\tanimation: none;\n\n\t\t\t\t& svg {\n\t\t\t\t\t& polyline {\n\t\t\t\t\t\tanimation: none;\n\t\t\t\t\t}\n\n\t\t\t\t\t& line {\n\t\t\t\t\t\tanimation: none;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Show type around buttons when the widget gets selected or being hovered.\n\t */\n\t&.ck-widget_selected,\n\t&:hover {\n\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t@mixin ck-widget-type-around-button-visible;\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the buttons when the widget is NOT selected (but the buttons are visible\n\t * and still can be hovered).\n\t */\n\t&:not(.ck-widget_selected) > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\tbackground: var(--ck-color-widget-type-around-button-hover);\n\t}\n\n\t/*\n\t * Styles for the buttons when:\n\t * - the widget is selected,\n\t * - or the button is being hovered (regardless of the widget state).\n\t */\n\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\n\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\n\t\tbackground: var(--ck-color-widget-type-around-button-active);\n\n\t\t&::after {\n\t\t\twidth: calc(var(--ck-widget-type-around-button-size) - 2px);\n\t\t\theight: calc(var(--ck-widget-type-around-button-size) - 2px);\n\t\t\tborder-radius: 100px;\n\t\t\tbackground: linear-gradient(135deg, hsla(0,0%,100%,0) 0%, hsla(0,0%,100%,.3) 100%);\n\t\t}\n\t}\n\n\t/*\n\t * Styles for the "before" button when the widget has a selection handle. Because some space\n\t * is consumed by the handle, the button must be moved slightly to the right to let it breathe.\n\t */\n\t&.ck-widget_with-selection-handle > .ck-widget__type-around > .ck-widget__type-around__button_before {\n\t\tmargin-left: 20px;\n\t}\n\n\t/*\n\t * Styles for the horizontal "fake caret" which is displayed when the user navigates using the keyboard.\n\t */\n\t& .ck-widget__type-around__fake-caret {\n\t\tpointer-events: none;\n\t\theight: 1px;\n\t\tanimation: ck-widget-type-around-fake-caret-pulse linear 1s infinite normal forwards;\n\n\t\t/*\n\t\t * The semi-transparent-outline+background combo improves the contrast\n\t\t * when the background underneath the fake caret is dark.\n\t\t */\n\t\toutline: solid 1px hsla(0, 0%, 100%, .5);\n\t\tbackground: var(--ck-color-base-text);\n\t}\n\n\t/*\n\t * Styles of the widget when the "fake caret" is blinking (e.g. upon keyboard navigation).\n\t * Despite the widget being physically selected in the model, its outline should disappear.\n\t */\n\t&.ck-widget_selected {\n\t\t&.ck-widget_type-around_show-fake-caret_before,\n\t\t&.ck-widget_type-around_show-fake-caret_after {\n\t\t\toutline-color: transparent;\n\t\t}\n\t}\n\n\t&.ck-widget_type-around_show-fake-caret_before,\n\t&.ck-widget_type-around_show-fake-caret_after {\n\t\t/*\n\t\t * When the "fake caret" is visible we simulate that the widget is not selected\n\t\t * (despite being physically selected), so the outline color should be for the\n\t\t * unselected widget.\n\t\t */\n\t\t&.ck-widget_selected:hover {\n\t\t\toutline-color: var(--ck-color-widget-hover-border);\n\t\t}\n\n\t\t/*\n\t\t * Styles of the type around buttons when the "fake caret" is blinking (e.g. upon keyboard navigation).\n\t\t * In this state, the type around buttons would collide with the fake carets so they should disappear.\n\t\t */\n\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t@mixin ck-widget-type-around-button-hidden;\n\t\t}\n\n\t\t/*\n\t\t * Fake horizontal caret integration with the selection handle. When the caret is visible, simply\n\t\t * hide the handle because it intersects with the caret (and does not make much sense anyway).\n\t\t */\n\t\t&.ck-widget_with-selection-handle {\n\t\t\t&.ck-widget_selected,\n\t\t\t&.ck-widget_selected:hover {\n\t\t\t\t& > .ck-widget__selection-handle {\n\t\t\t\t\topacity: 0\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\t * Fake horizontal caret integration with the resize UI. When the caret is visible, simply\n\t\t * hide the resize UI because it creates too much noise. It can be visible when the user\n\t\t * hovers the widget, though.\n\t\t */\n\t\t&.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer {\n\t\t\topacity: 0\n\t\t}\n\t}\n}\n\n/*\n * Styles for the "before" button when the widget has a selection handle in an RTL environment.\n * The selection handler is aligned to the right side of the widget so there is no need to create\n * additional space for it next to the "before" button.\n */\n.ck[dir="rtl"] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around > .ck-widget__type-around__button_before {\n\tmargin-left: 0;\n\tmargin-right: 20px;\n}\n\n/*\n * Hide type around buttons when the widget is selected as a child of a selected\n * nested editable (e.g. mulit-cell table selection).\n *\n * See https://github.com/ckeditor/ckeditor5/issues/7263.\n */\n.ck-editor__nested-editable.ck-editor__editable_selected {\n\t& .ck-widget {\n\t\t&.ck-widget_selected,\n\t\t&:hover {\n\t\t\t& > .ck-widget__type-around > .ck-widget__type-around__button {\n\t\t\t\t@mixin ck-widget-type-around-button-hidden;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/*\n * Styles for the buttons when the widget is selected but the user clicked outside of the editor (blurred the editor).\n */\n.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) {\n\tbackground: var(--ck-color-widget-type-around-button-blurred-editable);\n\n\t& svg * {\n\t\tstroke: hsl(0,0%,60%);\n\t}\n}\n\n@keyframes ck-widget-type-around-arrow-dash {\n\t0% {\n\t\tstroke-dashoffset: 10;\n\t}\n\t20%, 100% {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes ck-widget-type-around-arrow-tip-dash {\n\t0%, 20% {\n\t\tstroke-dashoffset: 7;\n\t}\n\t40%, 100% {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes ck-widget-type-around-button-sonar {\n\t0% {\n\t\tbox-shadow: 0 0 0 0 hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\n\t}\n\t50% {\n\t\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-end-alpha));\n\t}\n\t100% {\n\t\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\n\t}\n}\n\n@keyframes ck-widget-type-around-fake-caret-pulse {\n\t0% {\n\t\topacity: 1;\n\t}\n\t49% {\n\t\topacity: 1;\n\t}\n\t50% {\n\t\topacity: 0;\n\t}\n\t99% {\n\t\topacity: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t}\n}\n'],sourceRoot:""}]);const a=s},935:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n=t(e);return e[2]?"@media ".concat(e[2]," {").concat(n,"}"):n})).join("")},e.i=function(t,n,o){"string"==typeof t&&(t=[[null,t,""]]);var i={};if(o)for(var r=0;r{"use strict";function e(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=t&&("undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"]);if(null==n)return;var o,i,r=[],s=!0,a=!1;try{for(n=n.call(t);!(s=(o=n.next()).done)&&(r.push(o.value),!e||r.length!==e);s=!0);}catch(t){a=!0,i=t}finally{try{s||null==n.return||n.return()}finally{if(a)throw i}}return r}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return n(t,e);var o=Object.prototype.toString.call(t).slice(8,-1);"Object"===o&&t.constructor&&(o=t.constructor.name);if("Map"===o||"Set"===o)return Array.from(t);if("Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o))return n(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,o=new Array(e);n{"use strict";var o,i=function(){return void 0===o&&(o=Boolean(window&&document&&document.all&&!window.atob)),o},r=function(){var t={};return function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}t[e]=n}return t[e]}}(),s=[];function a(t){for(var e=-1,n=0;n{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.nc=void 0;var o={};return(()=>{"use strict";function t(){try{return navigator.userAgent.toLowerCase()}catch(t){return""}}n.d(o,{default:()=>OB});const e=t(),i={isMac:r(e),isWindows:s(e),isGecko:a(e),isSafari:c(e),isiOS:l(e),isAndroid:d(e),isBlink:h(e),isMediaForcedColors:m(),get isMotionReduced(){return window.matchMedia("(prefers-reduced-motion)").matches},features:{isRegExpUnicodePropertySupported:u()}};function r(t){return t.indexOf("macintosh")>-1}function s(t){return t.indexOf("windows")>-1}function a(t){return!!t.match(/gecko\/\d+/)}function c(t){return t.indexOf(" applewebkit/")>-1&&-1===t.indexOf("chrome")}function l(t){return!!t.match(/iphone|ipad/i)||r(t)&&navigator.maxTouchPoints>0}function d(t){return t.indexOf("android")>-1}function h(t){return t.indexOf("chrome/")>-1&&t.indexOf("edge/")<0}function u(){let t=!1;try{t=0==="ć".search(new RegExp("[\\p{L}]","u"))}catch(t){}return t}function m(){return window.matchMedia("(forced-colors: active)").matches}function g(t,e,n,o){n=n||function(t,e){return t===e};const i=Array.isArray(t)?t:Array.prototype.slice.call(t),r=Array.isArray(e)?e:Array.prototype.slice.call(e),s=function(t,e,n){const o=p(t,e,n);if(-1===o)return{firstIndex:-1,lastIndexOld:-1,lastIndexNew:-1};const i=f(t,o),r=f(e,o),s=p(i,r,n),a=t.length-s,c=e.length-s;return{firstIndex:o,lastIndexOld:a,lastIndexNew:c}}(i,r,n),a=o?function(t,e){const{firstIndex:n,lastIndexOld:o,lastIndexNew:i}=t;if(-1===n)return Array(e).fill("equal");let r=[];n>0&&(r=r.concat(Array(n).fill("equal")));i-n>0&&(r=r.concat(Array(i-n).fill("insert")));o-n>0&&(r=r.concat(Array(o-n).fill("delete")));i0&&n.push({index:o,type:"insert",values:t.slice(o,r)});i-o>0&&n.push({index:o+(r-o),type:"delete",howMany:i-o});return n}(r,s);return a}function p(t,e,n){for(let o=0;o200||i>200||o+i>300)return k.fastDiff(t,e,n,!0);let r,s;if(il?-1:1;d[o+u]&&(d[o]=d[o+u].slice(0)),d[o]||(d[o]=[]),d[o].push(i>l?r:s);let m=Math.max(i,l),g=m-o;for(;gl;m--)h[m]=u(m);h[l]=u(l),g++}while(h[l]!==c);return d[l].slice(1)}k.fastDiff=g;const b=function(){return function t(){t.called=!0}};class w{source;name;path;stop;off;return;constructor(t,e){this.source=t,this.name=e,this.path=[],this.stop=b(),this.off=b()}}const _=new Array(256).fill("").map(((t,e)=>("0"+e.toString(16)).slice(-2)));function A(){const t=4294967296*Math.random()>>>0,e=4294967296*Math.random()>>>0,n=4294967296*Math.random()>>>0,o=4294967296*Math.random()>>>0;return"e"+_[255&t]+_[t>>8&255]+_[t>>16&255]+_[t>>24&255]+_[255&e]+_[e>>8&255]+_[e>>16&255]+_[e>>24&255]+_[255&n]+_[n>>8&255]+_[n>>16&255]+_[n>>24&255]+_[255&o]+_[o>>8&255]+_[o>>16&255]+_[o>>24&255]}const C={get(t="normal"){return"number"!=typeof t?this[t]||this.normal:t},highest:1e5,high:1e3,normal:0,low:-1e3,lowest:-1e5};function v(t,e){const n=C.get(e.priority);for(let o=0;o{if("object"==typeof e&&null!==e){if(n.has(e))return`[object ${e.constructor.name}]`;n.add(e)}return e},i=e?` ${JSON.stringify(e,o)}`:"",r=D(t);return t+i+r}(t,n)),this.name="CKEditorError",this.context=e,this.data=n}is(t){return"CKEditorError"===t}static rethrowUnexpectedError(t,e){if(t.is&&t.is("CKEditorError"))throw t;const n=new x(t.message,e);throw n.stack=t.stack,n}}function E(t,e){console.warn(...B(t,e))}function D(t){return`\nRead more: ${y}#error-${t}`}function B(t,e){const n=D(t);return e?[t,e,n]:[t,n]}const T="41.3.1",S=new Date(2024,3,16);if(globalThis.CKEDITOR_VERSION)throw new x("ckeditor-duplicated-modules",null);globalThis.CKEDITOR_VERSION=T;const I=Symbol("listeningTo"),P=Symbol("emitterId"),z=Symbol("delegations"),R=L(Object);function L(t){if(!t)return R;return class extends t{on(t,e,n){this.listenTo(this,t,e,n)}once(t,e,n){let o=!1;this.listenTo(this,t,((t,...n)=>{o||(o=!0,t.off(),e.call(this,t,...n))}),n)}off(t,e){this.stopListening(this,t,e)}listenTo(t,e,n,o={}){let i,r;this[I]||(this[I]={});const s=this[I];M(t)||F(t);const a=M(t);(i=s[a])||(i=s[a]={emitter:t,callbacks:{}}),(r=i.callbacks[e])||(r=i.callbacks[e]=[]),r.push(n),function(t,e,n,o,i){e._addEventListener?e._addEventListener(n,o,i):t._addEventListener.call(e,n,o,i)}(this,t,e,n,o)}stopListening(t,e,n){const o=this[I];let i=t&&M(t);const r=o&&i?o[i]:void 0,s=r&&e?r.callbacks[e]:void 0;if(!(!o||t&&!r||e&&!s))if(n){q(this,t,e,n);-1!==s.indexOf(n)&&(1===s.length?delete r.callbacks[e]:q(this,t,e,n))}else if(s){for(;n=s.pop();)q(this,t,e,n);delete r.callbacks[e]}else if(r){for(e in r.callbacks)this.stopListening(t,e);delete o[i]}else{for(i in o)this.stopListening(o[i].emitter);delete this[I]}}fire(t,...e){try{const n=t instanceof w?t:new w(this,t),o=n.name;let i=N(this,o);if(n.path.push(this),i){const t=[n,...e];i=Array.from(i);for(let e=0;e{this[z]||(this[z]=new Map),t.forEach((t=>{const o=this[z].get(t);o?o.set(e,n):this[z].set(t,new Map([[e,n]]))}))}}}stopDelegating(t,e){if(this[z])if(t)if(e){const n=this[z].get(t);n&&n.delete(e)}else this[z].delete(t);else this[z].clear()}_addEventListener(t,e,n){!function(t,e){const n=V(t);if(n[e])return;let o=e,i=null;const r=[];for(;""!==o&&!n[o];)n[o]={callbacks:[],childEvents:[]},r.push(n[o]),i&&n[o].childEvents.push(i),i=o,o=o.substr(0,o.lastIndexOf(":"));if(""!==o){for(const t of r)t.callbacks=n[o].callbacks.slice();n[o].childEvents.push(i)}}(this,t);const o=O(this,t),i={callback:e,priority:C.get(n.priority)};for(const t of o)v(t,i)}_removeEventListener(t,e){const n=O(this,t);for(const t of n)for(let n=0;n-1?N(t,e.substr(0,e.lastIndexOf(":"))):null}function H(t,e,n){for(let[o,i]of t){i?"function"==typeof i&&(i=i(e.name)):i=e.name;const t=new w(e.source,i);t.path=[...e.path],o.fire(t,...n)}}function q(t,e,n,o){e._removeEventListener?e._removeEventListener(n,o):t._removeEventListener.call(e,n,o)}["on","once","off","listenTo","stopListening","fire","delegate","stopDelegating","_addEventListener","_removeEventListener"].forEach((t=>{L[t]=R.prototype[t]}));const j=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},W=Symbol("observableProperties"),G=Symbol("boundObservables"),K=Symbol("boundProperties"),U=Symbol("decoratedMethods"),$=Symbol("decoratedOriginal"),Z=J(L());function J(t){if(!t)return Z;return class extends t{set(t,e){if(j(t))return void Object.keys(t).forEach((e=>{this.set(e,t[e])}),this);Y(this);const n=this[W];if(t in this&&!n.has(t))throw new x("observable-set-cannot-override",this);Object.defineProperty(this,t,{enumerable:!0,configurable:!0,get:()=>n.get(t),set(e){const o=n.get(t);let i=this.fire(`set:${t}`,t,e,o);void 0===i&&(i=e),o===i&&n.has(t)||(n.set(t,i),this.fire(`change:${t}`,t,i,o))}}),this[t]=e}bind(...t){if(!t.length||!tt(t))throw new x("observable-bind-wrong-properties",this);if(new Set(t).size!==t.length)throw new x("observable-bind-duplicate-properties",this);Y(this);const e=this[K];t.forEach((t=>{if(e.has(t))throw new x("observable-bind-rebind",this)}));const n=new Map;return t.forEach((t=>{const o={property:t,to:[]};e.set(t,o),n.set(t,o)})),{to:Q,toMany:X,_observable:this,_bindProperties:t,_to:[],_bindings:n}}unbind(...t){if(!this[W])return;const e=this[K],n=this[G];if(t.length){if(!tt(t))throw new x("observable-unbind-wrong-properties",this);t.forEach((t=>{const o=e.get(t);o&&(o.to.forEach((([t,e])=>{const i=n.get(t),r=i[e];r.delete(o),r.size||delete i[e],Object.keys(i).length||(n.delete(t),this.stopListening(t,"change"))})),e.delete(t))}))}else n.forEach(((t,e)=>{this.stopListening(e,"change")})),n.clear(),e.clear()}decorate(t){Y(this);const e=this[t];if(!e)throw new x("observablemixin-cannot-decorate-undefined",this,{object:this,methodName:t});this.on(t,((t,n)=>{t.return=e.apply(this,n)})),this[t]=function(...e){return this.fire(t,e)},this[t][$]=e,this[U]||(this[U]=[]),this[U].push(t)}stopListening(t,e,n){if(!t&&this[U]){for(const t of this[U])this[t]=this[t][$];delete this[U]}super.stopListening(t,e,n)}[W];[U];[K];[G]}}function Y(t){t[W]||(Object.defineProperty(t,W,{value:new Map}),Object.defineProperty(t,G,{value:new Map}),Object.defineProperty(t,K,{value:new Map}))}function Q(...t){const e=function(...t){if(!t.length)throw new x("observable-bind-to-parse-error",null);const e={to:[]};let n;"function"==typeof t[t.length-1]&&(e.callback=t.pop());return t.forEach((t=>{if("string"==typeof t)n.properties.push(t);else{if("object"!=typeof t)throw new x("observable-bind-to-parse-error",null);n={observable:t,properties:[]},e.to.push(n)}})),e}(...t),n=Array.from(this._bindings.keys()),o=n.length;if(!e.callback&&e.to.length>1)throw new x("observable-bind-to-no-callback",this);if(o>1&&e.callback)throw new x("observable-bind-to-extra-callback",this);var i;e.to.forEach((t=>{if(t.properties.length&&t.properties.length!==o)throw new x("observable-bind-to-properties-length",this);t.properties.length||(t.properties=this._bindProperties)})),this._to=e.to,e.callback&&(this._bindings.get(n[0]).callback=e.callback),i=this._observable,this._to.forEach((t=>{const e=i[G];let n;e.get(t.observable)||i.listenTo(t.observable,"change",((o,r)=>{n=e.get(t.observable)[r],n&&n.forEach((t=>{et(i,t.property)}))}))})),function(t){let e;t._bindings.forEach(((n,o)=>{t._to.forEach((i=>{e=i.properties[n.callback?0:t._bindProperties.indexOf(o)],n.to.push([i.observable,e]),function(t,e,n,o){const i=t[G],r=i.get(n),s=r||{};s[o]||(s[o]=new Set);s[o].add(e),r||i.set(n,s)}(t._observable,n,i.observable,e)}))}))}(this),this._bindProperties.forEach((t=>{et(this._observable,t)}))}function X(t,e,n){if(this._bindings.size>1)throw new x("observable-bind-to-many-not-one-binding",this);this.to(...function(t,e){const n=t.map((t=>[t,e]));return Array.prototype.concat.apply([],n)}(t,e),n)}function tt(t){return t.every((t=>"string"==typeof t))}function et(t,e){const n=t[K].get(e);let o;n.callback?o=n.callback.apply(t,n.to.map((t=>t[0][t[1]]))):(o=n.to[0],o=o[0][o[1]]),Object.prototype.hasOwnProperty.call(t,e)?t[e]=o:t.set(e,o)}["set","bind","unbind","decorate","on","once","off","listenTo","stopListening","fire","delegate","stopDelegating","_addEventListener","_removeEventListener"].forEach((t=>{J[t]=Z.prototype[t]}));class nt{_replacedElements;constructor(){this._replacedElements=[]}replace(t,e){this._replacedElements.push({element:t,newElement:e}),t.style.display="none",e&&t.parentNode.insertBefore(e,t.nextSibling)}restore(){this._replacedElements.forEach((({element:t,newElement:e})=>{t.style.display="",e&&e.remove()})),this._replacedElements=[]}}function ot(t){let e=0;for(const n of t)e++;return e}function it(t,e){const n=Math.min(t.length,e.length);for(let o=0;o-1};const Vt=function(t,e){var n=this.__data__,o=zt(n,t);return o<0?(++this.size,n.push([t,e])):n[o][1]=e,this};function Ot(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e-1&&t%1==0&&t-1&&t%1==0&&t<=9007199254740991};var Ze={};Ze["[object Float32Array]"]=Ze["[object Float64Array]"]=Ze["[object Int8Array]"]=Ze["[object Int16Array]"]=Ze["[object Int32Array]"]=Ze["[object Uint8Array]"]=Ze["[object Uint8ClampedArray]"]=Ze["[object Uint16Array]"]=Ze["[object Uint32Array]"]=!0,Ze["[object Arguments]"]=Ze["[object Array]"]=Ze["[object ArrayBuffer]"]=Ze["[object Boolean]"]=Ze["[object DataView]"]=Ze["[object Date]"]=Ze["[object Error]"]=Ze["[object Function]"]=Ze["[object Map]"]=Ze["[object Number]"]=Ze["[object Object]"]=Ze["[object RegExp]"]=Ze["[object Set]"]=Ze["[object String]"]=Ze["[object WeakMap]"]=!1;const Je=function(t){return _t(t)&&$e(t.length)&&!!Ze[bt(t)]};const Ye=function(t){return function(e){return t(e)}};var Qe="object"==typeof exports&&exports&&!exports.nodeType&&exports,Xe=Qe&&"object"==typeof module&&module&&!module.nodeType&&module,tn=Xe&&Xe.exports===Qe&&st.process;const en=function(){try{var t=Xe&&Xe.require&&Xe.require("util").types;return t||tn&&tn.binding&&tn.binding("util")}catch(t){}}();var nn=en&&en.isTypedArray;const on=nn?Ye(nn):Je;var rn=Object.prototype.hasOwnProperty;const sn=function(t,e){var n=wt(t),o=!n&&Ne(t),i=!n&&!o&&Ge(t),r=!n&&!o&&!i&&on(t),s=n||o||i||r,a=s?Le(t.length,String):[],c=a.length;for(var l in t)!e&&!rn.call(t,l)||s&&("length"==l||i&&("offset"==l||"parent"==l)||r&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||Ue(l,c))||a.push(l);return a};var an=Object.prototype;const cn=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||an)};const ln=vt(Object.keys,Object);var dn=Object.prototype.hasOwnProperty;const hn=function(t){if(!cn(t))return ln(t);var e=[];for(var n in Object(t))dn.call(t,n)&&"constructor"!=n&&e.push(n);return e};const un=function(t){return null!=t&&$e(t.length)&&!Gt(t)};const mn=function(t){return un(t)?sn(t):hn(t)};const gn=function(t,e){return t&&Re(e,mn(e),t)};const pn=function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e};var fn=Object.prototype.hasOwnProperty;const kn=function(t){if(!j(t))return pn(t);var e=cn(t),n=[];for(var o in t)("constructor"!=o||!e&&fn.call(t,o))&&n.push(o);return n};const bn=function(t){return un(t)?sn(t,!0):kn(t)};const wn=function(t,e){return t&&Re(e,bn(e),t)};var _n="object"==typeof exports&&exports&&!exports.nodeType&&exports,An=_n&&"object"==typeof module&&module&&!module.nodeType&&module,Cn=An&&An.exports===_n?ct.Buffer:void 0,vn=Cn?Cn.allocUnsafe:void 0;const yn=function(t,e){if(e)return t.slice();var n=t.length,o=vn?vn(n):new t.constructor(n);return t.copy(o),o};const xn=function(t,e){var n=-1,o=t.length;for(e||(e=Array(o));++n{this._setToTarget(t,o,e[o],n)}))}}function So(t){return Do(t,Io)}function Io(t){return Bo(t)||"function"==typeof t?t:void 0}function Po(t){if(t){if(t.defaultView)return t instanceof t.defaultView.Document;if(t.ownerDocument&&t.ownerDocument.defaultView)return t instanceof t.ownerDocument.defaultView.Node}return!1}function zo(t){const e=Object.prototype.toString.apply(t);return"[object Window]"==e||"[object global]"==e}const Ro=Lo(L());function Lo(t){if(!t)return Ro;return class extends t{listenTo(t,e,n,o={}){if(Po(t)||zo(t)){const i={capture:!!o.useCapture,passive:!!o.usePassive},r=this._getProxyEmitter(t,i)||new Fo(t,i);this.listenTo(r,e,n,o)}else super.listenTo(t,e,n,o)}stopListening(t,e,n){if(Po(t)||zo(t)){const o=this._getAllProxyEmitters(t);for(const t of o)this.stopListening(t,e,n)}else super.stopListening(t,e,n)}_getProxyEmitter(t,e){return function(t,e){const n=t[I];return n&&n[e]?n[e].emitter:null}(this,Mo(t,e))}_getAllProxyEmitters(t){return[{capture:!1,passive:!1},{capture:!1,passive:!0},{capture:!0,passive:!1},{capture:!0,passive:!0}].map((e=>this._getProxyEmitter(t,e))).filter((t=>!!t))}}}["_getProxyEmitter","_getAllProxyEmitters","on","once","off","listenTo","stopListening","fire","delegate","stopDelegating","_addEventListener","_removeEventListener"].forEach((t=>{Lo[t]=Ro.prototype[t]}));class Fo extends(L()){_domNode;_options;constructor(t,e){super(),F(this,Mo(t,e)),this._domNode=t,this._options=e}_domListeners;attach(t){if(this._domListeners&&this._domListeners[t])return;const e=this._createDomListener(t);this._domNode.addEventListener(t,e,this._options),this._domListeners||(this._domListeners={}),this._domListeners[t]=e}detach(t){let e;!this._domListeners[t]||(e=this._events[t])&&e.callbacks.length||this._domListeners[t].removeListener()}_addEventListener(t,e,n){this.attach(t),L().prototype._addEventListener.call(this,t,e,n)}_removeEventListener(t,e){L().prototype._removeEventListener.call(this,t,e),this.detach(t)}_createDomListener(t){const e=e=>{this.fire(t,e)};return e.removeListener=()=>{this._domNode.removeEventListener(t,e,this._options),delete this._domListeners[t]},e}}function Mo(t,e){let n=function(t){return t["data-ck-expando"]||(t["data-ck-expando"]=A())}(t);for(const t of Object.keys(e).sort())e[t]&&(n+="-"+t);return n}let Vo;try{Vo={window,document}}catch(t){Vo={window:{},document:{}}}const Oo=Vo;function No(t){return t instanceof HTMLTextAreaElement?t.value:t.innerHTML}function Ho(t){const e=t.ownerDocument.defaultView.getComputedStyle(t);return{top:parseInt(e.borderTopWidth,10),right:parseInt(e.borderRightWidth,10),bottom:parseInt(e.borderBottomWidth,10),left:parseInt(e.borderLeftWidth,10)}}function qo(t){return"[object Text]"==Object.prototype.toString.call(t)}function jo(t){return"[object Range]"==Object.prototype.toString.apply(t)}function Wo(t){return t&&t.parentNode?t.offsetParent===Oo.document.body?null:t.offsetParent:null}const Go=["top","right","bottom","left","width","height"];class Ko{top;right;bottom;left;width;height;_source;constructor(t){const e=jo(t);if(Object.defineProperty(this,"_source",{value:t._source||t,writable:!0,enumerable:!1}),Zo(t)||e)if(e){const e=Ko.getDomRangeRects(t);Uo(this,Ko.getBoundingRect(e))}else Uo(this,t.getBoundingClientRect());else if(zo(t)){const{innerWidth:e,innerHeight:n}=t;Uo(this,{top:0,right:e,bottom:n,left:0,width:e,height:n})}else Uo(this,t)}clone(){return new Ko(this)}moveTo(t,e){return this.top=e,this.right=t+this.width,this.bottom=e+this.height,this.left=t,this}moveBy(t,e){return this.top+=e,this.right+=t,this.left+=t,this.bottom+=e,this}getIntersection(t){const e={top:Math.max(this.top,t.top),right:Math.min(this.right,t.right),bottom:Math.min(this.bottom,t.bottom),left:Math.max(this.left,t.left),width:0,height:0};if(e.width=e.right-e.left,e.height=e.bottom-e.top,e.width<0||e.height<0)return null;{const t=new Ko(e);return t._source=this._source,t}}getIntersectionArea(t){const e=this.getIntersection(t);return e?e.getArea():0}getArea(){return this.width*this.height}getVisible(){const t=this._source;let e=this.clone();if($o(t))return e;let n,o=t,i=t.parentNode||t.commonAncestorContainer;for(;i&&!$o(i);){const t="visible"===((r=i)instanceof HTMLElement?r.ownerDocument.defaultView.getComputedStyle(r).overflow:"visible");o instanceof HTMLElement&&"absolute"===Jo(o)&&(n=o);const s=Jo(i);if(t||n&&("relative"===s&&t||"relative"!==s)){o=i,i=i.parentNode;continue}const a=new Ko(i),c=e.getIntersection(a);if(!c)return null;c.getArea(){for(const e of t){const t=Yo._getElementCallbacks(e.target);if(t)for(const n of t)n(e)}}))}}function Qo(t,e){t instanceof HTMLTextAreaElement&&(t.value=e),t.innerHTML=e}function Xo(t){return e=>e+t}function ti(t){let e=0;for(;t.previousSibling;)t=t.previousSibling,e++;return e}function ei(t,e,n){t.insertBefore(n,t.childNodes[e]||null)}function ni(t){return t&&t.nodeType===Node.COMMENT_NODE}function oi(t){return!!(t&&t.getClientRects&&t.getClientRects().length)}function ii({element:t,target:e,positions:n,limiter:o,fitInViewport:i,viewportOffsetConfig:r}){Gt(e)&&(e=e()),Gt(o)&&(o=o());const s=Wo(t),a=function(t){t=Object.assign({top:0,bottom:0,left:0,right:0},t);const e=new Ko(Oo.window);return e.top+=t.top,e.height-=t.top,e.bottom-=t.bottom,e.height-=t.bottom,e}(r),c=new Ko(t),l=ri(e,a);let d;if(!l||!a.getIntersection(l))return null;const h={targetRect:l,elementRect:c,positionedElementAncestor:s,viewportRect:a};if(o||i){if(o){const t=ri(o,a);t&&(h.limiterRect=t)}d=function(t,e){const{elementRect:n}=e,o=n.getArea(),i=t.map((t=>new si(t,e))).filter((t=>!!t.name));let r=0,s=null;for(const t of i){const{limiterIntersectionArea:e,viewportIntersectionArea:n}=t;if(e===o)return t;const i=n**2+e**2;i>r&&(r=i,s=t)}return s}(n,h)}else d=new si(n[0],h);return d}function ri(t,e){const n=new Ko(t).getVisible();return n?n.getIntersection(e):null}class si{name;config;_positioningFunctionCoordinates;_options;_cachedRect;_cachedAbsoluteRect;constructor(t,e){const n=t(e.targetRect,e.elementRect,e.viewportRect,e.limiterRect);if(!n)return;const{left:o,top:i,name:r,config:s}=n;this.name=r,this.config=s,this._positioningFunctionCoordinates={left:o,top:i},this._options=e}get left(){return this._absoluteRect.left}get top(){return this._absoluteRect.top}get limiterIntersectionArea(){const t=this._options.limiterRect;return t?t.getIntersectionArea(this._rect):0}get viewportIntersectionArea(){return this._options.viewportRect.getIntersectionArea(this._rect)}get _rect(){return this._cachedRect||(this._cachedRect=this._options.elementRect.clone().moveTo(this._positioningFunctionCoordinates.left,this._positioningFunctionCoordinates.top)),this._cachedRect}get _absoluteRect(){return this._cachedAbsoluteRect||(this._cachedAbsoluteRect=this._rect.toAbsoluteRect()),this._cachedAbsoluteRect}}function ai(t){const e=t.parentNode;e&&e.removeChild(t)}function ci({window:t,rect:e,alignToTop:n,forceScroll:o,viewportOffset:i}){const r=e.clone().moveBy(0,i.bottom),s=e.clone().moveBy(0,-i.top),a=new Ko(t).excludeScrollbarsAndBorders(),c=n&&o,l=[s,r].every((t=>a.contains(t)));let{scrollX:d,scrollY:h}=t;const u=d,m=h;c?h-=a.top-e.top+i.top:l||(hi(s,a)?h-=a.top-e.top+i.top:di(r,a)&&(h+=n?e.top-a.top-i.top:e.bottom-a.bottom+i.bottom)),l||(ui(e,a)?d-=a.left-e.left+i.left:mi(e,a)&&(d+=e.right-a.right+i.right)),d==u&&h===m||t.scrollTo(d,h)}function li({parent:t,getRect:e,alignToTop:n,forceScroll:o,ancestorOffset:i=0,limiterElement:r}){const s=gi(t),a=n&&o;let c,l,d;const h=r||s.document.body;for(;t!=h;)l=e(),c=new Ko(t).excludeScrollbarsAndBorders(),d=c.contains(l),a?t.scrollTop-=c.top-l.top+i:d||(hi(l,c)?t.scrollTop-=c.top-l.top+i:di(l,c)&&(t.scrollTop+=n?l.top-c.top-i:l.bottom-c.bottom+i)),d||(ui(l,c)?t.scrollLeft-=c.left-l.left+i:mi(l,c)&&(t.scrollLeft+=l.right-c.right+i)),t=t.parentNode}function di(t,e){return t.bottom>e.bottom}function hi(t,e){return t.tope.right}function gi(t){return jo(t)?t.startContainer.ownerDocument.defaultView:t.ownerDocument.defaultView}function pi(t){if(jo(t)){let e=t.commonAncestorContainer;return qo(e)&&(e=e.parentNode),e}return t.parentNode}function fi(t,e){const n=gi(t),o=new Ko(t);if(n===e)return o;{let t=n;for(;t!=e;){const e=t.frameElement,n=new Ko(e).excludeScrollbarsAndBorders();o.moveBy(n.left,n.top),t=t.parent}}return o}const ki={ctrl:"⌃",cmd:"⌘",alt:"⌥",shift:"⇧"},bi={ctrl:"Ctrl+",alt:"Alt+",shift:"Shift+"},wi={37:"←",38:"↑",39:"→",40:"↓",9:"⇥",33:"Page Up",34:"Page Down"},_i=Ei(),Ai=Object.fromEntries(Object.entries(_i).map((([t,e])=>{let n;return n=e in wi?wi[e]:t.charAt(0).toUpperCase()+t.slice(1),[e,n]})));function Ci(t){let e;if("string"==typeof t){if(e=_i[t.toLowerCase()],!e)throw new x("keyboard-unknown-key",null,{key:t})}else e=t.keyCode+(t.altKey?_i.alt:0)+(t.ctrlKey?_i.ctrl:0)+(t.shiftKey?_i.shift:0)+(t.metaKey?_i.cmd:0);return e}function vi(t){return"string"==typeof t&&(t=function(t){return t.split("+").map((t=>t.trim()))}(t)),t.map((t=>"string"==typeof t?function(t){if(t.endsWith("!"))return Ci(t.slice(0,-1));const e=Ci(t);return(i.isMac||i.isiOS)&&e==_i.ctrl?_i.cmd:e}(t):t)).reduce(((t,e)=>e+t),0)}function yi(t){let e=vi(t);return Object.entries(i.isMac||i.isiOS?ki:bi).reduce(((t,[n,o])=>(e&_i[n]&&(e&=~_i[n],t+=o),t)),"")+(e?Ai[e]:"")}function xi(t,e){const n="ltr"===e;switch(t){case _i.arrowleft:return n?"left":"right";case _i.arrowright:return n?"right":"left";case _i.arrowup:return"up";case _i.arrowdown:return"down"}}function Ei(){const t={pageup:33,pagedown:34,arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,backspace:8,delete:46,enter:13,space:32,esc:27,tab:9,ctrl:1114112,shift:2228224,alt:4456448,cmd:8912896};for(let e=65;e<=90;e++){t[String.fromCharCode(e).toLowerCase()]=e}for(let e=48;e<=57;e++)t[e-48]=e;for(let e=112;e<=123;e++)t["f"+(e-111)]=e;return Object.assign(t,{"'":222,",":108,"-":109,".":110,"/":111,";":186,"=":187,"[":219,"\\":220,"]":221,"`":223}),t}function Di(t){return Array.isArray(t)?t:[t]}const Bi=function(t,e,n){(void 0!==n&&!Pt(t[e],n)||void 0===n&&!(e in t))&&Ie(t,e,n)};const Ti=function(t){return function(e,n,o){for(var i=-1,r=Object(e),s=o(e),a=s.length;a--;){var c=s[t?a:++i];if(!1===n(r[c],c,r))break}return e}}();const Si=function(t){return _t(t)&&un(t)};const Ii=function(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]};const Pi=function(t){return Re(t,bn(t))};const zi=function(t,e,n,o,i,r,s){var a=Ii(t,n),c=Ii(e,n),l=s.get(c);if(l)Bi(t,n,l);else{var d=r?r(a,c,n+"",t,e,s):void 0,h=void 0===d;if(h){var u=wt(c),m=!u&&Ge(c),g=!u&&!m&&on(c);d=c,u||m||g?wt(a)?d=a:Si(a)?d=xn(a):m?(h=!1,d=yn(c,!0)):g?(h=!1,d=ho(c,!0)):d=[]:St(c)||Ne(c)?(d=a,Ne(a)?d=Pi(a):j(a)&&!Gt(a)||(d=po(c))):h=!1}h&&(s.set(c,d),i(d,c,o,r,s),s.delete(c)),Bi(t,n,d)}};const Ri=function t(e,n,o,i,r){e!==n&&Ti(n,(function(s,a){if(r||(r=new Be),j(s))zi(e,n,a,o,t,i,r);else{var c=i?i(Ii(e,a),s,a+"",e,n,r):void 0;void 0===c&&(c=s),Bi(e,a,c)}}),bn)};const Li=function(t){return t};const Fi=function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)};var Mi=Math.max;const Vi=function(t,e,n){return e=Mi(void 0===e?t.length-1:e,0),function(){for(var o=arguments,i=-1,r=Mi(o.length-e,0),s=Array(r);++i0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}};const ji=qi(Ni);const Wi=function(t,e){return ji(Vi(t,e,Li),t+"")};const Gi=function(t,e,n){if(!j(n))return!1;var o=typeof e;return!!("number"==o?un(n)&&Ue(e,n.length):"string"==o&&e in n)&&Pt(n[e],t)};const Ki=function(t){return Wi((function(e,n){var o=-1,i=n.length,r=i>1?n[i-1]:void 0,s=i>2?n[2]:void 0;for(r=t.length>3&&"function"==typeof r?(i--,r):void 0,s&&Gi(n[0],n[1],s)&&(r=i<3?void 0:r,i=1),e=Object(e);++o1===t?0:1),l=a[s];if("string"==typeof l)return l;return l[Number(c(n))]}Oo.window.CKEDITOR_TRANSLATIONS||(Oo.window.CKEDITOR_TRANSLATIONS={});const Zi=["ar","ara","dv","div","fa","per","fas","he","heb","ku","kur","ug","uig"];function Ji(t){return Zi.includes(t)?"rtl":"ltr"}class Yi{uiLanguage;uiLanguageDirection;contentLanguage;contentLanguageDirection;t;translations;constructor({uiLanguage:t="en",contentLanguage:e,translations:n}={}){this.uiLanguage=t,this.contentLanguage=e||this.uiLanguage,this.uiLanguageDirection=Ji(this.uiLanguage),this.contentLanguageDirection=Ji(this.contentLanguage),this.translations=function(t){return Array.isArray(t)?t.reduce(((t,e)=>Ui(t,e))):t}(n),this.t=(t,e)=>this._t(t,e)}get language(){return console.warn("locale-deprecated-language-property: The Locale#language property has been deprecated and will be removed in the near future. Please use #uiLanguage and #contentLanguage properties instead."),this.uiLanguage}_t(t,e=[]){e=Di(e),"string"==typeof t&&(t={string:t});const n=!!t.plural?e[0]:1;return function(t,e){return t.replace(/%(\d+)/g,((t,n)=>nthis._items.length||e<0)throw new x("collection-add-item-invalid-index",this);let n=0;for(const o of t){const t=this._getItemIdBeforeAdding(o),i=e+n;this._items.splice(i,0,o),this._itemMap.set(t,o),this.fire("add",o,i),n++}return this.fire("change",{added:t,removed:[],index:e}),this}get(t){let e;if("string"==typeof t)e=this._itemMap.get(t);else{if("number"!=typeof t)throw new x("collection-get-invalid-arg",this);e=this._items[t]}return e||null}has(t){if("string"==typeof t)return this._itemMap.has(t);{const e=t[this._idProperty];return e&&this._itemMap.has(e)}}getIndex(t){let e;return e="string"==typeof t?this._itemMap.get(t):t,e?this._items.indexOf(e):-1}remove(t){const[e,n]=this._remove(t);return this.fire("change",{added:[],removed:[e],index:n}),e}map(t,e){return this._items.map(t,e)}forEach(t,e){this._items.forEach(t,e)}find(t,e){return this._items.find(t,e)}filter(t,e){return this._items.filter(t,e)}clear(){this._bindToCollection&&(this.stopListening(this._bindToCollection),this._bindToCollection=null);const t=Array.from(this._items);for(;this.length;)this._remove(0);this.fire("change",{added:[],removed:t,index:0})}bindTo(t){if(this._bindToCollection)throw new x("collection-bind-to-rebind",this);return this._bindToCollection=t,{as:t=>{this._setUpBindToBinding((e=>new t(e)))},using:t=>{"function"==typeof t?this._setUpBindToBinding(t):this._setUpBindToBinding((e=>e[t]))}}}_setUpBindToBinding(t){const e=this._bindToCollection,n=(n,o,i)=>{const r=e._bindToCollection==this,s=e._bindToInternalToExternalMap.get(o);if(r&&s)this._bindToExternalToInternalMap.set(o,s),this._bindToInternalToExternalMap.set(s,o);else{const n=t(o);if(!n)return void this._skippedIndexesFromExternal.push(i);let r=i;for(const t of this._skippedIndexesFromExternal)i>t&&r--;for(const t of e._skippedIndexesFromExternal)r>=t&&r++;this._bindToExternalToInternalMap.set(o,n),this._bindToInternalToExternalMap.set(n,o),this.add(n,r);for(let t=0;t{const o=this._bindToExternalToInternalMap.get(e);o&&this.remove(o),this._skippedIndexesFromExternal=this._skippedIndexesFromExternal.reduce(((t,e)=>(ne&&t.push(e),t)),[])}))}_getItemIdBeforeAdding(t){const e=this._idProperty;let n;if(e in t){if(n=t[e],"string"!=typeof n)throw new x("collection-add-invalid-id",this);if(this.get(n))throw new x("collection-add-item-already-exists",this)}else t[e]=n=A();return n}_remove(t){let e,n,o,i=!1;const r=this._idProperty;if("string"==typeof t?(n=t,o=this._itemMap.get(n),i=!o,o&&(e=this._items.indexOf(o))):"number"==typeof t?(e=t,o=this._items[e],i=!o,o&&(n=o[r])):(o=t,n=o[r],e=this._items.indexOf(o),i=-1==e||!this._itemMap.get(n)),i)throw new x("collection-remove-404",this);this._items.splice(e,1),this._itemMap.delete(n);const s=this._bindToInternalToExternalMap.get(o);return this._bindToInternalToExternalMap.delete(o),this._bindToExternalToInternalMap.delete(s),this.fire("remove",o,e),[o,e]}[Symbol.iterator](){return this._items[Symbol.iterator]()}}function Xi(t){const e=t.next();return e.done?null:e.value}class tr extends(Lo(J())){_elements=new Set;_nextEventLoopTimeout=null;constructor(){super(),this.set("isFocused",!1),this.set("focusedElement",null)}add(t){if(this._elements.has(t))throw new x("focustracker-add-element-already-exist",this);this.listenTo(t,"focus",(()=>this._focus(t)),{useCapture:!0}),this.listenTo(t,"blur",(()=>this._blur()),{useCapture:!0}),this._elements.add(t)}remove(t){t===this.focusedElement&&this._blur(),this._elements.has(t)&&(this.stopListening(t),this._elements.delete(t))}destroy(){this.stopListening()}_focus(t){clearTimeout(this._nextEventLoopTimeout),this.focusedElement=t,this.isFocused=!0}_blur(){clearTimeout(this._nextEventLoopTimeout),this._nextEventLoopTimeout=setTimeout((()=>{this.focusedElement=null,this.isFocused=!1}),0)}}class er{_listener;constructor(){this._listener=new(Lo())}listenTo(t){this._listener.listenTo(t,"keydown",((t,e)=>{this._listener.fire("_keydown:"+Ci(e),e)}))}set(t,e,n={}){const o=vi(t),i=n.priority;this._listener.listenTo(this._listener,"_keydown:"+o,((t,n)=>{e(n,(()=>{n.preventDefault(),n.stopPropagation(),t.stop()})),t.return=!0}),{priority:i})}press(t){return!!this._listener.fire("_keydown:"+Ci(t),t)}stopListening(t){this._listener.stopListening(t)}destroy(){this.stopListening()}}function nr(t){return rt(t)?new Map(t):function(t){const e=new Map;for(const n in t)e.set(n,t[n]);return e}(t)}function or(t,e){let n;function o(...i){o.cancel(),n=setTimeout((()=>t(...i)),e)}return o.cancel=()=>{clearTimeout(n)},o}function ir(t,e){return!!(n=t.charAt(e-1))&&1==n.length&&/[\ud800-\udbff]/.test(n)&&function(t){return!!t&&1==t.length&&/[\udc00-\udfff]/.test(t)}(t.charAt(e));var n}function rr(t,e){return!!(n=t.charAt(e))&&1==n.length&&/[\u0300-\u036f\u1ab0-\u1aff\u1dc0-\u1dff\u20d0-\u20ff\ufe20-\ufe2f]/.test(n);var n}const sr=cr();function ar(t,e){const n=String(t).matchAll(sr);return Array.from(n).some((t=>t.indext.source)).join("|")+")";return new RegExp(`${t}|${e}(?:‍${e})*`,"ug")}class lr extends Qi{_parentElement;constructor(t=[]){super(t,{idProperty:"viewUid"}),this.on("add",((t,e,n)=>{this._renderViewIntoCollectionParent(e,n)})),this.on("remove",((t,e)=>{e.element&&this._parentElement&&e.element.remove()})),this._parentElement=null}destroy(){this.map((t=>t.destroy()))}setParent(t){this._parentElement=t;for(const t of this)this._renderViewIntoCollectionParent(t)}delegate(...t){if(!t.length||!t.every((t=>"string"==typeof t)))throw new x("ui-viewcollection-delegate-wrong-events",this);return{to:e=>{for(const n of this)for(const o of t)n.delegate(o).to(e);this.on("add",((n,o)=>{for(const n of t)o.delegate(n).to(e)})),this.on("remove",((n,o)=>{for(const n of t)o.stopDelegating(n,e)}))}}}_renderViewIntoCollectionParent(t,e){t.isRendered||t.render(),t.element&&this._parentElement&&this._parentElement.insertBefore(t.element,this._parentElement.children[e])}remove(t){return super.remove(t)}}class dr extends(L()){ns;tag;text;attributes;children;eventListeners;_isRendered;_revertData;constructor(t){super(),Object.assign(this,_r(wr(t))),this._isRendered=!1,this._revertData=null}render(){const t=this._renderNode({intoFragment:!0});return this._isRendered=!0,t}apply(t){return this._revertData={children:[],bindings:[],attributes:{}},this._renderNode({node:t,intoFragment:!1,isApplying:!0,revertData:this._revertData}),t}revert(t){if(!this._revertData)throw new x("ui-template-revert-not-applied",[this,t]);this._revertTemplateFromNode(t,this._revertData)}*getViews(){yield*function*t(e){if(e.children)for(const n of e.children)Er(n)?yield n:Dr(n)&&(yield*t(n))}(this)}static bind(t,e){return{to:(n,o)=>new ur({eventNameOrFunction:n,attribute:n,observable:t,emitter:e,callback:o}),if:(n,o,i)=>new mr({observable:t,emitter:e,attribute:n,valueIfTrue:o,callback:i})}}static extend(t,e){if(t._isRendered)throw new x("template-extend-render",[this,t]);yr(t,_r(wr(e)))}_renderNode(t){let e;if(e=t.node?this.tag&&this.text:this.tag?this.text:!this.text,e)throw new x("ui-template-wrong-syntax",this);return this.text?this._renderText(t):this._renderElement(t)}_renderElement(t){let e=t.node;return e||(e=t.node=document.createElementNS(this.ns||"http://www.w3.org/1999/xhtml",this.tag)),this._renderAttributes(t),this._renderElementChildren(t),this._setUpListeners(t),e}_renderText(t){let e=t.node;return e?t.revertData.text=e.textContent:e=t.node=document.createTextNode(""),gr(this.text)?this._bindToObservable({schema:this.text,updater:fr(e),data:t}):e.textContent=this.text.join(""),e}_renderAttributes(t){if(!this.attributes)return;const e=t.node,n=t.revertData;for(const o in this.attributes){const i=e.getAttribute(o),r=this.attributes[o];n&&(n.attributes[o]=i);const s=Tr(r)?r[0].ns:null;if(gr(r)){const a=Tr(r)?r[0].value:r;n&&Sr(o)&&a.unshift(i),this._bindToObservable({schema:a,updater:kr(e,o,s),data:t})}else if("style"==o&&"string"!=typeof r[0])this._renderStyleAttribute(r[0],t);else{n&&i&&Sr(o)&&r.unshift(i);const t=r.map((t=>t&&t.value||t)).reduce(((t,e)=>t.concat(e)),[]).reduce(Cr,"");xr(t)||e.setAttributeNS(s,o,t)}}}_renderStyleAttribute(t,e){const n=e.node;for(const o in t){const i=t[o];gr(i)?this._bindToObservable({schema:[i],updater:br(n,o),data:e}):n.style[o]=i}}_renderElementChildren(t){const e=t.node,n=t.intoFragment?document.createDocumentFragment():e,o=t.isApplying;let i=0;for(const r of this.children)if(Br(r)){if(!o){r.setParent(e);for(const t of r)n.appendChild(t.element)}}else if(Er(r))o||(r.isRendered||r.render(),n.appendChild(r.element));else if(Po(r))n.appendChild(r);else if(o){const e={children:[],bindings:[],attributes:{}};t.revertData.children.push(e),r._renderNode({intoFragment:!1,node:n.childNodes[i++],isApplying:!0,revertData:e})}else n.appendChild(r.render());t.intoFragment&&e.appendChild(n)}_setUpListeners(t){if(this.eventListeners)for(const e in this.eventListeners){const n=this.eventListeners[e].map((n=>{const[o,i]=e.split("@");return n.activateDomEventListener(o,i,t)}));t.revertData&&t.revertData.bindings.push(n)}}_bindToObservable({schema:t,updater:e,data:n}){const o=n.revertData;pr(t,e,n);const i=t.filter((t=>!xr(t))).filter((t=>t.observable)).map((o=>o.activateAttributeListener(t,e,n)));o&&o.bindings.push(i)}_revertTemplateFromNode(t,e){for(const t of e.bindings)for(const e of t)e();if(e.text)return void(t.textContent=e.text);const n=t;for(const t in e.attributes){const o=e.attributes[t];null===o?n.removeAttribute(t):n.setAttribute(t,o)}for(let t=0;tpr(t,e,n);return this.emitter.listenTo(this.observable,`change:${this.attribute}`,o),()=>{this.emitter.stopListening(this.observable,`change:${this.attribute}`,o)}}}class ur extends hr{eventNameOrFunction;constructor(t){super(t),this.eventNameOrFunction=t.eventNameOrFunction}activateDomEventListener(t,e,n){const o=(t,n)=>{e&&!n.target.matches(e)||("function"==typeof this.eventNameOrFunction?this.eventNameOrFunction(n):this.observable.fire(this.eventNameOrFunction,n))};return this.emitter.listenTo(n.node,t,o),()=>{this.emitter.stopListening(n.node,t,o)}}}class mr extends hr{valueIfTrue;constructor(t){super(t),this.valueIfTrue=t.valueIfTrue}getValue(t){return!xr(super.getValue(t))&&(this.valueIfTrue||!0)}}function gr(t){return!!t&&(t.value&&(t=t.value),Array.isArray(t)?t.some(gr):t instanceof hr)}function pr(t,e,{node:n}){const o=function(t,e){return t.map((t=>t instanceof hr?t.getValue(e):t))}(t,n);let i;i=1==t.length&&t[0]instanceof mr?o[0]:o.reduce(Cr,""),xr(i)?e.remove():e.set(i)}function fr(t){return{set(e){t.textContent=e},remove(){t.textContent=""}}}function kr(t,e,n){return{set(o){t.setAttributeNS(n,e,o)},remove(){t.removeAttributeNS(n,e)}}}function br(t,e){return{set(n){t.style[e]=n},remove(){t.style[e]=null}}}function wr(t){return Do(t,(t=>{if(t&&(t instanceof hr||Dr(t)||Er(t)||Br(t)))return t}))}function _r(t){if("string"==typeof t?t=function(t){return{text:[t]}}(t):t.text&&function(t){t.text=Di(t.text)}(t),t.on&&(t.eventListeners=function(t){for(const e in t)Ar(t,e);return t}(t.on),delete t.on),!t.text){t.attributes&&function(t){for(const e in t)t[e].value&&(t[e].value=Di(t[e].value)),Ar(t,e)}(t.attributes);const e=[];if(t.children)if(Br(t.children))e.push(t.children);else for(const n of t.children)Dr(n)||Er(n)||Po(n)?e.push(n):e.push(new dr(n));t.children=e}return t}function Ar(t,e){t[e]=Di(t[e])}function Cr(t,e){return xr(e)?t:xr(t)?e:`${t} ${e}`}function vr(t,e){for(const n in e)t[n]?t[n].push(...e[n]):t[n]=e[n]}function yr(t,e){if(e.attributes&&(t.attributes||(t.attributes={}),vr(t.attributes,e.attributes)),e.eventListeners&&(t.eventListeners||(t.eventListeners={}),vr(t.eventListeners,e.eventListeners)),e.text&&t.text.push(...e.text),e.children&&e.children.length){if(t.children.length!=e.children.length)throw new x("ui-template-extend-children-mismatch",t);let n=0;for(const o of e.children)yr(t.children[n++],o)}}function xr(t){return!t&&0!==t}function Er(t){return t instanceof Lr}function Dr(t){return t instanceof dr}function Br(t){return t instanceof lr}function Tr(t){return j(t[0])&&t[0].ns}function Sr(t){return"class"==t||"style"==t}var Ir=n(2591),Pr=n.n(Ir),zr=n(7676),Rr={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(zr.A,Rr);zr.A.locals;class Lr extends(Lo(J())){element;isRendered;locale;t;template;_viewCollections;_unboundChildren;_bindTemplate;constructor(t){super(),this.element=null,this.isRendered=!1,this.locale=t,this.t=t&&t.t,this._viewCollections=new Qi,this._unboundChildren=this.createCollection(),this._viewCollections.on("add",((e,n)=>{n.locale=t,n.t=t&&t.t})),this.decorate("render")}get bindTemplate(){return this._bindTemplate?this._bindTemplate:this._bindTemplate=dr.bind(this,this)}createCollection(t){const e=new lr(t);return this._viewCollections.add(e),e}registerChild(t){rt(t)||(t=[t]);for(const e of t)this._unboundChildren.add(e)}deregisterChild(t){rt(t)||(t=[t]);for(const e of t)this._unboundChildren.remove(e)}setTemplate(t){this.template=new dr(t)}extendTemplate(t){dr.extend(this.template,t)}render(){if(this.isRendered)throw new x("ui-view-render-already-rendered",this);this.template&&(this.element=this.template.render(),this.registerChild(this.template.getViews())),this.isRendered=!0}destroy(){this.stopListening(),this._viewCollections.map((t=>t.destroy())),this.template&&this.template._revertData&&this.template.revert(this.element)}}function Fr({emitter:t,activator:e,callback:n,contextElements:o}){t.listenTo(document,"mousedown",((t,i)=>{if(!e())return;const r="function"==typeof i.composedPath?i.composedPath():[],s="function"==typeof o?o():o;for(const t of s)if(t.contains(i.target)||r.includes(t))return;n()}))}function Mr(t){return class extends t{disableCssTransitions(){this._isCssTransitionsDisabled=!0}enableCssTransitions(){this._isCssTransitionsDisabled=!1}constructor(...t){super(...t),this.set("_isCssTransitionsDisabled",!1),this.initializeCssTransitionDisablerMixin()}initializeCssTransitionDisablerMixin(){this.extendTemplate({attributes:{class:[this.bindTemplate.if("_isCssTransitionsDisabled","ck-transitions-disabled")]}})}}}function Vr({view:t}){t.listenTo(t.element,"submit",((e,n)=>{n.preventDefault(),t.fire("submit")}),{useCapture:!0})}function Or({keystrokeHandler:t,focusTracker:e,gridItems:n,numberOfColumns:o,uiLanguageDirection:i}){const r="number"==typeof o?()=>o:o;function s(t){return o=>{const i=n.find((t=>t.element===e.focusedElement)),r=n.getIndex(i),s=t(r,n);n.get(s).focus(),o.stopPropagation(),o.preventDefault()}}function a(t,e){return t===e-1?0:t+1}function c(t,e){return 0===t?e-1:t-1}t.set("arrowright",s(((t,e)=>"rtl"===i?c(t,e.length):a(t,e.length)))),t.set("arrowleft",s(((t,e)=>"rtl"===i?a(t,e.length):c(t,e.length)))),t.set("arrowup",s(((t,e)=>{let n=t-r();return n<0&&(n=t+r()*Math.floor(e.length/r()),n>e.length-1&&(n-=r())),n}))),t.set("arrowdown",s(((t,e)=>{let n=t+r();return n>e.length-1&&(n=t%r()),n})))}class Nr extends(J()){editor;_disableStack=new Set;constructor(t){super(),this.editor=t,this.set("isEnabled",!0)}forceDisabled(t){this._disableStack.add(t),1==this._disableStack.size&&(this.on("set:isEnabled",Hr,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(t){this._disableStack.delete(t),0==this._disableStack.size&&(this.off("set:isEnabled",Hr),this.isEnabled=!0)}destroy(){this.stopListening()}static get isContextPlugin(){return!1}}function Hr(t){t.return=!1,t.stop()}class qr extends(J()){editor;_isEnabledBasedOnSelection;_affectsData;_disableStack;constructor(t){super(),this.editor=t,this.set("value",void 0),this.set("isEnabled",!1),this._affectsData=!0,this._isEnabledBasedOnSelection=!0,this._disableStack=new Set,this.decorate("execute"),this.listenTo(this.editor.model.document,"change",(()=>{this.refresh()})),this.listenTo(t,"change:isReadOnly",(()=>{this.refresh()})),this.on("set:isEnabled",(e=>{if(!this.affectsData)return;const n=t.model.document.selection,o=!("$graveyard"==n.getFirstPosition().root.rootName)&&t.model.canEditAt(n);(t.isReadOnly||this._isEnabledBasedOnSelection&&!o)&&(e.return=!1,e.stop())}),{priority:"highest"}),this.on("execute",(t=>{this.isEnabled||t.stop()}),{priority:"high"})}get affectsData(){return this._affectsData}set affectsData(t){this._affectsData=t}refresh(){this.isEnabled=!0}forceDisabled(t){this._disableStack.add(t),1==this._disableStack.size&&(this.on("set:isEnabled",jr,{priority:"highest"}),this.isEnabled=!1)}clearForceDisabled(t){this._disableStack.delete(t),0==this._disableStack.size&&(this.off("set:isEnabled",jr),this.refresh())}execute(...t){}destroy(){this.stopListening()}}function jr(t){t.return=!1,t.stop()}class Wr extends qr{_childCommandsDefinitions=[];refresh(){}execute(...t){const e=this._getFirstEnabledCommand();return!!e&&e.execute(t)}registerChildCommand(t,e={}){v(this._childCommandsDefinitions,{command:t,priority:e.priority||"normal"}),t.on("change:isEnabled",(()=>this._checkEnabled())),this._checkEnabled()}_checkEnabled(){this.isEnabled=!!this._getFirstEnabledCommand()}_getFirstEnabledCommand(){const t=this._childCommandsDefinitions.find((({command:t})=>t.isEnabled));return t&&t.command}}class Gr extends(L()){_context;_plugins=new Map;_availablePlugins;_contextPlugins;constructor(t,e=[],n=[]){super(),this._context=t,this._availablePlugins=new Map;for(const t of e)t.pluginName&&this._availablePlugins.set(t.pluginName,t);this._contextPlugins=new Map;for(const[t,e]of n)this._contextPlugins.set(t,e),this._contextPlugins.set(e,t),t.pluginName&&this._availablePlugins.set(t.pluginName,t)}*[Symbol.iterator](){for(const t of this._plugins)"function"==typeof t[0]&&(yield t)}get(t){const e=this._plugins.get(t);if(!e){let e=t;throw"function"==typeof t&&(e=t.pluginName||t.name),new x("plugincollection-plugin-not-loaded",this._context,{plugin:e})}return e}has(t){return this._plugins.has(t)}init(t,e=[],n=[]){const o=this,i=this._context;!function t(e,n=new Set){e.forEach((e=>{a(e)&&(n.has(e)||(n.add(e),e.pluginName&&!o._availablePlugins.has(e.pluginName)&&o._availablePlugins.set(e.pluginName,e),e.requires&&t(e.requires,n)))}))}(t),h(t);const r=[...function t(e,n=new Set){return e.map((t=>a(t)?t:o._availablePlugins.get(t))).reduce(((e,o)=>n.has(o)?e:(n.add(o),o.requires&&(h(o.requires,o),t(o.requires,n).forEach((t=>e.add(t)))),e.add(o))),new Set)}(t.filter((t=>!l(t,e))))];!function(t,e){for(const n of e){if("function"!=typeof n)throw new x("plugincollection-replace-plugin-invalid-type",null,{pluginItem:n});const e=n.pluginName;if(!e)throw new x("plugincollection-replace-plugin-missing-name",null,{pluginItem:n});if(n.requires&&n.requires.length)throw new x("plugincollection-plugin-for-replacing-cannot-have-dependencies",null,{pluginName:e});const i=o._availablePlugins.get(e);if(!i)throw new x("plugincollection-plugin-for-replacing-not-exist",null,{pluginName:e});const r=t.indexOf(i);if(-1===r){if(o._contextPlugins.has(i))return;throw new x("plugincollection-plugin-for-replacing-not-loaded",null,{pluginName:e})}if(i.requires&&i.requires.length)throw new x("plugincollection-replaced-plugin-cannot-have-dependencies",null,{pluginName:e});t.splice(r,1,n),o._availablePlugins.set(e,n)}}(r,n);const s=r.map((t=>{let e=o._contextPlugins.get(t);return e=e||new t(i),o._add(t,e),e}));return u(s,"init").then((()=>u(s,"afterInit"))).then((()=>s));function a(t){return"function"==typeof t}function c(t){return a(t)&&!!t.isContextPlugin}function l(t,e){return e.some((e=>e===t||(d(t)===e||d(e)===t)))}function d(t){return a(t)?t.pluginName||t.name:t}function h(t,n=null){t.map((t=>a(t)?t:o._availablePlugins.get(t)||t)).forEach((t=>{!function(t,e){if(a(t))return;if(e)throw new x("plugincollection-soft-required",i,{missingPlugin:t,requiredBy:d(e)});throw new x("plugincollection-plugin-not-found",i,{plugin:t})}(t,n),function(t,e){if(!c(e))return;if(c(t))return;throw new x("plugincollection-context-required",i,{plugin:d(t),requiredBy:d(e)})}(t,n),function(t,n){if(!n)return;if(!l(t,e))return;throw new x("plugincollection-required",i,{plugin:d(t),requiredBy:d(n)})}(t,n)}))}function u(t,e){return t.reduce(((t,n)=>n[e]?o._contextPlugins.has(n)?t:t.then(n[e].bind(n)):t),Promise.resolve())}}destroy(){const t=[];for(const[,e]of this)"function"!=typeof e.destroy||this._contextPlugins.has(e)||t.push(e.destroy());return Promise.all(t)}_add(t,e){this._plugins.set(t,e);const n=t.pluginName;if(n){if(this._plugins.has(n))throw new x("plugincollection-plugin-name-conflict",null,{pluginName:n,plugin1:this._plugins.get(n).constructor,plugin2:t});this._plugins.set(n,e)}}}class Kr{config;plugins;locale;t;editors;static defaultConfig;static builtinPlugins;_contextOwner=null;constructor(t){const{translations:e,...n}=t||{};this.config=new To(n,this.constructor.defaultConfig);const o=this.constructor.builtinPlugins;this.config.define("plugins",o),this.plugins=new Gr(this,o);const i=this.config.get("language")||{};this.locale=new Yi({uiLanguage:"string"==typeof i?i:i.ui,contentLanguage:this.config.get("language.content"),translations:e}),this.t=this.locale.t,this.editors=new Qi}initPlugins(){const t=this.config.get("plugins")||[],e=this.config.get("substitutePlugins")||[];for(const n of t.concat(e)){if("function"!=typeof n)throw new x("context-initplugins-constructor-only",null,{Plugin:n});if(!0!==n.isContextPlugin)throw new x("context-initplugins-invalid-plugin",null,{Plugin:n})}return this.plugins.init(t,[],e)}destroy(){return Promise.all(Array.from(this.editors,(t=>t.destroy()))).then((()=>this.plugins.destroy()))}_addEditor(t,e){if(this._contextOwner)throw new x("context-addeditor-private-context");this.editors.add(t),e&&(this._contextOwner=t)}_removeEditor(t){return this.editors.has(t)&&this.editors.remove(t),this._contextOwner===t?this.destroy():Promise.resolve()}_getEditorConfig(){const t={};for(const e of this.config.names())["plugins","removePlugins","extraPlugins"].includes(e)||(t[e]=this.config.get(e));return t}static create(t){return new Promise((e=>{const n=new this(t);e(n.initPlugins().then((()=>n)))}))}}class Ur extends(J()){context;constructor(t){super(),this.context=t}destroy(){this.stopListening()}static get isContextPlugin(){return!0}}class $r extends er{editor;constructor(t){super(),this.editor=t}set(t,e,n={}){if("string"==typeof e){const t=e;e=(e,n)=>{this.editor.execute(t),n()}}super.set(t,e,n)}}var Zr=n(4098),Jr={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Zr.A,Jr);Zr.A.locals;const Yr=new WeakMap;let Qr=!1;function Xr({view:t,element:e,text:n,isDirectHost:o=!0,keepOnFocus:i=!1}){const r=t.document;function s(n){Yr.get(r).set(e,{text:n,isDirectHost:o,keepOnFocus:i,hostElement:o?e:null}),t.change((t=>es(r,t)))}Yr.has(r)||(Yr.set(r,new Map),r.registerPostFixer((t=>es(r,t))),r.on("change:isComposing",(()=>{t.change((t=>es(r,t)))}),{priority:"high"})),e.is("editableElement")&&e.on("change:placeholder",((t,e,n)=>{s(n)})),e.placeholder?s(e.placeholder):n&&s(n),n&&function(){Qr||E("enableplaceholder-deprecated-text-option");Qr=!0}()}function ts(t,e){return!!e.hasClass("ck-placeholder")&&(t.removeClass("ck-placeholder",e),!0)}function es(t,e){const n=Yr.get(t),o=[];let i=!1;for(const[t,r]of n)r.isDirectHost&&(o.push(t),ns(e,t,r)&&(i=!0));for(const[t,r]of n){if(r.isDirectHost)continue;const n=os(t);n&&(o.includes(n)||(r.hostElement=n,ns(e,t,r)&&(i=!0)))}return i}function ns(t,e,n){const{text:o,isDirectHost:i,hostElement:r}=n;let s=!1;r.getAttribute("data-placeholder")!==o&&(t.setAttribute("data-placeholder",o,r),s=!0);return(i||1==e.childCount)&&function(t,e){if(!t.isAttached())return!1;if(Array.from(t.getChildren()).some((t=>!t.is("uiElement"))))return!1;const n=t.document,o=n.selection.anchor;return!(n.isComposing&&o&&o.parent===t||!e&&n.isFocused&&(!o||o.parent===t))}(r,n.keepOnFocus)?function(t,e){return!e.hasClass("ck-placeholder")&&(t.addClass("ck-placeholder",e),!0)}(t,r)&&(s=!0):ts(t,r)&&(s=!0),s}function os(t){if(t.childCount){const e=t.getChild(0);if(e.is("element")&&!e.is("uiElement")&&!e.is("attributeElement"))return e}return null}class is{is(){throw new Error("is() method is abstract")}}const rs=function(t){return Eo(t,4)};class ss extends(L(is)){document;parent;constructor(t){super(),this.document=t,this.parent=null}get index(){let t;if(!this.parent)return null;if(-1==(t=this.parent.getChildIndex(this)))throw new x("view-node-not-found-in-parent",this);return t}get nextSibling(){const t=this.index;return null!==t&&this.parent.getChild(t+1)||null}get previousSibling(){const t=this.index;return null!==t&&this.parent.getChild(t-1)||null}get root(){let t=this;for(;t.parent;)t=t.parent;return t}isAttached(){return this.root.is("rootElement")}getPath(){const t=[];let e=this;for(;e.parent;)t.unshift(e.index),e=e.parent;return t}getAncestors(t={}){const e=[];let n=t.includeSelf?this:this.parent;for(;n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}getCommonAncestor(t,e={}){const n=this.getAncestors(e),o=t.getAncestors(e);let i=0;for(;n[i]==o[i]&&n[i];)i++;return 0===i?null:n[i-1]}isBefore(t){if(this==t)return!1;if(this.root!==t.root)return!1;const e=this.getPath(),n=t.getPath(),o=it(e,n);switch(o){case"prefix":return!0;case"extension":return!1;default:return e[o]t.data.length)throw new x("view-textproxy-wrong-offsetintext",this);if(n<0||e+n>t.data.length)throw new x("view-textproxy-wrong-length",this);this.data=t.data.substring(e,e+n),this.offsetInText=e}get offsetSize(){return this.data.length}get isPartial(){return this.data.length!==this.textNode.data.length}get parent(){return this.textNode.parent}get root(){return this.textNode.root}get document(){return this.textNode.document}getAncestors(t={}){const e=[];let n=t.includeSelf?this.textNode:this.parent;for(;null!==n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}}cs.prototype.is=function(t){return"$textProxy"===t||"view:$textProxy"===t||"textProxy"===t||"view:textProxy"===t};class ls{_patterns=[];constructor(...t){this.add(...t)}add(...t){for(let e of t)("string"==typeof e||e instanceof RegExp)&&(e={name:e}),this._patterns.push(e)}match(...t){for(const e of t)for(const t of this._patterns){const n=ds(e,t);if(n)return{element:e,pattern:t,match:n}}return null}matchAll(...t){const e=[];for(const n of t)for(const t of this._patterns){const o=ds(n,t);o&&e.push({element:n,pattern:t,match:o})}return e.length>0?e:null}getElementName(){if(1!==this._patterns.length)return null;const t=this._patterns[0],e=t.name;return"function"==typeof t||!e||e instanceof RegExp?null:e}}function ds(t,e){if("function"==typeof e)return e(t);const n={};return e.name&&(n.name=function(t,e){if(t instanceof RegExp)return!!e.match(t);return t===e}(e.name,t.name),!n.name)||e.attributes&&(n.attributes=function(t,e){const n=new Set(e.getAttributeKeys());St(t)?(void 0!==t.style&&E("matcher-pattern-deprecated-attributes-style-key",t),void 0!==t.class&&E("matcher-pattern-deprecated-attributes-class-key",t)):(n.delete("style"),n.delete("class"));return hs(t,n,(t=>e.getAttribute(t)))}(e.attributes,t),!n.attributes)||e.classes&&(n.classes=function(t,e){return hs(t,e.getClassNames(),(()=>{}))}(e.classes,t),!n.classes)||e.styles&&(n.styles=function(t,e){return hs(t,e.getStyleNames(!0),(t=>e.getStyle(t)))}(e.styles,t),!n.styles)?null:n}function hs(t,e,n){const o=function(t){if(Array.isArray(t))return t.map((t=>St(t)?(void 0!==t.key&&void 0!==t.value||E("matcher-pattern-missing-key-or-value",t),[t.key,t.value]):[t,!0]));if(St(t))return Object.entries(t);return[[t,!0]]}(t),i=Array.from(e),r=[];if(o.forEach((([t,e])=>{i.forEach((o=>{(function(t,e){return!0===t||t===e||t instanceof RegExp&&e.match(t)})(t,o)&&function(t,e,n){if(!0===t)return!0;const o=n(e);return t===o||t instanceof RegExp&&!!String(o).match(t)}(e,o,n)&&r.push(o)}))})),o.length&&!(r.lengthi?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var r=Array(i);++oe===t));return Array.isArray(e)}set(t,e){if(j(t))for(const[e,n]of Object.entries(t))this._styleProcessor.toNormalizedForm(e,n,this._styles);else this._styleProcessor.toNormalizedForm(t,e,this._styles)}remove(t){const e=Hs(t);Ls(this._styles,e),delete this._styles[t],this._cleanEmptyObjectsOnPath(e)}getNormalized(t){return this._styleProcessor.getNormalized(t,this._styles)}toString(){return this.isEmpty?"":this.getStylesEntries().map((t=>t.join(":"))).sort().join(";")+";"}getAsString(t){if(this.isEmpty)return;if(this._styles[t]&&!j(this._styles[t]))return this._styles[t];const e=this._styleProcessor.getReducedForm(t,this._styles).find((([e])=>e===t));return Array.isArray(e)?e[1]:void 0}getStyleNames(t=!1){if(this.isEmpty)return[];if(t)return this._styleProcessor.getStyleNames(this._styles);return this.getStylesEntries().map((([t])=>t))}clear(){this._styles={}}getStylesEntries(){const t=[],e=Object.keys(this._styles);for(const n of e)t.push(...this._styleProcessor.getReducedForm(n,this._styles));return t}_cleanEmptyObjectsOnPath(t){const e=t.split(".");if(!(e.length>1))return;const n=e.splice(0,e.length-1).join("."),o=Fs(this._styles,n);if(!o)return;!Object.keys(o).length&&this.remove(n)}}class Ns{_normalizers;_extractors;_reducers;_consumables;constructor(){this._normalizers=new Map,this._extractors=new Map,this._reducers=new Map,this._consumables=new Map}toNormalizedForm(t,e,n){if(j(e))qs(n,Hs(t),e);else if(this._normalizers.has(t)){const o=this._normalizers.get(t),{path:i,value:r}=o(e);qs(n,i,r)}else qs(n,t,e)}getNormalized(t,e){if(!t)return Ui({},e);if(void 0!==e[t])return e[t];if(this._extractors.has(t)){const n=this._extractors.get(t);if("string"==typeof n)return Fs(e,n);const o=n(t,e);if(o)return o}return Fs(e,Hs(t))}getReducedForm(t,e){const n=this.getNormalized(t,e);if(void 0===n)return[];if(this._reducers.has(t)){return this._reducers.get(t)(n)}return[[t,n]]}getStyleNames(t){const e=Array.from(this._consumables.keys()).filter((e=>{const n=this.getNormalized(e,t);return n&&"object"==typeof n?Object.keys(n).length:n})),n=new Set([...e,...Object.keys(t)]);return Array.from(n)}getRelatedStyles(t){return this._consumables.get(t)||[]}setNormalizer(t,e){this._normalizers.set(t,e)}setExtractor(t,e){this._extractors.set(t,e)}setReducer(t,e){this._reducers.set(t,e)}setStyleRelation(t,e){this._mapStyleNames(t,e);for(const n of e)this._mapStyleNames(n,[t])}_mapStyleNames(t,e){this._consumables.has(t)||this._consumables.set(t,[]),this._consumables.get(t).push(...e)}}function Hs(t){return t.replace("-",".")}function qs(t,e,n){let o=n;j(n)&&(o=Ui({},Fs(t,e),n)),Vs(t,e,o)}class js extends ss{name;_unsafeAttributesToRender=[];_attrs;_children;_classes;_styles;_customProperties=new Map;constructor(t,e,n,o){if(super(t),this.name=e,this._attrs=function(t){const e=nr(t);for(const[t,n]of e)null===n?e.delete(t):"string"!=typeof n&&e.set(t,String(n));return e}(n),this._children=[],o&&this._insertChild(0,o),this._classes=new Set,this._attrs.has("class")){const t=this._attrs.get("class");Ws(this._classes,t),this._attrs.delete("class")}this._styles=new Os(this.document.stylesProcessor),this._attrs.has("style")&&(this._styles.setTo(this._attrs.get("style")),this._attrs.delete("style"))}get childCount(){return this._children.length}get isEmpty(){return 0===this._children.length}getChild(t){return this._children[t]}getChildIndex(t){return this._children.indexOf(t)}getChildren(){return this._children[Symbol.iterator]()}*getAttributeKeys(){this._classes.size>0&&(yield"class"),this._styles.isEmpty||(yield"style"),yield*this._attrs.keys()}*getAttributes(){yield*this._attrs.entries(),this._classes.size>0&&(yield["class",this.getAttribute("class")]),this._styles.isEmpty||(yield["style",this.getAttribute("style")])}getAttribute(t){if("class"==t)return this._classes.size>0?[...this._classes].join(" "):void 0;if("style"==t){const t=this._styles.toString();return""==t?void 0:t}return this._attrs.get(t)}hasAttribute(t){return"class"==t?this._classes.size>0:"style"==t?!this._styles.isEmpty:this._attrs.has(t)}isSimilar(t){if(!(t instanceof js))return!1;if(this===t)return!0;if(this.name!=t.name)return!1;if(this._attrs.size!==t._attrs.size||this._classes.size!==t._classes.size||this._styles.size!==t._styles.size)return!1;for(const[e,n]of this._attrs)if(!t._attrs.has(e)||t._attrs.get(e)!==n)return!1;for(const e of this._classes)if(!t._classes.has(e))return!1;for(const e of this._styles.getStyleNames())if(!t._styles.has(e)||t._styles.getAsString(e)!==this._styles.getAsString(e))return!1;return!0}hasClass(...t){for(const e of t)if(!this._classes.has(e))return!1;return!0}getClassNames(){return this._classes.keys()}getStyle(t){return this._styles.getAsString(t)}getNormalizedStyle(t){return this._styles.getNormalized(t)}getStyleNames(t){return this._styles.getStyleNames(t)}hasStyle(...t){for(const e of t)if(!this._styles.has(e))return!1;return!0}findAncestor(...t){const e=new ls(...t);let n=this.parent;for(;n&&!n.is("documentFragment");){if(e.match(n))return n;n=n.parent}return null}getCustomProperty(t){return this._customProperties.get(t)}*getCustomProperties(){yield*this._customProperties.entries()}getIdentity(){const t=Array.from(this._classes).sort().join(","),e=this._styles.toString(),n=Array.from(this._attrs).map((t=>`${t[0]}="${t[1]}"`)).sort().join(" ");return this.name+(""==t?"":` class="${t}"`)+(e?` style="${e}"`:"")+(""==n?"":` ${n}`)}shouldRenderUnsafeAttribute(t){return this._unsafeAttributesToRender.includes(t)}_clone(t=!1){const e=[];if(t)for(const n of this.getChildren())e.push(n._clone(t));const n=new this.constructor(this.document,this.name,this._attrs,e);return n._classes=new Set(this._classes),n._styles.set(this._styles.getNormalized()),n._customProperties=new Map(this._customProperties),n.getFillerOffset=this.getFillerOffset,n._unsafeAttributesToRender=this._unsafeAttributesToRender,n}_appendChild(t){return this._insertChild(this.childCount,t)}_insertChild(t,e){this._fireChange("children",this);let n=0;const o=function(t,e){if("string"==typeof e)return[new as(t,e)];rt(e)||(e=[e]);return Array.from(e).map((e=>"string"==typeof e?new as(t,e):e instanceof cs?new as(t,e.data):e))}(this.document,e);for(const e of o)null!==e.parent&&e._remove(),e.parent=this,e.document=this.document,this._children.splice(t,0,e),t++,n++;return n}_removeChildren(t,e=1){this._fireChange("children",this);for(let n=t;n0&&(this._classes.clear(),!0):"style"==t?!this._styles.isEmpty&&(this._styles.clear(),!0):this._attrs.delete(t)}_addClass(t){this._fireChange("attributes",this);for(const e of Di(t))this._classes.add(e)}_removeClass(t){this._fireChange("attributes",this);for(const e of Di(t))this._classes.delete(e)}_setStyle(t,e){this._fireChange("attributes",this),"string"!=typeof t?this._styles.set(t):this._styles.set(t,e)}_removeStyle(t){this._fireChange("attributes",this);for(const e of Di(t))this._styles.remove(e)}_setCustomProperty(t,e){this._customProperties.set(t,e)}_removeCustomProperty(t){return this._customProperties.delete(t)}}function Ws(t,e){const n=e.split(/\s+/);t.clear(),n.forEach((e=>t.add(e)))}js.prototype.is=function(t,e){return e?e===this.name&&("element"===t||"view:element"===t):"element"===t||"view:element"===t||"node"===t||"view:node"===t};class Gs extends js{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=Ks}}function Ks(){const t=[...this.getChildren()],e=t[this.childCount-1];if(e&&e.is("element","br"))return this.childCount;for(const e of t)if(!e.is("uiElement"))return null;return this.childCount}Gs.prototype.is=function(t,e){return e?e===this.name&&("containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t};class Us extends(J(Gs)){constructor(t,e,n,o){super(t,e,n,o),this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("placeholder",void 0),this.bind("isReadOnly").to(t),this.bind("isFocused").to(t,"isFocused",(e=>e&&t.selection.editableElement==this)),this.listenTo(t.selection,"change",(()=>{this.isFocused=t.isFocused&&t.selection.editableElement==this}))}destroy(){this.stopListening()}}Us.prototype.is=function(t,e){return e?e===this.name&&("editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t};const $s=Symbol("rootName");class Zs extends Us{constructor(t,e){super(t,e),this.rootName="main"}get rootName(){return this.getCustomProperty($s)}set rootName(t){this._setCustomProperty($s,t)}set _name(t){this.name=t}}Zs.prototype.is=function(t,e){return e?e===this.name&&("rootElement"===t||"view:rootElement"===t||"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t):"rootElement"===t||"view:rootElement"===t||"editableElement"===t||"view:editableElement"===t||"containerElement"===t||"view:containerElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t};class Js{direction;boundaries;singleCharacters;shallow;ignoreElementEnd;_position;_boundaryStartParent;_boundaryEndParent;constructor(t={}){if(!t.boundaries&&!t.startPosition)throw new x("view-tree-walker-no-start-position",null);if(t.direction&&"forward"!=t.direction&&"backward"!=t.direction)throw new x("view-tree-walker-unknown-direction",t.startPosition,{direction:t.direction});this.boundaries=t.boundaries||null,t.startPosition?this._position=Ys._createAt(t.startPosition):this._position=Ys._createAt(t.boundaries["backward"==t.direction?"end":"start"]),this.direction=t.direction||"forward",this.singleCharacters=!!t.singleCharacters,this.shallow=!!t.shallow,this.ignoreElementEnd=!!t.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null}[Symbol.iterator](){return this}get position(){return this._position}skip(t){let e,n;do{n=this.position,e=this.next()}while(!e.done&&t(e.value));e.done||(this._position=n)}next(){return"forward"==this.direction?this._next():this._previous()}_next(){let t=this.position.clone();const e=this.position,n=t.parent;if(null===n.parent&&t.offset===n.childCount)return{done:!0,value:void 0};if(n===this._boundaryEndParent&&t.offset==this.boundaries.end.offset)return{done:!0,value:void 0};let o;if(n instanceof as){if(t.isAtEnd)return this._position=Ys._createAfter(n),this._next();o=n.data[t.offset]}else o=n.getChild(t.offset);if(o instanceof js){if(this.shallow){if(this.boundaries&&this.boundaries.end.isBefore(t))return{done:!0,value:void 0};t.offset++}else t=new Ys(o,0);return this._position=t,this._formatReturnValue("elementStart",o,e,t,1)}if(o instanceof as){if(this.singleCharacters)return t=new Ys(o,0),this._position=t,this._next();let n,i=o.data.length;return o==this._boundaryEndParent?(i=this.boundaries.end.offset,n=new cs(o,0,i),t=Ys._createAfter(n)):(n=new cs(o,0,o.data.length),t.offset++),this._position=t,this._formatReturnValue("text",n,e,t,i)}if("string"==typeof o){let o;if(this.singleCharacters)o=1;else{o=(n===this._boundaryEndParent?this.boundaries.end.offset:n.data.length)-t.offset}const i=new cs(n,t.offset,o);return t.offset+=o,this._position=t,this._formatReturnValue("text",i,e,t,o)}return t=Ys._createAfter(n),this._position=t,this.ignoreElementEnd?this._next():this._formatReturnValue("elementEnd",n,e,t)}_previous(){let t=this.position.clone();const e=this.position,n=t.parent;if(null===n.parent&&0===t.offset)return{done:!0,value:void 0};if(n==this._boundaryStartParent&&t.offset==this.boundaries.start.offset)return{done:!0,value:void 0};let o;if(n instanceof as){if(t.isAtStart)return this._position=Ys._createBefore(n),this._previous();o=n.data[t.offset-1]}else o=n.getChild(t.offset-1);if(o instanceof js)return this.shallow?(t.offset--,this._position=t,this._formatReturnValue("elementStart",o,e,t,1)):(t=new Ys(o,o.childCount),this._position=t,this.ignoreElementEnd?this._previous():this._formatReturnValue("elementEnd",o,e,t));if(o instanceof as){if(this.singleCharacters)return t=new Ys(o,o.data.length),this._position=t,this._previous();let n,i=o.data.length;if(o==this._boundaryStartParent){const e=this.boundaries.start.offset;n=new cs(o,e,o.data.length-e),i=n.data.length,t=Ys._createBefore(n)}else n=new cs(o,0,o.data.length),t.offset--;return this._position=t,this._formatReturnValue("text",n,e,t,i)}if("string"==typeof o){let o;if(this.singleCharacters)o=1;else{const e=n===this._boundaryStartParent?this.boundaries.start.offset:0;o=t.offset-e}t.offset-=o;const i=new cs(n,t.offset,o);return this._position=t,this._formatReturnValue("text",i,e,t,o)}return t=Ys._createBefore(n),this._position=t,this._formatReturnValue("elementStart",n,e,t,1)}_formatReturnValue(t,e,n,o,i){return e instanceof cs&&(e.offsetInText+e.data.length==e.textNode.data.length&&("forward"!=this.direction||this.boundaries&&this.boundaries.end.isEqual(this.position)?n=Ys._createAfter(e.textNode):(o=Ys._createAfter(e.textNode),this._position=o)),0===e.offsetInText&&("backward"!=this.direction||this.boundaries&&this.boundaries.start.isEqual(this.position)?n=Ys._createBefore(e.textNode):(o=Ys._createBefore(e.textNode),this._position=o))),{done:!1,value:{type:t,item:e,previousPosition:n,nextPosition:o,length:i}}}}class Ys extends is{parent;offset;constructor(t,e){super(),this.parent=t,this.offset=e}get nodeAfter(){return this.parent.is("$text")?null:this.parent.getChild(this.offset)||null}get nodeBefore(){return this.parent.is("$text")?null:this.parent.getChild(this.offset-1)||null}get isAtStart(){return 0===this.offset}get isAtEnd(){const t=this.parent.is("$text")?this.parent.data.length:this.parent.childCount;return this.offset===t}get root(){return this.parent.root}get editableElement(){let t=this.parent;for(;!(t instanceof Us);){if(!t.parent)return null;t=t.parent}return t}getShiftedBy(t){const e=Ys._createAt(this),n=e.offset+t;return e.offset=n<0?0:n,e}getLastMatchingPosition(t,e={}){e.startPosition=this;const n=new Js(e);return n.skip(t),n.position}getAncestors(){return this.parent.is("documentFragment")?[this.parent]:this.parent.getAncestors({includeSelf:!0})}getCommonAncestor(t){const e=this.getAncestors(),n=t.getAncestors();let o=0;for(;e[o]==n[o]&&e[o];)o++;return 0===o?null:e[o-1]}isEqual(t){return this.parent==t.parent&&this.offset==t.offset}isBefore(t){return"before"==this.compareWith(t)}isAfter(t){return"after"==this.compareWith(t)}compareWith(t){if(this.root!==t.root)return"different";if(this.isEqual(t))return"same";const e=this.parent.is("node")?this.parent.getPath():[],n=t.parent.is("node")?t.parent.getPath():[];e.push(this.offset),n.push(t.offset);const o=it(e,n);switch(o){case"prefix":return"before";case"extension":return"after";default:return e[o]0?new this(n,o):new this(o,n)}static _createIn(t){return this._createFromParentsAndOffsets(t,0,t,t.childCount)}static _createOn(t){const e=t.is("$textProxy")?t.offsetSize:1;return this._createFromPositionAndShift(Ys._createBefore(t),e)}}function Xs(t){return!(!t.item.is("attributeElement")&&!t.item.is("uiElement"))}Qs.prototype.is=function(t){return"range"===t||"view:range"===t};class ta extends(L(is)){_ranges;_lastRangeBackward;_isFake;_fakeSelectionLabel;constructor(...t){super(),this._ranges=[],this._lastRangeBackward=!1,this._isFake=!1,this._fakeSelectionLabel="",t.length&&this.setTo(...t)}get isFake(){return this._isFake}get fakeSelectionLabel(){return this._fakeSelectionLabel}get anchor(){if(!this._ranges.length)return null;const t=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?t.end:t.start).clone()}get focus(){if(!this._ranges.length)return null;const t=this._ranges[this._ranges.length-1];return(this._lastRangeBackward?t.start:t.end).clone()}get isCollapsed(){return 1===this.rangeCount&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}get editableElement(){return this.anchor?this.anchor.editableElement:null}*getRanges(){for(const t of this._ranges)yield t.clone()}getFirstRange(){let t=null;for(const e of this._ranges)t&&!e.start.isBefore(t.start)||(t=e);return t?t.clone():null}getLastRange(){let t=null;for(const e of this._ranges)t&&!e.end.isAfter(t.end)||(t=e);return t?t.clone():null}getFirstPosition(){const t=this.getFirstRange();return t?t.start.clone():null}getLastPosition(){const t=this.getLastRange();return t?t.end.clone():null}isEqual(t){if(this.isFake!=t.isFake)return!1;if(this.isFake&&this.fakeSelectionLabel!=t.fakeSelectionLabel)return!1;if(this.rangeCount!=t.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(t.anchor)||!this.focus.isEqual(t.focus))return!1;for(const e of this._ranges){let n=!1;for(const o of t._ranges)if(e.isEqual(o)){n=!0;break}if(!n)return!1}return!0}isSimilar(t){if(this.isBackward!=t.isBackward)return!1;const e=ot(this.getRanges());if(e!=ot(t.getRanges()))return!1;if(0==e)return!0;for(let e of this.getRanges()){e=e.getTrimmed();let n=!1;for(let o of t.getRanges())if(o=o.getTrimmed(),e.start.isEqual(o.start)&&e.end.isEqual(o.end)){n=!0;break}if(!n)return!1}return!0}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}setTo(...t){let[e,n,o]=t;if("object"==typeof n&&(o=n,n=void 0),null===e)this._setRanges([]),this._setFakeOptions(o);else if(e instanceof ta||e instanceof ea)this._setRanges(e.getRanges(),e.isBackward),this._setFakeOptions({fake:e.isFake,label:e.fakeSelectionLabel});else if(e instanceof Qs)this._setRanges([e],o&&o.backward),this._setFakeOptions(o);else if(e instanceof Ys)this._setRanges([new Qs(e)]),this._setFakeOptions(o);else if(e instanceof ss){const t=!!o&&!!o.backward;let i;if(void 0===n)throw new x("view-selection-setto-required-second-parameter",this);i="in"==n?Qs._createIn(e):"on"==n?Qs._createOn(e):new Qs(Ys._createAt(e,n)),this._setRanges([i],t),this._setFakeOptions(o)}else{if(!rt(e))throw new x("view-selection-setto-not-selectable",this);this._setRanges(e,o&&o.backward),this._setFakeOptions(o)}this.fire("change")}setFocus(t,e){if(null===this.anchor)throw new x("view-selection-setfocus-no-ranges",this);const n=Ys._createAt(t,e);if("same"==n.compareWith(this.focus))return;const o=this.anchor;this._ranges.pop(),"before"==n.compareWith(o)?this._addRange(new Qs(n,o),!0):this._addRange(new Qs(o,n)),this.fire("change")}_setRanges(t,e=!1){t=Array.from(t),this._ranges=[];for(const e of t)this._addRange(e);this._lastRangeBackward=!!e}_setFakeOptions(t={}){this._isFake=!!t.fake,this._fakeSelectionLabel=t.fake&&t.label||""}_addRange(t,e=!1){if(!(t instanceof Qs))throw new x("view-selection-add-range-not-range",this);this._pushRange(t),this._lastRangeBackward=!!e}_pushRange(t){for(const e of this._ranges)if(t.isIntersecting(e))throw new x("view-selection-range-intersects",this,{addedRange:t,intersectingRange:e});this._ranges.push(new Qs(t.start,t.end))}}ta.prototype.is=function(t){return"selection"===t||"view:selection"===t};class ea extends(L(is)){_selection;constructor(...t){super(),this._selection=new ta,this._selection.delegate("change").to(this),t.length&&this._selection.setTo(...t)}get isFake(){return this._selection.isFake}get fakeSelectionLabel(){return this._selection.fakeSelectionLabel}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get isCollapsed(){return this._selection.isCollapsed}get rangeCount(){return this._selection.rangeCount}get isBackward(){return this._selection.isBackward}get editableElement(){return this._selection.editableElement}get _ranges(){return this._selection._ranges}*getRanges(){yield*this._selection.getRanges()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getSelectedElement(){return this._selection.getSelectedElement()}isEqual(t){return this._selection.isEqual(t)}isSimilar(t){return this._selection.isSimilar(t)}_setTo(...t){this._selection.setTo(...t)}_setFocus(t,e){this._selection.setFocus(t,e)}}ea.prototype.is=function(t){return"selection"===t||"documentSelection"==t||"view:selection"==t||"view:documentSelection"==t};class na extends w{startRange;_eventPhase;_currentTarget;constructor(t,e,n){super(t,e),this.startRange=n,this._eventPhase="none",this._currentTarget=null}get eventPhase(){return this._eventPhase}get currentTarget(){return this._currentTarget}}const oa=Symbol("bubbling contexts");function ia(t){return class extends t{fire(t,...e){try{const n=t instanceof w?t:new w(this,t),o=ca(this);if(!o.size)return;if(ra(n,"capturing",this),sa(o,"$capture",n,...e))return n.return;const i=n.startRange||this.selection.getFirstRange(),r=i?i.getContainedElement():null,s=!!r&&Boolean(aa(o,r));let a=r||function(t){if(!t)return null;const e=t.start.parent,n=t.end.parent,o=e.getPath(),i=n.getPath();return o.length>i.length?e:n}(i);if(ra(n,"atTarget",a),!s){if(sa(o,"$text",n,...e))return n.return;ra(n,"bubbling",a)}for(;a;){if(a.is("rootElement")){if(sa(o,"$root",n,...e))return n.return}else if(a.is("element")&&sa(o,a.name,n,...e))return n.return;if(sa(o,a,n,...e))return n.return;a=a.parent,ra(n,"bubbling",a)}return ra(n,"bubbling",this),sa(o,"$document",n,...e),n.return}catch(t){x.rethrowUnexpectedError(t,this)}}_addEventListener(t,e,n){const o=Di(n.context||"$document"),i=ca(this);for(const r of o){let o=i.get(r);o||(o=new(L()),i.set(r,o)),this.listenTo(o,t,e,n)}}_removeEventListener(t,e){const n=ca(this);for(const o of n.values())this.stopListening(o,t,e)}}}{const t=ia(Object);["fire","_addEventListener","_removeEventListener"].forEach((e=>{ia[e]=t.prototype[e]}))}function ra(t,e,n){t instanceof na&&(t._eventPhase=e,t._currentTarget=n)}function sa(t,e,n,...o){const i="string"==typeof e?t.get(e):aa(t,e);return!!i&&(i.fire(n,...o),n.stop.called)}function aa(t,e){for(const[n,o]of t)if("function"==typeof n&&n(e))return o;return null}function ca(t){return t[oa]||(t[oa]=new Map),t[oa]}class la extends(ia(J())){selection;roots;stylesProcessor;_postFixers=new Set;constructor(t){super(),this.selection=new ea,this.roots=new Qi({idProperty:"rootName"}),this.stylesProcessor=t,this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isSelecting",!1),this.set("isComposing",!1)}getRoot(t="main"){return this.roots.get(t)}registerPostFixer(t){this._postFixers.add(t)}destroy(){this.roots.forEach((t=>t.destroy())),this.stopListening()}_callPostFixers(t){let e=!1;do{for(const n of this._postFixers)if(e=n(t),e)break}while(e)}}class da extends js{static DEFAULT_PRIORITY=10;_priority=10;_id=null;_clonesGroup=null;constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=ha}get priority(){return this._priority}get id(){return this._id}getElementsWithSameId(){if(null===this.id)throw new x("attribute-element-get-elements-with-same-id-no-id",this);return new Set(this._clonesGroup)}isSimilar(t){return null!==this.id||null!==t.id?this.id===t.id:super.isSimilar(t)&&this.priority==t.priority}_clone(t=!1){const e=super._clone(t);return e._priority=this._priority,e._id=this._id,e}}function ha(){if(ua(this))return null;let t=this.parent;for(;t&&t.is("attributeElement");){if(ua(t)>1)return null;t=t.parent}return!t||ua(t)>1?null:this.childCount}function ua(t){return Array.from(t.getChildren()).filter((t=>!t.is("uiElement"))).length}da.prototype.is=function(t,e){return e?e===this.name&&("attributeElement"===t||"view:attributeElement"===t||"element"===t||"view:element"===t):"attributeElement"===t||"view:attributeElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t};class ma extends js{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=ga}_insertChild(t,e){if(e&&(e instanceof ss||Array.from(e).length>0))throw new x("view-emptyelement-cannot-add",[this,e]);return 0}}function ga(){return null}ma.prototype.is=function(t,e){return e?e===this.name&&("emptyElement"===t||"view:emptyElement"===t||"element"===t||"view:element"===t):"emptyElement"===t||"view:emptyElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t};class pa extends js{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=ka}_insertChild(t,e){if(e&&(e instanceof ss||Array.from(e).length>0))throw new x("view-uielement-cannot-add",[this,e]);return 0}render(t,e){return this.toDomElement(t)}toDomElement(t){const e=t.createElement(this.name);for(const t of this.getAttributeKeys())e.setAttribute(t,this.getAttribute(t));return e}}function fa(t){t.document.on("arrowKey",((e,n)=>function(t,e,n){if(e.keyCode==_i.arrowright){const t=e.domTarget.ownerDocument.defaultView.getSelection(),o=1==t.rangeCount&&t.getRangeAt(0).collapsed;if(o||e.shiftKey){const e=t.focusNode,i=t.focusOffset,r=n.domPositionToView(e,i);if(null===r)return;let s=!1;const a=r.getLastMatchingPosition((t=>(t.item.is("uiElement")&&(s=!0),!(!t.item.is("uiElement")&&!t.item.is("attributeElement")))));if(s){const e=n.viewPositionToDom(a);o?t.collapse(e.parent,e.offset):t.extend(e.parent,e.offset)}}}}(0,n,t.domConverter)),{priority:"low"})}function ka(){return null}pa.prototype.is=function(t,e){return e?e===this.name&&("uiElement"===t||"view:uiElement"===t||"element"===t||"view:element"===t):"uiElement"===t||"view:uiElement"===t||"element"===t||"view:element"===t||"node"===t||"view:node"===t};class ba extends js{constructor(t,e,n,o){super(t,e,n,o),this.getFillerOffset=wa}_insertChild(t,e){if(e&&(e instanceof ss||Array.from(e).length>0))throw new x("view-rawelement-cannot-add",[this,e]);return 0}render(t,e){}}function wa(){return null}ba.prototype.is=function(t,e){return e?e===this.name&&("rawElement"===t||"view:rawElement"===t||"element"===t||"view:element"===t):"rawElement"===t||"view:rawElement"===t||t===this.name||t==="view:"+this.name||"element"===t||"view:element"===t||"node"===t||"view:node"===t};class _a extends(L(is)){document;_children=[];_customProperties=new Map;constructor(t,e){super(),this.document=t,e&&this._insertChild(0,e)}[Symbol.iterator](){return this._children[Symbol.iterator]()}get childCount(){return this._children.length}get isEmpty(){return 0===this.childCount}get root(){return this}get parent(){return null}get name(){}get getFillerOffset(){}getCustomProperty(t){return this._customProperties.get(t)}*getCustomProperties(){yield*this._customProperties.entries()}_appendChild(t){return this._insertChild(this.childCount,t)}getChild(t){return this._children[t]}getChildIndex(t){return this._children.indexOf(t)}getChildren(){return this._children[Symbol.iterator]()}_insertChild(t,e){this._fireChange("children",this);let n=0;const o=function(t,e){if("string"==typeof e)return[new as(t,e)];rt(e)||(e=[e]);return Array.from(e).map((e=>"string"==typeof e?new as(t,e):e instanceof cs?new as(t,e.data):e))}(this.document,e);for(const e of o)null!==e.parent&&e._remove(),e.parent=this,this._children.splice(t,0,e),t++,n++;return n}_removeChildren(t,e=1){this._fireChange("children",this);for(let n=t;n{const n=t[t.length-1],o=!e.is("uiElement");return n&&n.breakAttributes==o?n.nodes.push(e):t.push({breakAttributes:o,nodes:[e]}),t}),[]);let o=null,i=t;for(const{nodes:t,breakAttributes:e}of n){const n=this._insertNodes(i,t,e);o||(o=n.start),i=n.end}return o?new Qs(o,i):new Qs(t)}remove(t){const e=t instanceof Qs?t:Qs._createOn(t);if(Sa(e,this.document),e.isCollapsed)return new _a(this.document);const{start:n,end:o}=this._breakAttributesRange(e,!0),i=n.parent,r=o.offset-n.offset,s=i._removeChildren(n.offset,r);for(const t of s)this._removeFromClonedElementsGroup(t);const a=this.mergeAttributes(n);return e.start=a,e.end=a.clone(),new _a(this.document,s)}clear(t,e){Sa(t,this.document);const n=t.getWalker({direction:"backward",ignoreElementEnd:!0});for(const o of n){const n=o.item;let i;if(n.is("element")&&e.isSimilar(n))i=Qs._createOn(n);else if(!o.nextPosition.isAfter(t.start)&&n.is("$textProxy")){const t=n.getAncestors().find((t=>t.is("element")&&e.isSimilar(t)));t&&(i=Qs._createIn(t))}i&&(i.end.isAfter(t.end)&&(i.end=t.end),i.start.isBefore(t.start)&&(i.start=t.start),this.remove(i))}}move(t,e){let n;if(e.isAfter(t.end)){const o=(e=this._breakAttributes(e,!0)).parent,i=o.childCount;t=this._breakAttributesRange(t,!0),n=this.remove(t),e.offset+=o.childCount-i}else n=this.remove(t);return this.insert(e,n)}wrap(t,e){if(!(e instanceof da))throw new x("view-writer-wrap-invalid-attribute",this.document);if(Sa(t,this.document),t.isCollapsed){let o=t.start;o.parent.is("element")&&(n=o.parent,!Array.from(n.getChildren()).some((t=>!t.is("uiElement"))))&&(o=o.getLastMatchingPosition((t=>t.item.is("uiElement")))),o=this._wrapPosition(o,e);const i=this.document.selection;return i.isCollapsed&&i.getFirstPosition().isEqual(t.start)&&this.setSelection(o),new Qs(o)}return this._wrapRange(t,e);var n}unwrap(t,e){if(!(e instanceof da))throw new x("view-writer-unwrap-invalid-attribute",this.document);if(Sa(t,this.document),t.isCollapsed)return t;const{start:n,end:o}=this._breakAttributesRange(t,!0),i=n.parent,r=this._unwrapChildren(i,n.offset,o.offset,e),s=this.mergeAttributes(r.start);s.isEqual(r.start)||r.end.offset--;const a=this.mergeAttributes(r.end);return new Qs(s,a)}rename(t,e){const n=new Gs(this.document,t,e.getAttributes());return this.insert(Ys._createAfter(e),n),this.move(Qs._createIn(e),Ys._createAt(n,0)),this.remove(Qs._createOn(e)),n}clearClonedElementsGroup(t){this._cloneGroups.delete(t)}createPositionAt(t,e){return Ys._createAt(t,e)}createPositionAfter(t){return Ys._createAfter(t)}createPositionBefore(t){return Ys._createBefore(t)}createRange(t,e){return new Qs(t,e)}createRangeOn(t){return Qs._createOn(t)}createRangeIn(t){return Qs._createIn(t)}createSelection(...t){return new ta(...t)}createSlot(t="children"){if(!this._slotFactory)throw new x("view-writer-invalid-create-slot-context",this.document);return this._slotFactory(this,t)}_registerSlotFactory(t){this._slotFactory=t}_clearSlotFactory(){this._slotFactory=null}_insertNodes(t,e,n){let o,i;if(o=n?Ca(t):t.parent.is("$text")?t.parent.parent:t.parent,!o)throw new x("view-writer-invalid-position-container",this.document);i=n?this._breakAttributes(t,!0):t.parent.is("$text")?xa(t):t;const r=o._insertChild(i.offset,e);for(const t of e)this._addToClonedElementsGroup(t);const s=i.getShiftedBy(r),a=this.mergeAttributes(i);a.isEqual(i)||s.offset--;const c=this.mergeAttributes(s);return new Qs(a,c)}_wrapChildren(t,e,n,o){let i=e;const r=[];for(;i!1,t.parent._insertChild(t.offset,n);const o=new Qs(t,t.getShiftedBy(1));this.wrap(o,e);const i=new Ys(n.parent,n.index);n._remove();const r=i.nodeBefore,s=i.nodeAfter;return r instanceof as&&s instanceof as?Ea(r,s):ya(i)}_wrapAttributeElement(t,e){if(!Ia(t,e))return!1;if(t.name!==e.name||t.priority!==e.priority)return!1;for(const n of t.getAttributeKeys())if("class"!==n&&"style"!==n&&e.hasAttribute(n)&&e.getAttribute(n)!==t.getAttribute(n))return!1;for(const n of t.getStyleNames())if(e.hasStyle(n)&&e.getStyle(n)!==t.getStyle(n))return!1;for(const n of t.getAttributeKeys())"class"!==n&&"style"!==n&&(e.hasAttribute(n)||this.setAttribute(n,t.getAttribute(n),e));for(const n of t.getStyleNames())e.hasStyle(n)||this.setStyle(n,t.getStyle(n),e);for(const n of t.getClassNames())e.hasClass(n)||this.addClass(n,e);return!0}_unwrapAttributeElement(t,e){if(!Ia(t,e))return!1;if(t.name!==e.name||t.priority!==e.priority)return!1;for(const n of t.getAttributeKeys())if("class"!==n&&"style"!==n&&(!e.hasAttribute(n)||e.getAttribute(n)!==t.getAttribute(n)))return!1;if(!e.hasClass(...t.getClassNames()))return!1;for(const n of t.getStyleNames())if(!e.hasStyle(n)||e.getStyle(n)!==t.getStyle(n))return!1;for(const n of t.getAttributeKeys())"class"!==n&&"style"!==n&&this.removeAttribute(n,e);return this.removeClass(Array.from(t.getClassNames()),e),this.removeStyle(Array.from(t.getStyleNames()),e),!0}_breakAttributesRange(t,e=!1){const n=t.start,o=t.end;if(Sa(t,this.document),t.isCollapsed){const n=this._breakAttributes(t.start,e);return new Qs(n,n)}const i=this._breakAttributes(o,e),r=i.parent.childCount,s=this._breakAttributes(n,e);return i.offset+=i.parent.childCount-r,new Qs(s,i)}_breakAttributes(t,e=!1){const n=t.offset,o=t.parent;if(t.parent.is("emptyElement"))throw new x("view-writer-cannot-break-empty-element",this.document);if(t.parent.is("uiElement"))throw new x("view-writer-cannot-break-ui-element",this.document);if(t.parent.is("rawElement"))throw new x("view-writer-cannot-break-raw-element",this.document);if(!e&&o.is("$text")&&Ta(o.parent))return t.clone();if(Ta(o))return t.clone();if(o.is("$text"))return this._breakAttributes(xa(t),e);if(n==o.childCount){const t=new Ys(o.parent,o.index+1);return this._breakAttributes(t,e)}if(0===n){const t=new Ys(o.parent,o.index);return this._breakAttributes(t,e)}{const t=o.index+1,i=o._clone();o.parent._insertChild(t,i),this._addToClonedElementsGroup(i);const r=o.childCount-n,s=o._removeChildren(n,r);i._appendChild(s);const a=new Ys(o.parent,t);return this._breakAttributes(a,e)}}_addToClonedElementsGroup(t){if(!t.root.is("rootElement"))return;if(t.is("element"))for(const e of t.getChildren())this._addToClonedElementsGroup(e);const e=t.id;if(!e)return;let n=this._cloneGroups.get(e);n||(n=new Set,this._cloneGroups.set(e,n)),n.add(t),t._clonesGroup=n}_removeFromClonedElementsGroup(t){if(t.is("element"))for(const e of t.getChildren())this._removeFromClonedElementsGroup(e);const e=t.id;if(!e)return;const n=this._cloneGroups.get(e);n&&n.delete(t)}}function Ca(t){let e=t.parent;for(;!Ta(e);){if(!e)return;e=e.parent}return e}function va(t,e){return t.prioritye.priority)&&t.getIdentity()n instanceof t)))throw new x("view-writer-insert-invalid-node-type",e);n.is("$text")||Ba(n.getChildren(),e)}}function Ta(t){return t&&(t.is("containerElement")||t.is("documentFragment"))}function Sa(t,e){const n=Ca(t.start),o=Ca(t.end);if(!n||!o||n!==o)throw new x("view-writer-invalid-range-container",e)}function Ia(t,e){return null===t.id&&null===e.id}const Pa=t=>t.createTextNode(" "),za=t=>{const e=t.createElement("span");return e.dataset.ckeFiller="true",e.innerText=" ",e},Ra=t=>{const e=t.createElement("br");return e.dataset.ckeFiller="true",e},La=7,Fa="⁠".repeat(La);function Ma(t){return"string"==typeof t?t.substr(0,La)===Fa:qo(t)&&t.data.substr(0,La)===Fa}function Va(t){return t.data.length==La&&Ma(t)}function Oa(t){const e="string"==typeof t?t:t.data;return Ma(t)?e.slice(La):e}function Na(t,e){if(e.keyCode==_i.arrowleft){const t=e.domTarget.ownerDocument.defaultView.getSelection();if(1==t.rangeCount&&t.getRangeAt(0).collapsed){const e=t.getRangeAt(0).startContainer,n=t.getRangeAt(0).startOffset;Ma(e)&&n<=La&&t.collapse(e,0)}}}var Ha=n(8264),qa={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Ha.A,qa);Ha.A.locals;class ja extends(J()){domDocuments=new Set;domConverter;markedAttributes=new Set;markedChildren=new Set;markedTexts=new Set;selection;_inlineFiller=null;_fakeSelectionContainer=null;constructor(t,e){super(),this.domConverter=t,this.selection=e,this.set("isFocused",!1),this.set("isSelecting",!1),i.isBlink&&!i.isAndroid&&this.on("change:isSelecting",(()=>{this.isSelecting||this.render()})),this.set("isComposing",!1),this.on("change:isComposing",(()=>{this.isComposing||this.render()}))}markToSync(t,e){if("text"===t)this.domConverter.mapViewToDom(e.parent)&&this.markedTexts.add(e);else{if(!this.domConverter.mapViewToDom(e))return;if("attributes"===t)this.markedAttributes.add(e);else{if("children"!==t){throw new x("view-renderer-unknown-type",this)}this.markedChildren.add(e)}}}render(){if(this.isComposing&&!i.isAndroid)return;let t=null;const e=!(i.isBlink&&!i.isAndroid)||!this.isSelecting;for(const t of this.markedChildren)this._updateChildrenMappings(t);e?(this._inlineFiller&&!this._isSelectionInInlineFiller()&&this._removeInlineFiller(),this._inlineFiller?t=this._getInlineFillerPosition():this._needsInlineFillerAtSelection()&&(t=this.selection.getFirstPosition(),this.markedChildren.add(t.parent))):this._inlineFiller&&this._inlineFiller.parentNode&&(t=this.domConverter.domPositionToView(this._inlineFiller),t&&t.parent.is("$text")&&(t=Ys._createBefore(t.parent)));for(const t of this.markedAttributes)this._updateAttrs(t);for(const e of this.markedChildren)this._updateChildren(e,{inlineFillerPosition:t});for(const e of this.markedTexts)!this.markedChildren.has(e.parent)&&this.domConverter.mapViewToDom(e.parent)&&this._updateText(e,{inlineFillerPosition:t});if(e)if(t){const e=this.domConverter.viewPositionToDom(t),n=e.parent.ownerDocument;Ma(e.parent)?this._inlineFiller=e.parent:this._inlineFiller=Wa(n,e.parent,e.offset)}else this._inlineFiller=null;this._updateFocus(),this._updateSelection(),this.domConverter._clearTemporaryCustomProperties(),this.markedTexts.clear(),this.markedAttributes.clear(),this.markedChildren.clear()}_updateChildrenMappings(t){const e=this.domConverter.mapViewToDom(t);if(!e)return;const n=Array.from(e.childNodes),o=Array.from(this.domConverter.viewChildrenToDom(t,{withChildren:!1})),i=this._diffNodeLists(n,o),r=this._findUpdateActions(i,n,o,Ga);if(-1!==r.indexOf("update")){const e={equal:0,insert:0,delete:0};for(const i of r)if("update"===i){const i=e.equal+e.insert,r=e.equal+e.delete,s=t.getChild(i);!s||s.is("uiElement")||s.is("rawElement")||this._updateElementMappings(s,n[r]),ai(o[i]),e.equal++}else e[i]++}}_updateElementMappings(t,e){this.domConverter.unbindDomElement(e),this.domConverter.bindElements(e,t),this.markedChildren.add(t),this.markedAttributes.add(t)}_getInlineFillerPosition(){const t=this.selection.getFirstPosition();return t.parent.is("$text")?Ys._createBefore(t.parent):t}_isSelectionInInlineFiller(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const t=this.selection.getFirstPosition(),e=this.domConverter.viewPositionToDom(t);return!!(e&&qo(e.parent)&&Ma(e.parent))}_removeInlineFiller(){const t=this._inlineFiller;if(!Ma(t))throw new x("view-renderer-filler-was-lost",this);Va(t)?t.remove():t.data=t.data.substr(La),this._inlineFiller=null}_needsInlineFillerAtSelection(){if(1!=this.selection.rangeCount||!this.selection.isCollapsed)return!1;const t=this.selection.getFirstPosition(),e=t.parent,n=t.offset;if(!this.domConverter.mapViewToDom(e.root))return!1;if(!e.is("element"))return!1;if(!function(t){if("false"==t.getAttribute("contenteditable"))return!1;const e=t.findAncestor((t=>t.hasAttribute("contenteditable")));return!e||"true"==e.getAttribute("contenteditable")}(e))return!1;const o=t.nodeBefore,r=t.nodeAfter;return!(o instanceof as||r instanceof as)&&(!!(n!==e.getFillerOffset()||o&&o.is("element","br"))&&(!i.isAndroid||!o&&!r))}_updateText(t,e){const n=this.domConverter.findCorrespondingDomText(t);let o=this.domConverter.viewToDom(t).data;const i=e.inlineFillerPosition;i&&i.parent==t.parent&&i.offset==t.index&&(o=Fa+o),$a(n,o)}_updateAttrs(t){const e=this.domConverter.mapViewToDom(t);if(!e)return;const n=Array.from(e.attributes).map((t=>t.name)),o=t.getAttributeKeys();for(const n of o)this.domConverter.setDomElementAttribute(e,n,t.getAttribute(n),t);for(const o of n)t.hasAttribute(o)||this.domConverter.removeDomElementAttribute(e,o)}_updateChildren(t,e){const n=this.domConverter.mapViewToDom(t);if(!n)return;if(i.isAndroid){let t=null;for(const e of Array.from(n.childNodes)){if(t&&qo(t)&&qo(e)){n.normalize();break}t=e}}const o=e.inlineFillerPosition,r=n.childNodes,s=Array.from(this.domConverter.viewChildrenToDom(t,{bind:!0}));o&&o.parent===t&&Wa(n.ownerDocument,s,o.offset);const a=this._diffNodeLists(r,s),c=this._findUpdateActions(a,r,s,Ka);let l=0;const d=new Set;for(const t of c)"delete"===t?(d.add(r[l]),ai(r[l])):"equal"!==t&&"update"!==t||l++;l=0;for(const t of c)"insert"===t?(ei(n,l,s[l]),l++):"update"===t?($a(r[l],s[l].data),l++):"equal"===t&&(this._markDescendantTextToSync(this.domConverter.domToView(s[l])),l++);for(const t of d)t.parentNode||this.domConverter.unbindDomElement(t)}_diffNodeLists(t,e){return t=function(t,e){const n=Array.from(t);if(0==n.length||!e)return n;const o=n[n.length-1];o==e&&n.pop();return n}(t,this._fakeSelectionContainer),k(t,e,Ua.bind(null,this.domConverter))}_findUpdateActions(t,e,n,o){if(-1===t.indexOf("insert")||-1===t.indexOf("delete"))return t;let i=[],r=[],s=[];const a={equal:0,insert:0,delete:0};for(const c of t)"insert"===c?s.push(n[a.equal+a.insert]):"delete"===c?r.push(e[a.equal+a.delete]):(i=i.concat(k(r,s,o).map((t=>"equal"===t?"update":t))),i.push("equal"),r=[],s=[]),a[c]++;return i.concat(k(r,s,o).map((t=>"equal"===t?"update":t)))}_markDescendantTextToSync(t){if(t)if(t.is("$text"))this.markedTexts.add(t);else if(t.is("element"))for(const e of t.getChildren())this._markDescendantTextToSync(e)}_updateSelection(){if(i.isBlink&&!i.isAndroid&&this.isSelecting&&!this.markedChildren.size)return;if(0===this.selection.rangeCount)return this._removeDomSelection(),void this._removeFakeSelection();const t=this.domConverter.mapViewToDom(this.selection.editableElement);this.isFocused&&t&&(this.selection.isFake?this._updateFakeSelection(t):this._fakeSelectionContainer&&this._fakeSelectionContainer.isConnected?(this._removeFakeSelection(),this._updateDomSelection(t)):this.isComposing&&i.isAndroid||this._updateDomSelection(t))}_updateFakeSelection(t){const e=t.ownerDocument;this._fakeSelectionContainer||(this._fakeSelectionContainer=function(t){const e=t.createElement("div");return e.className="ck-fake-selection-container",Object.assign(e.style,{position:"fixed",top:0,left:"-9999px",width:"42px"}),e.textContent=" ",e}(e));const n=this._fakeSelectionContainer;if(this.domConverter.bindFakeSelection(n,this.selection),!this._fakeSelectionNeedsUpdate(t))return;n.parentElement&&n.parentElement==t||t.appendChild(n),n.textContent=this.selection.fakeSelectionLabel||" ";const o=e.getSelection(),i=e.createRange();o.removeAllRanges(),i.selectNodeContents(n),o.addRange(i)}_updateDomSelection(t){const e=t.ownerDocument.defaultView.getSelection();if(!this._domSelectionNeedsUpdate(e))return;const n=this.domConverter.viewPositionToDom(this.selection.anchor),o=this.domConverter.viewPositionToDom(this.selection.focus);e.setBaseAndExtent(n.parent,n.offset,o.parent,o.offset),i.isGecko&&function(t,e){let n=t.parent,o=t.offset;qo(n)&&Va(n)&&(o=ti(n)+1,n=n.parentNode);if(n.nodeType!=Node.ELEMENT_NODE||o!=n.childNodes.length-1)return;const i=n.childNodes[o];i&&"BR"==i.tagName&&e.addRange(e.getRangeAt(0))}(o,e)}_domSelectionNeedsUpdate(t){if(!this.domConverter.isDomSelectionCorrect(t))return!0;const e=t&&this.domConverter.domSelectionToView(t);return(!e||!this.selection.isEqual(e))&&!(!this.selection.isCollapsed&&this.selection.isSimilar(e))}_fakeSelectionNeedsUpdate(t){const e=this._fakeSelectionContainer,n=t.ownerDocument.getSelection();return!e||e.parentElement!==t||(n.anchorNode!==e&&!e.contains(n.anchorNode)||e.textContent!==this.selection.fakeSelectionLabel)}_removeDomSelection(){for(const t of this.domDocuments){const e=t.getSelection();if(e.rangeCount){const n=t.activeElement,o=this.domConverter.mapDomToView(n);n&&o&&e.removeAllRanges()}}}_removeFakeSelection(){const t=this._fakeSelectionContainer;t&&t.remove()}_updateFocus(){if(this.isFocused){const t=this.selection.editableElement;t&&this.domConverter.focus(t)}}}function Wa(t,e,n){const o=e instanceof Array?e:e.childNodes,i=o[n];if(qo(i))return i.data=Fa+i.data,i;{const i=t.createTextNode(Fa);return Array.isArray(e)?o.splice(n,0,i):ei(e,n,i),i}}function Ga(t,e){return Po(t)&&Po(e)&&!qo(t)&&!qo(e)&&!ni(t)&&!ni(e)&&t.tagName.toLowerCase()===e.tagName.toLowerCase()}function Ka(t,e){return Po(t)&&Po(e)&&qo(t)&&qo(e)}function Ua(t,e,n){return e===n||(qo(e)&&qo(n)?e.data===n.data:!(!t.isBlockFiller(e)||!t.isBlockFiller(n)))}function $a(t,e){const n=t.data;if(n==e)return;const o=g(n,e);for(const e of o)"insert"===e.type?t.insertData(e.index,e.values.join("")):t.deleteData(e.index,e.howMany)}const Za=Ra(Oo.document),Ja=Pa(Oo.document),Ya=za(Oo.document),Qa="data-ck-unsafe-attribute-",Xa="data-ck-unsafe-element";class tc{document;renderingMode;blockFillerMode;preElements;blockElements;inlineObjectElements;unsafeElements;_domDocument;_domToViewMapping=new WeakMap;_viewToDomMapping=new WeakMap;_fakeSelectionMapping=new WeakMap;_rawContentElementMatcher=new ls;_inlineObjectElementMatcher=new ls;_elementsWithTemporaryCustomProperties=new Set;constructor(t,{blockFillerMode:e,renderingMode:n="editing"}={}){this.document=t,this.renderingMode=n,this.blockFillerMode=e||("editing"===n?"br":"nbsp"),this.preElements=["pre"],this.blockElements=["address","article","aside","blockquote","caption","center","dd","details","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","legend","li","main","menu","nav","ol","p","pre","section","summary","table","tbody","td","tfoot","th","thead","tr","ul"],this.inlineObjectElements=["object","iframe","input","button","textarea","select","option","video","embed","audio","img","canvas"],this.unsafeElements=["script","style"],this._domDocument="editing"===this.renderingMode?Oo.document:Oo.document.implementation.createHTMLDocument("")}bindFakeSelection(t,e){this._fakeSelectionMapping.set(t,new ta(e))}fakeSelectionToView(t){return this._fakeSelectionMapping.get(t)}bindElements(t,e){this._domToViewMapping.set(t,e),this._viewToDomMapping.set(e,t)}unbindDomElement(t){const e=this._domToViewMapping.get(t);if(e){this._domToViewMapping.delete(t),this._viewToDomMapping.delete(e);for(const e of Array.from(t.children))this.unbindDomElement(e)}}bindDocumentFragments(t,e){this._domToViewMapping.set(t,e),this._viewToDomMapping.set(e,t)}shouldRenderAttribute(t,e,n){return"data"===this.renderingMode||!(t=t.toLowerCase()).startsWith("on")&&(("srcdoc"!==t||!e.match(/\bon\S+\s*=|javascript:|<\s*\/*script/i))&&("img"===n&&("src"===t||"srcset"===t)||("source"===n&&"srcset"===t||!e.match(/^\s*(javascript:|data:(image\/svg|text\/x?html))/i))))}setContentOf(t,e){if("data"===this.renderingMode)return void(t.innerHTML=e);const n=(new DOMParser).parseFromString(e,"text/html"),o=n.createDocumentFragment(),i=n.body.childNodes;for(;i.length>0;)o.appendChild(i[0]);const r=n.createTreeWalker(o,NodeFilter.SHOW_ELEMENT),s=[];let a;for(;a=r.nextNode();)s.push(a);for(const t of s){for(const e of t.getAttributeNames())this.setDomElementAttribute(t,e,t.getAttribute(e));const e=t.tagName.toLowerCase();this._shouldRenameElement(e)&&(ic(e),t.replaceWith(this._createReplacementDomElement(e,t)))}for(;t.firstChild;)t.firstChild.remove();t.append(o)}viewToDom(t,e={}){if(t.is("$text")){const e=this._processDataFromViewText(t);return this._domDocument.createTextNode(e)}{const n=t;if(this.mapViewToDom(n)){if(!n.getCustomProperty("editingPipeline:doNotReuseOnce"))return this.mapViewToDom(n);this._elementsWithTemporaryCustomProperties.add(n)}let o;if(n.is("documentFragment"))o=this._domDocument.createDocumentFragment(),e.bind&&this.bindDocumentFragments(o,n);else{if(n.is("uiElement"))return o="$comment"===n.name?this._domDocument.createComment(n.getCustomProperty("$rawContent")):n.render(this._domDocument,this),e.bind&&this.bindElements(o,n),o;this._shouldRenameElement(n.name)?(ic(n.name),o=this._createReplacementDomElement(n.name)):o=n.hasAttribute("xmlns")?this._domDocument.createElementNS(n.getAttribute("xmlns"),n.name):this._domDocument.createElement(n.name),n.is("rawElement")&&n.render(o,this),e.bind&&this.bindElements(o,n);for(const t of n.getAttributeKeys())this.setDomElementAttribute(o,t,n.getAttribute(t),n)}if(!1!==e.withChildren)for(const t of this.viewChildrenToDom(n,e))o instanceof HTMLTemplateElement?o.content.appendChild(t):o.appendChild(t);return o}}setDomElementAttribute(t,e,n,o){const i=this.shouldRenderAttribute(e,n,t.tagName.toLowerCase())||o&&o.shouldRenderUnsafeAttribute(e);i||E("domconverter-unsafe-attribute-detected",{domElement:t,key:e,value:n}),function(t){try{Oo.document.createAttribute(t)}catch(t){return!1}return!0}(e)?(t.hasAttribute(e)&&!i?t.removeAttribute(e):t.hasAttribute(Qa+e)&&i&&t.removeAttribute(Qa+e),t.setAttribute(i?e:Qa+e,n)):E("domconverter-invalid-attribute-detected",{domElement:t,key:e,value:n})}removeDomElementAttribute(t,e){e!=Xa&&(t.removeAttribute(e),t.removeAttribute(Qa+e))}*viewChildrenToDom(t,e={}){const n=t.getFillerOffset&&t.getFillerOffset();let o=0;for(const i of t.getChildren()){n===o&&(yield this._getBlockFiller());const t=i.is("element")&&!!i.getCustomProperty("dataPipeline:transparentRendering")&&!Xi(i.getAttributes());t&&"data"==this.renderingMode?yield*this.viewChildrenToDom(i,e):(t&&E("domconverter-transparent-rendering-unsupported-in-editing-pipeline",{viewElement:i}),yield this.viewToDom(i,e)),o++}n===o&&(yield this._getBlockFiller())}viewRangeToDom(t){const e=this.viewPositionToDom(t.start),n=this.viewPositionToDom(t.end),o=this._domDocument.createRange();return o.setStart(e.parent,e.offset),o.setEnd(n.parent,n.offset),o}viewPositionToDom(t){const e=t.parent;if(e.is("$text")){const n=this.findCorrespondingDomText(e);if(!n)return null;let o=t.offset;return Ma(n)&&(o+=La),{parent:n,offset:o}}{let n,o,i;if(0===t.offset){if(n=this.mapViewToDom(e),!n)return null;i=n.childNodes[0]}else{const e=t.nodeBefore;if(o=e.is("$text")?this.findCorrespondingDomText(e):this.mapViewToDom(e),!o)return null;n=o.parentNode,i=o.nextSibling}if(qo(i)&&Ma(i))return{parent:i,offset:La};return{parent:n,offset:o?ti(o)+1:0}}}domToView(t,e={}){const n=[],o=this._domToView(t,e,n),i=o.next().value;return i?(o.next(),this._processDomInlineNodes(null,n,e),i.is("$text")&&0==i.data.length?null:i):null}*domChildrenToView(t,e={},n=[]){let o=[];o=t instanceof HTMLTemplateElement?[...t.content.childNodes]:[...t.childNodes];for(let i=0;i{const{scrollLeft:e,scrollTop:n}=t;o.push([e,n])})),e.focus(),nc(e,(t=>{const[e,n]=o.shift();t.scrollLeft=e,t.scrollTop=n})),Oo.window.scrollTo(t,n)}}_clearDomSelection(){const t=this.mapViewToDom(this.document.selection.editableElement);if(!t)return;const e=t.ownerDocument.defaultView.getSelection(),n=this.domSelectionToView(e);n&&n.rangeCount>0&&e.removeAllRanges()}isElement(t){return t&&t.nodeType==Node.ELEMENT_NODE}isDocumentFragment(t){return t&&t.nodeType==Node.DOCUMENT_FRAGMENT_NODE}isBlockFiller(t){return"br"==this.blockFillerMode?t.isEqualNode(Za):!("BR"!==t.tagName||!oc(t,this.blockElements)||1!==t.parentNode.childNodes.length)||(t.isEqualNode(Ya)||function(t,e){const n=t.isEqualNode(Ja);return n&&oc(t,e)&&1===t.parentNode.childNodes.length}(t,this.blockElements))}isDomSelectionBackward(t){if(t.isCollapsed)return!1;const e=this._domDocument.createRange();try{e.setStart(t.anchorNode,t.anchorOffset),e.setEnd(t.focusNode,t.focusOffset)}catch(t){return!1}const n=e.collapsed;return e.detach(),n}getHostViewElement(t){const e=function(t){const e=[];let n=t;for(;n&&n.nodeType!=Node.DOCUMENT_NODE;)e.unshift(n),n=n.parentNode;return e}(t);for(e.pop();e.length;){const t=e.pop(),n=this._domToViewMapping.get(t);if(n&&(n.is("uiElement")||n.is("rawElement")))return n}return null}isDomSelectionCorrect(t){return this._isDomSelectionPositionCorrect(t.anchorNode,t.anchorOffset)&&this._isDomSelectionPositionCorrect(t.focusNode,t.focusOffset)}registerRawContentMatcher(t){this._rawContentElementMatcher.add(t)}registerInlineObjectMatcher(t){this._inlineObjectElementMatcher.add(t)}_clearTemporaryCustomProperties(){for(const t of this._elementsWithTemporaryCustomProperties)t._removeCustomProperty("editingPipeline:doNotReuseOnce");this._elementsWithTemporaryCustomProperties.clear()}_getBlockFiller(){switch(this.blockFillerMode){case"nbsp":return Pa(this._domDocument);case"markedNbsp":return za(this._domDocument);case"br":return Ra(this._domDocument)}}_isDomSelectionPositionCorrect(t,e){if(qo(t)&&Ma(t)&&e0?e[t-1]:null,c=t+1this.preElements.includes(t.name))))return e;if(" "==e.charAt(0)){const n=this._getTouchingInlineViewNode(t,!1);!(n&&n.is("$textProxy")&&this._nodeEndsWithSpace(n))&&n||(e=" "+e.substr(1))}if(" "==e.charAt(e.length-1)){const n=this._getTouchingInlineViewNode(t,!0),o=n&&n.is("$textProxy")&&" "==n.data.charAt(0);" "!=e.charAt(e.length-2)&&n&&!o||(e=e.substr(0,e.length-1)+" ")}return e.replace(/ {2}/g,"  ")}_nodeEndsWithSpace(t){if(t.getAncestors().some((t=>this.preElements.includes(t.name))))return!1;const e=this._processDataFromViewText(t);return" "==e.charAt(e.length-1)}_getTouchingInlineViewNode(t,e){const n=new Js({startPosition:e?Ys._createAfter(t):Ys._createBefore(t),direction:e?"forward":"backward"});for(const t of n){if(t.item.is("element","br"))return null;if(this._isInlineObjectElement(t.item))return t.item;if(t.item.is("containerElement"))return null;if(t.item.is("$textProxy"))return t.item}return null}_isBlockDomElement(t){return this.isElement(t)&&this.blockElements.includes(t.tagName.toLowerCase())}_isBlockViewElement(t){return t.is("element")&&this.blockElements.includes(t.name)}_isInlineObjectElement(t){return!!t.is("element")&&("br"==t.name||this.inlineObjectElements.includes(t.name)||!!this._inlineObjectElementMatcher.match(t))}_createViewElement(t,e){if(ni(t))return new pa(this.document,"$comment");const n=e.keepOriginalCase?t.tagName:t.tagName.toLowerCase();return new js(this.document,n)}_isViewElementWithRawContent(t,e){return!1!==e.withChildren&&t.is("element")&&!!this._rawContentElementMatcher.match(t)}_shouldRenameElement(t){const e=t.toLowerCase();return"editing"===this.renderingMode&&this.unsafeElements.includes(e)}_createReplacementDomElement(t,e){const n=this._domDocument.createElement("span");if(n.setAttribute(Xa,t),e){for(;e.firstChild;)n.appendChild(e.firstChild);for(const t of e.getAttributeNames())n.setAttribute(t,e.getAttribute(t))}return n}}function ec(t,e){return t.getAncestors().some((t=>t.is("element")&&e.includes(t.name)))}function nc(t,e){let n=t;for(;n;)e(n),n=n.parentElement}function oc(t,e){const n=t.parentNode;return!!n&&!!n.tagName&&e.includes(n.tagName.toLowerCase())}function ic(t){"script"===t&&E("domconverter-unsafe-script-element-detected"),"style"===t&&E("domconverter-unsafe-style-element-detected")}class rc extends(Lo()){view;document;_isEnabled=!1;constructor(t){super(),this.view=t,this.document=t.document}get isEnabled(){return this._isEnabled}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}destroy(){this.disable(),this.stopListening()}checkShouldIgnoreEventFromTarget(t){return t&&3===t.nodeType&&(t=t.parentNode),!(!t||1!==t.nodeType)&&t.matches("[data-cke-ignore-events], [data-cke-ignore-events] *")}}const sc=Ki((function(t,e){Re(e,bn(e),t)}));class ac{view;document;domEvent;domTarget;constructor(t,e,n){this.view=t,this.document=t.document,this.domEvent=e,this.domTarget=e.target,sc(this,n)}get target(){return this.view.domConverter.mapDomToView(this.domTarget)}preventDefault(){this.domEvent.preventDefault()}stopPropagation(){this.domEvent.stopPropagation()}}class cc extends rc{useCapture=!1;observe(t){("string"==typeof this.domEventType?[this.domEventType]:this.domEventType).forEach((e=>{this.listenTo(t,e,((t,e)=>{this.isEnabled&&!this.checkShouldIgnoreEventFromTarget(e.target)&&this.onDomEvent(e)}),{useCapture:this.useCapture})}))}stopObserving(t){this.stopListening(t)}fire(t,e,n){this.isEnabled&&this.document.fire(t,new ac(this.view,e,n))}}class lc extends cc{domEventType=["keydown","keyup"];onDomEvent(t){const e={keyCode:t.keyCode,altKey:t.altKey,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,metaKey:t.metaKey,get keystroke(){return Ci(this)}};this.fire(t.type,t,e)}}const dc=function(){return ct.Date.now()};var hc=/\s/;const uc=function(t){for(var e=t.length;e--&&hc.test(t.charAt(e)););return e};var mc=/^\s+/;const gc=function(t){return t?t.slice(0,uc(t)+1).replace(mc,""):t};var pc=/^[-+]0x[0-9a-f]+$/i,fc=/^0b[01]+$/i,kc=/^0o[0-7]+$/i,bc=parseInt;const wc=function(t){if("number"==typeof t)return t;if(us(t))return NaN;if(j(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=j(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=gc(t);var n=fc.test(t);return n||kc.test(t)?bc(t.slice(2),n?2:8):pc.test(t)?NaN:+t};var _c=Math.max,Ac=Math.min;const Cc=function(t,e,n){var o,i,r,s,a,c,l=0,d=!1,h=!1,u=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function m(e){var n=o,r=i;return o=i=void 0,l=e,s=t.apply(r,n)}function g(t){var n=t-c;return void 0===c||n>=e||n<0||h&&t-l>=r}function p(){var t=dc();if(g(t))return f(t);a=setTimeout(p,function(t){var n=e-(t-c);return h?Ac(n,r-(t-l)):n}(t))}function f(t){return a=void 0,u&&o?m(t):(o=i=void 0,s)}function k(){var t=dc(),n=g(t);if(o=arguments,i=this,c=t,n){if(void 0===a)return function(t){return l=t,a=setTimeout(p,e),d?m(t):s}(c);if(h)return clearTimeout(a),a=setTimeout(p,e),m(c)}return void 0===a&&(a=setTimeout(p,e)),s}return e=wc(e)||0,j(n)&&(d=!!n.leading,r=(h="maxWait"in n)?_c(wc(n.maxWait)||0,e):r,u="trailing"in n?!!n.trailing:u),k.cancel=function(){void 0!==a&&clearTimeout(a),l=0,o=c=i=a=void 0},k.flush=function(){return void 0===a?s:f(dc())},k};class vc extends rc{_fireSelectionChangeDoneDebounced;constructor(t){super(t),this._fireSelectionChangeDoneDebounced=Cc((t=>{this.document.fire("selectionChangeDone",t)}),200)}observe(){const t=this.document;t.on("arrowKey",((e,n)=>{t.selection.isFake&&this.isEnabled&&n.preventDefault()}),{context:"$capture"}),t.on("arrowKey",((e,n)=>{t.selection.isFake&&this.isEnabled&&this._handleSelectionMove(n.keyCode)}),{priority:"lowest"})}stopObserving(){}destroy(){super.destroy(),this._fireSelectionChangeDoneDebounced.cancel()}_handleSelectionMove(t){const e=this.document.selection,n=new ta(e.getRanges(),{backward:e.isBackward,fake:!1});t!=_i.arrowleft&&t!=_i.arrowup||n.setTo(n.getFirstPosition()),t!=_i.arrowright&&t!=_i.arrowdown||n.setTo(n.getLastPosition());const o={oldSelection:e,newSelection:n,domSelection:null};this.document.fire("selectionChange",o),this._fireSelectionChangeDoneDebounced(o)}}const yc=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this};const xc=function(t){return this.__data__.has(t)};function Ec(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new xe;++ea))return!1;var l=r.get(t),d=r.get(e);if(l&&d)return l==e&&d==t;var h=-1,u=!0,m=2&n?new Dc:void 0;for(r.set(t,e),r.set(e,t);++h{this._isFocusChanging=!0,this._renderTimeoutId=setTimeout((()=>{this.flush(),t.change((()=>{}))}),50)})),e.on("blur",((n,o)=>{const i=e.selection.editableElement;null!==i&&i!==o.target||(e.isFocused=!1,this._isFocusChanging=!1,t.change((()=>{})))}))}flush(){this._isFocusChanging&&(this._isFocusChanging=!1,this.document.isFocused=!0)}onDomEvent(t){this.fire(t.type,t)}destroy(){this._renderTimeoutId&&clearTimeout(this._renderTimeoutId),super.destroy()}}class $c extends rc{mutationObserver;focusObserver;selection;domConverter;_documents;_fireSelectionChangeDoneDebounced;_clearInfiniteLoopInterval;_documentIsSelectingInactivityTimeoutDebounced;_loopbackCounter;constructor(t){super(t),this.mutationObserver=t.getObserver(Gc),this.focusObserver=t.getObserver(Uc),this.selection=this.document.selection,this.domConverter=t.domConverter,this._documents=new WeakSet,this._fireSelectionChangeDoneDebounced=Cc((t=>{this.document.fire("selectionChangeDone",t)}),200),this._clearInfiniteLoopInterval=setInterval((()=>this._clearInfiniteLoop()),1e3),this._documentIsSelectingInactivityTimeoutDebounced=Cc((()=>this.document.isSelecting=!1),5e3),this._loopbackCounter=0}observe(t){const e=t.ownerDocument,n=()=>{this.document.isSelecting&&(this._handleSelectionChange(null,e),this.document.isSelecting=!1,this._documentIsSelectingInactivityTimeoutDebounced.cancel())};this.listenTo(t,"selectstart",(()=>{this.document.isSelecting=!0,this._documentIsSelectingInactivityTimeoutDebounced()}),{priority:"highest"}),this.listenTo(t,"keydown",n,{priority:"highest",useCapture:!0}),this.listenTo(t,"keyup",n,{priority:"highest",useCapture:!0}),this._documents.has(e)||(this.listenTo(e,"mouseup",n,{priority:"highest",useCapture:!0}),this.listenTo(e,"selectionchange",((t,n)=>{this.document.isComposing&&!i.isAndroid||(this._handleSelectionChange(n,e),this._documentIsSelectingInactivityTimeoutDebounced())})),this._documents.add(e))}stopObserving(t){this.stopListening(t)}destroy(){super.destroy(),clearInterval(this._clearInfiniteLoopInterval),this._fireSelectionChangeDoneDebounced.cancel(),this._documentIsSelectingInactivityTimeoutDebounced.cancel()}_reportInfiniteLoop(){}_handleSelectionChange(t,e){if(!this.isEnabled)return;const n=e.defaultView.getSelection();if(this.checkShouldIgnoreEventFromTarget(n.anchorNode))return;this.mutationObserver.flush();const o=this.domConverter.domSelectionToView(n);if(0!=o.rangeCount){if(this.view.hasDomSelection=!0,this.focusObserver.flush(),!this.selection.isEqual(o)||!this.domConverter.isDomSelectionCorrect(n))if(++this._loopbackCounter>60)this._reportInfiniteLoop();else if(this.selection.isSimilar(o))this.view.forceRender();else{const t={oldSelection:this.selection,newSelection:o,domSelection:n};this.document.fire("selectionChange",t),this._fireSelectionChangeDoneDebounced(t)}}else this.view.hasDomSelection=!1}_clearInfiniteLoop(){this._loopbackCounter=0}}class Zc extends cc{domEventType=["compositionstart","compositionupdate","compositionend"];constructor(t){super(t);const e=this.document;e.on("compositionstart",(()=>{e.isComposing=!0}),{priority:"low"}),e.on("compositionend",(()=>{e.isComposing=!1}),{priority:"low"})}onDomEvent(t){this.fire(t.type,t,{data:t.data})}}class Jc{_files;_native;constructor(t,e={}){this._files=e.cacheFiles?Yc(t):null,this._native=t}get files(){return this._files||(this._files=Yc(this._native)),this._files}get types(){return this._native.types}getData(t){return this._native.getData(t)}setData(t,e){this._native.setData(t,e)}set effectAllowed(t){this._native.effectAllowed=t}get effectAllowed(){return this._native.effectAllowed}set dropEffect(t){this._native.dropEffect=t}get dropEffect(){return this._native.dropEffect}setDragImage(t,e,n){this._native.setDragImage(t,e,n)}get isCanceled(){return"none"==this._native.dropEffect||!!this._native.mozUserCancelled}}function Yc(t){const e=Array.from(t.files||[]),n=Array.from(t.items||[]);return e.length?e:n.filter((t=>"file"===t.kind)).map((t=>t.getAsFile()))}class Qc extends cc{domEventType="beforeinput";onDomEvent(t){const e=t.getTargetRanges(),n=this.view,o=n.document;let r=null,s=null,a=[];if(t.dataTransfer&&(r=new Jc(t.dataTransfer)),null!==t.data?s=t.data:r&&(s=r.getData("text/plain")),o.selection.isFake)a=Array.from(o.selection.getRanges());else if(e.length)a=e.map((t=>{const e=n.domConverter.domPositionToView(t.startContainer,t.startOffset),o=n.domConverter.domPositionToView(t.endContainer,t.endOffset);return e?n.createRange(e,o):o?n.createRange(o):void 0})).filter((t=>!!t));else if(i.isAndroid){const e=t.target.ownerDocument.defaultView.getSelection();a=Array.from(n.domConverter.domSelectionToView(e).getRanges())}if(i.isAndroid&&"insertCompositionText"==t.inputType&&s&&s.endsWith("\n"))this.fire(t.type,t,{inputType:"insertParagraph",targetRanges:[n.createRange(a[0].end)]});else if("insertText"==t.inputType&&s&&s.includes("\n")){const e=s.split(/\n{1,2}/g);let n=a;for(let i=0;i{if(this.isEnabled&&((n=e.keyCode)==_i.arrowright||n==_i.arrowleft||n==_i.arrowup||n==_i.arrowdown)){const n=new na(this.document,"arrowKey",this.document.selection.getFirstRange());this.document.fire(n,e),n.stop.called&&t.stop()}var n}))}observe(){}stopObserving(){}}class tl extends rc{constructor(t){super(t);const e=this.document;e.on("keydown",((t,n)=>{if(!this.isEnabled||n.keyCode!=_i.tab||n.ctrlKey)return;const o=new na(e,"tab",e.selection.getFirstRange());e.fire(o,n),o.stop.called&&t.stop()}))}observe(){}stopObserving(){}}const el=function(t){return Eo(t,5)};class nl extends(J()){document;domConverter;domRoots=new Map;_renderer;_initialDomRootAttributes=new WeakMap;_observers=new Map;_writer;_ongoingChange=!1;_postFixersInProgress=!1;_renderingDisabled=!1;_hasChangedSinceTheLastRendering=!1;constructor(t){super(),this.document=new la(t),this.domConverter=new tc(this.document),this.set("isRenderingInProgress",!1),this.set("hasDomSelection",!1),this._renderer=new ja(this.domConverter,this.document.selection),this._renderer.bind("isFocused","isSelecting","isComposing").to(this.document,"isFocused","isSelecting","isComposing"),this._writer=new Aa(this.document),this.addObserver(Gc),this.addObserver(Uc),this.addObserver($c),this.addObserver(lc),this.addObserver(vc),this.addObserver(Zc),this.addObserver(Xc),this.addObserver(Qc),this.addObserver(tl),this.document.on("arrowKey",Na,{priority:"low"}),fa(this),this.on("render",(()=>{this._render(),this.document.fire("layoutChanged"),this._hasChangedSinceTheLastRendering=!1})),this.listenTo(this.document.selection,"change",(()=>{this._hasChangedSinceTheLastRendering=!0})),this.listenTo(this.document,"change:isFocused",(()=>{this._hasChangedSinceTheLastRendering=!0})),i.isiOS&&this.listenTo(this.document,"blur",((t,e)=>{this.domConverter.mapDomToView(e.domEvent.relatedTarget)||this.domConverter._clearDomSelection()}))}attachDomRoot(t,e="main"){const n=this.document.getRoot(e);n._name=t.tagName.toLowerCase();const o={};for(const{name:e,value:i}of Array.from(t.attributes))o[e]=i,"class"===e?this._writer.addClass(i.split(" "),n):this._writer.setAttribute(e,i,n);this._initialDomRootAttributes.set(t,o);const i=()=>{this._writer.setAttribute("contenteditable",(!n.isReadOnly).toString(),n),n.isReadOnly?this._writer.addClass("ck-read-only",n):this._writer.removeClass("ck-read-only",n)};i(),this.domRoots.set(e,t),this.domConverter.bindElements(t,n),this._renderer.markToSync("children",n),this._renderer.markToSync("attributes",n),this._renderer.domDocuments.add(t.ownerDocument),n.on("change:children",((t,e)=>this._renderer.markToSync("children",e))),n.on("change:attributes",((t,e)=>this._renderer.markToSync("attributes",e))),n.on("change:text",((t,e)=>this._renderer.markToSync("text",e))),n.on("change:isReadOnly",(()=>this.change(i))),n.on("change",(()=>{this._hasChangedSinceTheLastRendering=!0}));for(const n of this._observers.values())n.observe(t,e)}detachDomRoot(t){const e=this.domRoots.get(t);Array.from(e.attributes).forEach((({name:t})=>e.removeAttribute(t)));const n=this._initialDomRootAttributes.get(e);for(const t in n)e.setAttribute(t,n[t]);this.domRoots.delete(t),this.domConverter.unbindDomElement(e);for(const t of this._observers.values())t.stopObserving(e)}getDomRoot(t="main"){return this.domRoots.get(t)}addObserver(t){let e=this._observers.get(t);if(e)return e;e=new t(this),this._observers.set(t,e);for(const[t,n]of this.domRoots)e.observe(n,t);return e.enable(),e}getObserver(t){return this._observers.get(t)}disableObservers(){for(const t of this._observers.values())t.disable()}enableObservers(){for(const t of this._observers.values())t.enable()}scrollToTheSelection({alignToTop:t,forceScroll:e,viewportOffset:n=20,ancestorOffset:o=20}={}){const i=this.document.selection.getFirstRange();if(!i)return;const r=el({alignToTop:t,forceScroll:e,viewportOffset:n,ancestorOffset:o});"number"==typeof n&&(n={top:n,bottom:n,left:n,right:n});const s={target:this.domConverter.viewRangeToDom(i),viewportOffset:n,ancestorOffset:o,alignToTop:t,forceScroll:e};this.fire("scrollToTheSelection",s,r),function({target:t,viewportOffset:e=0,ancestorOffset:n=0,alignToTop:o,forceScroll:i}){const r=gi(t);let s=r,a=null;for(e=function(t){return"number"==typeof t?{top:t,bottom:t,left:t,right:t}:t}(e);s;){let c;c=pi(s==r?t:a),li({parent:c,getRect:()=>fi(t,s),alignToTop:o,ancestorOffset:n,forceScroll:i});const l=fi(t,s);if(ci({window:s,rect:l,viewportOffset:e,alignToTop:o,forceScroll:i}),s.parent!=s){if(a=s.frameElement,s=s.parent,!a)return}else s=null}}(s)}focus(){if(!this.document.isFocused){const t=this.document.selection.editableElement;t&&(this.domConverter.focus(t),this.forceRender())}}change(t){if(this.isRenderingInProgress||this._postFixersInProgress)throw new x("cannot-change-view-tree",this);try{if(this._ongoingChange)return t(this._writer);this._ongoingChange=!0;const e=t(this._writer);return this._ongoingChange=!1,!this._renderingDisabled&&this._hasChangedSinceTheLastRendering&&(this._postFixersInProgress=!0,this.document._callPostFixers(this._writer),this._postFixersInProgress=!1,this.fire("render")),e}catch(t){x.rethrowUnexpectedError(t,this)}}forceRender(){this._hasChangedSinceTheLastRendering=!0,this.getObserver(Uc).flush(),this.change((()=>{}))}destroy(){for(const t of this._observers.values())t.destroy();this.document.destroy(),this.stopListening()}createPositionAt(t,e){return Ys._createAt(t,e)}createPositionAfter(t){return Ys._createAfter(t)}createPositionBefore(t){return Ys._createBefore(t)}createRange(t,e){return new Qs(t,e)}createRangeOn(t){return Qs._createOn(t)}createRangeIn(t){return Qs._createIn(t)}createSelection(...t){return new ta(...t)}_disableRendering(t){this._renderingDisabled=t,0==t&&this.change((()=>{}))}_render(){this.isRenderingInProgress=!0,this.disableObservers(),this._renderer.render(),this.enableObservers(),this.isRenderingInProgress=!1}}class ol{is(){throw new Error("is() method is abstract")}}class il extends ol{parent=null;_attrs;constructor(t){super(),this._attrs=nr(t)}get document(){return null}get index(){let t;if(!this.parent)return null;if(null===(t=this.parent.getChildIndex(this)))throw new x("model-node-not-found-in-parent",this);return t}get startOffset(){let t;if(!this.parent)return null;if(null===(t=this.parent.getChildStartOffset(this)))throw new x("model-node-not-found-in-parent",this);return t}get offsetSize(){return 1}get endOffset(){return this.parent?this.startOffset+this.offsetSize:null}get nextSibling(){const t=this.index;return null!==t&&this.parent.getChild(t+1)||null}get previousSibling(){const t=this.index;return null!==t&&this.parent.getChild(t-1)||null}get root(){let t=this;for(;t.parent;)t=t.parent;return t}isAttached(){return null!==this.parent&&this.root.isAttached()}getPath(){const t=[];let e=this;for(;e.parent;)t.unshift(e.startOffset),e=e.parent;return t}getAncestors(t={}){const e=[];let n=t.includeSelf?this:this.parent;for(;n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}getCommonAncestor(t,e={}){const n=this.getAncestors(e),o=t.getAncestors(e);let i=0;for(;n[i]==o[i]&&n[i];)i++;return 0===i?null:n[i-1]}isBefore(t){if(this==t)return!1;if(this.root!==t.root)return!1;const e=this.getPath(),n=t.getPath(),o=it(e,n);switch(o){case"prefix":return!0;case"extension":return!1;default:return e[o](t[e[0]]=e[1],t)),{})),t}_clone(t){return new this.constructor(this._attrs)}_remove(){this.parent._removeChildren(this.index)}_setAttribute(t,e){this._attrs.set(t,e)}_setAttributesTo(t){this._attrs=nr(t)}_removeAttribute(t){return this._attrs.delete(t)}_clearAttributes(){this._attrs.clear()}}il.prototype.is=function(t){return"node"===t||"model:node"===t};class rl{_nodes=[];constructor(t){t&&this._insertNodes(0,t)}[Symbol.iterator](){return this._nodes[Symbol.iterator]()}get length(){return this._nodes.length}get maxOffset(){return this._nodes.reduce(((t,e)=>t+e.offsetSize),0)}getNode(t){return this._nodes[t]||null}getNodeIndex(t){const e=this._nodes.indexOf(t);return-1==e?null:e}getNodeStartOffset(t){const e=this.getNodeIndex(t);return null===e?null:this._nodes.slice(0,e).reduce(((t,e)=>t+e.offsetSize),0)}indexToOffset(t){if(t==this._nodes.length)return this.maxOffset;const e=this._nodes[t];if(!e)throw new x("model-nodelist-index-out-of-bounds",this);return this.getNodeStartOffset(e)}offsetToIndex(t){let e=0;for(const n of this._nodes){if(t>=e&&t1e4)return t.slice(0,n).concat(e).concat(t.slice(n+o,t.length));{const i=Array.from(t);return i.splice(n,o,...e),i}}(this._nodes,Array.from(e),t,0)}_removeNodes(t,e=1){return this._nodes.splice(t,e)}toJSON(){return this._nodes.map((t=>t.toJSON()))}}class sl extends il{_data;constructor(t,e){super(e),this._data=t||""}get offsetSize(){return this.data.length}get data(){return this._data}toJSON(){const t=super.toJSON();return t.data=this.data,t}_clone(){return new sl(this.data,this.getAttributes())}static fromJSON(t){return new sl(t.data,t.attributes)}}sl.prototype.is=function(t){return"$text"===t||"model:$text"===t||"text"===t||"model:text"===t||"node"===t||"model:node"===t};class al extends ol{textNode;data;offsetInText;constructor(t,e,n){if(super(),this.textNode=t,e<0||e>t.offsetSize)throw new x("model-textproxy-wrong-offsetintext",this);if(n<0||e+n>t.offsetSize)throw new x("model-textproxy-wrong-length",this);this.data=t.data.substring(e,e+n),this.offsetInText=e}get startOffset(){return null!==this.textNode.startOffset?this.textNode.startOffset+this.offsetInText:null}get offsetSize(){return this.data.length}get endOffset(){return null!==this.startOffset?this.startOffset+this.offsetSize:null}get isPartial(){return this.offsetSize!==this.textNode.offsetSize}get parent(){return this.textNode.parent}get root(){return this.textNode.root}getPath(){const t=this.textNode.getPath();return t.length>0&&(t[t.length-1]+=this.offsetInText),t}getAncestors(t={}){const e=[];let n=t.includeSelf?this:this.parent;for(;n;)e[t.parentFirst?"push":"unshift"](n),n=n.parent;return e}hasAttribute(t){return this.textNode.hasAttribute(t)}getAttribute(t){return this.textNode.getAttribute(t)}getAttributes(){return this.textNode.getAttributes()}getAttributeKeys(){return this.textNode.getAttributeKeys()}}al.prototype.is=function(t){return"$textProxy"===t||"model:$textProxy"===t||"textProxy"===t||"model:textProxy"===t};class cl extends il{name;_children=new rl;constructor(t,e,n){super(e),this.name=t,n&&this._insertChild(0,n)}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}getChild(t){return this._children.getNode(t)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(t){return this._children.getNodeIndex(t)}getChildStartOffset(t){return this._children.getNodeStartOffset(t)}offsetToIndex(t){return this._children.offsetToIndex(t)}getNodeByPath(t){let e=this;for(const n of t)e=e.getChild(e.offsetToIndex(n));return e}findAncestor(t,e={}){let n=e.includeSelf?this:this.parent;for(;n;){if(n.name===t)return n;n=n.parent}return null}toJSON(){const t=super.toJSON();if(t.name=this.name,this._children.length>0){t.children=[];for(const e of this._children)t.children.push(e.toJSON())}return t}_clone(t=!1){const e=t?Array.from(this._children).map((t=>t._clone(!0))):void 0;return new cl(this.name,this.getAttributes(),e)}_appendChild(t){this._insertChild(this.childCount,t)}_insertChild(t,e){const n=function(t){if("string"==typeof t)return[new sl(t)];rt(t)||(t=[t]);return Array.from(t).map((t=>"string"==typeof t?new sl(t):t instanceof al?new sl(t.data,t.getAttributes()):t))}(e);for(const t of n)null!==t.parent&&t._remove(),t.parent=this;this._children._insertNodes(t,n)}_removeChildren(t,e=1){const n=this._children._removeNodes(t,e);for(const t of n)t.parent=null;return n}static fromJSON(t){let e;if(t.children){e=[];for(const n of t.children)n.name?e.push(cl.fromJSON(n)):e.push(sl.fromJSON(n))}return new cl(t.name,t.attributes,e)}}cl.prototype.is=function(t,e){return e?e===this.name&&("element"===t||"model:element"===t):"element"===t||"model:element"===t||"node"===t||"model:node"===t};class ll{direction;boundaries;singleCharacters;shallow;ignoreElementEnd;_position;_boundaryStartParent;_boundaryEndParent;_visitedParent;constructor(t){if(!t||!t.boundaries&&!t.startPosition)throw new x("model-tree-walker-no-start-position",null);const e=t.direction||"forward";if("forward"!=e&&"backward"!=e)throw new x("model-tree-walker-unknown-direction",t,{direction:e});this.direction=e,this.boundaries=t.boundaries||null,t.startPosition?this._position=t.startPosition.clone():this._position=hl._createAt(this.boundaries["backward"==this.direction?"end":"start"]),this.position.stickiness="toNone",this.singleCharacters=!!t.singleCharacters,this.shallow=!!t.shallow,this.ignoreElementEnd=!!t.ignoreElementEnd,this._boundaryStartParent=this.boundaries?this.boundaries.start.parent:null,this._boundaryEndParent=this.boundaries?this.boundaries.end.parent:null,this._visitedParent=this.position.parent}[Symbol.iterator](){return this}get position(){return this._position}skip(t){let e,n,o,i;do{o=this.position,i=this._visitedParent,({done:e,value:n}=this.next())}while(!e&&t(n));e||(this._position=o,this._visitedParent=i)}next(){return"forward"==this.direction?this._next():this._previous()}_next(){const t=this.position,e=this.position.clone(),n=this._visitedParent;if(null===n.parent&&e.offset===n.maxOffset)return{done:!0,value:void 0};if(n===this._boundaryEndParent&&e.offset==this.boundaries.end.offset)return{done:!0,value:void 0};const o=ul(e,n),i=o||ml(e,n,o);if(i instanceof cl){if(this.shallow){if(this.boundaries&&this.boundaries.end.isBefore(e))return{done:!0,value:void 0};e.offset++}else e.path.push(0),this._visitedParent=i;return this._position=e,dl("elementStart",i,t,e,1)}if(i instanceof sl){let o;if(this.singleCharacters)o=1;else{let t=i.endOffset;this._boundaryEndParent==n&&this.boundaries.end.offsett&&(t=this.boundaries.start.offset),o=e.offset-t}const i=e.offset-r.startOffset,s=new al(r,i-o,o);return e.offset-=o,this._position=e,dl("text",s,t,e,o)}return e.path.pop(),this._position=e,this._visitedParent=n.parent,dl("elementStart",n,t,e,1)}}function dl(t,e,n,o,i){return{done:!1,value:{type:t,item:e,previousPosition:n,nextPosition:o,length:i}}}class hl extends ol{root;path;stickiness;constructor(t,e,n="toNone"){if(super(),!t.is("element")&&!t.is("documentFragment"))throw new x("model-position-root-invalid",t);if(!(e instanceof Array)||0===e.length)throw new x("model-position-path-incorrect-format",t,{path:e});t.is("rootElement")?e=e.slice():(e=[...t.getPath(),...e],t=t.root),this.root=t,this.path=e,this.stickiness=n}get offset(){return this.path[this.path.length-1]}set offset(t){this.path[this.path.length-1]=t}get parent(){let t=this.root;for(let e=0;e1)return!1;if(1===e)return pl(t,this,n);if(-1===e)return pl(this,t,n)}return this.path.length===t.path.length||(this.path.length>t.path.length?fl(this.path,e):fl(t.path,e))}hasSameParentAs(t){if(this.root!==t.root)return!1;return"same"==it(this.getParentPath(),t.getParentPath())}getTransformedByOperation(t){let e;switch(t.type){case"insert":e=this._getTransformedByInsertOperation(t);break;case"move":case"remove":case"reinsert":e=this._getTransformedByMoveOperation(t);break;case"split":e=this._getTransformedBySplitOperation(t);break;case"merge":e=this._getTransformedByMergeOperation(t);break;default:e=hl._createAt(this)}return e}_getTransformedByInsertOperation(t){return this._getTransformedByInsertion(t.position,t.howMany)}_getTransformedByMoveOperation(t){return this._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany)}_getTransformedBySplitOperation(t){const e=t.movedRange;return e.containsPosition(this)||e.start.isEqual(this)&&"toNext"==this.stickiness?this._getCombined(t.splitPosition,t.moveTargetPosition):t.graveyardPosition?this._getTransformedByMove(t.graveyardPosition,t.insertionPosition,1):this._getTransformedByInsertion(t.insertionPosition,1)}_getTransformedByMergeOperation(t){const e=t.movedRange;let n;return e.containsPosition(this)||e.start.isEqual(this)?(n=this._getCombined(t.sourcePosition,t.targetPosition),t.sourcePosition.isBefore(t.targetPosition)&&(n=n._getTransformedByDeletion(t.deletionPosition,1))):n=this.isEqual(t.deletionPosition)?hl._createAt(t.deletionPosition):this._getTransformedByMove(t.deletionPosition,t.graveyardPosition,1),n}_getTransformedByDeletion(t,e){const n=hl._createAt(this);if(this.root!=t.root)return n;if("same"==it(t.getParentPath(),this.getParentPath())){if(t.offsetthis.offset)return null;n.offset-=e}}else if("prefix"==it(t.getParentPath(),this.getParentPath())){const o=t.path.length-1;if(t.offset<=this.path[o]){if(t.offset+e>this.path[o])return null;n.path[o]-=e}}return n}_getTransformedByInsertion(t,e){const n=hl._createAt(this);if(this.root!=t.root)return n;if("same"==it(t.getParentPath(),this.getParentPath()))(t.offset=e;){if(t.path[o]+i!==n.maxOffset)return!1;i=1,o--,n=n.parent}return!0}(t,n+1))}function fl(t,e){for(;ee+1;){const e=o.maxOffset-n.offset;0!==e&&t.push(new kl(n,n.getShiftedBy(e))),n.path=n.path.slice(0,-1),n.offset++,o=o.parent}for(;n.path.length<=this.end.path.length;){const e=this.end.path[n.path.length-1],o=e-n.offset;0!==o&&t.push(new kl(n,n.getShiftedBy(o))),n.offset=e,n.path.push(0)}return t}getWalker(t={}){return t.boundaries=this,new ll(t)}*getItems(t={}){t.boundaries=this,t.ignoreElementEnd=!0;const e=new ll(t);for(const t of e)yield t.item}*getPositions(t={}){t.boundaries=this;const e=new ll(t);yield e.position;for(const t of e)yield t.nextPosition}getTransformedByOperation(t){switch(t.type){case"insert":return this._getTransformedByInsertOperation(t);case"move":case"remove":case"reinsert":return this._getTransformedByMoveOperation(t);case"split":return[this._getTransformedBySplitOperation(t)];case"merge":return[this._getTransformedByMergeOperation(t)]}return[new kl(this.start,this.end)]}getTransformedByOperations(t){const e=[new kl(this.start,this.end)];for(const n of t)for(let t=0;t0?new this(n,o):new this(o,n)}static _createIn(t){return new this(hl._createAt(t,0),hl._createAt(t,t.maxOffset))}static _createOn(t){return this._createFromPositionAndShift(hl._createBefore(t),t.offsetSize)}static _createFromRanges(t){if(0===t.length)throw new x("range-create-from-ranges-empty-array",null);if(1==t.length)return t[0].clone();const e=t[0];t.sort(((t,e)=>t.start.isAfter(e.start)?1:-1));const n=t.indexOf(e),o=new this(e.start,e.end);if(n>0)for(let e=n-1;t[e].end.isEqual(o.start);e++)o.start=hl._createAt(t[e].start);for(let e=n+1;e{if(e.viewPosition)return;const n=this._modelToViewMapping.get(e.modelPosition.parent);if(!n)throw new x("mapping-model-position-view-parent-not-found",this,{modelPosition:e.modelPosition});e.viewPosition=this.findPositionIn(n,e.modelPosition.offset)}),{priority:"low"}),this.on("viewToModelPosition",((t,e)=>{if(e.modelPosition)return;const n=this.findMappedViewAncestor(e.viewPosition),o=this._viewToModelMapping.get(n),i=this._toModelOffset(e.viewPosition.parent,e.viewPosition.offset,n);e.modelPosition=hl._createAt(o,i)}),{priority:"low"})}bindElements(t,e){this._modelToViewMapping.set(t,e),this._viewToModelMapping.set(e,t)}unbindViewElement(t,e={}){const n=this.toModelElement(t);if(this._elementToMarkerNames.has(t))for(const e of this._elementToMarkerNames.get(t))this._unboundMarkerNames.add(e);e.defer?this._deferredBindingRemovals.set(t,t.root):(this._viewToModelMapping.delete(t),this._modelToViewMapping.get(n)==t&&this._modelToViewMapping.delete(n))}unbindModelElement(t){const e=this.toViewElement(t);this._modelToViewMapping.delete(t),this._viewToModelMapping.get(e)==t&&this._viewToModelMapping.delete(e)}bindElementToMarker(t,e){const n=this._markerNameToElements.get(e)||new Set;n.add(t);const o=this._elementToMarkerNames.get(t)||new Set;o.add(e),this._markerNameToElements.set(e,n),this._elementToMarkerNames.set(t,o)}unbindElementFromMarkerName(t,e){const n=this._markerNameToElements.get(e);n&&(n.delete(t),0==n.size&&this._markerNameToElements.delete(e));const o=this._elementToMarkerNames.get(t);o&&(o.delete(e),0==o.size&&this._elementToMarkerNames.delete(t))}flushUnboundMarkerNames(){const t=Array.from(this._unboundMarkerNames);return this._unboundMarkerNames.clear(),t}flushDeferredBindings(){for(const[t,e]of this._deferredBindingRemovals)t.root==e&&this.unbindViewElement(t);this._deferredBindingRemovals=new Map}clearBindings(){this._modelToViewMapping=new WeakMap,this._viewToModelMapping=new WeakMap,this._markerNameToElements=new Map,this._elementToMarkerNames=new Map,this._unboundMarkerNames=new Set,this._deferredBindingRemovals=new Map}toModelElement(t){return this._viewToModelMapping.get(t)}toViewElement(t){return this._modelToViewMapping.get(t)}toModelRange(t){return new kl(this.toModelPosition(t.start),this.toModelPosition(t.end))}toViewRange(t){return new Qs(this.toViewPosition(t.start),this.toViewPosition(t.end))}toModelPosition(t){const e={viewPosition:t,mapper:this};return this.fire("viewToModelPosition",e),e.modelPosition}toViewPosition(t,e={}){const n={modelPosition:t,mapper:this,isPhantom:e.isPhantom};return this.fire("modelToViewPosition",n),n.viewPosition}markerNameToElements(t){const e=this._markerNameToElements.get(t);if(!e)return null;const n=new Set;for(const t of e)if(t.is("attributeElement"))for(const e of t.getElementsWithSameId())n.add(e);else n.add(t);return n}registerViewToModelLength(t,e){this._viewToModelLengthCallbacks.set(t,e)}findMappedViewAncestor(t){let e=t.parent;for(;!this._viewToModelMapping.has(e);)e=e.parent;return e}_toModelOffset(t,e,n){if(n!=t){return this._toModelOffset(t.parent,t.index,n)+this._toModelOffset(t,e,t)}if(t.is("$text"))return e;let o=0;for(let n=0;n1?e[0]+":"+e[1]:e[0]}class Al extends(L()){_conversionApi;_firedEventsMap;constructor(t){super(),this._conversionApi={dispatcher:this,...t},this._firedEventsMap=new WeakMap}convertChanges(t,e,n){const o=this._createConversionApi(n,t.getRefreshedItems());for(const e of t.getMarkersToRemove())this._convertMarkerRemove(e.name,e.range,o);const i=this._reduceChanges(t.getChanges());for(const t of i)"insert"===t.type?this._convertInsert(kl._createFromPositionAndShift(t.position,t.length),o):"reinsert"===t.type?this._convertReinsert(kl._createFromPositionAndShift(t.position,t.length),o):"remove"===t.type?this._convertRemove(t.position,t.length,t.name,o):this._convertAttribute(t.range,t.attributeKey,t.attributeOldValue,t.attributeNewValue,o);o.mapper.flushDeferredBindings();for(const t of o.mapper.flushUnboundMarkerNames()){const n=e.get(t).getRange();this._convertMarkerRemove(t,n,o),this._convertMarkerAdd(t,n,o)}for(const e of t.getMarkersToAdd())this._convertMarkerAdd(e.name,e.range,o);o.consumable.verifyAllConsumed("insert")}convert(t,e,n,o={}){const i=this._createConversionApi(n,void 0,o);this._convertInsert(t,i);for(const[t,n]of e)this._convertMarkerAdd(t,n,i);i.consumable.verifyAllConsumed("insert")}convertSelection(t,e,n){const o=this._createConversionApi(n);this.fire("cleanSelection",{selection:t},o);const i=t.getFirstPosition().root;if(!o.mapper.toViewElement(i))return;const r=Array.from(e.getMarkersAtPosition(t.getFirstPosition()));if(this._addConsumablesForSelection(o.consumable,t,r),this.fire("selection",{selection:t},o),t.isCollapsed){for(const e of r)if(o.consumable.test(t,"addMarker:"+e.name)){const n=e.getRange();if(!Cl(t.getFirstPosition(),e,o.mapper))continue;const i={item:t,markerName:e.name,markerRange:n};this.fire(`addMarker:${e.name}`,i,o)}for(const e of t.getAttributeKeys())if(o.consumable.test(t,"attribute:"+e)){const n={item:t,range:t.getFirstRange(),attributeKey:e,attributeOldValue:null,attributeNewValue:t.getAttribute(e)};this.fire(`attribute:${e}:$text`,n,o)}}}_convertInsert(t,e,n={}){n.doNotAddConsumables||this._addConsumablesForInsert(e.consumable,t);for(const n of Array.from(t.getWalker({shallow:!0})).map(vl))this._testAndFire("insert",n,e)}_convertRemove(t,e,n,o){this.fire(`remove:${n}`,{position:t,length:e},o)}_convertAttribute(t,e,n,o,i){this._addConsumablesForRange(i.consumable,t,`attribute:${e}`);for(const r of t){const t={item:r.item,range:kl._createFromPositionAndShift(r.previousPosition,r.length),attributeKey:e,attributeOldValue:n,attributeNewValue:o};this._testAndFire(`attribute:${e}`,t,i)}}_convertReinsert(t,e){const n=Array.from(t.getWalker({shallow:!0}));this._addConsumablesForInsert(e.consumable,n);for(const t of n.map(vl))this._testAndFire("insert",{...t,reconversion:!0},e)}_convertMarkerAdd(t,e,n){if("$graveyard"==e.root.rootName)return;const o=`addMarker:${t}`;if(n.consumable.add(e,o),this.fire(o,{markerName:t,markerRange:e},n),n.consumable.consume(e,o)){this._addConsumablesForRange(n.consumable,e,o);for(const i of e.getItems()){if(!n.consumable.test(i,o))continue;const r={item:i,range:kl._createOn(i),markerName:t,markerRange:e};this.fire(o,r,n)}}}_convertMarkerRemove(t,e,n){"$graveyard"!=e.root.rootName&&this.fire(`removeMarker:${t}`,{markerName:t,markerRange:e},n)}_reduceChanges(t){const e={changes:t};return this.fire("reduceChanges",e),e.changes}_addConsumablesForInsert(t,e){for(const n of e){const e=n.item;if(null===t.test(e,"insert")){t.add(e,"insert");for(const n of e.getAttributeKeys())t.add(e,"attribute:"+n)}}return t}_addConsumablesForRange(t,e,n){for(const o of e.getItems())t.add(o,n);return t}_addConsumablesForSelection(t,e,n){t.add(e,"selection");for(const o of n)t.add(e,"addMarker:"+o.name);for(const n of e.getAttributeKeys())t.add(e,"attribute:"+n);return t}_testAndFire(t,e,n){const o=function(t,e){const n=e.item.is("element")?e.item.name:"$text";return`${t}:${n}`}(t,e),i=e.item.is("$textProxy")?n.consumable._getSymbolForTextProxy(e.item):e.item,r=this._firedEventsMap.get(n),s=r.get(i);if(s){if(s.has(o))return;s.add(o)}else r.set(i,new Set([o]));this.fire(o,e,n)}_testAndFireAddAttributes(t,e){const n={item:t,range:kl._createOn(t)};for(const t of n.item.getAttributeKeys())n.attributeKey=t,n.attributeOldValue=null,n.attributeNewValue=n.item.getAttribute(t),this._testAndFire(`attribute:${t}`,n,e)}_createConversionApi(t,e=new Set,n={}){const o={...this._conversionApi,consumable:new wl,writer:t,options:n,convertItem:t=>this._convertInsert(kl._createOn(t),o),convertChildren:t=>this._convertInsert(kl._createIn(t),o,{doNotAddConsumables:!0}),convertAttributes:t=>this._testAndFireAddAttributes(t,o),canReuseView:t=>!e.has(o.mapper.toModelElement(t))};return this._firedEventsMap.set(o,new Map),o}}function Cl(t,e,n){const o=e.getRange(),i=Array.from(t.getAncestors());i.shift(),i.reverse();return!i.some((t=>{if(o.containsItem(t)){return!!n.toViewElement(t).getCustomProperty("addHighlight")}}))}function vl(t){return{item:t.item,range:kl._createFromPositionAndShift(t.previousPosition,t.length)}}class yl extends(L(ol)){_lastRangeBackward=!1;_attrs=new Map;_ranges=[];constructor(...t){super(),t.length&&this.setTo(...t)}get anchor(){if(this._ranges.length>0){const t=this._ranges[this._ranges.length-1];return this._lastRangeBackward?t.end:t.start}return null}get focus(){if(this._ranges.length>0){const t=this._ranges[this._ranges.length-1];return this._lastRangeBackward?t.start:t.end}return null}get isCollapsed(){return 1===this._ranges.length&&this._ranges[0].isCollapsed}get rangeCount(){return this._ranges.length}get isBackward(){return!this.isCollapsed&&this._lastRangeBackward}isEqual(t){if(this.rangeCount!=t.rangeCount)return!1;if(0===this.rangeCount)return!0;if(!this.anchor.isEqual(t.anchor)||!this.focus.isEqual(t.focus))return!1;for(const e of this._ranges){let n=!1;for(const o of t._ranges)if(e.isEqual(o)){n=!0;break}if(!n)return!1}return!0}*getRanges(){for(const t of this._ranges)yield new kl(t.start,t.end)}getFirstRange(){let t=null;for(const e of this._ranges)t&&!e.start.isBefore(t.start)||(t=e);return t?new kl(t.start,t.end):null}getLastRange(){let t=null;for(const e of this._ranges)t&&!e.end.isAfter(t.end)||(t=e);return t?new kl(t.start,t.end):null}getFirstPosition(){const t=this.getFirstRange();return t?t.start.clone():null}getLastPosition(){const t=this.getLastRange();return t?t.end.clone():null}setTo(...t){let[e,n,o]=t;if("object"==typeof n&&(o=n,n=void 0),null===e)this._setRanges([]);else if(e instanceof yl)this._setRanges(e.getRanges(),e.isBackward);else if(e&&"function"==typeof e.getRanges)this._setRanges(e.getRanges(),e.isBackward);else if(e instanceof kl)this._setRanges([e],!!o&&!!o.backward);else if(e instanceof hl)this._setRanges([new kl(e)]);else if(e instanceof il){const t=!!o&&!!o.backward;let i;if("in"==n)i=kl._createIn(e);else if("on"==n)i=kl._createOn(e);else{if(void 0===n)throw new x("model-selection-setto-required-second-parameter",[this,e]);i=new kl(hl._createAt(e,n))}this._setRanges([i],t)}else{if(!rt(e))throw new x("model-selection-setto-not-selectable",[this,e]);this._setRanges(e,o&&!!o.backward)}}_setRanges(t,e=!1){const n=Array.from(t),o=n.some((e=>{if(!(e instanceof kl))throw new x("model-selection-set-ranges-not-range",[this,t]);return this._ranges.every((t=>!t.isEqual(e)))}));(n.length!==this._ranges.length||o)&&(this._replaceAllRanges(n),this._lastRangeBackward=!!e,this.fire("change:range",{directChange:!0}))}setFocus(t,e){if(null===this.anchor)throw new x("model-selection-setfocus-no-ranges",[this,t]);const n=hl._createAt(t,e);if("same"==n.compareWith(this.focus))return;const o=this.anchor;this._ranges.length&&this._popRange(),"before"==n.compareWith(o)?(this._pushRange(new kl(n,o)),this._lastRangeBackward=!0):(this._pushRange(new kl(o,n)),this._lastRangeBackward=!1),this.fire("change:range",{directChange:!0})}getAttribute(t){return this._attrs.get(t)}getAttributes(){return this._attrs.entries()}getAttributeKeys(){return this._attrs.keys()}hasAttribute(t){return this._attrs.has(t)}removeAttribute(t){this.hasAttribute(t)&&(this._attrs.delete(t),this.fire("change:attribute",{attributeKeys:[t],directChange:!0}))}setAttribute(t,e){this.getAttribute(t)!==e&&(this._attrs.set(t,e),this.fire("change:attribute",{attributeKeys:[t],directChange:!0}))}getSelectedElement(){return 1!==this.rangeCount?null:this.getFirstRange().getContainedElement()}*getSelectedBlocks(){const t=new WeakSet;for(const e of this.getRanges()){const n=Dl(e.start,t);Tl(n,e)&&(yield n);for(const n of e.getWalker()){const o=n.item;"elementEnd"==n.type&&El(o,t,e)&&(yield o)}const o=Dl(e.end,t);Sl(o,e)&&(yield o)}}containsEntireContent(t=this.anchor.root){const e=hl._createAt(t,0),n=hl._createAt(t,"end");return e.isTouching(this.getFirstPosition())&&n.isTouching(this.getLastPosition())}_pushRange(t){this._checkRange(t),this._ranges.push(new kl(t.start,t.end))}_checkRange(t){for(let e=0;e0;)this._popRange()}_popRange(){this._ranges.pop()}}function xl(t,e){return!e.has(t)&&(e.add(t),t.root.document.model.schema.isBlock(t)&&!!t.parent)}function El(t,e,n){return xl(t,e)&&Bl(t,n)}function Dl(t,e){const n=t.parent.root.document.model.schema,o=t.parent.getAncestors({parentFirst:!0,includeSelf:!0});let i=!1;const r=o.find((t=>!i&&(i=n.isLimit(t),!i&&xl(t,e))));return o.forEach((t=>e.add(t))),r}function Bl(t,e){const n=function(t){const e=t.root.document.model.schema;let n=t.parent;for(;n;){if(e.isBlock(n))return n;n=n.parent}}(t);if(!n)return!0;return!e.containsRange(kl._createOn(n),!0)}function Tl(t,e){return!!t&&(!(!e.isCollapsed&&!t.isEmpty)||!e.start.isTouching(hl._createAt(t,t.maxOffset))&&Bl(t,e))}function Sl(t,e){return!!t&&(!(!e.isCollapsed&&!t.isEmpty)||!e.end.isTouching(hl._createAt(t,0))&&Bl(t,e))}yl.prototype.is=function(t){return"selection"===t||"model:selection"===t};class Il extends(L(kl)){constructor(t,e){super(t,e),Pl.call(this)}detach(){this.stopListening()}toRange(){return new kl(this.start,this.end)}static fromRange(t){return new Il(t.start,t.end)}}function Pl(){this.listenTo(this.root.document.model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&zl.call(this,n)}),{priority:"low"})}function zl(t){const e=this.getTransformedByOperation(t),n=kl._createFromRanges(e),o=!n.isEqual(this),i=function(t,e){switch(e.type){case"insert":return t.containsPosition(e.position);case"move":case"remove":case"reinsert":case"merge":return t.containsPosition(e.sourcePosition)||t.start.isEqual(e.sourcePosition)||t.containsPosition(e.targetPosition);case"split":return t.containsPosition(e.splitPosition)||t.containsPosition(e.insertionPosition)}return!1}(this,t);let r=null;if(o){"$graveyard"==n.root.rootName&&(r="remove"==t.type?t.sourcePosition:t.deletionPosition);const e=this.toRange();this.start=n.start,this.end=n.end,this.fire("change:range",e,{deletionPosition:r})}else i&&this.fire("change:content",this.toRange(),{deletionPosition:r})}Il.prototype.is=function(t){return"liveRange"===t||"model:liveRange"===t||"range"==t||"model:range"===t};const Rl="selection:";class Ll extends(L(ol)){_selection;constructor(t){super(),this._selection=new Fl(t),this._selection.delegate("change:range").to(this),this._selection.delegate("change:attribute").to(this),this._selection.delegate("change:marker").to(this)}get isCollapsed(){return this._selection.isCollapsed}get anchor(){return this._selection.anchor}get focus(){return this._selection.focus}get rangeCount(){return this._selection.rangeCount}get hasOwnRange(){return this._selection.hasOwnRange}get isBackward(){return this._selection.isBackward}get isGravityOverridden(){return this._selection.isGravityOverridden}get markers(){return this._selection.markers}get _ranges(){return this._selection._ranges}getRanges(){return this._selection.getRanges()}getFirstPosition(){return this._selection.getFirstPosition()}getLastPosition(){return this._selection.getLastPosition()}getFirstRange(){return this._selection.getFirstRange()}getLastRange(){return this._selection.getLastRange()}getSelectedBlocks(){return this._selection.getSelectedBlocks()}getSelectedElement(){return this._selection.getSelectedElement()}containsEntireContent(t){return this._selection.containsEntireContent(t)}destroy(){this._selection.destroy()}getAttributeKeys(){return this._selection.getAttributeKeys()}getAttributes(){return this._selection.getAttributes()}getAttribute(t){return this._selection.getAttribute(t)}hasAttribute(t){return this._selection.hasAttribute(t)}refresh(){this._selection.updateMarkers(),this._selection._updateAttributes(!1)}observeMarkers(t){this._selection.observeMarkers(t)}_setFocus(t,e){this._selection.setFocus(t,e)}_setTo(...t){this._selection.setTo(...t)}_setAttribute(t,e){this._selection.setAttribute(t,e)}_removeAttribute(t){this._selection.removeAttribute(t)}_getStoredAttributes(){return this._selection.getStoredAttributes()}_overrideGravity(){return this._selection.overrideGravity()}_restoreGravity(t){this._selection.restoreGravity(t)}static _getStoreAttributeKey(t){return Rl+t}static _isStoreAttributeKey(t){return t.startsWith(Rl)}}Ll.prototype.is=function(t){return"selection"===t||"model:selection"==t||"documentSelection"==t||"model:documentSelection"==t};class Fl extends yl{markers=new Qi({idProperty:"name"});_model;_document;_attributePriority=new Map;_selectionRestorePosition=null;_hasChangedRange=!1;_overriddenGravityRegister=new Set;_observedMarkers=new Set;constructor(t){super(),this._model=t.model,this._document=t,this.listenTo(this._model,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&"marker"!=n.type&&"rename"!=n.type&&"noop"!=n.type&&(0==this._ranges.length&&this._selectionRestorePosition&&this._fixGraveyardSelection(this._selectionRestorePosition),this._selectionRestorePosition=null,this._hasChangedRange&&(this._hasChangedRange=!1,this.fire("change:range",{directChange:!1})))}),{priority:"lowest"}),this.on("change:range",(()=>{this._validateSelectionRanges(this.getRanges())})),this.listenTo(this._model.markers,"update",((t,e,n,o)=>{this._updateMarker(e,o)})),this.listenTo(this._document,"change",((t,e)=>{!function(t,e){const n=t.document.differ;for(const o of n.getChanges()){if("insert"!=o.type)continue;const n=o.position.parent;o.length===n.maxOffset&&t.enqueueChange(e,(t=>{const e=Array.from(n.getAttributeKeys()).filter((t=>t.startsWith(Rl)));for(const o of e)t.removeAttribute(o,n)}))}}(this._model,e)}))}get isCollapsed(){return 0===this._ranges.length?this._document._getDefaultRange().isCollapsed:super.isCollapsed}get anchor(){return super.anchor||this._document._getDefaultRange().start}get focus(){return super.focus||this._document._getDefaultRange().end}get rangeCount(){return this._ranges.length?this._ranges.length:1}get hasOwnRange(){return this._ranges.length>0}get isGravityOverridden(){return!!this._overriddenGravityRegister.size}destroy(){for(let t=0;t{if(this._hasChangedRange=!0,e.root==this._document.graveyard){this._selectionRestorePosition=o.deletionPosition;const t=this._ranges.indexOf(e);this._ranges.splice(t,1),e.detach()}})),e}updateMarkers(){if(!this._observedMarkers.size)return;const t=[];let e=!1;for(const e of this._model.markers){const n=e.name.split(":",1)[0];if(!this._observedMarkers.has(n))continue;const o=e.getRange();for(const n of this.getRanges())o.containsRange(n,!n.isCollapsed)&&t.push(e)}const n=Array.from(this.markers);for(const n of t)this.markers.has(n)||(this.markers.add(n),e=!0);for(const n of Array.from(this.markers))t.includes(n)||(this.markers.remove(n),e=!0);e&&this.fire("change:marker",{oldMarkers:n,directChange:!1})}_updateMarker(t,e){const n=t.name.split(":",1)[0];if(!this._observedMarkers.has(n))return;let o=!1;const i=Array.from(this.markers),r=this.markers.has(t);if(e){let n=!1;for(const t of this.getRanges())if(e.containsRange(t,!t.isCollapsed)){n=!0;break}n&&!r?(this.markers.add(t),o=!0):!n&&r&&(this.markers.remove(t),o=!0)}else r&&(this.markers.remove(t),o=!0);o&&this.fire("change:marker",{oldMarkers:i,directChange:!1})}_updateAttributes(t){const e=nr(this._getSurroundingAttributes()),n=nr(this.getAttributes());if(t)this._attributePriority=new Map,this._attrs=new Map;else for(const[t,e]of this._attributePriority)"low"==e&&(this._attrs.delete(t),this._attributePriority.delete(t));this._setAttributesTo(e);const o=[];for(const[t,e]of this.getAttributes())n.has(t)&&n.get(t)===e||o.push(t);for(const[t]of n)this.hasAttribute(t)||o.push(t);o.length>0&&this.fire("change:attribute",{attributeKeys:o,directChange:!1})}_setAttribute(t,e,n=!0){const o=n?"normal":"low";if("low"==o&&"normal"==this._attributePriority.get(t))return!1;return super.getAttribute(t)!==e&&(this._attrs.set(t,e),this._attributePriority.set(t,o),!0)}_removeAttribute(t,e=!0){const n=e?"normal":"low";return("low"!=n||"normal"!=this._attributePriority.get(t))&&(this._attributePriority.set(t,n),!!super.hasAttribute(t)&&(this._attrs.delete(t),!0))}_setAttributesTo(t){const e=new Set;for(const[e,n]of this.getAttributes())t.get(e)!==n&&this._removeAttribute(e,!1);for(const[n,o]of t){this._setAttribute(n,o,!1)&&e.add(n)}return e}*getStoredAttributes(){const t=this.getFirstPosition().parent;if(this.isCollapsed&&t.isEmpty)for(const e of t.getAttributeKeys())if(e.startsWith(Rl)){const n=e.substr(10);yield[n,t.getAttribute(e)]}}_getSurroundingAttributes(){const t=this.getFirstPosition(),e=this._model.schema;if("$graveyard"==t.root.rootName)return null;let n=null;if(this.isCollapsed){const o=t.textNode?t.textNode:t.nodeBefore,i=t.textNode?t.textNode:t.nodeAfter;if(this.isGravityOverridden||(n=Ml(o,e)),n||(n=Ml(i,e)),!this.isGravityOverridden&&!n){let t=o;for(;t&&!n;)t=t.previousSibling,n=Ml(t,e)}if(!n){let t=i;for(;t&&!n;)t=t.nextSibling,n=Ml(t,e)}n||(n=this.getStoredAttributes())}else{const t=this.getFirstRange();for(const o of t){if(o.item.is("element")&&e.isObject(o.item)){n=Ml(o.item,e);break}if("text"==o.type){n=o.item.getAttributes();break}}}return n}_fixGraveyardSelection(t){const e=this._model.schema.getNearestSelectionRange(t);e&&this._pushRange(e)}}function Ml(t,e){if(!t)return null;if(t instanceof al||t instanceof sl)return t.getAttributes();if(!e.isInline(t))return null;if(!e.isObject(t))return[];const n=[];for(const[o,i]of t.getAttributes())e.checkAttribute("$text",o)&&!1!==e.getAttributeProperties(o).copyFromObject&&n.push([o,i]);return n}class Vl{_dispatchers;constructor(t){this._dispatchers=t}add(t){for(const e of this._dispatchers)t(e);return this}}class Ol extends Vl{elementToElement(t){return this.add(function(t){const e=Gl(t.model),n=Kl(t.view,"container");e.attributes.length&&(e.children=!0);return o=>{o.on(`insert:${e.name}`,ql(n,Yl(e)),{priority:t.converterPriority||"normal"}),(e.children||e.attributes.length)&&o.on("reduceChanges",Jl(e),{priority:"low"})}}(t))}elementToStructure(t){return this.add(function(t){const e=Gl(t.model),n=Kl(t.view,"container");return e.children=!0,o=>{if(o._conversionApi.schema.checkChild(e.name,"$text"))throw new x("conversion-element-to-structure-disallowed-text",o,{elementName:e.name});var i,r;o.on(`insert:${e.name}`,(i=n,r=Yl(e),(t,e,n)=>{if(!r(e.item,n.consumable,{preflight:!0}))return;const o=new Map;n.writer._registerSlotFactory(function(t,e,n){return(o,i)=>{const r=o.createContainerElement("$slot");let s=null;if("children"===i)s=Array.from(t.getChildren());else{if("function"!=typeof i)throw new x("conversion-slot-mode-unknown",n.dispatcher,{modeOrFilter:i});s=Array.from(t.getChildren()).filter((t=>i(t)))}return e.set(r,s),r}}(e.item,o,n));const s=i(e.item,n,e);if(n.writer._clearSlotFactory(),!s)return;!function(t,e,n){const o=Array.from(e.values()).flat(),i=new Set(o);if(i.size!=o.length)throw new x("conversion-slot-filter-overlap",n.dispatcher,{element:t});if(i.size!=t.childCount)throw new x("conversion-slot-filter-incomplete",n.dispatcher,{element:t})}(e.item,o,n),r(e.item,n.consumable);const a=n.mapper.toViewPosition(e.range.start);n.mapper.bindElements(e.item,s),n.writer.insert(a,s),n.convertAttributes(e.item),function(t,e,n,o){n.mapper.on("modelToViewPosition",s,{priority:"highest"});let i=null,r=null;for([i,r]of e)Ql(t,r,n,o),n.writer.move(n.writer.createRangeIn(i),n.writer.createPositionBefore(i)),n.writer.remove(i);function s(t,e){const n=e.modelPosition.nodeAfter,o=r.indexOf(n);o<0||(e.viewPosition=e.mapper.findPositionIn(i,o))}n.mapper.off("modelToViewPosition",s)}(s,o,n,{reconversion:e.reconversion})}),{priority:t.converterPriority||"normal"}),o.on("reduceChanges",Jl(e),{priority:"low"})}}(t))}attributeToElement(t){return this.add(function(t){t=el(t);let e=t.model;"string"==typeof e&&(e={key:e});let n=`attribute:${e.key}`;e.name&&(n+=":"+e.name);if(e.values)for(const n of e.values)t.view[n]=Kl(t.view[n],"attribute");else t.view=Kl(t.view,"attribute");const o=Ul(t);return e=>{e.on(n,Hl(o),{priority:t.converterPriority||"normal"})}}(t))}attributeToAttribute(t){return this.add(function(t){t=el(t);let e=t.model;"string"==typeof e&&(e={key:e});let n=`attribute:${e.key}`;e.name&&(n+=":"+e.name);if(e.values)for(const n of e.values)t.view[n]=$l(t.view[n]);else t.view=$l(t.view);const o=Ul(t);return e=>{var i;e.on(n,(i=o,(t,e,n)=>{if(!n.consumable.test(e.item,t.name))return;const o=i(e.attributeOldValue,n,e),r=i(e.attributeNewValue,n,e);if(!o&&!r)return;n.consumable.consume(e.item,t.name);const s=n.mapper.toViewElement(e.item),a=n.writer;if(!s)throw new x("conversion-attribute-to-attribute-on-text",n.dispatcher,e);if(null!==e.attributeOldValue&&o)if("class"==o.key){const t="string"==typeof o.value?o.value.split(/\s+/):o.value;for(const e of t)a.removeClass(e,s)}else if("style"==o.key)if("string"==typeof o.value){const t=new Os(a.document.stylesProcessor);t.setTo(o.value);for(const[e]of t.getStylesEntries())a.removeStyle(e,s)}else{const t=Object.keys(o.value);for(const e of t)a.removeStyle(e,s)}else a.removeAttribute(o.key,s);if(null!==e.attributeNewValue&&r)if("class"==r.key){const t="string"==typeof r.value?r.value.split(/\s+/):r.value;for(const e of t)a.addClass(e,s)}else if("style"==r.key)if("string"==typeof r.value){const t=new Os(a.document.stylesProcessor);t.setTo(r.value);for(const[e,n]of t.getStylesEntries())a.setStyle(e,n,s)}else{const t=Object.keys(r.value);for(const e of t)a.setStyle(e,r.value[e],s)}else a.setAttribute(r.key,r.value,s)}),{priority:t.converterPriority||"normal"})}}(t))}markerToElement(t){return this.add(function(t){const e=Kl(t.view,"ui");return n=>{n.on(`addMarker:${t.model}`,jl(e),{priority:t.converterPriority||"normal"}),n.on(`removeMarker:${t.model}`,((t,e,n)=>{const o=n.mapper.markerNameToElements(e.markerName);if(o){for(const t of o)n.mapper.unbindElementFromMarkerName(t,e.markerName),n.writer.clear(n.writer.createRangeOn(t),t);n.writer.clearClonedElementsGroup(e.markerName),t.stop()}}),{priority:t.converterPriority||"normal"})}}(t))}markerToHighlight(t){return this.add(function(t){return e=>{var n;e.on(`addMarker:${t.model}`,(n=t.view,(t,e,o)=>{if(!e.item)return;if(!(e.item instanceof yl||e.item instanceof Ll||e.item.is("$textProxy")))return;const i=Zl(n,e,o);if(!i)return;if(!o.consumable.consume(e.item,t.name))return;const r=o.writer,s=Nl(r,i),a=r.document.selection;if(e.item instanceof yl||e.item instanceof Ll)r.wrap(a.getFirstRange(),s);else{const t=o.mapper.toViewRange(e.range),n=r.wrap(t,s);for(const t of n.getItems())if(t.is("attributeElement")&&t.isSimilar(s)){o.mapper.bindElementToMarker(t,e.markerName);break}}}),{priority:t.converterPriority||"normal"}),e.on(`addMarker:${t.model}`,function(t){return(e,n,o)=>{if(!n.item)return;if(!(n.item instanceof cl))return;const i=Zl(t,n,o);if(!i)return;if(!o.consumable.test(n.item,e.name))return;const r=o.mapper.toViewElement(n.item);if(r&&r.getCustomProperty("addHighlight")){o.consumable.consume(n.item,e.name);for(const t of kl._createIn(n.item))o.consumable.consume(t.item,e.name);r.getCustomProperty("addHighlight")(r,i,o.writer),o.mapper.bindElementToMarker(r,n.markerName)}}}(t.view),{priority:t.converterPriority||"normal"}),e.on(`removeMarker:${t.model}`,function(t){return(e,n,o)=>{if(n.markerRange.isCollapsed)return;const i=Zl(t,n,o);if(!i)return;const r=Nl(o.writer,i),s=o.mapper.markerNameToElements(n.markerName);if(s){for(const t of s)if(o.mapper.unbindElementFromMarkerName(t,n.markerName),t.is("attributeElement"))o.writer.unwrap(o.writer.createRangeOn(t),r);else{t.getCustomProperty("removeHighlight")(t,i.id,o.writer)}o.writer.clearClonedElementsGroup(n.markerName),e.stop()}}}(t.view),{priority:t.converterPriority||"normal"})}}(t))}markerToData(t){return this.add(function(t){t=el(t);const e=t.model;let n=t.view;n||(n=n=>({group:e,name:n.substr(t.model.length+1)}));return o=>{var i;o.on(`addMarker:${e}`,(i=n,(t,e,n)=>{const o=i(e.markerName,n);if(!o)return;const r=e.markerRange;n.consumable.consume(r,t.name)&&(Wl(r,!1,n,e,o),Wl(r,!0,n,e,o),t.stop())}),{priority:t.converterPriority||"normal"}),o.on(`removeMarker:${e}`,function(t){return(e,n,o)=>{const i=t(n.markerName,o);if(!i)return;const r=o.mapper.markerNameToElements(n.markerName);if(r){for(const t of r)o.mapper.unbindElementFromMarkerName(t,n.markerName),t.is("containerElement")?(s(`data-${i.group}-start-before`,t),s(`data-${i.group}-start-after`,t),s(`data-${i.group}-end-before`,t),s(`data-${i.group}-end-after`,t)):o.writer.clear(o.writer.createRangeOn(t),t);o.writer.clearClonedElementsGroup(n.markerName),e.stop()}function s(t,e){if(e.hasAttribute(t)){const n=new Set(e.getAttribute(t).split(","));n.delete(i.name),0==n.size?o.writer.removeAttribute(t,e):o.writer.setAttribute(t,Array.from(n).join(","),e)}}}}(n),{priority:t.converterPriority||"normal"})}}(t))}}function Nl(t,e){const n=t.createAttributeElement("span",e.attributes);return e.classes&&n._addClass(e.classes),"number"==typeof e.priority&&(n._priority=e.priority),n._id=e.id,n}function Hl(t){return(e,n,o)=>{if(!o.consumable.test(n.item,e.name))return;const i=t(n.attributeOldValue,o,n),r=t(n.attributeNewValue,o,n);if(!i&&!r)return;o.consumable.consume(n.item,e.name);const s=o.writer,a=s.document.selection;if(n.item instanceof yl||n.item instanceof Ll)s.wrap(a.getFirstRange(),r);else{let t=o.mapper.toViewRange(n.range);null!==n.attributeOldValue&&i&&(t=s.unwrap(t,i)),null!==n.attributeNewValue&&r&&s.wrap(t,r)}}}function ql(t,e=td){return(n,o,i)=>{if(!e(o.item,i.consumable,{preflight:!0}))return;const r=t(o.item,i,o);if(!r)return;e(o.item,i.consumable);const s=i.mapper.toViewPosition(o.range.start);i.mapper.bindElements(o.item,r),i.writer.insert(s,r),i.convertAttributes(o.item),Ql(r,o.item.getChildren(),i,{reconversion:o.reconversion})}}function jl(t){return(e,n,o)=>{n.isOpening=!0;const i=t(n,o);n.isOpening=!1;const r=t(n,o);if(!i||!r)return;const s=n.markerRange;if(s.isCollapsed&&!o.consumable.consume(s,e.name))return;for(const t of s)if(!o.consumable.consume(t.item,e.name))return;const a=o.mapper,c=o.writer;c.insert(a.toViewPosition(s.start),i),o.mapper.bindElementToMarker(i,n.markerName),s.isCollapsed||(c.insert(a.toViewPosition(s.end),r),o.mapper.bindElementToMarker(r,n.markerName)),e.stop()}}function Wl(t,e,n,o,i){const r=e?t.start:t.end,s=r.nodeAfter&&r.nodeAfter.is("element")?r.nodeAfter:null,a=r.nodeBefore&&r.nodeBefore.is("element")?r.nodeBefore:null;if(s||a){let t,r;e&&s||!e&&!a?(t=s,r=!0):(t=a,r=!1);const c=n.mapper.toViewElement(t);if(c)return void function(t,e,n,o,i,r){const s=`data-${r.group}-${e?"start":"end"}-${n?"before":"after"}`,a=t.hasAttribute(s)?t.getAttribute(s).split(","):[];a.unshift(r.name),o.writer.setAttribute(s,a.join(","),t),o.mapper.bindElementToMarker(t,i.markerName)}(c,e,r,n,o,i)}!function(t,e,n,o,i){const r=`${i.group}-${e?"start":"end"}`,s=i.name?{name:i.name}:null,a=n.writer.createUIElement(r,s);n.writer.insert(t,a),n.mapper.bindElementToMarker(a,o.markerName)}(n.mapper.toViewPosition(r),e,n,o,i)}function Gl(t){return"string"==typeof t&&(t={name:t}),{name:t.name,attributes:t.attributes?Di(t.attributes):[],children:!!t.children}}function Kl(t,e){return"function"==typeof t?t:(n,o)=>function(t,e,n){"string"==typeof t&&(t={name:t});let o;const i=e.writer,r=Object.assign({},t.attributes);if("container"==n)o=i.createContainerElement(t.name,r);else if("attribute"==n){const e={priority:t.priority||da.DEFAULT_PRIORITY};o=i.createAttributeElement(t.name,r,e)}else o=i.createUIElement(t.name,r);if(t.styles){const e=Object.keys(t.styles);for(const n of e)i.setStyle(n,t.styles[n],o)}if(t.classes){const e=t.classes;if("string"==typeof e)i.addClass(e,o);else for(const t of e)i.addClass(t,o)}return o}(t,o,e)}function Ul(t){return t.model.values?(e,n,o)=>{const i=t.view[e];return i?i(e,n,o):null}:t.view}function $l(t){return"string"==typeof t?e=>({key:t,value:e}):"object"==typeof t?t.value?()=>t:e=>({key:t.key,value:e}):t}function Zl(t,e,n){const o="function"==typeof t?t(e,n):t;return o?(o.priority||(o.priority=10),o.id||(o.id=e.markerName),o):null}function Jl(t){const e=function(t){return(e,n)=>{if(!e.is("element",t.name))return!1;if("attribute"==n.type){if(t.attributes.includes(n.attributeKey))return!0}else if(t.children)return!0;return!1}}(t);return(t,n)=>{const o=[];n.reconvertedElements||(n.reconvertedElements=new Set);for(const t of n.changes){const i="attribute"==t.type?t.range.start.nodeAfter:t.position.parent;if(i&&e(i,t)){if(!n.reconvertedElements.has(i)){n.reconvertedElements.add(i);const t=hl._createBefore(i);let e=o.length;for(let n=o.length-1;n>=0;n--){const i=o[n],r=("attribute"==i.type?i.range.start:i.position).compareWith(t);if("before"==r||"remove"==i.type&&"same"==r)break;e=n}o.splice(e,0,{type:"remove",name:i.name,position:t,length:1},{type:"reinsert",name:i.name,position:t,length:1})}}else o.push(t)}n.changes=o}}function Yl(t){return(e,n,o={})=>{const i=["insert"];for(const n of t.attributes)e.hasAttribute(n)&&i.push(`attribute:${n}`);return!!i.every((t=>n.test(e,t)))&&(o.preflight||i.forEach((t=>n.consume(e,t))),!0)}}function Ql(t,e,n,o){for(const i of e)Xl(t.root,i,n,o)||n.convertItem(i)}function Xl(t,e,n,o){const{writer:i,mapper:r}=n;if(!o.reconversion)return!1;const s=r.toViewElement(e);return!(!s||s.root==t)&&(!!n.canReuseView(s)&&(i.move(i.createRangeOn(s),r.toViewPosition(hl._createBefore(e))),!0))}function td(t,e,{preflight:n}={}){return n?e.test(t,"insert"):e.consume(t,"insert")}function ed(t){const{schema:e,document:n}=t.model;for(const o of n.getRoots())if(o.isEmpty&&!e.checkChild(o,"$text")&&e.checkChild(o,"paragraph"))return t.insertElement("paragraph",o),!0;return!1}function nd(t,e,n){const o=n.createContext(t);return!!n.checkChild(o,"paragraph")&&!!n.checkChild(o.push("paragraph"),e)}function od(t,e){const n=e.createElement("paragraph");return e.insert(n,t),e.createPositionAt(n,0)}class id extends Vl{elementToElement(t){return this.add(rd(t))}elementToAttribute(t){return this.add(function(t){t=el(t),cd(t);const e=ld(t,!1),n=sd(t.view),o=n?`element:${n}`:"element";return n=>{n.on(o,e,{priority:t.converterPriority||"low"})}}(t))}attributeToAttribute(t){return this.add(function(t){t=el(t);let e=null;("string"==typeof t.view||t.view.key)&&(e=function(t){"string"==typeof t.view&&(t.view={key:t.view});const e=t.view.key,n=void 0===t.view.value?/[\s\S]*/:t.view.value;let o;if("class"==e||"style"==e){const t="class"==e?"classes":"styles";o={[t]:n}}else o={attributes:{[e]:n}};t.view.name&&(o.name=t.view.name);return t.view=o,e}(t));cd(t,e);const n=ld(t,!0);return e=>{e.on("element",n,{priority:t.converterPriority||"low"})}}(t))}elementToMarker(t){return this.add(function(t){const e=function(t){return(e,n)=>{const o="string"==typeof t?t:t(e,n);return n.writer.createElement("$marker",{"data-name":o})}}(t.model);return rd({...t,model:e})}(t))}dataToMarker(t){return this.add(function(t){t=el(t),t.model||(t.model=e=>e?t.view+":"+e:t.view);const e={view:t.view,model:t.model},n=ad(dd(e,"start")),o=ad(dd(e,"end"));return i=>{i.on(`element:${t.view}-start`,n,{priority:t.converterPriority||"normal"}),i.on(`element:${t.view}-end`,o,{priority:t.converterPriority||"normal"});const r=C.low,s=C.highest,a=C.get(t.converterPriority)/s;i.on("element",function(t){return(e,n,o)=>{const i=`data-${t.view}`;function r(e,i){for(const r of i){const i=t.model(r,o),s=o.writer.createElement("$marker",{"data-name":i});o.writer.insert(s,e),n.modelCursor.isEqual(e)?n.modelCursor=n.modelCursor.getShiftedBy(1):n.modelCursor=n.modelCursor._getTransformedByInsertion(e,1),n.modelRange=n.modelRange._getTransformedByInsertion(e,1)[0]}}(o.consumable.test(n.viewItem,{attributes:i+"-end-after"})||o.consumable.test(n.viewItem,{attributes:i+"-start-after"})||o.consumable.test(n.viewItem,{attributes:i+"-end-before"})||o.consumable.test(n.viewItem,{attributes:i+"-start-before"}))&&(n.modelRange||Object.assign(n,o.convertChildren(n.viewItem,n.modelCursor)),o.consumable.consume(n.viewItem,{attributes:i+"-end-after"})&&r(n.modelRange.end,n.viewItem.getAttribute(i+"-end-after").split(",")),o.consumable.consume(n.viewItem,{attributes:i+"-start-after"})&&r(n.modelRange.end,n.viewItem.getAttribute(i+"-start-after").split(",")),o.consumable.consume(n.viewItem,{attributes:i+"-end-before"})&&r(n.modelRange.start,n.viewItem.getAttribute(i+"-end-before").split(",")),o.consumable.consume(n.viewItem,{attributes:i+"-start-before"})&&r(n.modelRange.start,n.viewItem.getAttribute(i+"-start-before").split(",")))}}(e),{priority:r+a})}}(t))}}function rd(t){const e=ad(t=el(t)),n=sd(t.view),o=n?`element:${n}`:"element";return n=>{n.on(o,e,{priority:t.converterPriority||"normal"})}}function sd(t){return"string"==typeof t?t:"object"==typeof t&&"string"==typeof t.name?t.name:null}function ad(t){const e=new ls(t.view);return(n,o,i)=>{const r=e.match(o.viewItem);if(!r)return;const s=r.match;if(s.name=!0,!i.consumable.test(o.viewItem,s))return;const a=function(t,e,n){return t instanceof Function?t(e,n):n.writer.createElement(t)}(t.model,o.viewItem,i);a&&i.safeInsert(a,o.modelCursor)&&(i.consumable.consume(o.viewItem,s),i.convertChildren(o.viewItem,a),i.updateConversionResult(a,o))}}function cd(t,e=null){const n=null===e||(t=>t.getAttribute(e)),o="object"!=typeof t.model?t.model:t.model.key,i="object"!=typeof t.model||void 0===t.model.value?n:t.model.value;t.model={key:o,value:i}}function ld(t,e){const n=new ls(t.view);return(o,i,r)=>{if(!i.modelRange&&e)return;const s=n.match(i.viewItem);if(!s)return;if(!function(t,e){const n="function"==typeof t?t(e):t;if("object"==typeof n&&!sd(n))return!1;return!n.classes&&!n.attributes&&!n.styles}(t.view,i.viewItem)?delete s.match.name:s.match.name=!0,!r.consumable.test(i.viewItem,s.match))return;const a=t.model.key,c="function"==typeof t.model.value?t.model.value(i.viewItem,r):t.model.value;if(null===c)return;i.modelRange||Object.assign(i,r.convertChildren(i.viewItem,i.modelCursor));const l=function(t,e,n,o){let i=!1;for(const r of Array.from(t.getItems({shallow:n})))o.schema.checkAttribute(r,e.key)&&(i=!0,r.hasAttribute(e.key)||o.writer.setAttribute(e.key,e.value,r));return i}(i.modelRange,{key:a,value:c},e,r);l&&(r.consumable.test(i.viewItem,{name:!0})&&(s.match.name=!0),r.consumable.consume(i.viewItem,s.match))}}function dd(t,e){return{view:`${t.view}-${e}`,model:(e,n)=>{const o=e.getAttribute("name"),i=t.model(o,n);return n.writer.createElement("$marker",{"data-name":i})}}}function hd(t){t.document.registerPostFixer((e=>function(t,e){const n=e.document.selection,o=e.schema,i=[];let r=!1;for(const t of n.getRanges()){const e=ud(t,o);e&&!e.isEqual(t)?(i.push(e),r=!0):i.push(t)}r&&t.setSelection(function(t){const e=[...t],n=new Set;let o=1;for(;o!n.has(e)))}(i),{backward:n.isBackward});return!1}(e,t)))}function ud(t,e){return t.isCollapsed?function(t,e){const n=t.start,o=e.getNearestSelectionRange(n);if(!o){const t=n.getAncestors().reverse().find((t=>e.isObject(t)));return t?kl._createOn(t):null}if(!o.isCollapsed)return o;const i=o.start;if(n.isEqual(i))return null;return new kl(i)}(t,e):function(t,e){const{start:n,end:o}=t,i=e.checkChild(n,"$text"),r=e.checkChild(o,"$text"),s=e.getLimitElement(n),a=e.getLimitElement(o);if(s===a){if(i&&r)return null;if(function(t,e,n){const o=t.nodeAfter&&!n.isLimit(t.nodeAfter)||n.checkChild(t,"$text"),i=e.nodeBefore&&!n.isLimit(e.nodeBefore)||n.checkChild(e,"$text");return o||i}(n,o,e)){const t=n.nodeAfter&&e.isSelectable(n.nodeAfter)?null:e.getNearestSelectionRange(n,"forward"),i=o.nodeBefore&&e.isSelectable(o.nodeBefore)?null:e.getNearestSelectionRange(o,"backward"),r=t?t.start:n,s=i?i.end:o;return new kl(r,s)}}const c=s&&!s.is("rootElement"),l=a&&!a.is("rootElement");if(c||l){const t=n.nodeAfter&&o.nodeBefore&&n.nodeAfter.parent===o.nodeBefore.parent,i=c&&(!t||!gd(n.nodeAfter,e)),r=l&&(!t||!gd(o.nodeBefore,e));let d=n,h=o;return i&&(d=hl._createBefore(md(s,e))),r&&(h=hl._createAfter(md(a,e))),new kl(d,h)}return null}(t,e)}function md(t,e){let n=t,o=n;for(;e.isLimit(o)&&o.parent;)n=o,o=o.parent;return n}function gd(t,e){return t&&e.isSelectable(t)}class pd extends(J()){model;view;mapper;downcastDispatcher;constructor(t,e){super(),this.model=t,this.view=new nl(e),this.mapper=new bl,this.downcastDispatcher=new Al({mapper:this.mapper,schema:t.schema});const n=this.model.document,o=n.selection,r=this.model.markers;var s,a,c;this.listenTo(this.model,"_beforeChanges",(()=>{this.view._disableRendering(!0)}),{priority:"highest"}),this.listenTo(this.model,"_afterChanges",(()=>{this.view._disableRendering(!1)}),{priority:"lowest"}),this.listenTo(n,"change",(()=>{this.view.change((t=>{this.downcastDispatcher.convertChanges(n.differ,r,t),this.downcastDispatcher.convertSelection(o,r,t)}))}),{priority:"low"}),this.listenTo(this.view.document,"selectionChange",function(t,e){return(n,o)=>{const i=o.newSelection,r=[];for(const t of i.getRanges())r.push(e.toModelRange(t));const s=t.createSelection(r,{backward:i.isBackward});s.isEqual(t.document.selection)||t.change((t=>{t.setSelection(s)}))}}(this.model,this.mapper)),this.listenTo(this.view.document,"beforeinput",(s=this.mapper,a=this.model.schema,c=this.view,(t,e)=>{if(!c.document.isComposing||i.isAndroid)for(let t=0;t{if(!n.consumable.consume(e.item,t.name))return;const o=n.writer,i=n.mapper.toViewPosition(e.range.start),r=o.createText(e.item.data);o.insert(i,r)}),{priority:"lowest"}),this.downcastDispatcher.on("insert",((t,e,n)=>{n.convertAttributes(e.item),e.reconversion||!e.item.is("element")||e.item.isEmpty||n.convertChildren(e.item)}),{priority:"lowest"}),this.downcastDispatcher.on("remove",((t,e,n)=>{const o=n.mapper.toViewPosition(e.position),i=e.position.getShiftedBy(e.length),r=n.mapper.toViewPosition(i,{isPhantom:!0}),s=n.writer.createRange(o,r),a=n.writer.remove(s.getTrimmed());for(const t of n.writer.createRangeIn(a).getItems())n.mapper.unbindViewElement(t,{defer:!0})}),{priority:"low"}),this.downcastDispatcher.on("cleanSelection",((t,e,n)=>{const o=n.writer,i=o.document.selection;for(const t of i.getRanges())t.isCollapsed&&t.end.parent.isAttached()&&n.writer.mergeAttributes(t.start);o.setSelection(null)})),this.downcastDispatcher.on("selection",((t,e,n)=>{const o=e.selection;if(o.isCollapsed)return;if(!n.consumable.consume(o,"selection"))return;const i=[];for(const t of o.getRanges())i.push(n.mapper.toViewRange(t));n.writer.setSelection(i,{backward:o.isBackward})}),{priority:"low"}),this.downcastDispatcher.on("selection",((t,e,n)=>{const o=e.selection;if(!o.isCollapsed)return;if(!n.consumable.consume(o,"selection"))return;const i=n.writer,r=o.getFirstPosition(),s=n.mapper.toViewPosition(r),a=i.breakAttributes(s);i.setSelection(a)}),{priority:"low"}),this.view.document.roots.bindTo(this.model.document.roots).using((t=>{if("$graveyard"==t.rootName)return null;const e=new Zs(this.view.document,t.name);return e.rootName=t.rootName,this.mapper.bindElements(t,e),e}))}destroy(){this.view.destroy(),this.stopListening()}reconvertMarker(t){const e="string"==typeof t?t:t.name,n=this.model.markers.get(e);if(!n)throw new x("editingcontroller-reconvertmarker-marker-not-exist",this,{markerName:e});this.model.change((()=>{this.model.markers._refresh(n)}))}reconvertItem(t){this.model.change((()=>{this.model.document.differ._refreshItem(t)}))}}class fd{_consumables=new Map;add(t,e){let n;t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!0):(this._consumables.has(t)?n=this._consumables.get(t):(n=new bd(t),this._consumables.set(t,n)),n.add(e))}test(t,e){const n=this._consumables.get(t);return void 0===n?null:t.is("$text")||t.is("documentFragment")?n:n.test(e)}consume(t,e){return!!this.test(t,e)&&(t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!1):this._consumables.get(t).consume(e),!0)}revert(t,e){const n=this._consumables.get(t);void 0!==n&&(t.is("$text")||t.is("documentFragment")?this._consumables.set(t,!0):n.revert(e))}static consumablesFromElement(t){const e={element:t,name:!0,attributes:[],classes:[],styles:[]},n=t.getAttributeKeys();for(const t of n)"style"!=t&&"class"!=t&&e.attributes.push(t);const o=t.getClassNames();for(const t of o)e.classes.push(t);const i=t.getStyleNames();for(const t of i)e.styles.push(t);return e}static createFrom(t,e){if(e||(e=new fd),t.is("$text"))return e.add(t),e;t.is("element")&&e.add(t,fd.consumablesFromElement(t)),t.is("documentFragment")&&e.add(t);for(const n of t.getChildren())e=fd.createFrom(n,e);return e}}const kd=["attributes","classes","styles"];class bd{element;_canConsumeName;_consumables;constructor(t){this.element=t,this._canConsumeName=null,this._consumables={attributes:new Map,styles:new Map,classes:new Map}}add(t){t.name&&(this._canConsumeName=!0);for(const e of kd)e in t&&this._add(e,t[e])}test(t){if(t.name&&!this._canConsumeName)return this._canConsumeName;for(const e of kd)if(e in t){const n=this._test(e,t[e]);if(!0!==n)return n}return!0}consume(t){t.name&&(this._canConsumeName=!1);for(const e of kd)e in t&&this._consume(e,t[e])}revert(t){t.name&&(this._canConsumeName=!0);for(const e of kd)e in t&&this._revert(e,t[e])}_add(t,e){const n=Di(e),o=this._consumables[t];for(const e of n){if("attributes"===t&&("class"===e||"style"===e))throw new x("viewconsumable-invalid-attribute",this);if(o.set(e,!0),"styles"===t)for(const t of this.element.document.stylesProcessor.getRelatedStyles(e))o.set(t,!0)}}_test(t,e){const n=Di(e),o=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){const t=o.get(e);if(void 0===t)return null;if(!t)return!1}else{const t="class"==e?"classes":"styles",n=this._test(t,[...this._consumables[t].keys()]);if(!0!==n)return n}return!0}_consume(t,e){const n=Di(e),o=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){if(o.set(e,!1),"styles"==t)for(const t of this.element.document.stylesProcessor.getRelatedStyles(e))o.set(t,!1)}else{const t="class"==e?"classes":"styles";this._consume(t,[...this._consumables[t].keys()])}}_revert(t,e){const n=Di(e),o=this._consumables[t];for(const e of n)if("attributes"!==t||"class"!==e&&"style"!==e){!1===o.get(e)&&o.set(e,!0)}else{const t="class"==e?"classes":"styles";this._revert(t,[...this._consumables[t].keys()])}}}class wd extends(J()){_sourceDefinitions={};_attributeProperties={};_compiledDefinitions;constructor(){super(),this.decorate("checkChild"),this.decorate("checkAttribute"),this.on("checkAttribute",((t,e)=>{e[0]=new _d(e[0])}),{priority:"highest"}),this.on("checkChild",((t,e)=>{e[0]=new _d(e[0]),e[1]=this.getDefinition(e[1])}),{priority:"highest"})}register(t,e){if(this._sourceDefinitions[t])throw new x("schema-cannot-register-item-twice",this,{itemName:t});this._sourceDefinitions[t]=[Object.assign({},e)],this._clearCache()}extend(t,e){if(!this._sourceDefinitions[t])throw new x("schema-cannot-extend-missing-item",this,{itemName:t});this._sourceDefinitions[t].push(Object.assign({},e)),this._clearCache()}getDefinitions(){return this._compiledDefinitions||this._compile(),this._compiledDefinitions}getDefinition(t){let e;return e="string"==typeof t?t:"is"in t&&(t.is("$text")||t.is("$textProxy"))?"$text":t.name,this.getDefinitions()[e]}isRegistered(t){return!!this.getDefinition(t)}isBlock(t){const e=this.getDefinition(t);return!(!e||!e.isBlock)}isLimit(t){const e=this.getDefinition(t);return!!e&&!(!e.isLimit&&!e.isObject)}isObject(t){const e=this.getDefinition(t);return!!e&&!!(e.isObject||e.isLimit&&e.isSelectable&&e.isContent)}isInline(t){const e=this.getDefinition(t);return!(!e||!e.isInline)}isSelectable(t){const e=this.getDefinition(t);return!!e&&!(!e.isSelectable&&!e.isObject)}isContent(t){const e=this.getDefinition(t);return!!e&&!(!e.isContent&&!e.isObject)}checkChild(t,e){return!!e&&this._checkContextMatch(e,t)}checkAttribute(t,e){const n=this.getDefinition(t.last);return!!n&&n.allowAttributes.includes(e)}checkMerge(t,e){if(t instanceof hl){const e=t.nodeBefore,n=t.nodeAfter;if(!(e instanceof cl))throw new x("schema-check-merge-no-element-before",this);if(!(n instanceof cl))throw new x("schema-check-merge-no-element-after",this);return this.checkMerge(e,n)}for(const n of e.getChildren())if(!this.checkChild(t,n))return!1;return!0}addChildCheck(t){this.on("checkChild",((e,[n,o])=>{if(!o)return;const i=t(n,o);"boolean"==typeof i&&(e.stop(),e.return=i)}),{priority:"high"})}addAttributeCheck(t){this.on("checkAttribute",((e,[n,o])=>{const i=t(n,o);"boolean"==typeof i&&(e.stop(),e.return=i)}),{priority:"high"})}setAttributeProperties(t,e){this._attributeProperties[t]=Object.assign(this.getAttributeProperties(t),e)}getAttributeProperties(t){return this._attributeProperties[t]||{}}getLimitElement(t){let e;if(t instanceof hl)e=t.parent;else{e=(t instanceof kl?[t]:Array.from(t.getRanges())).reduce(((t,e)=>{const n=e.getCommonAncestor();return t?t.getCommonAncestor(n,{includeSelf:!0}):n}),null)}for(;!this.isLimit(e)&&e.parent;)e=e.parent;return e}checkAttributeInSelection(t,e){if(t.isCollapsed){const n=[...t.getFirstPosition().getAncestors(),new sl("",t.getAttributes())];return this.checkAttribute(n,e)}{const n=t.getRanges();for(const t of n)for(const n of t)if(this.checkAttribute(n.item,e))return!0}return!1}*getValidRanges(t,e){t=function*(t){for(const e of t)yield*e.getMinimalFlatRanges()}(t);for(const n of t)yield*this._getValidRangesForRange(n,e)}getNearestSelectionRange(t,e="both"){if("$graveyard"==t.root.rootName)return null;if(this.checkChild(t,"$text"))return new kl(t);let n,o;const i=t.getAncestors().reverse().find((t=>this.isLimit(t)))||t.root;"both"!=e&&"backward"!=e||(n=new ll({boundaries:kl._createIn(i),startPosition:t,direction:"backward"})),"both"!=e&&"forward"!=e||(o=new ll({boundaries:kl._createIn(i),startPosition:t}));for(const t of function*(t,e){let n=!1;for(;!n;){if(n=!0,t){const e=t.next();e.done||(n=!1,yield{walker:t,value:e.value})}if(e){const t=e.next();t.done||(n=!1,yield{walker:e,value:t.value})}}}(n,o)){const e=t.walker==n?"elementEnd":"elementStart",o=t.value;if(o.type==e&&this.isObject(o.item))return kl._createOn(o.item);if(this.checkChild(o.nextPosition,"$text"))return new kl(o.nextPosition)}return null}findAllowedParent(t,e){let n=t.parent;for(;n;){if(this.checkChild(n,e))return n;if(this.isLimit(n))return null;n=n.parent}return null}setAllowedAttributes(t,e,n){const o=n.model;for(const[i,r]of Object.entries(e))o.schema.checkAttribute(t,i)&&n.setAttribute(i,r,t)}removeDisallowedAttributes(t,e){for(const n of t)if(n.is("$text"))zd(this,n,e);else{const t=kl._createIn(n).getPositions();for(const n of t){zd(this,n.nodeBefore||n.parent,e)}}}getAttributesWithProperty(t,e,n){const o={};for(const[i,r]of t.getAttributes()){const t=this.getAttributeProperties(i);void 0!==t[e]&&(void 0!==n&&n!==t[e]||(o[i]=r))}return o}createContext(t){return new _d(t)}_clearCache(){this._compiledDefinitions=null}_compile(){const t={},e=this._sourceDefinitions,n=Object.keys(e);for(const o of n)t[o]=Ad(e[o],o);for(const e of n)Cd(t,e);for(const e of n)vd(t,e);for(const e of n)yd(t,e);for(const e of n)xd(t,e),Ed(t,e);for(const e of n)Dd(t,e),Bd(t,e),Td(t,e);this._compiledDefinitions=t}_checkContextMatch(t,e,n=e.length-1){const o=e.getItem(n);if(t.allowIn.includes(o.name)){if(0==n)return!0;{const t=this.getDefinition(o);return this._checkContextMatch(t,e,n-1)}}return!1}*_getValidRangesForRange(t,e){let n=t.start,o=t.start;for(const i of t.getItems({shallow:!0}))i.is("element")&&(yield*this._getValidRangesForRange(kl._createIn(i),e)),this.checkAttribute(i,e)||(n.isEqual(o)||(yield new kl(n,o)),n=hl._createAfter(i)),o=hl._createAfter(i);n.isEqual(o)||(yield new kl(n,o))}findOptimalInsertionRange(t,e){const n=t.getSelectedElement();if(n&&this.isObject(n)&&!this.isInline(n))return"before"==e||"after"==e?new kl(hl._createAt(n,e)):kl._createOn(n);const o=Xi(t.getSelectedBlocks());if(!o)return new kl(t.focus);if(o.isEmpty)return new kl(hl._createAt(o,0));const i=hl._createAfter(o);return t.focus.isTouching(i)?new kl(i):new kl(hl._createBefore(o))}}class _d{_items;constructor(t){if(t instanceof _d)return t;let e;e="string"==typeof t?[t]:Array.isArray(t)?t:t.getAncestors({includeSelf:!0}),this._items=e.map(Pd)}get length(){return this._items.length}get last(){return this._items[this._items.length-1]}[Symbol.iterator](){return this._items[Symbol.iterator]()}push(t){const e=new _d([t]);return e._items=[...this._items,...e._items],e}getItem(t){return this._items[t]}*getNames(){yield*this._items.map((t=>t.name))}endsWith(t){return Array.from(this.getNames()).join(" ").endsWith(t)}startsWith(t){return Array.from(this.getNames()).join(" ").startsWith(t)}}function Ad(t,e){const n={name:e,allowIn:[],allowContentOf:[],allowWhere:[],allowAttributes:[],allowAttributesOf:[],allowChildren:[],inheritTypesFrom:[]};return function(t,e){for(const n of t){const t=Object.keys(n).filter((t=>t.startsWith("is")));for(const o of t)e[o]=!!n[o]}}(t,n),Sd(t,n,"allowIn"),Sd(t,n,"allowContentOf"),Sd(t,n,"allowWhere"),Sd(t,n,"allowAttributes"),Sd(t,n,"allowAttributesOf"),Sd(t,n,"allowChildren"),Sd(t,n,"inheritTypesFrom"),function(t,e){for(const n of t){const t=n.inheritAllFrom;t&&(e.allowContentOf.push(t),e.allowWhere.push(t),e.allowAttributesOf.push(t),e.inheritTypesFrom.push(t))}}(t,n),n}function Cd(t,e){const n=t[e];for(const o of n.allowChildren){const n=t[o];n&&n.allowIn.push(e)}n.allowChildren.length=0}function vd(t,e){for(const n of t[e].allowContentOf)if(t[n]){Id(t,n).forEach((t=>{t.allowIn.push(e)}))}delete t[e].allowContentOf}function yd(t,e){for(const n of t[e].allowWhere){const o=t[n];if(o){const n=o.allowIn;t[e].allowIn.push(...n)}}delete t[e].allowWhere}function xd(t,e){for(const n of t[e].allowAttributesOf){const o=t[n];if(o){const n=o.allowAttributes;t[e].allowAttributes.push(...n)}}delete t[e].allowAttributesOf}function Ed(t,e){const n=t[e];for(const e of n.inheritTypesFrom){const o=t[e];if(o){const t=Object.keys(o).filter((t=>t.startsWith("is")));for(const e of t)e in n||(n[e]=o[e])}}delete n.inheritTypesFrom}function Dd(t,e){const n=t[e],o=n.allowIn.filter((e=>t[e]));n.allowIn=Array.from(new Set(o))}function Bd(t,e){const n=t[e];for(const o of n.allowIn){t[o].allowChildren.push(e)}}function Td(t,e){const n=t[e];n.allowAttributes=Array.from(new Set(n.allowAttributes))}function Sd(t,e,n){for(const o of t){const t=o[n];"string"==typeof t?e[n].push(t):Array.isArray(t)&&e[n].push(...t)}}function Id(t,e){const n=t[e];return(o=t,Object.keys(o).map((t=>o[t]))).filter((t=>t.allowIn.includes(n.name)));var o}function Pd(t){return"string"==typeof t||t.is("documentFragment")?{name:"string"==typeof t?t:"$documentFragment",*getAttributeKeys(){},getAttribute(){}}:{name:t.is("element")?t.name:"$text",*getAttributeKeys(){yield*t.getAttributeKeys()},getAttribute:e=>t.getAttribute(e)}}function zd(t,e,n){for(const o of e.getAttributeKeys())t.checkAttribute(e,o)||n.removeAttribute(o,e)}class Rd extends(L()){conversionApi;_splitParts=new Map;_cursorParents=new Map;_modelCursor=null;_emptyElementsToKeep=new Set;constructor(t){super(),this.conversionApi={...t,consumable:null,writer:null,store:null,convertItem:(t,e)=>this._convertItem(t,e),convertChildren:(t,e)=>this._convertChildren(t,e),safeInsert:(t,e)=>this._safeInsert(t,e),updateConversionResult:(t,e)=>this._updateConversionResult(t,e),splitToAllowedParent:(t,e)=>this._splitToAllowedParent(t,e),getSplitParts:t=>this._getSplitParts(t),keepEmptyElement:t=>this._keepEmptyElement(t)}}convert(t,e,n=["$root"]){this.fire("viewCleanup",t),this._modelCursor=function(t,e){let n;for(const o of new _d(t)){const t={};for(const e of o.getAttributeKeys())t[e]=o.getAttribute(e);const i=e.createElement(o.name,t);n&&e.insert(i,n),n=hl._createAt(i,0)}return n}(n,e),this.conversionApi.writer=e,this.conversionApi.consumable=fd.createFrom(t),this.conversionApi.store={};const{modelRange:o}=this._convertItem(t,this._modelCursor),i=e.createDocumentFragment();if(o){this._removeEmptyElements();for(const t of Array.from(this._modelCursor.parent.getChildren()))e.append(t,i);i.markers=function(t,e){const n=new Set,o=new Map,i=kl._createIn(t).getItems();for(const t of i)t.is("element","$marker")&&n.add(t);for(const t of n){const n=t.getAttribute("data-name"),i=e.createPositionBefore(t);o.has(n)?o.get(n).end=i.clone():o.set(n,new kl(i.clone())),e.remove(t)}return o}(i,e)}return this._modelCursor=null,this._splitParts.clear(),this._cursorParents.clear(),this._emptyElementsToKeep.clear(),this.conversionApi.writer=null,this.conversionApi.store=null,i}_convertItem(t,e){const n={viewItem:t,modelCursor:e,modelRange:null};if(t.is("element")?this.fire(`element:${t.name}`,n,this.conversionApi):t.is("$text")?this.fire("text",n,this.conversionApi):this.fire("documentFragment",n,this.conversionApi),n.modelRange&&!(n.modelRange instanceof kl))throw new x("view-conversion-dispatcher-incorrect-result",this);return{modelRange:n.modelRange,modelCursor:n.modelCursor}}_convertChildren(t,e){let n=e.is("position")?e:hl._createAt(e,0);const o=new kl(n);for(const e of Array.from(t.getChildren())){const t=this._convertItem(e,n);t.modelRange instanceof kl&&(o.end=t.modelRange.end,n=t.modelCursor)}return{modelRange:o,modelCursor:n}}_safeInsert(t,e){const n=this._splitToAllowedParent(t,e);return!!n&&(this.conversionApi.writer.insert(t,n.position),!0)}_updateConversionResult(t,e){const n=this._getSplitParts(t),o=this.conversionApi.writer;e.modelRange||(e.modelRange=o.createRange(o.createPositionBefore(t),o.createPositionAfter(n[n.length-1])));const i=this._cursorParents.get(t);e.modelCursor=i?o.createPositionAt(i,0):e.modelRange.end}_splitToAllowedParent(t,e){const{schema:n,writer:o}=this.conversionApi;let i=n.findAllowedParent(e,t);if(i){if(i===e.parent)return{position:e};this._modelCursor.parent.getAncestors().includes(i)&&(i=null)}if(!i)return nd(e,t,n)?{position:od(e,o)}:null;const r=this.conversionApi.writer.split(e,i),s=[];for(const t of r.range.getWalker())if("elementEnd"==t.type)s.push(t.item);else{const e=s.pop(),n=t.item;this._registerSplitPair(e,n)}const a=r.range.end.parent;return this._cursorParents.set(t,a),{position:r.position,cursorParent:a}}_registerSplitPair(t,e){this._splitParts.has(t)||this._splitParts.set(t,[t]);const n=this._splitParts.get(t);this._splitParts.set(e,n),n.push(e)}_getSplitParts(t){let e;return e=this._splitParts.has(t)?this._splitParts.get(t):[t],e}_keepEmptyElement(t){this._emptyElementsToKeep.add(t)}_removeEmptyElements(){let t=!1;for(const e of this._splitParts.keys())e.isEmpty&&!this._emptyElementsToKeep.has(e)&&(this.conversionApi.writer.remove(e),this._splitParts.delete(e),t=!0);t&&this._removeEmptyElements()}}class Ld{getHtml(t){const e=Oo.document.implementation.createHTMLDocument("").createElement("div");return e.appendChild(t),e.innerHTML}}class Fd{domParser;domConverter;htmlWriter;skipComments=!0;constructor(t){this.domParser=new DOMParser,this.domConverter=new tc(t,{renderingMode:"data"}),this.htmlWriter=new Ld}toData(t){const e=this.domConverter.viewToDom(t);return this.htmlWriter.getHtml(e)}toView(t){const e=this._toDom(t);return this.domConverter.domToView(e,{skipComments:this.skipComments})}registerRawContentMatcher(t){this.domConverter.registerRawContentMatcher(t)}useFillerType(t){this.domConverter.blockFillerMode="marked"==t?"markedNbsp":"nbsp"}_toDom(t){t.match(/<(?:html|body|head|meta)(?:\s[^>]*)?>/i)||(t=`${t}`);const e=this.domParser.parseFromString(t,"text/html"),n=e.createDocumentFragment(),o=e.body.childNodes;for(;o.length>0;)n.appendChild(o[0]);return n}}class Md extends(L()){model;mapper;downcastDispatcher;upcastDispatcher;viewDocument;stylesProcessor;htmlProcessor;processor;_viewWriter;constructor(t,e){super(),this.model=t,this.mapper=new bl,this.downcastDispatcher=new Al({mapper:this.mapper,schema:t.schema}),this.downcastDispatcher.on("insert:$text",((t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=n.writer,i=n.mapper.toViewPosition(e.range.start),r=o.createText(e.item.data);o.insert(i,r)}),{priority:"lowest"}),this.downcastDispatcher.on("insert",((t,e,n)=>{n.convertAttributes(e.item),e.reconversion||!e.item.is("element")||e.item.isEmpty||n.convertChildren(e.item)}),{priority:"lowest"}),this.upcastDispatcher=new Rd({schema:t.schema}),this.viewDocument=new la(e),this.stylesProcessor=e,this.htmlProcessor=new Fd(this.viewDocument),this.processor=this.htmlProcessor,this._viewWriter=new Aa(this.viewDocument),this.upcastDispatcher.on("text",((t,e,{schema:n,consumable:o,writer:i})=>{let r=e.modelCursor;if(!o.test(e.viewItem))return;if(!n.checkChild(r,"$text")){if(!nd(r,"$text",n))return;if(0==e.viewItem.data.trim().length)return;const t=r.nodeBefore;r=od(r,i),t&&t.is("element","$marker")&&(i.move(i.createRangeOn(t),r),r=i.createPositionAfter(t))}o.consume(e.viewItem);const s=i.createText(e.viewItem.data);i.insert(s,r),e.modelRange=i.createRange(r,r.getShiftedBy(s.offsetSize)),e.modelCursor=e.modelRange.end}),{priority:"lowest"}),this.upcastDispatcher.on("element",((t,e,n)=>{if(!e.modelRange&&n.consumable.consume(e.viewItem,{name:!0})){const{modelRange:t,modelCursor:o}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=t,e.modelCursor=o}}),{priority:"lowest"}),this.upcastDispatcher.on("documentFragment",((t,e,n)=>{if(!e.modelRange&&n.consumable.consume(e.viewItem,{name:!0})){const{modelRange:t,modelCursor:o}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=t,e.modelCursor=o}}),{priority:"lowest"}),J().prototype.decorate.call(this,"init"),J().prototype.decorate.call(this,"set"),J().prototype.decorate.call(this,"get"),J().prototype.decorate.call(this,"toView"),J().prototype.decorate.call(this,"toModel"),this.on("init",(()=>{this.fire("ready")}),{priority:"lowest"}),this.on("ready",(()=>{this.model.enqueueChange({isUndoable:!1},ed)}),{priority:"lowest"})}get(t={}){const{rootName:e="main",trim:n="empty"}=t;if(!this._checkIfRootsExists([e]))throw new x("datacontroller-get-non-existent-root",this);const o=this.model.document.getRoot(e);return o.isAttached()||E("datacontroller-get-detached-root",this),"empty"!==n||this.model.hasContent(o,{ignoreWhitespaces:!0})?this.stringify(o,t):""}stringify(t,e={}){const n=this.toView(t,e);return this.processor.toData(n)}toView(t,e={}){const n=this.viewDocument,o=this._viewWriter;this.mapper.clearBindings();const i=kl._createIn(t),r=new _a(n);this.mapper.bindElements(t,r);const s=t.is("documentFragment")?t.markers:function(t){const e=[],n=t.root.document;if(!n)return new Map;const o=kl._createIn(t);for(const t of n.model.markers){const n=t.getRange(),i=n.isCollapsed,r=n.start.isEqual(o.start)||n.end.isEqual(o.end);if(i&&r)e.push([t.name,n]);else{const i=o.getIntersection(n);i&&e.push([t.name,i])}}return e.sort((([t,e],[n,o])=>{if("after"!==e.end.compareWith(o.start))return 1;if("before"!==e.start.compareWith(o.end))return-1;switch(e.start.compareWith(o.start)){case"before":return 1;case"after":return-1;default:switch(e.end.compareWith(o.end)){case"before":return 1;case"after":return-1;default:return n.localeCompare(t)}}})),new Map(e)}(t);return this.downcastDispatcher.convert(i,s,o,e),r}init(t){if(this.model.document.version)throw new x("datacontroller-init-document-not-empty",this);let e={};if("string"==typeof t?e.main=t:e=t,!this._checkIfRootsExists(Object.keys(e)))throw new x("datacontroller-init-non-existent-root",this);return this.model.enqueueChange({isUndoable:!1},(t=>{for(const n of Object.keys(e)){const o=this.model.document.getRoot(n);t.insert(this.parse(e[n],o),o,0)}})),Promise.resolve()}set(t,e={}){let n={};if("string"==typeof t?n.main=t:n=t,!this._checkIfRootsExists(Object.keys(n)))throw new x("datacontroller-set-non-existent-root",this);this.model.enqueueChange(e.batchType||{},(t=>{t.setSelection(null),t.removeSelectionAttribute(this.model.document.selection.getAttributeKeys());for(const e of Object.keys(n)){const o=this.model.document.getRoot(e);t.remove(t.createRangeIn(o)),t.insert(this.parse(n[e],o),o,0)}}))}parse(t,e="$root"){const n=this.processor.toView(t);return this.toModel(n,e)}toModel(t,e="$root"){return this.model.change((n=>this.upcastDispatcher.convert(t,n,e)))}addStyleProcessorRules(t){t(this.stylesProcessor)}registerRawContentMatcher(t){this.processor&&this.processor!==this.htmlProcessor&&this.processor.registerRawContentMatcher(t),this.htmlProcessor.registerRawContentMatcher(t)}destroy(){this.stopListening()}_checkIfRootsExists(t){for(const e of t)if(!this.model.document.getRoot(e))return!1;return!0}}class Vd{_helpers=new Map;_downcast;_upcast;constructor(t,e){this._downcast=Di(t),this._createConversionHelpers({name:"downcast",dispatchers:this._downcast,isDowncast:!0}),this._upcast=Di(e),this._createConversionHelpers({name:"upcast",dispatchers:this._upcast,isDowncast:!1})}addAlias(t,e){const n=this._downcast.includes(e);if(!this._upcast.includes(e)&&!n)throw new x("conversion-add-alias-dispatcher-not-registered",this);this._createConversionHelpers({name:t,dispatchers:[e],isDowncast:n})}for(t){if(!this._helpers.has(t))throw new x("conversion-for-unknown-group",this);return this._helpers.get(t)}elementToElement(t){this.for("downcast").elementToElement(t);for(const{model:e,view:n}of Od(t))this.for("upcast").elementToElement({model:e,view:n,converterPriority:t.converterPriority})}attributeToElement(t){this.for("downcast").attributeToElement(t);for(const{model:e,view:n}of Od(t))this.for("upcast").elementToAttribute({view:n,model:e,converterPriority:t.converterPriority})}attributeToAttribute(t){this.for("downcast").attributeToAttribute(t);for(const{model:e,view:n}of Od(t))this.for("upcast").attributeToAttribute({view:n,model:e})}_createConversionHelpers({name:t,dispatchers:e,isDowncast:n}){if(this._helpers.has(t))throw new x("conversion-group-exists",this);const o=n?new Ol(e):new id(e);this._helpers.set(t,o)}}function*Od(t){if(t.model.values)for(const e of t.model.values){const n={key:t.model.key,value:e},o=t.view[e],i=t.upcastAlso?t.upcastAlso[e]:void 0;yield*Nd(n,o,i)}else yield*Nd(t.model,t.view,t.upcastAlso)}function*Nd(t,e,n){if(yield{model:t,view:e},n)for(const e of Di(n))yield{model:t,view:e}}class Hd{baseVersion;isDocumentOperation;batch;constructor(t){this.baseVersion=t,this.isDocumentOperation=null!==this.baseVersion,this.batch=null}_validate(){}toJSON(){const t=Object.assign({},this);return t.__className=this.constructor.className,delete t.batch,delete t.isDocumentOperation,t}static get className(){return"Operation"}static fromJSON(t,e){return new this(t.baseVersion)}}function qd(t,e){const n=Gd(e),o=n.reduce(((t,e)=>t+e.offsetSize),0),i=t.parent;Ud(t);const r=t.index;return i._insertChild(r,n),Kd(i,r+n.length),Kd(i,r),new kl(t,t.getShiftedBy(o))}function jd(t){if(!t.isFlat)throw new x("operation-utils-remove-range-not-flat",this);const e=t.start.parent;Ud(t.start),Ud(t.end);const n=e._removeChildren(t.start.index,t.end.index-t.start.index);return Kd(e,t.start.index),n}function Wd(t,e){if(!t.isFlat)throw new x("operation-utils-move-range-not-flat",this);const n=jd(t);return qd(e=e._getTransformedByDeletion(t.start,t.end.offset-t.start.offset),n)}function Gd(t){const e=[];!function t(n){if("string"==typeof n)e.push(new sl(n));else if(n instanceof al)e.push(new sl(n.data,n.getAttributes()));else if(n instanceof il)e.push(n);else if(rt(n))for(const e of n)t(e);else{}}(t);for(let t=1;tt.maxOffset)throw new x("move-operation-nodes-do-not-exist",this);if(t===e&&n=n&&this.targetPosition.path[t]t._clone(!0)))),e=new Jd(this.position,t,this.baseVersion);return e.shouldReceiveAttributes=this.shouldReceiveAttributes,e}getReversed(){const t=this.position.root.document.graveyard,e=new hl(t,[0]);return new Zd(this.position,this.nodes.maxOffset,e,this.baseVersion+1)}_validate(){const t=this.position.parent;if(!t||t.maxOffsett._clone(!0)))),qd(this.position,t)}toJSON(){const t=super.toJSON();return t.position=this.position.toJSON(),t.nodes=this.nodes.toJSON(),t}static get className(){return"InsertOperation"}static fromJSON(t,e){const n=[];for(const e of t.nodes)e.name?n.push(cl.fromJSON(e)):n.push(sl.fromJSON(e));const o=new Jd(hl.fromJSON(t.position,e),n,t.baseVersion);return o.shouldReceiveAttributes=t.shouldReceiveAttributes,o}}class Yd extends Hd{splitPosition;howMany;insertionPosition;graveyardPosition;constructor(t,e,n,o,i){super(i),this.splitPosition=t.clone(),this.splitPosition.stickiness="toNext",this.howMany=e,this.insertionPosition=n,this.graveyardPosition=o?o.clone():null,this.graveyardPosition&&(this.graveyardPosition.stickiness="toNext")}get type(){return"split"}get moveTargetPosition(){const t=this.insertionPosition.path.slice();return t.push(0),new hl(this.insertionPosition.root,t)}get movedRange(){const t=this.splitPosition.getShiftedBy(Number.POSITIVE_INFINITY);return new kl(this.splitPosition,t)}get affectedSelectable(){const t=[kl._createFromPositionAndShift(this.splitPosition,0),kl._createFromPositionAndShift(this.insertionPosition,0)];return this.graveyardPosition&&t.push(kl._createFromPositionAndShift(this.graveyardPosition,0)),t}clone(){return new Yd(this.splitPosition,this.howMany,this.insertionPosition,this.graveyardPosition,this.baseVersion)}getReversed(){const t=this.splitPosition.root.document.graveyard,e=new hl(t,[0]);return new Qd(this.moveTargetPosition,this.howMany,this.splitPosition,e,this.baseVersion+1)}_validate(){const t=this.splitPosition.parent,e=this.splitPosition.offset;if(!t||t.maxOffset0&&(t.sourcePosition.isEqual(e.sourcePosition.getShiftedBy(e.howMany))&&this._setRelation(t,e,"mergeSourceAffected"),t.targetPosition.isEqual(e.sourcePosition)&&this._setRelation(t,e,"mergeTargetWasBefore"));else if(t instanceof Xd){const n=t.newRange;if(!n)return;if(e instanceof Zd){const o=kl._createFromPositionAndShift(e.sourcePosition,e.howMany),i=o.containsPosition(n.start)||o.start.isEqual(n.start),r=o.containsPosition(n.end)||o.end.isEqual(n.end);!i&&!r||o.containsRange(n)||this._setRelation(t,e,{side:i?"left":"right",path:i?n.start.path.slice():n.end.path.slice()})}else if(e instanceof Qd){const o=n.start.isEqual(e.targetPosition),i=n.start.isEqual(e.deletionPosition),r=n.end.isEqual(e.deletionPosition),s=n.end.isEqual(e.sourcePosition);(o||i||r||s)&&this._setRelation(t,e,{wasInLeftElement:o,wasStartBeforeMergedElement:i,wasEndBeforeMergedElement:r,wasInRightElement:s})}}}getContext(t,e,n){return{aIsStrong:n,aWasUndone:this._wasUndone(t),bWasUndone:this._wasUndone(e),abRelation:this._useRelations?this._getRelation(t,e):null,baRelation:this._useRelations?this._getRelation(e,t):null,forceWeakRemove:this._forceWeakRemove}}_wasUndone(t){const e=this.originalOperations.get(t);return e.wasUndone||this._history.isUndoneOperation(e)}_getRelation(t,e){const n=this.originalOperations.get(e),o=this._history.getUndoneOperation(n);if(!o)return null;const i=this.originalOperations.get(t),r=this._relations.get(i);return r&&r.get(o)||null}_setRelation(t,e,n){const o=this.originalOperations.get(t),i=this.originalOperations.get(e);let r=this._relations.get(o);r||(r=new Map,this._relations.set(o,r)),r.set(i,n)}}function gh(t,e){for(const n of t)n.baseVersion=e++}function ph(t,e){for(let n=0;n{if(t.key===e.key&&t.range.start.hasSameParentAs(e.range.start)){const o=t.range.getDifference(e.range).map((e=>new eh(e,t.key,t.oldValue,t.newValue,0))),i=t.range.getIntersection(e.range);return i&&n.aIsStrong&&o.push(new eh(i,e.key,e.newValue,t.newValue,0)),0==o.length?[new nh(0)]:o}return[t]})),lh(eh,Jd,((t,e)=>{if(t.range.start.hasSameParentAs(e.position)&&t.range.containsPosition(e.position)){const n=t.range._getTransformedByInsertion(e.position,e.howMany,!e.shouldReceiveAttributes).map((e=>new eh(e,t.key,t.oldValue,t.newValue,t.baseVersion)));if(e.shouldReceiveAttributes){const o=fh(e,t.key,t.oldValue);o&&n.unshift(o)}return n}return t.range=t.range._getTransformedByInsertion(e.position,e.howMany,!1)[0],[t]})),lh(eh,Qd,((t,e)=>{const n=[];t.range.start.hasSameParentAs(e.deletionPosition)&&(t.range.containsPosition(e.deletionPosition)||t.range.start.isEqual(e.deletionPosition))&&n.push(kl._createFromPositionAndShift(e.graveyardPosition,1));const o=t.range._getTransformedByMergeOperation(e);return o.isCollapsed||n.push(o),n.map((e=>new eh(e,t.key,t.oldValue,t.newValue,t.baseVersion)))})),lh(eh,Zd,((t,e)=>{const n=function(t,e){const n=kl._createFromPositionAndShift(e.sourcePosition,e.howMany);let o=null,i=[];n.containsRange(t,!0)?o=t:t.start.hasSameParentAs(n.start)?(i=t.getDifference(n),o=t.getIntersection(n)):i=[t];const r=[];for(let t of i){t=t._getTransformedByDeletion(e.sourcePosition,e.howMany);const n=e.getMovedRangeStart(),o=t.start.hasSameParentAs(n),i=t._getTransformedByInsertion(n,e.howMany,o);r.push(...i)}o&&r.push(o._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany,!1)[0]);return r}(t.range,e);return n.map((e=>new eh(e,t.key,t.oldValue,t.newValue,t.baseVersion)))})),lh(eh,Yd,((t,e)=>{if(t.range.end.isEqual(e.insertionPosition))return e.graveyardPosition||t.range.end.offset++,[t];if(t.range.start.hasSameParentAs(e.splitPosition)&&t.range.containsPosition(e.splitPosition)){const n=t.clone();return n.range=new kl(e.moveTargetPosition.clone(),t.range.end._getCombined(e.splitPosition,e.moveTargetPosition)),t.range.end=e.splitPosition.clone(),t.range.end.stickiness="toPrevious",[t,n]}return t.range=t.range._getTransformedBySplitOperation(e),[t]})),lh(Jd,eh,((t,e)=>{const n=[t];if(t.shouldReceiveAttributes&&t.position.hasSameParentAs(e.range.start)&&e.range.containsPosition(t.position)){const o=fh(t,e.key,e.newValue);o&&n.push(o)}return n})),lh(Jd,Jd,((t,e,n)=>(t.position.isEqual(e.position)&&n.aIsStrong||(t.position=t.position._getTransformedByInsertOperation(e)),[t]))),lh(Jd,Zd,((t,e)=>(t.position=t.position._getTransformedByMoveOperation(e),[t]))),lh(Jd,Yd,((t,e)=>(t.position=t.position._getTransformedBySplitOperation(e),[t]))),lh(Jd,Qd,((t,e)=>(t.position=t.position._getTransformedByMergeOperation(e),[t]))),lh(Xd,Jd,((t,e)=>(t.oldRange&&(t.oldRange=t.oldRange._getTransformedByInsertOperation(e)[0]),t.newRange&&(t.newRange=t.newRange._getTransformedByInsertOperation(e)[0]),[t]))),lh(Xd,Xd,((t,e,n)=>{if(t.name==e.name){if(!n.aIsStrong)return[new nh(0)];t.oldRange=e.newRange?e.newRange.clone():null}return[t]})),lh(Xd,Qd,((t,e)=>(t.oldRange&&(t.oldRange=t.oldRange._getTransformedByMergeOperation(e)),t.newRange&&(t.newRange=t.newRange._getTransformedByMergeOperation(e)),[t]))),lh(Xd,Zd,((t,e,n)=>{if(t.oldRange&&(t.oldRange=kl._createFromRanges(t.oldRange._getTransformedByMoveOperation(e))),t.newRange){if(n.abRelation){const o=kl._createFromRanges(t.newRange._getTransformedByMoveOperation(e));if("left"==n.abRelation.side&&e.targetPosition.isEqual(t.newRange.start))return t.newRange.end=o.end,t.newRange.start.path=n.abRelation.path,[t];if("right"==n.abRelation.side&&e.targetPosition.isEqual(t.newRange.end))return t.newRange.start=o.start,t.newRange.end.path=n.abRelation.path,[t]}t.newRange=kl._createFromRanges(t.newRange._getTransformedByMoveOperation(e))}return[t]})),lh(Xd,Yd,((t,e,n)=>{if(t.oldRange&&(t.oldRange=t.oldRange._getTransformedBySplitOperation(e)),t.newRange){if(n.abRelation){const o=t.newRange._getTransformedBySplitOperation(e);return t.newRange.start.isEqual(e.splitPosition)&&n.abRelation.wasStartBeforeMergedElement?t.newRange.start=hl._createAt(e.insertionPosition):t.newRange.start.isEqual(e.splitPosition)&&!n.abRelation.wasInLeftElement&&(t.newRange.start=hl._createAt(e.moveTargetPosition)),t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasInRightElement?t.newRange.end=hl._createAt(e.moveTargetPosition):t.newRange.end.isEqual(e.splitPosition)&&n.abRelation.wasEndBeforeMergedElement?t.newRange.end=hl._createAt(e.insertionPosition):t.newRange.end=o.end,[t]}t.newRange=t.newRange._getTransformedBySplitOperation(e)}return[t]})),lh(Qd,Jd,((t,e)=>(t.sourcePosition.hasSameParentAs(e.position)&&(t.howMany+=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByInsertOperation(e),t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e),[t]))),lh(Qd,Qd,((t,e,n)=>{if(t.sourcePosition.isEqual(e.sourcePosition)&&t.targetPosition.isEqual(e.targetPosition)){if(n.bWasUndone){const n=e.graveyardPosition.path.slice();return n.push(0),t.sourcePosition=new hl(e.graveyardPosition.root,n),t.howMany=0,[t]}return[new nh(0)]}if(t.sourcePosition.isEqual(e.sourcePosition)&&!t.targetPosition.isEqual(e.targetPosition)&&!n.bWasUndone&&"splitAtSource"!=n.abRelation){const o="$graveyard"==t.targetPosition.root.rootName,i="$graveyard"==e.targetPosition.root.rootName;if(i&&!o||!(o&&!i)&&n.aIsStrong){const n=e.targetPosition._getTransformedByMergeOperation(e),o=t.targetPosition._getTransformedByMergeOperation(e);return[new Zd(n,t.howMany,o,0)]}return[new nh(0)]}return t.sourcePosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.sourcePosition=t.sourcePosition._getTransformedByMergeOperation(e),t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),t.graveyardPosition.isEqual(e.graveyardPosition)&&n.aIsStrong||(t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)),[t]})),lh(Qd,Zd,((t,e,n)=>{const o=kl._createFromPositionAndShift(e.sourcePosition,e.howMany);return"remove"==e.type&&!n.bWasUndone&&!n.forceWeakRemove&&t.deletionPosition.hasSameParentAs(e.sourcePosition)&&o.containsPosition(t.sourcePosition)?[new nh(0)]:(e.sourcePosition.getShiftedBy(e.howMany).isEqual(t.sourcePosition)?t.sourcePosition.stickiness="toNone":e.targetPosition.isEqual(t.sourcePosition)&&"mergeSourceAffected"==n.abRelation?t.sourcePosition.stickiness="toNext":e.sourcePosition.isEqual(t.targetPosition)?(t.targetPosition.stickiness="toNone",t.howMany-=e.howMany):e.targetPosition.isEqual(t.targetPosition)&&"mergeTargetWasBefore"==n.abRelation?(t.targetPosition.stickiness="toPrevious",t.howMany+=e.howMany):(t.sourcePosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.sourcePosition.hasSameParentAs(e.sourcePosition)&&(t.howMany-=e.howMany)),t.sourcePosition=t.sourcePosition._getTransformedByMoveOperation(e),t.targetPosition=t.targetPosition._getTransformedByMoveOperation(e),t.sourcePosition.stickiness="toPrevious",t.targetPosition.stickiness="toNext",t.graveyardPosition.isEqual(e.targetPosition)||(t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)),[t])})),lh(Qd,Yd,((t,e,n)=>{if(e.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedByDeletion(e.graveyardPosition,1),t.deletionPosition.isEqual(e.graveyardPosition)&&(t.howMany=e.howMany)),t.targetPosition.isEqual(e.splitPosition)){const o=0!=e.howMany,i=e.graveyardPosition&&t.deletionPosition.isEqual(e.graveyardPosition);if(o||i||"mergeTargetNotMoved"==n.abRelation)return t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e),[t]}if(t.sourcePosition.isEqual(e.splitPosition)){if("mergeSourceNotMoved"==n.abRelation)return t.howMany=0,t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t];if("mergeSameElement"==n.abRelation||t.sourcePosition.offset>0)return t.sourcePosition=e.moveTargetPosition.clone(),t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t]}return t.sourcePosition.hasSameParentAs(e.splitPosition)&&(t.howMany=e.splitPosition.offset),t.sourcePosition=t.sourcePosition._getTransformedBySplitOperation(e),t.targetPosition=t.targetPosition._getTransformedBySplitOperation(e),[t]})),lh(Zd,Jd,((t,e)=>{const n=kl._createFromPositionAndShift(t.sourcePosition,t.howMany)._getTransformedByInsertOperation(e,!1)[0];return t.sourcePosition=n.start,t.howMany=n.end.offset-n.start.offset,t.targetPosition.isEqual(e.position)||(t.targetPosition=t.targetPosition._getTransformedByInsertOperation(e)),[t]})),lh(Zd,Zd,((t,e,n)=>{const o=kl._createFromPositionAndShift(t.sourcePosition,t.howMany),i=kl._createFromPositionAndShift(e.sourcePosition,e.howMany);let r,s=n.aIsStrong,a=!n.aIsStrong;if("insertBefore"==n.abRelation||"insertAfter"==n.baRelation?a=!0:"insertAfter"!=n.abRelation&&"insertBefore"!=n.baRelation||(a=!1),r=t.targetPosition.isEqual(e.targetPosition)&&a?t.targetPosition._getTransformedByDeletion(e.sourcePosition,e.howMany):t.targetPosition._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),kh(t,e)&&kh(e,t))return[e.getReversed()];if(o.containsPosition(e.targetPosition)&&o.containsRange(i,!0))return o.start=o.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),o.end=o.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),bh([o],r);if(i.containsPosition(t.targetPosition)&&i.containsRange(o,!0))return o.start=o.start._getCombined(e.sourcePosition,e.getMovedRangeStart()),o.end=o.end._getCombined(e.sourcePosition,e.getMovedRangeStart()),bh([o],r);const c=it(t.sourcePosition.getParentPath(),e.sourcePosition.getParentPath());if("prefix"==c||"extension"==c)return o.start=o.start._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),o.end=o.end._getTransformedByMove(e.sourcePosition,e.targetPosition,e.howMany),bh([o],r);"remove"!=t.type||"remove"==e.type||n.aWasUndone||n.forceWeakRemove?"remove"==t.type||"remove"!=e.type||n.bWasUndone||n.forceWeakRemove||(s=!1):s=!0;const l=[],d=o.getDifference(i);for(const t of d){t.start=t.start._getTransformedByDeletion(e.sourcePosition,e.howMany),t.end=t.end._getTransformedByDeletion(e.sourcePosition,e.howMany);const n="same"==it(t.start.getParentPath(),e.getMovedRangeStart().getParentPath()),o=t._getTransformedByInsertion(e.getMovedRangeStart(),e.howMany,n);l.push(...o)}const h=o.getIntersection(i);return null!==h&&s&&(h.start=h.start._getCombined(e.sourcePosition,e.getMovedRangeStart()),h.end=h.end._getCombined(e.sourcePosition,e.getMovedRangeStart()),0===l.length?l.push(h):1==l.length?i.start.isBefore(o.start)||i.start.isEqual(o.start)?l.unshift(h):l.push(h):l.splice(1,0,h)),0===l.length?[new nh(t.baseVersion)]:bh(l,r)})),lh(Zd,Yd,((t,e,n)=>{let o=t.targetPosition.clone();t.targetPosition.isEqual(e.insertionPosition)&&e.graveyardPosition&&"moveTargetAfter"!=n.abRelation||(o=t.targetPosition._getTransformedBySplitOperation(e));const i=kl._createFromPositionAndShift(t.sourcePosition,t.howMany);if(i.end.isEqual(e.insertionPosition))return e.graveyardPosition||t.howMany++,t.targetPosition=o,[t];if(i.start.hasSameParentAs(e.splitPosition)&&i.containsPosition(e.splitPosition)){let t=new kl(e.splitPosition,i.end);t=t._getTransformedBySplitOperation(e);return bh([new kl(i.start,e.splitPosition),t],o)}t.targetPosition.isEqual(e.splitPosition)&&"insertAtSource"==n.abRelation&&(o=e.moveTargetPosition),t.targetPosition.isEqual(e.insertionPosition)&&"insertBetween"==n.abRelation&&(o=t.targetPosition);const r=[i._getTransformedBySplitOperation(e)];if(e.graveyardPosition){const o=i.start.isEqual(e.graveyardPosition)||i.containsPosition(e.graveyardPosition);t.howMany>1&&o&&!n.aWasUndone&&r.push(kl._createFromPositionAndShift(e.insertionPosition,1))}return bh(r,o)})),lh(Zd,Qd,((t,e,n)=>{const o=kl._createFromPositionAndShift(t.sourcePosition,t.howMany);if(e.deletionPosition.hasSameParentAs(t.sourcePosition)&&o.containsPosition(e.sourcePosition))if("remove"!=t.type||n.forceWeakRemove){if(1==t.howMany)return n.bWasUndone?(t.sourcePosition=e.graveyardPosition.clone(),t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),[t]):[new nh(0)]}else if(!n.aWasUndone){const n=[];let o=e.graveyardPosition.clone(),i=e.targetPosition._getTransformedByMergeOperation(e);t.howMany>1&&(n.push(new Zd(t.sourcePosition,t.howMany-1,t.targetPosition,0)),o=o._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1),i=i._getTransformedByMove(t.sourcePosition,t.targetPosition,t.howMany-1));const r=e.deletionPosition._getCombined(t.sourcePosition,t.targetPosition),s=new Zd(o,1,r,0),a=s.getMovedRangeStart().path.slice();a.push(0);const c=new hl(s.targetPosition.root,a);i=i._getTransformedByMove(o,r,1);const l=new Zd(i,e.howMany,c,0);return n.push(s),n.push(l),n}const i=kl._createFromPositionAndShift(t.sourcePosition,t.howMany)._getTransformedByMergeOperation(e);return t.sourcePosition=i.start,t.howMany=i.end.offset-i.start.offset,t.targetPosition=t.targetPosition._getTransformedByMergeOperation(e),[t]})),lh(oh,Jd,((t,e)=>(t.position=t.position._getTransformedByInsertOperation(e),[t]))),lh(oh,Qd,((t,e)=>t.position.isEqual(e.deletionPosition)?(t.position=e.graveyardPosition.clone(),t.position.stickiness="toNext",[t]):(t.position=t.position._getTransformedByMergeOperation(e),[t]))),lh(oh,Zd,((t,e)=>(t.position=t.position._getTransformedByMoveOperation(e),[t]))),lh(oh,oh,((t,e,n)=>{if(t.position.isEqual(e.position)){if(!n.aIsStrong)return[new nh(0)];t.oldName=e.newName}return[t]})),lh(oh,Yd,((t,e)=>{if("same"==it(t.position.path,e.splitPosition.getParentPath())&&!e.graveyardPosition){const e=new oh(t.position.getShiftedBy(1),t.oldName,t.newName,0);return[t,e]}return t.position=t.position._getTransformedBySplitOperation(e),[t]})),lh(ih,ih,((t,e,n)=>{if(t.root===e.root&&t.key===e.key){if(!n.aIsStrong||t.newValue===e.newValue)return[new nh(0)];t.oldValue=e.newValue}return[t]})),lh(rh,rh,((t,e)=>t.rootName===e.rootName&&t.isAdd===e.isAdd?[new nh(0)]:[t])),lh(Yd,Jd,((t,e)=>(t.splitPosition.hasSameParentAs(e.position)&&t.splitPosition.offset{if(!t.graveyardPosition&&!n.bWasUndone&&t.splitPosition.hasSameParentAs(e.sourcePosition)){const n=e.graveyardPosition.path.slice();n.push(0);const o=new hl(e.graveyardPosition.root,n),i=Yd.getInsertionPosition(new hl(e.graveyardPosition.root,n)),r=new Yd(o,0,i,null,0);return t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e),t.insertionPosition=Yd.getInsertionPosition(t.splitPosition),t.graveyardPosition=r.insertionPosition.clone(),t.graveyardPosition.stickiness="toNext",[r,t]}return t.splitPosition.hasSameParentAs(e.deletionPosition)&&!t.splitPosition.isAfter(e.deletionPosition)&&t.howMany--,t.splitPosition.hasSameParentAs(e.targetPosition)&&(t.howMany+=e.howMany),t.splitPosition=t.splitPosition._getTransformedByMergeOperation(e),t.insertionPosition=Yd.getInsertionPosition(t.splitPosition),t.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedByMergeOperation(e)),[t]})),lh(Yd,Zd,((t,e,n)=>{const o=kl._createFromPositionAndShift(e.sourcePosition,e.howMany);if(t.graveyardPosition){const i=o.start.isEqual(t.graveyardPosition)||o.containsPosition(t.graveyardPosition);if(!n.bWasUndone&&i){const n=t.splitPosition._getTransformedByMoveOperation(e),o=t.graveyardPosition._getTransformedByMoveOperation(e),i=o.path.slice();i.push(0);const r=new hl(o.root,i);return[new Zd(n,t.howMany,r,0)]}t.graveyardPosition=t.graveyardPosition._getTransformedByMoveOperation(e)}const i=t.splitPosition.isEqual(e.targetPosition);if(i&&("insertAtSource"==n.baRelation||"splitBefore"==n.abRelation))return t.howMany+=e.howMany,t.splitPosition=t.splitPosition._getTransformedByDeletion(e.sourcePosition,e.howMany),t.insertionPosition=Yd.getInsertionPosition(t.splitPosition),[t];if(i&&n.abRelation&&n.abRelation.howMany){const{howMany:e,offset:o}=n.abRelation;return t.howMany+=e,t.splitPosition=t.splitPosition.getShiftedBy(o),[t]}if(t.splitPosition.hasSameParentAs(e.sourcePosition)&&o.containsPosition(t.splitPosition)){const n=e.howMany-(t.splitPosition.offset-e.sourcePosition.offset);return t.howMany-=n,t.splitPosition.hasSameParentAs(e.targetPosition)&&t.splitPosition.offset{if(t.splitPosition.isEqual(e.splitPosition)){if(!t.graveyardPosition&&!e.graveyardPosition)return[new nh(0)];if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition))return[new nh(0)];if("splitBefore"==n.abRelation)return t.howMany=0,t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e),[t]}if(t.graveyardPosition&&e.graveyardPosition&&t.graveyardPosition.isEqual(e.graveyardPosition)){const o="$graveyard"==t.splitPosition.root.rootName,i="$graveyard"==e.splitPosition.root.rootName;if(i&&!o||!(o&&!i)&&n.aIsStrong){const n=[];return e.howMany&&n.push(new Zd(e.moveTargetPosition,e.howMany,e.splitPosition,0)),t.howMany&&n.push(new Zd(t.splitPosition,t.howMany,t.moveTargetPosition,0)),n}return[new nh(0)]}if(t.graveyardPosition&&(t.graveyardPosition=t.graveyardPosition._getTransformedBySplitOperation(e)),t.splitPosition.isEqual(e.insertionPosition)&&"splitBefore"==n.abRelation)return t.howMany++,[t];if(e.splitPosition.isEqual(t.insertionPosition)&&"splitBefore"==n.baRelation){const n=e.insertionPosition.path.slice();n.push(0);const o=new hl(e.insertionPosition.root,n);return[t,new Zd(t.insertionPosition,1,o,0)]}return t.splitPosition.hasSameParentAs(e.splitPosition)&&t.splitPosition.offset{const n=e[0];n.isDocumentOperation&&Ah.call(this,n)}),{priority:"low"})}function Ah(t){const e=this.getTransformedByOperation(t);if(!this.isEqual(e)){const t=this.toPosition();this.path=e.path,this.root=e.root,this.fire("change",t)}}wh.prototype.is=function(t){return"livePosition"===t||"model:livePosition"===t||"position"==t||"model:position"===t};class Ch{operations;isUndoable;isLocal;isUndo;isTyping;constructor(t={}){"string"==typeof t&&(t="transparent"===t?{isUndoable:!1}:{},E("batch-constructor-deprecated-string-type"));const{isUndoable:e=!0,isLocal:n=!0,isUndo:o=!1,isTyping:i=!1}=t;this.operations=[],this.isUndoable=e,this.isLocal=n,this.isUndo=o,this.isTyping=i}get type(){return E("batch-type-deprecated"),"default"}get baseVersion(){for(const t of this.operations)if(null!==t.baseVersion)return t.baseVersion;return null}addOperation(t){return t.batch=this,this.operations.push(t),t}}class vh{_markerCollection;_changesInElement=new Map;_elementSnapshots=new Map;_changedMarkers=new Map;_changedRoots=new Map;_changeCount=0;_cachedChanges=null;_cachedChangesWithGraveyard=null;_refreshedItems=new Set;constructor(t){this._markerCollection=t}get isEmpty(){return 0==this._changesInElement.size&&0==this._changedMarkers.size&&0==this._changedRoots.size}bufferOperation(t){const e=t;switch(e.type){case"insert":if(this._isInInsertedElement(e.position.parent))return;this._markInsert(e.position.parent,e.position.offset,e.nodes.maxOffset);break;case"addAttribute":case"removeAttribute":case"changeAttribute":for(const t of e.range.getItems({shallow:!0}))this._isInInsertedElement(t.parent)||this._markAttribute(t);break;case"remove":case"move":case"reinsert":{if(e.sourcePosition.isEqual(e.targetPosition)||e.sourcePosition.getShiftedBy(e.howMany).isEqual(e.targetPosition))return;const t=this._isInInsertedElement(e.sourcePosition.parent),n=this._isInInsertedElement(e.targetPosition.parent);t||this._markRemove(e.sourcePosition.parent,e.sourcePosition.offset,e.howMany),n||this._markInsert(e.targetPosition.parent,e.getMovedRangeStart().offset,e.howMany);break}case"rename":{if(this._isInInsertedElement(e.position.parent))return;this._markRemove(e.position.parent,e.position.offset,1),this._markInsert(e.position.parent,e.position.offset,1);const t=kl._createFromPositionAndShift(e.position,1);for(const e of this._markerCollection.getMarkersIntersectingRange(t)){const t=e.getData();this.bufferMarkerChange(e.name,t,t)}break}case"split":{const t=e.splitPosition.parent;this._isInInsertedElement(t)||this._markRemove(t,e.splitPosition.offset,e.howMany),this._isInInsertedElement(e.insertionPosition.parent)||this._markInsert(e.insertionPosition.parent,e.insertionPosition.offset,1),e.graveyardPosition&&this._markRemove(e.graveyardPosition.parent,e.graveyardPosition.offset,1);break}case"merge":{const t=e.sourcePosition.parent;this._isInInsertedElement(t.parent)||this._markRemove(t.parent,t.startOffset,1);const n=e.graveyardPosition.parent;this._markInsert(n,e.graveyardPosition.offset,1);const o=e.targetPosition.parent;this._isInInsertedElement(o)||this._markInsert(o,e.targetPosition.offset,t.maxOffset);break}case"detachRoot":case"addRoot":{const t=e.affectedSelectable;if(!t._isLoaded)return;if(t.isAttached()==e.isAdd)return;this._bufferRootStateChange(e.rootName,e.isAdd);break}case"addRootAttribute":case"removeRootAttribute":case"changeRootAttribute":{if(!e.root._isLoaded)return;const t=e.root.rootName;this._bufferRootAttributeChange(t,e.key,e.oldValue,e.newValue);break}}this._cachedChanges=null}bufferMarkerChange(t,e,n){e.range&&e.range.root.is("rootElement")&&!e.range.root._isLoaded&&(e.range=null),n.range&&n.range.root.is("rootElement")&&!n.range.root._isLoaded&&(n.range=null);let o=this._changedMarkers.get(t);o?o.newMarkerData=n:(o={newMarkerData:n,oldMarkerData:e},this._changedMarkers.set(t,o)),null==o.oldMarkerData.range&&null==n.range&&this._changedMarkers.delete(t)}getMarkersToRemove(){const t=[];for(const[e,n]of this._changedMarkers)null!=n.oldMarkerData.range&&t.push({name:e,range:n.oldMarkerData.range});return t}getMarkersToAdd(){const t=[];for(const[e,n]of this._changedMarkers)null!=n.newMarkerData.range&&t.push({name:e,range:n.newMarkerData.range});return t}getChangedMarkers(){return Array.from(this._changedMarkers).map((([t,e])=>({name:t,data:{oldRange:e.oldMarkerData.range,newRange:e.newMarkerData.range}})))}hasDataChanges(){if(this.getChanges().length)return!0;if(this._changedRoots.size>0)return!0;for(const{newMarkerData:t,oldMarkerData:e}of this._changedMarkers.values()){if(t.affectsData!==e.affectsData)return!0;if(t.affectsData){const n=t.range&&!e.range,o=!t.range&&e.range,i=t.range&&e.range&&!t.range.isEqual(e.range);if(n||o||i)return!0}}return!1}getChanges(t={}){if(this._cachedChanges)return t.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice();let e=[];for(const t of this._changesInElement.keys()){const n=this._changesInElement.get(t).sort(((t,e)=>t.offset===e.offset?t.type!=e.type?"remove"==t.type?-1:1:0:t.offsett.position.root!=e.position.root?t.position.root.rootNamet));for(const t of e)delete t.changeCount,"attribute"==t.type&&(delete t.position,delete t.length);return this._changeCount=0,this._cachedChangesWithGraveyard=e,this._cachedChanges=e.filter(Eh),t.includeChangesInGraveyard?this._cachedChangesWithGraveyard.slice():this._cachedChanges.slice()}getChangedRoots(){return Array.from(this._changedRoots.values()).map((t=>{const e={...t};return void 0!==e.state&&delete e.attributes,e}))}getRefreshedItems(){return new Set(this._refreshedItems)}reset(){this._changesInElement.clear(),this._elementSnapshots.clear(),this._changedMarkers.clear(),this._changedRoots.clear(),this._refreshedItems=new Set,this._cachedChanges=null}_bufferRootStateChange(t,e){if(!this._changedRoots.has(t))return void this._changedRoots.set(t,{name:t,state:e?"attached":"detached"});const n=this._changedRoots.get(t);void 0!==n.state?(delete n.state,void 0===n.attributes&&this._changedRoots.delete(t)):n.state=e?"attached":"detached"}_bufferRootAttributeChange(t,e,n,o){const i=this._changedRoots.get(t)||{name:t},r=i.attributes||{};if(r[e]){const t=r[e];o===t.oldValue?delete r[e]:t.newValue=o}else r[e]={oldValue:n,newValue:o};0===Object.entries(r).length?(delete i.attributes,void 0===i.state&&this._changedRoots.delete(t)):(i.attributes=r,this._changedRoots.set(t,i))}_refreshItem(t){if(this._isInInsertedElement(t.parent))return;this._markRemove(t.parent,t.startOffset,t.offsetSize),this._markInsert(t.parent,t.startOffset,t.offsetSize),this._refreshedItems.add(t);const e=kl._createOn(t);for(const t of this._markerCollection.getMarkersIntersectingRange(e)){const e=t.getData();this.bufferMarkerChange(t.name,e,e)}this._cachedChanges=null}_bufferRootLoad(t){if(t.isAttached()){this._bufferRootStateChange(t.rootName,!0),this._markInsert(t,0,t.maxOffset);for(const e of t.getAttributeKeys())this._bufferRootAttributeChange(t.rootName,e,null,t.getAttribute(e));for(const e of this._markerCollection)if(e.getRange().root==t){const t=e.getData();this.bufferMarkerChange(e.name,{...t,range:null},t)}}}_markInsert(t,e,n){if(t.root.is("rootElement")&&!t.root._isLoaded)return;const o={type:"insert",offset:e,howMany:n,count:this._changeCount++};this._markChange(t,o)}_markRemove(t,e,n){if(t.root.is("rootElement")&&!t.root._isLoaded)return;const o={type:"remove",offset:e,howMany:n,count:this._changeCount++};this._markChange(t,o),this._removeAllNestedChanges(t,e,n)}_markAttribute(t){if(t.root.is("rootElement")&&!t.root._isLoaded)return;const e={type:"attribute",offset:t.startOffset,howMany:t.offsetSize,count:this._changeCount++};this._markChange(t.parent,e)}_markChange(t,e){this._makeSnapshot(t);const n=this._getChangesForElement(t);this._handleChange(e,n),n.push(e);for(let t=0;tn.offset){if(o>i){const t={type:"attribute",offset:i,howMany:o-i,count:this._changeCount++};this._handleChange(t,e),e.push(t)}t.nodesToHandle=n.offset-t.offset,t.howMany=t.nodesToHandle}else t.offset>=n.offset&&t.offseti?(t.nodesToHandle=o-i,t.offset=i):t.nodesToHandle=0);if("remove"==n.type&&t.offsetn.offset){const i={type:"attribute",offset:n.offset,howMany:o-n.offset,count:this._changeCount++};this._handleChange(i,e),e.push(i),t.nodesToHandle=n.offset-t.offset,t.howMany=t.nodesToHandle}"attribute"==n.type&&(t.offset>=n.offset&&o<=i?(t.nodesToHandle=0,t.howMany=0,t.offset=0):t.offset<=n.offset&&o>=i&&(n.howMany=0))}}t.howMany=t.nodesToHandle,delete t.nodesToHandle}_getInsertDiff(t,e,n){return{type:"insert",position:hl._createAt(t,e),name:n.name,attributes:new Map(n.attributes),length:1,changeCount:this._changeCount++,_element:n.element}}_getRemoveDiff(t,e,n){return{type:"remove",position:hl._createAt(t,e),name:n.name,attributes:new Map(n.attributes),length:1,changeCount:this._changeCount++,_element:n.element}}_getAttributesDiff(t,e,n){const o=[];n=new Map(n);for(const[i,r]of e){const e=n.has(i)?n.get(i):null;e!==r&&o.push({type:"attribute",position:t.start,range:t.clone(),length:1,attributeKey:i,attributeOldValue:r,attributeNewValue:e,changeCount:this._changeCount++}),n.delete(i)}for(const[e,i]of n)o.push({type:"attribute",position:t.start,range:t.clone(),length:1,attributeKey:e,attributeOldValue:null,attributeNewValue:i,changeCount:this._changeCount++});return o}_isInInsertedElement(t){const e=t.parent;if(!e)return!1;const n=this._changesInElement.get(e),o=t.startOffset;if(n)for(const t of n)if("insert"==t.type&&o>=t.offset&&oo){for(let e=0;ethis._version+1&&this._gaps.set(this._version,t),this._version=t}get lastOperation(){return this._operations[this._operations.length-1]}addOperation(t){if(t.baseVersion!==this.version)throw new x("model-document-history-addoperation-incorrect-version",this,{operation:t,historyVersion:this.version});this._operations.push(t),this._version++,this._baseVersionToOperationIndex.set(t.baseVersion,this._operations.length-1)}getOperations(t,e=this.version){if(!this._operations.length)return[];const n=this._operations[0];void 0===t&&(t=n.baseVersion);let o=e-1;for(const[e,n]of this._gaps)t>e&&te&&othis.lastOperation.baseVersion)return[];let i=this._baseVersionToOperationIndex.get(t);void 0===i&&(i=0);let r=this._baseVersionToOperationIndex.get(o);return void 0===r&&(r=this._operations.length-1),this._operations.slice(i,r+1)}getOperation(t){const e=this._baseVersionToOperationIndex.get(t);if(void 0!==e)return this._operations[e]}setOperationAsUndone(t,e){this._undoPairs.set(e,t),this._undoneOperations.add(t)}isUndoingOperation(t){return this._undoPairs.has(t)}isUndoneOperation(t){return this._undoneOperations.has(t)}getUndoneOperation(t){return this._undoPairs.get(t)}reset(){this._version=0,this._undoPairs=new Map,this._operations=[],this._undoneOperations=new Set,this._gaps=new Map,this._baseVersionToOperationIndex=new Map}}class Bh extends cl{rootName;_document;_isAttached=!0;_isLoaded=!0;constructor(t,e,n="main"){super(e),this._document=t,this.rootName=n}get document(){return this._document}isAttached(){return this._isAttached}toJSON(){return this.rootName}}Bh.prototype.is=function(t,e){return e?e===this.name&&("rootElement"===t||"model:rootElement"===t||"element"===t||"model:element"===t):"rootElement"===t||"model:rootElement"===t||"element"===t||"model:element"===t||"node"===t||"model:node"===t};const Th="$graveyard";class Sh extends(L()){model;history;selection;roots;differ;isReadOnly;_postFixers;_hasSelectionChangedFromTheLastChangeBlock;constructor(t){super(),this.model=t,this.history=new Dh,this.selection=new Ll(this),this.roots=new Qi({idProperty:"rootName"}),this.differ=new vh(t.markers),this.isReadOnly=!1,this._postFixers=new Set,this._hasSelectionChangedFromTheLastChangeBlock=!1,this.createRoot("$root",Th),this.listenTo(t,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&this.differ.bufferOperation(n)}),{priority:"high"}),this.listenTo(t,"applyOperation",((t,e)=>{const n=e[0];n.isDocumentOperation&&this.history.addOperation(n)}),{priority:"low"}),this.listenTo(this.selection,"change",(()=>{this._hasSelectionChangedFromTheLastChangeBlock=!0})),this.listenTo(t.markers,"update",((t,e,n,o,i)=>{const r={...e.getData(),range:o};this.differ.bufferMarkerChange(e.name,i,r),null===n&&e.on("change",((t,n)=>{const o=e.getData();this.differ.bufferMarkerChange(e.name,{...o,range:n},o)}))})),this.registerPostFixer((t=>{let e=!1;for(const n of this.roots)n.isAttached()||n.isEmpty||(t.remove(t.createRangeIn(n)),e=!0);for(const n of this.model.markers)n.getRange().root.isAttached()||(t.removeMarker(n),e=!0);return e}))}get version(){return this.history.version}set version(t){this.history.version=t}get graveyard(){return this.getRoot(Th)}createRoot(t="$root",e="main"){if(this.roots.get(e))throw new x("model-document-createroot-name-exists",this,{name:e});const n=new Bh(this,t,e);return this.roots.add(n),n}destroy(){this.selection.destroy(),this.stopListening()}getRoot(t="main"){return this.roots.get(t)}getRootNames(t=!1){return this.getRoots(t).map((t=>t.rootName))}getRoots(t=!1){return this.roots.filter((e=>e!=this.graveyard&&(t||e.isAttached())&&e._isLoaded))}registerPostFixer(t){this._postFixers.add(t)}toJSON(){const t=rs(this);return t.selection="[engine.model.DocumentSelection]",t.model="[engine.model.Model]",t}_handleChangeBlock(t){this._hasDocumentChangedFromTheLastChangeBlock()&&(this._callPostFixers(t),this.selection.refresh(),this.differ.hasDataChanges()?this.fire("change:data",t.batch):this.fire("change",t.batch),this.selection.refresh(),this.differ.reset()),this._hasSelectionChangedFromTheLastChangeBlock=!1}_hasDocumentChangedFromTheLastChangeBlock(){return!this.differ.isEmpty||this._hasSelectionChangedFromTheLastChangeBlock}_getDefaultRoot(){const t=this.getRoots();return t.length?t[0]:this.graveyard}_getDefaultRange(){const t=this._getDefaultRoot(),e=this.model,n=e.schema,o=e.createPositionFromPath(t,[0]);return n.getNearestSelectionRange(o)||e.createRange(o)}_validateSelectionRange(t){return Ih(t.start)&&Ih(t.end)}_callPostFixers(t){let e=!1;do{for(const n of this._postFixers)if(this.selection.refresh(),e=n(t),e)break}while(e)}}function Ih(t){const e=t.textNode;if(e){const n=e.data,o=t.offset-e.startOffset;return!ir(n,o)&&!rr(n,o)}return!0}class Ph extends(L()){_markers=new Map;[Symbol.iterator](){return this._markers.values()}has(t){const e=t instanceof zh?t.name:t;return this._markers.has(e)}get(t){return this._markers.get(t)||null}_set(t,e,n=!1,o=!1){const i=t instanceof zh?t.name:t;if(i.includes(","))throw new x("markercollection-incorrect-marker-name",this);const r=this._markers.get(i);if(r){const t=r.getData(),s=r.getRange();let a=!1;return s.isEqual(e)||(r._attachLiveRange(Il.fromRange(e)),a=!0),n!=r.managedUsingOperations&&(r._managedUsingOperations=n,a=!0),"boolean"==typeof o&&o!=r.affectsData&&(r._affectsData=o,a=!0),a&&this.fire(`update:${i}`,r,s,e,t),r}const s=Il.fromRange(e),a=new zh(i,s,n,o);return this._markers.set(i,a),this.fire(`update:${i}`,a,null,e,{...a.getData(),range:null}),a}_remove(t){const e=t instanceof zh?t.name:t,n=this._markers.get(e);return!!n&&(this._markers.delete(e),this.fire(`update:${e}`,n,n.getRange(),null,n.getData()),this._destroyMarker(n),!0)}_refresh(t){const e=t instanceof zh?t.name:t,n=this._markers.get(e);if(!n)throw new x("markercollection-refresh-marker-not-exists",this);const o=n.getRange();this.fire(`update:${e}`,n,o,o,n.getData())}*getMarkersAtPosition(t){for(const e of this)e.getRange().containsPosition(t)&&(yield e)}*getMarkersIntersectingRange(t){for(const e of this)null!==e.getRange().getIntersection(t)&&(yield e)}destroy(){for(const t of this._markers.values())this._destroyMarker(t);this._markers=null,this.stopListening()}*getMarkersGroup(t){for(const e of this._markers.values())e.name.startsWith(t+":")&&(yield e)}_destroyMarker(t){t.stopListening(),t._detachLiveRange()}}class zh extends(L(ol)){name;_managedUsingOperations;_affectsData;_liveRange;constructor(t,e,n,o){super(),this.name=t,this._liveRange=this._attachLiveRange(e),this._managedUsingOperations=n,this._affectsData=o}get managedUsingOperations(){if(!this._liveRange)throw new x("marker-destroyed",this);return this._managedUsingOperations}get affectsData(){if(!this._liveRange)throw new x("marker-destroyed",this);return this._affectsData}getData(){return{range:this.getRange(),affectsData:this.affectsData,managedUsingOperations:this.managedUsingOperations}}getStart(){if(!this._liveRange)throw new x("marker-destroyed",this);return this._liveRange.start.clone()}getEnd(){if(!this._liveRange)throw new x("marker-destroyed",this);return this._liveRange.end.clone()}getRange(){if(!this._liveRange)throw new x("marker-destroyed",this);return this._liveRange.toRange()}_attachLiveRange(t){return this._liveRange&&this._detachLiveRange(),t.delegate("change:range").to(this),t.delegate("change:content").to(this),this._liveRange=t,t}_detachLiveRange(){this._liveRange.stopDelegating("change:range",this),this._liveRange.stopDelegating("change:content",this),this._liveRange.detach(),this._liveRange=null}}zh.prototype.is=function(t){return"marker"===t||"model:marker"===t};class Rh extends Hd{sourcePosition;howMany;constructor(t,e){super(null),this.sourcePosition=t.clone(),this.howMany=e}get type(){return"detach"}get affectedSelectable(){return null}toJSON(){const t=super.toJSON();return t.sourcePosition=this.sourcePosition.toJSON(),t}_validate(){if(this.sourcePosition.root.document)throw new x("detach-operation-on-document-node",this)}_execute(){jd(kl._createFromPositionAndShift(this.sourcePosition,this.howMany))}static get className(){return"DetachOperation"}}class Lh extends ol{markers=new Map;_children=new rl;constructor(t){super(),t&&this._insertChild(0,t)}[Symbol.iterator](){return this.getChildren()}get childCount(){return this._children.length}get maxOffset(){return this._children.maxOffset}get isEmpty(){return 0===this.childCount}get nextSibling(){return null}get previousSibling(){return null}get root(){return this}get parent(){return null}get document(){return null}isAttached(){return!1}getAncestors(){return[]}getChild(t){return this._children.getNode(t)}getChildren(){return this._children[Symbol.iterator]()}getChildIndex(t){return this._children.getNodeIndex(t)}getChildStartOffset(t){return this._children.getNodeStartOffset(t)}getPath(){return[]}getNodeByPath(t){let e=this;for(const n of t)e=e.getChild(e.offsetToIndex(n));return e}offsetToIndex(t){return this._children.offsetToIndex(t)}toJSON(){const t=[];for(const e of this._children)t.push(e.toJSON());return t}static fromJSON(t){const e=[];for(const n of t)n.name?e.push(cl.fromJSON(n)):e.push(sl.fromJSON(n));return new Lh(e)}_appendChild(t){this._insertChild(this.childCount,t)}_insertChild(t,e){const n=function(t){if("string"==typeof t)return[new sl(t)];rt(t)||(t=[t]);return Array.from(t).map((t=>"string"==typeof t?new sl(t):t instanceof al?new sl(t.data,t.getAttributes()):t))}(e);for(const t of n)null!==t.parent&&t._remove(),t.parent=this;this._children._insertNodes(t,n)}_removeChildren(t,e=1){const n=this._children._removeNodes(t,e);for(const t of n)t.parent=null;return n}}Lh.prototype.is=function(t){return"documentFragment"===t||"model:documentFragment"===t};class Fh{model;batch;constructor(t,e){this.model=t,this.batch=e}createText(t,e){return new sl(t,e)}createElement(t,e){return new cl(t,e)}createDocumentFragment(){return new Lh}cloneElement(t,e=!0){return t._clone(e)}insert(t,e,n=0){if(this._assertWriterUsedCorrectly(),t instanceof sl&&""==t.data)return;const o=hl._createAt(e,n);if(t.parent){if(Hh(t.root,o.root))return void this.move(kl._createOn(t),o);if(t.root.document)throw new x("model-writer-insert-forbidden-move",this);this.remove(t)}const i=o.root.document?o.root.document.version:null,r=new Jd(o,t,i);if(t instanceof sl&&(r.shouldReceiveAttributes=!0),this.batch.addOperation(r),this.model.applyOperation(r),t instanceof Lh)for(const[e,n]of t.markers){const t=hl._createAt(n.root,0),i={range:new kl(n.start._getCombined(t,o),n.end._getCombined(t,o)),usingOperation:!0,affectsData:!0};this.model.markers.has(e)?this.updateMarker(e,i):this.addMarker(e,i)}}insertText(t,e,n,o){e instanceof Lh||e instanceof cl||e instanceof hl?this.insert(this.createText(t),e,n):this.insert(this.createText(t,e),n,o)}insertElement(t,e,n,o){e instanceof Lh||e instanceof cl||e instanceof hl?this.insert(this.createElement(t),e,n):this.insert(this.createElement(t,e),n,o)}append(t,e){this.insert(t,e,"end")}appendText(t,e,n){e instanceof Lh||e instanceof cl?this.insert(this.createText(t),e,"end"):this.insert(this.createText(t,e),n,"end")}appendElement(t,e,n){e instanceof Lh||e instanceof cl?this.insert(this.createElement(t),e,"end"):this.insert(this.createElement(t,e),n,"end")}setAttribute(t,e,n){if(this._assertWriterUsedCorrectly(),n instanceof kl){const o=n.getMinimalFlatRanges();for(const n of o)Mh(this,t,e,n)}else Vh(this,t,e,n)}setAttributes(t,e){for(const[n,o]of nr(t))this.setAttribute(n,o,e)}removeAttribute(t,e){if(this._assertWriterUsedCorrectly(),e instanceof kl){const n=e.getMinimalFlatRanges();for(const e of n)Mh(this,t,null,e)}else Vh(this,t,null,e)}clearAttributes(t){this._assertWriterUsedCorrectly();const e=t=>{for(const e of t.getAttributeKeys())this.removeAttribute(e,t)};if(t instanceof kl)for(const n of t.getItems())e(n);else e(t)}move(t,e,n){if(this._assertWriterUsedCorrectly(),!(t instanceof kl))throw new x("writer-move-invalid-range",this);if(!t.isFlat)throw new x("writer-move-range-not-flat",this);const o=hl._createAt(e,n);if(o.isEqual(t.start))return;if(this._addOperationForAffectedMarkers("move",t),!Hh(t.root,o.root))throw new x("writer-move-different-document",this);const i=t.root.document?t.root.document.version:null,r=new Zd(t.start,t.end.offset-t.start.offset,o,i);this.batch.addOperation(r),this.model.applyOperation(r)}remove(t){this._assertWriterUsedCorrectly();const e=(t instanceof kl?t:kl._createOn(t)).getMinimalFlatRanges().reverse();for(const t of e)this._addOperationForAffectedMarkers("move",t),Nh(t.start,t.end.offset-t.start.offset,this.batch,this.model)}merge(t){this._assertWriterUsedCorrectly();const e=t.nodeBefore,n=t.nodeAfter;if(this._addOperationForAffectedMarkers("merge",t),!(e instanceof cl))throw new x("writer-merge-no-element-before",this);if(!(n instanceof cl))throw new x("writer-merge-no-element-after",this);t.root.document?this._merge(t):this._mergeDetached(t)}createPositionFromPath(t,e,n){return this.model.createPositionFromPath(t,e,n)}createPositionAt(t,e){return this.model.createPositionAt(t,e)}createPositionAfter(t){return this.model.createPositionAfter(t)}createPositionBefore(t){return this.model.createPositionBefore(t)}createRange(t,e){return this.model.createRange(t,e)}createRangeIn(t){return this.model.createRangeIn(t)}createRangeOn(t){return this.model.createRangeOn(t)}createSelection(...t){return this.model.createSelection(...t)}_mergeDetached(t){const e=t.nodeBefore,n=t.nodeAfter;this.move(kl._createIn(n),hl._createAt(e,"end")),this.remove(n)}_merge(t){const e=hl._createAt(t.nodeBefore,"end"),n=hl._createAt(t.nodeAfter,0),o=t.root.document.graveyard,i=new hl(o,[0]),r=t.root.document.version,s=new Qd(n,t.nodeAfter.maxOffset,e,i,r);this.batch.addOperation(s),this.model.applyOperation(s)}rename(t,e){if(this._assertWriterUsedCorrectly(),!(t instanceof cl))throw new x("writer-rename-not-element-instance",this);const n=t.root.document?t.root.document.version:null,o=new oh(hl._createBefore(t),t.name,e,n);this.batch.addOperation(o),this.model.applyOperation(o)}split(t,e){this._assertWriterUsedCorrectly();let n,o,i=t.parent;if(!i.parent)throw new x("writer-split-element-no-parent",this);if(e||(e=i.parent),!t.parent.getAncestors({includeSelf:!0}).includes(e))throw new x("writer-split-invalid-limit-element",this);do{const e=i.root.document?i.root.document.version:null,r=i.maxOffset-t.offset,s=Yd.getInsertionPosition(t),a=new Yd(t,r,s,null,e);this.batch.addOperation(a),this.model.applyOperation(a),n||o||(n=i,o=t.parent.nextSibling),i=(t=this.createPositionAfter(t.parent)).parent}while(i!==e);return{position:t,range:new kl(hl._createAt(n,"end"),hl._createAt(o,0))}}wrap(t,e){if(this._assertWriterUsedCorrectly(),!t.isFlat)throw new x("writer-wrap-range-not-flat",this);const n=e instanceof cl?e:new cl(e);if(n.childCount>0)throw new x("writer-wrap-element-not-empty",this);if(null!==n.parent)throw new x("writer-wrap-element-attached",this);this.insert(n,t.start);const o=new kl(t.start.getShiftedBy(1),t.end.getShiftedBy(1));this.move(o,hl._createAt(n,0))}unwrap(t){if(this._assertWriterUsedCorrectly(),null===t.parent)throw new x("writer-unwrap-element-no-parent",this);this.move(kl._createIn(t),this.createPositionAfter(t)),this.remove(t)}addMarker(t,e){if(this._assertWriterUsedCorrectly(),!e||"boolean"!=typeof e.usingOperation)throw new x("writer-addmarker-no-usingoperation",this);const n=e.usingOperation,o=e.range,i=void 0!==e.affectsData&&e.affectsData;if(this.model.markers.has(t))throw new x("writer-addmarker-marker-exists",this);if(!o)throw new x("writer-addmarker-no-range",this);return n?(Oh(this,t,null,o,i),this.model.markers.get(t)):this.model.markers._set(t,o,n,i)}updateMarker(t,e){this._assertWriterUsedCorrectly();const n="string"==typeof t?t:t.name,o=this.model.markers.get(n);if(!o)throw new x("writer-updatemarker-marker-not-exists",this);if(!e)return E("writer-updatemarker-reconvert-using-editingcontroller",{markerName:n}),void this.model.markers._refresh(o);const i="boolean"==typeof e.usingOperation,r="boolean"==typeof e.affectsData,s=r?e.affectsData:o.affectsData;if(!i&&!e.range&&!r)throw new x("writer-updatemarker-wrong-options",this);const a=o.getRange(),c=e.range?e.range:a;i&&e.usingOperation!==o.managedUsingOperations?e.usingOperation?Oh(this,n,null,c,s):(Oh(this,n,a,null,s),this.model.markers._set(n,c,void 0,s)):o.managedUsingOperations?Oh(this,n,a,c,s):this.model.markers._set(n,c,void 0,s)}removeMarker(t){this._assertWriterUsedCorrectly();const e="string"==typeof t?t:t.name;if(!this.model.markers.has(e))throw new x("writer-removemarker-no-marker",this);const n=this.model.markers.get(e);if(!n.managedUsingOperations)return void this.model.markers._remove(e);Oh(this,e,n.getRange(),null,n.affectsData)}addRoot(t,e="$root"){this._assertWriterUsedCorrectly();const n=this.model.document.getRoot(t);if(n&&n.isAttached())throw new x("writer-addroot-root-exists",this);const o=this.model.document,i=new rh(t,e,!0,o,o.version);return this.batch.addOperation(i),this.model.applyOperation(i),this.model.document.getRoot(t)}detachRoot(t){this._assertWriterUsedCorrectly();const e="string"==typeof t?this.model.document.getRoot(t):t;if(!e||!e.isAttached())throw new x("writer-detachroot-no-root",this);for(const t of this.model.markers)t.getRange().root===e&&this.removeMarker(t);for(const t of e.getAttributeKeys())this.removeAttribute(t,e);this.remove(this.createRangeIn(e));const n=this.model.document,o=new rh(e.rootName,e.name,!1,n,n.version);this.batch.addOperation(o),this.model.applyOperation(o)}setSelection(...t){this._assertWriterUsedCorrectly(),this.model.document.selection._setTo(...t)}setSelectionFocus(t,e){this._assertWriterUsedCorrectly(),this.model.document.selection._setFocus(t,e)}setSelectionAttribute(t,e){if(this._assertWriterUsedCorrectly(),"string"==typeof t)this._setSelectionAttribute(t,e);else for(const[e,n]of nr(t))this._setSelectionAttribute(e,n)}removeSelectionAttribute(t){if(this._assertWriterUsedCorrectly(),"string"==typeof t)this._removeSelectionAttribute(t);else for(const e of t)this._removeSelectionAttribute(e)}overrideSelectionGravity(){return this.model.document.selection._overrideGravity()}restoreSelectionGravity(t){this.model.document.selection._restoreGravity(t)}_setSelectionAttribute(t,e){const n=this.model.document.selection;if(n.isCollapsed&&n.anchor.parent.isEmpty){const o=Ll._getStoreAttributeKey(t);this.setAttribute(o,e,n.anchor.parent)}n._setAttribute(t,e)}_removeSelectionAttribute(t){const e=this.model.document.selection;if(e.isCollapsed&&e.anchor.parent.isEmpty){const n=Ll._getStoreAttributeKey(t);this.removeAttribute(n,e.anchor.parent)}e._removeAttribute(t)}_assertWriterUsedCorrectly(){if(this.model._currentWriter!==this)throw new x("writer-incorrect-use",this)}_addOperationForAffectedMarkers(t,e){for(const n of this.model.markers){if(!n.managedUsingOperations)continue;const o=n.getRange();let i=!1;if("move"===t){const t=e;i=t.containsPosition(o.start)||t.start.isEqual(o.start)||t.containsPosition(o.end)||t.end.isEqual(o.end)}else{const t=e,n=t.nodeBefore,r=t.nodeAfter,s=o.start.parent==n&&o.start.isAtEnd,a=o.end.parent==r&&0==o.end.offset,c=o.end.nodeAfter==r,l=o.start.nodeAfter==r;i=s||a||c||l}i&&this.updateMarker(n.name,{range:o})}}}function Mh(t,e,n,o){const i=t.model,r=i.document;let s,a,c,l=o.start;for(const t of o.getWalker({shallow:!0}))c=t.item.getAttribute(e),s&&a!=c&&(a!=n&&d(),l=s),s=t.nextPosition,a=c;function d(){const o=new kl(l,s),c=o.root.document?r.version:null,d=new eh(o,e,a,n,c);t.batch.addOperation(d),i.applyOperation(d)}s instanceof hl&&s!=l&&a!=n&&d()}function Vh(t,e,n,o){const i=t.model,r=i.document,s=o.getAttribute(e);let a,c;if(s!=n){if(o.root===o){const t=o.document?r.version:null;c=new ih(o,e,s,n,t)}else{a=new kl(hl._createBefore(o),t.createPositionAfter(o));const i=a.root.document?r.version:null;c=new eh(a,e,s,n,i)}t.batch.addOperation(c),i.applyOperation(c)}}function Oh(t,e,n,o,i){const r=t.model,s=r.document,a=new Xd(e,n,o,r.markers,!!i,s.version);t.batch.addOperation(a),r.applyOperation(a)}function Nh(t,e,n,o){let i;if(t.root.document){const n=o.document,r=new hl(n.graveyard,[0]);i=new Zd(t,e,r,n.version)}else i=new Rh(t,e);n.addOperation(i),o.applyOperation(i)}function Hh(t,e){return t===e||t instanceof Bh&&e instanceof Bh}function qh(t,e,n={}){if(e.isCollapsed)return;const o=e.getFirstRange();if("$graveyard"==o.root.rootName)return;const i=t.schema;t.change((t=>{if(!n.doNotResetEntireContent&&function(t,e){const n=t.getLimitElement(e);if(!e.containsEntireContent(n))return!1;const o=e.getFirstRange();if(o.start.parent==o.end.parent)return!1;return t.checkChild(n,"paragraph")}(i,e))return void function(t,e){const n=t.model.schema.getLimitElement(e);t.remove(t.createRangeIn(n)),Kh(t,t.createPositionAt(n,0),e)}(t,e);const r={};if(!n.doNotAutoparagraph){const t=e.getSelectedElement();t&&Object.assign(r,i.getAttributesWithProperty(t,"copyOnReplace",!0))}const[s,a]=function(t){const e=t.root.document.model,n=t.start;let o=t.end;if(e.hasContent(t,{ignoreMarkers:!0})){const n=function(t){const e=t.parent,n=e.root.document.model.schema,o=e.getAncestors({parentFirst:!0,includeSelf:!0});for(const t of o){if(n.isLimit(t))return null;if(n.isBlock(t))return t}}(o);if(n&&o.isTouching(e.createPositionAt(n,0))){const n=e.createSelection(t);e.modifySelection(n,{direction:"backward"});const i=n.getLastPosition(),r=e.createRange(i,o);e.hasContent(r,{ignoreMarkers:!0})||(o=i)}}return[wh.fromPosition(n,"toPrevious"),wh.fromPosition(o,"toNext")]}(o);s.isTouching(a)||t.remove(t.createRange(s,a)),n.leaveUnmerged||(!function(t,e,n){const o=t.model;if(!Gh(t.model.schema,e,n))return;const[i,r]=function(t,e){const n=t.getAncestors(),o=e.getAncestors();let i=0;for(;n[i]&&n[i]==o[i];)i++;return[n[i],o[i]]}(e,n);if(!i||!r)return;!o.hasContent(i,{ignoreMarkers:!0})&&o.hasContent(r,{ignoreMarkers:!0})?Wh(t,e,n,i.parent):jh(t,e,n,i.parent)}(t,s,a),i.removeDisallowedAttributes(s.parent.getChildren(),t)),Uh(t,e,s),!n.doNotAutoparagraph&&function(t,e){const n=t.checkChild(e,"$text"),o=t.checkChild(e,"paragraph");return!n&&o}(i,s)&&Kh(t,s,e,r),s.detach(),a.detach()}))}function jh(t,e,n,o){const i=e.parent,r=n.parent;if(i!=o&&r!=o){for(e=t.createPositionAfter(i),(n=t.createPositionBefore(r)).isEqual(e)||t.insert(r,e),t.merge(e);n.parent.isEmpty;){const e=n.parent;n=t.createPositionBefore(e),t.remove(e)}Gh(t.model.schema,e,n)&&jh(t,e,n,o)}}function Wh(t,e,n,o){const i=e.parent,r=n.parent;if(i!=o&&r!=o){for(e=t.createPositionAfter(i),(n=t.createPositionBefore(r)).isEqual(e)||t.insert(i,n);e.parent.isEmpty;){const n=e.parent;e=t.createPositionBefore(n),t.remove(n)}n=t.createPositionBefore(r),function(t,e){const n=e.nodeBefore,o=e.nodeAfter;n.name!=o.name&&t.rename(n,o.name);t.clearAttributes(n),t.setAttributes(Object.fromEntries(o.getAttributes()),n),t.merge(e)}(t,n),Gh(t.model.schema,e,n)&&Wh(t,e,n,o)}}function Gh(t,e,n){const o=e.parent,i=n.parent;return o!=i&&(!t.isLimit(o)&&!t.isLimit(i)&&function(t,e,n){const o=new kl(t,e);for(const t of o.getWalker())if(n.isLimit(t.item))return!1;return!0}(e,n,t))}function Kh(t,e,n,o={}){const i=t.createElement("paragraph");t.model.schema.setAllowedAttributes(i,o,t),t.insert(i,e),Uh(t,n,t.createPositionAt(i,0))}function Uh(t,e,n){e instanceof Ll?t.setSelection(n):e.setTo(n)}function $h(t,e){const n=[];Array.from(t.getItems({direction:"backward"})).map((t=>e.createRangeOn(t))).filter((e=>(e.start.isAfter(t.start)||e.start.isEqual(t.start))&&(e.end.isBefore(t.end)||e.end.isEqual(t.end)))).forEach((t=>{n.push(t.start.parent),e.remove(t)})),n.forEach((t=>{let n=t;for(;n.parent&&n.isEmpty;){const t=e.createRangeOn(n);n=n.parent,e.remove(t)}}))}class Zh{model;writer;position;canMergeWith;schema;_documentFragment;_documentFragmentPosition;_firstNode=null;_lastNode=null;_lastAutoParagraph=null;_filterAttributesOf=[];_affectedStart=null;_affectedEnd=null;_nodeToSelect=null;constructor(t,e,n){this.model=t,this.writer=e,this.position=n,this.canMergeWith=new Set([this.position.parent]),this.schema=t.schema,this._documentFragment=e.createDocumentFragment(),this._documentFragmentPosition=e.createPositionAt(this._documentFragment,0)}handleNodes(t){for(const e of Array.from(t))this._handleNode(e);this._insertPartialFragment(),this._lastAutoParagraph&&this._updateLastNodeFromAutoParagraph(this._lastAutoParagraph),this._mergeOnRight(),this.schema.removeDisallowedAttributes(this._filterAttributesOf,this.writer),this._filterAttributesOf=[]}_updateLastNodeFromAutoParagraph(t){const e=this.writer.createPositionAfter(this._lastNode),n=this.writer.createPositionAfter(t);if(n.isAfter(e)){if(this._lastNode=t,this.position.parent!=t||!this.position.isAtEnd)throw new x("insertcontent-invalid-insertion-position",this);this.position=n,this._setAffectedBoundaries(this.position)}}getSelectionRange(){return this._nodeToSelect?kl._createOn(this._nodeToSelect):this.model.schema.getNearestSelectionRange(this.position)}getAffectedRange(){return this._affectedStart?new kl(this._affectedStart,this._affectedEnd):null}destroy(){this._affectedStart&&this._affectedStart.detach(),this._affectedEnd&&this._affectedEnd.detach()}_handleNode(t){if(this.schema.isObject(t))return void this._handleObject(t);let e=this._checkAndAutoParagraphToAllowedPosition(t);e||(e=this._checkAndSplitToAllowedPosition(t),e)?(this._appendToFragment(t),this._firstNode||(this._firstNode=t),this._lastNode=t):this._handleDisallowedNode(t)}_insertPartialFragment(){if(this._documentFragment.isEmpty)return;const t=wh.fromPosition(this.position,"toNext");this._setAffectedBoundaries(this.position),this._documentFragment.getChild(0)==this._firstNode&&(this.writer.insert(this._firstNode,this.position),this._mergeOnLeft(),this.position=t.toPosition()),this._documentFragment.isEmpty||this.writer.insert(this._documentFragment,this.position),this._documentFragmentPosition=this.writer.createPositionAt(this._documentFragment,0),this.position=t.toPosition(),t.detach()}_handleObject(t){this._checkAndSplitToAllowedPosition(t)?this._appendToFragment(t):this._tryAutoparagraphing(t)}_handleDisallowedNode(t){t.is("element")?this.handleNodes(t.getChildren()):this._tryAutoparagraphing(t)}_appendToFragment(t){if(!this.schema.checkChild(this.position,t))throw new x("insertcontent-wrong-position",this,{node:t,position:this.position});this.writer.insert(t,this._documentFragmentPosition),this._documentFragmentPosition=this._documentFragmentPosition.getShiftedBy(t.offsetSize),this.schema.isObject(t)&&!this.schema.checkChild(this.position,"$text")?this._nodeToSelect=t:this._nodeToSelect=null,this._filterAttributesOf.push(t)}_setAffectedBoundaries(t){this._affectedStart||(this._affectedStart=wh.fromPosition(t,"toPrevious")),this._affectedEnd&&!this._affectedEnd.isBefore(t)||(this._affectedEnd&&this._affectedEnd.detach(),this._affectedEnd=wh.fromPosition(t,"toNext"))}_mergeOnLeft(){const t=this._firstNode;if(!(t instanceof cl))return;if(!this._canMergeLeft(t))return;const e=wh._createBefore(t);e.stickiness="toNext";const n=wh.fromPosition(this.position,"toNext");this._affectedStart.isEqual(e)&&(this._affectedStart.detach(),this._affectedStart=wh._createAt(e.nodeBefore,"end","toPrevious")),this._firstNode===this._lastNode&&(this._firstNode=e.nodeBefore,this._lastNode=e.nodeBefore),this.writer.merge(e),e.isEqual(this._affectedEnd)&&this._firstNode===this._lastNode&&(this._affectedEnd.detach(),this._affectedEnd=wh._createAt(e.nodeBefore,"end","toNext")),this.position=n.toPosition(),n.detach(),this._filterAttributesOf.push(this.position.parent),e.detach()}_mergeOnRight(){const t=this._lastNode;if(!(t instanceof cl))return;if(!this._canMergeRight(t))return;const e=wh._createAfter(t);if(e.stickiness="toNext",!this.position.isEqual(e))throw new x("insertcontent-invalid-insertion-position",this);this.position=hl._createAt(e.nodeBefore,"end");const n=wh.fromPosition(this.position,"toPrevious");this._affectedEnd.isEqual(e)&&(this._affectedEnd.detach(),this._affectedEnd=wh._createAt(e.nodeBefore,"end","toNext")),this._firstNode===this._lastNode&&(this._firstNode=e.nodeBefore,this._lastNode=e.nodeBefore),this.writer.merge(e),e.getShiftedBy(-1).isEqual(this._affectedStart)&&this._firstNode===this._lastNode&&(this._affectedStart.detach(),this._affectedStart=wh._createAt(e.nodeBefore,0,"toPrevious")),this.position=n.toPosition(),n.detach(),this._filterAttributesOf.push(this.position.parent),e.detach()}_canMergeLeft(t){const e=t.previousSibling;return e instanceof cl&&this.canMergeWith.has(e)&&this.model.schema.checkMerge(e,t)}_canMergeRight(t){const e=t.nextSibling;return e instanceof cl&&this.canMergeWith.has(e)&&this.model.schema.checkMerge(t,e)}_tryAutoparagraphing(t){const e=this.writer.createElement("paragraph");this._getAllowedIn(this.position.parent,e)&&this.schema.checkChild(e,t)&&(e._appendChild(t),this._handleNode(e))}_checkAndAutoParagraphToAllowedPosition(t){if(this.schema.checkChild(this.position.parent,t))return!0;if(!this.schema.checkChild(this.position.parent,"paragraph")||!this.schema.checkChild("paragraph",t))return!1;this._insertPartialFragment();const e=this.writer.createElement("paragraph");return this.writer.insert(e,this.position),this._setAffectedBoundaries(this.position),this._lastAutoParagraph=e,this.position=this.writer.createPositionAt(e,0),!0}_checkAndSplitToAllowedPosition(t){const e=this._getAllowedIn(this.position.parent,t);if(!e)return!1;for(e!=this.position.parent&&this._insertPartialFragment();e!=this.position.parent;)if(this.position.isAtStart){const t=this.position.parent;this.position=this.writer.createPositionBefore(t),t.isEmpty&&t.parent===e&&this.writer.remove(t)}else if(this.position.isAtEnd)this.position=this.writer.createPositionAfter(this.position.parent);else{const t=this.writer.createPositionAfter(this.position.parent);this._setAffectedBoundaries(this.position),this.writer.split(this.position),this.position=t,this.canMergeWith.add(this.position.nodeAfter)}return!0}_getAllowedIn(t,e){return this.schema.checkChild(t,e)?t:this.schema.isLimit(t)?null:this._getAllowedIn(t.parent,e)}}function Jh(t,e,n,o={}){if(!t.schema.isObject(e))throw new x("insertobject-element-not-an-object",t,{object:e});const i=n||t.document.selection;let r=i;o.findOptimalPosition&&t.schema.isBlock(e)&&(r=t.createSelection(t.schema.findOptimalInsertionRange(i,o.findOptimalPosition)));const s=Xi(i.getSelectedBlocks()),a={};return s&&Object.assign(a,t.schema.getAttributesWithProperty(s,"copyOnReplace",!0)),t.change((n=>{r.isCollapsed||t.deleteContent(r,{doNotAutoparagraph:!0});let i=e;const s=r.anchor.parent;!t.schema.checkChild(s,e)&&t.schema.checkChild(s,"paragraph")&&t.schema.checkChild("paragraph",e)&&(i=n.createElement("paragraph"),n.insert(e,i)),t.schema.setAllowedAttributes(i,a,n);const c=t.insertContent(i,r);return c.isCollapsed||o.setSelection&&function(t,e,n,o){const i=t.model;if("on"==n)return void t.setSelection(e,"on");if("after"!=n)throw new x("insertobject-invalid-place-parameter-value",i);let r=e.nextSibling;if(i.schema.isInline(e))return void t.setSelection(e,"after");const s=r&&i.schema.checkChild(r,"$text");!s&&i.schema.checkChild(e.parent,"paragraph")&&(r=t.createElement("paragraph"),i.schema.setAllowedAttributes(r,o,t),i.insertContent(r,t.createPositionAfter(e)));r&&t.setSelection(r,0)}(n,e,o.setSelection,a),c}))}const Yh=' ,.?!:;"-()';function Qh(t,e){const{isForward:n,walker:o,unit:i,schema:r,treatEmojiAsSingleUnit:s}=t,{type:a,item:c,nextPosition:l}=e;if("text"==a)return"word"===t.unit?function(t,e){let n=t.position.textNode;n||(n=e?t.position.nodeAfter:t.position.nodeBefore);for(;n&&n.is("$text");){const o=t.position.offset-n.startOffset;if(eu(n,o,e))n=e?t.position.nodeAfter:t.position.nodeBefore;else{if(tu(n.data,o,e))break;t.next()}}return t.position}(o,n):function(t,e,n){const o=t.position.textNode;if(o){const i=o.data;let r=t.position.offset-o.startOffset;for(;ir(i,r)||"character"==e&&rr(i,r)||n&&ar(i,r);)t.next(),r=t.position.offset-o.startOffset}return t.position}(o,i,s);if(a==(n?"elementStart":"elementEnd")){if(r.isSelectable(c))return hl._createAt(c,n?"after":"before");if(r.checkChild(l,"$text"))return l}else{if(r.isLimit(c))return void o.skip((()=>!0));if(r.checkChild(l,"$text"))return l}}function Xh(t,e){const n=t.root,o=hl._createAt(n,e?"end":0);return e?new kl(t,o):new kl(o,t)}function tu(t,e,n){const o=e+(n?0:-1);return Yh.includes(t.charAt(o))}function eu(t,e,n){return e===(n?t.offsetSize:0)}class nu extends(J()){markers;document;schema;_pendingChanges;_currentWriter;constructor(){super(),this.markers=new Ph,this.document=new Sh(this),this.schema=new wd,this._pendingChanges=[],this._currentWriter=null,["deleteContent","modifySelection","getSelectedContent","applyOperation"].forEach((t=>this.decorate(t))),this.on("applyOperation",((t,e)=>{e[0]._validate()}),{priority:"highest"}),this.schema.register("$root",{isLimit:!0}),this.schema.register("$container",{allowIn:["$root","$container"]}),this.schema.register("$block",{allowIn:["$root","$container"],isBlock:!0}),this.schema.register("$blockObject",{allowWhere:"$block",isBlock:!0,isObject:!0}),this.schema.register("$inlineObject",{allowWhere:"$text",allowAttributesOf:"$text",isInline:!0,isObject:!0}),this.schema.register("$text",{allowIn:"$block",isInline:!0,isContent:!0}),this.schema.register("$clipboardHolder",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$documentFragment",{allowContentOf:"$root",allowChildren:"$text",isLimit:!0}),this.schema.register("$marker"),this.schema.addChildCheck(((t,e)=>{if("$marker"===e.name)return!0})),hd(this),this.document.registerPostFixer(ed),this.on("insertContent",((t,[e,n])=>{t.return=function(t,e,n){return t.change((o=>{const i=n||t.document.selection;i.isCollapsed||t.deleteContent(i,{doNotAutoparagraph:!0});const r=new Zh(t,o,i.anchor),s=[];let a;if(e.is("documentFragment")){if(e.markers.size){const t=[];for(const[n,o]of e.markers){const{start:e,end:i}=o,r=e.isEqual(i);t.push({position:e,name:n,isCollapsed:r},{position:i,name:n,isCollapsed:r})}t.sort((({position:t},{position:e})=>t.isBefore(e)?1:-1));for(const{position:n,name:i,isCollapsed:r}of t){let t=null,a=null;const c=n.parent===e&&n.isAtStart,l=n.parent===e&&n.isAtEnd;c||l?r&&(a=c?"start":"end"):(t=o.createElement("$marker"),o.insert(t,n)),s.push({name:i,element:t,collapsed:a})}}a=e.getChildren()}else a=[e];r.handleNodes(a);let c=r.getSelectionRange();if(e.is("documentFragment")&&s.length){const t=c?Il.fromRange(c):null,e={};for(let t=s.length-1;t>=0;t--){const{name:n,element:i,collapsed:a}=s[t],c=!e[n];if(c&&(e[n]=[]),i){const t=o.createPositionAt(i,"before");e[n].push(t),o.remove(i)}else{const t=r.getAffectedRange();if(!t){a&&e[n].push(r.position);continue}a?e[n].push(t[a]):e[n].push(c?t.start:t.end)}}for(const[t,[n,i]]of Object.entries(e))n&&i&&n.root===i.root&&n.root.document&&!o.model.markers.has(t)&&o.addMarker(t,{usingOperation:!0,affectsData:!0,range:new kl(n,i)});t&&(c=t.toRange(),t.detach())}c&&(i instanceof Ll?o.setSelection(c):i.setTo(c));const l=r.getAffectedRange()||t.createRange(i.anchor);return r.destroy(),l}))}(this,e,n)})),this.on("insertObject",((t,[e,n,o])=>{t.return=Jh(this,e,n,o)})),this.on("canEditAt",(t=>{const e=!this.document.isReadOnly;t.return=e,e||t.stop()}))}change(t){try{return 0===this._pendingChanges.length?(this._pendingChanges.push({batch:new Ch,callback:t}),this._runPendingChanges()[0]):t(this._currentWriter)}catch(t){x.rethrowUnexpectedError(t,this)}}enqueueChange(t,e){try{t?"function"==typeof t?(e=t,t=new Ch):t instanceof Ch||(t=new Ch(t)):t=new Ch,this._pendingChanges.push({batch:t,callback:e}),1==this._pendingChanges.length&&this._runPendingChanges()}catch(t){x.rethrowUnexpectedError(t,this)}}applyOperation(t){t._execute()}insertContent(t,e,n,...o){const i=ou(e,n);return this.fire("insertContent",[t,i,n,...o])}insertObject(t,e,n,o,...i){const r=ou(e,n);return this.fire("insertObject",[t,r,o,o,...i])}deleteContent(t,e){qh(this,t,e)}modifySelection(t,e){!function(t,e,n={}){const o=t.schema,i="backward"!=n.direction,r=n.unit?n.unit:"character",s=!!n.treatEmojiAsSingleUnit,a=e.focus,c=new ll({boundaries:Xh(a,i),singleCharacters:!0,direction:i?"forward":"backward"}),l={walker:c,schema:o,isForward:i,unit:r,treatEmojiAsSingleUnit:s};let d;for(;d=c.next();){if(d.done)return;const n=Qh(l,d.value);if(n)return void(e instanceof Ll?t.change((t=>{t.setSelectionFocus(n)})):e.setFocus(n))}}(this,t,e)}getSelectedContent(t){return function(t,e){return t.change((t=>{const n=t.createDocumentFragment(),o=e.getFirstRange();if(!o||o.isCollapsed)return n;const i=o.start.root,r=o.start.getCommonPath(o.end),s=i.getNodeByPath(r);let a;a=o.start.parent==o.end.parent?o:t.createRange(t.createPositionAt(s,o.start.path[r.length]),t.createPositionAt(s,o.end.path[r.length]+1));const c=a.end.offset-a.start.offset;for(const e of a.getItems({shallow:!0}))e.is("$textProxy")?t.appendText(e.data,e.getAttributes(),n):t.append(t.cloneElement(e,!0),n);if(a!=o){const e=o._getTransformedByMove(a.start,t.createPositionAt(n,0),c)[0],i=t.createRange(t.createPositionAt(n,0),e.start);$h(t.createRange(e.end,t.createPositionAt(n,"end")),t),$h(i,t)}return n}))}(this,t)}hasContent(t,e={}){const n=t instanceof kl?t:kl._createIn(t);if(n.isCollapsed)return!1;const{ignoreWhitespaces:o=!1,ignoreMarkers:i=!1}=e;if(!i)for(const t of this.markers.getMarkersIntersectingRange(n))if(t.affectsData)return!0;for(const t of n.getItems())if(this.schema.isContent(t)){if(!t.is("$textProxy"))return!0;if(!o)return!0;if(-1!==t.data.search(/\S/))return!0}return!1}canEditAt(t){const e=ou(t);return this.fire("canEditAt",[e])}createPositionFromPath(t,e,n){return new hl(t,e,n)}createPositionAt(t,e){return hl._createAt(t,e)}createPositionAfter(t){return hl._createAfter(t)}createPositionBefore(t){return hl._createBefore(t)}createRange(t,e){return new kl(t,e)}createRangeIn(t){return kl._createIn(t)}createRangeOn(t){return kl._createOn(t)}createSelection(...t){return new yl(...t)}createBatch(t){return new Ch(t)}createOperationFromJSON(t){return ah.fromJSON(t,this.document)}destroy(){this.document.destroy(),this.stopListening()}_runPendingChanges(){const t=[];this.fire("_beforeChanges");try{for(;this._pendingChanges.length;){const e=this._pendingChanges[0].batch;this._currentWriter=new Fh(this,e);const n=this._pendingChanges[0].callback(this._currentWriter);t.push(n),this.document._handleChangeBlock(this._currentWriter),this._pendingChanges.shift(),this._currentWriter=null}}finally{this._pendingChanges.length=0,this._currentWriter=null,this.fire("_afterChanges")}return t}}function ou(t,e){if(t)return t instanceof yl||t instanceof Ll?t:t instanceof il?e||0===e?new yl(t,e):t.is("rootElement")?new yl(t,"in"):new yl(t,"on"):new yl(t)}class iu extends cc{domEventType=["mousedown","mouseup","mouseover","mouseout"];onDomEvent(t){this.fire(t.type,t)}}class ru{document;constructor(t){this.document=t}createDocumentFragment(t){return new _a(this.document,t)}createElement(t,e,n){return new js(this.document,t,e,n)}createText(t){return new as(this.document,t)}clone(t,e=!1){return t._clone(e)}appendChild(t,e){return e._appendChild(t)}insertChild(t,e,n){return n._insertChild(t,e)}removeChildren(t,e,n){return n._removeChildren(t,e)}remove(t){const e=t.parent;return e?this.removeChildren(e.getChildIndex(t),1,e):[]}replace(t,e){const n=t.parent;if(n){const o=n.getChildIndex(t);return this.removeChildren(o,1,n),this.insertChild(o,e,n),!0}return!1}unwrapElement(t){const e=t.parent;if(e){const n=e.getChildIndex(t);this.remove(t),this.insertChild(n,t.getChildren(),e)}}rename(t,e){const n=new js(this.document,t,e.getAttributes(),e.getChildren());return this.replace(e,n)?n:null}setAttribute(t,e,n){n._setAttribute(t,e)}removeAttribute(t,e){e._removeAttribute(t)}addClass(t,e){e._addClass(t)}removeClass(t,e){e._removeClass(t)}setStyle(t,e,n){St(t)&&void 0===n?e._setStyle(t):n._setStyle(t,e)}removeStyle(t,e){e._removeStyle(t)}setCustomProperty(t,e,n){n._setCustomProperty(t,e)}removeCustomProperty(t,e){return e._removeCustomProperty(t)}createPositionAt(t,e){return Ys._createAt(t,e)}createPositionAfter(t){return Ys._createAfter(t)}createPositionBefore(t){return Ys._createBefore(t)}createRange(t,e){return new Qs(t,e)}createRangeOn(t){return Qs._createOn(t)}createRangeIn(t){return Qs._createIn(t)}createSelection(...t){return new ta(...t)}}const su=/^#([0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,au=/^rgb\([ ]?([0-9]{1,3}[ %]?,[ ]?){2,3}[0-9]{1,3}[ %]?\)$/i,cu=/^rgba\([ ]?([0-9]{1,3}[ %]?,[ ]?){3}(1|[0-9]+%|[0]?\.?[0-9]+)\)$/i,lu=/^hsl\([ ]?([0-9]{1,3}[ %]?[,]?[ ]*){3}(1|[0-9]+%|[0]?\.?[0-9]+)?\)$/i,du=/^hsla\([ ]?([0-9]{1,3}[ %]?,[ ]?){2,3}(1|[0-9]+%|[0]?\.?[0-9]+)\)$/i,hu=/\w+\((?:[^()]|\([^()]*\))*\)|\S+/gi,uu=new Set(["black","silver","gray","white","maroon","red","purple","fuchsia","green","lime","olive","yellow","navy","blue","teal","aqua","orange","aliceblue","antiquewhite","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","gainsboro","ghostwhite","gold","goldenrod","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","magenta","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","oldlace","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellowgreen","activeborder","activecaption","appworkspace","background","buttonface","buttonhighlight","buttonshadow","buttontext","captiontext","graytext","highlight","highlighttext","inactiveborder","inactivecaption","inactivecaptiontext","infobackground","infotext","menu","menutext","scrollbar","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","window","windowframe","windowtext","rebeccapurple","currentcolor","transparent"]);function mu(t){return t.startsWith("#")?su.test(t):t.startsWith("rgb")?au.test(t)||cu.test(t):t.startsWith("hsl")?lu.test(t)||du.test(t):uu.has(t.toLowerCase())}const gu=["none","hidden","dotted","dashed","solid","double","groove","ridge","inset","outset"];function pu(t){return gu.includes(t)}const fu=/^([+-]?[0-9]*([.][0-9]+)?(px|cm|mm|in|pc|pt|ch|em|ex|rem|vh|vw|vmin|vmax)|0)$/;function ku(t){return fu.test(t)}const bu=/^[+-]?[0-9]*([.][0-9]+)?%$/;function wu(t){return bu.test(t)}const _u=["repeat-x","repeat-y","repeat","space","round","no-repeat"];function Au(t){return _u.includes(t)}const Cu=["center","top","bottom","left","right"];function vu(t){return Cu.includes(t)}const yu=["fixed","scroll","local"];function xu(t){return yu.includes(t)}const Eu=/^url\(/;function Du(t){return Eu.test(t)}function Bu(t=""){if(""===t)return{top:void 0,right:void 0,bottom:void 0,left:void 0};const e=Iu(t),n=e[0],o=e[2]||n,i=e[1]||n;return{top:n,bottom:o,right:i,left:e[3]||i}}function Tu(t){return e=>{const{top:n,right:o,bottom:i,left:r}=e,s=[];return[n,o,r,i].every((t=>!!t))?s.push([t,Su(e)]):(n&&s.push([t+"-top",n]),o&&s.push([t+"-right",o]),i&&s.push([t+"-bottom",i]),r&&s.push([t+"-left",r])),s}}function Su({top:t,right:e,bottom:n,left:o}){const i=[];return o!==e?i.push(t,e,n,o):n!==t?i.push(t,e,n):e!==t?i.push(t,e):i.push(t),i.join(" ")}function Iu(t){const e=t.matchAll(hu);return Array.from(e).map((t=>t[0]))}function Pu(t){t.setNormalizer("background",(t=>{const e={},n=Iu(t);for(const t of n)Au(t)?(e.repeat=e.repeat||[],e.repeat.push(t)):vu(t)?(e.position=e.position||[],e.position.push(t)):xu(t)?e.attachment=t:mu(t)?e.color=t:Du(t)&&(e.image=t);return{path:"background",value:e}})),t.setNormalizer("background-color",(t=>({path:"background.color",value:t}))),t.setReducer("background",(t=>{const e=[];return e.push(["background-color",t.color]),e})),t.setStyleRelation("background",["background-color"])}function zu(t){t.setNormalizer("border",(t=>{const{color:e,style:n,width:o}=Nu(t);return{path:"border",value:{color:Bu(e),style:Bu(n),width:Bu(o)}}})),t.setNormalizer("border-top",Ru("top")),t.setNormalizer("border-right",Ru("right")),t.setNormalizer("border-bottom",Ru("bottom")),t.setNormalizer("border-left",Ru("left")),t.setNormalizer("border-color",Lu("color")),t.setNormalizer("border-width",Lu("width")),t.setNormalizer("border-style",Lu("style")),t.setNormalizer("border-top-color",Mu("color","top")),t.setNormalizer("border-top-style",Mu("style","top")),t.setNormalizer("border-top-width",Mu("width","top")),t.setNormalizer("border-right-color",Mu("color","right")),t.setNormalizer("border-right-style",Mu("style","right")),t.setNormalizer("border-right-width",Mu("width","right")),t.setNormalizer("border-bottom-color",Mu("color","bottom")),t.setNormalizer("border-bottom-style",Mu("style","bottom")),t.setNormalizer("border-bottom-width",Mu("width","bottom")),t.setNormalizer("border-left-color",Mu("color","left")),t.setNormalizer("border-left-style",Mu("style","left")),t.setNormalizer("border-left-width",Mu("width","left")),t.setExtractor("border-top",Vu("top")),t.setExtractor("border-right",Vu("right")),t.setExtractor("border-bottom",Vu("bottom")),t.setExtractor("border-left",Vu("left")),t.setExtractor("border-top-color","border.color.top"),t.setExtractor("border-right-color","border.color.right"),t.setExtractor("border-bottom-color","border.color.bottom"),t.setExtractor("border-left-color","border.color.left"),t.setExtractor("border-top-width","border.width.top"),t.setExtractor("border-right-width","border.width.right"),t.setExtractor("border-bottom-width","border.width.bottom"),t.setExtractor("border-left-width","border.width.left"),t.setExtractor("border-top-style","border.style.top"),t.setExtractor("border-right-style","border.style.right"),t.setExtractor("border-bottom-style","border.style.bottom"),t.setExtractor("border-left-style","border.style.left"),t.setReducer("border-color",Tu("border-color")),t.setReducer("border-style",Tu("border-style")),t.setReducer("border-width",Tu("border-width")),t.setReducer("border-top",Hu("top")),t.setReducer("border-right",Hu("right")),t.setReducer("border-bottom",Hu("bottom")),t.setReducer("border-left",Hu("left")),t.setReducer("border",function(){return e=>{const n=Ou(e,"top"),o=Ou(e,"right"),i=Ou(e,"bottom"),r=Ou(e,"left"),s=[n,o,i,r],a={width:t(s,"width"),style:t(s,"style"),color:t(s,"color")},c=qu(a,"all");if(c.length)return c;return[...Object.entries(a).reduce(((t,[e,n])=>(n&&(t.push([`border-${e}`,n]),s.forEach((t=>delete t[e]))),t)),[]),...qu(n,"top"),...qu(o,"right"),...qu(i,"bottom"),...qu(r,"left")]};function t(t,e){return t.map((t=>t[e])).reduce(((t,e)=>t==e?t:null))}}()),t.setStyleRelation("border",["border-color","border-style","border-width","border-top","border-right","border-bottom","border-left","border-top-color","border-right-color","border-bottom-color","border-left-color","border-top-style","border-right-style","border-bottom-style","border-left-style","border-top-width","border-right-width","border-bottom-width","border-left-width"]),t.setStyleRelation("border-color",["border-top-color","border-right-color","border-bottom-color","border-left-color"]),t.setStyleRelation("border-style",["border-top-style","border-right-style","border-bottom-style","border-left-style"]),t.setStyleRelation("border-width",["border-top-width","border-right-width","border-bottom-width","border-left-width"]),t.setStyleRelation("border-top",["border-top-color","border-top-style","border-top-width"]),t.setStyleRelation("border-right",["border-right-color","border-right-style","border-right-width"]),t.setStyleRelation("border-bottom",["border-bottom-color","border-bottom-style","border-bottom-width"]),t.setStyleRelation("border-left",["border-left-color","border-left-style","border-left-width"])}function Ru(t){return e=>{const{color:n,style:o,width:i}=Nu(e),r={};return void 0!==n&&(r.color={[t]:n}),void 0!==o&&(r.style={[t]:o}),void 0!==i&&(r.width={[t]:i}),{path:"border",value:r}}}function Lu(t){return e=>({path:"border",value:Fu(e,t)})}function Fu(t,e){return{[e]:Bu(t)}}function Mu(t,e){return n=>({path:"border",value:{[t]:{[e]:n}}})}function Vu(t){return(e,n)=>{if(n.border)return Ou(n.border,t)}}function Ou(t,e){const n={};return t.width&&t.width[e]&&(n.width=t.width[e]),t.style&&t.style[e]&&(n.style=t.style[e]),t.color&&t.color[e]&&(n.color=t.color[e]),n}function Nu(t){const e={},n=Iu(t);for(const t of n)ku(t)||/thin|medium|thick/.test(t)?e.width=t:pu(t)?e.style=t:e.color=t;return e}function Hu(t){return e=>qu(e,t)}function qu(t,e){const n=[];if(t&&t.width&&n.push("width"),t&&t.style&&n.push("style"),t&&t.color&&n.push("color"),3==n.length){const o=n.map((e=>t[e])).join(" ");return["all"==e?["border",o]:[`border-${e}`,o]]}return"all"==e?[]:n.map((n=>[`border-${e}-${n}`,t[n]]))}class ju{_commands;constructor(){this._commands=new Map}add(t,e){this._commands.set(t,e)}get(t){return this._commands.get(t)}execute(t,...e){const n=this.get(t);if(!n)throw new x("commandcollection-command-not-found",this,{commandName:t});return n.execute(...e)}*names(){yield*this._commands.keys()}*commands(){yield*this._commands.values()}[Symbol.iterator](){return this._commands[Symbol.iterator]()}destroy(){for(const t of this.commands())t.destroy()}}const Wu="contentEditing",Gu="common";class Ku{keystrokeInfos=new Map;_editor;constructor(t){this._editor=t;const e=t.config.get("menuBar.isVisible"),n=t.locale.t;this.addKeystrokeInfoCategory({id:Wu,label:n("Content editing keystrokes"),description:n("These keyboard shortcuts allow for quick access to content editing features.")});const o=[{label:n("Close contextual balloons, dropdowns, and dialogs"),keystroke:"Esc"},{label:n("Open the accessibility help dialog"),keystroke:"Alt+0"},{label:n("Move focus between form fields (inputs, buttons, etc.)"),keystroke:[["Tab"],["Shift+Tab"]]},{label:n("Move focus to the toolbar, navigate between toolbars"),keystroke:"Alt+F10",mayRequireFn:!0},{label:n("Navigate through the toolbar or menu bar"),keystroke:[["arrowup"],["arrowright"],["arrowdown"],["arrowleft"]]},{label:n("Execute the currently focused button. Executing buttons that interact with the editor content moves the focus back to the content."),keystroke:[["Enter"],["Space"]]}];e&&o.push({label:n("Move focus to the menu bar, navigate between menu bars"),keystroke:"Alt+F9",mayRequireFn:!0}),this.addKeystrokeInfoCategory({id:"navigation",label:n("User interface and content navigation keystrokes"),description:n("Use the following keystrokes for more efficient navigation in the CKEditor 5 user interface."),groups:[{id:"common",keystrokes:o}]})}addKeystrokeInfoCategory({id:t,label:e,description:n,groups:o}){this.keystrokeInfos.set(t,{id:t,label:e,description:n,groups:new Map}),this.addKeystrokeInfoGroup({categoryId:t,id:Gu}),o&&o.forEach((e=>{this.addKeystrokeInfoGroup({categoryId:t,...e})}))}addKeystrokeInfoGroup({categoryId:t=Wu,id:e,label:n,keystrokes:o}){const i=this.keystrokeInfos.get(t);if(!i)throw new x("accessibility-unknown-keystroke-info-category",this._editor,{groupId:e,categoryId:t});i.groups.set(e,{id:e,label:n,keystrokes:o||[]})}addKeystrokeInfos({categoryId:t=Wu,groupId:e=Gu,keystrokes:n}){if(!this.keystrokeInfos.has(t))throw new x("accessibility-unknown-keystroke-info-category",this._editor,{categoryId:t,keystrokes:n});const o=this.keystrokeInfos.get(t);if(!o.groups.has(e))throw new x("accessibility-unknown-keystroke-info-group",this._editor,{groupId:e,categoryId:t,keystrokes:n});o.groups.get(e).keystrokes.push(...n)}}class Uu extends(J()){accessibility;commands;config;conversion;data;editing;locale;model;plugins;keystrokes;t;static defaultConfig;static builtinPlugins;_context;_readOnlyLocks;constructor(t={}){super();const e=this.constructor,{translations:n,...o}=e.defaultConfig||{},{translations:i=n,...r}=t,s=t.language||o.language;this._context=t.context||new Kr({language:s,translations:i}),this._context._addEditor(this,!t.context);const a=Array.from(e.builtinPlugins||[]);this.config=new To(r,o),this.config.define("plugins",a),this.config.define(this._context._getEditorConfig()),this.plugins=new Gr(this,a,this._context.plugins),this.locale=this._context.locale,this.t=this.locale.t,this._readOnlyLocks=new Set,this.commands=new ju,this.set("state","initializing"),this.once("ready",(()=>this.state="ready"),{priority:"high"}),this.once("destroy",(()=>this.state="destroyed"),{priority:"high"}),this.model=new nu,this.on("change:isReadOnly",(()=>{this.model.document.isReadOnly=this.isReadOnly}));const c=new Ns;this.data=new Md(this.model,c),this.editing=new pd(this.model,c),this.editing.view.document.bind("isReadOnly").to(this),this.conversion=new Vd([this.editing.downcastDispatcher,this.data.downcastDispatcher],this.data.upcastDispatcher),this.conversion.addAlias("dataDowncast",this.data.downcastDispatcher),this.conversion.addAlias("editingDowncast",this.editing.downcastDispatcher),this.keystrokes=new $r(this),this.keystrokes.listenTo(this.editing.view.document),this.accessibility=new Ku(this)}get isReadOnly(){return this._readOnlyLocks.size>0}set isReadOnly(t){throw new x("editor-isreadonly-has-no-setter")}enableReadOnlyMode(t){if("string"!=typeof t&&"symbol"!=typeof t)throw new x("editor-read-only-lock-id-invalid",null,{lockId:t});this._readOnlyLocks.has(t)||(this._readOnlyLocks.add(t),1===this._readOnlyLocks.size&&this.fire("change:isReadOnly","isReadOnly",!0,!1))}disableReadOnlyMode(t){if("string"!=typeof t&&"symbol"!=typeof t)throw new x("editor-read-only-lock-id-invalid",null,{lockId:t});this._readOnlyLocks.has(t)&&(this._readOnlyLocks.delete(t),0===this._readOnlyLocks.size&&this.fire("change:isReadOnly","isReadOnly",!1,!0))}setData(t){this.data.set(t)}getData(t){return this.data.get(t)}initPlugins(){const t=this.config,e=t.get("plugins"),n=t.get("removePlugins")||[],o=t.get("extraPlugins")||[],i=t.get("substitutePlugins")||[];return this.plugins.init(e.concat(o),n,i)}destroy(){let t=Promise.resolve();return"initializing"==this.state&&(t=new Promise((t=>this.once("ready",t)))),t.then((()=>{this.fire("destroy"),this.stopListening(),this.commands.destroy()})).then((()=>this.plugins.destroy())).then((()=>{this.model.destroy(),this.data.destroy(),this.editing.destroy(),this.keystrokes.destroy()})).then((()=>this._context._removeEditor(this)))}execute(t,...e){try{return this.commands.execute(t,...e)}catch(t){x.rethrowUnexpectedError(t,this)}}focus(){this.editing.view.focus()}static create(...t){throw new Error("This is an abstract method.")}}function $u(t){if(!Gt(t.updateSourceElement))throw new x("attachtoform-missing-elementapi-interface",t);const e=t.sourceElement;if(function(t){return!!t&&"textarea"===t.tagName.toLowerCase()}(e)&&e.form){let n;const o=e.form,i=()=>t.updateSourceElement();Gt(o.submit)&&(n=o.submit,o.submit=()=>{i(),n.apply(o)}),o.addEventListener("submit",i),t.on("destroy",(()=>{o.removeEventListener("submit",i),n&&(o.submit=n)}))}}function Zu(t){return class extends t{sourceElement;updateSourceElement(t){if(!this.sourceElement)throw new x("editor-missing-sourceelement",this);const e=this.config.get("updateSourceElementOnDestroy"),n=this.sourceElement instanceof HTMLTextAreaElement;if(!e&&!n)return void Qo(this.sourceElement,"");const o="string"==typeof t?t:this.data.get();Qo(this.sourceElement,o)}}}Zu.updateSourceElement=Zu(Object).prototype.updateSourceElement;Symbol.iterator;const Ju={bold:'',cancel:'',caption:'',check:'',cog:'',colorPalette:'',eraser:'',history:'',image:'',imageUpload:'',imageAssetManager:'',imageUrl:'',lowVision:'',textAlternative:'',loupe:'',previousArrow:'',nextArrow:'',importExport:'',paragraph:'',plus:'',text:'',alignBottom:'',alignMiddle:'',alignTop:'',alignLeft:'',alignCenter:'',alignRight:'',alignJustify:'',objectLeft:'',objectCenter:'',objectRight:'',objectFullWidth:'',objectInline:'',objectBlockLeft:'',objectBlockRight:'',objectSizeCustom:'',objectSizeFull:'',objectSizeLarge:'',objectSizeSmall:'',objectSizeMedium:'',pencil:'',pilcrow:'',quote:'',threeVerticalDots:'',dragIndicator:'',redo:'',undo:'',bulletedList:'',numberedList:'',todoList:'',codeBlock:'',browseFiles:'',heading1:'',heading2:'',heading3:'',heading4:'',heading5:'',heading6:'',horizontalLine:'',html:'',indent:'',outdent:'',table:''};var Yu=n(7621),Qu={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Yu.A,Qu);Yu.A.locals;class Xu extends Lr{static presentationalAttributeNames=["alignment-baseline","baseline-shift","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-rendering","cursor","direction","display","dominant-baseline","fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","mask","opacity","overflow","paint-order","pointer-events","shape-rendering","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-overflow","text-rendering","transform","unicode-bidi","vector-effect","visibility","white-space","word-spacing","writing-mode"];constructor(){super();const t=this.bindTemplate;this.set("content",""),this.set("viewBox","0 0 20 20"),this.set("fillColor",""),this.set("isColorInherited",!0),this.set("isVisible",!0),this.setTemplate({tag:"svg",ns:"http://www.w3.org/2000/svg",attributes:{class:["ck","ck-icon",t.if("isVisible","ck-hidden",(t=>!t)),"ck-reset_all-excluded",t.if("isColorInherited","ck-icon_inherit-color")],viewBox:t.to("viewBox")}})}render(){super.render(),this._updateXMLContent(),this._colorFillPaths(),this.on("change:content",(()=>{this._updateXMLContent(),this._colorFillPaths()})),this.on("change:fillColor",(()=>{this._colorFillPaths()}))}_updateXMLContent(){if(this.content){const t=(new DOMParser).parseFromString(this.content.trim(),"image/svg+xml").querySelector("svg"),e=t.getAttribute("viewBox");e&&(this.viewBox=e);for(const{name:e,value:n}of Array.from(t.attributes))Xu.presentationalAttributeNames.includes(e)&&this.element.setAttribute(e,n);for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);for(;t.childNodes.length>0;)this.element.appendChild(t.childNodes[0])}}_colorFillPaths(){this.fillColor&&this.element.querySelectorAll(".ck-icon__fill").forEach((t=>{t.style.fill=this.fillColor}))}}class tm extends Lr{constructor(){super(),this.set({style:void 0,text:void 0,id:void 0});const t=this.bindTemplate;this.setTemplate({tag:"span",attributes:{class:["ck","ck-button__label"],style:t.to("style"),id:t.to("id")},children:[{text:t.to("text")}]})}}var em=n(9715),nm={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(em.A,nm);em.A.locals;class om extends Lr{children;labelView;iconView;keystrokeView;_focusDelayed=null;constructor(t,e=new tm){super(t);const n=this.bindTemplate,o=A();this.set("ariaLabel",void 0),this.set("ariaLabelledBy",`ck-editor__aria-label_${o}`),this.set("class",void 0),this.set("labelStyle",void 0),this.set("icon",void 0),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isVisible",!0),this.set("isToggleable",!1),this.set("keystroke",void 0),this.set("label",void 0),this.set("role",void 0),this.set("tabindex",-1),this.set("tooltip",!1),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.set("withKeystroke",!1),this.children=this.createCollection(),this.labelView=this._setupLabelView(e),this.iconView=new Xu,this.iconView.extendTemplate({attributes:{class:"ck-button__icon"}}),this.keystrokeView=this._createKeystrokeView(),this.bind("_tooltipString").to(this,"tooltip",this,"label",this,"keystroke",this._getTooltipString.bind(this));const r={tag:"button",attributes:{class:["ck","ck-button",n.to("class"),n.if("isEnabled","ck-disabled",(t=>!t)),n.if("isVisible","ck-hidden",(t=>!t)),n.to("isOn",(t=>t?"ck-on":"ck-off")),n.if("withText","ck-button_with-text"),n.if("withKeystroke","ck-button_with-keystroke")],role:n.to("role"),type:n.to("type",(t=>t||"button")),tabindex:n.to("tabindex"),"aria-checked":n.to("ariaChecked"),"aria-label":n.to("ariaLabel"),"aria-labelledby":n.to("ariaLabelledBy"),"aria-disabled":n.if("isEnabled",!0,(t=>!t)),"aria-pressed":n.to("isOn",(t=>!!this.isToggleable&&String(!!t))),"data-cke-tooltip-text":n.to("_tooltipString"),"data-cke-tooltip-position":n.to("tooltipPosition")},children:this.children,on:{click:n.to((t=>{this.isEnabled?this.fire("execute"):t.preventDefault()}))}};i.isSafari&&(this._focusDelayed||(this._focusDelayed=or((()=>this.focus()),0)),r.on.mousedown=n.to((()=>{this._focusDelayed()})),r.on.mouseup=n.to((()=>{this._focusDelayed.cancel()}))),this.setTemplate(r)}render(){super.render(),this.icon&&(this.iconView.bind("content").to(this,"icon"),this.children.add(this.iconView)),this.children.add(this.labelView),this.withKeystroke&&this.keystroke&&this.children.add(this.keystrokeView)}focus(){this.element.focus()}destroy(){this._focusDelayed&&this._focusDelayed.cancel(),super.destroy()}_setupLabelView(t){return t.bind("text","style","id").to(this,"label","labelStyle","ariaLabelledBy"),t}_createKeystrokeView(){const t=new Lr;return t.setTemplate({tag:"span",attributes:{class:["ck","ck-button__keystroke"]},children:[{text:this.bindTemplate.to("keystroke",(t=>yi(t)))}]}),t}_getTooltipString(t,e,n){return t?"string"==typeof t?t:(n&&(n=yi(n)),t instanceof Function?t(e,n):`${e}${n?` (${n})`:""}`):""}}var im=n(7913),rm={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(im.A,rm);im.A.locals;class sm extends Lr{children;iconView;constructor(t,e={}){super(t);const n=this.bindTemplate;this.set("label",e.label||""),this.set("class",e.class||null),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-form__header",n.to("class")]},children:this.children}),e.icon&&(this.iconView=new Xu,this.iconView.content=e.icon,this.children.add(this.iconView));const o=new Lr(t);o.setTemplate({tag:"h2",attributes:{class:["ck","ck-form__header__label"],role:"presentation"},children:[{text:n.to("label")}]}),this.children.add(o)}}class am extends(L()){focusables;focusTracker;keystrokeHandler;actions;constructor(t){if(super(),this.focusables=t.focusables,this.focusTracker=t.focusTracker,this.keystrokeHandler=t.keystrokeHandler,this.actions=t.actions,t.actions&&t.keystrokeHandler)for(const e in t.actions){let n=t.actions[e];"string"==typeof n&&(n=[n]);for(const o of n)t.keystrokeHandler.set(o,((t,n)=>{this[e](),n()}))}this.on("forwardCycle",(()=>this.focusFirst()),{priority:"low"}),this.on("backwardCycle",(()=>this.focusLast()),{priority:"low"})}get first(){return this.focusables.find(cm)||null}get last(){return this.focusables.filter(cm).slice(-1)[0]||null}get next(){return this._getDomFocusableItem(1)}get previous(){return this._getDomFocusableItem(-1)}get current(){let t=null;return null===this.focusTracker.focusedElement?null:(this.focusables.find(((e,n)=>{const o=e.element===this.focusTracker.focusedElement;return o&&(t=n),o})),t)}focusFirst(){this._focus(this.first,1)}focusLast(){this._focus(this.last,-1)}focusNext(){const t=this.next;t&&this.focusables.getIndex(t)===this.current||t===this.first?this.fire("forwardCycle"):this._focus(t,1)}focusPrevious(){const t=this.previous;t&&this.focusables.getIndex(t)===this.current||t===this.last?this.fire("backwardCycle"):this._focus(t,-1)}_focus(t,e){t&&this.focusTracker.focusedElement!==t.element&&t.focus(e)}_getDomFocusableItem(t){const e=this.focusables.length;if(!e)return null;const n=this.current;if(null===n)return this[1===t?"first":"last"];let o=this.focusables.get(n),i=(n+e+t)%e;do{const n=this.focusables.get(i);if(cm(n)){o=n;break}i=(i+e+t)%e}while(i!==n);return o}}function cm(t){return lm(t)&&oi(t.element)}function lm(t){return!(!("focus"in t)||"function"!=typeof t.focus)}function dm(t){return class extends t{_onDragBound=this._onDrag.bind(this);_onDragEndBound=this._onDragEnd.bind(this);_lastDraggingCoordinates={x:0,y:0};constructor(...t){super(...t),this.on("render",(()=>{this._attachListeners()})),this.set("isDragging",!1)}_attachListeners(){this.listenTo(this.element,"mousedown",this._onDragStart.bind(this)),this.listenTo(this.element,"touchstart",this._onDragStart.bind(this))}_attachDragListeners(){this.listenTo(Oo.document,"mouseup",this._onDragEndBound),this.listenTo(Oo.document,"touchend",this._onDragEndBound),this.listenTo(Oo.document,"mousemove",this._onDragBound),this.listenTo(Oo.document,"touchmove",this._onDragBound)}_detachDragListeners(){this.stopListening(Oo.document,"mouseup",this._onDragEndBound),this.stopListening(Oo.document,"touchend",this._onDragEndBound),this.stopListening(Oo.document,"mousemove",this._onDragBound),this.stopListening(Oo.document,"touchmove",this._onDragBound)}_onDragStart(t,e){if(!this._isHandleElementPressed(e))return;this._attachDragListeners();let n=0,o=0;e instanceof MouseEvent?(n=e.clientX,o=e.clientY):(n=e.touches[0].clientX,o=e.touches[0].clientY),this._lastDraggingCoordinates={x:n,y:o},this.isDragging=!0}_onDrag(t,e){if(!this.isDragging)return void this._detachDragListeners();let n=0,o=0;e instanceof MouseEvent?(n=e.clientX,o=e.clientY):(n=e.touches[0].clientX,o=e.touches[0].clientY),e.preventDefault(),this.fire("drag",{deltaX:Math.round(n-this._lastDraggingCoordinates.x),deltaY:Math.round(o-this._lastDraggingCoordinates.y)}),this._lastDraggingCoordinates={x:n,y:o}}_onDragEnd(){this._detachDragListeners(),this.isDragging=!1}_isHandleElementPressed(t){return!!this.dragHandleElement&&(this.dragHandleElement===t.target||t.target instanceof HTMLElement&&this.dragHandleElement.contains(t.target))}}}var hm=n(9822),um={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(hm.A,um);hm.A.locals;class mm extends Lr{children;keystrokes;focusCycler;_focusTracker;_focusables;constructor(t){super(t),this.children=this.createCollection(),this.keystrokes=new er,this._focusTracker=new tr,this._focusables=new lr,this.focusCycler=new am({focusables:this._focusables,focusTracker:this._focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-dialog__actions"]},children:this.children})}render(){super.render(),this.keystrokes.listenTo(this.element)}setButtons(t){for(const e of t){const t=new om(this.locale);let n;for(n in t.on("execute",(()=>e.onExecute())),e.onCreate&&e.onCreate(t),e)"onExecute"!=n&&"onCreate"!=n&&t.set(n,e[n]);this.children.add(t)}this._updateFocusCyclableItems()}focus(t){-1===t?this.focusCycler.focusLast():this.focusCycler.focusFirst()}_updateFocusCyclableItems(){Array.from(this.children).forEach((t=>{this._focusables.add(t),this._focusTracker.add(t.element)}))}}class gm extends Lr{children;constructor(t){super(t),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-dialog__content"]},children:this.children})}reset(){for(;this.children.length;)this.children.remove(0)}}var pm=n(9819),fm={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(pm.A,fm);pm.A.locals;const km="screen-center",bm="editor-center",wm="editor-top-side",_m="editor-top-center",Am="editor-bottom-center",Cm="editor-above-center",vm="editor-below-center",ym=Xo("px");class xm extends(dm(Lr)){parts;headerView;closeButtonView;actionsView;static defaultOffset=15;contentView;keystrokes;focusTracker;wasMoved=!1;_getCurrentDomRoot;_getViewportOffset;_focusables;_focusCycler;constructor(t,{getCurrentDomRoot:e,getViewportOffset:n}){super(t);const o=this.bindTemplate,i=t.t;this.set("className",""),this.set("ariaLabel",i("Editor dialog")),this.set("isModal",!1),this.set("position",km),this.set("_isVisible",!1),this.set("_isTransparent",!1),this.set("_top",0),this.set("_left",0),this._getCurrentDomRoot=e,this._getViewportOffset=n,this.decorate("moveTo"),this.parts=this.createCollection(),this.keystrokes=new er,this.focusTracker=new tr,this._focusables=new lr,this._focusCycler=new am({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-dialog-overlay",o.if("isModal","ck-dialog-overlay__transparent",(t=>!t)),o.if("_isVisible","ck-hidden",(t=>!t))],tabindex:"-1"},children:[{tag:"div",attributes:{tabindex:"-1",class:["ck","ck-dialog",o.to("className")],role:"dialog","aria-label":o.to("ariaLabel"),style:{top:o.to("_top",(t=>ym(t))),left:o.to("_left",(t=>ym(t))),visibility:o.if("_isTransparent","hidden")}},children:this.parts}]})}render(){super.render(),this.keystrokes.set("Esc",((t,e)=>{this.fire("close",{source:"escKeyPress"}),e()})),this.on("drag",((t,{deltaX:e,deltaY:n})=>{this.wasMoved=!0,this.moveBy(e,n)})),this.listenTo(Oo.window,"resize",(()=>{this._isVisible&&!this.wasMoved&&this.updatePosition()})),this.listenTo(Oo.document,"scroll",(()=>{this._isVisible&&!this.wasMoved&&this.updatePosition()})),this.on("change:_isVisible",((t,e,n)=>{n&&(this._isTransparent=!0,setTimeout((()=>{this.updatePosition(),this._isTransparent=!1,this.focus()}),10))})),this.keystrokes.listenTo(this.element)}get dragHandleElement(){return this.headerView?this.headerView.element:null}setupParts({icon:t,title:e,hasCloseButton:n=!0,content:o,actionButtons:i}){e&&(this.headerView=new sm(this.locale,{icon:t}),n&&(this.closeButtonView=this._createCloseButton(),this.headerView.children.add(this.closeButtonView)),this.headerView.label=e,this.ariaLabel=e,this.parts.add(this.headerView,0)),o&&(o instanceof Lr&&(o=[o]),this.contentView=new gm(this.locale),this.contentView.children.addMany(o),this.parts.add(this.contentView)),i&&(this.actionsView=new mm(this.locale),this.actionsView.setButtons(i),this.parts.add(this.actionsView)),this._updateFocusCyclableItems()}focus(){this._focusCycler.focusFirst()}moveTo(t,e){const n=this._getViewportRect(),o=this._getDialogRect();t+o.width>n.right&&(t=n.right-o.width),t{var e;this._focusables.add(t),this.focusTracker.add(t.element),lm(e=t)&&"focusCycler"in e&&e.focusCycler instanceof am&&(this.listenTo(t.focusCycler,"forwardCycle",(t=>{this._focusCycler.focusNext(),this._focusCycler.next!==this._focusCycler.focusables.get(this._focusCycler.current)&&t.stop()})),this.listenTo(t.focusCycler,"backwardCycle",(t=>{this._focusCycler.focusPrevious(),this._focusCycler.previous!==this._focusCycler.focusables.get(this._focusCycler.current)&&t.stop()})))}))}_createCloseButton(){const t=new om(this.locale),e=this.locale.t;return t.set({label:e("Close"),tooltip:!0,icon:Ju.cancel}),t.on("execute",(()=>this.fire("close",{source:"closeButton"}))),t}}class Em extends Nr{view;static _visibleDialogPlugin;_onHide;static get pluginName(){return"Dialog"}constructor(t){super(t);const e=t.t;this._initShowHideListeners(),this._initFocusToggler(),this._initMultiRootIntegration(),this.set("id",null),t.accessibility.addKeystrokeInfos({categoryId:"navigation",keystrokes:[{label:e("Move focus in and out of an active dialog window"),keystroke:"Ctrl+F6",mayRequireFn:!0}]})}_initShowHideListeners(){this.on("show",((t,e)=>{this._show(e)})),this.on("show",((t,e)=>{e.onShow&&e.onShow(this)}),{priority:"low"}),this.on("hide",(()=>{Em._visibleDialogPlugin&&Em._visibleDialogPlugin._hide()})),this.on("hide",(()=>{this._onHide&&(this._onHide(this),this._onHide=void 0)}),{priority:"low"})}_initFocusToggler(){const t=this.editor;t.keystrokes.set("Ctrl+F6",((e,n)=>{this.isOpen&&!this.view.isModal&&(this.view.focusTracker.isFocused?t.editing.view.focus():this.view.focus(),n())}))}_initMultiRootIntegration(){const t=this.editor.model;t.document.on("change:data",(()=>{if(!this.view)return;const e=t.document.differ.getChangedRoots();for(const t of e)t.state&&this.view.updatePosition()}))}show(t){this.hide(),this.fire(`show:${t.id}`,t)}_show({id:t,icon:e,title:n,hasCloseButton:o=!0,content:i,actionButtons:r,className:s,isModal:a,position:c,onHide:l}){const d=this.editor;this.view=new xm(d.locale,{getCurrentDomRoot:()=>d.editing.view.getDomRoot(d.model.document.selection.anchor.root.rootName),getViewportOffset:()=>d.ui.viewportOffset});const h=this.view;h.on("close",(()=>{this.hide()})),d.ui.view.body.add(h),d.ui.focusTracker.add(h.element),d.keystrokes.listenTo(h.element),c||(c=a?km:bm),h.set({position:c,_isVisible:!0,className:s,isModal:a}),h.setupParts({icon:e,title:n,hasCloseButton:o,content:i,actionButtons:r}),this.id=t,l&&(this._onHide=l),this.isOpen=!0,Em._visibleDialogPlugin=this}hide(){Em._visibleDialogPlugin&&Em._visibleDialogPlugin.fire(`hide:${Em._visibleDialogPlugin.id}`)}_hide(){if(!this.view)return;const t=this.editor,e=this.view;e.contentView&&e.contentView.reset(),t.ui.view.body.remove(e),t.ui.focusTracker.remove(e.element),t.keystrokes.stopListening(e.element),e.destroy(),t.editing.view.focus(),this.id=null,this.isOpen=!1,Em._visibleDialogPlugin=null}}var Dm=n(977),Bm={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Dm.A,Bm);Dm.A.locals;class Tm extends om{constructor(t){super(t),this.set({withText:!0,withKeystroke:!0,tooltip:!1,role:"menuitem"}),this.extendTemplate({attributes:{class:["ck-menu-bar__menu__item__button"]}})}}var Sm=n(7801),Im={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Sm.A,Im);Sm.A.locals;class Pm extends Lr{id;constructor(t){super(t),this.set("text",void 0),this.set("for",void 0),this.id=`ck-editor__label_${A()}`;const e=this.bindTemplate;this.setTemplate({tag:"label",attributes:{class:["ck","ck-label"],id:this.id,for:e.to("for")},children:[{text:e.to("text")}]})}}class zm extends Lr{constructor(t,e){super(t);const n=t.t,o=new Pm;o.text=n("Help Contents. To close this dialog press ESC."),this.setTemplate({tag:"div",attributes:{class:["ck","ck-accessibility-help-dialog__content"],"aria-labelledby":o.id,role:"document",tabindex:-1},children:[Ct(document,"p",{},n("Below, you can find a list of keyboard shortcuts that can be used in the editor.")),...this._createCategories(Array.from(e.values())),o]})}focus(){this.element.focus()}_createCategories(t){return t.map((t=>{const e=[Ct(document,"h3",{},t.label),...Array.from(t.groups.values()).map((t=>this._createGroup(t))).flat()];return t.description&&e.splice(1,0,Ct(document,"p",{},t.description)),Ct(document,"section",{},e)}))}_createGroup(t){const e=t.keystrokes.sort(((t,e)=>t.label.localeCompare(e.label))).map((t=>this._createGroupRow(t))).flat(),n=[Ct(document,"dl",{},e)];return t.label&&n.unshift(Ct(document,"h4",{},t.label)),n}_createGroupRow(t){const e=this.locale.t,n=Ct(document,"dt"),o=Ct(document,"dd"),r=function(t){if("string"==typeof t)return[[t]];if("string"==typeof t[0])return[t];return t}(t.keystroke),s=[];for(const t of r)s.push(t.map(Rm).join(""));return n.innerHTML=t.label,o.innerHTML=s.join(", ")+(t.mayRequireFn&&i.isMac?` ${e("(may require Fn)")}`:""),[n,o]}}function Rm(t){return yi(t).split("+").map((t=>`${t}`)).join("+")}const Lm='';var Fm=n(8527),Mm={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Fm.A,Mm);Fm.A.locals;class Vm extends Nr{contentView=null;static get requires(){return[Em]}static get pluginName(){return"AccessibilityHelp"}init(){const t=this.editor,e=t.locale.t;t.ui.componentFactory.add("accessibilityHelp",(()=>{const t=this._createButton(om);return t.set({tooltip:!0,withText:!1,label:e("Accessibility help")}),t})),t.ui.componentFactory.add("menuBar:accessibilityHelp",(()=>{const t=this._createButton(Tm);return t.label=e("Accessibility"),t})),t.keystrokes.set("Alt+0",((t,e)=>{this._showDialog(),e()})),this._setupRootLabels()}_createButton(t){const e=new t(this.editor.locale);return e.set({keystroke:"Alt+0",icon:Lm}),e.on("execute",(()=>this._showDialog())),e}_setupRootLabels(){const t=this.editor,e=t.editing.view,n=t.t;function o(t,e){const o=`${e.getAttribute("aria-label")}. ${n("Press %0 for help.",[yi("Alt+0")])}`;t.setAttribute("aria-label",o,e)}t.ui.on("ready",(()=>{e.change((t=>{for(const n of e.document.roots)o(t,n)})),t.on("addRoot",((n,i)=>{const r=t.editing.view.document.getRoot(i.rootName);e.change((t=>o(t,r)))}),{priority:"low"})}))}_showDialog(){const t=this.editor,e=t.plugins.get("Dialog"),n=t.locale.t;this.contentView||(this.contentView=new zm(t.locale,t.accessibility.keystrokeInfos)),e.show({id:"accessibilityHelp",className:"ck-accessibility-help-dialog",title:n("Accessibility help"),icon:Lm,hasCloseButton:!0,content:this.contentView})}}class Om extends lr{locale;_bodyCollectionContainer;constructor(t,e=[]){super(e),this.locale=t}get bodyCollectionContainer(){return this._bodyCollectionContainer}attachToDom(){this._bodyCollectionContainer=new dr({tag:"div",attributes:{class:["ck","ck-reset_all","ck-body","ck-rounded-corners"],dir:this.locale.uiLanguageDirection},children:this}).render();let t=document.querySelector(".ck-body-wrapper");t||(t=Ct(document,"div",{class:"ck-body-wrapper"}),document.body.appendChild(t)),t.appendChild(this._bodyCollectionContainer)}detachFromDom(){super.destroy(),this._bodyCollectionContainer&&this._bodyCollectionContainer.remove();const t=document.querySelector(".ck-body-wrapper");t&&0==t.childElementCount&&t.remove()}}var Nm=n(4391),Hm={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Nm.A,Hm);Nm.A.locals;class qm extends om{toggleSwitchView;constructor(t){super(t),this.isToggleable=!0,this.toggleSwitchView=this._createToggleView(),this.extendTemplate({attributes:{class:"ck-switchbutton"}})}render(){super.render(),this.children.add(this.toggleSwitchView)}_createToggleView(){const t=new Lr;return t.setTemplate({tag:"span",attributes:{class:["ck","ck-button__toggle"]},children:[{tag:"span",attributes:{class:["ck","ck-button__toggle__inner"]}}]}),t}}class jm extends om{buttonView;_fileInputView;constructor(t){super(t),this.buttonView=this,this._fileInputView=new Wm(t),this._fileInputView.bind("acceptedType").to(this),this._fileInputView.bind("allowMultipleFiles").to(this),this._fileInputView.delegate("done").to(this),this.on("execute",(()=>{this._fileInputView.open()})),this.extendTemplate({attributes:{class:"ck-file-dialog-button"}})}render(){super.render(),this.children.add(this._fileInputView)}}class Wm extends Lr{constructor(t){super(t),this.set("acceptedType",void 0),this.set("allowMultipleFiles",!1);const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck-hidden"],type:"file",tabindex:"-1",accept:e.to("acceptedType"),multiple:e.to("allowMultipleFiles")},on:{change:e.to((()=>{this.element&&this.element.files&&this.element.files.length&&this.fire("done",this.element.files),this.element.value=""}))}})}open(){this.element.click()}}const Gm='';var Km=n(25),Um={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Km.A,Um);Km.A.locals;class $m extends Lr{buttonView;children;constructor(t,e){super(t);const n=this.bindTemplate;this.set("isCollapsed",!1),this.set("label",""),this.buttonView=this._createButtonView(),this.children=this.createCollection(),this.set("_collapsibleAriaLabelUid",void 0),e&&this.children.addMany(e),this.setTemplate({tag:"div",attributes:{class:["ck","ck-collapsible",n.if("isCollapsed","ck-collapsible_collapsed")]},children:[this.buttonView,{tag:"div",attributes:{class:["ck","ck-collapsible__children"],role:"region",hidden:n.if("isCollapsed","hidden"),"aria-labelledby":n.to("_collapsibleAriaLabelUid")},children:this.children}]})}render(){super.render(),this._collapsibleAriaLabelUid=this.buttonView.labelView.element.id}focus(){this.buttonView.focus()}_createButtonView(){const t=new om(this.locale),e=t.bindTemplate;return t.set({withText:!0,icon:Gm}),t.extendTemplate({attributes:{"aria-expanded":e.to("isOn",(t=>String(t)))}}),t.bind("label").to(this),t.bind("isOn").to(this,"isCollapsed",(t=>!t)),t.on("execute",(()=>{this.isCollapsed=!this.isCollapsed})),t}}function Zm(t,e){const n=t.t,o={Black:n("Black"),"Dim grey":n("Dim grey"),Grey:n("Grey"),"Light grey":n("Light grey"),White:n("White"),Red:n("Red"),Orange:n("Orange"),Yellow:n("Yellow"),"Light green":n("Light green"),Green:n("Green"),Aquamarine:n("Aquamarine"),Turquoise:n("Turquoise"),"Light blue":n("Light blue"),Blue:n("Blue"),Purple:n("Purple")};return e.map((t=>{const e=o[t.label];return e&&e!=t.label&&(t.label=e),t}))}function Jm(t){return t.map(Ym).filter((t=>!!t))}function Ym(t){return"string"==typeof t?{model:t,label:t,hasBorder:!1,view:{name:"span",styles:{color:t}}}:{model:t.color,label:t.label||t.color,hasBorder:void 0!==t.hasBorder&&t.hasBorder,view:{name:"span",styles:{color:`${t.color}`}}}}class Qm extends om{constructor(t){super(t);const e=this.bindTemplate;this.set("color",void 0),this.set("hasBorder",!1),this.icon='',this.extendTemplate({attributes:{style:{backgroundColor:e.to("color",(t=>i.isMediaForcedColors?null:t))},class:["ck","ck-color-grid__tile",e.if("hasBorder","ck-color-selector__color-tile_bordered")]}})}render(){super.render(),this.iconView.fillColor="hsl(0, 0%, 100%)"}}var Xm=n(7317),tg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Xm.A,tg);Xm.A.locals;class eg extends Lr{columns;items;focusTracker;keystrokes;constructor(t,e){super(t);const n=e&&e.colorDefinitions?e.colorDefinitions:[];this.columns=e&&e.columns?e.columns:5;const o={gridTemplateColumns:`repeat( ${this.columns}, 1fr)`};this.set("selectedColor",void 0),this.items=this.createCollection(),this.focusTracker=new tr,this.keystrokes=new er,this.items.on("add",((t,e)=>{e.isOn=e.color===this.selectedColor})),n.forEach((t=>{const e=new Qm;e.set({color:t.color,label:t.label,tooltip:!0,hasBorder:t.options.hasBorder}),e.on("execute",(()=>{this.fire("execute",{value:t.color,hasBorder:t.options.hasBorder,label:t.label})})),this.items.add(e)})),this.setTemplate({tag:"div",children:this.items,attributes:{class:["ck","ck-color-grid"],style:o}}),this.on("change:selectedColor",((t,e,n)=>{for(const t of this.items)t.isOn=t.color===n}))}focus(){this.items.length&&this.items.first.focus()}focusLast(){this.items.length&&this.items.last.focus()}render(){super.render();for(const t of this.items)this.focusTracker.add(t.element);this.items.on("add",((t,e)=>{this.focusTracker.add(e.element)})),this.items.on("remove",((t,e)=>{this.focusTracker.remove(e.element)})),this.keystrokes.listenTo(this.element),Or({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.items,numberOfColumns:this.columns,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection})}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}}var ng=n(6931);const og=function(t){var e,n,o=[],i=1;if("string"==typeof t)if(ng[t])o=ng[t].slice(),n="rgb";else if("transparent"===t)i=0,n="rgb",o=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(t)){var r=t.slice(1);i=1,(c=r.length)<=4?(o=[parseInt(r[0]+r[0],16),parseInt(r[1]+r[1],16),parseInt(r[2]+r[2],16)],4===c&&(i=parseInt(r[3]+r[3],16)/255)):(o=[parseInt(r[0]+r[1],16),parseInt(r[2]+r[3],16),parseInt(r[4]+r[5],16)],8===c&&(i=parseInt(r[6]+r[7],16)/255)),o[0]||(o[0]=0),o[1]||(o[1]=0),o[2]||(o[2]=0),n="rgb"}else if(e=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(t)){var s=e[1],a="rgb"===s;n=r=s.replace(/a$/,"");var c="cmyk"===r?4:"gray"===r?1:3;o=e[2].trim().split(/\s*[,\/]\s*|\s+/).map((function(t,e){if(/%$/.test(t))return e===c?parseFloat(t)/100:"rgb"===r?255*parseFloat(t)/100:parseFloat(t);if("h"===r[e]){if(/deg$/.test(t))return parseFloat(t);if(void 0!==ig[t])return ig[t]}return parseFloat(t)})),s===r&&o.push(1),i=a||void 0===o[c]?1:o[c],o=o.slice(0,c)}else t.length>10&&/[0-9](?:\s|\/)/.test(t)&&(o=t.match(/([0-9]+)/g).map((function(t){return parseFloat(t)})),n=t.match(/([a-z])/gi).join("").toLowerCase());else isNaN(t)?Array.isArray(t)||t.length?(o=[t[0],t[1],t[2]],n="rgb",i=4===t.length?t[3]:1):t instanceof Object&&(null!=t.r||null!=t.red||null!=t.R?(n="rgb",o=[t.r||t.red||t.R||0,t.g||t.green||t.G||0,t.b||t.blue||t.B||0]):(n="hsl",o=[t.h||t.hue||t.H||0,t.s||t.saturation||t.S||0,t.l||t.lightness||t.L||t.b||t.brightness]),i=t.a||t.alpha||t.opacity||1,null!=t.opacity&&(i/=100)):(n="rgb",o=[t>>>16,(65280&t)>>>8,255&t]);return{space:n,values:o,alpha:i}};var ig={red:0,orange:60,yellow:120,green:180,blue:240,purple:300};var rg=n(9047);function sg(t,e){if(!t)return"";const n=ag(t);if(!n)return"";if(n.space===e)return t;if(o=n,!Object.keys(rg).includes(o.space))return"";var o;const i=rg[n.space][e];if(!i)return"";return function(t,e){switch(e){case"hex":return`#${t}`;case"rgb":return`rgb( ${t[0]}, ${t[1]}, ${t[2]} )`;case"hsl":return`hsl( ${t[0]}, ${t[1]}%, ${t[2]}% )`;case"hwb":return`hwb( ${t[0]}, ${t[1]}, ${t[2]} )`;case"lab":return`lab( ${t[0]}% ${t[1]} ${t[2]} )`;case"lch":return`lch( ${t[0]}% ${t[1]} ${t[2]} )`;default:return""}}(i("hex"===n.space?n.hexValue:n.values),e)}function ag(t){if(t.startsWith("#")){const e=og(t);return{space:"hex",values:e.values,hexValue:t,alpha:e.alpha}}const e=og(t);return e.space?e:null}var cg=n(4962),lg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(cg.A,lg);cg.A.locals;class dg extends Lr{fieldView;labelView;statusView;fieldWrapperChildren;constructor(t,e){super(t);const n=`ck-labeled-field-view-${A()}`,o=`ck-labeled-field-view-status-${A()}`;this.fieldView=e(this,n,o),this.set("label",void 0),this.set("isEnabled",!0),this.set("isEmpty",!0),this.set("isFocused",!1),this.set("errorText",null),this.set("infoText",null),this.set("class",void 0),this.set("placeholder",void 0),this.labelView=this._createLabelView(n),this.statusView=this._createStatusView(o),this.fieldWrapperChildren=this.createCollection([this.fieldView,this.labelView]),this.bind("_statusText").to(this,"errorText",this,"infoText",((t,e)=>t||e));const i=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view",i.to("class"),i.if("isEnabled","ck-disabled",(t=>!t)),i.if("isEmpty","ck-labeled-field-view_empty"),i.if("isFocused","ck-labeled-field-view_focused"),i.if("placeholder","ck-labeled-field-view_placeholder"),i.if("errorText","ck-error")]},children:[{tag:"div",attributes:{class:["ck","ck-labeled-field-view__input-wrapper"]},children:this.fieldWrapperChildren},this.statusView]})}_createLabelView(t){const e=new Pm(this.locale);return e.for=t,e.bind("text").to(this,"label"),e}_createStatusView(t){const e=new Lr(this.locale),n=this.bindTemplate;return e.setTemplate({tag:"div",attributes:{class:["ck","ck-labeled-field-view__status",n.if("errorText","ck-labeled-field-view__status_error"),n.if("_statusText","ck-hidden",(t=>!t))],id:t,role:n.if("errorText","alert")},children:[{text:n.to("_statusText")}]}),e}focus(t){this.fieldView.focus(t)}}class hg extends Lr{focusTracker;constructor(t){super(t),this.set("value",void 0),this.set("id",void 0),this.set("placeholder",void 0),this.set("tabIndex",void 0),this.set("isReadOnly",!1),this.set("hasError",!1),this.set("ariaDescribedById",void 0),this.set("ariaLabel",void 0),this.focusTracker=new tr,this.bind("isFocused").to(this.focusTracker),this.set("isEmpty",!0);const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck","ck-input",e.if("isFocused","ck-input_focused"),e.if("isEmpty","ck-input-text_empty"),e.if("hasError","ck-error")],id:e.to("id"),placeholder:e.to("placeholder"),tabindex:e.to("tabIndex"),readonly:e.to("isReadOnly"),"aria-invalid":e.if("hasError",!0),"aria-describedby":e.to("ariaDescribedById"),"aria-label":e.to("ariaLabel")},on:{input:e.to(((...t)=>{this.fire("input",...t),this._updateIsEmpty()})),change:e.to(this._updateIsEmpty.bind(this))}})}render(){super.render(),this.focusTracker.add(this.element),this._setDomElementValue(this.value),this._updateIsEmpty(),this.on("change:value",((t,e,n)=>{this._setDomElementValue(n),this._updateIsEmpty()}))}destroy(){super.destroy(),this.focusTracker.destroy()}select(){this.element.select()}focus(){this.element.focus()}reset(){this.value=this.element.value="",this._updateIsEmpty()}_updateIsEmpty(){this.isEmpty=!this.element.value}_setDomElementValue(t){this.element.value=t||0===t?t:""}}var ug=n(253),mg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(ug.A,mg);ug.A.locals;class gg extends hg{constructor(t){super(t),this.set("inputMode","text");const e=this.bindTemplate;this.extendTemplate({attributes:{inputmode:e.to("inputMode")}})}}class pg extends gg{constructor(t){super(t),this.extendTemplate({attributes:{type:"text",class:["ck-input-text"]}})}}class fg extends gg{constructor(t,{min:e,max:n,step:o}={}){super(t);const i=this.bindTemplate;this.set("min",e),this.set("max",n),this.set("step",o),this.extendTemplate({attributes:{type:"number",class:["ck-input-number"],min:i.to("min"),max:i.to("max"),step:i.to("step")}})}}var kg=n(1671),bg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(kg.A,bg);kg.A.locals;class wg extends Lr{children;constructor(t){super(t);const e=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-dropdown__panel",e.to("position",(t=>`ck-dropdown__panel_${t}`)),e.if("isVisible","ck-dropdown__panel-visible")],tabindex:"-1"},children:this.children,on:{selectstart:e.to((t=>{"input"!==t.target.tagName.toLocaleLowerCase()&&t.preventDefault()}))}})}focus(){if(this.children.length){const t=this.children.first;"function"==typeof t.focus?t.focus():E("ui-dropdown-panel-focus-child-missing-focus",{childView:this.children.first,dropdownPanel:this})}}focusLast(){if(this.children.length){const t=this.children.last;"function"==typeof t.focusLast?t.focusLast():t.focus()}}}var _g=n(8149),Ag={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(_g.A,Ag);_g.A.locals;class Cg extends Lr{buttonView;panelView;focusTracker;keystrokes;listView;toolbarView;constructor(t,e,n){super(t);const o=this.bindTemplate;this.buttonView=e,this.panelView=n,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("class",void 0),this.set("id",void 0),this.set("panelPosition","auto"),this.panelView.bind("isVisible").to(this,"isOpen"),this.keystrokes=new er,this.focusTracker=new tr,this.setTemplate({tag:"div",attributes:{class:["ck","ck-dropdown",o.to("class"),o.if("isEnabled","ck-disabled",(t=>!t))],id:o.to("id"),"aria-describedby":o.to("ariaDescribedById")},children:[e,n]}),e.extendTemplate({attributes:{class:["ck-dropdown__button"],"data-cke-tooltip-disabled":o.to("isOpen")}})}render(){super.render(),this.focusTracker.add(this.buttonView.element),this.focusTracker.add(this.panelView.element),this.listenTo(this.buttonView,"open",(()=>{this.isOpen=!this.isOpen})),this.on("change:isOpen",((t,e,n)=>{if(n)if("auto"===this.panelPosition){const t=Cg._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions});this.panelView.position=t?t.name:this._panelPositions[0].name}else this.panelView.position=this.panelPosition})),this.keystrokes.listenTo(this.element);const t=(t,e)=>{this.isOpen&&(this.isOpen=!1,e())};this.keystrokes.set("arrowdown",((t,e)=>{this.buttonView.isEnabled&&!this.isOpen&&(this.isOpen=!0,e())})),this.keystrokes.set("arrowright",((t,e)=>{this.isOpen&&e()})),this.keystrokes.set("arrowleft",t),this.keystrokes.set("esc",t)}focus(){this.buttonView.focus()}get _panelPositions(){const{south:t,north:e,southEast:n,southWest:o,northEast:i,northWest:r,southMiddleEast:s,southMiddleWest:a,northMiddleEast:c,northMiddleWest:l}=Cg.defaultPanelPositions;return"rtl"!==this.locale.uiLanguageDirection?[n,o,s,a,t,i,r,c,l,e]:[o,n,a,s,t,r,i,l,c,e]}static defaultPanelPositions={south:(t,e)=>({top:t.bottom,left:t.left-(e.width-t.width)/2,name:"s"}),southEast:t=>({top:t.bottom,left:t.left,name:"se"}),southWest:(t,e)=>({top:t.bottom,left:t.left-e.width+t.width,name:"sw"}),southMiddleEast:(t,e)=>({top:t.bottom,left:t.left-(e.width-t.width)/4,name:"sme"}),southMiddleWest:(t,e)=>({top:t.bottom,left:t.left-3*(e.width-t.width)/4,name:"smw"}),north:(t,e)=>({top:t.top-e.height,left:t.left-(e.width-t.width)/2,name:"n"}),northEast:(t,e)=>({top:t.top-e.height,left:t.left,name:"ne"}),northWest:(t,e)=>({top:t.top-e.height,left:t.left-e.width+t.width,name:"nw"}),northMiddleEast:(t,e)=>({top:t.top-e.height,left:t.left-(e.width-t.width)/4,name:"nme"}),northMiddleWest:(t,e)=>({top:t.top-e.height,left:t.left-3*(e.width-t.width)/4,name:"nmw"})};static _getOptimalPosition=ii}class vg extends om{arrowView;constructor(t){super(t),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{"aria-haspopup":!0,"aria-expanded":this.bindTemplate.to("isOn",(t=>String(t)))}}),this.delegate("execute").to(this,"open")}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const t=new Xu;return t.content=Gm,t.extendTemplate({attributes:{class:"ck-dropdown__arrow"}}),t}}class yg extends Lr{constructor(t){super(t),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__separator"]}})}}class xg extends Lr{constructor(t){super(t),this.setTemplate({tag:"span",attributes:{class:["ck","ck-toolbar__line-break"]}})}}function Eg(t){if(Array.isArray(t))return{items:t,removeItems:[]};const e={items:[],removeItems:[]};return t?{...e,...t}:e}var Dg=n(9677),Bg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Dg.A,Bg);Dg.A.locals;const Tg={alignLeft:Ju.alignLeft,bold:Ju.bold,importExport:Ju.importExport,paragraph:Ju.paragraph,plus:Ju.plus,text:Ju.text,threeVerticalDots:Ju.threeVerticalDots,pilcrow:Ju.pilcrow,dragIndicator:Ju.dragIndicator};class Sg extends Lr{options;items;focusTracker;keystrokes;itemsView;children;focusables;_focusCycler;_behavior;constructor(t,e){super(t);const n=this.bindTemplate,o=this.t;this.options=e||{},this.set("ariaLabel",o("Editor toolbar")),this.set("maxWidth","auto"),this.items=this.createCollection(),this.focusTracker=new tr,this.keystrokes=new er,this.set("class",void 0),this.set("isCompact",!1),this.itemsView=new Ig(t),this.children=this.createCollection(),this.children.add(this.itemsView),this.focusables=this.createCollection();const i="rtl"===t.uiLanguageDirection;this._focusCycler=new am({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:[i?"arrowright":"arrowleft","arrowup"],focusNext:[i?"arrowleft":"arrowright","arrowdown"]}});const r=["ck","ck-toolbar",n.to("class"),n.if("isCompact","ck-toolbar_compact")];var s;this.options.shouldGroupWhenFull&&this.options.isFloating&&r.push("ck-toolbar_floating"),this.setTemplate({tag:"div",attributes:{class:r,role:"toolbar","aria-label":n.to("ariaLabel"),style:{maxWidth:n.to("maxWidth")},tabindex:-1},children:this.children,on:{mousedown:(s=this,s.bindTemplate.to((t=>{t.target===s.element&&t.preventDefault()})))}}),this._behavior=this.options.shouldGroupWhenFull?new zg(this):new Pg(this)}render(){super.render(),this.focusTracker.add(this.element);for(const t of this.items)this.focusTracker.add(t.element);this.items.on("add",((t,e)=>{this.focusTracker.add(e.element)})),this.items.on("remove",((t,e)=>{this.focusTracker.remove(e.element)})),this.keystrokes.listenTo(this.element),this._behavior.render(this)}destroy(){return this._behavior.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy(),super.destroy()}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}fillFromConfig(t,e,n){this.items.addMany(this._buildItemsFromConfig(t,e,n))}_buildItemsFromConfig(t,e,n){const o=Eg(t),i=n||o.removeItems;return this._cleanItemsConfiguration(o.items,e,i).map((t=>j(t)?this._createNestedToolbarDropdown(t,e,i):"|"===t?new yg:"-"===t?new xg:e.create(t))).filter((t=>!!t))}_cleanItemsConfiguration(t,e,n){const o=t.filter(((t,o,i)=>"|"===t||-1===n.indexOf(t)&&("-"===t?!this.options.shouldGroupWhenFull||(E("toolbarview-line-break-ignored-when-grouping-items",i),!1):!(!j(t)&&!e.has(t))||(E("toolbarview-item-unavailable",{item:t}),!1))));return this._cleanSeparatorsAndLineBreaks(o)}_cleanSeparatorsAndLineBreaks(t){const e=t=>"-"!==t&&"|"!==t,n=t.length,o=t.findIndex(e);if(-1===o)return[];const i=n-t.slice().reverse().findIndex(e);return t.slice(o,i).filter(((t,n,o)=>{if(e(t))return!0;return!(n>0&&o[n-1]===t)}))}_createNestedToolbarDropdown(t,e,n){let{label:o,icon:i,items:r,tooltip:s=!0,withText:a=!1}=t;if(r=this._cleanItemsConfiguration(r,e,n),!r.length)return null;const c=Ug(this.locale);return o||E("toolbarview-nested-toolbar-dropdown-missing-label",t),c.class="ck-toolbar__nested-toolbar-dropdown",c.buttonView.set({label:o,tooltip:s,withText:!!a}),!1!==i?c.buttonView.icon=Tg[i]||i||Ju.threeVerticalDots:c.buttonView.withText=!0,$g(c,(()=>c.toolbarView._buildItemsFromConfig(r,e,n))),c}}class Ig extends Lr{children;constructor(t){super(t),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-toolbar__items"]},children:this.children})}}class Pg{constructor(t){const e=t.bindTemplate;t.set("isVertical",!1),t.itemsView.children.bindTo(t.items).using((t=>t)),t.focusables.bindTo(t.items).using((t=>lm(t)?t:null)),t.extendTemplate({attributes:{class:[e.if("isVertical","ck-toolbar_vertical")]}})}render(){}destroy(){}}class zg{view;viewChildren;viewFocusables;viewItemsView;viewFocusTracker;viewLocale;ungroupedItems;groupedItems;groupedItemsDropdown;resizeObserver=null;cachedPadding=null;shouldUpdateGroupingOnNextResize=!1;viewElement;constructor(t){this.view=t,this.viewChildren=t.children,this.viewFocusables=t.focusables,this.viewItemsView=t.itemsView,this.viewFocusTracker=t.focusTracker,this.viewLocale=t.locale,this.ungroupedItems=t.createCollection(),this.groupedItems=t.createCollection(),this.groupedItemsDropdown=this._createGroupedItemsDropdown(),t.itemsView.children.bindTo(this.ungroupedItems).using((t=>t)),this.ungroupedItems.on("change",this._updateFocusCyclableItems.bind(this)),t.children.on("change",this._updateFocusCyclableItems.bind(this)),t.items.on("change",((t,e)=>{const n=e.index,o=Array.from(e.added);for(const t of e.removed)n>=this.ungroupedItems.length?this.groupedItems.remove(t):this.ungroupedItems.remove(t);for(let t=n;tthis.ungroupedItems.length?this.groupedItems.add(e,t-this.ungroupedItems.length):this.ungroupedItems.add(e,t)}this._updateGrouping()})),t.extendTemplate({attributes:{class:["ck-toolbar_grouping"]}})}render(t){this.viewElement=t.element,this._enableGroupingOnResize(),this._enableGroupingOnMaxWidthChange(t)}destroy(){this.groupedItemsDropdown.destroy(),this.resizeObserver.destroy()}_updateGrouping(){if(!this.viewElement.ownerDocument.body.contains(this.viewElement))return;if(!oi(this.viewElement))return void(this.shouldUpdateGroupingOnNextResize=!0);const t=this.groupedItems.length;let e;for(;this._areItemsOverflowing;)this._groupLastItem(),e=!0;if(!e&&this.groupedItems.length){for(;this.groupedItems.length&&!this._areItemsOverflowing;)this._ungroupFirstItem();this._areItemsOverflowing&&this._groupLastItem()}this.groupedItems.length!==t&&this.view.fire("groupedItemsUpdate")}get _areItemsOverflowing(){if(!this.ungroupedItems.length)return!1;const t=this.viewElement,e=this.viewLocale.uiLanguageDirection,n=new Ko(t.lastChild),o=new Ko(t);if(!this.cachedPadding){const n=Oo.window.getComputedStyle(t),o="ltr"===e?"paddingRight":"paddingLeft";this.cachedPadding=Number.parseInt(n[o])}return"ltr"===e?n.right>o.right-this.cachedPadding:n.left{t&&t===e.contentRect.width&&!this.shouldUpdateGroupingOnNextResize||(this.shouldUpdateGroupingOnNextResize=!1,this._updateGrouping(),t=e.contentRect.width)})),this._updateGrouping()}_enableGroupingOnMaxWidthChange(t){t.on("change:maxWidth",(()=>{this._updateGrouping()}))}_groupLastItem(){this.groupedItems.length||(this.viewChildren.add(new yg),this.viewChildren.add(this.groupedItemsDropdown),this.viewFocusTracker.add(this.groupedItemsDropdown.element)),this.groupedItems.add(this.ungroupedItems.remove(this.ungroupedItems.last),0)}_ungroupFirstItem(){this.ungroupedItems.add(this.groupedItems.remove(this.groupedItems.first)),this.groupedItems.length||(this.viewChildren.remove(this.groupedItemsDropdown),this.viewChildren.remove(this.viewChildren.last),this.viewFocusTracker.remove(this.groupedItemsDropdown.element))}_createGroupedItemsDropdown(){const t=this.viewLocale,e=t.t,n=Ug(t);return n.class="ck-toolbar__grouped-dropdown",n.panelPosition="ltr"===t.uiLanguageDirection?"sw":"se",$g(n,this.groupedItems),n.buttonView.set({label:e("Show more items"),tooltip:!0,tooltipPosition:"rtl"===t.uiLanguageDirection?"se":"sw",icon:Ju.threeVerticalDots}),n}_updateFocusCyclableItems(){this.viewFocusables.clear(),this.ungroupedItems.map((t=>{lm(t)&&this.viewFocusables.add(t)})),this.groupedItems.length&&this.viewFocusables.add(this.groupedItemsDropdown)}}class Rg extends Lr{children;constructor(t){super(t);const e=this.bindTemplate;this.set("isVisible",!0),this.children=this.createCollection(),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__item",e.if("isVisible","ck-hidden",(t=>!t))],role:"presentation"},children:this.children})}focus(){this.children.first&&this.children.first.focus()}}class Lg extends Lr{constructor(t){super(t),this.setTemplate({tag:"li",attributes:{class:["ck","ck-list__separator"]}})}}class Fg extends Lr{labelView;items;children;constructor(t,e=new Pm){super(t);const n=this.bindTemplate,o=new Og(t);this.set({label:"",isVisible:!0}),this.labelView=e,this.labelView.bind("text").to(this,"label"),this.children=this.createCollection(),this.children.addMany([this.labelView,o]),o.set({role:"group",ariaLabelledBy:e.id}),o.focusTracker.destroy(),o.keystrokes.destroy(),this.items=o.items,this.setTemplate({tag:"li",attributes:{role:"presentation",class:["ck","ck-list__group",n.if("isVisible","ck-hidden",(t=>!t))]},children:this.children})}focus(){if(this.items){const t=this.items.find((t=>!(t instanceof Lg)));t&&t.focus()}}}var Mg=n(5199),Vg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Mg.A,Vg);Mg.A.locals;class Og extends Lr{focusables;items;focusTracker;keystrokes;_focusCycler;_listItemGroupToChangeListeners=new WeakMap;constructor(t){super(t);const e=this.bindTemplate;this.focusables=new lr,this.items=this.createCollection(),this.focusTracker=new tr,this.keystrokes=new er,this._focusCycler=new am({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"arrowup",focusNext:"arrowdown"}}),this.set("ariaLabel",void 0),this.set("ariaLabelledBy",void 0),this.set("role",void 0),this.setTemplate({tag:"ul",attributes:{class:["ck","ck-reset","ck-list"],role:e.to("role"),"aria-label":e.to("ariaLabel"),"aria-labelledby":e.to("ariaLabelledBy")},children:this.items})}render(){super.render();for(const t of this.items)t instanceof Fg?this._registerFocusableItemsGroup(t):t instanceof Rg&&this._registerFocusableListItem(t);this.items.on("change",((t,e)=>{for(const t of e.removed)t instanceof Fg?this._deregisterFocusableItemsGroup(t):t instanceof Rg&&this._deregisterFocusableListItem(t);for(const t of Array.from(e.added).reverse())t instanceof Fg?this._registerFocusableItemsGroup(t,e.index):this._registerFocusableListItem(t,e.index)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}focusFirst(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}_registerFocusableListItem(t,e){this.focusTracker.add(t.element),this.focusables.add(t,e)}_deregisterFocusableListItem(t){this.focusTracker.remove(t.element),this.focusables.remove(t)}_getOnGroupItemsChangeCallback(t){return(e,n)=>{for(const t of n.removed)this._deregisterFocusableListItem(t);for(const e of Array.from(n.added).reverse())this._registerFocusableListItem(e,this.items.getIndex(t)+n.index)}}_registerFocusableItemsGroup(t,e){Array.from(t.items).forEach(((t,n)=>{const o=void 0!==e?e+n:void 0;this._registerFocusableListItem(t,o)}));const n=this._getOnGroupItemsChangeCallback(t);this._listItemGroupToChangeListeners.set(t,n),t.items.on("change",n)}_deregisterFocusableItemsGroup(t){for(const e of t.items)this._deregisterFocusableListItem(e);t.items.off("change",this._listItemGroupToChangeListeners.get(t)),this._listItemGroupToChangeListeners.delete(t)}}var Ng=n(1792),Hg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Ng.A,Hg);Ng.A.locals;class qg extends Lr{children;actionView;arrowView;keystrokes;focusTracker;constructor(t,e){super(t);const n=this.bindTemplate;this.set("class",void 0),this.set("labelStyle",void 0),this.set("icon",void 0),this.set("isEnabled",!0),this.set("isOn",!1),this.set("isToggleable",!1),this.set("isVisible",!0),this.set("keystroke",void 0),this.set("withKeystroke",!1),this.set("label",void 0),this.set("tabindex",-1),this.set("tooltip",!1),this.set("tooltipPosition","s"),this.set("type","button"),this.set("withText",!1),this.children=this.createCollection(),this.actionView=this._createActionView(e),this.arrowView=this._createArrowView(),this.keystrokes=new er,this.focusTracker=new tr,this.setTemplate({tag:"div",attributes:{class:["ck","ck-splitbutton",n.to("class"),n.if("isVisible","ck-hidden",(t=>!t)),this.arrowView.bindTemplate.if("isOn","ck-splitbutton_open")]},children:this.children})}render(){super.render(),this.children.add(this.actionView),this.children.add(this.arrowView),this.focusTracker.add(this.actionView.element),this.focusTracker.add(this.arrowView.element),this.keystrokes.listenTo(this.element),this.keystrokes.set("arrowright",((t,e)=>{this.focusTracker.focusedElement===this.actionView.element&&(this.arrowView.focus(),e())})),this.keystrokes.set("arrowleft",((t,e)=>{this.focusTracker.focusedElement===this.arrowView.element&&(this.actionView.focus(),e())}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this.actionView.focus()}_createActionView(t){const e=t||new om;return t||e.bind("icon","isEnabled","isOn","isToggleable","keystroke","label","tabindex","tooltip","tooltipPosition","type","withText").to(this),e.extendTemplate({attributes:{class:"ck-splitbutton__action"}}),e.delegate("execute").to(this),e}_createArrowView(){const t=new om,e=t.bindTemplate;return t.icon=Gm,t.extendTemplate({attributes:{class:["ck-splitbutton__arrow"],"data-cke-tooltip-disabled":e.to("isOn"),"aria-haspopup":!0,"aria-expanded":e.to("isOn",(t=>String(t)))}}),t.bind("isEnabled").to(this),t.bind("label").to(this),t.bind("tooltip").to(this),t.delegate("execute").to(this,"open"),t}}var jg=n(1666),Wg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(jg.A,Wg);jg.A.locals;var Gg=n(3629),Kg={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Gg.A,Kg);Gg.A.locals;function Ug(t,e=vg){const n="function"==typeof e?new e(t):e,o=new wg(t),i=new Cg(t,n,o);return n.bind("isEnabled").to(i),n instanceof qg?n.arrowView.bind("isOn").to(i,"isOpen"):n.bind("isOn").to(i,"isOpen"),function(t){(function(t){t.on("render",(()=>{Fr({emitter:t,activator:()=>t.isOpen,callback:()=>{t.isOpen=!1},contextElements:()=>[t.element,...t.focusTracker._elements]})}))})(t),function(t){t.on("execute",(e=>{e.source instanceof qm||(t.isOpen=!1)}))}(t),function(t){t.focusTracker.on("change:isFocused",((e,n,o)=>{t.isOpen&&!o&&(t.isOpen=!1)}))}(t),function(t){t.keystrokes.set("arrowdown",((e,n)=>{t.isOpen&&(t.panelView.focus(),n())})),t.keystrokes.set("arrowup",((e,n)=>{t.isOpen&&(t.panelView.focusLast(),n())}))}(t),function(t){t.on("change:isOpen",((e,n,o)=>{if(o)return;const i=t.panelView.element;i&&i.contains(Oo.document.activeElement)&&t.buttonView.focus()}))}(t),function(t){t.on("change:isOpen",((e,n,o)=>{o&&t.panelView.focus()}),{priority:"low"})}(t)}(i),i}function $g(t,e,n={}){t.extendTemplate({attributes:{class:["ck-toolbar-dropdown"]}}),t.isOpen?Zg(t,e,n):t.once("change:isOpen",(()=>Zg(t,e,n)),{priority:"highest"}),n.enableActiveItemFocusOnDropdownOpen&&Qg(t,(()=>t.toolbarView.items.find((t=>t.isOn))))}function Zg(t,e,n){const o=t.locale,i=o.t,r=t.toolbarView=new Sg(o),s="function"==typeof e?e():e;r.ariaLabel=n.ariaLabel||i("Dropdown toolbar"),n.maxWidth&&(r.maxWidth=n.maxWidth),n.class&&(r.class=n.class),n.isCompact&&(r.isCompact=n.isCompact),n.isVertical&&(r.isVertical=!0),s instanceof lr?r.items.bindTo(s).using((t=>t)):r.items.addMany(s),t.panelView.children.add(r),r.items.delegate("execute").to(t)}function Jg(t,e,n={}){t.isOpen?Yg(t,e,n):t.once("change:isOpen",(()=>Yg(t,e,n)),{priority:"highest"}),Qg(t,(()=>t.listView.items.find((t=>t instanceof Rg&&t.children.first.isOn))))}function Yg(t,e,n){const o=t.locale,i=t.listView=new Og(o),r="function"==typeof e?e():e;i.ariaLabel=n.ariaLabel,i.role=n.role,Xg(t,i.items,r,o),t.panelView.children.add(i),i.items.delegate("execute").to(t)}function Qg(t,e){t.on("change:isOpen",(()=>{if(!t.isOpen)return;const n=e();n&&("function"==typeof n.focus?n.focus():E("ui-dropdown-focus-child-on-open-child-missing-focus",{view:n}))}),{priority:C.low-10})}function Xg(t,e,n,o){e.bindTo(n).using((e=>{if("separator"===e.type)return new Lg(o);if("group"===e.type){const n=new Fg(o);return n.set({label:e.label}),Xg(t,n.items,e.items,o),n.items.delegate("execute").to(t),n}if("button"===e.type||"switchbutton"===e.type){const t=new Rg(o);let n;return"button"===e.type?(n=new om(o),n.bind("ariaChecked").to(n,"isOn")):n=new qm(o),n.bind(...Object.keys(e.model)).to(e.model),n.delegate("execute").to(t),t.children.add(n),t}return null}))}const tp=(t,e,n)=>{const o=new pg(t.locale);return o.set({id:e,ariaDescribedById:n}),o.bind("isReadOnly").to(t,"isEnabled",(t=>!t)),o.bind("hasError").to(t,"errorText",(t=>!!t)),o.on("input",(()=>{t.errorText=null})),t.bind("isEmpty","isFocused","placeholder").to(o),o},ep=(t,e,n)=>{const o=new fg(t.locale);return o.set({id:e,ariaDescribedById:n,inputMode:"numeric"}),o.bind("isReadOnly").to(t,"isEnabled",(t=>!t)),o.bind("hasError").to(t,"errorText",(t=>!!t)),o.on("input",(()=>{t.errorText=null})),t.bind("isEmpty","isFocused","placeholder").to(o),o},np=(t,e,n)=>{const o=Ug(t.locale);return o.set({id:e,ariaDescribedById:n}),o.bind("isEnabled").to(t),o},op=(t,e=0,n=1)=>t>n?n:tMath.round(n*t)/n,rp=(Math.PI,t=>("#"===t[0]&&(t=t.substring(1)),t.length<6?{r:parseInt(t[0]+t[0],16),g:parseInt(t[1]+t[1],16),b:parseInt(t[2]+t[2],16),a:4===t.length?ip(parseInt(t[3]+t[3],16)/255,2):1}:{r:parseInt(t.substring(0,2),16),g:parseInt(t.substring(2,4),16),b:parseInt(t.substring(4,6),16),a:8===t.length?ip(parseInt(t.substring(6,8),16)/255,2):1})),sp=({h:t,s:e,v:n,a:o})=>{const i=(200-e)*n/100;return{h:ip(t),s:ip(i>0&&i<200?e*n/100/(i<=100?i:200-i)*100:0),l:ip(i/2),a:ip(o,2)}},ap=t=>{const{h:e,s:n,l:o}=sp(t);return`hsl(${e}, ${n}%, ${o}%)`},cp=({h:t,s:e,v:n,a:o})=>{t=t/360*6,e/=100,n/=100;const i=Math.floor(t),r=n*(1-e),s=n*(1-(t-i)*e),a=n*(1-(1-t+i)*e),c=i%6;return{r:ip(255*[n,s,r,r,a,n][c]),g:ip(255*[a,n,n,s,r,r][c]),b:ip(255*[r,r,a,n,n,s][c]),a:ip(o,2)}},lp=t=>{const e=t.toString(16);return e.length<2?"0"+e:e},dp=({r:t,g:e,b:n,a:o})=>{const i=o<1?lp(ip(255*o)):"";return"#"+lp(t)+lp(e)+lp(n)+i},hp=({r:t,g:e,b:n,a:o})=>{const i=Math.max(t,e,n),r=i-Math.min(t,e,n),s=r?i===t?(e-n)/r:i===e?2+(n-t)/r:4+(t-e)/r:0;return{h:ip(60*(s<0?s+6:s)),s:ip(i?r/i*100:0),v:ip(i/255*100),a:o}},up=(t,e)=>{if(t===e)return!0;for(const n in t)if(t[n]!==e[n])return!1;return!0},mp={},gp=t=>{let e=mp[t];return e||(e=document.createElement("template"),e.innerHTML=t,mp[t]=e),e},pp=(t,e,n)=>{t.dispatchEvent(new CustomEvent(e,{bubbles:!0,detail:n}))};let fp=!1;const kp=t=>"touches"in t,bp=(t,e)=>{const n=kp(e)?e.touches[0]:e,o=t.el.getBoundingClientRect();pp(t.el,"move",t.getMove({x:op((n.pageX-(o.left+window.pageXOffset))/o.width),y:op((n.pageY-(o.top+window.pageYOffset))/o.height)}))};class wp{constructor(t,e,n,o){const i=gp(`
`);t.appendChild(i.content.cloneNode(!0));const r=t.querySelector(`[part=${e}]`);r.addEventListener("mousedown",this),r.addEventListener("touchstart",this),r.addEventListener("keydown",this),this.el=r,this.xy=o,this.nodes=[r.firstChild,r]}set dragging(t){const e=t?document.addEventListener:document.removeEventListener;e(fp?"touchmove":"mousemove",this),e(fp?"touchend":"mouseup",this)}handleEvent(t){switch(t.type){case"mousedown":case"touchstart":if(t.preventDefault(),!(t=>!(fp&&!kp(t)||(fp||(fp=kp(t)),0)))(t)||!fp&&0!=t.button)return;this.el.focus(),bp(this,t),this.dragging=!0;break;case"mousemove":case"touchmove":t.preventDefault(),bp(this,t);break;case"mouseup":case"touchend":this.dragging=!1;break;case"keydown":((t,e)=>{const n=e.keyCode;n>40||t.xy&&n<37||n<33||(e.preventDefault(),pp(t.el,"move",t.getMove({x:39===n?.01:37===n?-.01:34===n?.05:33===n?-.05:35===n?1:36===n?-1:0,y:40===n?.01:38===n?-.01:0},!0)))})(this,t)}}style(t){t.forEach(((t,e)=>{for(const n in t)this.nodes[e].style.setProperty(n,t[n])}))}}class _p extends wp{constructor(t){super(t,"hue",'aria-label="Hue" aria-valuemin="0" aria-valuemax="360"',!1)}update({h:t}){this.h=t,this.style([{left:t/360*100+"%",color:ap({h:t,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuenow",`${ip(t)}`)}getMove(t,e){return{h:e?op(this.h+360*t.x,0,360):360*t.x}}}class Ap extends wp{constructor(t){super(t,"saturation",'aria-label="Color"',!0)}update(t){this.hsva=t,this.style([{top:100-t.v+"%",left:`${t.s}%`,color:ap(t)},{"background-color":ap({h:t.h,s:100,v:100,a:1})}]),this.el.setAttribute("aria-valuetext",`Saturation ${ip(t.s)}%, Brightness ${ip(t.v)}%`)}getMove(t,e){return{s:e?op(this.hsva.s+100*t.x,0,100):100*t.x,v:e?op(this.hsva.v-100*t.y,0,100):Math.round(100-100*t.y)}}}const Cp=Symbol("same"),vp=Symbol("color"),yp=Symbol("hsva"),xp=Symbol("update"),Ep=Symbol("parts"),Dp=Symbol("css"),Bp=Symbol("sliders");class Tp extends HTMLElement{static get observedAttributes(){return["color"]}get[Dp](){return[':host{display:flex;flex-direction:column;position:relative;width:200px;height:200px;user-select:none;-webkit-user-select:none;cursor:default}:host([hidden]){display:none!important}[role=slider]{position:relative;touch-action:none;user-select:none;-webkit-user-select:none;outline:0}[role=slider]:last-child{border-radius:0 0 8px 8px}[part$=pointer]{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;display:flex;place-content:center center;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}[part$=pointer]::after{content:"";width:100%;height:100%;border-radius:inherit;background-color:currentColor}[role=slider]:focus [part$=pointer]{transform:translate(-50%,-50%) scale(1.1)}',"[part=hue]{flex:0 0 24px;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}[part=hue-pointer]{top:50%;z-index:2}","[part=saturation]{flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,rgba(255,255,255,0));box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}[part=saturation-pointer]{z-index:3}"]}get[Bp](){return[Ap,_p]}get color(){return this[vp]}set color(t){if(!this[Cp](t)){const e=this.colorModel.toHsva(t);this[xp](e),this[vp]=t}}constructor(){super();const t=gp(``),e=this.attachShadow({mode:"open"});e.appendChild(t.content.cloneNode(!0)),e.addEventListener("move",this),this[Ep]=this[Bp].map((t=>new t(e)))}connectedCallback(){if(this.hasOwnProperty("color")){const t=this.color;delete this.color,this.color=t}else this.color||(this.color=this.colorModel.defaultColor)}attributeChangedCallback(t,e,n){const o=this.colorModel.fromAttr(n);this[Cp](o)||(this.color=o)}handleEvent(t){const e=this[yp],n={...e,...t.detail};let o;this[xp](n),up(n,e)||this[Cp](o=this.colorModel.fromHsva(n))||(this[vp]=o,pp(this,"color-changed",{value:o}))}[Cp](t){return this.color&&this.colorModel.equal(t,this.color)}[xp](t){this[yp]=t,this[Ep].forEach((e=>e.update(t)))}}const Sp={defaultColor:"#000",toHsva:t=>hp(rp(t)),fromHsva:({h:t,s:e,v:n})=>dp(cp({h:t,s:e,v:n,a:1})),equal:(t,e)=>t.toLowerCase()===e.toLowerCase()||up(rp(t),rp(e)),fromAttr:t=>t};class Ip extends Tp{get colorModel(){return Sp}}var Pp=n(1905),zp={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Pp.A,zp);Pp.A.locals;class Rp extends Lr{hexInputRow;_debounceColorPickerEvent;_config;constructor(t,e={}){super(t),this.set({color:"",_hexColor:""}),this.hexInputRow=this._createInputRow();const n=this.createCollection();e.hideInput||n.add(this.hexInputRow),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker"],tabindex:-1},children:n}),this._config=e,this._debounceColorPickerEvent=Cc((t=>{this.set("color",t),this.fire("colorSelected",{color:this.color})}),150,{leading:!0}),this.on("set:color",((t,e,n)=>{t.return=sg(n,this._config.format||"hsl")})),this.on("change:color",(()=>{this._hexColor=Lp(this.color)})),this.on("change:_hexColor",(()=>{document.activeElement!==this.picker&&this.picker.setAttribute("color",this._hexColor),Lp(this.color)!=Lp(this._hexColor)&&(this.color=this._hexColor)}))}render(){var t,e;if(super.render(),t="hex-color-picker",e=Ip,void 0===customElements.get(t)&&customElements.define(t,e),this.picker=Oo.document.createElement("hex-color-picker"),this.picker.setAttribute("class","hex-color-picker"),this.picker.setAttribute("tabindex","-1"),this._createSlidersView(),this.element){this.hexInputRow.element?this.element.insertBefore(this.picker,this.hexInputRow.element):this.element.appendChild(this.picker);const t=document.createElement("style");t.textContent='[role="slider"]:focus [part$="pointer"] {border: 1px solid #fff;outline: 1px solid var(--ck-color-focus-border);box-shadow: 0 0 0 2px #fff;}',this.picker.shadowRoot.appendChild(t)}this.picker.addEventListener("color-changed",(t=>{const e=t.detail.value;this._debounceColorPickerEvent(e)}))}focus(){if(!this._config.hideInput&&(i.isGecko||i.isiOS||i.isSafari)){this.hexInputRow.children.get(1).focus()}this.slidersView.first.focus()}_createSlidersView(){const t=[...this.picker.shadowRoot.children].filter((t=>"slider"===t.getAttribute("role"))).map((t=>new Fp(t)));this.slidersView=this.createCollection(),t.forEach((t=>{this.slidersView.add(t)}))}_createInputRow(){const t=this._createColorInput();return new Vp(this.locale,t)}_createColorInput(){const t=new dg(this.locale,tp),{t:e}=this.locale;return t.set({label:e("HEX"),class:"color-picker-hex-input"}),t.fieldView.bind("value").to(this,"_hexColor",(e=>t.isFocused?t.fieldView.value:e.startsWith("#")?e.substring(1):e)),t.fieldView.on("input",(()=>{const e=t.fieldView.element.value;if(e){const t=Op(e);t&&this._debounceColorPickerEvent(t)}})),t}isValid(){const{t}=this.locale;return this.resetValidationStatus(),!!this.hexInputRow.getParsedColor()||(this.hexInputRow.inputView.errorText=t('Please enter a valid color (e.g. "ff0000").'),!1)}resetValidationStatus(){this.hexInputRow.inputView.errorText=null}}function Lp(t){let e=function(t){if(!t)return"";const e=ag(t);return e?"hex"===e.space?e.hexValue:sg(t,"hex"):"#000"}(t);return e||(e="#000"),4===e.length&&(e="#"+[e[1],e[1],e[2],e[2],e[3],e[3]].join("")),e.toLowerCase()}class Fp extends Lr{constructor(t){super(),this.element=t}focus(){this.element.focus()}}class Mp extends Lr{constructor(t){super(t),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker__hash-view"]},children:"#"})}}class Vp extends Lr{children;inputView;constructor(t,e){super(t),this.inputView=e,this.children=this.createCollection([new Mp,this.inputView]),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-picker__row"]},children:this.children})}getParsedColor(){return Op(this.inputView.fieldView.element.value)}}function Op(t){if(!t)return null;const e=t.trim().replace(/^#/,"");return[3,4,6,8].includes(e.length)&&/^(([0-9a-fA-F]{2}){3,4}|([0-9a-fA-F]){3,4})$/.test(e)?`#${e}`:null}class Np extends(J(Qi)){constructor(t){super(t),this.set("isEmpty",!0),this.on("change",(()=>{this.set("isEmpty",0===this.length)}))}add(t,e){return this.find((e=>e.color===t.color))?this:super.add(t,e)}hasColor(t){return!!this.find((e=>e.color===t))}}const{eraser:Hp,colorPalette:qp}=Ju;class jp extends Lr{items;colorDefinitions;focusTracker;columns;documentColors;documentColorsCount;staticColorsGrid;documentColorsGrid;colorPickerButtonView;removeColorButtonView;_focusables;_documentColorsLabel;_removeButtonLabel;_colorPickerLabel;constructor(t,{colors:e,columns:n,removeButtonLabel:o,documentColorsLabel:i,documentColorsCount:r,colorPickerLabel:s,focusTracker:a,focusables:c}){super(t);const l=this.bindTemplate;this.set("isVisible",!0),this.focusTracker=a,this.items=this.createCollection(),this.colorDefinitions=e,this.columns=n,this.documentColors=new Np,this.documentColorsCount=r,this._focusables=c,this._removeButtonLabel=o,this._colorPickerLabel=s,this._documentColorsLabel=i,this.setTemplate({tag:"div",attributes:{class:["ck-color-grids-fragment",l.if("isVisible","ck-hidden",(t=>!t))]},children:this.items}),this.removeColorButtonView=this._createRemoveColorButton(),this.items.add(this.removeColorButtonView)}updateDocumentColors(t,e){const n=t.document,o=this.documentColorsCount;this.documentColors.clear();for(const i of n.getRoots()){const n=t.createRangeIn(i);for(const t of n.getItems())if(t.is("$textProxy")&&t.hasAttribute(e)&&(this._addColorToDocumentColors(t.getAttribute(e)),this.documentColors.length>=o))return}}updateSelectedColors(){const t=this.documentColorsGrid,e=this.staticColorsGrid,n=this.selectedColor;e.selectedColor=n,t&&(t.selectedColor=n)}render(){if(super.render(),this.staticColorsGrid=this._createStaticColorsGrid(),this.items.add(this.staticColorsGrid),this.documentColorsCount){const t=dr.bind(this.documentColors,this.documentColors),e=new Pm(this.locale);e.text=this._documentColorsLabel,e.extendTemplate({attributes:{class:["ck","ck-color-grid__label",t.if("isEmpty","ck-hidden")]}}),this.items.add(e),this.documentColorsGrid=this._createDocumentColorsGrid(),this.items.add(this.documentColorsGrid)}this._createColorPickerButton(),this._addColorSelectorElementsToFocusTracker()}focus(){this.removeColorButtonView.focus()}destroy(){super.destroy()}addColorPickerButton(){this.colorPickerButtonView&&(this.items.add(this.colorPickerButtonView),this.focusTracker.add(this.colorPickerButtonView.element),this._focusables.add(this.colorPickerButtonView))}_addColorSelectorElementsToFocusTracker(){this.focusTracker.add(this.removeColorButtonView.element),this._focusables.add(this.removeColorButtonView),this.staticColorsGrid&&(this.focusTracker.add(this.staticColorsGrid.element),this._focusables.add(this.staticColorsGrid)),this.documentColorsGrid&&(this.focusTracker.add(this.documentColorsGrid.element),this._focusables.add(this.documentColorsGrid))}_createColorPickerButton(){this.colorPickerButtonView=new om,this.colorPickerButtonView.set({label:this._colorPickerLabel,withText:!0,icon:qp,class:"ck-color-selector__color-picker"}),this.colorPickerButtonView.on("execute",(()=>{this.fire("colorPicker:show")}))}_createRemoveColorButton(){const t=new om;return t.set({withText:!0,icon:Hp,label:this._removeButtonLabel}),t.class="ck-color-selector__remove-color",t.on("execute",(()=>{this.fire("execute",{value:null,source:"removeColorButton"})})),t.render(),t}_createStaticColorsGrid(){const t=new eg(this.locale,{colorDefinitions:this.colorDefinitions,columns:this.columns});return t.on("execute",((t,e)=>{this.fire("execute",{value:e.value,source:"staticColorsGrid"})})),t}_createDocumentColorsGrid(){const t=dr.bind(this.documentColors,this.documentColors),e=new eg(this.locale,{columns:this.columns});return e.extendTemplate({attributes:{class:t.if("isEmpty","ck-hidden")}}),e.items.bindTo(this.documentColors).using((t=>{const e=new Qm;return e.set({color:t.color,hasBorder:t.options&&t.options.hasBorder}),t.label&&e.set({label:t.label,tooltip:!0}),e.on("execute",(()=>{this.fire("execute",{value:t.color,source:"documentColorsGrid"})})),e})),this.documentColors.on("change:isEmpty",((t,n,o)=>{o&&(e.selectedColor=null)})),e}_addColorToDocumentColors(t){const e=this.colorDefinitions.find((e=>e.color===t));e?this.documentColors.add(Object.assign({},e)):this.documentColors.add({color:t,label:t,options:{hasBorder:!1}})}}class Wp extends Lr{items;colorPickerView;saveButtonView;cancelButtonView;actionBarView;focusTracker;keystrokes;_focusables;_colorPickerViewConfig;constructor(t,{focusTracker:e,focusables:n,keystrokes:o,colorPickerViewConfig:i}){super(t),this.items=this.createCollection(),this.focusTracker=e,this.keystrokes=o,this.set("isVisible",!1),this.set("selectedColor",void 0),this._focusables=n,this._colorPickerViewConfig=i;const r=this.bindTemplate,{saveButtonView:s,cancelButtonView:a}=this._createActionButtons();this.saveButtonView=s,this.cancelButtonView=a,this.actionBarView=this._createActionBarView({saveButtonView:s,cancelButtonView:a}),this.setTemplate({tag:"div",attributes:{class:["ck-color-picker-fragment",r.if("isVisible","ck-hidden",(t=>!t))]},children:this.items})}render(){super.render();const t=new Rp(this.locale,{...this._colorPickerViewConfig});this.colorPickerView=t,this.colorPickerView.render(),this.selectedColor&&(t.color=this.selectedColor),this.listenTo(this,"change:selectedColor",((e,n,o)=>{t.color=o})),this.items.add(this.colorPickerView),this.items.add(this.actionBarView),this._addColorPickersElementsToFocusTracker(),this._stopPropagationOnArrowsKeys(),this._executeOnEnterPress(),this._executeUponColorChange()}destroy(){super.destroy()}focus(){this.colorPickerView.focus()}resetValidationStatus(){this.colorPickerView.resetValidationStatus()}_executeOnEnterPress(){this.keystrokes.set("enter",(t=>{this.isVisible&&this.focusTracker.focusedElement!==this.cancelButtonView.element&&this.colorPickerView.isValid()&&(this.fire("execute",{value:this.selectedColor}),t.stopPropagation(),t.preventDefault())}))}_stopPropagationOnArrowsKeys(){const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t),this.keystrokes.set("arrowleft",t),this.keystrokes.set("arrowup",t),this.keystrokes.set("arrowdown",t)}_addColorPickersElementsToFocusTracker(){for(const t of this.colorPickerView.slidersView)this.focusTracker.add(t.element),this._focusables.add(t);const t=this.colorPickerView.hexInputRow.children.get(1);t.element&&(this.focusTracker.add(t.element),this._focusables.add(t)),this.focusTracker.add(this.saveButtonView.element),this._focusables.add(this.saveButtonView),this.focusTracker.add(this.cancelButtonView.element),this._focusables.add(this.cancelButtonView)}_createActionBarView({saveButtonView:t,cancelButtonView:e}){const n=new Lr,o=this.createCollection();return o.add(t),o.add(e),n.setTemplate({tag:"div",attributes:{class:["ck","ck-color-selector_action-bar"]},children:o}),n}_createActionButtons(){const t=this.locale,e=t.t,n=new om(t),o=new om(t);return n.set({icon:Ju.check,class:"ck-button-save",type:"button",withText:!1,label:e("Accept")}),o.set({icon:Ju.cancel,class:"ck-button-cancel",type:"button",withText:!1,label:e("Cancel")}),n.on("execute",(()=>{this.colorPickerView.isValid()&&this.fire("execute",{source:"colorPickerSaveButton",value:this.selectedColor})})),o.on("execute",(()=>{this.fire("colorPicker:cancel")})),{saveButtonView:n,cancelButtonView:o}}_executeUponColorChange(){this.colorPickerView.on("colorSelected",((t,e)=>{this.fire("execute",{value:e.color,source:"colorPicker"}),this.set("selectedColor",e.color)}))}}var Gp=n(6309),Kp={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Gp.A,Kp);Gp.A.locals;class Up extends Lr{focusTracker;keystrokes;items;colorGridsFragmentView;colorPickerFragmentView;_focusCycler;_focusables;_colorPickerViewConfig;constructor(t,{colors:e,columns:n,removeButtonLabel:o,documentColorsLabel:i,documentColorsCount:r,colorPickerLabel:s,colorPickerViewConfig:a}){super(t),this.items=this.createCollection(),this.focusTracker=new tr,this.keystrokes=new er,this._focusables=new lr,this._colorPickerViewConfig=a,this._focusCycler=new am({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.colorGridsFragmentView=new jp(t,{colors:e,columns:n,removeButtonLabel:o,documentColorsLabel:i,documentColorsCount:r,colorPickerLabel:s,focusTracker:this.focusTracker,focusables:this._focusables}),this.colorPickerFragmentView=new Wp(t,{focusables:this._focusables,focusTracker:this.focusTracker,keystrokes:this.keystrokes,colorPickerViewConfig:a}),this.set("_isColorGridsFragmentVisible",!0),this.set("_isColorPickerFragmentVisible",!1),this.set("selectedColor",void 0),this.colorGridsFragmentView.bind("isVisible").to(this,"_isColorGridsFragmentVisible"),this.colorPickerFragmentView.bind("isVisible").to(this,"_isColorPickerFragmentVisible"),this.on("change:selectedColor",((t,e,n)=>{this.colorGridsFragmentView.set("selectedColor",n),this.colorPickerFragmentView.set("selectedColor",n)})),this.colorGridsFragmentView.on("change:selectedColor",((t,e,n)=>{this.set("selectedColor",n)})),this.colorPickerFragmentView.on("change:selectedColor",((t,e,n)=>{this.set("selectedColor",n)})),this.setTemplate({tag:"div",attributes:{class:["ck","ck-color-selector"]},children:this.items})}render(){super.render(),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}appendUI(){this._appendColorGridsFragment(),this._colorPickerViewConfig&&this._appendColorPickerFragment()}showColorPickerFragment(){this.colorPickerFragmentView.colorPickerView&&!this._isColorPickerFragmentVisible&&(this._isColorPickerFragmentVisible=!0,this.colorPickerFragmentView.focus(),this.colorPickerFragmentView.resetValidationStatus(),this._isColorGridsFragmentVisible=!1)}showColorGridsFragment(){this._isColorGridsFragmentVisible||(this._isColorGridsFragmentVisible=!0,this.colorGridsFragmentView.focus(),this._isColorPickerFragmentVisible=!1)}focus(){this._focusCycler.focusFirst()}focusLast(){this._focusCycler.focusLast()}updateDocumentColors(t,e){this.colorGridsFragmentView.updateDocumentColors(t,e)}updateSelectedColors(){this.colorGridsFragmentView.updateSelectedColors()}_appendColorGridsFragment(){this.items.length||(this.items.add(this.colorGridsFragmentView),this.colorGridsFragmentView.delegate("execute").to(this),this.colorGridsFragmentView.delegate("colorPicker:show").to(this))}_appendColorPickerFragment(){2!==this.items.length&&(this.items.add(this.colorPickerFragmentView),this.colorGridsFragmentView.colorPickerButtonView&&this.colorGridsFragmentView.colorPickerButtonView.on("execute",(()=>{this.showColorPickerFragment()})),this.colorGridsFragmentView.addColorPickerButton(),this.colorPickerFragmentView.delegate("execute").to(this),this.colorPickerFragmentView.delegate("colorPicker:cancel").to(this))}}class $p{editor;_components=new Map;constructor(t){this.editor=t}*names(){for(const t of this._components.values())yield t.originalName}add(t,e){this._components.set(Zp(t),{callback:e,originalName:t})}create(t){if(!this.has(t))throw new x("componentfactory-item-missing",this,{name:t});return this._components.get(Zp(t)).callback(this.editor.locale)}has(t){return this._components.has(Zp(t))}}function Zp(t){return String(t).toLowerCase()}var Jp=n(3710),Yp={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Jp.A,Yp);Jp.A.locals;const Qp=Xo("px"),Xp={top:-99999,left:-99999,name:"arrowless",config:{withArrow:!1}};class tf extends Lr{content;_pinWhenIsVisibleCallback;constructor(t){super(t);const e=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("position","arrow_nw"),this.set("isVisible",!1),this.set("withArrow",!0),this.set("class",void 0),this._pinWhenIsVisibleCallback=null,this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-panel",e.to("position",(t=>`ck-balloon-panel_${t}`)),e.if("isVisible","ck-balloon-panel_visible"),e.if("withArrow","ck-balloon-panel_with-arrow"),e.to("class")],style:{top:e.to("top",Qp),left:e.to("left",Qp)}},children:this.content})}show(){this.isVisible=!0}hide(){this.isVisible=!1}attachTo(t){this.show();const e=tf.defaultPositions,n=Object.assign({},{element:this.element,positions:[e.southArrowNorth,e.southArrowNorthMiddleWest,e.southArrowNorthMiddleEast,e.southArrowNorthWest,e.southArrowNorthEast,e.northArrowSouth,e.northArrowSouthMiddleWest,e.northArrowSouthMiddleEast,e.northArrowSouthWest,e.northArrowSouthEast,e.viewportStickyNorth],limiter:Oo.document.body,fitInViewport:!0},t),o=tf._getOptimalPosition(n)||Xp,i=parseInt(o.left),r=parseInt(o.top),s=o.name,a=o.config||{},{withArrow:c=!0}=a;this.top=r,this.left=i,this.position=s,this.withArrow=c}pin(t){this.unpin(),this._pinWhenIsVisibleCallback=()=>{this.isVisible?this._startPinning(t):this._stopPinning()},this._startPinning(t),this.listenTo(this,"change:isVisible",this._pinWhenIsVisibleCallback)}unpin(){this._pinWhenIsVisibleCallback&&(this._stopPinning(),this.stopListening(this,"change:isVisible",this._pinWhenIsVisibleCallback),this._pinWhenIsVisibleCallback=null,this.hide())}_startPinning(t){this.attachTo(t);const e=ef(t.target),n=t.limiter?ef(t.limiter):Oo.document.body;this.listenTo(Oo.document,"scroll",((o,i)=>{const r=i.target,s=e&&r.contains(e),a=n&&r.contains(n);!s&&!a&&e&&n||this.attachTo(t)}),{useCapture:!0}),this.listenTo(Oo.window,"resize",(()=>{this.attachTo(t)}))}_stopPinning(){this.stopListening(Oo.document,"scroll"),this.stopListening(Oo.window,"resize")}static generatePositions(t={}){const{sideOffset:e=tf.arrowSideOffset,heightOffset:n=tf.arrowHeightOffset,stickyVerticalOffset:o=tf.stickyVerticalOffset,config:i}=t;return{northWestArrowSouthWest:(t,n)=>({top:r(t,n),left:t.left-e,name:"arrow_sw",...i&&{config:i}}),northWestArrowSouthMiddleWest:(t,n)=>({top:r(t,n),left:t.left-.25*n.width-e,name:"arrow_smw",...i&&{config:i}}),northWestArrowSouth:(t,e)=>({top:r(t,e),left:t.left-e.width/2,name:"arrow_s",...i&&{config:i}}),northWestArrowSouthMiddleEast:(t,n)=>({top:r(t,n),left:t.left-.75*n.width+e,name:"arrow_sme",...i&&{config:i}}),northWestArrowSouthEast:(t,n)=>({top:r(t,n),left:t.left-n.width+e,name:"arrow_se",...i&&{config:i}}),northArrowSouthWest:(t,n)=>({top:r(t,n),left:t.left+t.width/2-e,name:"arrow_sw",...i&&{config:i}}),northArrowSouthMiddleWest:(t,n)=>({top:r(t,n),left:t.left+t.width/2-.25*n.width-e,name:"arrow_smw",...i&&{config:i}}),northArrowSouth:(t,e)=>({top:r(t,e),left:t.left+t.width/2-e.width/2,name:"arrow_s",...i&&{config:i}}),northArrowSouthMiddleEast:(t,n)=>({top:r(t,n),left:t.left+t.width/2-.75*n.width+e,name:"arrow_sme",...i&&{config:i}}),northArrowSouthEast:(t,n)=>({top:r(t,n),left:t.left+t.width/2-n.width+e,name:"arrow_se",...i&&{config:i}}),northEastArrowSouthWest:(t,n)=>({top:r(t,n),left:t.right-e,name:"arrow_sw",...i&&{config:i}}),northEastArrowSouthMiddleWest:(t,n)=>({top:r(t,n),left:t.right-.25*n.width-e,name:"arrow_smw",...i&&{config:i}}),northEastArrowSouth:(t,e)=>({top:r(t,e),left:t.right-e.width/2,name:"arrow_s",...i&&{config:i}}),northEastArrowSouthMiddleEast:(t,n)=>({top:r(t,n),left:t.right-.75*n.width+e,name:"arrow_sme",...i&&{config:i}}),northEastArrowSouthEast:(t,n)=>({top:r(t,n),left:t.right-n.width+e,name:"arrow_se",...i&&{config:i}}),southWestArrowNorthWest:t=>({top:s(t),left:t.left-e,name:"arrow_nw",...i&&{config:i}}),southWestArrowNorthMiddleWest:(t,n)=>({top:s(t),left:t.left-.25*n.width-e,name:"arrow_nmw",...i&&{config:i}}),southWestArrowNorth:(t,e)=>({top:s(t),left:t.left-e.width/2,name:"arrow_n",...i&&{config:i}}),southWestArrowNorthMiddleEast:(t,n)=>({top:s(t),left:t.left-.75*n.width+e,name:"arrow_nme",...i&&{config:i}}),southWestArrowNorthEast:(t,n)=>({top:s(t),left:t.left-n.width+e,name:"arrow_ne",...i&&{config:i}}),southArrowNorthWest:t=>({top:s(t),left:t.left+t.width/2-e,name:"arrow_nw",...i&&{config:i}}),southArrowNorthMiddleWest:(t,n)=>({top:s(t),left:t.left+t.width/2-.25*n.width-e,name:"arrow_nmw",...i&&{config:i}}),southArrowNorth:(t,e)=>({top:s(t),left:t.left+t.width/2-e.width/2,name:"arrow_n",...i&&{config:i}}),southArrowNorthMiddleEast:(t,n)=>({top:s(t),left:t.left+t.width/2-.75*n.width+e,name:"arrow_nme",...i&&{config:i}}),southArrowNorthEast:(t,n)=>({top:s(t),left:t.left+t.width/2-n.width+e,name:"arrow_ne",...i&&{config:i}}),southEastArrowNorthWest:t=>({top:s(t),left:t.right-e,name:"arrow_nw",...i&&{config:i}}),southEastArrowNorthMiddleWest:(t,n)=>({top:s(t),left:t.right-.25*n.width-e,name:"arrow_nmw",...i&&{config:i}}),southEastArrowNorth:(t,e)=>({top:s(t),left:t.right-e.width/2,name:"arrow_n",...i&&{config:i}}),southEastArrowNorthMiddleEast:(t,n)=>({top:s(t),left:t.right-.75*n.width+e,name:"arrow_nme",...i&&{config:i}}),southEastArrowNorthEast:(t,n)=>({top:s(t),left:t.right-n.width+e,name:"arrow_ne",...i&&{config:i}}),westArrowEast:(t,e)=>({top:t.top+t.height/2-e.height/2,left:t.left-e.width-n,name:"arrow_e",...i&&{config:i}}),eastArrowWest:(t,e)=>({top:t.top+t.height/2-e.height/2,left:t.right+n,name:"arrow_w",...i&&{config:i}}),viewportStickyNorth:(t,e,n,r)=>{const s=r||n;return t.getIntersection(s)?s.height-t.height>o?null:{top:s.top+o,left:t.left+t.width/2-e.width/2,name:"arrowless",config:{withArrow:!1,...i}}:null}};function r(t,e){return t.top-e.height-n}function s(t){return t.bottom+n}}static arrowSideOffset=25;static arrowHeightOffset=10;static stickyVerticalOffset=20;static _getOptimalPosition=ii;static defaultPositions=tf.generatePositions()}function ef(t){return Bo(t)?t:jo(t)?t.commonAncestorContainer:"function"==typeof t?ef(t()):null}var nf=n(9205),of={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(nf.A,of);nf.A.locals;const rf="ck-tooltip";class sf extends(Lo()){tooltipTextView;balloonPanelView;static defaultBalloonPositions=tf.generatePositions({heightOffset:5,sideOffset:13});_currentElementWithTooltip=null;_currentTooltipPosition=null;_resizeObserver=null;_mutationObserver=null;_pinTooltipDebounced;_unpinTooltipDebounced;_watchdogExcluded;static _editors=new Set;static _instance=null;constructor(t){if(super(),sf._editors.add(t),sf._instance)return sf._instance;sf._instance=this,this.tooltipTextView=new Lr(t.locale),this.tooltipTextView.set("text",""),this.tooltipTextView.setTemplate({tag:"span",attributes:{class:["ck","ck-tooltip__text"]},children:[{text:this.tooltipTextView.bindTemplate.to("text")}]}),this.balloonPanelView=new tf(t.locale),this.balloonPanelView.class=rf,this.balloonPanelView.content.add(this.tooltipTextView),this._mutationObserver=function(t){const e=new MutationObserver((()=>{t()}));return{attach(t){e.observe(t,{attributes:!0,attributeFilter:["data-cke-tooltip-text","data-cke-tooltip-position"]})},detach(){e.disconnect()}}}((()=>{this._updateTooltipPosition()})),this._pinTooltipDebounced=Cc(this._pinTooltip,600),this._unpinTooltipDebounced=Cc(this._unpinTooltip,400),this.listenTo(Oo.document,"keydown",this._onKeyDown.bind(this),{useCapture:!0}),this.listenTo(Oo.document,"mouseenter",this._onEnterOrFocus.bind(this),{useCapture:!0}),this.listenTo(Oo.document,"mouseleave",this._onLeaveOrBlur.bind(this),{useCapture:!0}),this.listenTo(Oo.document,"focus",this._onEnterOrFocus.bind(this),{useCapture:!0}),this.listenTo(Oo.document,"blur",this._onLeaveOrBlur.bind(this),{useCapture:!0}),this.listenTo(Oo.document,"scroll",this._onScroll.bind(this),{useCapture:!0}),this._watchdogExcluded=!0}destroy(t){const e=t.ui.view&&t.ui.view.body;sf._editors.delete(t),this.stopListening(t.ui),e&&e.has(this.balloonPanelView)&&e.remove(this.balloonPanelView),sf._editors.size||(this._unpinTooltip(),this.balloonPanelView.destroy(),this.stopListening(),sf._instance=null)}static getPositioningFunctions(t){const e=sf.defaultBalloonPositions;return{s:[e.southArrowNorth,e.southArrowNorthEast,e.southArrowNorthWest],n:[e.northArrowSouth],e:[e.eastArrowWest],w:[e.westArrowEast],sw:[e.southArrowNorthEast],se:[e.southArrowNorthWest]}[t]}_onKeyDown(t,e){"Escape"===e.key&&this._currentElementWithTooltip&&(this._unpinTooltip(),e.stopPropagation())}_onEnterOrFocus(t,{target:e}){const n=af(e);n?n!==this._currentElementWithTooltip&&(this._unpinTooltip(),"focus"===t.name?this._pinTooltip(n,cf(n)):this._pinTooltipDebounced(n,cf(n))):"focus"===t.name&&this._unpinTooltip()}_onLeaveOrBlur(t,{target:e,relatedTarget:n}){if("mouseleave"===t.name){if(!Bo(e))return;const t=this.balloonPanelView.element,o=t&&(t===n||t.contains(n)),i=!o&&e===t;if(o)return void this._unpinTooltipDebounced.cancel();if(!i&&this._currentElementWithTooltip&&e!==this._currentElementWithTooltip)return;const r=af(e),s=af(n);(i||r&&r!==s)&&this._unpinTooltipDebounced()}else{if(this._currentElementWithTooltip&&e!==this._currentElementWithTooltip)return;this._unpinTooltipDebounced()}}_onScroll(t,{target:e}){this._currentElementWithTooltip&&(e.contains(this.balloonPanelView.element)&&e.contains(this._currentElementWithTooltip)||this._unpinTooltip())}_pinTooltip(t,{text:e,position:n,cssClass:o}){this._unpinTooltip();const i=Xi(sf._editors.values()).ui.view.body;i.has(this.balloonPanelView)||i.add(this.balloonPanelView),this.tooltipTextView.text=e,this.balloonPanelView.pin({target:t,positions:sf.getPositioningFunctions(n)}),this._resizeObserver=new Yo(t,(()=>{oi(t)||this._unpinTooltip()})),this._mutationObserver.attach(t),this.balloonPanelView.class=[rf,o].filter((t=>t)).join(" ");for(const t of sf._editors)this.listenTo(t.ui,"update",this._updateTooltipPosition.bind(this),{priority:"low"});this._currentElementWithTooltip=t,this._currentTooltipPosition=n}_unpinTooltip(){this._unpinTooltipDebounced.cancel(),this._pinTooltipDebounced.cancel(),this.balloonPanelView.unpin();for(const t of sf._editors)this.stopListening(t.ui,"update");this._currentElementWithTooltip=null,this._currentTooltipPosition=null,this.tooltipTextView.text="",this._resizeObserver&&this._resizeObserver.destroy(),this._mutationObserver.detach()}_updateTooltipPosition(){const t=cf(this._currentElementWithTooltip);oi(this._currentElementWithTooltip)&&t.text?this.balloonPanelView.pin({target:this._currentElementWithTooltip,positions:sf.getPositioningFunctions(t.position)}):this._unpinTooltip()}}function af(t){return Bo(t)?t.closest("[data-cke-tooltip-text]:not([data-cke-tooltip-disabled])"):null}function cf(t){return{text:t.dataset.ckeTooltipText,position:t.dataset.ckeTooltipPosition||"s",cssClass:t.dataset.ckeTooltipClass||""}}const lf=function(t,e,n){var o=!0,i=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return j(n)&&(o="leading"in n?!!n.leading:o,i="trailing"in n?!!n.trailing:i),Cc(t,e,{leading:o,maxWait:e,trailing:i})},df=50,hf=350,uf="Powered by";class mf extends(Lo()){editor;_balloonView;_showBalloonThrottled;_lastFocusedEditableElement;constructor(t){super(),this.editor=t,this._balloonView=null,this._lastFocusedEditableElement=null,this._showBalloonThrottled=lf(this._showBalloon.bind(this),50,{leading:!0}),t.on("ready",this._handleEditorReady.bind(this))}destroy(){const t=this._balloonView;t&&(t.unpin(),this._balloonView=null),this._showBalloonThrottled.cancel(),this.stopListening()}_handleEditorReady(){const t=this.editor;(!!t.config.get("ui.poweredBy.forceVisible")||"VALID"!==function(t){function e(t){return t.length>=40&&t.length<=255?"VALID":"INVALID"}if(!t)return"INVALID";let n="";try{n=atob(t)}catch(t){return"INVALID"}const o=n.split("-"),i=o[0],r=o[1];if(!r)return e(t);try{atob(r)}catch(n){try{if(atob(i),!atob(i).length)return e(t)}catch(n){return e(t)}}if(i.length<40||i.length>255)return"INVALID";let s="";try{atob(i),s=atob(r)}catch(t){return"INVALID"}if(8!==s.length)return"INVALID";const a=Number(s.substring(0,4)),c=Number(s.substring(4,6))-1,l=Number(s.substring(6,8)),d=new Date(a,c,l);return d{this._updateLastFocusedEditableElement(),n?this._showBalloon():this._hideBalloon()})),t.ui.focusTracker.on("change:focusedElement",((t,e,n)=>{this._updateLastFocusedEditableElement(),n&&this._showBalloon()})),t.ui.on("update",(()=>{this._showBalloonThrottled()})))}_createBalloonView(){const t=this.editor,e=this._balloonView=new tf,n=ff(t),o=new gf(t.locale,n.label);e.content.add(o),e.set({class:"ck-powered-by-balloon"}),t.ui.view.body.add(e),t.ui.focusTracker.add(e.element),this._balloonView=e}_showBalloon(){if(!this._lastFocusedEditableElement)return;const t=function(t,e){const n=ff(t),o="right"===n.side?function(t,e){return pf(t,e,((t,n)=>t.left+t.width-n.width-e.horizontalOffset))}(e,n):function(t,e){return pf(t,e,(t=>t.left+e.horizontalOffset))}(e,n);return{target:e,positions:[o]}}(this.editor,this._lastFocusedEditableElement);t&&(this._balloonView||this._createBalloonView(),this._balloonView.pin(t))}_hideBalloon(){this._balloonView&&this._balloonView.unpin()}_updateLastFocusedEditableElement(){const t=this.editor,e=t.ui.focusTracker.isFocused,n=t.ui.focusTracker.focusedElement;if(!e||!n)return void(this._lastFocusedEditableElement=null);const o=Array.from(t.ui.getEditableElementsNames()).map((e=>t.ui.getEditableElement(e)));o.includes(n)?this._lastFocusedEditableElement=n:this._lastFocusedEditableElement=o[0]}}class gf extends Lr{constructor(t,e){super(t);const n=new Xu,o=this.bindTemplate;n.set({content:'\n',isColorInherited:!1}),n.extendTemplate({attributes:{style:{width:"53px",height:"10px"}}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-powered-by"],"aria-hidden":!0},children:[{tag:"a",attributes:{href:"https://ckeditor.com/?utm_source=ckeditor&utm_medium=referral&utm_campaign=701Dn000000hVgmIAE_powered_by_ckeditor_logo",target:"_blank",tabindex:"-1"},children:[...e?[{tag:"span",attributes:{class:["ck","ck-powered-by__label"]},children:[e]}]:[],n],on:{dragstart:o.to((t=>t.preventDefault()))}}]})}}function pf(t,e,n){return(o,i)=>{const r=new Ko(t);if(r.width{for(const t of Object.values(wf))this.announce("",t)}))}announce(t,e=wf.POLITE){const n=this.editor;if(!n.ui.view)return;this.view||(this.view=new Af(n.locale),n.ui.view.body.add(this.view));const{politeness:o,isUnsafeHTML:i}="string"==typeof e?{politeness:e}:e;let r=this.view.regionViews.find((t=>t.politeness===o));r||(r=new Cf(n,o),this.view.regionViews.add(r)),r.announce({announcement:t,isUnsafeHTML:i})}}class Af extends Lr{regionViews;constructor(t){super(t),this.regionViews=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-aria-live-announcer"]},children:this.regionViews})}}class Cf extends Lr{politeness;_domConverter;_pruneAnnouncementsInterval;constructor(t,e){super(t.locale),this.setTemplate({tag:"div",attributes:{role:"region","aria-live":e,"aria-relevant":"additions"},children:[{tag:"ul",attributes:{class:["ck","ck-aria-live-region-list"]}}]}),t.on("destroy",(()=>{null!==this._pruneAnnouncementsInterval&&(clearInterval(this._pruneAnnouncementsInterval),this._pruneAnnouncementsInterval=null)})),this.politeness=e,this._domConverter=t.data.htmlProcessor.domConverter,this._pruneAnnouncementsInterval=setInterval((()=>{this.element&&this._listElement.firstChild&&this._listElement.firstChild.remove()}),5e3)}announce({announcement:t,isUnsafeHTML:e}){if(!t.trim().length)return;const n=document.createElement("li");e?this._domConverter.setContentOf(n,t):n.innerText=t,this._listElement.appendChild(n)}get _listElement(){return this.element.querySelector("ul")}}class vf extends(J()){editor;componentFactory;focusTracker;tooltipManager;poweredBy;ariaLiveAnnouncer;isReady=!1;_editableElementsMap=new Map;_focusableToolbarDefinitions=[];constructor(t){super();const e=t.editing.view;this.editor=t,this.componentFactory=new $p(t),this.focusTracker=new tr,this.tooltipManager=new sf(t),this.poweredBy=new mf(t),this.ariaLiveAnnouncer=new _f(t),this.set("viewportOffset",this._readViewportOffsetFromConfig()),this.once("ready",(()=>{this.isReady=!0})),this.listenTo(e.document,"layoutChanged",this.update.bind(this)),this.listenTo(e,"scrollToTheSelection",this._handleScrollToTheSelection.bind(this)),this._initFocusTracking()}get element(){return null}update(){this.fire("update")}destroy(){this.stopListening(),this.focusTracker.destroy(),this.tooltipManager.destroy(this.editor),this.poweredBy.destroy();for(const t of this._editableElementsMap.values())t.ckeditorInstance=null,this.editor.keystrokes.stopListening(t);this._editableElementsMap=new Map,this._focusableToolbarDefinitions=[]}setEditableElement(t,e){this._editableElementsMap.set(t,e),e.ckeditorInstance||(e.ckeditorInstance=this.editor),this.focusTracker.add(e);const n=()=>{this.editor.editing.view.getDomRoot(t)||this.editor.keystrokes.listenTo(e)};this.isReady?n():this.once("ready",n)}removeEditableElement(t){const e=this._editableElementsMap.get(t);e&&(this._editableElementsMap.delete(t),this.editor.keystrokes.stopListening(e),this.focusTracker.remove(e),e.ckeditorInstance=null)}getEditableElement(t="main"){return this._editableElementsMap.get(t)}getEditableElementsNames(){return this._editableElementsMap.keys()}addToolbar(t,e={}){t.isRendered?(this.focusTracker.add(t.element),this.editor.keystrokes.listenTo(t.element)):t.once("render",(()=>{this.focusTracker.add(t.element),this.editor.keystrokes.listenTo(t.element)})),this._focusableToolbarDefinitions.push({toolbarView:t,options:e})}get _editableElements(){return console.warn("editor-ui-deprecated-editable-elements: The EditorUI#_editableElements property has been deprecated and will be removed in the near future.",{editorUI:this}),this._editableElementsMap}_readViewportOffsetFromConfig(){const t=this.editor,e=t.config.get("ui.viewportOffset");if(e)return e;const n=t.config.get("toolbar.viewportTopOffset");return n?(console.warn("editor-ui-deprecated-viewport-offset-config: The `toolbar.vieportTopOffset` configuration option is deprecated. It will be removed from future CKEditor versions. Use `ui.viewportOffset.top` instead."),{top:n}):{top:0}}_initFocusTracking(){const t=this.editor,e=t.editing.view;let n,o;t.keystrokes.set("Alt+F10",((t,i)=>{const r=this.focusTracker.focusedElement;Array.from(this._editableElementsMap.values()).includes(r)&&!Array.from(e.domRoots.values()).includes(r)&&(n=r);const s=this._getCurrentFocusedToolbarDefinition();s&&o||(o=this._getFocusableCandidateToolbarDefinitions());for(let t=0;t{const i=this._getCurrentFocusedToolbarDefinition();i&&(n?(n.focus(),n=null):t.editing.view.focus(),i.options.afterBlur&&i.options.afterBlur(),o())}))}_getFocusableCandidateToolbarDefinitions(){const t=[];for(const e of this._focusableToolbarDefinitions){const{toolbarView:n,options:o}=e;(oi(n.element)||o.beforeFocus)&&t.push(e)}return t.sort(((t,e)=>yf(t)-yf(e))),t}_getCurrentFocusedToolbarDefinition(){for(const t of this._focusableToolbarDefinitions)if(t.toolbarView.element&&t.toolbarView.element.contains(this.focusTracker.focusedElement))return t;return null}_focusFocusableCandidateToolbar(t){const{toolbarView:e,options:{beforeFocus:n}}=t;return n&&n(),!!oi(e.element)&&(e.focus(),!0)}_handleScrollToTheSelection(t,e){const n={top:0,bottom:0,left:0,right:0,...this.viewportOffset};e.viewportOffset.top+=n.top,e.viewportOffset.bottom+=n.bottom,e.viewportOffset.left+=n.left,e.viewportOffset.right+=n.right}}function yf(t){const{toolbarView:e,options:n}=t;let o=10;return oi(e.element)&&o--,n.isContextual&&o--,o}var xf=n(1185),Ef={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(xf.A,Ef);xf.A.locals;class Df extends Lr{body;constructor(t){super(t),this.body=new Om(t)}render(){super.render(),this.body.attachToDom()}destroy(){return this.body.detachFromDom(),super.destroy()}}class Bf extends Df{top;main;_voiceLabelView;constructor(t){super(t),this.top=this.createCollection(),this.main=this.createCollection(),this._voiceLabelView=this._createVoiceLabel(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-editor","ck-rounded-corners"],role:"application",dir:t.uiLanguageDirection,lang:t.uiLanguage,"aria-labelledby":this._voiceLabelView.id},children:[this._voiceLabelView,{tag:"div",attributes:{class:["ck","ck-editor__top","ck-reset_all"],role:"presentation"},children:this.top},{tag:"div",attributes:{class:["ck","ck-editor__main"],role:"presentation"},children:this.main}]})}_createVoiceLabel(){const t=this.t,e=new Pm;return e.text=t("Rich Text Editor"),e.extendTemplate({attributes:{class:"ck-voice-label"}}),e}}class Tf extends Lr{name=null;_editingView;_editableElement;_hasExternalElement;constructor(t,e,n){super(t),this.setTemplate({tag:"div",attributes:{class:["ck","ck-content","ck-editor__editable","ck-rounded-corners"],lang:t.contentLanguage,dir:t.contentLanguageDirection}}),this.set("isFocused",!1),this._editableElement=n,this._hasExternalElement=!!this._editableElement,this._editingView=e}render(){super.render(),this._hasExternalElement?this.template.apply(this.element=this._editableElement):this._editableElement=this.element,this.on("change:isFocused",(()=>this._updateIsFocusedClasses())),this._updateIsFocusedClasses()}destroy(){this._hasExternalElement&&this.template.revert(this._editableElement),super.destroy()}get hasExternalElement(){return this._hasExternalElement}_updateIsFocusedClasses(){const t=this._editingView;function e(e){t.change((n=>{const o=t.document.getRoot(e.name);n.addClass(e.isFocused?"ck-focused":"ck-blurred",o),n.removeClass(e.isFocused?"ck-blurred":"ck-focused",o)}))}t.isRenderingInProgress?function n(o){t.once("change:isRenderingInProgress",((t,i,r)=>{r?n(o):e(o)}))}(this):e(this)}}class Sf extends Tf{_generateLabel;constructor(t,e,n,o={}){super(t,e,n);const i=t.t;this.extendTemplate({attributes:{role:"textbox",class:"ck-editor__editable_inline"}}),this._generateLabel=o.label||(()=>i("Editor editing area: %0",this.name))}render(){super.render();const t=this._editingView;t.change((e=>{const n=t.document.getRoot(this.name);e.setAttribute("aria-label",this._generateLabel(this),n)}))}}class If extends(J()){constructor(t,e){super(),e&&sc(this,e),t&&this.set(t)}}var Pf=n(991),zf={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Pf.A,zf);Pf.A.locals;var Rf=n(5380),Lf={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Rf.A,Lf);Rf.A.locals;const Ff=Xo("px");class Mf extends Nr{positionLimiter;visibleStack;_viewToStack=new Map;_idToStack=new Map;_view=null;_rotatorView=null;_fakePanelsView=null;static get pluginName(){return"ContextualBalloon"}constructor(t){super(t),this.positionLimiter=()=>{const t=this.editor.editing.view,e=t.document.selection.editableElement;return e?t.domConverter.mapViewToDom(e.root):null},this.set("visibleView",null),this.set("_numberOfStacks",0),this.set("_singleViewMode",!1)}destroy(){super.destroy(),this._view&&this._view.destroy(),this._rotatorView&&this._rotatorView.destroy(),this._fakePanelsView&&this._fakePanelsView.destroy()}get view(){return this._view||this._createPanelView(),this._view}hasView(t){return Array.from(this._viewToStack.keys()).includes(t)}add(t){if(this._view||this._createPanelView(),this.hasView(t.view))throw new x("contextualballoon-add-view-exist",[this,t]);const e=t.stackId||"main";if(!this._idToStack.has(e))return this._idToStack.set(e,new Map([[t.view,t]])),this._viewToStack.set(t.view,this._idToStack.get(e)),this._numberOfStacks=this._idToStack.size,void(this._visibleStack&&!t.singleViewMode||this.showStack(e));const n=this._idToStack.get(e);t.singleViewMode&&this.showStack(e),n.set(t.view,t),this._viewToStack.set(t.view,n),n===this._visibleStack&&this._showView(t)}remove(t){if(!this.hasView(t))throw new x("contextualballoon-remove-view-not-exist",[this,t]);const e=this._viewToStack.get(t);this._singleViewMode&&this.visibleView===t&&(this._singleViewMode=!1),this.visibleView===t&&(1===e.size?this._idToStack.size>1?this._showNextStack():(this.view.hide(),this.visibleView=null,this._rotatorView.hideView()):this._showView(Array.from(e.values())[e.size-2])),1===e.size?(this._idToStack.delete(this._getStackId(e)),this._numberOfStacks=this._idToStack.size):e.delete(t),this._viewToStack.delete(t)}updatePosition(t){t&&(this._visibleStack.get(this.visibleView).position=t),this.view.pin(this._getBalloonPosition()),this._fakePanelsView.updatePosition()}showStack(t){this.visibleStack=t;const e=this._idToStack.get(t);if(!e)throw new x("contextualballoon-showstack-stack-not-exist",this);this._visibleStack!==e&&this._showView(Array.from(e.values()).pop())}_createPanelView(){this._view=new tf(this.editor.locale),this.editor.ui.view.body.add(this._view),this.editor.ui.focusTracker.add(this._view.element),this._rotatorView=this._createRotatorView(),this._fakePanelsView=this._createFakePanelsView()}get _visibleStack(){return this._viewToStack.get(this.visibleView)}_getStackId(t){return Array.from(this._idToStack.entries()).find((e=>e[1]===t))[0]}_showNextStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)+1;t[e]||(e=0),this.showStack(this._getStackId(t[e]))}_showPrevStack(){const t=Array.from(this._idToStack.values());let e=t.indexOf(this._visibleStack)-1;t[e]||(e=t.length-1),this.showStack(this._getStackId(t[e]))}_createRotatorView(){const t=new Vf(this.editor.locale),e=this.editor.locale.t;return this.view.content.add(t),t.bind("isNavigationVisible").to(this,"_numberOfStacks",this,"_singleViewMode",((t,e)=>!e&&t>1)),t.on("change:isNavigationVisible",(()=>this.updatePosition()),{priority:"low"}),t.bind("counter").to(this,"visibleView",this,"_numberOfStacks",((t,n)=>{if(n<2)return"";const o=Array.from(this._idToStack.values()).indexOf(this._visibleStack)+1;return e("%0 of %1",[o,n])})),t.buttonNextView.on("execute",(()=>{t.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showNextStack()})),t.buttonPrevView.on("execute",(()=>{t.focusTracker.isFocused&&this.editor.editing.view.focus(),this._showPrevStack()})),t}_createFakePanelsView(){const t=new Of(this.editor.locale,this.view);return t.bind("numberOfPanels").to(this,"_numberOfStacks",this,"_singleViewMode",((t,e)=>!e&&t>=2?Math.min(t-1,2):0)),t.listenTo(this.view,"change:top",(()=>t.updatePosition())),t.listenTo(this.view,"change:left",(()=>t.updatePosition())),this.editor.ui.view.body.add(t),t}_showView({view:t,balloonClassName:e="",withArrow:n=!0,singleViewMode:o=!1}){this.view.class=e,this.view.withArrow=n,this._rotatorView.showView(t),this.visibleView=t,this.view.pin(this._getBalloonPosition()),this._fakePanelsView.updatePosition(),o&&(this._singleViewMode=!0)}_getBalloonPosition(){let t=Array.from(this._visibleStack.values()).pop().position;return t&&(t.limiter||(t=Object.assign({},t,{limiter:this.positionLimiter})),t=Object.assign({},t,{viewportOffsetConfig:this.editor.ui.viewportOffset})),t}}class Vf extends Lr{focusTracker;buttonPrevView;buttonNextView;content;constructor(t){super(t);const e=t.t,n=this.bindTemplate;this.set("isNavigationVisible",!0),this.focusTracker=new tr,this.buttonPrevView=this._createButtonView(e("Previous"),Ju.previousArrow),this.buttonNextView=this._createButtonView(e("Next"),Ju.nextArrow),this.content=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-balloon-rotator"],"z-index":"-1"},children:[{tag:"div",attributes:{class:["ck-balloon-rotator__navigation",n.to("isNavigationVisible",(t=>t?"":"ck-hidden"))]},children:[this.buttonPrevView,{tag:"span",attributes:{class:["ck-balloon-rotator__counter"]},children:[{text:n.to("counter")}]},this.buttonNextView]},{tag:"div",attributes:{class:"ck-balloon-rotator__content"},children:this.content}]})}render(){super.render(),this.focusTracker.add(this.element)}destroy(){super.destroy(),this.focusTracker.destroy()}showView(t){this.hideView(),this.content.add(t)}hideView(){this.content.clear()}_createButtonView(t,e){const n=new om(this.locale);return n.set({label:t,icon:e,tooltip:!0}),n}}class Of extends Lr{content;_balloonPanelView;constructor(t,e){super(t);const n=this.bindTemplate;this.set("top",0),this.set("left",0),this.set("height",0),this.set("width",0),this.set("numberOfPanels",0),this.content=this.createCollection(),this._balloonPanelView=e,this.setTemplate({tag:"div",attributes:{class:["ck-fake-panel",n.to("numberOfPanels",(t=>t?"":"ck-hidden"))],style:{top:n.to("top",Ff),left:n.to("left",Ff),width:n.to("width",Ff),height:n.to("height",Ff)}},children:this.content}),this.on("change:numberOfPanels",((t,e,n,o)=>{n>o?this._addPanels(n-o):this._removePanels(o-n),this.updatePosition()}))}_addPanels(t){for(;t--;){const t=new Lr;t.setTemplate({tag:"div"}),this.content.add(t),this.registerChild(t)}}_removePanels(t){for(;t--;){const t=this.content.last;this.content.remove(t),this.deregisterChild(t),t.destroy()}}updatePosition(){if(this.numberOfPanels){const{top:t,left:e}=this._balloonPanelView,{width:n,height:o}=new Ko(this._balloonPanelView.element);Object.assign(this,{top:t,left:e,width:n,height:o})}}}var Nf=n(8298),Hf={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Nf.A,Hf);Nf.A.locals;const qf=Xo("px");class jf extends Lr{content;contentPanelElement;_contentPanelPlaceholder;constructor(t){super(t);const e=this.bindTemplate;this.set("isActive",!1),this.set("isSticky",!1),this.set("limiterElement",null),this.set("limiterBottomOffset",50),this.set("viewportTopOffset",0),this.set("_marginLeft",null),this.set("_isStickyToTheBottomOfLimiter",!1),this.set("_stickyTopOffset",null),this.set("_stickyBottomOffset",null),this.content=this.createCollection(),this._contentPanelPlaceholder=new dr({tag:"div",attributes:{class:["ck","ck-sticky-panel__placeholder"],style:{display:e.to("isSticky",(t=>t?"block":"none")),height:e.to("isSticky",(t=>t?qf(this._contentPanelRect.height):null))}}}).render(),this.contentPanelElement=new dr({tag:"div",attributes:{class:["ck","ck-sticky-panel__content",e.if("isSticky","ck-sticky-panel__content_sticky"),e.if("_isStickyToTheBottomOfLimiter","ck-sticky-panel__content_sticky_bottom-limit")],style:{width:e.to("isSticky",(t=>t?qf(this._contentPanelPlaceholder.getBoundingClientRect().width):null)),top:e.to("_stickyTopOffset",(t=>t?qf(t):t)),bottom:e.to("_stickyBottomOffset",(t=>t?qf(t):t)),marginLeft:e.to("_marginLeft")}},children:this.content}).render(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-sticky-panel"]},children:[this._contentPanelPlaceholder,this.contentPanelElement]})}render(){super.render(),this.checkIfShouldBeSticky(),this.listenTo(Oo.document,"scroll",(()=>{this.checkIfShouldBeSticky()}),{useCapture:!0}),this.listenTo(this,"change:isActive",(()=>{this.checkIfShouldBeSticky()}))}checkIfShouldBeSticky(){if(!this.limiterElement||!this.isActive)return void this._unstick();const t=new Ko(this.limiterElement);let e=t.getVisible();if(e){const t=new Ko(Oo.window);t.top+=this.viewportTopOffset,t.height-=this.viewportTopOffset,e=e.getIntersection(t)}if(e&&t.tope.bottom){const n=Math.max(t.bottom-e.bottom,0)+this.limiterBottomOffset;t.bottom-n>t.top+this._contentPanelRect.height?this._stickToBottomOfLimiter(n):this._unstick()}else this._contentPanelRect.height+this.limiterBottomOffset":">",'"':""","'":"'"};var Yf;var Qf=/[&<>"']/g;RegExp(Qf.source);var Xf=n(9529),tk={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Xf.A,tk);Xf.A.locals;var ek=n(109),nk={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(ek.A,nk);ek.A.locals;var ok=n(2710),ik={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(ok.A,ik);ok.A.locals;var rk=n(3344),sk={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(rk.A,sk);rk.A.locals;class ak extends om{arrowView;constructor(t){super(t);const e=this.bindTemplate;this.set({withText:!0,role:"menuitem"}),this.arrowView=this._createArrowView(),this.extendTemplate({attributes:{class:["ck-menu-bar__menu__button"],"aria-haspopup":!0,"aria-expanded":this.bindTemplate.to("isOn",(t=>String(t))),"data-cke-tooltip-disabled":e.to("isOn")},on:{mouseenter:e.to("mouseenter")}})}render(){super.render(),this.children.add(this.arrowView)}_createArrowView(){const t=new Xu;return t.content=Gm,t.extendTemplate({attributes:{class:"ck-menu-bar__menu__button__arrow"}}),t}}var ck=n(9481),lk={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(ck.A,lk);ck.A.locals;class dk extends Rg{constructor(t,e){super(t);const n=this.bindTemplate;this.extendTemplate({attributes:{class:["ck-menu-bar__menu__item"]},on:{mouseenter:n.to("mouseenter")}}),this.delegate("mouseenter").to(e)}}const hk={toggleMenusAndFocusItemsOnHover(t){t.on("menu:mouseenter",(e=>{if(t.isOpen){for(const n of t.menus){const t=e.path[0],o=t instanceof dk&&t.children.first===n;n.isOpen=(e.path.includes(n)||o)&&n.isEnabled}e.source.focus()}}))},focusCycleMenusOnArrows(t){const e="rtl"===t.locale.uiLanguageDirection;function n(e,n){const o=t.children.getIndex(e),i=e.isOpen,r=t.children.length,s=t.children.get((o+r+n)%r);e.isOpen=!1,i&&(s.isOpen=!0),s.buttonView.focus()}t.on("menu:arrowright",(t=>{n(t.source,e?-1:1)})),t.on("menu:arrowleft",(t=>{n(t.source,e?1:-1)}))},closeMenusWhenTheBarCloses(t){t.on("change:isOpen",(()=>{t.isOpen||t.menus.forEach((t=>{t.isOpen=!1}))}))},closeMenuWhenAnotherOnTheSameLevelOpens(t){t.on("menu:change:isOpen",((e,n,o)=>{o&&t.menus.filter((t=>e.source.parentMenuView===t.parentMenuView&&e.source!==t&&t.isOpen)).forEach((t=>{t.isOpen=!1}))}))},closeOnClickOutside(t){Fr({emitter:t,activator:()=>t.isOpen,callback:()=>t.close(),contextElements:()=>t.children.map((t=>t.element))})}},uk={openAndFocusPanelOnArrowDownKey(t){t.keystrokes.set("arrowdown",((e,n)=>{t.focusTracker.focusedElement===t.buttonView.element&&(t.isOpen||(t.isOpen=!0),t.panelView.focus(),n())}))},openOnArrowRightKey(t){const e="rtl"===t.locale.uiLanguageDirection?"arrowleft":"arrowright";t.keystrokes.set(e,((e,n)=>{t.focusTracker.focusedElement===t.buttonView.element&&t.isEnabled&&(t.isOpen||(t.isOpen=!0),t.panelView.focus(),n())}))},openOnButtonClick(t){t.buttonView.on("execute",(()=>{t.isOpen=!0,t.panelView.focus()}))},toggleOnButtonClick(t){t.buttonView.on("execute",(()=>{t.isOpen=!t.isOpen,t.isOpen&&t.panelView.focus()}))},closeOnArrowLeftKey(t){const e="rtl"===t.locale.uiLanguageDirection?"arrowright":"arrowleft";t.keystrokes.set(e,((e,n)=>{t.isOpen&&(t.isOpen=!1,t.focus(),n())}))},closeOnEscKey(t){t.keystrokes.set("esc",((e,n)=>{t.isOpen&&(t.isOpen=!1,t.focus(),n())}))},closeOnParentClose(t){t.parentMenuView.on("change:isOpen",((e,n,o)=>{o||e.source!==t.parentMenuView||(t.isOpen=!1)}))}},mk={southEast:t=>({top:t.bottom,left:t.left,name:"se"}),southWest:(t,e)=>({top:t.bottom,left:t.left-e.width+t.width,name:"sw"}),northEast:(t,e)=>({top:t.top-e.height,left:t.left,name:"ne"}),northWest:(t,e)=>({top:t.top-e.height,left:t.left-e.width+t.width,name:"nw"}),eastSouth:t=>({top:t.top,left:t.right-5,name:"es"}),eastNorth:(t,e)=>({top:t.top-e.height,left:t.right-5,name:"en"}),westSouth:(t,e)=>({top:t.top,left:t.left-e.width+5,name:"ws"}),westNorth:(t,e)=>({top:t.top-e.height,left:t.left-e.width+5,name:"wn"})},gk=[{menuId:"file",label:"File",groups:[{groupId:"export",items:["menuBar:exportPdf","menuBar:exportWord"]},{groupId:"import",items:["menuBar:importWord"]},{groupId:"revisionHistory",items:["menuBar:revisionHistory"]}]},{menuId:"edit",label:"Edit",groups:[{groupId:"undo",items:["menuBar:undo","menuBar:redo"]},{groupId:"selectAll",items:["menuBar:selectAll"]},{groupId:"findAndReplace",items:["menuBar:findAndReplace"]}]},{menuId:"view",label:"View",groups:[{groupId:"sourceEditing",items:["menuBar:sourceEditing"]},{groupId:"showBlocks",items:["menuBar:showBlocks"]},{groupId:"restrictedEditingException",items:["menuBar:restrictedEditingException"]}]},{menuId:"insert",label:"Insert",groups:[{groupId:"insertMainWidgets",items:["menuBar:uploadImage","menuBar:ckbox","menuBar:ckfinder","menuBar:insertTable"]},{groupId:"insertInline",items:["menuBar:link","menuBar:comment"]},{groupId:"insertMinorWidgets",items:["menuBar:insertTemplate","menuBar:blockQuote","menuBar:codeBlock","menuBar:htmlEmbed"]},{groupId:"insertStructureWidgets",items:["menuBar:horizontalLine","menuBar:pageBreak","menuBar:tableOfContents"]},{groupId:"restrictedEditing",items:["menuBar:restrictedEditing"]}]},{menuId:"format",label:"Format",groups:[{groupId:"textAndFont",items:[{menuId:"text",label:"Text",groups:[{groupId:"basicStyles",items:["menuBar:bold","menuBar:italic","menuBar:underline","menuBar:strikethrough","menuBar:superscript","menuBar:subscript","menuBar:code"]},{groupId:"textPartLanguage",items:["menuBar:textPartLanguage"]}]},{menuId:"font",label:"Font",groups:[{groupId:"fontProperties",items:["menuBar:fontSize","menuBar:fontFamily"]},{groupId:"fontColors",items:["menuBar:fontColor","menuBar:fontBackgroundColor"]},{groupId:"highlight",items:["menuBar:highlight"]}]},"menuBar:heading"]},{groupId:"list",items:["menuBar:bulletedList","menuBar:numberedList","menuBar:todoList"]},{groupId:"indent",items:["menuBar:alignment","menuBar:indent","menuBar:outdent"]},{groupId:"caseChange",items:["menuBar:caseChange"]},{groupId:"removeFormat",items:["menuBar:removeFormat"]}]},{menuId:"tools",label:"Tools",groups:[{groupId:"aiTools",items:["menuBar:aiAssistant","menuBar:aiCommands"]},{groupId:"tools",items:["menuBar:trackChanges","menuBar:commentsArchive"]}]},{menuId:"help",label:"Help",groups:[{groupId:"help",items:["menuBar:accessibilityHelp"]}]}];function pk({normalizedConfig:t,locale:e,componentFactory:n}){const o=el(t);return function(t,e){const n=e.removeItems,o=[];e.items=e.items.filter((({menuId:t})=>!n.includes(t)||(o.push(t),!1))),wk(e.items,(t=>{t.groups=t.groups.filter((({groupId:t})=>!n.includes(t)||(o.push(t),!1)));for(const e of t.groups)e.items=e.items.filter((t=>{const e=yk(t);return!n.includes(e)||(o.push(e),!1)}))}));for(const e of n)o.includes(e)||E("menu-bar-item-could-not-be-removed",{menuBarConfig:t,itemName:e})}(t,o),function(t,e){const n=e.addItems,o=[];for(const t of n){const n=Ck(t.position),i=vk(t.position);if(_k(t))if(i){const r=e.items.findIndex((t=>t.menuId===i));if(-1!=r)"before"===n?(e.items.splice(r,0,t.menu),o.push(t)):"after"===n&&(e.items.splice(r+1,0,t.menu),o.push(t));else{fk(e,t.menu,i,n)&&o.push(t)}}else"start"===n?(e.items.unshift(t.menu),o.push(t)):"end"===n&&(e.items.push(t.menu),o.push(t));else if(Ak(t))wk(e.items,(e=>{if(e.menuId===i)"start"===n?(e.groups.unshift(t.group),o.push(t)):"end"===n&&(e.groups.push(t.group),o.push(t));else{const r=e.groups.findIndex((t=>t.groupId===i));-1!==r&&("before"===n?(e.groups.splice(r,0,t.group),o.push(t)):"after"===n&&(e.groups.splice(r+1,0,t.group),o.push(t)))}}));else{fk(e,t.item,i,n)&&o.push(t)}}for(const e of n)o.includes(e)||E("menu-bar-item-could-not-be-added",{menuBarConfig:t,addedItemConfig:e})}(t,o),function(t,e,n){wk(e.items,(o=>{for(const i of o.groups)i.items=i.items.filter((i=>{const r="string"==typeof i&&!n.has(i);return r&&!e.isUsingDefaultConfig&&E("menu-bar-item-unavailable",{menuBarConfig:t,parentMenuConfig:el(o),componentName:i}),!r}))}))}(t,o,n),kk(t,o),function(t,e){const n=e.t,o={File:n({string:"File",id:"MENU_BAR_MENU_FILE"}),Edit:n({string:"Edit",id:"MENU_BAR_MENU_EDIT"}),View:n({string:"View",id:"MENU_BAR_MENU_VIEW"}),Insert:n({string:"Insert",id:"MENU_BAR_MENU_INSERT"}),Format:n({string:"Format",id:"MENU_BAR_MENU_FORMAT"}),Tools:n({string:"Tools",id:"MENU_BAR_MENU_TOOLS"}),Help:n({string:"Help",id:"MENU_BAR_MENU_HELP"}),Text:n({string:"Text",id:"MENU_BAR_MENU_TEXT"}),Font:n({string:"Font",id:"MENU_BAR_MENU_FONT"})};wk(t.items,(t=>{t.label in o&&(t.label=o[t.label])}))}(o,e),o}function fk(t,e,n,o){let i=!1;return wk(t.items,(t=>{for(const{groupId:r,items:s}of t.groups){if(i)return;if(r===n)"start"===o?(s.unshift(e),i=!0):"end"===o&&(s.push(e),i=!0);else{const t=s.findIndex((t=>yk(t)===n));-1!==t&&("before"===o?(s.splice(t,0,e),i=!0):"after"===o&&(s.splice(t+1,0,e),i=!0))}}})),i}function kk(t,e){const n=e.isUsingDefaultConfig;let o=!1;e.items=e.items.filter((e=>!!e.groups.length||(bk(t,e,n),!1))),e.items.length?(wk(e.items,(e=>{e.groups=e.groups.filter((t=>!!t.items.length||(o=!0,!1)));for(const i of e.groups)i.items=i.items.filter((e=>!(xk(e)&&!e.groups.length)||(bk(t,e,n),o=!0,!1)))})),o&&kk(t,e)):bk(t,t,n)}function bk(t,e,n){n||E("menu-bar-menu-empty",{menuBarConfig:t,emptyMenuConfig:e})}function wk(t,e){if(Array.isArray(t))for(const e of t)n(e);function n(t){e(t);for(const e of t.groups)for(const t of e.items)xk(t)&&n(t)}}function _k(t){return"object"==typeof t&&"menu"in t}function Ak(t){return"object"==typeof t&&"group"in t}function Ck(t){return t.startsWith("start")?"start":t.startsWith("end")?"end":t.startsWith("after")?"after":"before"}function vk(t){const e=t.match(/^[^:]+:(.+)/);return e?e[1]:null}function yk(t){return"string"==typeof t?t:t.menuId}function xk(t){return"object"==typeof t&&"menuId"in t}function Ek(t,e){const n=e.element;t.ui.focusTracker.add(n),t.keystrokes.listenTo(n);const o=function(t){let e;return e="items"in t&&t.items?{items:t.items,removeItems:[],addItems:[],isVisible:!0,isUsingDefaultConfig:!1,...t}:{items:el(gk),addItems:[],removeItems:[],isVisible:!0,isUsingDefaultConfig:!0,...t},e}(t.config.get("menuBar")||{});e.fillFromConfig(o,t.ui.componentFactory),t.keystrokes.set("Esc",((e,o)=>{n.contains(t.ui.focusTracker.focusedElement)&&(t.editing.view.focus(),o())})),t.keystrokes.set("Alt+F9",((o,i)=>{n.contains(t.ui.focusTracker.focusedElement)||(e.focus(),i())}))}var Dk=n(9108),Bk={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Dk.A,Bk);Dk.A.locals;class Tk extends Lr{children;constructor(t){super(t);const e=this.bindTemplate;this.set("isVisible",!1),this.set("position","se"),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-reset","ck-menu-bar__menu__panel",e.to("position",(t=>`ck-menu-bar__menu__panel_position_${t}`)),e.if("isVisible","ck-hidden",(t=>!t))],tabindex:"-1"},children:this.children,on:{selectstart:e.to((t=>{"input"!==t.target.tagName.toLocaleLowerCase()&&t.preventDefault()}))}})}focus(t=1){this.children.length&&(1===t?this.children.first.focus():this.children.last.focus())}}var Sk=n(4),Ik={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Sk.A,Ik);Sk.A.locals;class Pk extends Lr{buttonView;panelView;focusTracker;keystrokes;constructor(t){super(t);const e=this.bindTemplate;this.buttonView=new ak(t),this.buttonView.delegate("mouseenter").to(this),this.buttonView.bind("isOn","isEnabled").to(this,"isOpen","isEnabled"),this.panelView=new Tk(t),this.panelView.bind("isVisible").to(this,"isOpen"),this.keystrokes=new er,this.focusTracker=new tr,this.set("isOpen",!1),this.set("isEnabled",!0),this.set("panelPosition","w"),this.set("class",void 0),this.set("parentMenuView",null),this.setTemplate({tag:"div",attributes:{class:["ck","ck-menu-bar__menu",e.to("class"),e.if("isEnabled","ck-disabled",(t=>!t)),e.if("parentMenuView","ck-menu-bar__menu_top-level",(t=>!t))]},children:[this.buttonView,this.panelView]})}render(){super.render(),this.focusTracker.add(this.buttonView.element),this.focusTracker.add(this.panelView.element),this.keystrokes.listenTo(this.element),uk.closeOnEscKey(this),this._repositionPanelOnOpen()}_attachBehaviors(){this.parentMenuView?(uk.openOnButtonClick(this),uk.openOnArrowRightKey(this),uk.closeOnArrowLeftKey(this),uk.closeOnParentClose(this)):(this._propagateArrowKeystrokeEvents(),uk.openAndFocusPanelOnArrowDownKey(this),uk.toggleOnButtonClick(this))}_propagateArrowKeystrokeEvents(){this.keystrokes.set("arrowright",((t,e)=>{this.fire("arrowright"),e()})),this.keystrokes.set("arrowleft",((t,e)=>{this.fire("arrowleft"),e()}))}_repositionPanelOnOpen(){this.on("change:isOpen",((t,e,n)=>{if(!n)return;const o=Pk._getOptimalPosition({element:this.panelView.element,target:this.buttonView.element,fitInViewport:!0,positions:this._panelPositions});this.panelView.position=o?o.name:this._panelPositions[0].name}))}focus(){this.buttonView.focus()}get _panelPositions(){const{southEast:t,southWest:e,northEast:n,northWest:o,westSouth:i,eastSouth:r,westNorth:s,eastNorth:a}=mk;return"ltr"===this.locale.uiLanguageDirection?this.parentMenuView?[r,a,i,s]:[t,e,n,o]:this.parentMenuView?[i,s,r,a]:[e,t,o,n]}static _getOptimalPosition=ii}class zk extends Og{constructor(t){super(t),this.role="menu"}}class Rk extends jm{constructor(t){super(t),this.set({withText:!0,withKeystroke:!0,tooltip:!1,role:"menuitem"}),this.extendTemplate({attributes:{class:["ck-menu-bar__menu__item__button"]}})}}var Lk=n(497),Fk={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Lk.A,Fk);Lk.A.locals;const Mk=["mouseenter","arrowleft","arrowright","change:isOpen"];class Vk extends Lr{children;menus=[];constructor(t){super(t);const e=t.t;this.set("isOpen",!1),this._setupIsOpenUpdater(),this.children=this.createCollection(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-menu-bar"],"aria-label":e("Editor menu bar"),role:"menubar"},children:this.children})}fillFromConfig(t,e){const n=pk({normalizedConfig:t,locale:this.locale,componentFactory:e}).items.map((t=>this._createMenu({componentFactory:e,menuDefinition:t})));this.children.addMany(n)}render(){super.render(),hk.toggleMenusAndFocusItemsOnHover(this),hk.closeMenusWhenTheBarCloses(this),hk.closeMenuWhenAnotherOnTheSameLevelOpens(this),hk.focusCycleMenusOnArrows(this),hk.closeOnClickOutside(this)}focus(){this.children.first&&this.children.first.focus()}close(){for(const t of this.children)t.isOpen=!1}registerMenu(t,e=null){e?(t.delegate(...Mk).to(e),t.parentMenuView=e):t.delegate(...Mk).to(this,(t=>"menu:"+t)),t._attachBehaviors(),this.menus.push(t)}_createMenu({componentFactory:t,menuDefinition:e,parentMenuView:n}){const o=this.locale,i=new Pk(o);return this.registerMenu(i,n),i.buttonView.set({label:e.label}),i.once("change:isOpen",(()=>{const n=new zk(o);n.ariaLabel=e.label,i.panelView.children.add(n),n.items.addMany(this._createMenuItems({menuDefinition:e,parentMenuView:i,componentFactory:t}))})),i}_createMenuItems({menuDefinition:t,parentMenuView:e,componentFactory:n}){const o=this.locale,i=[];for(const r of t.groups){for(const t of r.items){const r=new dk(o,e);if(j(t))r.children.add(this._createMenu({componentFactory:n,menuDefinition:t,parentMenuView:e}));else{const o=this._createMenuItemContentFromFactory({componentName:t,componentFactory:n,parentMenuView:e});if(!o)continue;r.children.add(o)}i.push(r)}r!==t.groups[t.groups.length-1]&&i.push(new Lg(o))}return i}_createMenuItemContentFromFactory({componentName:t,parentMenuView:e,componentFactory:n}){const o=n.create(t);return o instanceof Pk||o instanceof Tm||o instanceof Rk?(this._registerMenuTree(o,e),o.on("execute",(()=>{this.close()})),o):(E("menu-bar-component-unsupported",{componentName:t,componentView:o}),null)}_registerMenuTree(t,e){if(!(t instanceof Pk))return void t.delegate("mouseenter").to(e);this.registerMenu(t,e);const n=t.panelView.children.filter((t=>t instanceof zk))[0];if(!n)return void t.delegate("mouseenter").to(e);const o=n.items.filter((t=>t instanceof Rg));for(const e of o)this._registerMenuTree(e.children.get(0),t)}_setupIsOpenUpdater(){let t;this.on("menu:change:isOpen",((e,n,o)=>{clearTimeout(t),o?this.isOpen=!0:t=setTimeout((()=>{this.isOpen=Array.from(this.children).some((t=>t.isOpen))}),0)}))}}class Ok extends vf{view;_toolbarConfig;_elementReplacer;constructor(t,e){super(t),this.view=e,this._toolbarConfig=Eg(t.config.get("toolbar")),this._elementReplacer=new nt,this.listenTo(t.editing.view,"scrollToTheSelection",this._handleScrollToTheSelectionWithStickyPanel.bind(this))}get element(){return this.view.element}init(t){const e=this.editor,n=this.view,o=e.editing.view,i=n.editable,r=o.document.getRoot();i.name=r.rootName,n.render();const s=i.element;this.setEditableElement(i.name,s),n.editable.bind("isFocused").to(this.focusTracker),o.attachDomRoot(s),t&&this._elementReplacer.replace(t,this.element),this._initPlaceholder(),this._initToolbar(),n.menuBarView&&Ek(e,n.menuBarView),this._initDialogPluginIntegration(),this.fire("ready")}destroy(){super.destroy();const t=this.view,e=this.editor.editing.view;this._elementReplacer.restore(),e.detachDomRoot(t.editable.name),t.destroy()}_initToolbar(){const t=this.view;t.stickyPanel.bind("isActive").to(this.focusTracker,"isFocused"),t.stickyPanel.limiterElement=t.element,t.stickyPanel.bind("viewportTopOffset").to(this,"viewportOffset",(({top:t})=>t||0)),t.toolbar.fillFromConfig(this._toolbarConfig,this.componentFactory),this.addToolbar(t.toolbar)}_initPlaceholder(){const t=this.editor,e=t.editing.view,n=e.document.getRoot(),o=t.sourceElement;let i;const r=t.config.get("placeholder");r&&(i="string"==typeof r?r:r[this.view.editable.name]),!i&&o&&"textarea"===o.tagName.toLowerCase()&&(i=o.getAttribute("placeholder")),i&&(n.placeholder=i),Xr({view:e,element:n,isDirectHost:!1,keepOnFocus:!0})}_handleScrollToTheSelectionWithStickyPanel(t,e,n){const o=this.view.stickyPanel;if(o.isSticky){const t=new Ko(o.element).height;e.viewportOffset.top+=t}else{const t=()=>{this.editor.editing.view.scrollToTheSelection(n)};this.listenTo(o,"change:isSticky",t),setTimeout((()=>{this.stopListening(o,"change:isSticky",t)}),20)}}_initDialogPluginIntegration(){if(!this.editor.plugins.has("Dialog"))return;const t=this.view.stickyPanel,e=this.editor.plugins.get("Dialog");e.on("show",(()=>{const n=e.view;n.on("moveTo",((e,o)=>{if(!t.isSticky||n.wasMoved)return;const i=new Ko(t.contentPanelElement);o[1]{const e="error"in t?t.error:t.reason;e instanceof Error&&this._handleError(e,t)},this._listeners={},!this._restart)throw new Error("The Watchdog class was split into the abstract `Watchdog` class and the `EditorWatchdog` class. Please, use `EditorWatchdog` if you have used the `Watchdog` class previously.")}destroy(){this._stopErrorHandling(),this._listeners={}}on(t,e){this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(e)}off(t,e){this._listeners[t]=this._listeners[t].filter((t=>t!==e))}_fire(t,...e){const n=this._listeners[t]||[];for(const t of n)t.apply(this,[null,...e])}_startErrorHandling(){window.addEventListener("error",this._boundErrorHandler),window.addEventListener("unhandledrejection",this._boundErrorHandler)}_stopErrorHandling(){window.removeEventListener("error",this._boundErrorHandler),window.removeEventListener("unhandledrejection",this._boundErrorHandler)}_handleError(t,e){if(this._shouldReactToError(t)){this.crashes.push({message:t.message,stack:t.stack,filename:e instanceof ErrorEvent?e.filename:void 0,lineno:e instanceof ErrorEvent?e.lineno:void 0,colno:e instanceof ErrorEvent?e.colno:void 0,date:this._now()});const n=this._shouldRestart();this.state="crashed",this._fire("stateChange"),this._fire("error",{error:t,causesRestart:n}),n?this._restart():(this.state="crashedPermanently",this._fire("stateChange"))}}_shouldReactToError(t){return t.is&&t.is("CKEditorError")&&void 0!==t.context&&null!==t.context&&"ready"===this.state&&this._isErrorComingFromThisItem(t)}_shouldRestart(){if(this.crashes.length<=this._crashNumberLimit)return!0;return(this.crashes[this.crashes.length-1].date-this.crashes[this.crashes.length-1-this._crashNumberLimit].date)/this._crashNumberLimit>this._minimumNonErrorTimePeriod}}function Wk(t,e=new Set){const n=[t],o=new Set;let i=0;for(;n.length>i;){const t=n[i++];if(!o.has(t)&&Gk(t)&&!e.has(t))if(o.add(t),Symbol.iterator in t)try{for(const e of t)n.push(e)}catch(t){}else for(const e in t)"defaultValue"!==e&&n.push(t[e])}return o}function Gk(t){const e=Object.prototype.toString.call(t),n=typeof t;return!("number"===n||"boolean"===n||"string"===n||"symbol"===n||"function"===n||"[object Date]"===e||"[object RegExp]"===e||"[object Module]"===e||null==t||t._watchdogExcluded||t instanceof EventTarget||t instanceof Event)}function Kk(t,e,n=new Set){if(t===e&&("object"==typeof(o=t)&&null!==o))return!0;var o;const i=Wk(t,n),r=Wk(e,n);for(const t of i)if(r.has(t))return!0;return!1}class Uk extends jk{_editor=null;_lifecyclePromise=null;_throttledSave;_data;_lastDocumentVersion;_elementOrData;_initUsingData=!0;_editables={};_config;_excludedProps;constructor(t,e={}){super(e),this._throttledSave=lf(this._save.bind(this),"number"==typeof e.saveInterval?e.saveInterval:5e3),t&&(this._creator=(e,n)=>t.create(e,n)),this._destructor=t=>t.destroy()}get editor(){return this._editor}get _item(){return this._editor}setCreator(t){this._creator=t}setDestructor(t){this._destructor=t}_restart(){return Promise.resolve().then((()=>(this.state="initializing",this._fire("stateChange"),this._destroy()))).catch((t=>{console.error("An error happened during the editor destroying.",t)})).then((()=>{const t={},e=[],n=this._config.rootsAttributes||{},o={};for(const[i,r]of Object.entries(this._data.roots))r.isLoaded?(t[i]="",o[i]=n[i]||{}):e.push(i);const i={...this._config,extraPlugins:this._config.extraPlugins||[],lazyRoots:e,rootsAttributes:o,_watchdogInitialData:this._data};return delete i.initialData,i.extraPlugins.push($k),this._initUsingData?this.create(t,i,i.context):Bo(this._elementOrData)?this.create(this._elementOrData,i,i.context):this.create(this._editables,i,i.context)})).then((()=>{this._fire("restart")}))}create(t=this._elementOrData,e=this._config,n){return this._lifecyclePromise=Promise.resolve(this._lifecyclePromise).then((()=>(super._startErrorHandling(),this._elementOrData=t,this._initUsingData="string"==typeof t||Object.keys(t).length>0&&"string"==typeof Object.values(t)[0],this._config=this._cloneEditorConfiguration(e)||{},this._config.context=n,this._creator(t,this._config)))).then((t=>{this._editor=t,t.model.document.on("change:data",this._throttledSave),this._lastDocumentVersion=t.model.document.version,this._data=this._getData(),this._initUsingData||(this._editables=this._getEditables()),this.state="ready",this._fire("stateChange")})).finally((()=>{this._lifecyclePromise=null})),this._lifecyclePromise}destroy(){return this._lifecyclePromise=Promise.resolve(this._lifecyclePromise).then((()=>(this.state="destroyed",this._fire("stateChange"),super.destroy(),this._destroy()))).finally((()=>{this._lifecyclePromise=null})),this._lifecyclePromise}_destroy(){return Promise.resolve().then((()=>{this._stopErrorHandling(),this._throttledSave.cancel();const t=this._editor;return this._editor=null,t.model.document.off("change:data",this._throttledSave),this._destructor(t)}))}_save(){const t=this._editor.model.document.version;try{this._data=this._getData(),this._initUsingData||(this._editables=this._getEditables()),this._lastDocumentVersion=t}catch(t){console.error(t,"An error happened during restoring editor data. Editor will be restored from the previously saved data.")}}_setExcludedProperties(t){this._excludedProps=t}_getData(){const t=this._editor,e=t.model.document.roots.filter((t=>t.isAttached()&&"$graveyard"!=t.rootName)),{plugins:n}=t,o=n.has("CommentsRepository")&&n.get("CommentsRepository"),i=n.has("TrackChanges")&&n.get("TrackChanges"),r={roots:{},markers:{},commentThreads:JSON.stringify([]),suggestions:JSON.stringify([])};e.forEach((t=>{r.roots[t.rootName]={content:JSON.stringify(Array.from(t.getChildren())),attributes:JSON.stringify(Array.from(t.getAttributes())),isLoaded:t._isLoaded}}));for(const e of t.model.markers)e._affectsData&&(r.markers[e.name]={rangeJSON:e.getRange().toJSON(),usingOperation:e._managedUsingOperations,affectsData:e._affectsData});return o&&(r.commentThreads=JSON.stringify(o.getCommentThreads({toJSON:!0,skipNotAttached:!0}))),i&&(r.suggestions=JSON.stringify(i.getSuggestions({toJSON:!0,skipNotAttached:!0}))),r}_getEditables(){const t={};for(const e of this.editor.model.document.getRootNames()){const n=this.editor.ui.getEditableElement(e);n&&(t[e]=n)}return t}_isErrorComingFromThisItem(t){return Kk(this._editor,t.context,this._excludedProps)}_cloneEditorConfiguration(t){return Do(t,((t,e)=>Bo(t)||"context"===e?t:void 0))}}class $k{editor;_data;constructor(t){this.editor=t,this._data=t.config.get("_watchdogInitialData")}init(){this.editor.data.on("init",(t=>{t.stop(),this.editor.model.enqueueChange({isUndoable:!1},(t=>{this._restoreCollaborationData(),this._restoreEditorData(t)})),this.editor.data.fire("ready")}),{priority:999})}_createNode(t,e){if("name"in e){const n=t.createElement(e.name,e.attributes);if(e.children)for(const o of e.children)n._appendChild(this._createNode(t,o));return n}return t.createText(e.data,e.attributes)}_restoreEditorData(t){const e=this.editor;Object.entries(this._data.roots).forEach((([n,{content:o,attributes:i}])=>{const r=JSON.parse(o),s=JSON.parse(i),a=e.model.document.getRoot(n);for(const[e,n]of s)t.setAttribute(e,n,a);for(const e of r){const n=this._createNode(t,e);t.insert(n,a,"end")}})),Object.entries(this._data.markers).forEach((([n,o])=>{const{document:i}=e.model,{rangeJSON:{start:r,end:s},...a}=o,c=i.getRoot(r.root),l=t.createPositionFromPath(c,r.path,r.stickiness),d=t.createPositionFromPath(c,s.path,s.stickiness),h=t.createRange(l,d);t.addMarker(n,{range:h,...a})}))}_restoreCollaborationData(){const t=JSON.parse(this._data.commentThreads),e=JSON.parse(this._data.suggestions);t.forEach((t=>{const e=this.editor.config.get("collaboration.channelId"),n=this.editor.plugins.get("CommentsRepository");if(n.hasCommentThread(t.threadId)){n.getCommentThread(t.threadId).remove()}n.addCommentThread({channelId:e,...t})})),e.forEach((t=>{const e=this.editor.plugins.get("TrackChangesEditing");if(e.hasSuggestion(t.id)){e.getSuggestion(t.id).attributes=t.attributes}else e.addSuggestionData(t)}))}}const Zk=Symbol("MainQueueId");class Jk extends jk{_watchdogs=new Map;_watchdogConfig;_context=null;_contextProps=new Set;_actionQueues=new Yk;_contextConfig;_item;constructor(t,e={}){super(e),this._watchdogConfig=e,this._creator=e=>t.create(e),this._destructor=t=>t.destroy(),this._actionQueues.onEmpty((()=>{"initializing"===this.state&&(this.state="ready",this._fire("stateChange"))}))}setCreator(t){this._creator=t}setDestructor(t){this._destructor=t}get context(){return this._context}create(t={}){return this._actionQueues.enqueue(Zk,(()=>(this._contextConfig=t,this._create())))}getItem(t){return this._getWatchdog(t)._item}getItemState(t){return this._getWatchdog(t).state}add(t){const e=Qk(t);return Promise.all(e.map((t=>this._actionQueues.enqueue(t.id,(()=>{if("destroyed"===this.state)throw new Error("Cannot add items to destroyed watchdog.");if(!this._context)throw new Error("Context was not created yet. You should call the `ContextWatchdog#create()` method first.");let e;if(this._watchdogs.has(t.id))throw new Error(`Item with the given id is already added: '${t.id}'.`);if("editor"===t.type)return e=new Uk(null,this._watchdogConfig),e.setCreator(t.creator),e._setExcludedProperties(this._contextProps),t.destructor&&e.setDestructor(t.destructor),this._watchdogs.set(t.id,e),e.on("error",((n,{error:o,causesRestart:i})=>{this._fire("itemError",{itemId:t.id,error:o}),i&&this._actionQueues.enqueue(t.id,(()=>new Promise((n=>{const o=()=>{e.off("restart",o),this._fire("itemRestart",{itemId:t.id}),n()};e.on("restart",o)}))))})),e.create(t.sourceElementOrData,t.config,this._context);throw new Error(`Not supported item type: '${t.type}'.`)})))))}remove(t){const e=Qk(t);return Promise.all(e.map((t=>this._actionQueues.enqueue(t,(()=>{const e=this._getWatchdog(t);return this._watchdogs.delete(t),e.destroy()})))))}destroy(){return this._actionQueues.enqueue(Zk,(()=>(this.state="destroyed",this._fire("stateChange"),super.destroy(),this._destroy())))}_restart(){return this._actionQueues.enqueue(Zk,(()=>(this.state="initializing",this._fire("stateChange"),this._destroy().catch((t=>{console.error("An error happened during destroying the context or items.",t)})).then((()=>this._create())).then((()=>this._fire("restart"))))))}_create(){return Promise.resolve().then((()=>(this._startErrorHandling(),this._creator(this._contextConfig)))).then((t=>(this._context=t,this._contextProps=Wk(this._context),Promise.all(Array.from(this._watchdogs.values()).map((t=>(t._setExcludedProperties(this._contextProps),t.create(void 0,void 0,this._context))))))))}_destroy(){return Promise.resolve().then((()=>{this._stopErrorHandling();const t=this._context;return this._context=null,this._contextProps=new Set,Promise.all(Array.from(this._watchdogs.values()).map((t=>t.destroy()))).then((()=>this._destructor(t)))}))}_getWatchdog(t){const e=this._watchdogs.get(t);if(!e)throw new Error(`Item with the given id was not registered: ${t}.`);return e}_isErrorComingFromThisItem(t){for(const e of this._watchdogs.values())if(e._isErrorComingFromThisItem(t))return!1;return Kk(this._context,t.context)}}class Yk{_onEmptyCallbacks=[];_queues=new Map;_activeActions=0;onEmpty(t){this._onEmptyCallbacks.push(t)}enqueue(t,e){const n=t===Zk;this._activeActions++,this._queues.get(t)||this._queues.set(t,Promise.resolve());const o=(n?Promise.all(this._queues.values()):Promise.all([this._queues.get(Zk),this._queues.get(t)])).then(e),i=o.catch((()=>{}));return this._queues.set(t,i),o.finally((()=>{this._activeActions--,this._queues.get(t)===i&&0===this._activeActions&&this._onEmptyCallbacks.forEach((t=>t()))}))}}function Qk(t){return Array.isArray(t)?t:[t]}class Xk extends(Zu(Uu)){ui;constructor(t,e={}){if(!tb(t)&&void 0!==e.initialData)throw new x("editor-create-initial-data",null);super(e),this.config.define("menuBar.isVisible",!1),void 0===this.config.get("initialData")&&this.config.set("initialData",function(t){return tb(t)?No(t):t}(t)),tb(t)&&(this.sourceElement=t),this.model.document.createRoot();const n=!this.config.get("toolbar.shouldNotGroupWhenFull"),o=this.config.get("menuBar"),i=new qk(this.locale,this.editing.view,{shouldToolbarGroupWhenFull:n,useMenuBar:o.isVisible});this.ui=new Ok(this,i),$u(this)}destroy(){return this.sourceElement&&this.updateSourceElement(),this.ui.destroy(),super.destroy()}static create(t,e={}){return new Promise((n=>{const o=new this(t,e);n(o.initPlugins().then((()=>o.ui.init(tb(t)?t:null))).then((()=>o.data.init(o.config.get("initialData")))).then((()=>o.fire("ready"))).then((()=>o)))}))}static Context=Kr;static EditorWatchdog=Uk;static ContextWatchdog=Jk}function tb(t){return Bo(t)}class eb extends vf{view;_toolbarConfig;constructor(t,e){super(t),this.view=e,this._toolbarConfig=Eg(t.config.get("toolbar"))}get element(){return this.view.editable.element}init(){const t=this.editor,e=this.view,n=t.editing.view,o=e.editable,i=n.document.getRoot();o.name=i.rootName,e.render();const r=o.element;this.setEditableElement(o.name,r),o.bind("isFocused").to(this.focusTracker),n.attachDomRoot(r),this._initPlaceholder(),this._initToolbar(),this.fire("ready")}destroy(){super.destroy();const t=this.view;this.editor.editing.view.detachDomRoot(t.editable.name),t.destroy()}_initToolbar(){const t=this.editor,e=this.view,n=e.editable.element,o=e.toolbar;e.panel.bind("isVisible").to(this.focusTracker,"isFocused"),e.bind("viewportTopOffset").to(this,"viewportOffset",(({top:t})=>t||0)),e.listenTo(t.ui,"update",(()=>{e.panel.isVisible&&e.panel.pin({target:n,positions:e.panelPositions})})),o.fillFromConfig(this._toolbarConfig,this.componentFactory),this.addToolbar(o)}_initPlaceholder(){const t=this.editor,e=t.editing.view,n=e.document.getRoot(),o=t.config.get("placeholder");if(o){const t="string"==typeof o?o:o[n.rootName];t&&(n.placeholder=t)}Xr({view:e,element:n,isDirectHost:!1,keepOnFocus:!0})}}const nb=Xo("px");class ob extends Df{toolbar;panel;panelPositions;editable;_resizeObserver;constructor(t,e,n,o={}){super(t);const i=t.t;this.toolbar=new Sg(t,{shouldGroupWhenFull:o.shouldToolbarGroupWhenFull,isFloating:!0}),this.set("viewportTopOffset",0),this.panel=new tf(t),this.panelPositions=this._getPanelPositions(),this.panel.extendTemplate({attributes:{class:"ck-toolbar-container"}}),this.editable=new Sf(t,e,n,{label:t=>i("Rich Text Editor. Editing area: %0",t.name)}),this._resizeObserver=null}render(){super.render(),this.body.add(this.panel),this.registerChild(this.editable),this.panel.content.add(this.toolbar);if(this.toolbar.options.shouldGroupWhenFull){const t=this.editable.element;this._resizeObserver=new Yo(t,(()=>{this.toolbar.maxWidth=nb(new Ko(t).width)}))}}destroy(){super.destroy(),this._resizeObserver&&this._resizeObserver.destroy()}_getPanelPositionTop(t,e){let n;return n=t.top>e.height+this.viewportTopOffset?t.top-e.height:t.bottom>e.height+this.viewportTopOffset+50?this.viewportTopOffset:t.bottom,n}_getPanelPositions(){const t=[(t,e)=>({top:this._getPanelPositionTop(t,e),left:t.left,name:"toolbar_west",config:{withArrow:!1}}),(t,e)=>({top:this._getPanelPositionTop(t,e),left:t.left+t.width-e.width,name:"toolbar_east",config:{withArrow:!1}})];return"ltr"===this.locale.uiLanguageDirection?t:t.reverse()}}class ib extends(Zu(Uu)){ui;constructor(t,e={}){if(!rb(t)&&void 0!==e.initialData)throw new x("editor-create-initial-data",null);super(e),void 0===this.config.get("initialData")&&this.config.set("initialData",function(t){return rb(t)?No(t):t}(t)),this.model.document.createRoot(),rb(t)&&(this.sourceElement=t,function(t,e){if(e.ckeditorInstance)throw new x("editor-source-element-already-used",t);e.ckeditorInstance=t,t.once("destroy",(()=>{delete e.ckeditorInstance}))}(this,t));const n=!this.config.get("toolbar.shouldNotGroupWhenFull"),o=new ob(this.locale,this.editing.view,this.sourceElement,{shouldToolbarGroupWhenFull:n});this.ui=new eb(this,o),$u(this)}destroy(){const t=this.getData();return this.ui.destroy(),super.destroy().then((()=>{this.sourceElement&&this.updateSourceElement(t)}))}static create(t,e={}){return new Promise((n=>{if(rb(t)&&"TEXTAREA"===t.tagName)throw new x("editor-wrong-element",null);const o=new this(t,e);n(o.initPlugins().then((()=>o.ui.init())).then((()=>o.data.init(o.config.get("initialData")))).then((()=>o.fire("ready"))).then((()=>o)))}))}static Context=Kr;static EditorWatchdog=Uk;static ContextWatchdog=Jk}function rb(t){return Bo(t)}const sb=["left","right","center","justify"];function ab(t){return sb.includes(t)}function cb(t,e){return"rtl"==e.contentLanguageDirection?"right"===t:"left"===t}function lb(t){const e=t.map((t=>{let e;return e="string"==typeof t?{name:t}:t,e})).filter((t=>{const e=sb.includes(t.name);return e||E("alignment-config-name-not-recognized",{option:t}),e})),n=e.filter((t=>Boolean(t.className))).length;if(n&&n{const i=o.slice(n+1);if(i.some((t=>t.name==e.name)))throw new x("alignment-config-name-already-defined",{option:e,configuredOptions:t});if(e.className){if(i.some((t=>t.className==e.className)))throw new x("alignment-config-classname-already-defined",{option:e,configuredOptions:t})}})),e}const db="alignment";class hb extends qr{refresh(){const t=this.editor.locale,e=Xi(this.editor.model.document.selection.getSelectedBlocks());this.isEnabled=Boolean(e)&&this._canBeAligned(e),this.isEnabled&&e.hasAttribute("alignment")?this.value=e.getAttribute("alignment"):this.value="rtl"===t.contentLanguageDirection?"right":"left"}execute(t={}){const e=this.editor,n=e.locale,o=e.model,i=o.document,r=t.value;o.change((t=>{const e=Array.from(i.selection.getSelectedBlocks()).filter((t=>this._canBeAligned(t))),o=e[0].getAttribute("alignment");cb(r,n)||o===r||!r?function(t,e){for(const n of t)e.removeAttribute(db,n)}(e,t):function(t,e,n){for(const o of t)e.setAttribute(db,n,o)}(e,t,r)}))}_canBeAligned(t){return this.editor.model.schema.checkAttribute(t,db)}}class ub extends Nr{static get pluginName(){return"AlignmentEditing"}constructor(t){super(t),t.config.define("alignment",{options:sb.map((t=>({name:t})))})}init(){const t=this.editor,e=t.locale,n=t.model.schema,o=lb(t.config.get("alignment.options")).filter((t=>ab(t.name)&&!cb(t.name,e))),i=o.some((t=>!!t.className));n.extend("$block",{allowAttributes:"alignment"}),t.model.schema.setAttributeProperties("alignment",{isFormatting:!0}),i?t.conversion.attributeToAttribute(function(t){const e={};for(const n of t)e[n.name]={key:"class",value:n.className};const n={model:{key:"alignment",values:t.map((t=>t.name))},view:e};return n}(o)):t.conversion.for("downcast").attributeToAttribute(function(t){const e={};for(const{name:n}of t)e[n]={key:"style",value:{"text-align":n}};const n={model:{key:"alignment",values:t.map((t=>t.name))},view:e};return n}(o));const r=function(t){const e=[];for(const{name:n}of t)e.push({view:{key:"style",value:{"text-align":n}},model:{key:"alignment",value:n}});return e}(o);for(const e of r)t.conversion.for("upcast").attributeToAttribute(e);const s=function(t){const e=[];for(const{name:n}of t)e.push({view:{key:"align",value:n},model:{key:"alignment",value:n}});return e}(o);for(const e of s)t.conversion.for("upcast").attributeToAttribute(e);t.commands.add("alignment",new hb(t))}}const mb=new Map([["left",Ju.alignLeft],["right",Ju.alignRight],["center",Ju.alignCenter],["justify",Ju.alignJustify]]);class gb extends Nr{get localizedOptionTitles(){const t=this.editor.t;return{left:t("Align left"),right:t("Align right"),center:t("Align center"),justify:t("Justify")}}static get pluginName(){return"AlignmentUI"}init(){const t=lb(this.editor.config.get("alignment.options"));t.map((t=>t.name)).filter(ab).forEach((t=>this._addButton(t))),this._addToolbarDropdown(t),this._addMenuBarMenu(t)}_addButton(t){this.editor.ui.componentFactory.add(`alignment:${t}`,(e=>this._createButton(e,t)))}_createButton(t,e,n={}){const o=this.editor,i=o.commands.get("alignment"),r=new om(t);return r.set({label:this.localizedOptionTitles[e],icon:mb.get(e),tooltip:!0,isToggleable:!0,...n}),r.bind("isEnabled").to(i),r.bind("isOn").to(i,"value",(t=>t===e)),this.listenTo(r,"execute",(()=>{o.execute("alignment",{value:e}),o.editing.view.focus()})),r}_addToolbarDropdown(t){const e=this.editor;e.ui.componentFactory.add("alignment",(n=>{const o=Ug(n),i="rtl"===n.uiLanguageDirection?"w":"e",r=n.t;$g(o,(()=>t.map((t=>this._createButton(n,t.name,{tooltipPosition:i})))),{enableActiveItemFocusOnDropdownOpen:!0,isVertical:!0,ariaLabel:r("Text alignment toolbar")}),o.buttonView.set({label:r("Text alignment"),tooltip:!0}),o.extendTemplate({attributes:{class:"ck-alignment-dropdown"}});const s="rtl"===n.contentLanguageDirection?mb.get("right"):mb.get("left"),a=e.commands.get("alignment");return o.buttonView.bind("icon").to(a,"value",(t=>mb.get(t)||s)),o.bind("isEnabled").to(a,"isEnabled"),this.listenTo(o,"execute",(()=>{e.editing.view.focus()})),o}))}_addMenuBarMenu(t){const e=this.editor;e.ui.componentFactory.add("menuBar:alignment",(n=>{const o=e.commands.get("alignment"),i=n.t,r=new Pk(n),s=new zk(n);r.bind("isEnabled").to(o),s.set({ariaLabel:i("Text alignment"),role:"menu"}),r.buttonView.set({label:i("Text alignment")});for(const i of t){const t=new dk(n,r),a=new Tm(n);a.extendTemplate({attributes:{"aria-checked":a.bindTemplate.to("isOn")}}),a.delegate("execute").to(r),a.set({label:this.localizedOptionTitles[i.name],icon:mb.get(i.name)}),a.on("execute",(()=>{e.execute("alignment",{value:i.name}),e.editing.view.focus()})),a.bind("isOn").to(o,"value",(t=>t===i.name)),a.bind("isEnabled").to(o,"isEnabled"),t.children.add(a),s.items.add(t)}return r.panelView.children.add(s),r}))}}class pb{model;limit;_isLocked;_size;_batch=null;_changeCallback;_selectionChangeCallback;constructor(t,e=20){this.model=t,this._size=0,this.limit=e,this._isLocked=!1,this._changeCallback=(t,e)=>{e.isLocal&&e.isUndoable&&e!==this._batch&&this._reset(!0)},this._selectionChangeCallback=()=>{this._reset()},this.model.document.on("change",this._changeCallback),this.model.document.selection.on("change:range",this._selectionChangeCallback),this.model.document.selection.on("change:attribute",this._selectionChangeCallback)}get batch(){return this._batch||(this._batch=this.model.createBatch({isTyping:!0})),this._batch}get size(){return this._size}input(t){this._size+=t,this._size>=this.limit&&this._reset(!0)}get isLocked(){return this._isLocked}lock(){this._isLocked=!0}unlock(){this._isLocked=!1}destroy(){this.model.document.off("change",this._changeCallback),this.model.document.selection.off("change:range",this._selectionChangeCallback),this.model.document.selection.off("change:attribute",this._selectionChangeCallback)}_reset(t=!1){this.isLocked&&!t||(this._batch=null,this._size=0)}}class fb extends qr{_buffer;constructor(t,e){super(t),this._buffer=new pb(t.model,e),this._isEnabledBasedOnSelection=!1}get buffer(){return this._buffer}destroy(){super.destroy(),this._buffer.destroy()}execute(t={}){const e=this.editor.model,n=e.document,o=t.text||"",i=o.length;let r=n.selection;if(t.selection?r=t.selection:t.range&&(r=e.createSelection(t.range)),!e.canEditAt(r))return;const s=t.resultRange;e.enqueueChange(this._buffer.batch,(t=>{this._buffer.lock();const a=Array.from(n.selection.getAttributes());e.deleteContent(r),o&&e.insertContent(t.createText(o,a),r),s?t.setSelection(s):r.is("documentSelection")||t.setSelection(r),this._buffer.unlock(),this._buffer.input(i)}))}}const kb=["insertText","insertReplacementText"];class bb extends rc{focusObserver;constructor(t){super(t),this.focusObserver=t.getObserver(Uc),i.isAndroid&&kb.push("insertCompositionText");const e=t.document;e.on("beforeinput",((n,o)=>{if(!this.isEnabled)return;const{data:i,targetRanges:r,inputType:s,domEvent:a}=o;if(!kb.includes(s))return;this.focusObserver.flush();const c=new w(e,"insertText");e.fire(c,new ac(t,a,{text:i,selection:t.createSelection(r)})),c.stop.called&&n.stop()})),e.on("compositionend",((n,{data:o,domEvent:r})=>{this.isEnabled&&!i.isAndroid&&o&&e.fire("insertText",new ac(t,r,{text:o,selection:e.selection}))}),{priority:"lowest"})}observe(){}stopObserving(){}}class wb extends Nr{static get pluginName(){return"Input"}init(){const t=this.editor,e=t.model,n=t.editing.view,o=e.document.selection;n.addObserver(bb);const r=new fb(t,t.config.get("typing.undoStep")||20);t.commands.add("insertText",r),t.commands.add("input",r),this.listenTo(n.document,"insertText",((o,r)=>{n.document.isComposing||r.preventDefault();const{text:s,selection:a,resultRange:c}=r,l=Array.from(a.getRanges()).map((e=>t.editing.mapper.toModelRange(e)));let d=s;if(i.isAndroid){const t=Array.from(l[0].getItems()).reduce(((t,e)=>t+(e.is("$textProxy")?e.data:"")),"");t&&(t.length<=d.length?d.startsWith(t)&&(d=d.substring(t.length),l[0].start=l[0].start.getShiftedBy(t.length)):t.startsWith(d)&&(l[0].start=l[0].start.getShiftedBy(d.length),d=""))}const h={text:d,selection:e.createSelection(l)};c&&(h.resultRange=t.editing.mapper.toModelRange(c)),t.execute("insertText",h),n.scrollToTheSelection()})),i.isAndroid?this.listenTo(n.document,"keydown",((t,i)=>{!o.isCollapsed&&229==i.keyCode&&n.document.isComposing&&_b(e,r)})):this.listenTo(n.document,"compositionstart",(()=>{o.isCollapsed||_b(e,r)}))}}function _b(t,e){if(!e.isEnabled)return;const n=e.buffer;n.lock(),t.enqueueChange(n.batch,(()=>{t.deleteContent(t.document.selection)})),n.unlock()}class Ab extends qr{direction;_buffer;constructor(t,e){super(t),this.direction=e,this._buffer=new pb(t.model,t.config.get("typing.undoStep")),this._isEnabledBasedOnSelection=!1}get buffer(){return this._buffer}execute(t={}){const e=this.editor.model,n=e.document;e.enqueueChange(this._buffer.batch,(o=>{this._buffer.lock();const i=o.createSelection(t.selection||n.selection);if(!e.canEditAt(i))return;const r=t.sequence||1,s=i.isCollapsed;if(i.isCollapsed&&e.modifySelection(i,{direction:this.direction,unit:t.unit,treatEmojiAsSingleUnit:!0}),this._shouldEntireContentBeReplacedWithParagraph(r))return void this._replaceEntireContentWithParagraph(o);if(this._shouldReplaceFirstBlockWithParagraph(i,r))return void this.editor.execute("paragraph",{selection:i});if(i.isCollapsed)return;let a=0;i.getFirstRange().getMinimalFlatRanges().forEach((t=>{a+=ot(t.getWalker({singleCharacters:!0,ignoreElementEnd:!0,shallow:!0}))})),e.deleteContent(i,{doNotResetEntireContent:s,direction:this.direction}),this._buffer.input(a),o.setSelection(i),this._buffer.unlock()}))}_shouldEntireContentBeReplacedWithParagraph(t){if(t>1)return!1;const e=this.editor.model,n=e.document.selection,o=e.schema.getLimitElement(n);if(!(n.isCollapsed&&n.containsEntireContent(o)))return!1;if(!e.schema.checkChild(o,"paragraph"))return!1;const i=o.getChild(0);return!i||!i.is("element","paragraph")}_replaceEntireContentWithParagraph(t){const e=this.editor.model,n=e.document.selection,o=e.schema.getLimitElement(n),i=t.createElement("paragraph");t.remove(t.createRangeIn(o)),t.insert(i,o),t.setSelection(i,0)}_shouldReplaceFirstBlockWithParagraph(t,e){const n=this.editor.model;if(e>1||"backward"!=this.direction)return!1;if(!t.isCollapsed)return!1;const o=t.getFirstPosition(),i=n.schema.getLimitElement(o),r=i.getChild(0);return o.parent==r&&(!!t.containsEntireContent(r)&&(!!n.schema.checkChild(i,"paragraph")&&"paragraph"!=r.name))}}const Cb="word",vb="selection",yb="backward",xb="forward",Eb={deleteContent:{unit:vb,direction:yb},deleteContentBackward:{unit:"codePoint",direction:yb},deleteWordBackward:{unit:Cb,direction:yb},deleteHardLineBackward:{unit:vb,direction:yb},deleteSoftLineBackward:{unit:vb,direction:yb},deleteContentForward:{unit:"character",direction:xb},deleteWordForward:{unit:Cb,direction:xb},deleteHardLineForward:{unit:vb,direction:xb},deleteSoftLineForward:{unit:vb,direction:xb}};class Db extends rc{constructor(t){super(t);const e=t.document;let n=0;e.on("keydown",(()=>{n++})),e.on("keyup",(()=>{n=0})),e.on("beforeinput",((o,r)=>{if(!this.isEnabled)return;const{targetRanges:s,domEvent:a,inputType:c}=r,l=Eb[c];if(!l)return;const d={direction:l.direction,unit:l.unit,sequence:n};d.unit==vb&&(d.selectionToRemove=t.createSelection(s[0])),"deleteContentBackward"===c&&(i.isAndroid&&(d.sequence=1),function(t){if(1!=t.length||t[0].isCollapsed)return!1;const e=t[0].getWalker({direction:"backward",singleCharacters:!0,ignoreElementEnd:!0});let n=0;for(const{nextPosition:t,item:o}of e){if(t.parent.is("$text")){const e=t.parent.data,o=t.offset;if(ir(e,o)||rr(e,o)||ar(e,o))continue;n++}else(o.is("containerElement")||o.is("emptyElement"))&&n++;if(n>1)return!0}return!1}(s)&&(d.unit=vb,d.selectionToRemove=t.createSelection(s)));const h=new na(e,"delete",s[0]);e.fire(h,new ac(t,a,d)),h.stop.called&&o.stop()})),i.isBlink&&function(t){const e=t.view,n=e.document;let o=null,i=!1;function r(t){return t==_i.backspace||t==_i.delete}function s(t){return t==_i.backspace?yb:xb}n.on("keydown",((t,{keyCode:e})=>{o=e,i=!1})),n.on("keyup",((a,{keyCode:c,domEvent:l})=>{const d=n.selection,h=t.isEnabled&&c==o&&r(c)&&!d.isCollapsed&&!i;if(o=null,h){const t=d.getFirstRange(),o=new na(n,"delete",t),i={unit:vb,direction:s(c),selectionToRemove:d};n.fire(o,new ac(e,l,i))}})),n.on("beforeinput",((t,{inputType:e})=>{const n=Eb[e];r(o)&&n&&n.direction==s(o)&&(i=!0)}),{priority:"high"}),n.on("beforeinput",((t,{inputType:e,data:n})=>{o==_i.delete&&"insertText"==e&&""==n&&t.stop()}),{priority:"high"})}(this)}observe(){}stopObserving(){}}class Bb extends Nr{_undoOnBackspace;static get pluginName(){return"Delete"}init(){const t=this.editor,e=t.editing.view,n=e.document,o=t.model.document;e.addObserver(Db),this._undoOnBackspace=!1;const i=new Ab(t,"forward");t.commands.add("deleteForward",i),t.commands.add("forwardDelete",i),t.commands.add("delete",new Ab(t,"backward")),this.listenTo(n,"delete",((o,i)=>{n.isComposing||i.preventDefault();const{direction:r,sequence:s,selectionToRemove:a,unit:c}=i,l="forward"===r?"deleteForward":"delete",d={sequence:s};if("selection"==c){const e=Array.from(a.getRanges()).map((e=>t.editing.mapper.toModelRange(e)));d.selection=t.model.createSelection(e)}else d.unit=c;t.execute(l,d),e.scrollToTheSelection()}),{priority:"low"}),this.editor.plugins.has("UndoEditing")&&(this.listenTo(n,"delete",((e,n)=>{this._undoOnBackspace&&"backward"==n.direction&&1==n.sequence&&"codePoint"==n.unit&&(this._undoOnBackspace=!1,t.execute("undo"),n.preventDefault(),e.stop())}),{context:"$capture"}),this.listenTo(o,"change",(()=>{this._undoOnBackspace=!1})))}requestUndoOnBackspace(){this.editor.plugins.has("UndoEditing")&&(this._undoOnBackspace=!0)}}class Tb extends Nr{static get requires(){return[wb,Bb]}static get pluginName(){return"Typing"}}class Sb extends(J()){model;testCallback;_hasMatch;constructor(t,e){super(),this.model=t,this.testCallback=e,this._hasMatch=!1,this.set("isEnabled",!0),this.on("change:isEnabled",(()=>{this.isEnabled?this._startListening():(this.stopListening(t.document.selection),this.stopListening(t.document))})),this._startListening()}get hasMatch(){return this._hasMatch}_startListening(){const t=this.model.document;this.listenTo(t.selection,"change:range",((e,{directChange:n})=>{n&&(t.selection.isCollapsed?this._evaluateTextBeforeSelection("selection"):this.hasMatch&&(this.fire("unmatched"),this._hasMatch=!1))})),this.listenTo(t,"change:data",((t,e)=>{!e.isUndo&&e.isLocal&&this._evaluateTextBeforeSelection("data",{batch:e})}))}_evaluateTextBeforeSelection(t,e={}){const n=this.model,o=n.document.selection,i=n.createRange(n.createPositionAt(o.focus.parent,0),o.focus),{text:r,range:s}=function(t,e){let n=t.start;return{text:Array.from(t.getWalker({ignoreElementEnd:!1})).reduce(((t,{item:o})=>o.is("$text")||o.is("$textProxy")?t+o.data:(n=e.createPositionAfter(o),"")),""),range:e.createRange(n,t.end)}}(i,n),a=this.testCallback(r);if(!a&&this.hasMatch&&this.fire("unmatched"),this._hasMatch=!!a,a){const n=Object.assign(e,{text:r,range:s});"object"==typeof a&&Object.assign(n,a),this.fire(`matched:${t}`,n)}}}const Ib={copyright:{from:"(c)",to:"©"},registeredTrademark:{from:"(r)",to:"®"},trademark:{from:"(tm)",to:"™"},oneHalf:{from:/(^|[^/a-z0-9])(1\/2)([^/a-z0-9])$/i,to:[null,"½",null]},oneThird:{from:/(^|[^/a-z0-9])(1\/3)([^/a-z0-9])$/i,to:[null,"⅓",null]},twoThirds:{from:/(^|[^/a-z0-9])(2\/3)([^/a-z0-9])$/i,to:[null,"⅔",null]},oneForth:{from:/(^|[^/a-z0-9])(1\/4)([^/a-z0-9])$/i,to:[null,"¼",null]},threeQuarters:{from:/(^|[^/a-z0-9])(3\/4)([^/a-z0-9])$/i,to:[null,"¾",null]},lessThanOrEqual:{from:"<=",to:"≤"},greaterThanOrEqual:{from:">=",to:"≥"},notEqual:{from:"!=",to:"≠"},arrowLeft:{from:"<-",to:"←"},arrowRight:{from:"->",to:"→"},horizontalEllipsis:{from:"...",to:"…"},enDash:{from:/(^| )(--)( )$/,to:[null,"–",null]},emDash:{from:/(^| )(---)( )$/,to:[null,"—",null]},quotesPrimary:{from:Mb('"'),to:[null,"“",null,"”"]},quotesSecondary:{from:Mb("'"),to:[null,"‘",null,"’"]},quotesPrimaryEnGb:{from:Mb("'"),to:[null,"‘",null,"’"]},quotesSecondaryEnGb:{from:Mb('"'),to:[null,"“",null,"”"]},quotesPrimaryPl:{from:Mb('"'),to:[null,"„",null,"”"]},quotesSecondaryPl:{from:Mb("'"),to:[null,"‚",null,"’"]}},Pb={symbols:["copyright","registeredTrademark","trademark"],mathematical:["oneHalf","oneThird","twoThirds","oneForth","threeQuarters","lessThanOrEqual","greaterThanOrEqual","notEqual","arrowLeft","arrowRight"],typography:["horizontalEllipsis","enDash","emDash"],quotes:["quotesPrimary","quotesSecondary"]},zb=["symbols","mathematical","typography","quotes"];function Rb(t){return"string"==typeof t?new RegExp(`(${Kf(t)})$`):t}function Lb(t){return"string"==typeof t?()=>[t]:t instanceof Array?()=>t:t}function Fb(t){return(t.textNode?t.textNode:t.nodeAfter).getAttributes()}function Mb(t){return new RegExp(`(^|\\s)(${t})([^${t}]*)(${t})$`)}function Vb(t,e,n,o){let i,r=null;"function"==typeof o?i=o:(r=t.commands.get(o),i=()=>{t.execute(o)}),t.model.document.on("change:data",((s,a)=>{if(r&&!r.isEnabled||!e.isEnabled)return;const c=Xi(t.model.document.selection.getRanges());if(!c.isCollapsed)return;if(a.isUndo||!a.isLocal)return;const l=Array.from(t.model.document.differ.getChanges()),d=l[0];if(1!=l.length||"insert"!==d.type||"$text"!=d.name||1!=d.length)return;const h=d.position.parent;if(h.is("element","codeBlock"))return;if(h.is("element","listItem")&&"function"!=typeof o&&!["numberedList","bulletedList","todoList"].includes(o))return;if(r&&!0===r.value)return;const u=h.getChild(0),m=t.model.createRangeOn(u);if(!m.containsRange(c)&&!c.end.isEqual(m.end))return;const g=n.exec(u.data.substr(0,c.end.offset));g&&t.model.enqueueChange((e=>{const n=e.createPositionAt(h,0),o=e.createPositionAt(h,g[0].length),r=new Il(n,o);if(!1!==i({match:g})){e.remove(r);const n=t.model.document.selection.getFirstRange(),o=e.createRangeIn(h);!h.isEmpty||o.isEqual(n)||o.containsRange(n,!0)||e.remove(h)}r.detach(),t.model.enqueueChange((()=>{t.plugins.get("Delete").requestUndoOnBackspace()}))}))}))}function Ob(t,e,n,o){let i,r;n instanceof RegExp?i=n:r=n,r=r||(t=>{let e;const n=[],o=[];for(;null!==(e=i.exec(t))&&!(e&&e.length<4);){let{index:t,1:i,2:r,3:s}=e;const a=i+r+s;t+=e[0].length-a.length;const c=[t,t+i.length],l=[t+i.length+r.length,t+i.length+r.length+s.length];n.push(c),n.push(l),o.push([t+i.length,t+i.length+r.length])}return{remove:n,format:o}}),t.model.document.on("change:data",((n,i)=>{if(i.isUndo||!i.isLocal||!e.isEnabled)return;const s=t.model,a=s.document.selection;if(!a.isCollapsed)return;const c=Array.from(s.document.differ.getChanges()),l=c[0];if(1!=c.length||"insert"!==l.type||"$text"!=l.name||1!=l.length)return;const d=a.focus,h=d.parent,{text:u,range:m}=function(t,e){let n=t.start;const o=Array.from(t.getItems()).reduce(((t,o)=>!o.is("$text")&&!o.is("$textProxy")||o.getAttribute("code")?(n=e.createPositionAfter(o),""):t+o.data),"");return{text:o,range:e.createRange(n,t.end)}}(s.createRange(s.createPositionAt(h,0),d),s),g=r(u),p=Nb(m.start,g.format,s),f=Nb(m.start,g.remove,s);p.length&&f.length&&s.enqueueChange((e=>{if(!1!==o(e,p)){for(const t of f.reverse())e.remove(t);s.enqueueChange((()=>{t.plugins.get("Delete").requestUndoOnBackspace()}))}}))}))}function Nb(t,e,n){return e.filter((t=>void 0!==t[0]&&void 0!==t[1])).map((e=>n.createRange(t.getShiftedBy(e[0]),t.getShiftedBy(e[1]))))}function Hb(t,e){return(n,o)=>{if(!t.commands.get(e).isEnabled)return!1;const i=t.model.schema.getValidRanges(o,e);for(const t of i)n.setAttribute(e,!0,t);n.removeSelectionAttribute(e)}}class qb extends qr{attributeKey;constructor(t,e){super(t),this.attributeKey=e}refresh(){const t=this.editor.model,e=t.document;this.value=this._getValueFromFirstAllowedNode(),this.isEnabled=t.schema.checkAttributeInSelection(e.selection,this.attributeKey)}execute(t={}){const e=this.editor.model,n=e.document.selection,o=void 0===t.forceValue?!this.value:t.forceValue;e.change((t=>{if(n.isCollapsed)o?t.setSelectionAttribute(this.attributeKey,!0):t.removeSelectionAttribute(this.attributeKey);else{const i=e.schema.getValidRanges(n.getRanges(),this.attributeKey);for(const e of i)o?t.setAttribute(this.attributeKey,o,e):t.removeAttribute(this.attributeKey,e)}}))}_getValueFromFirstAllowedNode(){const t=this.editor.model,e=t.schema,n=t.document.selection;if(n.isCollapsed)return n.hasAttribute(this.attributeKey);for(const t of n.getRanges())for(const n of t.getItems())if(e.checkAttribute(n,this.attributeKey))return n.hasAttribute(this.attributeKey);return!1}}const jb="bold";class Wb extends Nr{static get pluginName(){return"BoldEditing"}init(){const t=this.editor,e=this.editor.t;t.model.schema.extend("$text",{allowAttributes:jb}),t.model.schema.setAttributeProperties(jb,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:jb,view:"strong",upcastAlso:["b",t=>{const e=t.getStyle("font-weight");return e&&("bold"==e||Number(e)>=600)?{name:!0,styles:["font-weight"]}:null}]}),t.commands.add(jb,new qb(t,jb)),t.keystrokes.set("CTRL+B",jb),t.accessibility.addKeystrokeInfos({keystrokes:[{label:e("Bold text"),keystroke:"CTRL+B"}]})}}function Gb({editor:t,commandName:e,plugin:n,icon:o,label:i,keystroke:r}){return s=>{const a=t.commands.get(e),c=new s(t.locale);return c.set({label:i,icon:o,keystroke:r,isToggleable:!0}),c.bind("isEnabled").to(a,"isEnabled"),n.listenTo(c,"execute",(()=>{t.execute(e),t.editing.view.focus()})),c}}const Kb="bold";class Ub extends Nr{static get pluginName(){return"BoldUI"}init(){const t=this.editor,e=t.locale.t,n=t.commands.get(Kb),o=Gb({editor:t,commandName:Kb,plugin:this,icon:Ju.bold,label:e("Bold"),keystroke:"CTRL+B"});t.ui.componentFactory.add(Kb,(()=>{const t=o(om);return t.set({tooltip:!0}),t.bind("isOn").to(n,"value"),t})),t.ui.componentFactory.add("menuBar:"+Kb,(()=>o(Tm)))}}var $b=n(4199),Zb={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()($b.A,Zb);$b.A.locals;const Jb="italic";class Yb extends Nr{static get pluginName(){return"ItalicEditing"}init(){const t=this.editor,e=this.editor.t;t.model.schema.extend("$text",{allowAttributes:Jb}),t.model.schema.setAttributeProperties(Jb,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:Jb,view:"i",upcastAlso:["em",{styles:{"font-style":"italic"}}]}),t.commands.add(Jb,new qb(t,Jb)),t.keystrokes.set("CTRL+I",Jb),t.accessibility.addKeystrokeInfos({keystrokes:[{label:e("Italic text"),keystroke:"CTRL+I"}]})}}const Qb="italic";class Xb extends Nr{static get pluginName(){return"ItalicUI"}init(){const t=this.editor,e=t.commands.get(Qb),n=t.locale.t,o=Gb({editor:t,commandName:Qb,plugin:this,icon:'',keystroke:"CTRL+I",label:n("Italic")});t.ui.componentFactory.add(Qb,(()=>{const t=o(om);return t.set({tooltip:!0}),t.bind("isOn").to(e,"value"),t})),t.ui.componentFactory.add("menuBar:"+Qb,(()=>o(Tm)))}}const tw="strikethrough";class ew extends Nr{static get pluginName(){return"StrikethroughEditing"}init(){const t=this.editor,e=this.editor.t;t.model.schema.extend("$text",{allowAttributes:tw}),t.model.schema.setAttributeProperties(tw,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:tw,view:"s",upcastAlso:["del","strike",{styles:{"text-decoration":"line-through"}}]}),t.commands.add(tw,new qb(t,tw)),t.keystrokes.set("CTRL+SHIFT+X","strikethrough"),t.accessibility.addKeystrokeInfos({keystrokes:[{label:e("Strikethrough text"),keystroke:"CTRL+SHIFT+X"}]})}}const nw="strikethrough";class ow extends Nr{static get pluginName(){return"StrikethroughUI"}init(){const t=this.editor,e=t.locale.t,n=Gb({editor:t,commandName:nw,plugin:this,icon:'',keystroke:"CTRL+SHIFT+X",label:e("Strikethrough")});t.ui.componentFactory.add(nw,(()=>{const e=n(om),o=t.commands.get(nw);return e.set({tooltip:!0}),e.bind("isOn").to(o,"value"),e})),t.ui.componentFactory.add("menuBar:"+nw,(()=>n(Tm)))}}const iw="subscript";class rw extends Nr{static get pluginName(){return"SubscriptEditing"}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:iw}),t.model.schema.setAttributeProperties(iw,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:iw,view:"sub",upcastAlso:[{styles:{"vertical-align":"sub"}}]}),t.commands.add(iw,new qb(t,iw))}}const sw="subscript";class aw extends Nr{static get pluginName(){return"SubscriptUI"}init(){const t=this.editor,e=t.locale.t,n=Gb({editor:t,commandName:sw,plugin:this,icon:'',label:e("Subscript")});t.ui.componentFactory.add(sw,(()=>{const e=n(om),o=t.commands.get(sw);return e.set({tooltip:!0}),e.bind("isOn").to(o,"value"),e})),t.ui.componentFactory.add("menuBar:"+sw,(()=>n(Tm)))}}const cw="superscript";class lw extends Nr{static get pluginName(){return"SuperscriptEditing"}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:cw}),t.model.schema.setAttributeProperties(cw,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:cw,view:"sup",upcastAlso:[{styles:{"vertical-align":"super"}}]}),t.commands.add(cw,new qb(t,cw))}}const dw="superscript";class hw extends Nr{static get pluginName(){return"SuperscriptUI"}init(){const t=this.editor,e=t.locale.t,n=Gb({editor:t,commandName:dw,plugin:this,icon:'',label:e("Superscript")});t.ui.componentFactory.add(dw,(()=>{const e=n(om),o=t.commands.get(dw);return e.set({tooltip:!0}),e.bind("isOn").to(o,"value"),e})),t.ui.componentFactory.add("menuBar:"+dw,(()=>n(Tm)))}}const uw="underline";class mw extends Nr{static get pluginName(){return"UnderlineEditing"}init(){const t=this.editor,e=this.editor.t;t.model.schema.extend("$text",{allowAttributes:uw}),t.model.schema.setAttributeProperties(uw,{isFormatting:!0,copyOnEnter:!0}),t.conversion.attributeToElement({model:uw,view:"u",upcastAlso:{styles:{"text-decoration":"underline"}}}),t.commands.add(uw,new qb(t,uw)),t.keystrokes.set("CTRL+U","underline"),t.accessibility.addKeystrokeInfos({keystrokes:[{label:e("Underline text"),keystroke:"CTRL+U"}]})}}const gw="underline";class pw extends Nr{static get pluginName(){return"UnderlineUI"}init(){const t=this.editor,e=t.commands.get(gw),n=t.locale.t,o=Gb({editor:t,commandName:gw,plugin:this,icon:'',label:n("Underline"),keystroke:"CTRL+U"});t.ui.componentFactory.add(gw,(()=>{const t=o(om);return t.set({tooltip:!0}),t.bind("isOn").to(e,"value"),t})),t.ui.componentFactory.add("menuBar:"+gw,(()=>o(Tm)))}}function*fw(t,e){for(const n of e)n&&t.getAttributeProperties(n[0]).copyOnEnter&&(yield n)}class kw extends qr{execute(){this.editor.model.change((t=>{this.enterBlock(t),this.fire("afterExecute",{writer:t})}))}enterBlock(t){const e=this.editor.model,n=e.document.selection,o=e.schema,i=n.isCollapsed,r=n.getFirstRange(),s=r.start.parent,a=r.end.parent;if(o.isLimit(s)||o.isLimit(a))return i||s!=a||e.deleteContent(n),!1;if(i){const e=fw(t.model.schema,n.getAttributes());return bw(t,r.start),t.setSelectionAttribute(e),!0}{const o=!(r.start.isAtStart&&r.end.isAtEnd),i=s==a;if(e.deleteContent(n,{leaveUnmerged:o}),o){if(i)return bw(t,n.focus),!0;t.setSelection(a,0)}}return!1}}function bw(t,e){t.split(e),t.setSelection(e.parent.nextSibling,0)}const ww={insertParagraph:{isSoft:!1},insertLineBreak:{isSoft:!0}};class _w extends rc{constructor(t){super(t);const e=this.document;let n=!1;e.on("keydown",((t,e)=>{n=e.shiftKey})),e.on("beforeinput",((o,r)=>{if(!this.isEnabled)return;let s=r.inputType;i.isSafari&&n&&"insertParagraph"==s&&(s="insertLineBreak");const a=r.domEvent,c=ww[s];if(!c)return;const l=new na(e,"enter",r.targetRanges[0]);e.fire(l,new ac(t,a,{isSoft:c.isSoft})),l.stop.called&&o.stop()}))}observe(){}stopObserving(){}}class Aw extends Nr{static get pluginName(){return"Enter"}init(){const t=this.editor,e=t.editing.view,n=e.document,o=this.editor.t;e.addObserver(_w),t.commands.add("enter",new kw(t)),this.listenTo(n,"enter",((o,i)=>{n.isComposing||i.preventDefault(),i.isSoft||(t.execute("enter"),e.scrollToTheSelection())}),{priority:"low"}),t.accessibility.addKeystrokeInfos({keystrokes:[{label:o("Insert a hard break (a new paragraph)"),keystroke:"Enter"}]})}}class Cw extends qr{execute(){const t=this.editor.model,e=t.document;t.change((n=>{!function(t,e,n){const o=n.isCollapsed,i=n.getFirstRange(),r=i.start.parent,s=i.end.parent,a=r==s;if(o){const o=fw(t.schema,n.getAttributes());vw(t,e,i.end),e.removeSelectionAttribute(n.getAttributeKeys()),e.setSelectionAttribute(o)}else{const o=!(i.start.isAtStart&&i.end.isAtEnd);t.deleteContent(n,{leaveUnmerged:o}),a?vw(t,e,n.focus):o&&e.setSelection(s,0)}}(t,n,e.selection),this.fire("afterExecute",{writer:n})}))}refresh(){const t=this.editor.model,e=t.document;this.isEnabled=function(t,e){if(e.rangeCount>1)return!1;const n=e.anchor;if(!n||!t.checkChild(n,"softBreak"))return!1;const o=e.getFirstRange(),i=o.start.parent,r=o.end.parent;if((yw(i,t)||yw(r,t))&&i!==r)return!1;return!0}(t.schema,e.selection)}}function vw(t,e,n){const o=e.createElement("softBreak");t.insertContent(o,n),e.setSelection(o,"after")}function yw(t,e){return!t.is("rootElement")&&(e.isLimit(t)||yw(t.parent,e))}class xw extends Nr{static get pluginName(){return"ShiftEnter"}init(){const t=this.editor,e=t.model.schema,n=t.conversion,o=t.editing.view,i=o.document,r=this.editor.t;e.register("softBreak",{allowWhere:"$text",isInline:!0}),n.for("upcast").elementToElement({model:"softBreak",view:"br"}),n.for("downcast").elementToElement({model:"softBreak",view:(t,{writer:e})=>e.createEmptyElement("br")}),o.addObserver(_w),t.commands.add("shiftEnter",new Cw(t)),this.listenTo(i,"enter",((e,n)=>{i.isComposing||n.preventDefault(),n.isSoft&&(t.execute("shiftEnter"),o.scrollToTheSelection())}),{priority:"low"}),t.accessibility.addKeystrokeInfos({keystrokes:[{label:r("Insert a soft break (a <br> element)"),keystroke:"Shift+Enter"}]})}}class Ew extends qr{refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.schema,o=e.document.selection,i=Array.from(o.getSelectedBlocks()),r=void 0===t.forceValue?!this.value:t.forceValue;e.change((t=>{if(r){const e=i.filter((t=>Dw(t)||Tw(n,t)));this._applyQuote(t,e)}else this._removeQuote(t,i.filter(Dw))}))}_getValue(){const t=Xi(this.editor.model.document.selection.getSelectedBlocks());return!(!t||!Dw(t))}_checkEnabled(){if(this.value)return!0;const t=this.editor.model.document.selection,e=this.editor.model.schema,n=Xi(t.getSelectedBlocks());return!!n&&Tw(e,n)}_removeQuote(t,e){Bw(t,e).reverse().forEach((e=>{if(e.start.isAtStart&&e.end.isAtEnd)return void t.unwrap(e.start.parent);if(e.start.isAtStart){const n=t.createPositionBefore(e.start.parent);return void t.move(e,n)}e.end.isAtEnd||t.split(e.end);const n=t.createPositionAfter(e.end.parent);t.move(e,n)}))}_applyQuote(t,e){const n=[];Bw(t,e).reverse().forEach((e=>{let o=Dw(e.start);o||(o=t.createElement("blockQuote"),t.wrap(e,o)),n.push(o)})),n.reverse().reduce(((e,n)=>e.nextSibling==n?(t.merge(t.createPositionAfter(e)),e):n))}}function Dw(t){return"blockQuote"==t.parent.name?t.parent:null}function Bw(t,e){let n,o=0;const i=[];for(;o{const o=t.model.document.differ.getChanges();for(const t of o)if("insert"==t.type){const o=t.position.nodeAfter;if(!o)continue;if(o.is("element","blockQuote")&&o.isEmpty)return n.remove(o),!0;if(o.is("element","blockQuote")&&!e.checkChild(t.position,o))return n.unwrap(o),!0;if(o.is("element")){const t=n.createRangeIn(o);for(const o of t.getItems())if(o.is("element","blockQuote")&&!e.checkChild(n.createPositionBefore(o),o))return n.unwrap(o),!0}}else if("remove"==t.type){const e=t.position.parent;if(e.is("element","blockQuote")&&e.isEmpty)return n.remove(e),!0}return!1}));const n=this.editor.editing.view.document,o=t.model.document.selection,i=t.commands.get("blockQuote");this.listenTo(n,"enter",((e,n)=>{if(!o.isCollapsed||!i.value)return;o.getLastPosition().parent.isEmpty&&(t.execute("blockQuote"),t.editing.view.scrollToTheSelection(),n.preventDefault(),e.stop())}),{context:"blockquote"}),this.listenTo(n,"delete",((e,n)=>{if("backward"!=n.direction||!o.isCollapsed||!i.value)return;const r=o.getLastPosition().parent;r.isEmpty&&!r.previousSibling&&(t.execute("blockQuote"),t.editing.view.scrollToTheSelection(),n.preventDefault(),e.stop())}),{context:"blockquote"})}}var Iw=n(8708),Pw={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Iw.A,Pw);Iw.A.locals;class zw extends Nr{static get pluginName(){return"BlockQuoteUI"}init(){const t=this.editor,e=t.commands.get("blockQuote");t.ui.componentFactory.add("blockQuote",(()=>{const t=this._createButton(om);return t.set({tooltip:!0}),t.bind("isOn").to(e,"value"),t})),t.ui.componentFactory.add("menuBar:blockQuote",(()=>this._createButton(Tm)))}_createButton(t){const e=this.editor,n=e.locale,o=e.commands.get("blockQuote"),i=new t(e.locale),r=n.t;return i.set({label:r("Block quote"),icon:Ju.quote,isToggleable:!0}),i.bind("isEnabled").to(o,"isEnabled"),this.listenTo(i,"execute",(()=>{e.execute("blockQuote"),e.editing.view.focus()})),i}}const Rw={autoRefresh:!0},Lw=36e5;class Fw extends(J()){_refresh;_options;_tokenRefreshTimeout;constructor(t,e={}){if(super(),!t)throw new x("token-missing-token-url",this);e.initValue&&this._validateTokenValue(e.initValue),this.set("value",e.initValue),this._refresh="function"==typeof t?t:()=>{return e=t,new Promise(((t,n)=>{const o=new XMLHttpRequest;o.open("GET",e),o.addEventListener("load",(()=>{const e=o.status,i=o.response;return e<200||e>299?n(new x("token-cannot-download-new-token",null)):t(i)})),o.addEventListener("error",(()=>n(new Error("Network Error")))),o.addEventListener("abort",(()=>n(new Error("Abort")))),o.send()}));var e},this._options={...Rw,...e}}init(){return new Promise(((t,e)=>{this.value?(this._options.autoRefresh&&this._registerRefreshTokenTimeout(),t(this)):this.refreshToken().then(t).catch(e)}))}refreshToken(){return this._refresh().then((t=>(this._validateTokenValue(t),this.set("value",t),this._options.autoRefresh&&this._registerRefreshTokenTimeout(),this)))}destroy(){clearTimeout(this._tokenRefreshTimeout)}_validateTokenValue(t){const e="string"==typeof t,n=!/^".*"$/.test(t),o=e&&3===t.split(".").length;if(!n||!o)throw new x("token-not-in-jwt-format",this)}_registerRefreshTokenTimeout(){const t=this._getTokenRefreshTimeoutTime();clearTimeout(this._tokenRefreshTimeout),this._tokenRefreshTimeout=setTimeout((()=>{this.refreshToken()}),t)}_getTokenRefreshTimeoutTime(){try{const[,t]=this.value.split("."),{exp:e}=JSON.parse(atob(t));if(!e)return Lw;return Math.floor((1e3*e-Date.now())/2)}catch(t){return Lw}}static create(t,e={}){return new Fw(t,e).init()}}const Mw=/^data:(\S*?);base64,/;class Vw extends(L()){file;xhr;_token;_apiAddress;constructor(t,e,n){if(super(),!t)throw new x("fileuploader-missing-file",null);if(!e)throw new x("fileuploader-missing-token",null);if(!n)throw new x("fileuploader-missing-api-address",null);this.file=function(t){if("string"!=typeof t)return!1;const e=t.match(Mw);return!(!e||!e.length)}(t)?function(t,e=512){try{const n=t.match(Mw)[1],o=atob(t.replace(Mw,"")),i=[];for(let t=0;tt(n))),this}onError(t){return this.once("error",((e,n)=>t(n))),this}abort(){this.xhr.abort()}send(){return this._prepareRequest(),this._attachXHRListeners(),this._sendRequest()}_prepareRequest(){const t=new XMLHttpRequest;t.open("POST",this._apiAddress),t.setRequestHeader("Authorization",this._token.value),t.responseType="json",this.xhr=t}_attachXHRListeners(){const t=this.xhr,e=t=>()=>this.fire("error",t);t.addEventListener("error",e("Network Error")),t.addEventListener("abort",e("Abort")),t.upload&&t.upload.addEventListener("progress",(t=>{t.lengthComputable&&this.fire("progress",{total:t.total,uploaded:t.loaded})})),t.addEventListener("load",(()=>{const e=t.status,n=t.response;if(e<200||e>299)return this.fire("error",n.message||n.error)}))}_sendRequest(){const t=new FormData,e=this.xhr;return t.append("file",this.file),new Promise(((n,o)=>{e.addEventListener("load",(()=>{const t=e.status,i=e.response;return t<200||t>299?i.message?o(new x("fileuploader-uploading-data-failed",this,{message:i.message})):o(i.error):n(i)})),e.addEventListener("error",(()=>o(new Error("Network Error")))),e.addEventListener("abort",(()=>o(new Error("Abort")))),e.send(t)}))}}class Ow{_token;_apiAddress;constructor(t,e){if(!t)throw new x("uploadgateway-missing-token",null);if(!e)throw new x("uploadgateway-missing-api-address",null);this._token=t,this._apiAddress=e}upload(t){return new Vw(t,this._token,this._apiAddress)}}class Nw extends Ur{static get pluginName(){return"CloudServicesCore"}createToken(t,e){return new Fw(t,e)}createUploadGateway(t,e){return new Ow(t,e)}}class Hw extends cc{domEventType=["paste","copy","cut","drop","dragover","dragstart","dragend","dragenter","dragleave"];constructor(t){super(t);const e=this.document;function n(t){return(n,o)=>{o.preventDefault();const i=o.dropRange?[o.dropRange]:null,r=new w(e,t);e.fire(r,{dataTransfer:o.dataTransfer,method:n.name,targetRanges:i,target:o.target,domEvent:o.domEvent}),r.stop.called&&o.stopPropagation()}}this.listenTo(e,"paste",n("clipboardInput"),{priority:"low"}),this.listenTo(e,"drop",n("clipboardInput"),{priority:"low"}),this.listenTo(e,"dragover",n("dragging"),{priority:"low"})}onDomEvent(t){const e="clipboardData"in t?t.clipboardData:t.dataTransfer,n="drop"==t.type||"paste"==t.type,o={dataTransfer:new Jc(e,{cacheFiles:n})};"drop"!=t.type&&"dragover"!=t.type||(o.dropRange=function(t,e){const n=e.target.ownerDocument,o=e.clientX,i=e.clientY;let r;n.caretRangeFromPoint&&n.caretRangeFromPoint(o,i)?r=n.caretRangeFromPoint(o,i):e.rangeParent&&(r=n.createRange(),r.setStart(e.rangeParent,e.rangeOffset),r.collapse(!0));if(r)return t.domConverter.domRangeToView(r);return null}(this.view,t)),this.fire(t.type,t,o)}}const qw=["figcaption","li"],jw=["ol","ul"];function Ww(t){if(t.is("$text")||t.is("$textProxy"))return t.data;if(t.is("element","img")&&t.hasAttribute("alt"))return t.getAttribute("alt");if(t.is("element","br"))return"\n";let e="",n=null;for(const o of t.getChildren())e+=Gw(o,n)+Ww(o),n=o;return e}function Gw(t,e){return e?t.is("element","li")&&!t.isEmpty&&t.getChild(0).is("containerElement")||jw.includes(t.name)&&jw.includes(e.name)?"\n\n":t.is("containerElement")||e.is("containerElement")?qw.includes(t.name)||qw.includes(e.name)?"\n":"\n\n":"":""}const Kw=function(t,e){return t&&Ti(t,e,mn)};const Uw=function(t,e,n,o){var i=n.length,r=i,s=!o;if(null==t)return!r;for(t=Object(t);i--;){var a=n[i];if(s&&a[2]?a[1]!==t[a[0]]:!(a[0]in t))return!1}for(;++it.model.getSelectedContent(t.model.document.selection))){return this.editor.model.change((o=>{const i=o.model.document.selection;o.setSelection(e);const r=this._insertFakeMarkersIntoSelection(o,o.model.document.selection,t),s=n(o),a=this._removeFakeMarkersInsideElement(o,s);for(const[t,e]of Object.entries(r)){a[t]||=o.createRangeIn(s);for(const t of e)o.remove(t)}s.markers.clear();for(const[t,e]of Object.entries(a))s.markers.set(t,e);return o.setSelection(i),s}))}_pasteMarkersIntoTransformedElement(t,e){const n=this._getPasteMarkersFromRangeMap(t);return this.editor.model.change((t=>{const o=this._insertFakeMarkersElements(t,n),i=e(t),r=this._removeFakeMarkersInsideElement(t,i);for(const e of Object.values(o).flat())t.remove(e);for(const[e,n]of Object.entries(r))t.model.markers.has(e)||t.addMarker(e,{usingOperation:!0,affectsData:!0,range:n});return i}))}_pasteFragmentWithMarkers(t){const e=this._getPasteMarkersFromRangeMap(t.markers);t.markers.clear();for(const n of e)t.markers.set(n.name,n.range);return this.editor.model.insertContent(t)}_forceMarkersCopy(t,e,n={allowedActions:"all",copyPartiallySelected:!0,duplicateOnPaste:!0}){const o=this._markersToCopy.get(t);this._markersToCopy.set(t,n),e(),o?this._markersToCopy.set(t,o):this._markersToCopy.delete(t)}_isMarkerCopyable(t,e){const n=this._getMarkerClipboardConfig(t);if(!n)return!1;if(!e)return!0;const{allowedActions:o}=n;return"all"===o||o.includes(e)}_hasMarkerConfiguration(t){return!!this._getMarkerClipboardConfig(t)}_getMarkerClipboardConfig(t){const[e]=t.split(":");return this._markersToCopy.get(e)||null}_insertFakeMarkersIntoSelection(t,e,n){const o=this._getCopyableMarkersFromSelection(t,e,n);return this._insertFakeMarkersElements(t,o)}_getCopyableMarkersFromSelection(t,e,n){const o=Array.from(e.getRanges()),i=new Set(o.flatMap((e=>Array.from(t.model.markers.getMarkersIntersectingRange(e)))));return Array.from(i).filter((t=>{if(!this._isMarkerCopyable(t.name,n))return!1;const{copyPartiallySelected:e}=this._getMarkerClipboardConfig(t.name);if(!e){const e=t.getRange();return o.some((t=>t.containsRange(e,!0)))}return!0})).map((t=>({name:"dragstart"===n?this._getUniqueMarkerName(t.name):t.name,range:t.getRange()})))}_getPasteMarkersFromRangeMap(t,e=null){const{model:n}=this.editor;return(t instanceof Map?Array.from(t.entries()):Object.entries(t)).flatMap((([t,o])=>{if(!this._hasMarkerConfiguration(t))return[{name:t,range:o}];if(this._isMarkerCopyable(t,e)){const e=this._getMarkerClipboardConfig(t),i=n.markers.has(t)&&"$graveyard"===n.markers.get(t).getRange().root.rootName;return(e.duplicateOnPaste||i)&&(t=this._getUniqueMarkerName(t)),[{name:t,range:o}]}return[]}))}_insertFakeMarkersElements(t,e){const n={},o=e.flatMap((t=>{const{start:e,end:n}=t.range;return[{position:e,marker:t,type:"start"},{position:n,marker:t,type:"end"}]})).sort((({position:t},{position:e})=>t.isBefore(e)?1:-1));for(const{position:e,marker:i,type:r}of o){const o=t.createElement("$marker",{"data-name":i.name,"data-type":r});n[i.name]||(n[i.name]=[]),n[i.name].push(o),t.insert(o,e)}return n}_removeFakeMarkersInsideElement(t,e){const n=this._getAllFakeMarkersFromElement(t,e).reduce(((e,n)=>{const o=n.markerElement&&t.createPositionBefore(n.markerElement);let i=e[n.name],r=!1;if(i&&i.start&&i.end){this._getMarkerClipboardConfig(n.name).duplicateOnPaste?e[this._getUniqueMarkerName(n.name)]=e[n.name]:r=!0,i=null}return r||(e[n.name]={...i,[n.type]:o}),n.markerElement&&t.remove(n.markerElement),e}),{});return s_(n,(n=>new kl(n.start||t.createPositionFromPath(e,[0]),n.end||t.createPositionAt(e,"end"))))}_getAllFakeMarkersFromElement(t,e){const n=Array.from(t.createRangeIn(e)).flatMap((({item:t})=>{if(!t.is("element","$marker"))return[];const e=t.getAttribute("data-name"),n=t.getAttribute("data-type");return[{markerElement:t,name:e,type:n}]})),o=[],i=[];for(const t of n){if("end"===t.type){n.some((e=>e.name===t.name&&"start"===e.type))||o.push({markerElement:null,name:t.name,type:"start"})}if("start"===t.type){n.some((e=>e.name===t.name&&"end"===e.type))||i.unshift({markerElement:null,name:t.name,type:"end"})}}return[...o,...n,...i]}_getUniqueMarkerName(t){const e=t.split(":"),n=A().substring(1,6);return 3===e.length?`${e.slice(0,2).join(":")}:${n}`:`${e.join(":")}:${n}`}}class c_ extends Nr{static get pluginName(){return"ClipboardPipeline"}static get requires(){return[a_]}init(){this.editor.editing.view.addObserver(Hw),this._setupPasteDrop(),this._setupCopyCut()}_fireOutputTransformationEvent(t,e,n){const o=this.editor.plugins.get("ClipboardMarkersUtils");this.editor.model.enqueueChange({isUndoable:"cut"===n},(()=>{const i=o._copySelectedFragmentWithMarkers(n,e);this.fire("outputTransformation",{dataTransfer:t,content:i,method:n})}))}_setupPasteDrop(){const t=this.editor,e=t.model,n=t.editing.view,o=n.document,i=this.editor.plugins.get("ClipboardMarkersUtils");this.listenTo(o,"clipboardInput",((e,n)=>{"paste"!=n.method||t.model.canEditAt(t.model.document.selection)||e.stop()}),{priority:"highest"}),this.listenTo(o,"clipboardInput",((t,e)=>{const o=e.dataTransfer;let i;if(e.content)i=e.content;else{let t="";o.getData("text/html")?t=function(t){return t.replace(/(\s+)<\/span>/g,((t,e)=>1==e.length?" ":e)).replace(//g,"")}(o.getData("text/html")):o.getData("text/plain")&&(((r=(r=o.getData("text/plain")).replace(/&/g,"&").replace(//g,">").replace(/\r?\n\r?\n/g,"

").replace(/\r?\n/g,"
").replace(/\t/g,"    ").replace(/^\s/," ").replace(/\s$/," ").replace(/\s\s/g,"  ")).includes("

")||r.includes("
"))&&(r=`

${r}

`),t=r),i=this.editor.data.htmlProcessor.toView(t)}var r;const s=new w(this,"inputTransformation");this.fire(s,{content:i,dataTransfer:o,targetRanges:e.targetRanges,method:e.method}),s.stop.called&&t.stop(),n.scrollToTheSelection()}),{priority:"low"}),this.listenTo(this,"inputTransformation",((t,n)=>{if(n.content.isEmpty)return;const o=this.editor.data.toModel(n.content,"$clipboardHolder");0!=o.childCount&&(t.stop(),e.change((()=>{this.fire("contentInsertion",{content:o,method:n.method,dataTransfer:n.dataTransfer,targetRanges:n.targetRanges})})))}),{priority:"low"}),this.listenTo(this,"contentInsertion",((t,e)=>{e.resultRange=i._pasteFragmentWithMarkers(e.content)}),{priority:"low"})}_setupCopyCut(){const t=this.editor,e=t.model.document,n=t.editing.view.document,o=(t,n)=>{const o=n.dataTransfer;n.preventDefault(),this._fireOutputTransformationEvent(o,e.selection,t.name)};this.listenTo(n,"copy",o,{priority:"low"}),this.listenTo(n,"cut",((e,n)=>{t.model.canEditAt(t.model.document.selection)?o(e,n):n.preventDefault()}),{priority:"low"}),this.listenTo(this,"outputTransformation",((e,o)=>{const i=t.data.toView(o.content);n.fire("clipboardOutput",{dataTransfer:o.dataTransfer,content:i,method:o.method})}),{priority:"low"}),this.listenTo(n,"clipboardOutput",((n,o)=>{o.content.isEmpty||(o.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(o.content)),o.dataTransfer.setData("text/plain",Ww(o.content))),"cut"==o.method&&t.model.deleteContent(e.selection)}),{priority:"low"})}}class l_ extends(L()){_stack=[];add(t,e){const n=this._stack,o=n[0];this._insertDescriptor(t);const i=n[0];o===i||d_(o,i)||this.fire("change:top",{oldDescriptor:o,newDescriptor:i,writer:e})}remove(t,e){const n=this._stack,o=n[0];this._removeDescriptor(t);const i=n[0];o===i||d_(o,i)||this.fire("change:top",{oldDescriptor:o,newDescriptor:i,writer:e})}_insertDescriptor(t){const e=this._stack,n=e.findIndex((e=>e.id===t.id));if(d_(t,e[n]))return;n>-1&&e.splice(n,1);let o=0;for(;e[o]&&h_(e[o],t);)o++;e.splice(o,0,t)}_removeDescriptor(t){const e=this._stack,n=e.findIndex((e=>e.id===t));n>-1&&e.splice(n,1)}}function d_(t,e){return t&&e&&t.priority==e.priority&&u_(t.classes)==u_(e.classes)}function h_(t,e){return t.priority>e.priority||!(t.priorityu_(e.classes)}function u_(t){return Array.isArray(t)?t.sort().join(","):t}const m_='',g_="ck-widget",p_="ck-widget_selected";function f_(t){return!!t.is("element")&&!!t.getCustomProperty("widget")}function k_(t,e,n={}){if(!t.is("containerElement"))throw new x("widget-to-widget-wrong-element-type",null,{element:t});return e.setAttribute("contenteditable","false",t),e.addClass(g_,t),e.setCustomProperty("widget",!0,t),t.getFillerOffset=v_,e.setCustomProperty("widgetLabel",[],t),n.label&&function(t,e){const n=t.getCustomProperty("widgetLabel");n.push(e)}(t,n.label),n.hasSelectionHandle&&function(t,e){const n=e.createUIElement("div",{class:"ck ck-widget__selection-handle"},(function(t){const e=this.toDomElement(t),n=new Xu;return n.set("content",m_),n.render(),e.appendChild(n.element),e}));e.insert(e.createPositionAt(t,0),n),e.addClass(["ck-widget_with-selection-handle"],t)}(t,e),__(t,e),t}function b_(t,e,n){if(e.classes&&n.addClass(Di(e.classes),t),e.attributes)for(const o in e.attributes)n.setAttribute(o,e.attributes[o],t)}function w_(t,e,n){if(e.classes&&n.removeClass(Di(e.classes),t),e.attributes)for(const o in e.attributes)n.removeAttribute(o,t)}function __(t,e,n=b_,o=w_){const i=new l_;i.on("change:top",((e,i)=>{i.oldDescriptor&&o(t,i.oldDescriptor,i.writer),i.newDescriptor&&n(t,i.newDescriptor,i.writer)}));e.setCustomProperty("addHighlight",((t,e,n)=>i.add(e,n)),t),e.setCustomProperty("removeHighlight",((t,e,n)=>i.remove(e,n)),t)}function A_(t,e,n={}){return e.addClass(["ck-editor__editable","ck-editor__nested-editable"],t),e.setAttribute("role","textbox",t),e.setAttribute("tabindex","-1",t),n.label&&e.setAttribute("aria-label",n.label,t),e.setAttribute("contenteditable",t.isReadOnly?"false":"true",t),t.on("change:isReadOnly",((n,o,i)=>{e.setAttribute("contenteditable",i?"false":"true",t)})),t.on("change:isFocused",((n,o,i)=>{i?e.addClass("ck-editor__nested-editable_focused",t):e.removeClass("ck-editor__nested-editable_focused",t)})),__(t,e),t}function C_(t,e){const n=t.getSelectedElement();if(n){const o=D_(t);if(o)return e.createRange(e.createPositionAt(n,o))}return e.schema.findOptimalInsertionRange(t)}function v_(){return null}function y_(t){const e=t=>{const{width:e,paddingLeft:n,paddingRight:o}=t.ownerDocument.defaultView.getComputedStyle(t);return parseFloat(e)-(parseFloat(n)||0)-(parseFloat(o)||0)},n=t.parentElement;if(!n)return 0;let o=e(n);let i=0,r=n;for(;isNaN(o);){if(r=r.parentElement,++i>5)return 0;o=e(r)}return o}const x_="widget-type-around";function E_(t,e,n){return!!t&&f_(t)&&!n.isInline(e)}function D_(t){return t.getAttribute(x_)}var B_=n(8508),T_={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(B_.A,T_);B_.A.locals;const S_=["before","after"],I_=(new DOMParser).parseFromString('',"image/svg+xml").firstChild,P_="ck-widget__type-around_disabled";class z_ extends Nr{_currentFakeCaretModelElement=null;static get pluginName(){return"WidgetTypeAround"}static get requires(){return[Aw,Bb]}init(){const t=this.editor,e=t.editing.view;this.on("change:isEnabled",((n,o,i)=>{e.change((t=>{for(const n of e.document.roots)i?t.removeClass(P_,n):t.addClass(P_,n)})),i||t.model.change((t=>{t.removeSelectionAttribute(x_)}))})),this._enableTypeAroundUIInjection(),this._enableInsertingParagraphsOnButtonClick(),this._enableInsertingParagraphsOnEnterKeypress(),this._enableInsertingParagraphsOnTypingKeystroke(),this._enableTypeAroundFakeCaretActivationUsingKeyboardArrows(),this._enableDeleteIntegration(),this._enableInsertContentIntegration(),this._enableInsertObjectIntegration(),this._enableDeleteContentIntegration()}destroy(){super.destroy(),this._currentFakeCaretModelElement=null}_insertParagraph(t,e){const n=this.editor,o=n.editing.view,i=n.model.schema.getAttributesWithProperty(t,"copyOnReplace",!0);n.execute("insertParagraph",{position:n.model.createPositionAt(t,e),attributes:i}),o.focus(),o.scrollToTheSelection()}_listenToIfEnabled(t,e,n,o){this.listenTo(t,e,((...t)=>{this.isEnabled&&n(...t)}),o)}_insertParagraphAccordingToFakeCaretPosition(){const t=this.editor.model.document.selection,e=D_(t);if(!e)return!1;const n=t.getSelectedElement();return this._insertParagraph(n,e),!0}_enableTypeAroundUIInjection(){const t=this.editor,e=t.model.schema,n=t.locale.t,o={before:n("Insert paragraph before block"),after:n("Insert paragraph after block")};t.editing.downcastDispatcher.on("insert",((t,i,r)=>{const s=r.mapper.toViewElement(i.item);if(s&&E_(s,i.item,e)){!function(t,e,n){const o=t.createUIElement("div",{class:"ck ck-reset_all ck-widget__type-around"},(function(t){const n=this.toDomElement(t);return function(t,e){for(const n of S_){const o=new dr({tag:"div",attributes:{class:["ck","ck-widget__type-around__button",`ck-widget__type-around__button_${n}`],title:e[n],"aria-hidden":"true"},children:[t.ownerDocument.importNode(I_,!0)]});t.appendChild(o.render())}}(n,e),function(t){const e=new dr({tag:"div",attributes:{class:["ck","ck-widget__type-around__fake-caret"]}});t.appendChild(e.render())}(n),n}));t.insert(t.createPositionAt(n,"end"),o)}(r.writer,o,s);s.getCustomProperty("widgetLabel").push((()=>this.isEnabled?n("Press Enter to type after or press Shift + Enter to type before the widget"):""))}}),{priority:"low"})}_enableTypeAroundFakeCaretActivationUsingKeyboardArrows(){const t=this.editor,e=t.model,n=e.document.selection,o=e.schema,i=t.editing.view;function r(t){return`ck-widget_type-around_show-fake-caret_${t}`}this._listenToIfEnabled(i.document,"arrowKey",((t,e)=>{this._handleArrowKeyPress(t,e)}),{context:[f_,"$text"],priority:"high"}),this._listenToIfEnabled(n,"change:range",((e,n)=>{n.directChange&&t.model.change((t=>{t.removeSelectionAttribute(x_)}))})),this._listenToIfEnabled(e.document,"change:data",(()=>{const e=n.getSelectedElement();if(e){if(E_(t.editing.mapper.toViewElement(e),e,o))return}t.model.change((t=>{t.removeSelectionAttribute(x_)}))})),this._listenToIfEnabled(t.editing.downcastDispatcher,"selection",((t,e,n)=>{const i=n.writer;if(this._currentFakeCaretModelElement){const t=n.mapper.toViewElement(this._currentFakeCaretModelElement);t&&(i.removeClass(S_.map(r),t),this._currentFakeCaretModelElement=null)}const s=e.selection.getSelectedElement();if(!s)return;const a=n.mapper.toViewElement(s);if(!E_(a,s,o))return;const c=D_(e.selection);c&&(i.addClass(r(c),a),this._currentFakeCaretModelElement=s)})),this._listenToIfEnabled(t.ui.focusTracker,"change:isFocused",((e,n,o)=>{o||t.model.change((t=>{t.removeSelectionAttribute(x_)}))}))}_handleArrowKeyPress(t,e){const n=this.editor,o=n.model,i=o.document.selection,r=o.schema,s=n.editing.view,a=function(t,e){const n=xi(t,e);return"down"===n||"right"===n}(e.keyCode,n.locale.contentLanguageDirection),c=s.document.selection.getSelectedElement();let l;E_(c,n.editing.mapper.toModelElement(c),r)?l=this._handleArrowKeyPressOnSelectedWidget(a):i.isCollapsed?l=this._handleArrowKeyPressWhenSelectionNextToAWidget(a):e.shiftKey||(l=this._handleArrowKeyPressWhenNonCollapsedSelection(a)),l&&(e.preventDefault(),t.stop())}_handleArrowKeyPressOnSelectedWidget(t){const e=this.editor.model,n=D_(e.document.selection);return e.change((e=>{if(!n)return e.setSelectionAttribute(x_,t?"after":"before"),!0;if(!(n===(t?"after":"before")))return e.removeSelectionAttribute(x_),!0;return!1}))}_handleArrowKeyPressWhenSelectionNextToAWidget(t){const e=this.editor,n=e.model,o=n.schema,i=e.plugins.get("Widget"),r=i._getObjectElementNextToSelection(t);return!!E_(e.editing.mapper.toViewElement(r),r,o)&&(n.change((e=>{i._setSelectionOverElement(r),e.setSelectionAttribute(x_,t?"before":"after")})),!0)}_handleArrowKeyPressWhenNonCollapsedSelection(t){const e=this.editor,n=e.model,o=n.schema,i=e.editing.mapper,r=n.document.selection,s=t?r.getLastPosition().nodeBefore:r.getFirstPosition().nodeAfter;return!!E_(i.toViewElement(s),s,o)&&(n.change((e=>{e.setSelection(s,"on"),e.setSelectionAttribute(x_,t?"after":"before")})),!0)}_enableInsertingParagraphsOnButtonClick(){const t=this.editor,e=t.editing.view;this._listenToIfEnabled(e.document,"mousedown",((n,o)=>{const i=o.domTarget.closest(".ck-widget__type-around__button");if(!i)return;const r=function(t){return t.classList.contains("ck-widget__type-around__button_before")?"before":"after"}(i),s=function(t,e){const n=t.closest(".ck-widget");return e.mapDomToView(n)}(i,e.domConverter),a=t.editing.mapper.toModelElement(s);this._insertParagraph(a,r),o.preventDefault(),n.stop()}))}_enableInsertingParagraphsOnEnterKeypress(){const t=this.editor,e=t.model.document.selection,n=t.editing.view;this._listenToIfEnabled(n.document,"enter",((n,o)=>{if("atTarget"!=n.eventPhase)return;const i=e.getSelectedElement(),r=t.editing.mapper.toViewElement(i),s=t.model.schema;let a;this._insertParagraphAccordingToFakeCaretPosition()?a=!0:E_(r,i,s)&&(this._insertParagraph(i,o.isSoft?"before":"after"),a=!0),a&&(o.preventDefault(),n.stop())}),{context:f_})}_enableInsertingParagraphsOnTypingKeystroke(){const t=this.editor.editing.view.document;this._listenToIfEnabled(t,"insertText",((e,n)=>{this._insertParagraphAccordingToFakeCaretPosition()&&(n.selection=t.selection)}),{priority:"high"}),i.isAndroid?this._listenToIfEnabled(t,"keydown",((t,e)=>{229==e.keyCode&&this._insertParagraphAccordingToFakeCaretPosition()})):this._listenToIfEnabled(t,"compositionstart",(()=>{this._insertParagraphAccordingToFakeCaretPosition()}),{priority:"high"})}_enableDeleteIntegration(){const t=this.editor,e=t.editing.view,n=t.model,o=n.schema;this._listenToIfEnabled(e.document,"delete",((e,i)=>{if("atTarget"!=e.eventPhase)return;const r=D_(n.document.selection);if(!r)return;const s=i.direction,a=n.document.selection.getSelectedElement(),c="forward"==s;if("before"===r===c)t.execute("delete",{selection:n.createSelection(a,"on")});else{const e=o.getNearestSelectionRange(n.createPositionAt(a,r),s);if(e)if(e.isCollapsed){const i=n.createSelection(e.start);if(n.modifySelection(i,{direction:s}),i.focus.isEqual(e.start)){const t=function(t,e){let n=e;for(const o of e.getAncestors({parentFirst:!0})){if(o.childCount>1||t.isLimit(o))break;n=o}return n}(o,e.start.parent);n.deleteContent(n.createSelection(t,"on"),{doNotAutoparagraph:!0})}else n.change((n=>{n.setSelection(e),t.execute(c?"deleteForward":"delete")}))}else n.change((n=>{n.setSelection(e),t.execute(c?"deleteForward":"delete")}))}i.preventDefault(),e.stop()}),{context:f_})}_enableInsertContentIntegration(){const t=this.editor,e=this.editor.model,n=e.document.selection;this._listenToIfEnabled(t.model,"insertContent",((t,[o,i])=>{if(i&&!i.is("documentSelection"))return;const r=D_(n);return r?(t.stop(),e.change((t=>{const i=n.getSelectedElement(),s=e.createPositionAt(i,r),a=t.createSelection(s),c=e.insertContent(o,a);return t.setSelection(a),c}))):void 0}),{priority:"high"})}_enableInsertObjectIntegration(){const t=this.editor,e=this.editor.model.document.selection;this._listenToIfEnabled(t.model,"insertObject",((t,n)=>{const[,o,i={}]=n;if(o&&!o.is("documentSelection"))return;const r=D_(e);r&&(i.findOptimalPosition=r,n[3]=i)}),{priority:"high"})}_enableDeleteContentIntegration(){const t=this.editor,e=this.editor.model.document.selection;this._listenToIfEnabled(t.model,"deleteContent",((t,[n])=>{if(n&&!n.is("documentSelection"))return;D_(e)&&t.stop()}),{priority:"high"})}}function R_(t){const e=t.model;return(n,o)=>{const i=o.keyCode==_i.arrowup,r=o.keyCode==_i.arrowdown,s=o.shiftKey,a=e.document.selection;if(!i&&!r)return;const c=r;if(s&&function(t,e){return!t.isCollapsed&&t.isBackward==e}(a,c))return;const l=function(t,e,n){const o=t.model;if(n){const t=e.isCollapsed?e.focus:e.getLastPosition(),n=L_(o,t,"forward");if(!n)return null;const i=o.createRange(t,n),r=F_(o.schema,i,"backward");return r?o.createRange(t,r):null}{const t=e.isCollapsed?e.focus:e.getFirstPosition(),n=L_(o,t,"backward");if(!n)return null;const i=o.createRange(n,t),r=F_(o.schema,i,"forward");return r?o.createRange(r,t):null}}(t,a,c);if(l){if(l.isCollapsed){if(a.isCollapsed)return;if(s)return}(l.isCollapsed||function(t,e,n){const o=t.model,i=t.view.domConverter;if(n){const t=o.createSelection(e.start);o.modifySelection(t),t.focus.isAtEnd||e.start.isEqual(t.focus)||(e=o.createRange(t.focus,e.end))}const r=t.mapper.toViewRange(e),s=i.viewRangeToDom(r),a=Ko.getDomRangeRects(s);let c;for(const t of a)if(void 0!==c){if(Math.round(t.top)>=c)return!1;c=Math.max(c,Math.round(t.bottom))}else c=Math.round(t.bottom);return!0}(t,l,c))&&(e.change((t=>{const n=c?l.end:l.start;if(s){const o=e.createSelection(a.anchor);o.setFocus(n),t.setSelection(o)}else t.setSelection(n)})),n.stop(),o.preventDefault(),o.stopPropagation())}}}function L_(t,e,n){const o=t.schema,i=t.createRangeIn(e.root),r="forward"==n?"elementStart":"elementEnd";for(const{previousPosition:t,item:s,type:a}of i.getWalker({startPosition:e,direction:n})){if(o.isLimit(s)&&!o.isInline(s))return t;if(a==r&&o.isBlock(s))return null}return null}function F_(t,e,n){const o="backward"==n?e.end:e.start;if(t.checkChild(o,"$text"))return o;for(const{nextPosition:o}of e.getWalker({direction:n}))if(t.checkChild(o,"$text"))return o;return null}var M_=n(695),V_={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(M_.A,V_);M_.A.locals;class O_ extends Nr{_previouslySelected=new Set;static get pluginName(){return"Widget"}static get requires(){return[z_,Bb]}init(){const t=this.editor,e=t.editing.view,n=e.document,o=t.t;this.editor.editing.downcastDispatcher.on("selection",((e,n,o)=>{const i=o.writer,r=n.selection;if(r.isCollapsed)return;const s=r.getSelectedElement();if(!s)return;const a=t.editing.mapper.toViewElement(s);var c;f_(a)&&(o.consumable.consume(r,"selection")&&i.setSelection(i.createRangeOn(a),{fake:!0,label:(c=a,c.getCustomProperty("widgetLabel").reduce(((t,e)=>"function"==typeof e?t?t+". "+e():e():t?t+". "+e:e),""))}))})),this.editor.editing.downcastDispatcher.on("selection",((t,e,n)=>{this._clearPreviouslySelectedWidgets(n.writer);const o=n.writer,i=o.document.selection;let r=null;for(const t of i.getRanges())for(const e of t){const t=e.item;f_(t)&&!N_(t,r)&&(o.addClass(p_,t),this._previouslySelected.add(t),r=t)}}),{priority:"low"}),e.addObserver(iu),this.listenTo(n,"mousedown",((...t)=>this._onMousedown(...t))),this.listenTo(n,"arrowKey",((...t)=>{this._handleSelectionChangeOnArrowKeyPress(...t)}),{context:[f_,"$text"]}),this.listenTo(n,"arrowKey",((...t)=>{this._preventDefaultOnArrowKeyPress(...t)}),{context:"$root"}),this.listenTo(n,"arrowKey",R_(this.editor.editing),{context:"$text"}),this.listenTo(n,"delete",((t,e)=>{this._handleDelete("forward"==e.direction)&&(e.preventDefault(),t.stop())}),{context:"$root"}),this.listenTo(n,"tab",((t,e)=>{"atTarget"==t.eventPhase&&(e.shiftKey||this._selectFirstNestedEditable()&&(e.preventDefault(),t.stop()))}),{context:f_,priority:"low"}),this.listenTo(n,"tab",((t,e)=>{e.shiftKey&&this._selectAncestorWidget()&&(e.preventDefault(),t.stop())}),{priority:"low"}),this.listenTo(n,"keydown",((t,e)=>{e.keystroke==_i.esc&&this._selectAncestorWidget()&&(e.preventDefault(),t.stop())}),{priority:"low"}),t.accessibility.addKeystrokeInfoGroup({id:"widget",label:o("Keystrokes that can be used when a widget is selected (for example: image, table, etc.)"),keystrokes:[{label:o("Move focus from an editable area back to the parent widget"),keystroke:"Esc"},{label:o("Insert a new paragraph directly after a widget"),keystroke:"Enter"},{label:o("Insert a new paragraph directly before a widget"),keystroke:"Shift+Enter"},{label:o("Move the caret to allow typing directly before a widget"),keystroke:[["arrowup"],["arrowleft"]]},{label:o("Move the caret to allow typing directly after a widget"),keystroke:[["arrowdown"],["arrowright"]]}]})}_onMousedown(t,e){const n=this.editor,o=n.editing.view,r=o.document;let s=e.target;if(e.domEvent.detail>=3)return void(this._selectBlockContent(s)&&e.preventDefault());if(function(t){let e=t;for(;e;){if(e.is("editableElement")&&!e.is("rootElement"))return!0;if(f_(e))return!1;e=e.parent}return!1}(s))return;if(!f_(s)&&(s=s.findAncestor(f_),!s))return;i.isAndroid&&e.preventDefault(),r.isFocused||o.focus();const a=n.editing.mapper.toModelElement(s);this._setSelectionOverElement(a)}_selectBlockContent(t){const e=this.editor,n=e.model,o=e.editing.mapper,i=n.schema,r=o.findMappedViewAncestor(this.editor.editing.view.createPositionAt(t,0)),s=function(t,e){for(const n of t.getAncestors({includeSelf:!0,parentFirst:!0})){if(e.checkChild(n,"$text"))return n;if(e.isLimit(n)&&!e.isObject(n))break}return null}(o.toModelElement(r),n.schema);return!!s&&(n.change((t=>{const e=i.isLimit(s)?null:function(t,e){const n=new ll({startPosition:t});for(const{item:t}of n){if(e.isLimit(t)||!t.is("element"))return null;if(e.checkChild(t,"$text"))return t}return null}(t.createPositionAfter(s),i),n=t.createPositionAt(s,0),o=e?t.createPositionAt(e,0):t.createPositionAt(s,"end");t.setSelection(t.createRange(n,o))})),!0)}_handleSelectionChangeOnArrowKeyPress(t,e){const n=e.keyCode,o=this.editor.model,i=o.schema,r=o.document.selection,s=r.getSelectedElement(),a=xi(n,this.editor.locale.contentLanguageDirection),c="down"==a||"right"==a,l="up"==a||"down"==a;if(s&&i.isObject(s)){const n=c?r.getLastPosition():r.getFirstPosition(),s=i.getNearestSelectionRange(n,c?"forward":"backward");return void(s&&(o.change((t=>{t.setSelection(s)})),e.preventDefault(),t.stop()))}if(!r.isCollapsed&&!e.shiftKey){const n=r.getFirstPosition(),s=r.getLastPosition(),a=n.nodeAfter,l=s.nodeBefore;return void((a&&i.isObject(a)||l&&i.isObject(l))&&(o.change((t=>{t.setSelection(c?s:n)})),e.preventDefault(),t.stop()))}if(!r.isCollapsed)return;const d=this._getObjectElementNextToSelection(c);if(d&&i.isObject(d)){if(i.isInline(d)&&l)return;this._setSelectionOverElement(d),e.preventDefault(),t.stop()}}_preventDefaultOnArrowKeyPress(t,e){const n=this.editor.model,o=n.schema,i=n.document.selection.getSelectedElement();i&&o.isObject(i)&&(e.preventDefault(),t.stop())}_handleDelete(t){const e=this.editor.model.document.selection;if(!this.editor.model.canEditAt(e))return;if(!e.isCollapsed)return;const n=this._getObjectElementNextToSelection(t);return n?(this.editor.model.change((t=>{let o=e.anchor.parent;for(;o.isEmpty;){const e=o;o=e.parent,t.remove(e)}this._setSelectionOverElement(n)})),!0):void 0}_setSelectionOverElement(t){this.editor.model.change((e=>{e.setSelection(e.createRangeOn(t))}))}_getObjectElementNextToSelection(t){const e=this.editor.model,n=e.schema,o=e.document.selection,i=e.createSelection(o);if(e.modifySelection(i,{direction:t?"forward":"backward"}),i.isEqual(o))return null;const r=t?i.focus.nodeBefore:i.focus.nodeAfter;return r&&n.isObject(r)?r:null}_clearPreviouslySelectedWidgets(t){for(const e of this._previouslySelected)t.removeClass(p_,e);this._previouslySelected.clear()}_selectFirstNestedEditable(){const t=this.editor,e=this.editor.editing.view.document;for(const n of e.selection.getFirstRange().getItems())if(n.is("editableElement")){const e=t.editing.mapper.toModelElement(n);if(!e)continue;const o=t.model.createPositionAt(e,0),i=t.model.schema.getNearestSelectionRange(o,"forward");return t.model.change((t=>{t.setSelection(i)})),!0}return!1}_selectAncestorWidget(){const t=this.editor,e=t.editing.mapper,n=t.editing.view.document.selection.getFirstPosition().parent,o=(n.is("$text")?n.parent:n).findAncestor(f_);if(!o)return!1;const i=e.toModelElement(o);return!!i&&(t.model.change((t=>{t.setSelection(i,"on")})),!0)}}function N_(t,e){return!!e&&Array.from(t.getAncestors()).includes(e)}class H_ extends Nr{_toolbarDefinitions=new Map;_balloon;static get requires(){return[Mf]}static get pluginName(){return"WidgetToolbarRepository"}init(){const t=this.editor;if(t.plugins.has("BalloonToolbar")){const e=t.plugins.get("BalloonToolbar");this.listenTo(e,"show",(e=>{(function(t){const e=t.getSelectedElement();return!(!e||!f_(e))})(t.editing.view.document.selection)&&e.stop()}),{priority:"high"})}this._balloon=this.editor.plugins.get("ContextualBalloon"),this.on("change:isEnabled",(()=>{this._updateToolbarsVisibility()})),this.listenTo(t.ui,"update",(()=>{this._updateToolbarsVisibility()})),this.listenTo(t.ui.focusTracker,"change:isFocused",(()=>{this._updateToolbarsVisibility()}),{priority:"low"})}destroy(){super.destroy();for(const t of this._toolbarDefinitions.values())t.view.destroy()}register(t,{ariaLabel:e,items:n,getRelatedElement:o,balloonClassName:i="ck-toolbar-container"}){if(!n.length)return void E("widget-toolbar-no-items",{toolbarId:t});const r=this.editor,s=r.t,a=new Sg(r.locale);if(a.ariaLabel=e||s("Widget toolbar"),this._toolbarDefinitions.has(t))throw new x("widget-toolbar-duplicated",this,{toolbarId:t});const c={view:a,getRelatedElement:o,balloonClassName:i,itemsConfig:n,initialized:!1};r.ui.addToolbar(a,{isContextual:!0,beforeFocus:()=>{const t=o(r.editing.view.document.selection);t&&this._showToolbar(c,t)},afterBlur:()=>{this._hideToolbar(c)}}),this._toolbarDefinitions.set(t,c)}_updateToolbarsVisibility(){let t=0,e=null,n=null;for(const o of this._toolbarDefinitions.values()){const i=o.getRelatedElement(this.editor.editing.view.document.selection);if(this.isEnabled&&i)if(this.editor.ui.focusTracker.isFocused){const r=i.getAncestors().length;r>t&&(t=r,e=i,n=o)}else this._isToolbarVisible(o)&&this._hideToolbar(o);else this._isToolbarInBalloon(o)&&this._hideToolbar(o)}n&&this._showToolbar(n,e)}_hideToolbar(t){this._balloon.remove(t.view),this.stopListening(this._balloon,"change:visibleView")}_showToolbar(t,e){this._isToolbarVisible(t)?q_(this.editor,e):this._isToolbarInBalloon(t)||(t.initialized||(t.initialized=!0,t.view.fillFromConfig(t.itemsConfig,this.editor.ui.componentFactory)),this._balloon.add({view:t.view,position:j_(this.editor,e),balloonClassName:t.balloonClassName}),this.listenTo(this._balloon,"change:visibleView",(()=>{for(const t of this._toolbarDefinitions.values())if(this._isToolbarVisible(t)){const e=t.getRelatedElement(this.editor.editing.view.document.selection);q_(this.editor,e)}})))}_isToolbarVisible(t){return this._balloon.visibleView===t.view}_isToolbarInBalloon(t){return this._balloon.hasView(t.view)}}function q_(t,e){const n=t.plugins.get("ContextualBalloon"),o=j_(t,e);n.updatePosition(o)}function j_(t,e){const n=t.editing.view,o=tf.defaultPositions;return{target:n.domConverter.mapViewToDom(e),positions:[o.northArrowSouth,o.northArrowSouthWest,o.northArrowSouthEast,o.southArrowNorth,o.southArrowNorthWest,o.southArrowNorthEast,o.viewportStickyNorth]}}class W_ extends(J()){_referenceCoordinates;_options;_originalWidth;_originalHeight;_originalWidthPercents;_aspectRatio;constructor(t){super(),this.set("activeHandlePosition",null),this.set("proposedWidthPercents",null),this.set("proposedWidth",null),this.set("proposedHeight",null),this.set("proposedHandleHostWidth",null),this.set("proposedHandleHostHeight",null),this._options=t,this._referenceCoordinates=null}get originalWidth(){return this._originalWidth}get originalHeight(){return this._originalHeight}get originalWidthPercents(){return this._originalWidthPercents}get aspectRatio(){return this._aspectRatio}begin(t,e,n){const o=new Ko(e);this.activeHandlePosition=function(t){const e=["top-left","top-right","bottom-right","bottom-left"];for(const n of e)if(t.classList.contains(G_(n)))return n}(t),this._referenceCoordinates=function(t,e){const n=new Ko(t),o=e.split("-"),i={x:"right"==o[1]?n.right:n.left,y:"bottom"==o[0]?n.bottom:n.top};return i.x+=t.ownerDocument.defaultView.scrollX,i.y+=t.ownerDocument.defaultView.scrollY,i}(e,function(t){const e=t.split("-"),n={top:"bottom",bottom:"top",left:"right",right:"left"};return`${n[e[0]]}-${n[e[1]]}`}(this.activeHandlePosition)),this._originalWidth=o.width,this._originalHeight=o.height,this._aspectRatio=o.width/o.height;const i=n.style.width;i&&i.match(/^\d+(\.\d*)?%$/)?this._originalWidthPercents=parseFloat(i):this._originalWidthPercents=function(t,e=new Ko(t)){const n=y_(t);return n?e.width/n*100:0}(n,o)}update(t){this.proposedWidth=t.width,this.proposedHeight=t.height,this.proposedWidthPercents=t.widthPercents,this.proposedHandleHostWidth=t.handleHostWidth,this.proposedHandleHostHeight=t.handleHostHeight}}function G_(t){return`ck-widget__resizer__handle-${t}`}class K_ extends Lr{constructor(){super();const t=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-size-view",t.to("_viewPosition",(t=>t?`ck-orientation-${t}`:""))],style:{display:t.if("_isVisible","none",(t=>!t))}},children:[{text:t.to("_label")}]})}_bindToState(t,e){this.bind("_isVisible").to(e,"proposedWidth",e,"proposedHeight",((t,e)=>null!==t&&null!==e)),this.bind("_label").to(e,"proposedHandleHostWidth",e,"proposedHandleHostHeight",e,"proposedWidthPercents",((e,n,o)=>"px"===t.unit?`${e}×${n}`:`${o}%`)),this.bind("_viewPosition").to(e,"activeHandlePosition",e,"proposedHandleHostWidth",e,"proposedHandleHostHeight",((t,e,n)=>e<50||n<50?"above-center":t))}_dismiss(){this.unbind(),this._isVisible=!1}}class U_ extends(J()){_state;_sizeView;_options;_viewResizerWrapper=null;_initialViewWidth;constructor(t){super(),this._options=t,this.set("isEnabled",!0),this.set("isSelected",!1),this.bind("isVisible").to(this,"isEnabled",this,"isSelected",((t,e)=>t&&e)),this.decorate("begin"),this.decorate("cancel"),this.decorate("commit"),this.decorate("updateSize"),this.on("commit",(t=>{this.state.proposedWidth||this.state.proposedWidthPercents||(this._cleanup(),t.stop())}),{priority:"high"})}get state(){return this._state}show(){this._options.editor.editing.view.change((t=>{t.removeClass("ck-hidden",this._viewResizerWrapper)}))}hide(){this._options.editor.editing.view.change((t=>{t.addClass("ck-hidden",this._viewResizerWrapper)}))}attach(){const t=this,e=this._options.viewElement;this._options.editor.editing.view.change((n=>{const o=n.createUIElement("div",{class:"ck ck-reset_all ck-widget__resizer"},(function(e){const n=this.toDomElement(e);return t._appendHandles(n),t._appendSizeUI(n),n}));n.insert(n.createPositionAt(e,"end"),o),n.addClass("ck-widget_with-resizer",e),this._viewResizerWrapper=o,this.isVisible||this.hide()})),this.on("change:isVisible",(()=>{this.isVisible?(this.show(),this.redraw()):this.hide()}))}begin(t){this._state=new W_(this._options),this._sizeView._bindToState(this._options,this.state),this._initialViewWidth=this._options.viewElement.getStyle("width"),this.state.begin(t,this._getHandleHost(),this._getResizeHost())}updateSize(t){const e=this._proposeNewSize(t);this._options.editor.editing.view.change((t=>{const n=this._options.unit||"%",o=("%"===n?e.widthPercents:e.width)+n;t.setStyle("width",o,this._options.viewElement)}));const n=this._getHandleHost(),o=new Ko(n),i=Math.round(o.width),r=Math.round(o.height),s=new Ko(n);e.width=Math.round(s.width),e.height=Math.round(s.height),this.redraw(o),this.state.update({...e,handleHostWidth:i,handleHostHeight:r})}commit(){const t=this._options.unit||"%",e=("%"===t?this.state.proposedWidthPercents:this.state.proposedWidth)+t;this._options.editor.editing.view.change((()=>{this._cleanup(),this._options.onCommit(e)}))}cancel(){this._cleanup()}destroy(){this.cancel()}redraw(t){const e=this._domResizerWrapper;if(!((n=e)&&n.ownerDocument&&n.ownerDocument.contains(n)))return;var n;const o=e.parentElement,i=this._getHandleHost(),r=this._viewResizerWrapper,s=[r.getStyle("width"),r.getStyle("height"),r.getStyle("left"),r.getStyle("top")];let a;if(o.isSameNode(i)){const e=t||new Ko(i);a=[e.width+"px",e.height+"px",void 0,void 0]}else a=[i.offsetWidth+"px",i.offsetHeight+"px",i.offsetLeft+"px",i.offsetTop+"px"];"same"!==it(s,a)&&this._options.editor.editing.view.change((t=>{t.setStyle({width:a[0],height:a[1],left:a[2],top:a[3]},r)}))}containsHandle(t){return this._domResizerWrapper.contains(t)}static isResizeHandle(t){return t.classList.contains("ck-widget__resizer__handle")}_cleanup(){this._sizeView._dismiss();this._options.editor.editing.view.change((t=>{t.setStyle("width",this._initialViewWidth,this._options.viewElement)}))}_proposeNewSize(t){const e=this.state,n={x:(o=t).pageX,y:o.pageY};var o;const i=!this._options.isCentered||this._options.isCentered(this),r={x:e._referenceCoordinates.x-(n.x+e.originalWidth),y:n.y-e.originalHeight-e._referenceCoordinates.y};i&&e.activeHandlePosition.endsWith("-right")&&(r.x=n.x-(e._referenceCoordinates.x+e.originalWidth)),i&&(r.x*=2);let s=Math.abs(e.originalWidth+r.x),a=Math.abs(e.originalHeight+r.y);return"width"==(s/e.aspectRatio>a?"width":"height")?a=s/e.aspectRatio:s=a*e.aspectRatio,{width:Math.round(s),height:Math.round(a),widthPercents:Math.min(Math.round(e.originalWidthPercents/e.originalWidth*s*100)/100,100)}}_getResizeHost(){const t=this._domResizerWrapper.parentElement;return this._options.getResizeHost(t)}_getHandleHost(){const t=this._domResizerWrapper.parentElement;return this._options.getHandleHost(t)}get _domResizerWrapper(){return this._options.editor.editing.view.domConverter.mapViewToDom(this._viewResizerWrapper)}_appendHandles(t){const e=["top-left","top-right","bottom-right","bottom-left"];for(const o of e)t.appendChild(new dr({tag:"div",attributes:{class:"ck-widget__resizer__handle "+(n=o,`ck-widget__resizer__handle-${n}`)}}).render());var n}_appendSizeUI(t){this._sizeView=new K_,this._sizeView.render(),t.appendChild(this._sizeView.element)}}var $_=n(4095),Z_={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()($_.A,Z_);$_.A.locals;class J_ extends Nr{_resizers=new Map;_observer;_redrawSelectedResizerThrottled;static get pluginName(){return"WidgetResize"}init(){const t=this.editor.editing,e=Oo.window.document;this.set("selectedResizer",null),this.set("_activeResizer",null),t.view.addObserver(iu),this._observer=new(Lo()),this.listenTo(t.view.document,"mousedown",this._mouseDownListener.bind(this),{priority:"high"}),this._observer.listenTo(e,"mousemove",this._mouseMoveListener.bind(this)),this._observer.listenTo(e,"mouseup",this._mouseUpListener.bind(this)),this._redrawSelectedResizerThrottled=lf((()=>this.redrawSelectedResizer()),200),this.editor.ui.on("update",this._redrawSelectedResizerThrottled),this.editor.model.document.on("change",(()=>{for(const[t,e]of this._resizers)t.isAttached()||(this._resizers.delete(t),e.destroy())}),{priority:"lowest"}),this._observer.listenTo(Oo.window,"resize",this._redrawSelectedResizerThrottled);const n=this.editor.editing.view.document.selection;n.on("change",(()=>{const t=n.getSelectedElement(),e=this.getResizerByViewElement(t)||null;e?this.select(e):this.deselect()}))}redrawSelectedResizer(){this.selectedResizer&&this.selectedResizer.isVisible&&this.selectedResizer.redraw()}destroy(){super.destroy(),this._observer.stopListening();for(const t of this._resizers.values())t.destroy();this._redrawSelectedResizerThrottled.cancel()}select(t){this.deselect(),this.selectedResizer=t,this.selectedResizer.isSelected=!0}deselect(){this.selectedResizer&&(this.selectedResizer.isSelected=!1),this.selectedResizer=null}attachTo(t){const e=new U_(t),n=this.editor.plugins;if(e.attach(),n.has("WidgetToolbarRepository")){const t=n.get("WidgetToolbarRepository");e.on("begin",(()=>{t.forceDisabled("resize")}),{priority:"lowest"}),e.on("cancel",(()=>{t.clearForceDisabled("resize")}),{priority:"highest"}),e.on("commit",(()=>{t.clearForceDisabled("resize")}),{priority:"highest"})}this._resizers.set(t.viewElement,e);const o=this.editor.editing.view.document.selection.getSelectedElement();return this.getResizerByViewElement(o)==e&&this.select(e),e}getResizerByViewElement(t){return this._resizers.get(t)}_getResizerByHandle(t){for(const e of this._resizers.values())if(e.containsHandle(t))return e}_mouseDownListener(t,e){const n=e.domTarget;U_.isResizeHandle(n)&&(this._activeResizer=this._getResizerByHandle(n)||null,this._activeResizer&&(this._activeResizer.begin(n),t.stop(),e.preventDefault()))}_mouseMoveListener(t,e){this._activeResizer&&this._activeResizer.updateSize(e)}_mouseUpListener(){this._activeResizer&&(this._activeResizer.commit(),this._activeResizer=null)}}const Y_=Xo("px");class Q_ extends Lr{constructor(){super();const t=this.bindTemplate;this.set({isVisible:!1,left:null,top:null,width:null}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-clipboard-drop-target-line",t.if("isVisible","ck-hidden",(t=>!t))],style:{left:t.to("left",(t=>Y_(t))),top:t.to("top",(t=>Y_(t))),width:t.to("width",(t=>Y_(t)))}}})}}class X_ extends Nr{removeDropMarkerDelayed=or((()=>this.removeDropMarker()),40);_updateDropMarkerThrottled=lf((t=>this._updateDropMarker(t)),40);_reconvertMarkerThrottled=lf((()=>{this.editor.model.markers.has("drop-target")&&this.editor.editing.reconvertMarker("drop-target")}),0);_dropTargetLineView=new Q_;_domEmitter=new(Lo());_scrollables=new Map;static get pluginName(){return"DragDropTarget"}init(){this._setupDropMarker()}destroy(){this._domEmitter.stopListening();for(const{resizeObserver:t}of this._scrollables.values())t.destroy();return this._updateDropMarkerThrottled.cancel(),this.removeDropMarkerDelayed.cancel(),this._reconvertMarkerThrottled.cancel(),super.destroy()}updateDropMarker(t,e,n,o,i,r){this.removeDropMarkerDelayed.cancel();const s=tA(this.editor,t,e,n,o,i,r);if(s)return r&&r.containsRange(s)?this.removeDropMarker():void this._updateDropMarkerThrottled(s)}getFinalDropRange(t,e,n,o,i,r){const s=tA(this.editor,t,e,n,o,i,r);return this.removeDropMarker(),s}removeDropMarker(){const t=this.editor.model;this.removeDropMarkerDelayed.cancel(),this._updateDropMarkerThrottled.cancel(),this._dropTargetLineView.isVisible=!1,t.markers.has("drop-target")&&t.change((t=>{t.removeMarker("drop-target")}))}_setupDropMarker(){const t=this.editor;t.ui.view.body.add(this._dropTargetLineView),t.conversion.for("editingDowncast").markerToHighlight({model:"drop-target",view:{classes:["ck-clipboard-drop-target-range"]}}),t.conversion.for("editingDowncast").markerToElement({model:"drop-target",view:(e,{writer:n})=>{if(t.model.schema.checkChild(e.markerRange.start,"$text"))return this._dropTargetLineView.isVisible=!1,this._createDropTargetPosition(n);e.markerRange.isCollapsed?this._updateDropTargetLine(e.markerRange):this._dropTargetLineView.isVisible=!1}})}_updateDropMarker(t){const e=this.editor,n=e.model.markers;e.model.change((e=>{n.has("drop-target")?n.get("drop-target").getRange().isEqual(t)||e.updateMarker("drop-target",{range:t}):e.addMarker("drop-target",{range:t,usingOperation:!1,affectsData:!1})}))}_createDropTargetPosition(t){return t.createUIElement("span",{class:"ck ck-clipboard-drop-target-position"},(function(t){const e=this.toDomElement(t);return e.append("⁠",t.createElement("span"),"⁠"),e}))}_updateDropTargetLine(t){const e=this.editor.editing,n=t.start.nodeBefore,o=t.start.nodeAfter,i=t.start.parent,r=n?e.mapper.toViewElement(n):null,s=r?e.view.domConverter.mapViewToDom(r):null,a=o?e.mapper.toViewElement(o):null,c=a?e.view.domConverter.mapViewToDom(a):null,l=e.mapper.toViewElement(i);if(!l)return;const d=e.view.domConverter.mapViewToDom(l),h=this._getScrollableRect(l),{scrollX:u,scrollY:m}=Oo.window,g=s?new Ko(s):null,p=c?new Ko(c):null,f=new Ko(d).excludeScrollbarsAndBorders(),k=g?g.bottom:f.top,b=p?p.top:f.bottom,w=Oo.window.getComputedStyle(d),_=k<=b?(k+b)/2:b;if(h.top<_&&_a.schema.checkChild(r,t)))){if(a.schema.checkChild(r,"$text"))return a.createRange(r);if(e)return nA(t,iA(t,e.parent),o,i)}}}else if(a.schema.isInline(l))return nA(t,l,o,i);if(a.schema.isBlock(l))return nA(t,l,o,i);if(a.schema.checkChild(l,"$block")){const e=Array.from(l.getChildren()).filter((e=>e.is("element")&&!eA(t,e)));let n=0,r=e.length;if(0==r)return a.createRange(a.createPositionAt(l,"end"));for(;n{n?(this.forceDisabled("readOnlyMode"),this._isBlockDragging=!1):this.clearForceDisabled("readOnlyMode")})),i.isAndroid&&this.forceDisabled("noAndroidSupport"),t.plugins.has("BlockToolbar")){const e=t.plugins.get("BlockToolbar").buttonView.element;this._domEmitter.listenTo(e,"dragstart",((t,e)=>this._handleBlockDragStart(e))),this._domEmitter.listenTo(Oo.document,"dragover",((t,e)=>this._handleBlockDragging(e))),this._domEmitter.listenTo(Oo.document,"drop",((t,e)=>this._handleBlockDragging(e))),this._domEmitter.listenTo(Oo.document,"dragend",(()=>this._handleBlockDragEnd()),{useCapture:!0}),this.isEnabled&&e.setAttribute("draggable","true"),this.on("change:isEnabled",((t,n,o)=>{e.setAttribute("draggable",o?"true":"false")}))}}destroy(){return this._domEmitter.stopListening(),super.destroy()}_handleBlockDragStart(t){if(!this.isEnabled)return;const e=this.editor.model,n=e.document.selection,o=this.editor.editing.view,i=Array.from(n.getSelectedBlocks()),r=e.createRange(e.createPositionBefore(i[0]),e.createPositionAfter(i[i.length-1]));e.change((t=>t.setSelection(r))),this._isBlockDragging=!0,o.focus(),o.getObserver(Hw).onDomEvent(t)}_handleBlockDragging(t){if(!this.isEnabled||!this._isBlockDragging)return;const e=t.clientX+("ltr"==this.editor.locale.contentLanguageDirection?100:-100),n=t.clientY,o=document.elementFromPoint(e,n),i=this.editor.editing.view;o&&o.closest(".ck-editor__editable")&&i.getObserver(Hw).onDomEvent({...t,type:t.type,dataTransfer:t.dataTransfer,target:o,clientX:e,clientY:n,preventDefault:()=>t.preventDefault(),stopPropagation:()=>t.stopPropagation()})}_handleBlockDragEnd(){this._isBlockDragging=!1}}var sA=n(7793),aA={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(sA.A,aA);sA.A.locals;class cA extends Nr{_draggedRange;_draggingUid;_draggableElement;_clearDraggableAttributesDelayed=or((()=>this._clearDraggableAttributes()),40);_blockMode=!1;_domEmitter=new(Lo());_previewContainer;static get pluginName(){return"DragDrop"}static get requires(){return[c_,O_,X_,rA]}init(){const t=this.editor,e=t.editing.view;this._draggedRange=null,this._draggingUid="",this._draggableElement=null,e.addObserver(Hw),e.addObserver(iu),this._setupDragging(),this._setupContentInsertionIntegration(),this._setupClipboardInputIntegration(),this._setupDraggableAttributeHandling(),this.listenTo(t,"change:isReadOnly",((t,e,n)=>{n?this.forceDisabled("readOnlyMode"):this.clearForceDisabled("readOnlyMode")})),this.on("change:isEnabled",((t,e,n)=>{n||this._finalizeDragging(!1)})),i.isAndroid&&this.forceDisabled("noAndroidSupport")}destroy(){return this._draggedRange&&(this._draggedRange.detach(),this._draggedRange=null),this._previewContainer&&this._previewContainer.remove(),this._domEmitter.stopListening(),this._clearDraggableAttributesDelayed.cancel(),super.destroy()}_setupDragging(){const t=this.editor,e=t.model,n=t.editing.view,o=n.document,r=t.plugins.get(X_);this.listenTo(o,"dragstart",((t,n)=>{if(n.target&&n.target.is("editableElement"))return void n.preventDefault();if(this._prepareDraggedRange(n.target),!this._draggedRange)return void n.preventDefault();this._draggingUid=A(),n.dataTransfer.effectAllowed=this.isEnabled?"copyMove":"copy",n.dataTransfer.setData("application/ckeditor5-dragging-uid",this._draggingUid);const o=e.createSelection(this._draggedRange.toRange());this.editor.plugins.get("ClipboardPipeline")._fireOutputTransformationEvent(n.dataTransfer,o,"dragstart");const{dataTransfer:i,domTarget:r,domEvent:s}=n,{clientX:a}=s;this._updatePreview({dataTransfer:i,domTarget:r,clientX:a}),n.stopPropagation(),this.isEnabled||(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="")}),{priority:"low"}),this.listenTo(o,"dragend",((t,e)=>{this._finalizeDragging(!e.dataTransfer.isCanceled&&"move"==e.dataTransfer.dropEffect)}),{priority:"low"}),this._domEmitter.listenTo(Oo.document,"dragend",(()=>{this._blockMode=!1}),{useCapture:!0}),this.listenTo(o,"dragenter",(()=>{this.isEnabled&&n.focus()})),this.listenTo(o,"dragleave",(()=>{r.removeDropMarkerDelayed()})),this.listenTo(o,"dragging",((t,e)=>{if(!this.isEnabled)return void(e.dataTransfer.dropEffect="none");const{clientX:n,clientY:o}=e.domEvent;r.updateDropMarker(e.target,e.targetRanges,n,o,this._blockMode,this._draggedRange),this._draggedRange||(e.dataTransfer.dropEffect="copy"),i.isGecko||("copy"==e.dataTransfer.effectAllowed?e.dataTransfer.dropEffect="copy":["all","copyMove"].includes(e.dataTransfer.effectAllowed)&&(e.dataTransfer.dropEffect="move")),t.stop()}),{priority:"low"})}_setupClipboardInputIntegration(){const t=this.editor,e=t.editing.view.document,n=t.plugins.get(X_);this.listenTo(e,"clipboardInput",((e,o)=>{if("drop"!=o.method)return;const{clientX:i,clientY:r}=o.domEvent,s=n.getFinalDropRange(o.target,o.targetRanges,i,r,this._blockMode,this._draggedRange);if(!s)return this._finalizeDragging(!1),void e.stop();this._draggedRange&&this._draggingUid!=o.dataTransfer.getData("application/ckeditor5-dragging-uid")&&(this._draggedRange.detach(),this._draggedRange=null,this._draggingUid="");if("move"==lA(o.dataTransfer)&&this._draggedRange&&this._draggedRange.containsRange(s,!0))return this._finalizeDragging(!1),void e.stop();o.targetRanges=[t.editing.mapper.toViewRange(s)]}),{priority:"high"})}_setupContentInsertionIntegration(){const t=this.editor.plugins.get(c_);t.on("contentInsertion",((t,e)=>{if(!this.isEnabled||"drop"!==e.method)return;const n=e.targetRanges.map((t=>this.editor.editing.mapper.toModelRange(t)));this.editor.model.change((t=>t.setSelection(n)))}),{priority:"high"}),t.on("contentInsertion",((t,e)=>{if(!this.isEnabled||"drop"!==e.method)return;const n="move"==lA(e.dataTransfer),o=!e.resultRange||!e.resultRange.isCollapsed;this._finalizeDragging(o&&n)}),{priority:"lowest"})}_setupDraggableAttributeHandling(){const t=this.editor,e=t.editing.view,n=e.document;this.listenTo(n,"mousedown",((o,r)=>{if(i.isAndroid||!r)return;this._clearDraggableAttributesDelayed.cancel();let s=dA(r.target);if(i.isBlink&&!t.isReadOnly&&!s&&!n.selection.isCollapsed){const t=n.selection.getSelectedElement();t&&f_(t)||(s=n.selection.editableElement)}s&&(e.change((t=>{t.setAttribute("draggable","true",s)})),this._draggableElement=t.editing.mapper.toModelElement(s))})),this.listenTo(n,"mouseup",(()=>{i.isAndroid||this._clearDraggableAttributesDelayed()}))}_clearDraggableAttributes(){const t=this.editor.editing;t.view.change((e=>{this._draggableElement&&"$graveyard"!=this._draggableElement.root.rootName&&e.removeAttribute("draggable",t.mapper.toViewElement(this._draggableElement)),this._draggableElement=null}))}_finalizeDragging(t){const e=this.editor,n=e.model;if(e.plugins.get(X_).removeDropMarker(),this._clearDraggableAttributes(),e.plugins.has("WidgetToolbarRepository")){e.plugins.get("WidgetToolbarRepository").clearForceDisabled("dragDrop")}this._draggingUid="",this._previewContainer&&(this._previewContainer.remove(),this._previewContainer=void 0),this._draggedRange&&(t&&this.isEnabled&&n.change((t=>{const e=n.createSelection(this._draggedRange);n.deleteContent(e,{doNotAutoparagraph:!0});const o=e.getFirstPosition().parent;o.isEmpty&&!n.schema.checkChild(o,"$text")&&n.schema.checkChild(o,"paragraph")&&t.insertElement("paragraph",o,0)})),this._draggedRange.detach(),this._draggedRange=null)}_prepareDraggedRange(t){const e=this.editor,n=e.model,o=n.document.selection,i=t?dA(t):null;if(i){const t=e.editing.mapper.toModelElement(i);if(this._draggedRange=Il.fromRange(n.createRangeOn(t)),this._blockMode=n.schema.isBlock(t),e.plugins.has("WidgetToolbarRepository")){e.plugins.get("WidgetToolbarRepository").forceDisabled("dragDrop")}return}if(o.isCollapsed&&!o.getFirstPosition().parent.isEmpty)return;const r=Array.from(o.getSelectedBlocks()),s=o.getFirstRange();if(0==r.length)return void(this._draggedRange=Il.fromRange(s));const a=hA(n,r);if(r.length>1)this._draggedRange=Il.fromRange(a),this._blockMode=!0;else if(1==r.length){const t=s.start.isTouching(a.start)&&s.end.isTouching(a.end);this._draggedRange=Il.fromRange(t?a:s),this._blockMode=t}n.change((t=>t.setSelection(this._draggedRange.toRange())))}_updatePreview({dataTransfer:t,domTarget:e,clientX:n}){const o=this.editor.editing.view,r=o.document.selection.editableElement,s=o.domConverter.mapViewToDom(r),a=Oo.window.getComputedStyle(s);this._previewContainer?this._previewContainer.firstElementChild&&this._previewContainer.removeChild(this._previewContainer.firstElementChild):(this._previewContainer=Ct(Oo.document,"div",{style:"position: fixed; left: -999999px;"}),Oo.document.body.appendChild(this._previewContainer));const c=new Ko(s);if(s.contains(e))return;const l=parseFloat(a.paddingLeft),d=Ct(Oo.document,"div");d.className="ck ck-content",d.style.width=a.width,d.style.paddingLeft=`${c.left-n+l}px`,i.isiOS&&(d.style.backgroundColor="white"),d.innerHTML=t.getData("text/html"),t.setDragImage(d,0,0),this._previewContainer.appendChild(d)}}function lA(t){return i.isGecko?t.dropEffect:["all","copyMove"].includes(t.effectAllowed)?"move":"copy"}function dA(t){if(t.is("editableElement"))return null;if(t.hasClass("ck-widget__selection-handle"))return t.findAncestor(f_);if(f_(t))return t;const e=t.findAncestor((t=>f_(t)||t.is("editableElement")));return f_(e)?e:null}function hA(t,e){const n=e[0],o=e[e.length-1],i=n.getCommonAncestor(o),r=t.createPositionBefore(n),s=t.createPositionAfter(o);if(i&&i.is("element")&&!t.schema.isLimit(i)){const e=t.createRangeOn(i),n=r.isTouching(e.start),o=s.isTouching(e.end);if(n&&o)return hA(t,[i])}return t.createRange(r,s)}class uA extends Nr{static get pluginName(){return"PastePlainText"}static get requires(){return[c_]}init(){const t=this.editor,e=t.model,n=t.editing.view,o=n.document,i=e.document.selection;let r=!1;n.addObserver(Hw),this.listenTo(o,"keydown",((t,e)=>{r=e.shiftKey})),t.plugins.get(c_).on("contentInsertion",((t,n)=>{(r||function(t,e){if(t.childCount>1)return!1;const n=t.getChild(0);if(e.isObject(n))return!1;return 0==Array.from(n.getAttributeKeys()).length}(n.content,e.schema))&&e.change((t=>{const o=Array.from(i.getAttributes()).filter((([t])=>e.schema.getAttributeProperties(t).isFormatting));i.isCollapsed||e.deleteContent(i,{doNotAutoparagraph:!0}),o.push(...i.getAttributes());const r=t.createRangeIn(n.content);for(const e of r.getItems())e.is("$textProxy")&&t.setAttributes(o,e)}))}))}}class mA extends Nr{static get pluginName(){return"Clipboard"}static get requires(){return[a_,c_,cA,uA]}init(){const t=this.editor,e=this.editor.t;t.accessibility.addKeystrokeInfos({keystrokes:[{label:e("Copy selected content"),keystroke:"CTRL+C"},{label:e("Paste content"),keystroke:"CTRL+V"},{label:e("Paste content as plain text"),keystroke:"CTRL+SHIFT+V"}]})}}class gA extends qr{constructor(t){super(t),this.affectsData=!1}execute(){const t=this.editor.model,e=t.document.selection;let n=t.schema.getLimitElement(e);if(e.containsEntireContent(n)||!pA(t.schema,n))do{if(n=n.parent,!n)return}while(!pA(t.schema,n));t.change((t=>{t.setSelection(n,"in")}))}}function pA(t,e){return t.isLimit(e)&&(t.checkChild(e,"$text")||t.checkChild(e,"paragraph"))}const fA=vi("Ctrl+A");class kA extends Nr{static get pluginName(){return"SelectAllEditing"}init(){const t=this.editor,e=t.t,n=t.editing.view.document;t.commands.add("selectAll",new gA(t)),this.listenTo(n,"keydown",((e,n)=>{Ci(n)===fA&&(t.execute("selectAll"),n.preventDefault())})),t.accessibility.addKeystrokeInfos({keystrokes:[{label:e("Select all"),keystroke:"CTRL+A"}]})}}class bA extends Nr{static get pluginName(){return"SelectAllUI"}init(){const t=this.editor;t.ui.componentFactory.add("selectAll",(()=>{const t=this._createButton(om);return t.set({tooltip:!0}),t})),t.ui.componentFactory.add("menuBar:selectAll",(()=>this._createButton(Tm)))}_createButton(t){const e=this.editor,n=e.locale,o=e.commands.get("selectAll"),i=new t(e.locale),r=n.t;return i.set({label:r("Select all"),icon:'',keystroke:"Ctrl+A"}),i.bind("isEnabled").to(o,"isEnabled"),this.listenTo(i,"execute",(()=>{e.execute("selectAll"),e.editing.view.focus()})),i}}class wA extends Nr{static get requires(){return[kA,bA]}static get pluginName(){return"SelectAll"}}class _A extends qr{_stack=[];_createdBatches=new WeakSet;constructor(t){super(t),this.refresh(),this._isEnabledBasedOnSelection=!1,this.listenTo(t.data,"set",((t,e)=>{e[1]={...e[1]};const n=e[1];n.batchType||(n.batchType={isUndoable:!1})}),{priority:"high"}),this.listenTo(t.data,"set",((t,e)=>{e[1].batchType.isUndoable||this.clearStack()}))}refresh(){this.isEnabled=this._stack.length>0}get createdBatches(){return this._createdBatches}addBatch(t){const e=this.editor.model.document.selection,n={ranges:e.hasOwnRange?Array.from(e.getRanges()):[],isBackward:e.isBackward};this._stack.push({batch:t,selection:n}),this.refresh()}clearStack(){this._stack=[],this.refresh()}_restoreSelection(t,e,n){const o=this.editor.model,i=o.document,r=[],s=t.map((t=>t.getTransformedByOperations(n))),a=s.flat();for(const t of s){const e=t.filter((t=>t.root!=i.graveyard)).filter((t=>!CA(t,a)));e.length&&(AA(e),r.push(e[0]))}r.length&&o.change((t=>{t.setSelection(r,{backward:e})}))}_undo(t,e){const n=this.editor.model,o=n.document;this._createdBatches.add(e);const i=t.operations.slice().filter((t=>t.isDocumentOperation));i.reverse();for(const t of i){const i=t.baseVersion+1,r=Array.from(o.history.getOperations(i)),s=uh([t.getReversed()],r,{useRelations:!0,document:this.editor.model.document,padWithNoOps:!1,forceWeakRemove:!0}).operationsA;for(let i of s){const r=i.affectedSelectable;r&&!n.canEditAt(r)&&(i=new nh(i.baseVersion)),e.addOperation(i),n.applyOperation(i),o.history.setOperationAsUndone(t,i)}}}}function AA(t){t.sort(((t,e)=>t.start.isBefore(e.start)?-1:1));for(let e=1;ee!==t&&e.containsRange(t,!0)))}class vA extends _A{execute(t=null){const e=t?this._stack.findIndex((e=>e.batch==t)):this._stack.length-1,n=this._stack.splice(e,1)[0],o=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(o,(()=>{this._undo(n.batch,o);const t=this.editor.model.document.history.getOperations(n.batch.baseVersion);this._restoreSelection(n.selection.ranges,n.selection.isBackward,t)})),this.fire("revert",n.batch,o),this.refresh()}}class yA extends _A{execute(){const t=this._stack.pop(),e=this.editor.model.createBatch({isUndo:!0});this.editor.model.enqueueChange(e,(()=>{const n=t.batch.operations[t.batch.operations.length-1].baseVersion+1,o=this.editor.model.document.history.getOperations(n);this._restoreSelection(t.selection.ranges,t.selection.isBackward,o),this._undo(t.batch,e)})),this.refresh()}}class xA extends Nr{_undoCommand;_redoCommand;_batchRegistry=new WeakSet;static get pluginName(){return"UndoEditing"}init(){const t=this.editor,e=t.t;this._undoCommand=new vA(t),this._redoCommand=new yA(t),t.commands.add("undo",this._undoCommand),t.commands.add("redo",this._redoCommand),this.listenTo(t.model,"applyOperation",((t,e)=>{const n=e[0];if(!n.isDocumentOperation)return;const o=n.batch,i=this._redoCommand.createdBatches.has(o),r=this._undoCommand.createdBatches.has(o);this._batchRegistry.has(o)||(this._batchRegistry.add(o),o.isUndoable&&(i?this._undoCommand.addBatch(o):r||(this._undoCommand.addBatch(o),this._redoCommand.clearStack())))}),{priority:"highest"}),this.listenTo(this._undoCommand,"revert",((t,e,n)=>{this._redoCommand.addBatch(n)})),t.keystrokes.set("CTRL+Z","undo"),t.keystrokes.set("CTRL+Y","redo"),t.keystrokes.set("CTRL+SHIFT+Z","redo"),t.accessibility.addKeystrokeInfos({keystrokes:[{label:e("Undo"),keystroke:"CTRL+Z"},{label:e("Redo"),keystroke:[["CTRL+Y"],["CTRL+SHIFT+Z"]]}]})}}class EA extends Nr{static get pluginName(){return"UndoUI"}init(){const t=this.editor,e=t.locale,n=t.t,o="ltr"==e.uiLanguageDirection?Ju.undo:Ju.redo,i="ltr"==e.uiLanguageDirection?Ju.redo:Ju.undo;this._addButtonsToFactory("undo",n("Undo"),"CTRL+Z",o),this._addButtonsToFactory("redo",n("Redo"),"CTRL+Y",i)}_addButtonsToFactory(t,e,n,o){const i=this.editor;i.ui.componentFactory.add(t,(()=>{const i=this._createButton(om,t,e,n,o);return i.set({tooltip:!0}),i})),i.ui.componentFactory.add("menuBar:"+t,(()=>this._createButton(Tm,t,e,n,o)))}_createButton(t,e,n,o,i){const r=this.editor,s=r.locale,a=r.commands.get(e),c=new t(s);return c.set({label:n,icon:i,keystroke:o}),c.bind("isEnabled").to(a,"isEnabled"),this.listenTo(c,"execute",(()=>{r.execute(e),r.editing.view.focus()})),c}}class DA extends Nr{static get requires(){return[xA,EA]}static get pluginName(){return"Undo"}}class BA extends qr{attributeKey;constructor(t,e){super(t),this.attributeKey=e}refresh(){const t=this.editor.model,e=t.document;this.value=e.selection.getAttribute(this.attributeKey),this.isEnabled=t.schema.checkAttributeInSelection(e.selection,this.attributeKey)}execute(t={}){const e=this.editor.model,n=e.document.selection,o=t.value,i=t.batch,r=t=>{if(n.isCollapsed)o?t.setSelectionAttribute(this.attributeKey,o):t.removeSelectionAttribute(this.attributeKey);else{const i=e.schema.getValidRanges(n.getRanges(),this.attributeKey);for(const e of i)o?t.setAttribute(this.attributeKey,o,e):t.removeAttribute(this.attributeKey,e)}};i?e.enqueueChange(i,(t=>{r(t)})):e.change((t=>{r(t)}))}}const TA="fontSize",SA="fontFamily",IA="fontColor",PA="fontBackgroundColor";function zA(t,e){const n={model:{key:t,values:[]},view:{},upcastAlso:{}};for(const t of e)n.model.values.push(t.model),n.view[t.model]=t.view,t.upcastAlso&&(n.upcastAlso[t.model]=t.upcastAlso);return n}function RA(t){return e=>e.getStyle(t).replace(/\s/g,"")}function LA(t){return(e,{writer:n})=>n.createAttributeElement("span",{style:`${t}:${e}`},{priority:7})}class FA extends BA{constructor(t){super(t,SA)}}function MA(t){return t.map(VA).filter((t=>void 0!==t))}function VA(t){return"object"==typeof t?t:"default"===t?{title:"Default",model:void 0}:"string"==typeof t?function(t){const e=t.replace(/"|'/g,"").split(","),n=e[0],o=e.map(OA).join(", ");return{title:n,model:o,view:{name:"span",styles:{"font-family":o},priority:7}}}(t):void 0}function OA(t){return(t=t.trim()).indexOf(" ")>0&&(t=`'${t}'`),t}class NA extends Nr{static get pluginName(){return"FontFamilyEditing"}constructor(t){super(t),t.config.define(SA,{options:["default","Arial, Helvetica, sans-serif","Courier New, Courier, monospace","Georgia, serif","Lucida Sans Unicode, Lucida Grande, sans-serif","Tahoma, Geneva, sans-serif","Times New Roman, Times, serif","Trebuchet MS, Helvetica, sans-serif","Verdana, Geneva, sans-serif"],supportAllValues:!1})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:SA}),t.model.schema.setAttributeProperties(SA,{isFormatting:!0,copyOnEnter:!0});const e=MA(t.config.get("fontFamily.options")).filter((t=>t.model)),n=zA(SA,e);t.config.get("fontFamily.supportAllValues")?(this._prepareAnyValueConverters(),this._prepareCompatibilityConverter()):t.conversion.attributeToElement(n),t.commands.add(SA,new FA(t))}_prepareAnyValueConverters(){const t=this.editor;t.conversion.for("downcast").attributeToElement({model:SA,view:(t,{writer:e})=>e.createAttributeElement("span",{style:"font-family:"+t},{priority:7})}),t.conversion.for("upcast").elementToAttribute({model:{key:SA,value:t=>t.getStyle("font-family")},view:{name:"span",styles:{"font-family":/.*/}}})}_prepareCompatibilityConverter(){this.editor.conversion.for("upcast").elementToAttribute({view:{name:"font",attributes:{face:/.*/}},model:{key:SA,value:t=>t.getAttribute("face")}})}}const HA='';class qA extends Nr{static get pluginName(){return"FontFamilyUI"}init(){const t=this.editor,e=t.t,n=this._getLocalizedOptions(),o=t.commands.get(SA),i=e("Font Family"),r=function(t,e){const n=new Qi;for(const o of t){const t={type:"button",model:new If({commandName:SA,commandParam:o.model,label:o.title,role:"menuitemradio",withText:!0})};t.model.bind("isOn").to(e,"value",(t=>t===o.model||!(!t||!o.model)&&t.split(",")[0].replace(/'/g,"").toLowerCase()===o.model.toLowerCase())),o.view&&"string"!=typeof o.view&&o.view.styles&&t.model.set("labelStyle",`font-family: ${o.view.styles["font-family"]}`),n.add(t)}return n}(n,o);t.ui.componentFactory.add(SA,(e=>{const n=Ug(e);return Jg(n,r,{role:"menu",ariaLabel:i}),n.buttonView.set({label:i,icon:HA,tooltip:!0}),n.extendTemplate({attributes:{class:"ck-font-family-dropdown"}}),n.bind("isEnabled").to(o),this.listenTo(n,"execute",(e=>{t.execute(e.source.commandName,{value:e.source.commandParam}),t.editing.view.focus()})),n})),t.ui.componentFactory.add(`menuBar:${SA}`,(e=>{const n=new Pk(e);n.buttonView.set({label:i,icon:HA}),n.bind("isEnabled").to(o);const s=new zk(e);for(const o of r){const i=new dk(e,n),r=new Tm(e);r.bind(...Object.keys(o.model)).to(o.model),r.bind("ariaChecked").to(r,"isOn"),r.delegate("execute").to(n),r.on("execute",(()=>{t.execute(o.model.commandName,{value:o.model.commandParam}),t.editing.view.focus()})),i.children.add(r),s.items.add(i)}return n.panelView.children.add(s),n}))}_getLocalizedOptions(){const t=this.editor,e=t.t;return MA(t.config.get(SA).options).map((t=>("Default"===t.title&&(t.title=e("Default")),t)))}}class jA extends BA{constructor(t){super(t,TA)}}function WA(t){return t.map((t=>function(t){"number"==typeof t&&(t=String(t));if("object"==typeof t&&(e=t,e.title&&e.model&&e.view))return KA(t);var e;const n=function(t){return"string"==typeof t?GA[t]:GA[t.model]}(t);if(n)return KA(n);if("default"===t)return{model:void 0,title:"Default"};if(function(t){let e;if("object"==typeof t){if(!t.model)throw new x("font-size-invalid-definition",null,t);e=parseFloat(t.model)}else e=parseFloat(t);return isNaN(e)}(t))return;return function(t){"string"==typeof t&&(t={title:t,model:`${parseFloat(t)}px`});return t.view={name:"span",styles:{"font-size":t.model}},KA(t)}(t)}(t))).filter((t=>void 0!==t))}const GA={get tiny(){return{title:"Tiny",model:"tiny",view:{name:"span",classes:"text-tiny",priority:7}}},get small(){return{title:"Small",model:"small",view:{name:"span",classes:"text-small",priority:7}}},get big(){return{title:"Big",model:"big",view:{name:"span",classes:"text-big",priority:7}}},get huge(){return{title:"Huge",model:"huge",view:{name:"span",classes:"text-huge",priority:7}}}};function KA(t){return t.view&&"string"!=typeof t.view&&!t.view.priority&&(t.view.priority=7),t}const UA=["x-small","x-small","small","medium","large","x-large","xx-large","xxx-large"];class $A extends Nr{static get pluginName(){return"FontSizeEditing"}constructor(t){super(t),t.config.define(TA,{options:["tiny","small","default","big","huge"],supportAllValues:!1})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:TA}),t.model.schema.setAttributeProperties(TA,{isFormatting:!0,copyOnEnter:!0});const e=t.config.get("fontSize.supportAllValues"),n=WA(this.editor.config.get("fontSize.options")).filter((t=>t.model)),o=zA(TA,n);e?(this._prepareAnyValueConverters(o),this._prepareCompatibilityConverter()):t.conversion.attributeToElement(o),t.commands.add(TA,new jA(t))}_prepareAnyValueConverters(t){const e=this.editor,n=t.model.values.filter((t=>!ku(String(t))&&!wu(String(t))));if(n.length)throw new x("font-size-invalid-use-of-named-presets",null,{presets:n});e.conversion.for("downcast").attributeToElement({model:TA,view:(t,{writer:e})=>{if(t)return e.createAttributeElement("span",{style:"font-size:"+t},{priority:7})}}),e.conversion.for("upcast").elementToAttribute({model:{key:TA,value:t=>t.getStyle("font-size")},view:{name:"span",styles:{"font-size":/.*/}}})}_prepareCompatibilityConverter(){this.editor.conversion.for("upcast").elementToAttribute({view:{name:"font",attributes:{size:/^[+-]?\d{1,3}$/}},model:{key:TA,value:t=>{const e=t.getAttribute("size"),n="-"===e[0]||"+"===e[0];let o=parseInt(e,10);n&&(o=3+o);const i=UA.length-1,r=Math.min(Math.max(o,0),i);return UA[r]}}})}}var ZA=n(1058),JA={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(ZA.A,JA);ZA.A.locals;const YA='';class QA extends Nr{static get pluginName(){return"FontSizeUI"}init(){const t=this.editor,e=t.t,n=this._getLocalizedOptions(),o=t.commands.get(TA),i=e("Font Size"),r=function(t,e){const n=new Qi;for(const o of t){const t={type:"button",model:new If({commandName:TA,commandParam:o.model,label:o.title,class:"ck-fontsize-option",role:"menuitemradio",withText:!0})};o.view&&"string"!=typeof o.view&&(o.view.styles&&t.model.set("labelStyle",`font-size:${o.view.styles["font-size"]}`),o.view.classes&&t.model.set("class",`${t.model.class} ${o.view.classes}`)),t.model.bind("isOn").to(e,"value",(t=>t===o.model)),n.add(t)}return n}(n,o);t.ui.componentFactory.add(TA,(e=>{const n=Ug(e);return Jg(n,r,{role:"menu",ariaLabel:i}),n.buttonView.set({label:i,icon:YA,tooltip:!0}),n.extendTemplate({attributes:{class:["ck-font-size-dropdown"]}}),n.bind("isEnabled").to(o),this.listenTo(n,"execute",(e=>{t.execute(e.source.commandName,{value:e.source.commandParam}),t.editing.view.focus()})),n})),t.ui.componentFactory.add(`menuBar:${TA}`,(e=>{const n=new Pk(e);n.buttonView.set({label:i,icon:YA}),n.bind("isEnabled").to(o);const s=new zk(e);for(const o of r){const i=new dk(e,n),r=new Tm(e);r.bind(...Object.keys(o.model)).to(o.model),r.bind("ariaChecked").to(r,"isOn"),r.delegate("execute").to(n),r.on("execute",(()=>{t.execute(o.model.commandName,{value:o.model.commandParam}),t.editing.view.focus()})),i.children.add(r),s.items.add(i)}return n.panelView.children.add(s),n}))}_getLocalizedOptions(){const t=this.editor,e=t.t,n={Default:e("Default"),Tiny:e("Tiny"),Small:e("Small"),Big:e("Big"),Huge:e("Huge")};return WA(t.config.get(TA).options).map((t=>{const e=n[t.title];return e&&e!=t.title&&(t=Object.assign({},t,{title:e})),t}))}}class XA extends BA{constructor(t){super(t,IA)}}class tC extends Nr{static get pluginName(){return"FontColorEditing"}constructor(t){super(t),t.config.define(IA,{colors:[{color:"hsl(0, 0%, 0%)",label:"Black"},{color:"hsl(0, 0%, 30%)",label:"Dim grey"},{color:"hsl(0, 0%, 60%)",label:"Grey"},{color:"hsl(0, 0%, 90%)",label:"Light grey"},{color:"hsl(0, 0%, 100%)",label:"White",hasBorder:!0},{color:"hsl(0, 75%, 60%)",label:"Red"},{color:"hsl(30, 75%, 60%)",label:"Orange"},{color:"hsl(60, 75%, 60%)",label:"Yellow"},{color:"hsl(90, 75%, 60%)",label:"Light green"},{color:"hsl(120, 75%, 60%)",label:"Green"},{color:"hsl(150, 75%, 60%)",label:"Aquamarine"},{color:"hsl(180, 75%, 60%)",label:"Turquoise"},{color:"hsl(210, 75%, 60%)",label:"Light blue"},{color:"hsl(240, 75%, 60%)",label:"Blue"},{color:"hsl(270, 75%, 60%)",label:"Purple"}],columns:5}),t.conversion.for("upcast").elementToAttribute({view:{name:"span",styles:{color:/[\s\S]+/}},model:{key:IA,value:RA("color")}}),t.conversion.for("upcast").elementToAttribute({view:{name:"font",attributes:{color:/^#?\w+$/}},model:{key:IA,value:t=>t.getAttribute("color")}}),t.conversion.for("downcast").attributeToElement({model:IA,view:LA("color")}),t.commands.add(IA,new XA(t)),t.model.schema.extend("$text",{allowAttributes:IA}),t.model.schema.setAttributeProperties(IA,{isFormatting:!0,copyOnEnter:!0})}}class eC extends Nr{commandName;componentName;icon;dropdownLabel;columns;constructor(t,{commandName:e,componentName:n,icon:o,dropdownLabel:i}){super(t),this.commandName=e,this.componentName=n,this.icon=o,this.dropdownLabel=i,this.columns=t.config.get(`${this.componentName}.columns`)}init(){const t=this.editor,e=t.locale,n=e.t,o=t.commands.get(this.commandName),i=t.config.get(this.componentName),r=Zm(e,Jm(i.colors)),s=i.documentColors,a=!1!==i.colorPicker;t.ui.componentFactory.add(this.componentName,(e=>{const c=Ug(e);let l=!1;const d=function({dropdownView:t,colors:e,columns:n,removeButtonLabel:o,colorPickerLabel:i,documentColorsLabel:r,documentColorsCount:s,colorPickerViewConfig:a}){const c=t.locale,l=new Up(c,{colors:e,columns:n,removeButtonLabel:o,colorPickerLabel:i,documentColorsLabel:r,documentColorsCount:s,colorPickerViewConfig:a});return t.colorSelectorView=l,t.panelView.children.add(l),l}({dropdownView:c,colors:r.map((t=>({label:t.label,color:t.model,options:{hasBorder:t.hasBorder}}))),columns:this.columns,removeButtonLabel:n("Remove color"),colorPickerLabel:n("Color picker"),documentColorsLabel:0!==s?n("Document colors"):"",documentColorsCount:void 0===s?this.columns:s,colorPickerViewConfig:!!a&&(i.colorPicker||{})});return d.bind("selectedColor").to(o,"value"),c.buttonView.set({label:this.dropdownLabel,icon:this.icon,tooltip:!0}),c.extendTemplate({attributes:{class:"ck-color-ui-dropdown"}}),c.bind("isEnabled").to(o),d.on("execute",((e,n)=>{c.isOpen&&t.execute(this.commandName,{value:n.value,batch:this._undoStepBatch}),"colorPicker"!==n.source&&t.editing.view.focus(),"colorPickerSaveButton"===n.source&&(c.isOpen=!1)})),d.on("colorPicker:show",(()=>{this._undoStepBatch=t.model.createBatch()})),d.on("colorPicker:cancel",(()=>{this._undoStepBatch.operations.length&&(c.isOpen=!1,t.execute("undo",this._undoStepBatch)),t.editing.view.focus()})),c.on("change:isOpen",((e,n,o)=>{l||(l=!0,c.colorSelectorView.appendUI()),o&&(0!==s&&d.updateDocumentColors(t.model,this.componentName),d.updateSelectedColors(),d.showColorGridsFragment())})),Qg(c,(()=>c.colorSelectorView.colorGridsFragmentView.staticColorsGrid.items.find((t=>t.isOn)))),c})),t.ui.componentFactory.add(`menuBar:${this.componentName}`,(e=>{const i=new Pk(e);i.buttonView.set({label:this.dropdownLabel,icon:this.icon}),i.bind("isEnabled").to(o);let a=!1;const c=new Up(e,{colors:r.map((t=>({label:t.label,color:t.model,options:{hasBorder:t.hasBorder}}))),columns:this.columns,removeButtonLabel:n("Remove color"),colorPickerLabel:n("Color picker"),documentColorsLabel:0!==s?n("Document colors"):"",documentColorsCount:void 0===s?this.columns:s,colorPickerViewConfig:!1});return c.bind("selectedColor").to(o,"value"),c.delegate("execute").to(i),c.on("execute",((e,n)=>{t.execute(this.commandName,{value:n.value,batch:this._undoStepBatch}),t.editing.view.focus()})),i.on("change:isOpen",((e,n,o)=>{a||(a=!0,c.appendUI()),o&&(0!==s&&c.updateDocumentColors(t.model,this.componentName),c.updateSelectedColors(),c.showColorGridsFragment())})),i.panelView.children.add(c),i}))}}class nC extends eC{constructor(t){const e=t.locale.t;super(t,{commandName:IA,componentName:IA,icon:'',dropdownLabel:e("Font Color")})}static get pluginName(){return"FontColorUI"}}class oC extends BA{constructor(t){super(t,PA)}}class iC extends Nr{static get pluginName(){return"FontBackgroundColorEditing"}constructor(t){super(t),t.config.define(PA,{colors:[{color:"hsl(0, 0%, 0%)",label:"Black"},{color:"hsl(0, 0%, 30%)",label:"Dim grey"},{color:"hsl(0, 0%, 60%)",label:"Grey"},{color:"hsl(0, 0%, 90%)",label:"Light grey"},{color:"hsl(0, 0%, 100%)",label:"White",hasBorder:!0},{color:"hsl(0, 75%, 60%)",label:"Red"},{color:"hsl(30, 75%, 60%)",label:"Orange"},{color:"hsl(60, 75%, 60%)",label:"Yellow"},{color:"hsl(90, 75%, 60%)",label:"Light green"},{color:"hsl(120, 75%, 60%)",label:"Green"},{color:"hsl(150, 75%, 60%)",label:"Aquamarine"},{color:"hsl(180, 75%, 60%)",label:"Turquoise"},{color:"hsl(210, 75%, 60%)",label:"Light blue"},{color:"hsl(240, 75%, 60%)",label:"Blue"},{color:"hsl(270, 75%, 60%)",label:"Purple"}],columns:5}),t.data.addStyleProcessorRules(Pu),t.conversion.for("upcast").elementToAttribute({view:{name:"span",styles:{"background-color":/[\s\S]+/}},model:{key:PA,value:RA("background-color")}}),t.conversion.for("downcast").attributeToElement({model:PA,view:LA("background-color")}),t.commands.add(PA,new oC(t)),t.model.schema.extend("$text",{allowAttributes:PA}),t.model.schema.setAttributeProperties(PA,{isFormatting:!0,copyOnEnter:!0})}}class rC extends eC{constructor(t){const e=t.locale.t;super(t,{commandName:PA,componentName:PA,icon:'',dropdownLabel:e("Font Background Color")})}static get pluginName(){return"FontBackgroundColorUI"}}class sC extends qr{constructor(t){super(t),this._isEnabledBasedOnSelection=!1}refresh(){const t=this.editor.model,e=Xi(t.document.selection.getSelectedBlocks());this.value=!!e&&e.is("element","paragraph"),this.isEnabled=!!e&&aC(e,t.schema)}execute(t={}){const e=this.editor.model,n=e.document,o=t.selection||n.selection;e.canEditAt(o)&&e.change((t=>{const n=o.getSelectedBlocks();for(const o of n)!o.is("element","paragraph")&&aC(o,e.schema)&&t.rename(o,"paragraph")}))}}function aC(t,e){return e.checkChild(t.parent,"paragraph")&&!e.isObject(t)}class cC extends qr{constructor(t){super(t),this._isEnabledBasedOnSelection=!1}execute(t){const e=this.editor.model,n=t.attributes;let o=t.position;e.canEditAt(o)&&e.change((t=>{if(o=this._findPositionToInsertParagraph(o,t),!o)return;const i=t.createElement("paragraph");n&&e.schema.setAllowedAttributes(i,n,t),e.insertContent(i,o),t.setSelection(i,"in")}))}_findPositionToInsertParagraph(t,e){const n=this.editor.model;if(n.schema.checkChild(t,"paragraph"))return t;const o=n.schema.findAllowedParent(t,"paragraph");if(!o)return null;const i=t.parent,r=n.schema.checkChild(i,"$text");return i.isEmpty||r&&t.isAtEnd?n.createPositionAfter(i):!i.isEmpty&&r&&t.isAtStart?n.createPositionBefore(i):e.split(t,o).position}}class lC extends Nr{static get pluginName(){return"Paragraph"}init(){const t=this.editor,e=t.model;t.commands.add("paragraph",new sC(t)),t.commands.add("insertParagraph",new cC(t)),e.schema.register("paragraph",{inheritAllFrom:"$block"}),t.conversion.elementToElement({model:"paragraph",view:"p"}),t.conversion.for("upcast").elementToElement({model:(t,{writer:e})=>lC.paragraphLikeElements.has(t.name)?t.isEmpty?null:e.createElement("paragraph"):null,view:/.+/,converterPriority:"low"})}static paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"])}class dC extends qr{modelElements;constructor(t,e){super(t),this.modelElements=e}refresh(){const t=Xi(this.editor.model.document.selection.getSelectedBlocks());this.value=!!t&&this.modelElements.includes(t.name)&&t.name,this.isEnabled=!!t&&this.modelElements.some((e=>hC(t,e,this.editor.model.schema)))}execute(t){const e=this.editor.model,n=e.document,o=t.value;e.change((t=>{const i=Array.from(n.selection.getSelectedBlocks()).filter((t=>hC(t,o,e.schema)));for(const e of i)e.is("element",o)||t.rename(e,o)}))}}function hC(t,e,n){return n.checkChild(t.parent,e)&&!n.isObject(t)}const uC="paragraph";class mC extends Nr{static get pluginName(){return"HeadingEditing"}constructor(t){super(t),t.config.define("heading",{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h2",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h3",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h4",title:"Heading 3",class:"ck-heading_heading3"}]})}static get requires(){return[lC]}init(){const t=this.editor,e=t.config.get("heading.options"),n=[];for(const o of e)"paragraph"!==o.model&&(t.model.schema.register(o.model,{inheritAllFrom:"$block"}),t.conversion.elementToElement(o),n.push(o.model));this._addDefaultH1Conversion(t),t.commands.add("heading",new dC(t,n))}afterInit(){const t=this.editor,e=t.commands.get("enter"),n=t.config.get("heading.options");e&&this.listenTo(e,"afterExecute",((e,o)=>{const i=t.model.document.selection.getFirstPosition().parent;n.some((t=>i.is("element",t.model)))&&!i.is("element",uC)&&0===i.childCount&&o.writer.rename(i,uC)}))}_addDefaultH1Conversion(t){t.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:C.low+1})}}var gC=n(6269),pC={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(gC.A,pC);gC.A.locals;class fC extends Nr{static get pluginName(){return"HeadingUI"}init(){const t=this.editor,e=t.t,n=function(t){const e=t.t,n={Paragraph:e("Paragraph"),"Heading 1":e("Heading 1"),"Heading 2":e("Heading 2"),"Heading 3":e("Heading 3"),"Heading 4":e("Heading 4"),"Heading 5":e("Heading 5"),"Heading 6":e("Heading 6")};return t.config.get("heading.options").map((t=>{const e=n[t.title];return e&&e!=t.title&&(t.title=e),t}))}(t),o=e("Choose heading"),i=e("Heading");t.ui.componentFactory.add("heading",(e=>{const r={},s=new Qi,a=t.commands.get("heading"),c=t.commands.get("paragraph"),l=[a];for(const t of n){const e={type:"button",model:new If({label:t.title,class:t.class,role:"menuitemradio",withText:!0})};"paragraph"===t.model?(e.model.bind("isOn").to(c,"value"),e.model.set("commandName","paragraph"),l.push(c)):(e.model.bind("isOn").to(a,"value",(e=>e===t.model)),e.model.set({commandName:"heading",commandValue:t.model})),s.add(e),r[t.model]=t.title}const d=Ug(e);return Jg(d,s,{ariaLabel:i,role:"menu"}),d.buttonView.set({ariaLabel:i,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:i}),d.extendTemplate({attributes:{class:["ck-heading-dropdown"]}}),d.bind("isEnabled").toMany(l,"isEnabled",((...t)=>t.some((t=>t)))),d.buttonView.bind("label").to(a,"value",c,"value",((t,e)=>{const n=e?"paragraph":t;return"boolean"==typeof n?o:r[n]?r[n]:o})),d.buttonView.bind("ariaLabel").to(a,"value",c,"value",((t,e)=>{const n=e?"paragraph":t;return"boolean"==typeof n?i:r[n]?`${r[n]}, ${i}`:i})),this.listenTo(d,"execute",(e=>{const{commandName:n,commandValue:o}=e.source;t.execute(n,o?{value:o}:void 0),t.editing.view.focus()})),d})),t.ui.componentFactory.add("menuBar:heading",(o=>{const i=new Pk(o),r=t.commands.get("heading"),s=t.commands.get("paragraph"),a=[r],c=new zk(o);i.set({class:"ck-heading-dropdown"}),c.set({ariaLabel:e("Heading"),role:"menu"}),i.buttonView.set({label:e("Heading")}),i.panelView.children.add(c);for(const e of n){const n=new dk(o,i),l=new Tm(o);n.children.add(l),c.items.add(n),l.set({label:e.title,role:"menuitemradio",class:e.class}),l.bind("ariaChecked").to(l,"isOn"),l.delegate("execute").to(i),l.on("execute",(()=>{const n="paragraph"===e.model?"paragraph":"heading";t.execute(n,{value:e.model}),t.editing.view.focus()})),"paragraph"===e.model?(l.bind("isOn").to(s,"value"),a.push(s)):l.bind("isOn").to(r,"value",(t=>t===e.model))}return i.bind("isEnabled").toMany(a,"isEnabled",((...t)=>t.some((t=>t)))),i}))}}class kC extends qr{refresh(){const t=this.editor.model,e=t.schema,n=t.document.selection;this.isEnabled=function(t,e,n){const o=function(t,e){const n=C_(t,e),o=n.start.parent;if(o.isEmpty&&!o.is("element","$root"))return o.parent;return o}(t,n);return e.checkChild(o,"horizontalLine")}(n,e,t)}execute(){const t=this.editor.model;t.change((e=>{const n=e.createElement("horizontalLine");t.insertObject(n,null,null,{setSelection:"after"})}))}}var bC=n(2626),wC={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(bC.A,wC);bC.A.locals;class _C extends Nr{static get pluginName(){return"HorizontalLineEditing"}init(){const t=this.editor,e=t.model.schema,n=t.t,o=t.conversion;e.register("horizontalLine",{inheritAllFrom:"$blockObject"}),o.for("dataDowncast").elementToElement({model:"horizontalLine",view:(t,{writer:e})=>e.createEmptyElement("hr")}),o.for("editingDowncast").elementToStructure({model:"horizontalLine",view:(t,{writer:e})=>{const o=n("Horizontal line"),i=e.createContainerElement("div",null,e.createEmptyElement("hr"));return e.addClass("ck-horizontal-line",i),e.setCustomProperty("hr",!0,i),function(t,e,n){return e.setCustomProperty("horizontalLine",!0,t),k_(t,e,{label:n})}(i,e,o)}}),o.for("upcast").elementToElement({view:"hr",model:"horizontalLine"}),t.commands.add("horizontalLine",new kC(t))}}class AC extends Nr{static get pluginName(){return"HorizontalLineUI"}init(){const t=this.editor;t.ui.componentFactory.add("horizontalLine",(()=>{const t=this._createButton(om);return t.set({tooltip:!0}),t})),t.ui.componentFactory.add("menuBar:horizontalLine",(()=>this._createButton(Tm)))}_createButton(t){const e=this.editor,n=e.locale,o=e.commands.get("horizontalLine"),i=new t(e.locale),r=n.t;return i.set({label:r("Horizontal line"),icon:Ju.horizontalLine}),i.bind("isEnabled").to(o,"isEnabled"),this.listenTo(i,"execute",(()=>{e.execute("horizontalLine"),e.editing.view.focus()})),i}}function CC(t){return t.createContainerElement("figure",{class:"image"},[t.createEmptyElement("img"),t.createSlot("children")])}function vC(t,e){const n=t.plugins.get("ImageUtils"),o=t.plugins.has("ImageInlineEditing")&&t.plugins.has("ImageBlockEditing");return t=>{if(!n.isInlineImageView(t))return null;if(!o)return i(t);return("block"==t.getStyle("display")||t.findAncestor(n.isBlockImageView)?"imageBlock":"imageInline")!==e?null:i(t)};function i(t){const e={name:!0};return t.hasAttribute("src")&&(e.attributes=["src"]),e}}function yC(t,e){const n=Xi(e.getSelectedBlocks());return!n||t.isObject(n)||n.isEmpty&&"listItem"!=n.name?"imageBlock":"imageInline"}function xC(t){return t&&t.endsWith("px")?parseInt(t):null}function EC(t){const e=xC(t.getStyle("width")),n=xC(t.getStyle("height"));return!(!e||!n)}const DC=/^(image|image-inline)$/;class BC extends Nr{_domEmitter=new(Lo());static get pluginName(){return"ImageUtils"}isImage(t){return this.isInlineImage(t)||this.isBlockImage(t)}isInlineImageView(t){return!!t&&t.is("element","img")}isBlockImageView(t){return!!t&&t.is("element","figure")&&t.hasClass("image")}insertImage(t={},e=null,n=null,o={}){const i=this.editor,r=i.model,s=r.document.selection,a=TC(i,e||s,n);t={...Object.fromEntries(s.getAttributes()),...t};for(const e in t)r.schema.checkAttribute(a,e)||delete t[e];return r.change((n=>{const{setImageSizes:i=!0}=o,s=n.createElement(a,t);return r.insertObject(s,e,null,{setSelection:"on",findOptimalPosition:e||"imageInline"==a?void 0:"auto"}),s.parent?(i&&this.setImageNaturalSizeAttributes(s),s):null}))}setImageNaturalSizeAttributes(t){const e=t.getAttribute("src");e&&(t.getAttribute("width")||t.getAttribute("height")||this.editor.model.change((n=>{const o=new Oo.window.Image;this._domEmitter.listenTo(o,"load",(()=>{t.getAttribute("width")||t.getAttribute("height")||this.editor.model.enqueueChange(n.batch,(e=>{e.setAttribute("width",o.naturalWidth,t),e.setAttribute("height",o.naturalHeight,t)})),this._domEmitter.stopListening(o,"load")})),o.src=e})))}getClosestSelectedImageWidget(t){const e=t.getFirstPosition();if(!e)return null;const n=t.getSelectedElement();if(n&&this.isImageWidget(n))return n;let o=e.parent;for(;o;){if(o.is("element")&&this.isImageWidget(o))return o;o=o.parent}return null}getClosestSelectedImageElement(t){const e=t.getSelectedElement();return this.isImage(e)?e:t.getFirstPosition().findAncestor("imageBlock")}getImageWidgetFromImageView(t){return t.findAncestor({classes:DC})}isImageAllowed(){const t=this.editor.model.document.selection;return function(t,e){const n=TC(t,e,null);if("imageBlock"==n){const n=function(t,e){const n=C_(t,e),o=n.start.parent;if(o.isEmpty&&!o.is("element","$root"))return o.parent;return o}(e,t.model);if(t.model.schema.checkChild(n,"imageBlock"))return!0}else if(t.model.schema.checkChild(e.focus,"imageInline"))return!0;return!1}(this.editor,t)&&function(t){return[...t.focus.getAncestors()].every((t=>!t.is("element","imageBlock")))}(t)}toImageWidget(t,e,n){e.setCustomProperty("image",!0,t);return k_(t,e,{label:()=>{const e=this.findViewImgElement(t).getAttribute("alt");return e?`${e} ${n}`:n}})}isImageWidget(t){return!!t.getCustomProperty("image")&&f_(t)}isBlockImage(t){return!!t&&t.is("element","imageBlock")}isInlineImage(t){return!!t&&t.is("element","imageInline")}findViewImgElement(t){if(this.isInlineImageView(t))return t;const e=this.editor.editing.view;for(const{item:n}of e.createRangeIn(t))if(this.isInlineImageView(n))return n}destroy(){return this._domEmitter.stopListening(),super.destroy()}}function TC(t,e,n){const o=t.model.schema,i=t.config.get("image.insert.type");return t.plugins.has("ImageBlockEditing")?t.plugins.has("ImageInlineEditing")?n||("inline"===i?"imageInline":"auto"!==i?"imageBlock":e.is("selection")?yC(o,e):o.checkChild(e,"imageInline")?"imageInline":"imageBlock"):"imageBlock":"imageInline"}new RegExp(String(/^(http(s)?:\/\/)?[\w-]+\.[\w.~:/[\]@!$&'()*+,;=%-]+/.source+/\.(jpg|jpeg|png|gif|ico|webp|JPG|JPEG|PNG|GIF|ICO|WEBP)/.source+/(\?[\w.~:/[\]@!$&'()*+,;=%-]*)?/.source+/(#[\w.~:/[\]@!$&'()*+,;=%-]*)?$/.source));class SC extends qr{refresh(){const t=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!t,this.isEnabled&&t.hasAttribute("alt")?this.value=t.getAttribute("alt"):this.value=!1}execute(t){const e=this.editor,n=e.plugins.get("ImageUtils"),o=e.model,i=n.getClosestSelectedImageElement(o.document.selection);o.change((e=>{e.setAttribute("alt",t.newValue,i)}))}}class IC extends Nr{static get requires(){return[BC]}static get pluginName(){return"ImageTextAlternativeEditing"}init(){this.editor.commands.add("imageTextAlternative",new SC(this.editor))}}var PC=n(4062),zC={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(PC.A,zC);PC.A.locals;var RC=n(2722),LC={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(RC.A,LC);RC.A.locals;class FC extends Lr{focusTracker;keystrokes;labeledInput;saveButtonView;cancelButtonView;_focusables;_focusCycler;constructor(t){super(t);const e=this.locale.t;this.focusTracker=new tr,this.keystrokes=new er,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(e("Save"),Ju.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(e("Cancel"),Ju.cancel,"ck-button-cancel","cancel"),this._focusables=new lr,this._focusCycler=new am({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]})}render(){super.render(),this.keystrokes.listenTo(this.element),Vr({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createButton(t,e,n,o){const i=new om(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),o&&i.delegate("execute").to(this,o),i}_createLabeledInputView(){const t=this.locale.t,e=new dg(this.locale,tp);return e.label=t("Text alternative"),e}}function MC(t){const e=t.editing.view,n=tf.defaultPositions,o=t.plugins.get("ImageUtils");return{target:e.domConverter.mapViewToDom(o.getClosestSelectedImageWidget(e.document.selection)),positions:[n.northArrowSouth,n.northArrowSouthWest,n.northArrowSouthEast,n.southArrowNorth,n.southArrowNorthWest,n.southArrowNorthEast,n.viewportStickyNorth]}}class VC extends Nr{_balloon;_form;static get requires(){return[Mf]}static get pluginName(){return"ImageTextAlternativeUI"}init(){this._createButton()}destroy(){super.destroy(),this._form&&this._form.destroy()}_createButton(){const t=this.editor,e=t.t;t.ui.componentFactory.add("imageTextAlternative",(n=>{const o=t.commands.get("imageTextAlternative"),i=new om(n);return i.set({label:e("Change image text alternative"),icon:Ju.textAlternative,tooltip:!0}),i.bind("isEnabled").to(o,"isEnabled"),i.bind("isOn").to(o,"value",(t=>!!t)),this.listenTo(i,"execute",(()=>{this._showForm()})),i}))}_createForm(){const t=this.editor,e=t.editing.view.document,n=t.plugins.get("ImageUtils");this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new(Mr(FC))(t.locale),this._form.render(),this.listenTo(this._form,"submit",(()=>{t.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),this._form.keystrokes.set("Esc",((t,e)=>{this._hideForm(!0),e()})),this.listenTo(t.ui,"update",(()=>{n.getClosestSelectedImageWidget(e.selection)?this._isVisible&&function(t){const e=t.plugins.get("ContextualBalloon");if(t.plugins.get("ImageUtils").getClosestSelectedImageWidget(t.editing.view.document.selection)){const n=MC(t);e.updatePosition(n)}}(t):this._hideForm(!0)})),Fr({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;this._form||this._createForm();const t=this.editor,e=t.commands.get("imageTextAlternative"),n=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:MC(t)}),n.fieldView.value=n.fieldView.element.value=e.value||"",this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(t=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),t&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}class OC extends Nr{static get requires(){return[IC,VC]}static get pluginName(){return"ImageTextAlternative"}}function NC(t,e){const n=(e,n,o)=>{if(!o.consumable.consume(n.item,e.name))return;const i=o.writer,r=o.mapper.toViewElement(n.item),s=t.findViewImgElement(r);null===n.attributeNewValue?(i.removeAttribute("srcset",s),i.removeAttribute("sizes",s)):n.attributeNewValue&&(i.setAttribute("srcset",n.attributeNewValue,s),i.setAttribute("sizes","100vw",s))};return t=>{t.on(`attribute:srcset:${e}`,n)}}function HC(t,e,n){const o=(e,n,o)=>{if(!o.consumable.consume(n.item,e.name))return;const i=o.writer,r=o.mapper.toViewElement(n.item),s=t.findViewImgElement(r);i.setAttribute(n.attributeKey,n.attributeNewValue||"",s)};return t=>{t.on(`attribute:${n}:${e}`,o)}}class qC extends rc{observe(t){this.listenTo(t,"load",((t,e)=>{const n=e.target;this.checkShouldIgnoreEventFromTarget(n)||"IMG"==n.tagName&&this._fireEvents(e)}),{useCapture:!0})}stopObserving(t){this.stopListening(t)}_fireEvents(t){this.isEnabled&&(this.document.fire("layoutChanged"),this.document.fire("imageLoaded",t))}}class jC extends qr{constructor(t){super(t);const e=t.config.get("image.insert.type");t.plugins.has("ImageBlockEditing")||"block"===e&&E("image-block-plugin-required"),t.plugins.has("ImageInlineEditing")||"inline"===e&&E("image-inline-plugin-required")}refresh(){const t=this.editor.plugins.get("ImageUtils");this.isEnabled=t.isImageAllowed()}execute(t){const e=Di(t.source),n=this.editor.model.document.selection,o=this.editor.plugins.get("ImageUtils"),i=Object.fromEntries(n.getAttributes());e.forEach(((t,e)=>{const r=n.getSelectedElement();if("string"==typeof t&&(t={src:t}),e&&r&&o.isImage(r)){const e=this.editor.model.createPositionAfter(r);o.insertImage({...t,...i},e)}else o.insertImage({...t,...i})}))}}class WC extends qr{constructor(t){super(t),this.decorate("cleanupImage")}refresh(){const t=this.editor.plugins.get("ImageUtils"),e=this.editor.model.document.selection.getSelectedElement();this.isEnabled=t.isImage(e),this.value=this.isEnabled?e.getAttribute("src"):null}execute(t){const e=this.editor.model.document.selection.getSelectedElement(),n=this.editor.plugins.get("ImageUtils");this.editor.model.change((o=>{o.setAttribute("src",t.source,e),this.cleanupImage(o,e),n.setImageNaturalSizeAttributes(e)}))}cleanupImage(t,e){t.removeAttribute("srcset",e),t.removeAttribute("sizes",e),t.removeAttribute("sources",e),t.removeAttribute("width",e),t.removeAttribute("height",e),t.removeAttribute("alt",e)}}class GC extends Nr{static get requires(){return[BC]}static get pluginName(){return"ImageEditing"}init(){const t=this.editor,e=t.conversion;t.editing.view.addObserver(qC),e.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:"srcset"});const n=new jC(t),o=new WC(t);t.commands.add("insertImage",n),t.commands.add("replaceImageSource",o),t.commands.add("imageInsert",n)}}class KC extends Nr{static get requires(){return[BC]}static get pluginName(){return"ImageSizeAttributes"}afterInit(){this._registerSchema(),this._registerConverters("imageBlock"),this._registerConverters("imageInline")}_registerSchema(){this.editor.plugins.has("ImageBlockEditing")&&this.editor.model.schema.extend("imageBlock",{allowAttributes:["width","height"]}),this.editor.plugins.has("ImageInlineEditing")&&this.editor.model.schema.extend("imageInline",{allowAttributes:["width","height"]})}_registerConverters(t){const e=this.editor,n=e.plugins.get("ImageUtils"),o="imageBlock"===t?"figure":"img";function i(e,o,i,r){e.on(`attribute:${o}:${t}`,((e,o,s)=>{if(!s.consumable.consume(o.item,e.name))return;const a=s.writer,c=s.mapper.toViewElement(o.item),l=n.findViewImgElement(c);if(null!==o.attributeNewValue?a.setAttribute(i,o.attributeNewValue,l):a.removeAttribute(i,l),o.item.hasAttribute("sources"))return;const d=o.item.hasAttribute("resizedWidth");if("imageInline"===t&&!d&&!r)return;const h=o.item.getAttribute("width"),u=o.item.getAttribute("height");h&&u&&a.setStyle("aspect-ratio",`${h}/${u}`,l)}))}e.conversion.for("upcast").attributeToAttribute({view:{name:o,styles:{width:/.+/}},model:{key:"width",value:t=>EC(t)?xC(t.getStyle("width")):null}}).attributeToAttribute({view:{name:o,key:"width"},model:"width"}).attributeToAttribute({view:{name:o,styles:{height:/.+/}},model:{key:"height",value:t=>EC(t)?xC(t.getStyle("height")):null}}).attributeToAttribute({view:{name:o,key:"height"},model:"height"}),e.conversion.for("editingDowncast").add((t=>{i(t,"width","width",!0),i(t,"height","height",!0)})),e.conversion.for("dataDowncast").add((t=>{i(t,"width","width",!1),i(t,"height","height",!1)}))}}class UC extends qr{_modelElementName;constructor(t,e){super(t),this._modelElementName=e}refresh(){const t=this.editor.plugins.get("ImageUtils"),e=t.getClosestSelectedImageElement(this.editor.model.document.selection);"imageBlock"===this._modelElementName?this.isEnabled=t.isInlineImage(e):this.isEnabled=t.isBlockImage(e)}execute(t={}){const e=this.editor,n=this.editor.model,o=e.plugins.get("ImageUtils"),i=o.getClosestSelectedImageElement(n.document.selection),r=Object.fromEntries(i.getAttributes());return r.src||r.uploadId?n.change((e=>{const{setImageSizes:s=!0}=t,a=Array.from(n.markers).filter((t=>t.getRange().containsItem(i))),c=o.insertImage(r,n.createSelection(i,"on"),this._modelElementName,{setImageSizes:s});if(!c)return null;const l=e.createRangeOn(c);for(const t of a){const n=t.getRange(),o="$graveyard"!=n.root.rootName?n.getJoined(l,!0):l;e.updateMarker(t,{range:o})}return{oldElement:i,newElement:c}})):null}}var $C=n(7378),ZC={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()($C.A,ZC);$C.A.locals;class JC extends Nr{static get requires(){return[BC]}static get pluginName(){return"ImagePlaceholder"}afterInit(){this._setupSchema(),this._setupConversion(),this._setupLoadListener()}_setupSchema(){const t=this.editor.model.schema;t.isRegistered("imageBlock")&&t.extend("imageBlock",{allowAttributes:["placeholder"]}),t.isRegistered("imageInline")&&t.extend("imageInline",{allowAttributes:["placeholder"]})}_setupConversion(){const t=this.editor,e=t.conversion,n=t.plugins.get("ImageUtils");e.for("editingDowncast").add((t=>{t.on("attribute:placeholder",((t,e,o)=>{if(!o.consumable.test(e.item,t.name))return;if(!e.item.is("element","imageBlock")&&!e.item.is("element","imageInline"))return;o.consumable.consume(e.item,t.name);const i=o.writer,r=o.mapper.toViewElement(e.item),s=n.findViewImgElement(r);e.attributeNewValue?(i.addClass("image_placeholder",s),i.setStyle("background-image",`url(${e.attributeNewValue})`,s),i.setCustomProperty("editingPipeline:doNotReuseOnce",!0,s)):(i.removeClass("image_placeholder",s),i.removeStyle("background-image",s))}))}))}_setupLoadListener(){const t=this.editor,e=t.model,n=t.editing,o=n.view,i=t.plugins.get("ImageUtils");o.addObserver(qC),this.listenTo(o.document,"imageLoaded",((t,r)=>{const s=o.domConverter.mapDomToView(r.target);if(!s)return;const a=i.getImageWidgetFromImageView(s);if(!a)return;const c=n.mapper.toModelElement(a);c&&c.hasAttribute("placeholder")&&e.enqueueChange({isUndoable:!1},(t=>{t.removeAttribute("placeholder",c)}))}))}}class YC extends Nr{static get requires(){return[GC,KC,BC,JC,c_]}static get pluginName(){return"ImageBlockEditing"}init(){const t=this.editor;t.model.schema.register("imageBlock",{inheritAllFrom:"$blockObject",allowAttributes:["alt","src","srcset"]}),this._setupConversion(),t.plugins.has("ImageInlineEditing")&&(t.commands.add("imageTypeBlock",new UC(this.editor,"imageBlock")),this._setupClipboardIntegration())}_setupConversion(){const t=this.editor,e=t.t,n=t.conversion,o=t.plugins.get("ImageUtils");n.for("dataDowncast").elementToStructure({model:"imageBlock",view:(t,{writer:e})=>CC(e)}),n.for("editingDowncast").elementToStructure({model:"imageBlock",view:(t,{writer:n})=>o.toImageWidget(CC(n),n,e("image widget"))}),n.for("downcast").add(HC(o,"imageBlock","src")).add(HC(o,"imageBlock","alt")).add(NC(o,"imageBlock")),n.for("upcast").elementToElement({view:vC(t,"imageBlock"),model:(t,{writer:e})=>e.createElement("imageBlock",t.hasAttribute("src")?{src:t.getAttribute("src")}:void 0)}).add(function(t){const e=(e,n,o)=>{if(!o.consumable.test(n.viewItem,{name:!0,classes:"image"}))return;const i=t.findViewImgElement(n.viewItem);if(!i||!o.consumable.test(i,{name:!0}))return;o.consumable.consume(n.viewItem,{name:!0,classes:"image"});const r=Xi(o.convertItem(i,n.modelCursor).modelRange.getItems());r?(o.convertChildren(n.viewItem,r),o.updateConversionResult(r,n)):o.consumable.revert(n.viewItem,{name:!0,classes:"image"})};return t=>{t.on("element:figure",e)}}(o))}_setupClipboardIntegration(){const t=this.editor,e=t.model,n=t.editing.view,o=t.plugins.get("ImageUtils"),i=t.plugins.get("ClipboardPipeline");this.listenTo(i,"inputTransformation",((i,r)=>{const s=Array.from(r.content.getChildren());let a;if(!s.every(o.isInlineImageView))return;a=r.targetRanges?t.editing.mapper.toModelRange(r.targetRanges[0]):e.document.selection.getFirstRange();const c=e.createSelection(a);if("imageBlock"===yC(e.schema,c)){const t=new ru(n.document),e=s.map((e=>t.createElement("figure",{class:"image"},e)));r.content=t.createDocumentFragment(e)}})),this.listenTo(i,"contentInsertion",((t,n)=>{"paste"===n.method&&e.change((t=>{const e=t.createRangeIn(n.content);for(const t of e.getItems())t.is("element","imageBlock")&&o.setImageNaturalSizeAttributes(t)}))}))}}var QC=n(3350),XC={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(QC.A,XC);QC.A.locals;class tv extends Lr{focusTracker;keystrokes;_focusables;_focusCycler;children;constructor(t,e=[]){super(t),this.focusTracker=new tr,this.keystrokes=new er,this._focusables=new lr,this.children=this.createCollection(),this._focusCycler=new am({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});for(const t of e)this.children.add(t),this._focusables.add(t),t instanceof $m&&this._focusables.addMany(t.children);if(this._focusables.length>1)for(const t of this._focusables)ev(t)&&(t.focusCycler.on("forwardCycle",(t=>{this._focusCycler.focusNext(),t.stop()})),t.focusCycler.on("backwardCycle",(t=>{this._focusCycler.focusPrevious(),t.stop()})));this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-insert-form"],tabindex:-1},children:this.children})}render(){super.render(),Vr({view:this});for(const t of this._focusables)this.focusTracker.add(t.element);this.keystrokes.listenTo(this.element);const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t),this.keystrokes.set("arrowleft",t),this.keystrokes.set("arrowup",t),this.keystrokes.set("arrowdown",t)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}}function ev(t){return"focusCycler"in t}class nv extends Nr{static get pluginName(){return"ImageInsertUI"}static get requires(){return[BC]}dropdownView;_integrations=new Map;constructor(t){super(t),t.config.define("image.insert.integrations",["upload","assetManager","url"])}init(){const t=this.editor,e=t.model.document.selection,n=t.plugins.get("ImageUtils");this.set("isImageSelected",!1),this.listenTo(t.model.document,"change",(()=>{this.isImageSelected=n.isImage(e.getSelectedElement())}));const o=t=>this._createToolbarComponent(t);t.ui.componentFactory.add("insertImage",o),t.ui.componentFactory.add("imageInsert",o)}registerIntegration({name:t,observable:e,buttonViewCreator:n,formViewCreator:o,requiresForm:i}){this._integrations.has(t)&&E("image-insert-integration-exists",{name:t}),this._integrations.set(t,{observable:e,buttonViewCreator:n,formViewCreator:o,requiresForm:!!i})}_createToolbarComponent(t){const e=this.editor,n=t.t,o=this._prepareIntegrations();if(!o.length)return null;let i;const r=o[0];if(1==o.length){if(!r.requiresForm)return r.buttonViewCreator(!0);i=r.buttonViewCreator(!0)}else{const e=r.buttonViewCreator(!1);i=new qg(t,e),i.tooltip=!0,i.bind("label").to(this,"isImageSelected",(t=>n(t?"Replace image":"Insert image")))}const s=this.dropdownView=Ug(t,i),a=o.map((({observable:t})=>"function"==typeof t?t():t));return s.bind("isEnabled").toMany(a,"isEnabled",((...t)=>t.some((t=>t)))),s.once("change:isOpen",(()=>{const t=o.map((({formViewCreator:t})=>t(1==o.length))),n=new tv(e.locale,t);s.panelView.children.add(n)})),s}_prepareIntegrations(){const t=this.editor.config.get("image.insert.integrations"),e=[];if(!t.length)return E("image-insert-integrations-not-specified"),e;for(const n of t)this._integrations.has(n)?e.push(this._integrations.get(n)):["upload","assetManager","url"].includes(n)||E("image-insert-unknown-integration",{item:n});return e.length||E("image-insert-integrations-not-registered"),e}}var ov=n(265),iv={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(ov.A,iv);ov.A.locals;class rv extends Nr{static get requires(){return[YC,O_,OC,nv]}static get pluginName(){return"ImageBlock"}}class sv extends Nr{static get requires(){return[GC,KC,BC,JC,c_]}static get pluginName(){return"ImageInlineEditing"}init(){const t=this.editor,e=t.model.schema;e.register("imageInline",{inheritAllFrom:"$inlineObject",allowAttributes:["alt","src","srcset"]}),e.addChildCheck(((t,e)=>{if(t.endsWith("caption")&&"imageInline"===e.name)return!1})),this._setupConversion(),t.plugins.has("ImageBlockEditing")&&(t.commands.add("imageTypeInline",new UC(this.editor,"imageInline")),this._setupClipboardIntegration())}_setupConversion(){const t=this.editor,e=t.t,n=t.conversion,o=t.plugins.get("ImageUtils");n.for("dataDowncast").elementToElement({model:"imageInline",view:(t,{writer:e})=>e.createEmptyElement("img")}),n.for("editingDowncast").elementToStructure({model:"imageInline",view:(t,{writer:n})=>o.toImageWidget(function(t){return t.createContainerElement("span",{class:"image-inline"},t.createEmptyElement("img"))}(n),n,e("image widget"))}),n.for("downcast").add(HC(o,"imageInline","src")).add(HC(o,"imageInline","alt")).add(NC(o,"imageInline")),n.for("upcast").elementToElement({view:vC(t,"imageInline"),model:(t,{writer:e})=>e.createElement("imageInline",t.hasAttribute("src")?{src:t.getAttribute("src")}:void 0)})}_setupClipboardIntegration(){const t=this.editor,e=t.model,n=t.editing.view,o=t.plugins.get("ImageUtils"),i=t.plugins.get("ClipboardPipeline");this.listenTo(i,"inputTransformation",((i,r)=>{const s=Array.from(r.content.getChildren());let a;if(!s.every(o.isBlockImageView))return;a=r.targetRanges?t.editing.mapper.toModelRange(r.targetRanges[0]):e.document.selection.getFirstRange();const c=e.createSelection(a);if("imageInline"===yC(e.schema,c)){const t=new ru(n.document),e=s.map((e=>1===e.childCount?(Array.from(e.getAttributes()).forEach((n=>t.setAttribute(...n,o.findViewImgElement(e)))),e.getChild(0)):e));r.content=t.createDocumentFragment(e)}})),this.listenTo(i,"contentInsertion",((t,n)=>{"paste"===n.method&&e.change((t=>{const e=t.createRangeIn(n.content);for(const t of e.getItems())t.is("element","imageInline")&&o.setImageNaturalSizeAttributes(t)}))}))}}class av extends Nr{static get requires(){return[sv,O_,OC,nv]}static get pluginName(){return"ImageInline"}}class cv extends Nr{static get pluginName(){return"ImageCaptionUtils"}static get requires(){return[BC]}getCaptionFromImageModelElement(t){for(const e of t.getChildren())if(e&&e.is("element","caption"))return e;return null}getCaptionFromModelSelection(t){const e=this.editor.plugins.get("ImageUtils"),n=t.getFirstPosition().findAncestor("caption");return n&&e.isBlockImage(n.parent)?n:null}matchImageCaptionViewElement(t){const e=this.editor.plugins.get("ImageUtils");return"figcaption"==t.name&&e.isBlockImageView(t.parent)?{name:!0}:null}}class lv extends qr{refresh(){const t=this.editor,e=t.plugins.get("ImageCaptionUtils"),n=t.plugins.get("ImageUtils");if(!t.plugins.has(YC))return this.isEnabled=!1,void(this.value=!1);const o=t.model.document.selection,i=o.getSelectedElement();if(!i){const t=e.getCaptionFromModelSelection(o);return this.isEnabled=!!t,void(this.value=!!t)}this.isEnabled=n.isImage(i),this.isEnabled?this.value=!!e.getCaptionFromImageModelElement(i):this.value=!1}execute(t={}){const{focusCaptionOnShow:e}=t;this.editor.model.change((t=>{this.value?this._hideImageCaption(t):this._showImageCaption(t,e)}))}_showImageCaption(t,e){const n=this.editor.model.document.selection,o=this.editor.plugins.get("ImageCaptionEditing"),i=this.editor.plugins.get("ImageUtils");let r=n.getSelectedElement();const s=o._getSavedCaption(r);i.isInlineImage(r)&&(this.editor.execute("imageTypeBlock"),r=n.getSelectedElement());const a=s||t.createElement("caption");t.append(a,r),e&&t.setSelection(a,"in")}_hideImageCaption(t){const e=this.editor,n=e.model.document.selection,o=e.plugins.get("ImageCaptionEditing"),i=e.plugins.get("ImageCaptionUtils");let r,s=n.getSelectedElement();s?r=i.getCaptionFromImageModelElement(s):(r=i.getCaptionFromModelSelection(n),s=r.parent),o._saveCaption(s,r),t.setSelection(s,"on"),t.remove(r)}}class dv extends Nr{static get requires(){return[BC,cv]}static get pluginName(){return"ImageCaptionEditing"}_savedCaptionsMap;constructor(t){super(t),this._savedCaptionsMap=new WeakMap}init(){const t=this.editor,e=t.model.schema;e.isRegistered("caption")?e.extend("caption",{allowIn:"imageBlock"}):e.register("caption",{allowIn:"imageBlock",allowContentOf:"$block",isLimit:!0}),t.commands.add("toggleImageCaption",new lv(this.editor)),this._setupConversion(),this._setupImageTypeCommandsIntegration(),this._registerCaptionReconversion()}_setupConversion(){const t=this.editor,e=t.editing.view,n=t.plugins.get("ImageUtils"),o=t.plugins.get("ImageCaptionUtils"),i=t.t;t.conversion.for("upcast").elementToElement({view:t=>o.matchImageCaptionViewElement(t),model:"caption"}),t.conversion.for("dataDowncast").elementToElement({model:"caption",view:(t,{writer:e})=>n.isBlockImage(t.parent)?e.createContainerElement("figcaption"):null}),t.conversion.for("editingDowncast").elementToElement({model:"caption",view:(t,{writer:o})=>{if(!n.isBlockImage(t.parent))return null;const r=o.createEditableElement("figcaption");o.setCustomProperty("imageCaption",!0,r),r.placeholder=i("Enter image caption"),Xr({view:e,element:r,keepOnFocus:!0});const s=t.parent.getAttribute("alt");return A_(r,o,{label:s?i("Caption for image: %0",[s]):i("Caption for the image")})}})}_setupImageTypeCommandsIntegration(){const t=this.editor,e=t.plugins.get("ImageUtils"),n=t.plugins.get("ImageCaptionUtils"),o=t.commands.get("imageTypeInline"),i=t.commands.get("imageTypeBlock"),r=t=>{if(!t.return)return;const{oldElement:o,newElement:i}=t.return;if(!o)return;if(e.isBlockImage(o)){const t=n.getCaptionFromImageModelElement(o);if(t)return void this._saveCaption(i,t)}const r=this._getSavedCaption(o);r&&this._saveCaption(i,r)};o&&this.listenTo(o,"execute",r,{priority:"low"}),i&&this.listenTo(i,"execute",r,{priority:"low"})}_getSavedCaption(t){const e=this._savedCaptionsMap.get(t);return e?cl.fromJSON(e):null}_saveCaption(t,e){this._savedCaptionsMap.set(t,e.toJSON())}_registerCaptionReconversion(){const t=this.editor,e=t.model,n=t.plugins.get("ImageUtils"),o=t.plugins.get("ImageCaptionUtils");e.document.on("change:data",(()=>{const i=e.document.differ.getChanges();for(const e of i){if("alt"!==e.attributeKey)continue;const i=e.range.start.nodeAfter;if(n.isBlockImage(i)){const e=o.getCaptionFromImageModelElement(i);if(!e)return;t.editing.reconvertItem(e)}}}))}}class hv extends Nr{static get requires(){return[cv]}static get pluginName(){return"ImageCaptionUI"}init(){const t=this.editor,e=t.editing.view,n=t.plugins.get("ImageCaptionUtils"),o=t.t;t.ui.componentFactory.add("toggleImageCaption",(i=>{const r=t.commands.get("toggleImageCaption"),s=new om(i);return s.set({icon:Ju.caption,tooltip:!0,isToggleable:!0}),s.bind("isOn","isEnabled").to(r,"value","isEnabled"),s.bind("label").to(r,"value",(t=>o(t?"Toggle caption off":"Toggle caption on"))),this.listenTo(s,"execute",(()=>{t.execute("toggleImageCaption",{focusCaptionOnShow:!0});const o=n.getCaptionFromModelSelection(t.model.document.selection);if(o){const n=t.editing.mapper.toViewElement(o);e.scrollToTheSelection(),e.change((t=>{t.addClass("image__caption_highlighted",n)}))}t.editing.view.focus()})),s}))}}var uv=n(5247),mv={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(uv.A,mv);uv.A.locals;var gv=n(2267),pv={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(gv.A,pv);gv.A.locals;var fv=n(7693),kv={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(fv.A,kv);fv.A.locals;var bv=n(1559),wv={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(bv.A,wv);bv.A.locals;const _v=function(t,e){return function(n,o){if(null==n)return n;if(!un(n))return t(n,o);for(var i=n.length,r=e?i:-1,s=Object(n);(e?r--:++r{e.setAttribute("resizedWidth",t.width,i),e.removeAttribute("resizedHeight",i),o.setImageNaturalSizeAttributes(i)}))}}class yv extends Nr{static get requires(){return[BC]}static get pluginName(){return"ImageResizeEditing"}constructor(t){super(t),t.config.define("image",{resizeUnit:"%",resizeOptions:[{name:"resizeImage:original",value:null,icon:"original"},{name:"resizeImage:custom",value:"custom",icon:"custom"},{name:"resizeImage:25",value:"25",icon:"small"},{name:"resizeImage:50",value:"50",icon:"medium"},{name:"resizeImage:75",value:"75",icon:"large"}]})}init(){const t=this.editor,e=new vv(t);this._registerConverters("imageBlock"),this._registerConverters("imageInline"),t.commands.add("resizeImage",e),t.commands.add("imageResize",e)}afterInit(){this._registerSchema()}_registerSchema(){this.editor.plugins.has("ImageBlockEditing")&&this.editor.model.schema.extend("imageBlock",{allowAttributes:["resizedWidth","resizedHeight"]}),this.editor.plugins.has("ImageInlineEditing")&&this.editor.model.schema.extend("imageInline",{allowAttributes:["resizedWidth","resizedHeight"]})}_registerConverters(t){const e=this.editor,n=e.plugins.get("ImageUtils");e.conversion.for("downcast").add((e=>e.on(`attribute:resizedWidth:${t}`,((t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=n.writer,i=n.mapper.toViewElement(e.item);null!==e.attributeNewValue?(o.setStyle("width",e.attributeNewValue,i),o.addClass("image_resized",i)):(o.removeStyle("width",i),o.removeClass("image_resized",i))})))),e.conversion.for("dataDowncast").attributeToAttribute({model:{name:t,key:"resizedHeight"},view:t=>({key:"style",value:{height:t}})}),e.conversion.for("editingDowncast").add((e=>e.on(`attribute:resizedHeight:${t}`,((e,o,i)=>{if(!i.consumable.consume(o.item,e.name))return;const r=i.writer,s=i.mapper.toViewElement(o.item),a="imageInline"===t?n.findViewImgElement(s):s;null!==o.attributeNewValue?r.setStyle("height",o.attributeNewValue,a):r.removeStyle("height",a)})))),e.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===t?"figure":"img",styles:{width:/.+/}},model:{key:"resizedWidth",value:t=>EC(t)?null:t.getStyle("width")}}),e.conversion.for("upcast").attributeToAttribute({view:{name:"imageBlock"===t?"figure":"img",styles:{height:/.+/}},model:{key:"resizedHeight",value:t=>EC(t)?null:t.getStyle("height")}})}}const xv={small:Ju.objectSizeSmall,medium:Ju.objectSizeMedium,large:Ju.objectSizeLarge,custom:Ju.objectSizeCustom,original:Ju.objectSizeFull};class Ev extends Nr{static get requires(){return[yv]}static get pluginName(){return"ImageResizeButtons"}_resizeUnit;constructor(t){super(t),this._resizeUnit=t.config.get("image.resizeUnit")}init(){const t=this.editor,e=t.config.get("image.resizeOptions"),n=t.commands.get("resizeImage");this.bind("isEnabled").to(n);for(const t of e)this._registerImageResizeButton(t);this._registerImageResizeDropdown(e)}_registerImageResizeButton(t){const e=this.editor,{name:n,value:o,icon:i}=t;e.ui.componentFactory.add(n,(n=>{const r=new om(n),s=e.commands.get("resizeImage"),a=this._getOptionLabelValue(t,!0);if(!xv[i])throw new x("imageresizebuttons-missing-icon",e,t);if(r.set({label:a,icon:xv[i],tooltip:a,isToggleable:!0}),r.bind("isEnabled").to(this),e.plugins.has("ImageCustomResizeUI")&&Dv(t)){const t=e.plugins.get("ImageCustomResizeUI");this.listenTo(r,"execute",(()=>{t._showForm(this._resizeUnit)}))}else{const t=o?o+this._resizeUnit:null;r.bind("isOn").to(s,"value",Bv(t)),this.listenTo(r,"execute",(()=>{e.execute("resizeImage",{width:t})}))}return r}))}_registerImageResizeDropdown(t){const e=this.editor,n=e.t,o=t.find((t=>!t.value)),i=i=>{const r=e.commands.get("resizeImage"),s=Ug(i,vg),a=s.buttonView,c=n("Resize image");return a.set({tooltip:c,commandValue:o.value,icon:xv.medium,isToggleable:!0,label:this._getOptionLabelValue(o),withText:!0,class:"ck-resize-image-button",ariaLabel:c,ariaLabelledBy:void 0}),a.bind("label").to(r,"value",(t=>t&&t.width?t.width:this._getOptionLabelValue(o))),s.bind("isEnabled").to(this),Jg(s,(()=>this._getResizeDropdownListItemDefinitions(t,r)),{ariaLabel:n("Image resize list"),role:"menu"}),this.listenTo(s,"execute",(t=>{"onClick"in t.source?t.source.onClick():(e.execute(t.source.commandName,{width:t.source.commandValue}),e.editing.view.focus())})),s};e.ui.componentFactory.add("resizeImage",i),e.ui.componentFactory.add("imageResize",i)}_getOptionLabelValue(t,e=!1){const n=this.editor.t;return t.label?t.label:e?Dv(t)?n("Custom image size"):t.value?n("Resize image to %0",t.value+this._resizeUnit):n("Resize image to the original size"):Dv(t)?n("Custom"):t.value?t.value+this._resizeUnit:n("Original")}_getResizeDropdownListItemDefinitions(t,e){const{editor:n}=this,o=new Qi,i=t.map((t=>Dv(t)?{...t,valueWithUnits:"custom"}:t.value?{...t,valueWithUnits:`${t.value}${this._resizeUnit}`}:{...t,valueWithUnits:null}));for(const t of i){let r=null;if(n.plugins.has("ImageCustomResizeUI")&&Dv(t)){const o=n.plugins.get("ImageCustomResizeUI");r={type:"button",model:new If({label:this._getOptionLabelValue(t),role:"menuitemradio",withText:!0,icon:null,onClick:()=>{o._showForm(this._resizeUnit)}})};const s=Cv(i,"valueWithUnits");r.model.bind("isOn").to(e,"value",Tv(s))}else r={type:"button",model:new If({commandName:"resizeImage",commandValue:t.valueWithUnits,label:this._getOptionLabelValue(t),role:"menuitemradio",withText:!0,icon:null})},r.model.bind("isOn").to(e,"value",Bv(t.valueWithUnits));r.model.bind("isEnabled").to(e,"isEnabled"),o.add(r)}return o}}function Dv(t){return"custom"===t.value}function Bv(t){return e=>null===t&&e===t||null!==e&&e.width===t}function Tv(t){return e=>!t.some((t=>Bv(t)(e)))}const Sv="image_resized";class Iv extends Nr{static get requires(){return[J_,BC]}static get pluginName(){return"ImageResizeHandles"}init(){const t=this.editor.commands.get("resizeImage");this.bind("isEnabled").to(t),this._setupResizerCreator()}_setupResizerCreator(){const t=this.editor,e=t.editing.view,n=t.plugins.get("ImageUtils");e.addObserver(qC),this.listenTo(e.document,"imageLoaded",((o,i)=>{if(!i.target.matches("figure.image.ck-widget > img,figure.image.ck-widget > picture > img,figure.image.ck-widget > a > img,figure.image.ck-widget > a > picture > img,span.image-inline.ck-widget > img,span.image-inline.ck-widget > picture > img"))return;const r=t.editing.view.domConverter,s=r.domToView(i.target),a=n.getImageWidgetFromImageView(s);let c=this.editor.plugins.get(J_).getResizerByViewElement(a);if(c)return void c.redraw();const l=t.editing.mapper,d=l.toModelElement(a);c=t.plugins.get(J_).attachTo({unit:t.config.get("image.resizeUnit"),modelElement:d,viewElement:a,editor:t,getHandleHost:t=>t.querySelector("img"),getResizeHost:()=>r.mapViewToDom(l.toViewElement(d)),isCentered:()=>"alignCenter"==d.getAttribute("imageStyle"),onCommit(n){e.change((t=>{t.removeClass(Sv,a)})),t.execute("resizeImage",{width:n})}}),c.on("updateSize",(()=>{a.hasClass(Sv)||e.change((t=>{t.addClass(Sv,a)}));const t="imageInline"===d.name?s:a;t.getStyle("height")&&e.change((e=>{e.removeStyle("height",t)}))})),c.bind("isEnabled").to(this)}))}}function Pv(t){if(!t)return null;const[,e,n]=t.trim().match(/([.,\d]+)(%|px)$/)||[],o=Number.parseFloat(e);return Number.isNaN(o)?null:{value:o,unit:n}}function zv(t,e,n){return"px"===n?{value:e.value,unit:"px"}:{value:e.value/t*100,unit:"%"}}function Rv(t){const{editing:e}=t,n=t.plugins.get("ImageUtils").getClosestSelectedImageElement(t.model.document.selection);if(!n)return null;const o=e.mapper.toViewElement(n);return{model:n,view:o,dom:e.view.domConverter.mapViewToDom(o)}}var Lv=n(4642),Fv={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Lv.A,Fv);Lv.A.locals;class Mv extends Lr{focusTracker;keystrokes;unit;labeledInput;saveButtonView;cancelButtonView;_focusables;_focusCycler;_validators;constructor(t,e,n){super(t);const o=this.locale.t;this.focusTracker=new tr,this.keystrokes=new er,this.unit=e,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(o("Save"),Ju.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(o("Cancel"),Ju.cancel,"ck-button-cancel","cancel"),this._focusables=new lr,this._validators=n,this._focusCycler=new am({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-custom-resize-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]})}render(){super.render(),this.keystrokes.listenTo(this.element),Vr({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)}))}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createButton(t,e,n,o){const i=new om(this.locale);return i.set({label:t,icon:e,tooltip:!0}),i.extendTemplate({attributes:{class:n}}),o&&i.delegate("execute").to(this,o),i}_createLabeledInputView(){const t=this.locale.t,e=new dg(this.locale,ep);return e.label=t("Resize image (in %0)",this.unit),e.fieldView.set({step:.1}),e}isValid(){this.resetFormStatus();for(const t of this._validators){const e=t(this);if(e)return this.labeledInput.errorText=e,!1}return!0}resetFormStatus(){this.labeledInput.errorText=null}get rawSize(){const{element:t}=this.labeledInput.fieldView;return t?t.value:null}get parsedSize(){const{rawSize:t}=this;if(null===t)return null;const e=Number.parseFloat(t);return Number.isNaN(e)?null:e}get sizeWithUnits(){const{parsedSize:t,unit:e}=this;return null===t?null:`${t}${e}`}}class Vv extends Nr{_balloon;_form;static get requires(){return[Mf]}static get pluginName(){return"ImageCustomResizeUI"}destroy(){super.destroy(),this._form&&this._form.destroy()}_createForm(t){const e=this.editor;this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new(Mr(Mv))(e.locale,t,function(t){const e=t.t;return[t=>""===t.rawSize.trim()?e("The value must not be empty."):null===t.parsedSize?e("The value should be a plain number."):void 0]}(e)),this._form.render(),this.listenTo(this._form,"submit",(()=>{this._form.isValid()&&(e.execute("resizeImage",{width:this._form.sizeWithUnits}),this._hideForm(!0))})),this.listenTo(this._form.labeledInput,"change:errorText",(()=>{e.ui.update()})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),this._form.keystrokes.set("Esc",((t,e)=>{this._hideForm(!0),e()})),Fr({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(t){if(this._isVisible)return;this._form||this._createForm(t);const e=this.editor,n=this._form.labeledInput;this._form.disableCssTransitions(),this._form.resetFormStatus(),this._isInBalloon||this._balloon.add({view:this._form,position:MC(e)});const o=function(t,e){const n=Rv(t);if(!n)return null;const o=Pv(n.model.getAttribute("resizedWidth")||null);return o?o.unit===e?o:zv(y_(n.dom),{unit:"px",value:new Ko(n.dom).width},e):null}(e,t),i=o?o.value.toFixed(1):"",r=function(t,e){const n=Rv(t);if(!n)return null;const o=y_(n.dom),i=Pv(window.getComputedStyle(n.dom).minWidth)||{value:1,unit:"px"};return{unit:e,lower:Math.max(.1,zv(o,i,e).value),upper:"px"===e?o:100}}(e,t);n.fieldView.value=n.fieldView.element.value=i,r&&Object.assign(n.fieldView,{min:r.lower.toFixed(1),max:Math.ceil(r.upper).toFixed(1)}),this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(t=!1){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),t&&this.editor.editing.view.focus())}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}var Ov=n(3469),Nv={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Ov.A,Nv);Ov.A.locals;class Hv extends qr{_defaultStyles;_styles;constructor(t,e){super(t),this._defaultStyles={imageBlock:!1,imageInline:!1},this._styles=new Map(e.map((t=>{if(t.isDefault)for(const e of t.modelElements)this._defaultStyles[e]=t.name;return[t.name,t]})))}refresh(){const t=this.editor.plugins.get("ImageUtils").getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!t,this.isEnabled?t.hasAttribute("imageStyle")?this.value=t.getAttribute("imageStyle"):this.value=this._defaultStyles[t.name]:this.value=!1}execute(t={}){const e=this.editor,n=e.model,o=e.plugins.get("ImageUtils");n.change((e=>{const i=t.value,{setImageSizes:r=!0}=t;let s=o.getClosestSelectedImageElement(n.document.selection);i&&this.shouldConvertImageType(i,s)&&(this.editor.execute(o.isBlockImage(s)?"imageTypeInline":"imageTypeBlock",{setImageSizes:r}),s=o.getClosestSelectedImageElement(n.document.selection)),!i||this._styles.get(i).isDefault?e.removeAttribute("imageStyle",s):e.setAttribute("imageStyle",i,s),r&&o.setImageNaturalSizeAttributes(s)}))}shouldConvertImageType(t,e){return!this._styles.get(t).modelElements.includes(e.name)}}const{objectFullWidth:qv,objectInline:jv,objectLeft:Wv,objectRight:Gv,objectCenter:Kv,objectBlockLeft:Uv,objectBlockRight:$v}=Ju,Zv={get inline(){return{name:"inline",title:"In line",icon:jv,modelElements:["imageInline"],isDefault:!0}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:Wv,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:Uv,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:Kv,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:Gv,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:$v,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:Kv,modelElements:["imageBlock"],isDefault:!0}},get side(){return{name:"side",title:"Side image",icon:Gv,modelElements:["imageBlock"],className:"image-style-side"}}},Jv={full:qv,left:Uv,right:$v,center:Kv,inlineLeft:Wv,inlineRight:Gv,inline:jv},Yv=[{name:"imageStyle:wrapText",title:"Wrap text",defaultItem:"imageStyle:alignLeft",items:["imageStyle:alignLeft","imageStyle:alignRight"]},{name:"imageStyle:breakText",title:"Break text",defaultItem:"imageStyle:block",items:["imageStyle:alignBlockLeft","imageStyle:block","imageStyle:alignBlockRight"]}];function Qv(t){E("image-style-configuration-definition-invalid",t)}const Xv={normalizeStyles:function(t){return(t.configuredStyles.options||[]).map((t=>function(t){t="string"==typeof t?Zv[t]?{...Zv[t]}:{name:t}:function(t,e){const n={...e};for(const o in t)Object.prototype.hasOwnProperty.call(e,o)||(n[o]=t[o]);return n}(Zv[t.name],t);"string"==typeof t.icon&&(t.icon=Jv[t.icon]||t.icon);return t}(t))).filter((e=>function(t,{isBlockPluginLoaded:e,isInlinePluginLoaded:n}){const{modelElements:o,name:i}=t;if(!(o&&o.length&&i))return Qv({style:t}),!1;{const i=[e?"imageBlock":null,n?"imageInline":null];if(!o.some((t=>i.includes(t))))return E("image-style-missing-dependency",{style:t,missingPlugins:o.map((t=>"imageBlock"===t?"ImageBlockEditing":"ImageInlineEditing"))}),!1}return!0}(e,t)))},getDefaultStylesConfiguration:function(t,e){return t&&e?{options:["inline","alignLeft","alignRight","alignCenter","alignBlockLeft","alignBlockRight","block","side"]}:t?{options:["block","side"]}:e?{options:["inline","alignLeft","alignRight"]}:{}},getDefaultDropdownDefinitions:function(t){return t.has("ImageBlockEditing")&&t.has("ImageInlineEditing")?[...Yv]:[]},warnInvalidStyle:Qv,DEFAULT_OPTIONS:Zv,DEFAULT_ICONS:Jv,DEFAULT_DROPDOWN_DEFINITIONS:Yv};function ty(t,e){for(const n of e)if(n.name===t)return n}class ey extends Nr{static get pluginName(){return"ImageStyleEditing"}static get requires(){return[BC]}normalizedStyles;init(){const{normalizeStyles:t,getDefaultStylesConfiguration:e}=Xv,n=this.editor,o=n.plugins.has("ImageBlockEditing"),i=n.plugins.has("ImageInlineEditing");n.config.define("image.styles",e(o,i)),this.normalizedStyles=t({configuredStyles:n.config.get("image.styles"),isBlockPluginLoaded:o,isInlinePluginLoaded:i}),this._setupConversion(o,i),this._setupPostFixer(),n.commands.add("imageStyle",new Hv(n,this.normalizedStyles))}_setupConversion(t,e){const n=this.editor,o=n.model.schema,i=(r=this.normalizedStyles,(t,e,n)=>{if(!n.consumable.consume(e.item,t.name))return;const o=ty(e.attributeNewValue,r),i=ty(e.attributeOldValue,r),s=n.mapper.toViewElement(e.item),a=n.writer;i&&a.removeClass(i.className,s),o&&a.addClass(o.className,s)});var r;const s=function(t){const e={imageInline:t.filter((t=>!t.isDefault&&t.modelElements.includes("imageInline"))),imageBlock:t.filter((t=>!t.isDefault&&t.modelElements.includes("imageBlock")))};return(t,n,o)=>{if(!n.modelRange)return;const i=n.viewItem,r=Xi(n.modelRange.getItems());if(r&&o.schema.checkAttribute(r,"imageStyle"))for(const t of e[r.name])o.consumable.consume(i,{classes:t.className})&&o.writer.setAttribute("imageStyle",t.name,r)}}(this.normalizedStyles);n.editing.downcastDispatcher.on("attribute:imageStyle",i),n.data.downcastDispatcher.on("attribute:imageStyle",i),t&&(o.extend("imageBlock",{allowAttributes:"imageStyle"}),n.data.upcastDispatcher.on("element:figure",s,{priority:"low"})),e&&(o.extend("imageInline",{allowAttributes:"imageStyle"}),n.data.upcastDispatcher.on("element:img",s,{priority:"low"}))}_setupPostFixer(){const t=this.editor,e=t.model.document,n=t.plugins.get(BC),o=new Map(this.normalizedStyles.map((t=>[t.name,t])));e.registerPostFixer((t=>{let i=!1;for(const r of e.differ.getChanges())if("insert"==r.type||"attribute"==r.type&&"imageStyle"==r.attributeKey){let e="insert"==r.type?r.position.nodeAfter:r.range.start.nodeAfter;if(e&&e.is("element","paragraph")&&e.childCount>0&&(e=e.getChild(0)),!n.isImage(e))continue;const s=e.getAttribute("imageStyle");if(!s)continue;const a=o.get(s);a&&a.modelElements.includes(e.name)||(t.removeAttribute("imageStyle",e),i=!0)}return i}))}}var ny=n(6386),oy={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(ny.A,oy);ny.A.locals;class iy extends Nr{static get requires(){return[ey]}static get pluginName(){return"ImageStyleUI"}get localizedDefaultStylesTitles(){const t=this.editor.t;return{"Wrap text":t("Wrap text"),"Break text":t("Break text"),"In line":t("In line"),"Full size image":t("Full size image"),"Side image":t("Side image"),"Left aligned image":t("Left aligned image"),"Centered image":t("Centered image"),"Right aligned image":t("Right aligned image")}}init(){const t=this.editor.plugins,e=this.editor.config.get("image.toolbar")||[],n=ry(t.get("ImageStyleEditing").normalizedStyles,this.localizedDefaultStylesTitles);for(const t of n)this._createButton(t);const o=ry([...e.filter(j),...Xv.getDefaultDropdownDefinitions(t)],this.localizedDefaultStylesTitles);for(const t of o)this._createDropdown(t,n)}_createDropdown(t,e){const n=this.editor.ui.componentFactory;n.add(t.name,(o=>{let i;const{defaultItem:r,items:s,title:a}=t,c=s.filter((t=>e.find((({name:e})=>sy(e)===t)))).map((t=>{const e=n.create(t);return t===r&&(i=e),e}));s.length!==c.length&&Xv.warnInvalidStyle({dropdown:t});const l=Ug(o,qg),d=l.buttonView,h=d.arrowView;return $g(l,c,{enableActiveItemFocusOnDropdownOpen:!0}),d.set({label:ay(a,i.label),class:null,tooltip:!0}),h.unbind("label"),h.set({label:a}),d.bind("icon").toMany(c,"isOn",((...t)=>{const e=t.findIndex(Li);return e<0?i.icon:c[e].icon})),d.bind("label").toMany(c,"isOn",((...t)=>{const e=t.findIndex(Li);return ay(a,e<0?i.label:c[e].label)})),d.bind("isOn").toMany(c,"isOn",((...t)=>t.some(Li))),d.bind("class").toMany(c,"isOn",((...t)=>t.some(Li)?"ck-splitbutton_flatten":void 0)),d.on("execute",(()=>{c.some((({isOn:t})=>t))?l.isOpen=!l.isOpen:i.fire("execute")})),l.bind("isEnabled").toMany(c,"isEnabled",((...t)=>t.some(Li))),this.listenTo(l,"execute",(()=>{this.editor.editing.view.focus()})),l}))}_createButton(t){const e=t.name;this.editor.ui.componentFactory.add(sy(e),(n=>{const o=this.editor.commands.get("imageStyle"),i=new om(n);return i.set({label:t.title,icon:t.icon,tooltip:!0,isToggleable:!0}),i.bind("isEnabled").to(o,"isEnabled"),i.bind("isOn").to(o,"value",(t=>t===e)),i.on("execute",this._executeCommand.bind(this,e)),i}))}_executeCommand(t){this.editor.execute("imageStyle",{value:t}),this.editor.editing.view.focus()}}function ry(t,e){for(const n of t)e[n.title]&&(n.title=e[n.title]);return t}function sy(t){return`imageStyle:${t}`}function ay(t,e){return(t?t+": ":"")+e}function cy(t){return t.map((t=>j(t)?t.name:t))}class ly extends Nr{static get pluginName(){return"IndentEditing"}init(){const t=this.editor;t.commands.add("indent",new Wr(t)),t.commands.add("outdent",new Wr(t))}}class dy extends Nr{static get pluginName(){return"IndentUI"}init(){const t=this.editor,e=t.locale,n=t.t,o="ltr"==e.uiLanguageDirection?Ju.indent:Ju.outdent,i="ltr"==e.uiLanguageDirection?Ju.outdent:Ju.indent;this._defineButton("indent",n("Increase indent"),o),this._defineButton("outdent",n("Decrease indent"),i)}_defineButton(t,e,n){const o=this.editor;o.ui.componentFactory.add(t,(()=>{const o=this._createButton(om,t,e,n);return o.set({tooltip:!0}),o})),o.ui.componentFactory.add("menuBar:"+t,(()=>this._createButton(Tm,t,e,n)))}_createButton(t,e,n,o){const i=this.editor,r=i.commands.get(e),s=new t(i.locale);return s.set({label:n,icon:o}),s.bind("isEnabled").to(r,"isEnabled"),this.listenTo(s,"execute",(()=>{i.execute(e),i.editing.view.focus()})),s}}class hy{_startElement;_referenceIndent;_isForward;_includeSelf;_sameAttributes;_sameIndent;_lowerIndent;_higherIndent;constructor(t,e){this._startElement=t,this._referenceIndent=t.getAttribute("listIndent"),this._isForward="forward"==e.direction,this._includeSelf=!!e.includeSelf,this._sameAttributes=Di(e.sameAttributes||[]),this._sameIndent=!!e.sameIndent,this._lowerIndent=!!e.lowerIndent,this._higherIndent=!!e.higherIndent}static first(t,e){return Xi(new this(t,e)[Symbol.iterator]())}*[Symbol.iterator](){const t=[];for(const{node:e}of uy(this._getStartNode(),this._isForward?"forward":"backward")){const n=e.getAttribute("listIndent");if(nthis._referenceIndent){if(!this._higherIndent)continue;if(!this._isForward){t.push(e);continue}}else{if(!this._sameIndent){if(this._higherIndent){t.length&&(yield*t,t.length=0);break}continue}if(this._sameAttributes.some((t=>e.getAttribute(t)!==this._startElement.getAttribute(t))))break}t.length&&(yield*t,t.length=0),yield e}}_getStartNode(){return this._includeSelf?this._startElement:this._isForward?this._startElement.nextSibling:this._startElement.previousSibling}}function*uy(t,e="forward"){const n="forward"==e,o=[];let i=null;for(;py(t);){let e=null;if(i){const n=t.getAttribute("listIndent"),r=i.getAttribute("listIndent");n>r?o[r]=i:nt.getAttribute("listItemId")!=e))}function By(t){return Array.from(t).filter((t=>"$graveyard"!==t.root.rootName)).sort(((t,e)=>t.index-e.index))}function Ty(t){const e=t.document.selection.getSelectedElement();return e&&t.schema.isObject(e)&&t.schema.isBlock(e)?e:null}function Sy(t,e){return e.checkChild(t.parent,"listItem")&&e.checkChild(t,"$text")&&!e.isObject(t)}function Iy(t){return"numbered"==t||"customNumbered"==t}function Py(t,e,n){return ky(e,{direction:"forward"}).pop().index>t.index?yy(t,e,n):[]}class zy extends qr{_direction;constructor(t,e){super(t),this._direction=e}refresh(){this.isEnabled=this._checkEnabled()}execute(){const t=this.editor.model,e=Ry(t.document.selection);t.change((t=>{const n=[];Dy(e)&&!wy(e[0])?("forward"==this._direction&&n.push(...xy(e,t)),n.push(...vy(e[0],t))):"forward"==this._direction?n.push(...xy(e,t,{expand:!0})):n.push(...function(t,e){const n=Ay(t=Di(t)),o=new Set,i=Math.min(...n.map((t=>t.getAttribute("listIndent")))),r=new Map;for(const t of n)r.set(t,hy.first(t,{lowerIndent:!0}));for(const t of n){if(o.has(t))continue;o.add(t);const n=t.getAttribute("listIndent")-1;if(n<0)Ey(t,e);else{if(t.getAttribute("listIndent")==i){const n=Py(t,r.get(t),e);for(const t of n)o.add(t);if(n.length)continue}e.setAttribute("listIndent",n,t)}}return By(o)}(e,t));for(const e of n){if(!e.hasAttribute("listType"))continue;const n=hy.first(e,{sameIndent:!0});n&&t.setAttribute("listType",n.getAttribute("listType"),e)}this._fireAfterExecute(n)}))}_fireAfterExecute(t){this.fire("afterExecute",By(new Set(t)))}_checkEnabled(){let t=Ry(this.editor.model.document.selection),e=t[0];if(!e)return!1;if("backward"==this._direction)return!0;if(Dy(t)&&!wy(t[0]))return!0;t=Ay(t),e=t[0];const n=hy.first(e,{sameIndent:!0});return!!n&&n.getAttribute("listType")==e.getAttribute("listType")}}function Ry(t){const e=Array.from(t.getSelectedBlocks()),n=e.findIndex((t=>!py(t)));return-1!=n&&(e.length=n),e}class Ly extends qr{type;_listWalkerOptions;constructor(t,e,n={}){super(t),this.type=e,this._listWalkerOptions=n.multiLevel?{higherIndent:!0,lowerIndent:!0,sameAttributes:[]}:void 0}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.document,o=Ty(e),i=Array.from(n.selection.getSelectedBlocks()).filter((t=>e.schema.checkAttribute(t,"listType")||Sy(t,e.schema))),r=void 0!==t.forceValue?!t.forceValue:this.value;e.change((s=>{if(r){const t=i[i.length-1],e=ky(t,{direction:"forward"}),n=[];e.length>1&&n.push(...vy(e[1],s)),n.push(...Ey(i,s)),n.push(...function(t,e){const n=[];let o=Number.POSITIVE_INFINITY;for(const{node:i}of uy(t.nextSibling,"forward")){const t=i.getAttribute("listIndent");if(0==t)break;t{const{firstElement:r,lastElement:s}=this._getMergeSubjectElements(n,t),a=r.getAttribute("listIndent")||0,c=s.getAttribute("listIndent"),l=s.getAttribute("listItemId");if(a!=c){const t=(d=s,Array.from(new hy(d,{direction:"forward",higherIndent:!0})));o.push(...xy([s,...t],i,{indentBy:a-c,expand:a{const e=vy(this._getStartBlock(),t);this._fireAfterExecute(e)}))}_fireAfterExecute(t){this.fire("afterExecute",By(new Set(t)))}_checkEnabled(){const t=this.editor.model.document.selection,e=this._getStartBlock();return t.isCollapsed&&py(e)&&!wy(e)}_getStartBlock(){const t=this.editor.model.document.selection.getFirstPosition().parent;return"before"==this._direction?t:t.nextSibling}}class Vy extends Nr{static get pluginName(){return"ListUtils"}expandListBlocksToCompleteList(t){return Cy(t)}isFirstBlockOfListItem(t){return wy(t)}isListItemBlock(t){return py(t)}expandListBlocksToCompleteItems(t,e={}){return Ay(t,e)}isNumberedListType(t){return Iy(t)}}function Oy(t){return t.is("element","ol")||t.is("element","ul")}function Ny(t){return t.is("element","li")}function Hy(t,e,n,o=Wy(n,e)){return t.createAttributeElement(jy(n),null,{priority:2*e/100-100,id:o})}function qy(t,e,n){return t.createAttributeElement("li",null,{priority:(2*e+1)/100-100,id:n})}function jy(t){return"numbered"==t||"customNumbered"==t?"ol":"ul"}function Wy(t,e){return`list-${t}-${e}`}function Gy(t,e){const n=t.nodeBefore;if(py(n)){let t=n;for(const{node:n}of uy(t,"backward"))if(t=n,e.has(t))return;e.set(n,t)}else{const n=t.nodeAfter;py(n)&&e.set(n,n)}}function Ky(){return(t,e,n)=>{const{writer:o,schema:i}=n;if(!e.modelRange)return;const r=Array.from(e.modelRange.getItems({shallow:!0})).filter((t=>i.checkAttribute(t,"listItemId")));if(!r.length)return;const s=gy.next(),a=function(t){let e=0,n=t.parent;for(;n;){if(Ny(n))e++;else{const t=n.previousSibling;t&&Ny(t)&&e++}n=n.parent}return e}(e.viewItem);let c=e.viewItem.parent&&e.viewItem.parent.is("element","ol")?"numbered":"bulleted";const l=r[0].getAttribute("listType");l&&(c=l);const d={listItemId:s,listIndent:a,listType:c};for(const t of r)t.hasAttribute("listItemId")||o.setAttributes(d,t);r.length>1&&r[1].getAttribute("listItemId")!=d.listItemId&&n.keepEmptyElement(r[0])}}function Uy(){return(t,e,n)=>{if(!n.consumable.test(e.viewItem,{name:!0}))return;const o=new ru(e.viewItem.document);for(const t of Array.from(e.viewItem.getChildren()))Ny(t)||Oy(t)||o.remove(t)}}function $y(t,e,n,{dataPipeline:o}={}){const i=function(t){return(e,n)=>{const o=[];for(const n of t)e.hasAttribute(n)&&o.push(`attribute:${n}`);return!!o.every((t=>!1!==n.test(e,t)))&&(o.forEach((t=>n.consume(e,t))),!0)}}(t);return(r,s,a)=>{const{writer:c,mapper:l,consumable:d}=a,h=s.item;if(!t.includes(s.attributeKey))return;if(!i(h,d))return;const u=function(t,e,n){const o=n.createRangeOn(t),i=e.toViewRange(o).getTrimmed();return i.end.nodeBefore}(h,l,n);Jy(u,c,l),function(t,e){let n=t.parent;for(;n.is("attributeElement")&&["ul","ol","li"].includes(n.name);){const o=n.parent;e.unwrap(e.createRangeOn(t),n),n=o}}(u,c);const m=function(t,e,n,o,{dataPipeline:i}){let r=o.createRangeOn(e);if(!wy(t))return r;for(const s of n){if("itemMarker"!=s.scope)continue;const n=s.createElement(o,t,{dataPipeline:i});if(!n)continue;if(o.setCustomProperty("listItemMarker",!0,n),s.canInjectMarkerIntoElement&&s.canInjectMarkerIntoElement(t)?o.insert(o.createPositionAt(e,0),n):(o.insert(r.start,n),r=o.createRange(o.createPositionBefore(n),o.createPositionAfter(e))),!s.createWrapperElement||!s.canWrapElement)continue;const a=s.createWrapperElement(o,t,{dataPipeline:i});o.setCustomProperty("listItemWrapper",!0,a),s.canWrapElement(t)?r=o.wrap(r,a):(r=o.wrap(o.createRangeOn(n),a),r=o.createRange(r.start,o.createPositionAfter(e)))}return r}(h,u,e,c,{dataPipeline:o});!function(t,e,n,o){if(!t.hasAttribute("listIndent"))return;const i=t.getAttribute("listIndent");let r=t;for(let t=i;t>=0;t--){const i=qy(o,t,r.getAttribute("listItemId")),s=Hy(o,t,r.getAttribute("listType"));for(const t of n)"list"!=t.scope&&"item"!=t.scope||!r.hasAttribute(t.attributeName)||t.setAttributeOnDowncast(o,r.getAttribute(t.attributeName),"list"==t.scope?s:i);if(e=o.wrap(e,i),e=o.wrap(e,s),0==t)break;if(r=hy.first(r,{lowerIndent:!0}),!r)break}}(h,m,e,c)}}function Zy(t,{dataPipeline:e}={}){return(n,{writer:o})=>{if(!Yy(n,t))return null;if(!e)return o.createContainerElement("span",{class:"ck-list-bogus-paragraph"});const i=o.createContainerElement("p");return o.setCustomProperty("dataPipeline:transparentRendering",!0,i),i}}function Jy(t,e,n){for(;t.parent.is("attributeElement")&&t.parent.getCustomProperty("listItemWrapper");)e.unwrap(e.createRangeOn(t),t.parent);const o=[];i(e.createPositionBefore(t).getWalker({direction:"backward"})),i(e.createRangeIn(t).getWalker());for(const t of o)e.remove(t);function i(t){for(const{item:e}of t){if(e.is("element")&&n.toModelElement(e))break;e.is("element")&&e.getCustomProperty("listItemMarker")&&o.push(e)}}}function Yy(t,e,n=fy(t)){if(!py(t))return!1;for(const n of t.getAttributeKeys())if(!n.startsWith("selection:")&&!e.includes(n))return!1;return n.length<2}var Qy=n(1232),Xy={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Qy.A,Xy);Qy.A.locals;var tx=n(6903),ex={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(tx.A,ex);tx.A.locals;const nx=["listType","listIndent","listItemId"];class ox extends Nr{_downcastStrategies=[];static get pluginName(){return"ListEditing"}static get requires(){return[Aw,Bb,Vy,c_]}constructor(t){super(t),t.config.define("list.multiBlock",!0)}init(){const t=this.editor,e=t.model,n=t.config.get("list.multiBlock");if(t.plugins.has("LegacyListEditing"))throw new x("list-feature-conflict",this,{conflictPlugin:"LegacyListEditing"});e.schema.register("$listItem",{allowAttributes:nx}),n?(e.schema.extend("$container",{allowAttributesOf:"$listItem"}),e.schema.extend("$block",{allowAttributesOf:"$listItem"}),e.schema.extend("$blockObject",{allowAttributesOf:"$listItem"})):e.schema.register("listItem",{inheritAllFrom:"$block",allowAttributesOf:"$listItem"});for(const t of nx)e.schema.setAttributeProperties(t,{copyOnReplace:!0});t.commands.add("numberedList",new Ly(t,"numbered")),t.commands.add("bulletedList",new Ly(t,"bulleted")),t.commands.add("customNumberedList",new Ly(t,"customNumbered",{multiLevel:!0})),t.commands.add("customBulletedList",new Ly(t,"customBulleted",{multiLevel:!0})),t.commands.add("indentList",new zy(t,"forward")),t.commands.add("outdentList",new zy(t,"backward")),t.commands.add("splitListItemBefore",new My(t,"before")),t.commands.add("splitListItemAfter",new My(t,"after")),n&&(t.commands.add("mergeListItemBackward",new Fy(t,"backward")),t.commands.add("mergeListItemForward",new Fy(t,"forward"))),this._setupDeleteIntegration(),this._setupEnterIntegration(),this._setupTabIntegration(),this._setupClipboardIntegration(),this._setupAccessibilityIntegration()}afterInit(){const t=this.editor.commands,e=t.get("indent"),n=t.get("outdent");e&&e.registerChildCommand(t.get("indentList"),{priority:"high"}),n&&n.registerChildCommand(t.get("outdentList"),{priority:"lowest"}),this._setupModelPostFixing(),this._setupConversion()}registerDowncastStrategy(t){this._downcastStrategies.push(t)}getListAttributeNames(){return[...nx,...this._downcastStrategies.map((t=>t.attributeName))]}_setupDeleteIntegration(){const t=this.editor,e=t.commands.get("mergeListItemBackward"),n=t.commands.get("mergeListItemForward");this.listenTo(t.editing.view.document,"delete",((o,i)=>{const r=t.model.document.selection;Ty(t.model)||t.model.change((()=>{const s=r.getFirstPosition();if(r.isCollapsed&&"backward"==i.direction){if(!s.isAtStart)return;const n=s.parent;if(!py(n))return;if(hy.first(n,{sameAttributes:"listType",sameIndent:!0})||0!==n.getAttribute("listIndent")){if(!e||!e.isEnabled)return;e.execute({shouldMergeOnBlocksContentLevel:ix(t.model,"backward")})}else _y(n)||t.execute("splitListItemAfter"),t.execute("outdentList");i.preventDefault(),o.stop()}else{if(r.isCollapsed&&!r.getLastPosition().isAtEnd)return;if(!n||!n.isEnabled)return;n.execute({shouldMergeOnBlocksContentLevel:ix(t.model,"forward")}),i.preventDefault(),o.stop()}}))}),{context:"li"})}_setupEnterIntegration(){const t=this.editor,e=t.model,n=t.commands,o=n.get("enter");this.listenTo(t.editing.view.document,"enter",((n,o)=>{const i=e.document,r=i.selection.getFirstPosition().parent;if(i.selection.isCollapsed&&py(r)&&r.isEmpty&&!o.isSoft){const e=wy(r),i=_y(r);e&&i?(t.execute("outdentList"),o.preventDefault(),n.stop()):e&&!i?(t.execute("splitListItemAfter"),o.preventDefault(),n.stop()):i&&(t.execute("splitListItemBefore"),o.preventDefault(),n.stop())}}),{context:"li"}),this.listenTo(o,"afterExecute",(()=>{const e=n.get("splitListItemBefore");if(e.refresh(),!e.isEnabled)return;2===fy(t.model.document.selection.getLastPosition().parent).length&&e.execute()}))}_setupTabIntegration(){const t=this.editor;this.listenTo(t.editing.view.document,"tab",((e,n)=>{const o=n.shiftKey?"outdentList":"indentList";this.editor.commands.get(o).isEnabled&&(t.execute(o),n.stopPropagation(),n.preventDefault(),e.stop())}),{context:"li"})}_setupConversion(){const t=this.editor,e=t.model,n=this.getListAttributeNames(),o=t.config.get("list.multiBlock"),i=o?"paragraph":"listItem";t.conversion.for("upcast").elementToElement({view:"li",model:(t,{writer:e})=>e.createElement(i,{listType:""})}).elementToElement({view:"p",model:(t,{writer:e})=>t.parent&&t.parent.is("element","li")?e.createElement(i,{listType:""}):null,converterPriority:"high"}).add((t=>{t.on("element:li",Ky()),t.on("element:ul",Uy(),{priority:"high"}),t.on("element:ol",Uy(),{priority:"high"})})),o||t.conversion.for("downcast").elementToElement({model:"listItem",view:"p"}),t.conversion.for("editingDowncast").elementToElement({model:i,view:Zy(n),converterPriority:"high"}).add((t=>{var o;t.on("attribute",$y(n,this._downcastStrategies,e)),t.on("remove",(o=e.schema,(t,e,n)=>{const{writer:i,mapper:r}=n,s=t.name.split(":")[1];if(!o.checkAttribute(s,"listItemId"))return;const a=r.toViewPosition(e.position),c=e.position.getShiftedBy(e.length),l=r.toViewPosition(c,{isPhantom:!0}),d=i.createRange(a,l).getTrimmed().end.nodeBefore;d&&Jy(d,i,r)}))})),t.conversion.for("dataDowncast").elementToElement({model:i,view:Zy(n,{dataPipeline:!0}),converterPriority:"high"}).add((t=>{t.on("attribute",$y(n,this._downcastStrategies,e,{dataPipeline:!0}))}));const r=(s=this._downcastStrategies,a=t.editing.view,(t,e)=>{if(e.modelPosition.offset>0)return;const n=e.modelPosition.parent;if(!py(n))return;if(!s.some((t=>"itemMarker"==t.scope&&t.canInjectMarkerIntoElement&&t.canInjectMarkerIntoElement(n))))return;const o=e.mapper.toViewElement(n),i=a.createRangeIn(o),r=i.getWalker();let c=i.start;for(const{item:t}of r){if(t.is("element")&&e.mapper.toModelElement(t)||t.is("$textProxy"))break;t.is("element")&&t.getCustomProperty("listItemMarker")&&(c=a.createPositionAfter(t),r.skip((({previousPosition:t})=>!t.isEqual(c))))}e.viewPosition=c});var s,a;t.editing.mapper.on("modelToViewPosition",r),t.data.mapper.on("modelToViewPosition",r),this.listenTo(e.document,"change:data",function(t,e,n,o){return()=>{const o=t.document.differ.getChanges(),s=[],a=new Map,c=new Set;for(const t of o)if("insert"==t.type&&"$text"!=t.name)Gy(t.position,a),t.attributes.has("listItemId")?c.add(t.position.nodeAfter):Gy(t.position.getShiftedBy(t.length),a);else if("remove"==t.type&&t.attributes.has("listItemId"))Gy(t.position,a);else if("attribute"==t.type){const e=t.range.start.nodeAfter;n.includes(t.attributeKey)?(Gy(t.range.start,a),null===t.attributeNewValue?(Gy(t.range.start.getShiftedBy(1),a),r(e)&&s.push(e)):c.add(e)):py(e)&&r(e)&&s.push(e)}for(const t of a.values())s.push(...i(t,c));for(const t of new Set(s))e.reconvertItem(t)};function i(t,e){const o=[],i=new Set,a=[];for(const{node:c,previous:l}of uy(t,"forward")){if(i.has(c))continue;const t=c.getAttribute("listIndent");l&&tn.includes(t))));const d=ky(c,{direction:"forward"});for(const t of d)i.add(t),(r(t,d)||s(t,a,e))&&o.push(t)}return o}function r(t,i){const r=e.mapper.toViewElement(t);if(!r)return!1;if(o.fire("checkElement",{modelElement:t,viewElement:r}))return!0;if(!t.is("element","paragraph")&&!t.is("element","listItem"))return!1;const s=Yy(t,n,i);return!(!s||!r.is("element","p"))||!(s||!r.is("element","span"))}function s(t,n,i){if(i.has(t))return!1;const r=e.mapper.toViewElement(t);let s=n.length-1;for(let t=r.parent;!t.is("editableElement");t=t.parent){const e=Ny(t),i=Oy(t);if(!i&&!e)continue;const r="checkAttributes:"+(e?"item":"list");if(o.fire(r,{viewElement:t,modelAttributes:n[s]}))break;if(i&&(s--,s<0))return!1}return!0}}(e,t.editing,n,this),{priority:"high"}),this.on("checkAttributes:item",((t,{viewElement:e,modelAttributes:n})=>{e.id!=n.listItemId&&(t.return=!0,t.stop())})),this.on("checkAttributes:list",((t,{viewElement:e,modelAttributes:n})=>{e.name==jy(n.listType)&&e.id==Wy(n.listType,n.listIndent)||(t.return=!0,t.stop())}))}_setupModelPostFixing(){const t=this.editor.model,e=this.getListAttributeNames();t.document.registerPostFixer((n=>function(t,e,n,o){const i=t.document.differ.getChanges(),r=new Map,s=o.editor.config.get("list.multiBlock");let a=!1;for(const o of i){if("insert"==o.type&&"$text"!=o.name){const i=o.position.nodeAfter;if(!t.schema.checkAttribute(i,"listItemId"))for(const t of Array.from(i.getAttributeKeys()))n.includes(t)&&(e.removeAttribute(t,i),a=!0);Gy(o.position,r),o.attributes.has("listItemId")||Gy(o.position.getShiftedBy(o.length),r);for(const{item:e,previousPosition:n}of t.createRangeIn(i))py(e)&&Gy(n,r)}else"remove"==o.type?Gy(o.position,r):"attribute"==o.type&&n.includes(o.attributeKey)&&(Gy(o.range.start,r),null===o.attributeNewValue&&Gy(o.range.start.getShiftedBy(1),r));if(!s&&"attribute"==o.type&&nx.includes(o.attributeKey)){const t=o.range.start.nodeAfter;null===o.attributeNewValue&&t&&t.is("element","listItem")?(e.rename(t,"paragraph"),a=!0):null===o.attributeOldValue&&t&&t.is("element")&&"listItem"!=t.name&&(e.rename(t,"listItem"),a=!0)}}const c=new Set;for(const t of r.values())a=o.fire("postFixer",{listNodes:new my(t),listHead:t,writer:e,seenIds:c})||a;return a}(t,n,e,this))),this.on("postFixer",((t,{listNodes:e,writer:n})=>{t.return=function(t,e){let n=0,o=-1,i=null,r=!1;for(const{node:s}of t){const t=s.getAttribute("listIndent");if(t>n){let a;null===i?(i=t-n,a=n):(i>t&&(i=t),a=t-i),a>o+1&&(a=o+1),e.setAttribute("listIndent",a,s),r=!0,o=a}else i=null,n=t+1,o=t}return r}(e,n)||t.return}),{priority:"high"}),this.on("postFixer",((t,{listNodes:e,writer:n,seenIds:o})=>{t.return=function(t,e,n){const o=new Set;let i=!1;for(const{node:r}of t){if(o.has(r))continue;let t=r.getAttribute("listType"),s=r.getAttribute("listItemId");if(e.has(s)&&(s=gy.next()),e.add(s),r.is("element","listItem"))r.getAttribute("listItemId")!=s&&(n.setAttribute("listItemId",s,r),i=!0);else for(const e of ky(r,{direction:"forward"}))o.add(e),e.getAttribute("listType")!=t&&(s=gy.next(),t=e.getAttribute("listType")),e.getAttribute("listItemId")!=s&&(n.setAttribute("listItemId",s,e),i=!0)}return i}(e,o,n)||t.return}),{priority:"high"})}_setupClipboardIntegration(){const t=this.editor.model,e=this.editor.plugins.get("ClipboardPipeline");this.listenTo(t,"insertContent",function(t){return(e,[n,o])=>{const i=n.is("documentFragment")?Array.from(n.getChildren()):[n];if(!i.length)return;const r=(o?t.createSelection(o):t.document.selection).getFirstPosition();let s;if(py(r.parent))s=r.parent;else{if(!py(r.nodeBefore))return;s=r.nodeBefore}t.change((t=>{const e=s.getAttribute("listType"),n=s.getAttribute("listIndent"),o=i[0].getAttribute("listIndent")||0,r=Math.max(n-o,0);for(const n of i){const o=py(n);s.is("element","listItem")&&n.is("element","paragraph")&&t.rename(n,"listItem"),t.setAttributes({listIndent:(o?n.getAttribute("listIndent"):0)+r,listItemId:o?n.getAttribute("listItemId"):gy.next(),listType:e},n)}}))}}(t),{priority:"high"}),this.listenTo(e,"outputTransformation",((e,n)=>{t.change((t=>{const e=Array.from(n.content.getChildren()),o=e[e.length-1];if(e.length>1&&o.is("element")&&o.isEmpty){e.slice(0,-1).every(py)&&t.remove(o)}if("copy"==n.method||"cut"==n.method){const e=Array.from(n.content.getChildren());Dy(e)&&Ey(e,t)}}))}))}_setupAccessibilityIntegration(){const t=this.editor,e=t.t;t.accessibility.addKeystrokeInfoGroup({id:"list",label:e("Keystrokes that can be used in a list"),keystrokes:[{label:e("Increase list item indent"),keystroke:"Tab"},{label:e("Decrease list item indent"),keystroke:"Shift+Tab"}]})}}function ix(t,e){const n=t.document.selection;if(!n.isCollapsed)return!Ty(t);if("forward"===e)return!0;const o=n.getFirstPosition().parent,i=o.previousSibling;return!t.schema.isObject(i)&&(!!i.isEmpty||Dy([o,i]))}function rx(t,e,n,o){t.ui.componentFactory.add(e,(()=>{const i=sx(om,t,e,n,o);return i.set({tooltip:!0,isToggleable:!0}),i})),t.ui.componentFactory.add(`menuBar:${e}`,(()=>sx(Tm,t,e,n,o)))}function sx(t,e,n,o,i){const r=e.commands.get(n),s=new t(e.locale);return s.set({label:o,icon:i}),s.bind("isOn","isEnabled").to(r,"value","isEnabled"),s.on("execute",(()=>{e.execute(n),e.editing.view.focus()})),s}class ax extends Nr{static get pluginName(){return"ListUI"}init(){const t=this.editor.t;this.editor.ui.componentFactory.has("numberedList")||rx(this.editor,"numberedList",t("Numbered List"),Ju.numberedList),this.editor.ui.componentFactory.has("bulletedList")||rx(this.editor,"bulletedList",t("Bulleted List"),Ju.bulletedList)}}class cx extends Nr{static get requires(){return[ox,ax]}static get pluginName(){return"List"}}class lx extends qr{refresh(){const t=this._getValue();this.value=t,this.isEnabled=null!=t}execute({startIndex:t=1}={}){const e=this.editor.model,n=e.document;let o=Array.from(n.selection.getSelectedBlocks()).filter((t=>py(t)&&Iy(t.getAttribute("listType"))));o=Cy(o),e.change((e=>{for(const n of o)e.setAttribute("listStart",t>=0?t:1,n)}))}_getValue(){const t=Xi(this.editor.model.document.selection.getSelectedBlocks());return t&&py(t)&&Iy(t.getAttribute("listType"))?t.getAttribute("listStart"):null}}const dx={},hx={},ux={},mx=[{listStyle:"disc",typeAttribute:"disc",listType:"bulleted"},{listStyle:"circle",typeAttribute:"circle",listType:"bulleted"},{listStyle:"square",typeAttribute:"square",listType:"bulleted"},{listStyle:"decimal",typeAttribute:"1",listType:"numbered"},{listStyle:"decimal-leading-zero",typeAttribute:null,listType:"numbered"},{listStyle:"lower-roman",typeAttribute:"i",listType:"numbered"},{listStyle:"upper-roman",typeAttribute:"I",listType:"numbered"},{listStyle:"lower-alpha",typeAttribute:"a",listType:"numbered"},{listStyle:"upper-alpha",typeAttribute:"A",listType:"numbered"},{listStyle:"lower-latin",typeAttribute:"a",listType:"numbered"},{listStyle:"upper-latin",typeAttribute:"A",listType:"numbered"}];for(const{listStyle:t,typeAttribute:e,listType:n}of mx)dx[t]=n,hx[t]=e,e&&(ux[e]=t);function gx(){return mx.map((t=>t.listStyle))}function px(t){return dx[t]||null}function fx(t){return ux[t]||null}function kx(t){return hx[t]||null}class bx extends qr{defaultType;_supportedTypes;constructor(t,e,n){super(t),this.defaultType=e,this._supportedTypes=n}refresh(){this.value=this._getValue(),this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model,n=e.document;e.change((e=>{this._tryToConvertItemsToList(t);let o=Array.from(n.selection.getSelectedBlocks()).filter((t=>t.hasAttribute("listType")));if(o.length){o=Cy(o);for(const n of o)e.setAttribute("listStyle",t.type||this.defaultType,n)}}))}isStyleTypeSupported(t){return!this._supportedTypes||this._supportedTypes.includes(t)}_getValue(){const t=Xi(this.editor.model.document.selection.getSelectedBlocks());return py(t)?t.getAttribute("listStyle"):null}_checkEnabled(){const t=this.editor,e=t.commands.get("numberedList"),n=t.commands.get("bulletedList");return e.isEnabled||n.isEnabled}_tryToConvertItemsToList(t){if(!t.type)return;const e=px(t.type);if(!e)return;const n=this.editor,o=`${e}List`;n.commands.get(o).value||n.execute(o)}}class wx extends qr{refresh(){const t=this._getValue();this.value=t,this.isEnabled=null!=t}execute(t={}){const e=this.editor.model,n=e.document;let o=Array.from(n.selection.getSelectedBlocks()).filter((t=>py(t)&&"numbered"==t.getAttribute("listType")));o=Cy(o),e.change((e=>{for(const n of o)e.setAttribute("listReversed",!!t.reversed,n)}))}_getValue(){const t=Xi(this.editor.model.document.selection.getSelectedBlocks());return py(t)&&"numbered"==t.getAttribute("listType")?t.getAttribute("listReversed"):null}}function _x(t){return(e,n,o)=>{const{writer:i,schema:r,consumable:s}=o;if(!1===s.test(n.viewItem,t.viewConsumables))return;n.modelRange||Object.assign(n,o.convertChildren(n.viewItem,n.modelCursor));let a=!1;for(const e of n.modelRange.getItems({shallow:!0}))r.checkAttribute(e,t.attributeName)&&t.appliesToListItem(e)&&(e.hasAttribute(t.attributeName)||(i.setAttribute(t.attributeName,t.getAttributeOnUpcast(n.viewItem),e),a=!0));a&&s.consume(n.viewItem,t.viewConsumables)}}class Ax extends Nr{static get pluginName(){return"ListPropertiesUtils"}getAllSupportedStyleTypes(){return gx()}getListTypeFromListStyleType(t){return px(t)}getListStyleTypeFromTypeAttribute(t){return fx(t)}getTypeAttributeFromListStyleType(t){return kx(t)}}const Cx="default";class vx extends Nr{static get requires(){return[ox,Ax]}static get pluginName(){return"ListPropertiesEditing"}constructor(t){super(t),t.config.define("list.properties",{styles:!0,startIndex:!1,reversed:!1})}init(){const t=this.editor,e=t.model,n=t.plugins.get(ox),o=function(t){const e=[];if(t.styles){const n="object"==typeof t.styles&&t.styles.useAttribute;e.push({attributeName:"listStyle",defaultValue:Cx,viewConsumables:{styles:"list-style-type"},addCommand(t){let e=gx();n&&(e=e.filter((t=>!!kx(t)))),t.commands.add("listStyle",new bx(t,Cx,e))},appliesToListItem:t=>"numbered"==t.getAttribute("listType")||"bulleted"==t.getAttribute("listType"),hasValidAttribute(t){if(!this.appliesToListItem(t))return!t.hasAttribute("listStyle");if(!t.hasAttribute("listStyle"))return!1;const e=t.getAttribute("listStyle");return e==Cx||px(e)==t.getAttribute("listType")},setAttributeOnDowncast(t,e,o){if(e&&e!==Cx){if(!n)return void t.setStyle("list-style-type",e,o);{const n=kx(e);if(n)return void t.setAttribute("type",n,o)}}t.removeStyle("list-style-type",o),t.removeAttribute("type",o)},getAttributeOnUpcast(t){const e=t.getStyle("list-style-type");if(e)return e;const n=t.getAttribute("type");return n?fx(n):Cx}})}t.reversed&&e.push({attributeName:"listReversed",defaultValue:!1,viewConsumables:{attributes:"reversed"},addCommand(t){t.commands.add("listReversed",new wx(t))},appliesToListItem:t=>"numbered"==t.getAttribute("listType"),hasValidAttribute(t){return this.appliesToListItem(t)==t.hasAttribute("listReversed")},setAttributeOnDowncast(t,e,n){e?t.setAttribute("reversed","reversed",n):t.removeAttribute("reversed",n)},getAttributeOnUpcast:t=>t.hasAttribute("reversed")});t.startIndex&&e.push({attributeName:"listStart",defaultValue:1,viewConsumables:{attributes:"start"},addCommand(t){t.commands.add("listStart",new lx(t))},appliesToListItem:t=>Iy(t.getAttribute("listType")),hasValidAttribute(t){return this.appliesToListItem(t)==t.hasAttribute("listStart")},setAttributeOnDowncast(t,e,n){0==e||e>1?t.setAttribute("start",e,n):t.removeAttribute("start",n)},getAttributeOnUpcast(t){const e=t.getAttribute("start");return e>=0?e:1}});return e}(t.config.get("list.properties"));for(const i of o)i.addCommand(t),e.schema.extend("$listItem",{allowAttributes:i.attributeName}),n.registerDowncastStrategy({scope:"list",attributeName:i.attributeName,setAttributeOnDowncast(t,e,n){i.setAttributeOnDowncast(t,e,n)}});t.conversion.for("upcast").add((t=>{for(const e of o)t.on("element:ol",_x(e)),t.on("element:ul",_x(e))})),n.on("checkAttributes:list",((t,{viewElement:e,modelAttributes:n})=>{for(const i of o)i.getAttributeOnUpcast(e)!=n[i.attributeName]&&(t.return=!0,t.stop())})),this.listenTo(t.commands.get("indentList"),"afterExecute",((t,n)=>{e.change((t=>{for(const e of n)for(const n of o)n.appliesToListItem(e)&&t.setAttribute(n.attributeName,n.defaultValue,e)}))})),n.on("postFixer",((t,{listNodes:e,writer:n})=>{for(const{node:i}of e)for(const e of o)e.hasValidAttribute(i)||(e.appliesToListItem(i)?n.setAttribute(e.attributeName,e.defaultValue,i):n.removeAttribute(e.attributeName,i),t.return=!0)})),n.on("postFixer",((t,{listNodes:e,writer:n})=>{for(const{node:i,previousNodeInList:r}of e)if(r&&r.getAttribute("listType")==i.getAttribute("listType"))for(const e of o){const{attributeName:o}=e;if(!e.appliesToListItem(i))continue;const s=r.getAttribute(o);i.getAttribute(o)!=s&&(n.setAttribute(o,s,i),t.return=!0)}}))}}var yx=n(9968),xx={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(yx.A,xx);yx.A.locals;class Ex extends Lr{children;stylesView=null;additionalPropertiesCollapsibleView=null;startIndexFieldView=null;reversedSwitchButtonView=null;focusTracker=new tr;keystrokes=new er;focusables=new lr;focusCycler;constructor(t,{enabledProperties:e,styleButtonViews:n,styleGridAriaLabel:o}){super(t);const i=["ck","ck-list-properties"];this.children=this.createCollection(),this.focusCycler=new am({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),e.styles?(this.stylesView=this._createStylesView(n,o),this.children.add(this.stylesView)):i.push("ck-list-properties_without-styles"),(e.startIndex||e.reversed)&&(this._addNumberedListPropertyViews(e),i.push("ck-list-properties_with-numbered-properties")),this.setTemplate({tag:"div",attributes:{class:i},children:this.children})}render(){if(super.render(),this.stylesView){this.focusables.add(this.stylesView),this.focusTracker.add(this.stylesView.element),(this.startIndexFieldView||this.reversedSwitchButtonView)&&(this.focusables.add(this.children.last.buttonView),this.focusTracker.add(this.children.last.buttonView.element));for(const t of this.stylesView.children)this.stylesView.focusTracker.add(t.element);Or({keystrokeHandler:this.stylesView.keystrokes,focusTracker:this.stylesView.focusTracker,gridItems:this.stylesView.children,numberOfColumns:()=>Oo.window.getComputedStyle(this.stylesView.element).getPropertyValue("grid-template-columns").split(" ").length,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection})}if(this.startIndexFieldView){this.focusables.add(this.startIndexFieldView),this.focusTracker.add(this.startIndexFieldView.element);const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t),this.keystrokes.set("arrowleft",t),this.keystrokes.set("arrowup",t),this.keystrokes.set("arrowdown",t)}this.reversedSwitchButtonView&&(this.focusables.add(this.reversedSwitchButtonView),this.focusTracker.add(this.reversedSwitchButtonView.element)),this.keystrokes.listenTo(this.element)}focus(){this.focusCycler.focusFirst()}focusLast(){this.focusCycler.focusLast()}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createStylesView(t,e){const n=new Lr(this.locale);return n.children=n.createCollection(),n.children.addMany(t),n.setTemplate({tag:"div",attributes:{"aria-label":e,class:["ck","ck-list-styles-list"]},children:n.children}),n.children.delegate("execute").to(this),n.focus=function(){this.children.first.focus()},n.focusTracker=new tr,n.keystrokes=new er,n.render(),n.keystrokes.listenTo(n.element),n}_addNumberedListPropertyViews(t){const e=this.locale.t,n=[];t.startIndex&&(this.startIndexFieldView=this._createStartIndexField(),n.push(this.startIndexFieldView)),t.reversed&&(this.reversedSwitchButtonView=this._createReversedSwitchButton(),n.push(this.reversedSwitchButtonView)),t.styles?(this.additionalPropertiesCollapsibleView=new $m(this.locale,n),this.additionalPropertiesCollapsibleView.set({label:e("List properties"),isCollapsed:!0}),this.additionalPropertiesCollapsibleView.buttonView.bind("isEnabled").toMany(n,"isEnabled",((...t)=>t.some((t=>t)))),this.additionalPropertiesCollapsibleView.buttonView.on("change:isEnabled",((t,e,n)=>{n||(this.additionalPropertiesCollapsibleView.isCollapsed=!0)})),this.children.add(this.additionalPropertiesCollapsibleView)):this.children.addMany(n)}_createStartIndexField(){const t=this.locale.t,e=new dg(this.locale,ep);return e.set({label:t("Start at"),class:"ck-numbered-list-properties__start-index"}),e.fieldView.set({min:0,step:1,value:1,inputMode:"numeric"}),e.fieldView.on("input",(()=>{const n=e.fieldView.element,o=n.valueAsNumber;Number.isNaN(o)?e.errorText=t("Invalid start index value."):n.checkValidity()?this.fire("listStart",{startIndex:o}):e.errorText=t("Start index must be greater than 0.")})),e}_createReversedSwitchButton(){const t=this.locale.t,e=new qm(this.locale);return e.set({withText:!0,label:t("Reversed order"),class:"ck-numbered-list-properties__reversed-order"}),e.delegate("execute").to(this,"listReversed"),e}}var Dx=n(7141),Bx={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Dx.A,Bx);Dx.A.locals;class Tx extends Nr{static get pluginName(){return"ListPropertiesUI"}init(){const t=this.editor,e=t.locale.t,n=t.config.get("list.properties");if(n.styles){const o=[{label:e("Toggle the disc list style"),tooltip:e("Disc"),type:"disc",icon:''},{label:e("Toggle the circle list style"),tooltip:e("Circle"),type:"circle",icon:''},{label:e("Toggle the square list style"),tooltip:e("Square"),type:"square",icon:''}],i=e("Bulleted List"),r=e("Bulleted list styles toolbar"),s="bulletedList";t.ui.componentFactory.add(s,Sx({editor:t,propertiesConfig:n,parentCommandName:s,buttonLabel:i,buttonIcon:Ju.bulletedList,styleGridAriaLabel:r,styleDefinitions:o})),t.ui.componentFactory.add(`menuBar:${s}`,Px({editor:t,propertiesConfig:n,parentCommandName:s,buttonLabel:i,styleGridAriaLabel:r,styleDefinitions:o}))}if(n.styles||n.startIndex||n.reversed){const o=[{label:e("Toggle the decimal list style"),tooltip:e("Decimal"),type:"decimal",icon:''},{label:e("Toggle the decimal with leading zero list style"),tooltip:e("Decimal with leading zero"),type:"decimal-leading-zero",icon:''},{label:e("Toggle the lower–roman list style"),tooltip:e("Lower–roman"),type:"lower-roman",icon:''},{label:e("Toggle the upper–roman list style"),tooltip:e("Upper-roman"),type:"upper-roman",icon:''},{label:e("Toggle the lower–latin list style"),tooltip:e("Lower-latin"),type:"lower-latin",icon:''},{label:e("Toggle the upper–latin list style"),tooltip:e("Upper-latin"),type:"upper-latin",icon:''}],i=e("Numbered List"),r=e("Numbered list styles toolbar"),s="numberedList";t.ui.componentFactory.add(s,Sx({editor:t,propertiesConfig:n,parentCommandName:s,buttonLabel:i,buttonIcon:Ju.numberedList,styleGridAriaLabel:r,styleDefinitions:o})),n.styles&&t.ui.componentFactory.add(`menuBar:${s}`,Px({editor:t,propertiesConfig:n,parentCommandName:s,buttonLabel:i,styleGridAriaLabel:r,styleDefinitions:o}))}}}function Sx({editor:t,propertiesConfig:e,parentCommandName:n,buttonLabel:o,buttonIcon:i,styleGridAriaLabel:r,styleDefinitions:s}){const a=t.commands.get(n);return c=>{const l=Ug(c,qg),d=l.buttonView;return l.bind("isEnabled").to(a),l.class="ck-list-styles-dropdown",d.on("execute",(()=>{t.execute(n),t.editing.view.focus()})),d.set({label:o,icon:i,tooltip:!0,isToggleable:!0}),d.bind("isOn").to(a,"value",(t=>!!t)),l.once("change:isOpen",(()=>{const o=function({editor:t,propertiesConfig:e,dropdownView:n,parentCommandName:o,styleDefinitions:i,styleGridAriaLabel:r}){const s=t.locale,a={...e};"numberedList"!=o&&(a.startIndex=!1,a.reversed=!1);let c=null;if(a.styles){const e=t.commands.get("listStyle"),n=Ix({editor:t,parentCommandName:o,listStyleCommand:e}),r=zx(e);c=i.filter(r).map(n)}const l=new Ex(s,{styleGridAriaLabel:r,enabledProperties:a,styleButtonViews:c});a.styles&&Qg(n,(()=>l.stylesView.children.find((t=>t.isOn))));if(a.startIndex){const e=t.commands.get("listStart");l.startIndexFieldView.bind("isEnabled").to(e),l.startIndexFieldView.fieldView.bind("value").to(e),l.on("listStart",((e,n)=>t.execute("listStart",n)))}if(a.reversed){const e=t.commands.get("listReversed");l.reversedSwitchButtonView.bind("isEnabled").to(e),l.reversedSwitchButtonView.bind("isOn").to(e,"value",(t=>!!t)),l.on("listReversed",(()=>{const n=e.value;t.execute("listReversed",{reversed:!n})}))}return l.delegate("execute").to(n),l}({editor:t,propertiesConfig:e,dropdownView:l,parentCommandName:n,styleGridAriaLabel:r,styleDefinitions:s});l.panelView.children.add(o)})),l.on("execute",(()=>{t.editing.view.focus()})),l}}function Ix({editor:t,listStyleCommand:e,parentCommandName:n}){const o=t.locale,i=t.commands.get(n);return({label:r,type:s,icon:a,tooltip:c})=>{const l=new om(o);return l.set({label:r,icon:a,tooltip:c}),e.on("change:value",(()=>{l.isOn=e.value===s})),l.on("execute",(()=>{i.value?e.value===s?t.execute(n):e.value!==s&&t.execute("listStyle",{type:s}):t.model.change((()=>{t.execute("listStyle",{type:s})}))})),l}}function Px({editor:t,propertiesConfig:e,parentCommandName:n,buttonLabel:o,styleGridAriaLabel:i,styleDefinitions:r}){return s=>{const a=new Pk(s),c=t.commands.get(n),l=t.commands.get("listStyle"),d=zx(l),h=Ix({editor:t,parentCommandName:n,listStyleCommand:l}),u=r.filter(d).map(h),m=new Ex(s,{styleGridAriaLabel:i,enabledProperties:{...e,startIndex:!1,reversed:!1},styleButtonViews:u});return m.delegate("execute").to(a),a.buttonView.set({label:o,icon:Ju[n]}),a.panelView.children.add(m),a.bind("isEnabled").to(c,"isEnabled"),a.on("execute",(()=>{t.editing.view.focus()})),a}}function zx(t){return"function"==typeof t.isStyleTypeSupported?e=>t.isStyleTypeSupported(e.type):()=>!0}class Rx extends Nr{static get requires(){return[vx,Tx]}static get pluginName(){return"ListProperties"}}var Lx=n(8991),Fx={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Lx.A,Fx);Lx.A.locals;class Mx extends sm{groupDropdownView;constructor(t,e){super(t);const n=t.t;this.set("class","ck-special-characters-navigation"),this.groupDropdownView=this._createGroupDropdown(e),this.groupDropdownView.panelPosition="rtl"===t.uiLanguageDirection?"se":"sw",this.label=n("Special characters"),this.children.add(this.groupDropdownView)}get currentGroupName(){return this.groupDropdownView.value}focus(){this.groupDropdownView.focus()}_createGroupDropdown(t){const e=this.locale,n=e.t,o=Ug(e),i=this._getCharacterGroupListItemDefinitions(o,t),r=n("Character categories");return o.set("value",i.first.model.name),o.buttonView.bind("label").to(o,"value",(e=>t.get(e))),o.buttonView.set({isOn:!1,withText:!0,tooltip:r,class:["ck-dropdown__button_label-width_auto"],ariaLabel:r,ariaLabelledBy:void 0}),o.on("execute",(t=>{o.value=t.source.name})),o.delegate("execute").to(this),Jg(o,i,{ariaLabel:r,role:"menu"}),o}_getCharacterGroupListItemDefinitions(t,e){const n=new Qi;for(const[o,i]of e){const e=new If({name:o,label:i,withText:!0,role:"menuitemradio"});e.bind("isOn").to(t,"value",(t=>t===e.name)),n.add({type:"button",model:e})}return n}}var Vx=n(8868),Ox={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Vx.A,Ox);Vx.A.locals;class Nx extends Lr{tiles;focusTracker;keystrokes;constructor(t){super(t),this.tiles=this.createCollection(),this.setTemplate({tag:"div",children:[{tag:"div",attributes:{class:["ck","ck-character-grid__tiles"]},children:this.tiles}],attributes:{class:["ck","ck-character-grid"]}}),this.focusTracker=new tr,this.keystrokes=new er,Or({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.tiles,numberOfColumns:()=>Oo.window.getComputedStyle(this.element.firstChild).getPropertyValue("grid-template-columns").split(" ").length,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection})}createTile(t,e){const n=new om(this.locale);return n.set({label:t,withText:!0,class:"ck-character-grid__tile"}),n.extendTemplate({attributes:{title:e},on:{mouseover:n.bindTemplate.to("mouseover"),focus:n.bindTemplate.to("focus")}}),n.on("mouseover",(()=>{this.fire("tileHover",{name:e,character:t})})),n.on("focus",(()=>{this.fire("tileFocus",{name:e,character:t})})),n.on("execute",(()=>{this.fire("execute",{name:e,character:t})})),n}render(){super.render();for(const t of this.tiles)this.focusTracker.add(t.element);this.tiles.on("change",((t,{added:e,removed:n})=>{if(e.length>0)for(const t of e)this.focusTracker.add(t.element);if(n.length>0)for(const t of n)this.focusTracker.remove(t.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.keystrokes.destroy()}focus(){this.tiles.first.focus()}}var Hx=n(128),qx={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Hx.A,qx);Hx.A.locals;class jx extends Lr{constructor(t){super(t);const e=this.bindTemplate;this.set("character",null),this.set("name",null),this.bind("code").to(this,"character",Wx),this.setTemplate({tag:"div",children:[{tag:"span",attributes:{class:["ck-character-info__name"]},children:[{text:e.to("name",(t=>t||"​"))}]},{tag:"span",attributes:{class:["ck-character-info__code"]},children:[{text:e.to("code")}]}],attributes:{class:["ck","ck-character-info"]}})}}function Wx(t){if(null===t)return"";return"U+"+("0000"+t.codePointAt(0).toString(16)).slice(-4)}class Gx extends Lr{items;focusTracker;keystrokes;_focusCycler;navigationView;gridView;infoView;constructor(t,e,n,o){super(t),this.navigationView=e,this.gridView=n,this.infoView=o,this.items=this.createCollection(),this.focusTracker=new tr,this.keystrokes=new er,this._focusCycler=new am({focusables:this.items,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",children:[this.navigationView,this.gridView,this.infoView],attributes:{tabindex:"-1"}}),this.items.add(this.navigationView.groupDropdownView.buttonView),this.items.add(this.gridView)}render(){super.render(),this.focusTracker.add(this.navigationView.groupDropdownView.buttonView.element),this.focusTracker.add(this.gridView.element),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this.navigationView.focus()}}var Kx=n(4272),Ux={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(Kx.A,Ux);Kx.A.locals;const $x="All";class Zx extends Nr{static get pluginName(){return"SpecialCharactersArrows"}init(){const t=this.editor,e=t.t;t.plugins.get("SpecialCharacters").addItems("Arrows",[{title:e("leftwards simple arrow"),character:"←"},{title:e("rightwards simple arrow"),character:"→"},{title:e("upwards simple arrow"),character:"↑"},{title:e("downwards simple arrow"),character:"↓"},{title:e("leftwards double arrow"),character:"⇐"},{title:e("rightwards double arrow"),character:"⇒"},{title:e("upwards double arrow"),character:"⇑"},{title:e("downwards double arrow"),character:"⇓"},{title:e("leftwards dashed arrow"),character:"⇠"},{title:e("rightwards dashed arrow"),character:"⇢"},{title:e("upwards dashed arrow"),character:"⇡"},{title:e("downwards dashed arrow"),character:"⇣"},{title:e("leftwards arrow to bar"),character:"⇤"},{title:e("rightwards arrow to bar"),character:"⇥"},{title:e("upwards arrow to bar"),character:"⤒"},{title:e("downwards arrow to bar"),character:"⤓"},{title:e("up down arrow with base"),character:"↨"},{title:e("back with leftwards arrow above"),character:"🔙"},{title:e("end with leftwards arrow above"),character:"🔚"},{title:e("on with exclamation mark with left right arrow above"),character:"🔛"},{title:e("soon with rightwards arrow above"),character:"🔜"},{title:e("top with upwards arrow above"),character:"🔝"}],{label:e("Arrows")})}}class Jx extends Nr{static get pluginName(){return"SpecialCharactersText"}init(){const t=this.editor,e=t.t;t.plugins.get("SpecialCharacters").addItems("Text",[{character:"‹",title:e("Single left-pointing angle quotation mark")},{character:"›",title:e("Single right-pointing angle quotation mark")},{character:"«",title:e("Left-pointing double angle quotation mark")},{character:"»",title:e("Right-pointing double angle quotation mark")},{character:"‘",title:e("Left single quotation mark")},{character:"’",title:e("Right single quotation mark")},{character:"“",title:e("Left double quotation mark")},{character:"”",title:e("Right double quotation mark")},{character:"‚",title:e("Single low-9 quotation mark")},{character:"„",title:e("Double low-9 quotation mark")},{character:"¡",title:e("Inverted exclamation mark")},{character:"¿",title:e("Inverted question mark")},{character:"‥",title:e("Two dot leader")},{character:"…",title:e("Horizontal ellipsis")},{character:"‡",title:e("Double dagger")},{character:"‰",title:e("Per mille sign")},{character:"‱",title:e("Per ten thousand sign")},{character:"‼",title:e("Double exclamation mark")},{character:"⁈",title:e("Question exclamation mark")},{character:"⁉",title:e("Exclamation question mark")},{character:"⁇",title:e("Double question mark")},{character:"©",title:e("Copyright sign")},{character:"®",title:e("Registered sign")},{character:"™",title:e("Trade mark sign")},{character:"§",title:e("Section sign")},{character:"¶",title:e("Paragraph sign")},{character:"⁋",title:e("Reversed paragraph sign")}],{label:e("Text")})}}class Yx extends Nr{static get pluginName(){return"SpecialCharactersMathematical"}init(){const t=this.editor,e=t.t;t.plugins.get("SpecialCharacters").addItems("Mathematical",[{character:"<",title:e("Less-than sign")},{character:">",title:e("Greater-than sign")},{character:"≤",title:e("Less-than or equal to")},{character:"≥",title:e("Greater-than or equal to")},{character:"–",title:e("En dash")},{character:"—",title:e("Em dash")},{character:"¯",title:e("Macron")},{character:"‾",title:e("Overline")},{character:"°",title:e("Degree sign")},{character:"−",title:e("Minus sign")},{character:"±",title:e("Plus-minus sign")},{character:"÷",title:e("Division sign")},{character:"⁄",title:e("Fraction slash")},{character:"×",title:e("Multiplication sign")},{character:"ƒ",title:e("Latin small letter f with hook")},{character:"∫",title:e("Integral")},{character:"∑",title:e("N-ary summation")},{character:"∞",title:e("Infinity")},{character:"√",title:e("Square root")},{character:"∼",title:e("Tilde operator")},{character:"≅",title:e("Approximately equal to")},{character:"≈",title:e("Almost equal to")},{character:"≠",title:e("Not equal to")},{character:"≡",title:e("Identical to")},{character:"∈",title:e("Element of")},{character:"∉",title:e("Not an element of")},{character:"∋",title:e("Contains as member")},{character:"∏",title:e("N-ary product")},{character:"∧",title:e("Logical and")},{character:"∨",title:e("Logical or")},{character:"¬",title:e("Not sign")},{character:"∩",title:e("Intersection")},{character:"∪",title:e("Union")},{character:"∂",title:e("Partial differential")},{character:"∀",title:e("For all")},{character:"∃",title:e("There exists")},{character:"∅",title:e("Empty set")},{character:"∇",title:e("Nabla")},{character:"∗",title:e("Asterisk operator")},{character:"∝",title:e("Proportional to")},{character:"∠",title:e("Angle")},{character:"¼",title:e("Vulgar fraction one quarter")},{character:"½",title:e("Vulgar fraction one half")},{character:"¾",title:e("Vulgar fraction three quarters")}],{label:e("Mathematical")})}}class Qx extends Nr{static get pluginName(){return"SpecialCharactersLatin"}init(){const t=this.editor,e=t.t;t.plugins.get("SpecialCharacters").addItems("Latin",[{character:"Ā",title:e("Latin capital letter a with macron")},{character:"ā",title:e("Latin small letter a with macron")},{character:"Ă",title:e("Latin capital letter a with breve")},{character:"ă",title:e("Latin small letter a with breve")},{character:"Ą",title:e("Latin capital letter a with ogonek")},{character:"ą",title:e("Latin small letter a with ogonek")},{character:"Ć",title:e("Latin capital letter c with acute")},{character:"ć",title:e("Latin small letter c with acute")},{character:"Ĉ",title:e("Latin capital letter c with circumflex")},{character:"ĉ",title:e("Latin small letter c with circumflex")},{character:"Ċ",title:e("Latin capital letter c with dot above")},{character:"ċ",title:e("Latin small letter c with dot above")},{character:"Č",title:e("Latin capital letter c with caron")},{character:"č",title:e("Latin small letter c with caron")},{character:"Ď",title:e("Latin capital letter d with caron")},{character:"ď",title:e("Latin small letter d with caron")},{character:"Đ",title:e("Latin capital letter d with stroke")},{character:"đ",title:e("Latin small letter d with stroke")},{character:"Ē",title:e("Latin capital letter e with macron")},{character:"ē",title:e("Latin small letter e with macron")},{character:"Ĕ",title:e("Latin capital letter e with breve")},{character:"ĕ",title:e("Latin small letter e with breve")},{character:"Ė",title:e("Latin capital letter e with dot above")},{character:"ė",title:e("Latin small letter e with dot above")},{character:"Ę",title:e("Latin capital letter e with ogonek")},{character:"ę",title:e("Latin small letter e with ogonek")},{character:"Ě",title:e("Latin capital letter e with caron")},{character:"ě",title:e("Latin small letter e with caron")},{character:"Ĝ",title:e("Latin capital letter g with circumflex")},{character:"ĝ",title:e("Latin small letter g with circumflex")},{character:"Ğ",title:e("Latin capital letter g with breve")},{character:"ğ",title:e("Latin small letter g with breve")},{character:"Ġ",title:e("Latin capital letter g with dot above")},{character:"ġ",title:e("Latin small letter g with dot above")},{character:"Ģ",title:e("Latin capital letter g with cedilla")},{character:"ģ",title:e("Latin small letter g with cedilla")},{character:"Ĥ",title:e("Latin capital letter h with circumflex")},{character:"ĥ",title:e("Latin small letter h with circumflex")},{character:"Ħ",title:e("Latin capital letter h with stroke")},{character:"ħ",title:e("Latin small letter h with stroke")},{character:"Ĩ",title:e("Latin capital letter i with tilde")},{character:"ĩ",title:e("Latin small letter i with tilde")},{character:"Ī",title:e("Latin capital letter i with macron")},{character:"ī",title:e("Latin small letter i with macron")},{character:"Ĭ",title:e("Latin capital letter i with breve")},{character:"ĭ",title:e("Latin small letter i with breve")},{character:"Į",title:e("Latin capital letter i with ogonek")},{character:"į",title:e("Latin small letter i with ogonek")},{character:"İ",title:e("Latin capital letter i with dot above")},{character:"ı",title:e("Latin small letter dotless i")},{character:"IJ",title:e("Latin capital ligature ij")},{character:"ij",title:e("Latin small ligature ij")},{character:"Ĵ",title:e("Latin capital letter j with circumflex")},{character:"ĵ",title:e("Latin small letter j with circumflex")},{character:"Ķ",title:e("Latin capital letter k with cedilla")},{character:"ķ",title:e("Latin small letter k with cedilla")},{character:"ĸ",title:e("Latin small letter kra")},{character:"Ĺ",title:e("Latin capital letter l with acute")},{character:"ĺ",title:e("Latin small letter l with acute")},{character:"Ļ",title:e("Latin capital letter l with cedilla")},{character:"ļ",title:e("Latin small letter l with cedilla")},{character:"Ľ",title:e("Latin capital letter l with caron")},{character:"ľ",title:e("Latin small letter l with caron")},{character:"Ŀ",title:e("Latin capital letter l with middle dot")},{character:"ŀ",title:e("Latin small letter l with middle dot")},{character:"Ł",title:e("Latin capital letter l with stroke")},{character:"ł",title:e("Latin small letter l with stroke")},{character:"Ń",title:e("Latin capital letter n with acute")},{character:"ń",title:e("Latin small letter n with acute")},{character:"Ņ",title:e("Latin capital letter n with cedilla")},{character:"ņ",title:e("Latin small letter n with cedilla")},{character:"Ň",title:e("Latin capital letter n with caron")},{character:"ň",title:e("Latin small letter n with caron")},{character:"ʼn",title:e("Latin small letter n preceded by apostrophe")},{character:"Ŋ",title:e("Latin capital letter eng")},{character:"ŋ",title:e("Latin small letter eng")},{character:"Ō",title:e("Latin capital letter o with macron")},{character:"ō",title:e("Latin small letter o with macron")},{character:"Ŏ",title:e("Latin capital letter o with breve")},{character:"ŏ",title:e("Latin small letter o with breve")},{character:"Ő",title:e("Latin capital letter o with double acute")},{character:"ő",title:e("Latin small letter o with double acute")},{character:"Œ",title:e("Latin capital ligature oe")},{character:"œ",title:e("Latin small ligature oe")},{character:"Ŕ",title:e("Latin capital letter r with acute")},{character:"ŕ",title:e("Latin small letter r with acute")},{character:"Ŗ",title:e("Latin capital letter r with cedilla")},{character:"ŗ",title:e("Latin small letter r with cedilla")},{character:"Ř",title:e("Latin capital letter r with caron")},{character:"ř",title:e("Latin small letter r with caron")},{character:"Ś",title:e("Latin capital letter s with acute")},{character:"ś",title:e("Latin small letter s with acute")},{character:"Ŝ",title:e("Latin capital letter s with circumflex")},{character:"ŝ",title:e("Latin small letter s with circumflex")},{character:"Ş",title:e("Latin capital letter s with cedilla")},{character:"ş",title:e("Latin small letter s with cedilla")},{character:"Š",title:e("Latin capital letter s with caron")},{character:"š",title:e("Latin small letter s with caron")},{character:"Ţ",title:e("Latin capital letter t with cedilla")},{character:"ţ",title:e("Latin small letter t with cedilla")},{character:"Ť",title:e("Latin capital letter t with caron")},{character:"ť",title:e("Latin small letter t with caron")},{character:"Ŧ",title:e("Latin capital letter t with stroke")},{character:"ŧ",title:e("Latin small letter t with stroke")},{character:"Ũ",title:e("Latin capital letter u with tilde")},{character:"ũ",title:e("Latin small letter u with tilde")},{character:"Ū",title:e("Latin capital letter u with macron")},{character:"ū",title:e("Latin small letter u with macron")},{character:"Ŭ",title:e("Latin capital letter u with breve")},{character:"ŭ",title:e("Latin small letter u with breve")},{character:"Ů",title:e("Latin capital letter u with ring above")},{character:"ů",title:e("Latin small letter u with ring above")},{character:"Ű",title:e("Latin capital letter u with double acute")},{character:"ű",title:e("Latin small letter u with double acute")},{character:"Ų",title:e("Latin capital letter u with ogonek")},{character:"ų",title:e("Latin small letter u with ogonek")},{character:"Ŵ",title:e("Latin capital letter w with circumflex")},{character:"ŵ",title:e("Latin small letter w with circumflex")},{character:"Ŷ",title:e("Latin capital letter y with circumflex")},{character:"ŷ",title:e("Latin small letter y with circumflex")},{character:"Ÿ",title:e("Latin capital letter y with diaeresis")},{character:"Ź",title:e("Latin capital letter z with acute")},{character:"ź",title:e("Latin small letter z with acute")},{character:"Ż",title:e("Latin capital letter z with dot above")},{character:"ż",title:e("Latin small letter z with dot above")},{character:"Ž",title:e("Latin capital letter z with caron")},{character:"ž",title:e("Latin small letter z with caron")},{character:"ſ",title:e("Latin small letter long s")}],{label:e("Latin")})}}class Xx extends Nr{static get pluginName(){return"SpecialCharactersCurrency"}init(){const t=this.editor,e=t.t;t.plugins.get("SpecialCharacters").addItems("Currency",[{character:"$",title:e("Dollar sign")},{character:"€",title:e("Euro sign")},{character:"¥",title:e("Yen sign")},{character:"£",title:e("Pound sign")},{character:"¢",title:e("Cent sign")},{character:"₠",title:e("Euro-currency sign")},{character:"₡",title:e("Colon sign")},{character:"₢",title:e("Cruzeiro sign")},{character:"₣",title:e("French franc sign")},{character:"₤",title:e("Lira sign")},{character:"¤",title:e("Currency sign")},{character:"₿",title:e("Bitcoin sign")},{character:"₥",title:e("Mill sign")},{character:"₦",title:e("Naira sign")},{character:"₧",title:e("Peseta sign")},{character:"₨",title:e("Rupee sign")},{character:"₩",title:e("Won sign")},{character:"₪",title:e("New sheqel sign")},{character:"₫",title:e("Dong sign")},{character:"₭",title:e("Kip sign")},{character:"₮",title:e("Tugrik sign")},{character:"₯",title:e("Drachma sign")},{character:"₰",title:e("German penny sign")},{character:"₱",title:e("Peso sign")},{character:"₲",title:e("Guarani sign")},{character:"₳",title:e("Austral sign")},{character:"₴",title:e("Hryvnia sign")},{character:"₵",title:e("Cedi sign")},{character:"₶",title:e("Livre tournois sign")},{character:"₷",title:e("Spesmilo sign")},{character:"₸",title:e("Tenge sign")},{character:"₹",title:e("Indian rupee sign")},{character:"₺",title:e("Turkish lira sign")},{character:"₻",title:e("Nordic mark sign")},{character:"₼",title:e("Manat sign")},{character:"₽",title:e("Ruble sign")}],{label:e("Currency")})}}function tE(t,e,n,o,i=1){null!=e&&null!=i&&e>i?o.setAttribute(t,e,n):o.removeAttribute(t,n)}function eE(t,e,n={}){const o=t.createElement("tableCell",n);return t.insertElement("paragraph",o),t.insert(o,e),o}function nE(t,e){const n=e.parent.parent,o=parseInt(n.getAttribute("headingColumns")||"0"),{column:i}=t.getCellLocation(e);return!!o&&i{t.on("element:table",((t,e,n)=>{const o=e.viewItem;if(!n.consumable.test(o,{name:!0}))return;const{rows:i,headingRows:r,headingColumns:s}=function(t){let e,n=0;const o=[],i=[];let r;for(const s of Array.from(t.getChildren())){if("tbody"!==s.name&&"thead"!==s.name&&"tfoot"!==s.name)continue;"thead"!==s.name||r||(r=s);const t=Array.from(s.getChildren()).filter((t=>t.is("element","tr")));for(const a of t)if(r&&s===r||"tbody"===s.name&&Array.from(a.getChildren()).length&&Array.from(a.getChildren()).every((t=>t.is("element","th"))))n++,o.push(a);else{i.push(a);const t=sE(a);(!e||tn.convertItem(t,n.writer.createPositionAt(c,"end")))),n.convertChildren(o,n.writer.createPositionAt(c,"end")),c.isEmpty){const t=n.writer.createElement("tableRow");n.writer.insert(t,n.writer.createPositionAt(c,"end")),eE(n.writer,n.writer.createPositionAt(t,"end"))}n.updateConversionResult(c,e)}}))}}function rE(t){return e=>{e.on(`element:${t}`,((t,e,{writer:n})=>{if(!e.modelRange)return;const o=e.modelRange.start.nodeAfter,i=n.createPositionAt(o,0);if(e.viewItem.isEmpty)return void n.insertElement("paragraph",i);const r=Array.from(o.getChildren());if(r.every((t=>t.is("element","$marker")))){const t=n.createElement("paragraph");n.insert(t,n.createPositionAt(o,0));for(const e of r)n.move(n.createRangeOn(e),n.createPositionAt(t,"end"))}}),{priority:"low"})}}function sE(t){let e=0,n=0;const o=Array.from(t.getChildren()).filter((t=>"th"===t.name||"td"===t.name));for(;n1||i>1)&&this._recordSpans(n,i,o),this._shouldSkipSlot()||(e=this._formatOutValue(n)),this._nextCellAtColumn=this._column+o}return this._column++,this._column==this._nextCellAtColumn&&this._cellIndex++,e||this.next()}skipRow(t){this._skipRows.add(t)}_advanceToNextRow(){return this._row++,this._rowIndex++,this._column=0,this._cellIndex=0,this._nextCellAtColumn=-1,this.next()}_isOverEndRow(){return void 0!==this._endRow&&this._row>this._endRow}_isOverEndColumn(){return void 0!==this._endColumn&&this._column>this._endColumn}_formatOutValue(t,e=this._row,n=this._column){return{done:!1,value:new cE(this,t,e,n)}}_shouldSkipSlot(){const t=this._skipRows.has(this._row),e=this._rowthis._endColumn;return t||e||n||o}_getSpanned(){const t=this._spannedCells.get(this._row);return t&&t.get(this._column)||null}_recordSpans(t,e,n){const o={cell:t,row:this._row,column:this._column};for(let t=this._row;t0&&!this._jumpedToStartRow}_jumpToNonSpannedRowClosestToStartRow(){const t=this._getRowLength(0);for(let e=this._startRow;!this._jumpedToStartRow;e--)t===this._getRowLength(e)&&(this._row=e,this._rowIndex=e,this._jumpedToStartRow=!0)}_getRowLength(t){return[...this._table.getChild(t).getChildren()].reduce(((t,e)=>t+parseInt(e.getAttribute("colspan")||"1")),0)}}class cE{cell;row;column;cellAnchorRow;cellAnchorColumn;_cellIndex;_rowIndex;_table;constructor(t,e,n,o){this.cell=e,this.row=t._row,this.column=t._column,this.cellAnchorRow=n,this.cellAnchorColumn=o,this._cellIndex=t._cellIndex,this._rowIndex=t._rowIndex,this._table=t._table}get isAnchor(){return this.row===this.cellAnchorRow&&this.column===this.cellAnchorColumn}get cellWidth(){return parseInt(this.cell.getAttribute("colspan")||"1")}get cellHeight(){return parseInt(this.cell.getAttribute("rowspan")||"1")}get rowIndex(){return this._rowIndex}getPositionBefore(){return this._table.root.document.model.createPositionAt(this._table.getChild(this.row),this._cellIndex)}}function lE(t,e){return(n,{writer:o})=>{const i=n.getAttribute("headingRows")||0,r=o.createContainerElement("table",null,[]),s=o.createContainerElement("figure",{class:"table"},r);i>0&&o.insert(o.createPositionAt(r,"end"),o.createContainerElement("thead",null,o.createSlot((t=>t.is("element","tableRow")&&t.indext.is("element","tableRow")&&t.index>=i))));for(const{positionOffset:t,filter:n}of e.additionalSlots)o.insert(o.createPositionAt(r,t),o.createSlot(n));return o.insert(o.createPositionAt(r,"after"),o.createSlot((t=>!t.is("element","tableRow")&&!e.additionalSlots.some((({filter:e})=>e(t)))))),e.asWidget?function(t,e){return e.setCustomProperty("table",!0,t),k_(t,e,{hasSelectionHandle:!0})}(s,o):s}}function dE(t={}){return(e,{writer:n})=>{const o=e.parent,i=o.parent,r=i.getChildIndex(o),s=new aE(i,{row:r}),a=i.getAttribute("headingRows")||0,c=i.getAttribute("headingColumns")||0;let l=null;for(const o of s)if(o.cell==e){const e=o.row{if(!e.parent.is("element","tableCell"))return null;if(!uE(e))return null;if(t.asWidget)return n.createContainerElement("span",{class:"ck-table-bogus-paragraph"});{const t=n.createContainerElement("p");return n.setCustomProperty("dataPipeline:transparentRendering",!0,t),t}}}function uE(t){return 1==t.parent.childCount&&!!t.getAttributeKeys().next().done}class mE extends qr{refresh(){const t=this.editor.model,e=t.document.selection,n=t.schema;this.isEnabled=function(t,e){const n=t.getFirstPosition().parent,o=n===n.root?n:n.parent;return e.checkChild(o,"table")}(e,n)}execute(t={}){const e=this.editor,n=e.model,o=e.plugins.get("TableUtils"),i=e.config.get("table.defaultHeadings.rows"),r=e.config.get("table.defaultHeadings.columns");void 0===t.headingRows&&i&&(t.headingRows=i),void 0===t.headingColumns&&r&&(t.headingColumns=r),n.change((e=>{const i=o.createTable(e,t);n.insertObject(i,null,null,{findOptimalPosition:"auto"}),e.setSelection(e.createPositionAt(i.getNodeByPath([0,0,0]),0))}))}}class gE extends qr{order;constructor(t,e={}){super(t),this.order=e.order||"below"}refresh(){const t=this.editor.model.document.selection,e=!!this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(t).length;this.isEnabled=e}execute(){const t=this.editor,e=t.model.document.selection,n=t.plugins.get("TableUtils"),o="above"===this.order,i=n.getSelectionAffectedTableCells(e),r=n.getRowIndexes(i),s=o?r.first:r.last,a=i[0].findAncestor("table");n.insertRows(a,{at:o?s:s+1,copyStructureFromAbove:!o})}}class pE extends qr{order;constructor(t,e={}){super(t),this.order=e.order||"right"}refresh(){const t=this.editor.model.document.selection,e=!!this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(t).length;this.isEnabled=e}execute(){const t=this.editor,e=t.model.document.selection,n=t.plugins.get("TableUtils"),o="left"===this.order,i=n.getSelectionAffectedTableCells(e),r=n.getColumnIndexes(i),s=o?r.first:r.last,a=i[0].findAncestor("table");n.insertColumns(a,{columns:1,at:o?s:s+1})}}class fE extends qr{direction;constructor(t,e={}){super(t),this.direction=e.direction||"horizontally"}refresh(){const t=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=1===t.length}execute(){const t=this.editor.plugins.get("TableUtils"),e=t.getSelectionAffectedTableCells(this.editor.model.document.selection)[0];"horizontally"===this.direction?t.splitCellHorizontally(e,2):t.splitCellVertically(e,2)}}function kE(t,e,n){const{startRow:o,startColumn:i,endRow:r,endColumn:s}=e,a=n.createElement("table"),c=r-o+1;for(let t=0;t0){tE("headingRows",r-n,t,i,0)}const s=parseInt(e.getAttribute("headingColumns")||"0");if(s>0){tE("headingColumns",s-o,t,i,0)}}(a,t,o,i,n),a}function bE(t,e,n=0){const o=[],i=new aE(t,{startRow:n,endRow:e-1});for(const t of i){const{row:n,cellHeight:i}=t;n1&&(a.rowspan=c);const l=parseInt(t.getAttribute("colspan")||"1");l>1&&(a.colspan=l);const d=r+s,h=[...new aE(i,{startRow:r,endRow:d,includeAllSlots:!0})];let u,m=null;for(const e of h){const{row:o,column:i,cell:r}=e;r===t&&void 0===u&&(u=i),void 0!==u&&u===i&&o===d&&(m=eE(n,e.getPositionBefore(),a))}return tE("rowspan",s,t,n),m}function _E(t,e){const n=[],o=new aE(t);for(const t of o){const{column:o,cellWidth:i}=t;o1&&(r.colspan=s);const a=parseInt(t.getAttribute("rowspan")||"1");a>1&&(r.rowspan=a);const c=eE(o,o.createPositionAfter(t),r);return tE("colspan",i,t,o),c}function CE(t,e,n,o,i,r){const s=parseInt(t.getAttribute("colspan")||"1"),a=parseInt(t.getAttribute("rowspan")||"1");if(n+s-1>i){tE("colspan",i-n+1,t,r,1)}if(e+a-1>o){tE("rowspan",o-e+1,t,r,1)}}function vE(t,e){const n=e.getColumns(t),o=new Array(n).fill(0);for(const{column:e}of new aE(t))o[e]++;const i=o.reduce(((t,e,n)=>e?t:[...t,n]),[]);if(i.length>0){const n=i[i.length-1];return e.removeColumns(t,{at:n}),!0}return!1}function yE(t,e){const n=[],o=e.getRows(t);for(let e=0;e0){const o=n[n.length-1];return e.removeRows(t,{at:o}),!0}return!1}function xE(t,e){vE(t,e)||yE(t,e)}function EE(t,e){const n=Array.from(new aE(t,{startColumn:e.firstColumn,endColumn:e.lastColumn,row:e.lastRow}));if(n.every((({cellHeight:t})=>1===t)))return e.lastRow;const o=n[0].cellHeight-1;return e.lastRow+o}function DE(t,e){const n=Array.from(new aE(t,{startRow:e.firstRow,endRow:e.lastRow,column:e.lastColumn}));if(n.every((({cellWidth:t})=>1===t)))return e.lastColumn;const o=n[0].cellWidth-1;return e.lastColumn+o}class BE extends qr{direction;isHorizontal;constructor(t,e){super(t),this.direction=e.direction,this.isHorizontal="right"==this.direction||"left"==this.direction}refresh(){const t=this._getMergeableCell();this.value=t,this.isEnabled=!!t}execute(){const t=this.editor.model,e=t.document,n=this.editor.plugins.get("TableUtils").getTableCellsContainingSelection(e.selection)[0],o=this.value,i=this.direction;t.change((t=>{const e="right"==i||"down"==i,r=e?n:o,s=e?o:n,a=s.parent;!function(t,e,n){TE(t)||(TE(e)&&n.remove(n.createRangeIn(e)),n.move(n.createRangeIn(t),n.createPositionAt(e,"end")));n.remove(t)}(s,r,t);const c=this.isHorizontal?"colspan":"rowspan",l=parseInt(n.getAttribute(c)||"1"),d=parseInt(o.getAttribute(c)||"1");t.setAttribute(c,l+d,r),t.setSelection(t.createRangeIn(r));const h=this.editor.plugins.get("TableUtils");xE(a.findAncestor("table"),h)}))}_getMergeableCell(){const t=this.editor.model.document,e=this.editor.plugins.get("TableUtils"),n=e.getTableCellsContainingSelection(t.selection)[0];if(!n)return;const o=this.isHorizontal?function(t,e,n){const o=t.parent,i=o.parent,r="right"==e?t.nextSibling:t.previousSibling,s=(i.getAttribute("headingColumns")||0)>0;if(!r)return;const a="right"==e?t:r,c="right"==e?r:t,{column:l}=n.getCellLocation(a),{column:d}=n.getCellLocation(c),h=parseInt(a.getAttribute("colspan")||"1"),u=nE(n,a),m=nE(n,c);if(s&&u!=m)return;return l+h===d?r:void 0}(n,this.direction,e):function(t,e,n){const o=t.parent,i=o.parent,r=i.getChildIndex(o);if("down"==e&&r===n.getRows(i)-1||"up"==e&&0===r)return null;const s=parseInt(t.getAttribute("rowspan")||"1"),a=i.getAttribute("headingRows")||0,c="down"==e&&r+s===a,l="up"==e&&r===a;if(a&&(c||l))return null;const d=parseInt(t.getAttribute("rowspan")||"1"),h="down"==e?r+d:r,u=[...new aE(i,{endRow:h})],m=u.find((e=>e.cell===t)),g=m.column,p=u.find((({row:t,cellHeight:n,column:o})=>o===g&&("down"==e?t===h:h===t+n)));return p&&p.cell?p.cell:null}(n,this.direction,e);if(!o)return;const i=this.isHorizontal?"rowspan":"colspan",r=parseInt(n.getAttribute(i)||"1");return parseInt(o.getAttribute(i)||"1")===r?o:void 0}}function TE(t){const e=t.getChild(0);return 1==t.childCount&&e.is("element","paragraph")&&e.isEmpty}class SE extends qr{refresh(){const t=this.editor.plugins.get("TableUtils"),e=t.getSelectionAffectedTableCells(this.editor.model.document.selection),n=e[0];if(n){const o=n.findAncestor("table"),i=t.getRows(o)-1,r=t.getRowIndexes(e),s=0===r.first&&r.last===i;this.isEnabled=!s}else this.isEnabled=!1}execute(){const t=this.editor.model,e=this.editor.plugins.get("TableUtils"),n=e.getSelectionAffectedTableCells(t.document.selection),o=e.getRowIndexes(n),i=n[0],r=i.findAncestor("table"),s=e.getCellLocation(i).column;t.change((t=>{const n=o.last-o.first+1;e.removeRows(r,{at:o.first,rows:n});const i=function(t,e,n,o){const i=t.getChild(Math.min(e,o-1));let r=i.getChild(0),s=0;for(const t of i.getChildren()){if(s>n)return r;r=t,s+=parseInt(t.getAttribute("colspan")||"1")}return r}(r,o.first,s,e.getRows(r));t.setSelection(t.createPositionAt(i,0))}))}}class IE extends qr{refresh(){const t=this.editor.plugins.get("TableUtils"),e=t.getSelectionAffectedTableCells(this.editor.model.document.selection),n=e[0];if(n){const o=n.findAncestor("table"),i=t.getColumns(o),{first:r,last:s}=t.getColumnIndexes(e);this.isEnabled=s-rt.cell===e)).column,last:i.find((t=>t.cell===n)).column},s=function(t,e,n,o){const i=parseInt(n.getAttribute("colspan")||"1");return i>1?n:e.previousSibling||n.nextSibling?n.nextSibling||e.previousSibling:o.first?t.reverse().find((({column:t})=>tt>o.last)).cell}(i,e,n,r);this.editor.model.change((e=>{const n=r.last-r.first+1;t.removeColumns(o,{at:r.first,columns:n}),e.setSelection(e.createPositionAt(s,0))}))}}class PE extends qr{refresh(){const t=this.editor.plugins.get("TableUtils"),e=this.editor.model,n=t.getSelectionAffectedTableCells(e.document.selection),o=n.length>0;this.isEnabled=o,this.value=o&&n.every((t=>this._isInHeading(t,t.parent.parent)))}execute(t={}){if(t.forceValue===this.value)return;const e=this.editor.plugins.get("TableUtils"),n=this.editor.model,o=e.getSelectionAffectedTableCells(n.document.selection),i=o[0].findAncestor("table"),{first:r,last:s}=e.getRowIndexes(o),a=this.value?r:s+1,c=i.getAttribute("headingRows")||0;n.change((t=>{if(a){const e=bE(i,a,a>c?c:0);for(const{cell:n}of e)wE(n,a,t)}tE("headingRows",a,i,t,0)}))}_isInHeading(t,e){const n=parseInt(e.getAttribute("headingRows")||"0");return!!n&&t.parent.index0;this.isEnabled=o,this.value=o&&n.every((t=>nE(e,t)))}execute(t={}){if(t.forceValue===this.value)return;const e=this.editor.plugins.get("TableUtils"),n=this.editor.model,o=e.getSelectionAffectedTableCells(n.document.selection),i=o[0].findAncestor("table"),{first:r,last:s}=e.getColumnIndexes(o),a=this.value?r:s+1;n.change((t=>{if(a){const e=_E(i,a);for(const{cell:n,column:o}of e)AE(n,o,a,t)}tE("headingColumns",a,i,t,0)}))}}function RE(t){if(t.is("element","tableColumnGroup"))return t;const e=t.getChildren();return Array.from(e).find((t=>t.is("element","tableColumnGroup")))}function LE(t){const e=RE(t);return e?Array.from(e.getChildren()):[]}class FE extends Nr{static get pluginName(){return"TableUtils"}init(){this.decorate("insertColumns"),this.decorate("insertRows")}getCellLocation(t){const e=t.parent,n=e.parent,o=n.getChildIndex(e),i=new aE(n,{row:o});for(const{cell:e,row:n,column:o}of i)if(e===t)return{row:n,column:o}}createTable(t,e){const n=t.createElement("table"),o=e.rows||2,i=e.columns||2;return ME(t,n,0,o,i),e.headingRows&&tE("headingRows",Math.min(e.headingRows,o),n,t,0),e.headingColumns&&tE("headingColumns",Math.min(e.headingColumns,i),n,t,0),n}insertRows(t,e={}){const n=this.editor.model,o=e.at||0,i=e.rows||1,r=void 0!==e.copyStructureFromAbove,s=e.copyStructureFromAbove?o-1:o,a=this.getRows(t),c=this.getColumns(t);if(o>a)throw new x("tableutils-insertrows-insert-out-of-range",this,{options:e});n.change((e=>{const n=t.getAttribute("headingRows")||0;if(n>o&&tE("headingRows",n+i,t,e,0),!r&&(0===o||o===a))return void ME(e,t,o,i,c);const l=r?Math.max(o,s):o,d=new aE(t,{endRow:l}),h=new Array(c).fill(1);for(const{row:t,column:n,cellHeight:a,cellWidth:c,cell:l}of d){const d=t+a-1,u=t<=s&&s<=d;t0&&eE(e,i,o>1?{colspan:o}:void 0),t+=Math.abs(o)-1}}}))}insertColumns(t,e={}){const n=this.editor.model,o=e.at||0,i=e.columns||1;n.change((e=>{const n=t.getAttribute("headingColumns");oi-1)throw new x("tableutils-removerows-row-index-out-of-range",this,{table:t,options:e});n.change((e=>{const n={first:r,last:s},{cellsToMove:o,cellsToTrim:i}=function(t,{first:e,last:n}){const o=new Map,i=[];for(const{row:r,column:s,cellHeight:a,cell:c}of new aE(t,{endRow:n})){const t=r+a-1;if(r>=e&&r<=n&&t>n){const t=a-(n-r+1);o.set(s,{cell:c,rowspan:t})}if(r=e){let o;o=t>=n?n-e+1:t-e+1,i.push({cell:c,rowspan:a-o})}}return{cellsToMove:o,cellsToTrim:i}}(t,n);if(o.size){!function(t,e,n,o){const i=new aE(t,{includeAllSlots:!0,row:e}),r=[...i],s=t.getChild(e);let a;for(const{column:t,cell:e,isAnchor:i}of r)if(n.has(t)){const{cell:e,rowspan:i}=n.get(t),r=a?o.createPositionAfter(a):o.createPositionAt(s,0);o.move(o.createRangeOn(e),r),tE("rowspan",i,e,o),a=e}else i&&(a=e)}(t,s+1,o,e)}for(let n=s;n>=r;n--)e.remove(t.getChild(n));for(const{rowspan:t,cell:n}of i)tE("rowspan",t,n,e);!function(t,{first:e,last:n},o){const i=t.getAttribute("headingRows")||0;if(e{!function(t,e,n){const o=t.getAttribute("headingColumns")||0;if(o&&e.first=o;i--){for(const{cell:n,column:o,cellWidth:r}of[...new aE(t)])o<=i&&r>1&&o+r>i?tE("colspan",r-1,n,e):o===i&&e.remove(n);if(n[i]){const t=0===i?n[1]:n[i-1],o=parseFloat(n[i].getAttribute("columnWidth")),r=parseFloat(t.getAttribute("columnWidth"));e.remove(n[i]),e.setAttribute("columnWidth",o+r+"%",t)}}yE(t,this)||vE(t,this)}))}splitCellVertically(t,e=2){const n=this.editor.model,o=t.parent.parent,i=parseInt(t.getAttribute("rowspan")||"1"),r=parseInt(t.getAttribute("colspan")||"1");n.change((n=>{if(r>1){const{newCellsSpan:o,updatedSpan:s}=OE(r,e);tE("colspan",s,t,n);const a={};o>1&&(a.colspan=o),i>1&&(a.rowspan=i);VE(r>e?e-1:r-1,n,n.createPositionAfter(t),a)}if(re===t)),l=a.filter((({cell:e,cellWidth:n,column:o})=>e!==t&&o===c||oc));for(const{cell:t,cellWidth:e}of l)n.setAttribute("colspan",e+s,t);const d={};i>1&&(d.rowspan=i),VE(s,n,n.createPositionAfter(t),d);const h=o.getAttribute("headingColumns")||0;h>c&&tE("headingColumns",h+s,o,n)}}))}splitCellHorizontally(t,e=2){const n=this.editor.model,o=t.parent,i=o.parent,r=i.getChildIndex(o),s=parseInt(t.getAttribute("rowspan")||"1"),a=parseInt(t.getAttribute("colspan")||"1");n.change((n=>{if(s>1){const o=[...new aE(i,{startRow:r,endRow:r+s-1,includeAllSlots:!0})],{newCellsSpan:c,updatedSpan:l}=OE(s,e);tE("rowspan",l,t,n);const{column:d}=o.find((({cell:e})=>e===t)),h={};c>1&&(h.rowspan=c),a>1&&(h.colspan=a);for(const t of o){const{column:e,row:o}=t;o>=r+l&&e===d&&(o+r+l)%c==0&&VE(1,n,t.getPositionBefore(),h)}}if(sr){const t=i+o;n.setAttribute("rowspan",t,e)}const l={};a>1&&(l.colspan=a),ME(n,i,r+1,o,1,l);const d=i.getAttribute("headingRows")||0;d>r&&tE("headingRows",d+o,i,n)}}))}getColumns(t){return[...t.getChild(0).getChildren()].filter((t=>t.is("element","tableCell"))).reduce(((t,e)=>t+parseInt(e.getAttribute("colspan")||"1")),0)}getRows(t){return Array.from(t.getChildren()).reduce(((t,e)=>e.is("element","tableRow")?t+1:t),0)}createTableWalker(t,e={}){return new aE(t,e)}getSelectedTableCells(t){const e=[];for(const n of this.sortRanges(t.getRanges())){const t=n.getContainedElement();t&&t.is("element","tableCell")&&e.push(t)}return e}getTableCellsContainingSelection(t){const e=[];for(const n of t.getRanges()){const t=n.start.findAncestor("tableCell");t&&e.push(t)}return e}getSelectionAffectedTableCells(t){const e=this.getSelectedTableCells(t);return e.length?e:this.getTableCellsContainingSelection(t)}getRowIndexes(t){const e=t.map((t=>t.parent.index));return this._getFirstLastIndexesObject(e)}getColumnIndexes(t){const e=t[0].findAncestor("table"),n=[...new aE(e)].filter((e=>t.includes(e.cell))).map((t=>t.column));return this._getFirstLastIndexesObject(n)}isSelectionRectangular(t){if(t.length<2||!this._areCellInTheSameTableSection(t))return!1;const e=new Set,n=new Set;let o=0;for(const i of t){const{row:t,column:r}=this.getCellLocation(i),s=parseInt(i.getAttribute("rowspan"))||1,a=parseInt(i.getAttribute("colspan"))||1;e.add(t),n.add(r),s>1&&e.add(t+s-1),a>1&&n.add(r+a-1),o+=s*a}const i=function(t,e){const n=Array.from(t.values()),o=Array.from(e.values()),i=Math.max(...n),r=Math.min(...n),s=Math.max(...o),a=Math.min(...o);return(i-r+1)*(s-a+1)}(e,n);return i==o}sortRanges(t){return Array.from(t).sort(NE)}_getFirstLastIndexesObject(t){const e=t.sort(((t,e)=>t-e));return{first:e[0],last:e[e.length-1]}}_areCellInTheSameTableSection(t){const e=t[0].findAncestor("table"),n=this.getRowIndexes(t),o=parseInt(e.getAttribute("headingRows"))||0;if(!this._areIndexesInSameSection(n,o))return!1;const i=this.getColumnIndexes(t),r=parseInt(e.getAttribute("headingColumns"))||0;return this._areIndexesInSameSection(i,r)}_areIndexesInSameSection({first:t,last:e},n){return t{const o=e.getSelectedTableCells(t.document.selection),i=o.shift(),{mergeWidth:r,mergeHeight:s}=function(t,e,n){let o=0,i=0;for(const t of e){const{row:e,column:r}=n.getCellLocation(t);o=WE(t,r,o,"colspan"),i=WE(t,e,i,"rowspan")}const{row:r,column:s}=n.getCellLocation(t),a=o-s,c=i-r;return{mergeWidth:a,mergeHeight:c}}(i,o,e);tE("colspan",r,i,n),tE("rowspan",s,i,n);for(const t of o)qE(t,i,n);xE(i.findAncestor("table"),e),n.setSelection(i,"in")}))}}function qE(t,e,n){jE(t)||(jE(e)&&n.remove(n.createRangeIn(e)),n.move(n.createRangeIn(t),n.createPositionAt(e,"end"))),n.remove(t)}function jE(t){const e=t.getChild(0);return 1==t.childCount&&e.is("element","paragraph")&&e.isEmpty}function WE(t,e,n,o){const i=parseInt(t.getAttribute(o)||"1");return Math.max(n,e+i)}class GE extends qr{constructor(t){super(t),this.affectsData=!1}refresh(){const t=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=t.length>0}execute(){const t=this.editor.model,e=this.editor.plugins.get("TableUtils"),n=e.getSelectionAffectedTableCells(t.document.selection),o=e.getRowIndexes(n),i=n[0].findAncestor("table"),r=[];for(let e=o.first;e<=o.last;e++)for(const n of i.getChild(e).getChildren())r.push(t.createRangeOn(n));t.change((t=>{t.setSelection(r)}))}}class KE extends qr{constructor(t){super(t),this.affectsData=!1}refresh(){const t=this.editor.plugins.get("TableUtils").getSelectionAffectedTableCells(this.editor.model.document.selection);this.isEnabled=t.length>0}execute(){const t=this.editor.plugins.get("TableUtils"),e=this.editor.model,n=t.getSelectionAffectedTableCells(e.document.selection),o=n[0],i=n.pop(),r=o.findAncestor("table"),s=t.getCellLocation(o),a=t.getCellLocation(i),c=Math.min(s.column,a.column),l=Math.max(s.column,a.column),d=[];for(const t of new aE(r,{startColumn:c,endColumn:l}))d.push(e.createRangeOn(t.cell));e.change((t=>{t.setSelection(d)}))}}function UE(t){t.document.registerPostFixer((e=>function(t,e){const n=e.document.differ.getChanges();let o=!1;const i=new Set;for(const e of n){let n=null;"insert"==e.type&&"table"==e.name&&(n=e.position.nodeAfter),"insert"!=e.type&&"remove"!=e.type||"tableRow"!=e.name&&"tableCell"!=e.name||(n=e.position.findAncestor("table")),JE(e)&&(n=e.range.start.findAncestor("table")),n&&!i.has(n)&&(o=$E(n,t)||o,o=ZE(n,t)||o,i.add(n))}return o}(e,t)))}function $E(t,e){let n=!1;const o=function(t){const e=parseInt(t.getAttribute("headingRows")||"0"),n=Array.from(t.getChildren()).reduce(((t,e)=>e.is("element","tableRow")?t+1:t),0),o=[];for(const{row:i,cell:r,cellHeight:s}of new aE(t)){if(s<2)continue;const t=it){const e=t-i;o.push({cell:r,rowspan:e})}}return o}(t);if(o.length){n=!0;for(const t of o)tE("rowspan",t.rowspan,t.cell,e,1)}return n}function ZE(t,e){let n=!1;const o=function(t){const e=new Array(t.childCount).fill(0);for(const{rowIndex:n}of new aE(t,{includeAllSlots:!0}))e[n]++;return e}(t),i=[];for(const[e,n]of o.entries())!n&&t.getChild(e).is("element","tableRow")&&i.push(e);if(i.length){n=!0;for(const n of i.reverse())e.remove(t.getChild(n)),o.splice(n,1)}const r=o.filter(((e,n)=>t.getChild(n).is("element","tableRow"))),s=r[0];if(!r.every((t=>t===s))){const o=r.reduce(((t,e)=>e>t?e:t),0);for(const[i,s]of r.entries()){const r=o-s;if(r){for(let n=0;nfunction(t,e){const n=e.document.differ.getChanges();let o=!1;for(const e of n)"insert"==e.type&&"table"==e.name&&(o=QE(e.position.nodeAfter,t)||o),"insert"==e.type&&"tableRow"==e.name&&(o=XE(e.position.nodeAfter,t)||o),"insert"==e.type&&"tableCell"==e.name&&(o=tD(e.position.nodeAfter,t)||o),"remove"!=e.type&&"insert"!=e.type||!eD(e)||(o=tD(e.position.parent,t)||o);return o}(e,t)))}function QE(t,e){let n=!1;for(const o of t.getChildren())o.is("element","tableRow")&&(n=XE(o,e)||n);return n}function XE(t,e){let n=!1;for(const o of t.getChildren())n=tD(o,e)||n;return n}function tD(t,e){if(0==t.childCount)return e.insertElement("paragraph",t),!0;const n=Array.from(t.getChildren()).filter((t=>t.is("$text")));for(const t of n)e.wrap(e.createRangeOn(t),"paragraph");return!!n.length}function eD(t){return!!t.position.parent.is("element","tableCell")&&("insert"==t.type&&"$text"==t.name||"remove"==t.type)}function nD(t,e){if(!t.is("element","paragraph"))return!1;const n=e.toViewElement(t);return!!n&&uE(t)!==n.is("element","span")}var oD=n(8137),iD={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(oD.A,iD);oD.A.locals;class rD extends Nr{_additionalSlots;static get pluginName(){return"TableEditing"}static get requires(){return[FE]}constructor(t){super(t),this._additionalSlots=[]}init(){const t=this.editor,e=t.model,n=e.schema,o=t.conversion,i=t.plugins.get(FE);n.register("table",{inheritAllFrom:"$blockObject",allowAttributes:["headingRows","headingColumns"]}),n.register("tableRow",{allowIn:"table",isLimit:!0}),n.register("tableCell",{allowContentOf:"$container",allowIn:"tableRow",allowAttributes:["colspan","rowspan"],isLimit:!0,isSelectable:!0}),o.for("upcast").add((t=>{t.on("element:figure",((t,e,n)=>{if(!n.consumable.test(e.viewItem,{name:!0,classes:"table"}))return;const o=function(t){for(const e of t.getChildren())if(e.is("element","table"))return e}(e.viewItem);if(!o||!n.consumable.test(o,{name:!0}))return;n.consumable.consume(e.viewItem,{name:!0,classes:"table"});const i=Xi(n.convertItem(o,e.modelCursor).modelRange.getItems());i?(n.convertChildren(e.viewItem,n.writer.createPositionAt(i,"end")),n.updateConversionResult(i,e)):n.consumable.revert(e.viewItem,{name:!0,classes:"table"})}))})),o.for("upcast").add(iE()),o.for("editingDowncast").elementToStructure({model:{name:"table",attributes:["headingRows"]},view:lE(i,{asWidget:!0,additionalSlots:this._additionalSlots})}),o.for("dataDowncast").elementToStructure({model:{name:"table",attributes:["headingRows"]},view:lE(i,{additionalSlots:this._additionalSlots})}),o.for("upcast").elementToElement({model:"tableRow",view:"tr"}),o.for("upcast").add((t=>{t.on("element:tr",((t,e)=>{e.viewItem.isEmpty&&0==e.modelCursor.index&&t.stop()}),{priority:"high"})})),o.for("downcast").elementToElement({model:"tableRow",view:(t,{writer:e})=>t.isEmpty?e.createEmptyElement("tr"):e.createContainerElement("tr")}),o.for("upcast").elementToElement({model:"tableCell",view:"td"}),o.for("upcast").elementToElement({model:"tableCell",view:"th"}),o.for("upcast").add(rE("td")),o.for("upcast").add(rE("th")),o.for("editingDowncast").elementToElement({model:"tableCell",view:dE({asWidget:!0})}),o.for("dataDowncast").elementToElement({model:"tableCell",view:dE()}),o.for("editingDowncast").elementToElement({model:"paragraph",view:hE({asWidget:!0}),converterPriority:"high"}),o.for("dataDowncast").elementToElement({model:"paragraph",view:hE(),converterPriority:"high"}),o.for("downcast").attributeToAttribute({model:"colspan",view:"colspan"}),o.for("upcast").attributeToAttribute({model:{key:"colspan",value:sD("colspan")},view:"colspan"}),o.for("downcast").attributeToAttribute({model:"rowspan",view:"rowspan"}),o.for("upcast").attributeToAttribute({model:{key:"rowspan",value:sD("rowspan")},view:"rowspan"}),t.config.define("table.defaultHeadings.rows",0),t.config.define("table.defaultHeadings.columns",0),t.commands.add("insertTable",new mE(t)),t.commands.add("insertTableRowAbove",new gE(t,{order:"above"})),t.commands.add("insertTableRowBelow",new gE(t,{order:"below"})),t.commands.add("insertTableColumnLeft",new pE(t,{order:"left"})),t.commands.add("insertTableColumnRight",new pE(t,{order:"right"})),t.commands.add("removeTableRow",new SE(t)),t.commands.add("removeTableColumn",new IE(t)),t.commands.add("splitTableCellVertically",new fE(t,{direction:"vertically"})),t.commands.add("splitTableCellHorizontally",new fE(t,{direction:"horizontally"})),t.commands.add("mergeTableCells",new HE(t)),t.commands.add("mergeTableCellRight",new BE(t,{direction:"right"})),t.commands.add("mergeTableCellLeft",new BE(t,{direction:"left"})),t.commands.add("mergeTableCellDown",new BE(t,{direction:"down"})),t.commands.add("mergeTableCellUp",new BE(t,{direction:"up"})),t.commands.add("setTableColumnHeader",new zE(t)),t.commands.add("setTableRowHeader",new PE(t)),t.commands.add("selectTableRow",new GE(t)),t.commands.add("selectTableColumn",new KE(t)),UE(e),YE(e),this.listenTo(e.document,"change:data",(()=>{!function(t,e){const n=t.document.differ;for(const t of n.getChanges()){let n,o=!1;if("attribute"==t.type){const e=t.range.start.nodeAfter;if(!e||!e.is("element","table"))continue;if("headingRows"!=t.attributeKey&&"headingColumns"!=t.attributeKey)continue;n=e,o="headingRows"==t.attributeKey}else"tableRow"!=t.name&&"tableCell"!=t.name||(n=t.position.findAncestor("table"),o="tableRow"==t.name);if(!n)continue;const i=n.getAttribute("headingRows")||0,r=n.getAttribute("headingColumns")||0,s=new aE(n);for(const t of s){const n=t.rownD(t,e.mapper)));for(const t of n)e.reconvertItem(t)}}(e,t.editing)}))}registerAdditionalSlot(t){this._additionalSlots.push(t)}}function sD(t){return e=>{const n=parseInt(e.getAttribute(t));return Number.isNaN(n)||n<=0?null:n}}var aD=n(5032),cD={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(aD.A,cD);aD.A.locals;class lD extends Lr{items;keystrokes;focusTracker;constructor(t){super(t);const e=this.bindTemplate;this.items=this._createGridCollection(),this.keystrokes=new er,this.focusTracker=new tr,this.set("rows",0),this.set("columns",0),this.bind("label").to(this,"columns",this,"rows",((t,e)=>`${e} × ${t}`)),this.setTemplate({tag:"div",attributes:{class:["ck"]},children:[{tag:"div",attributes:{class:["ck-insert-table-dropdown__grid"]},on:{"mouseover@.ck-insert-table-dropdown-grid-box":e.to("boxover")},children:this.items},{tag:"div",attributes:{class:["ck","ck-insert-table-dropdown__label"],"aria-hidden":!0},children:[{text:e.to("label")}]}],on:{mousedown:e.to((t=>{t.preventDefault()})),click:e.to((()=>{this.fire("execute")}))}}),this.on("boxover",((t,e)=>{const{row:n,column:o}=e.target.dataset;this.items.get(10*(parseInt(n,10)-1)+(parseInt(o,10)-1)).focus()})),this.focusTracker.on("change:focusedElement",((t,e,n)=>{if(!n)return;const{row:o,column:i}=n.dataset;this.set({rows:parseInt(o),columns:parseInt(i)})})),this.on("change:columns",(()=>this._highlightGridBoxes())),this.on("change:rows",(()=>this._highlightGridBoxes()))}render(){super.render(),Or({keystrokeHandler:this.keystrokes,focusTracker:this.focusTracker,gridItems:this.items,numberOfColumns:10,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection});for(const t of this.items)this.focusTracker.add(t.element);this.keystrokes.listenTo(this.element)}reset(){this.set({rows:1,columns:1})}focus(){this.items.get(0).focus()}focusLast(){this.items.get(0).focus()}_highlightGridBoxes(){const t=this.rows,e=this.columns;this.items.map(((n,o)=>{const i=Math.floor(o/10){const o=t.commands.get("insertTable"),i=Ug(n);let r;return i.bind("isEnabled").to(o),i.buttonView.set({icon:Ju.table,label:e("Insert table"),tooltip:!0}),i.on("change:isOpen",(()=>{r||(r=new lD(n),i.panelView.children.add(r),r.delegate("execute").to(i),i.on("execute",(()=>{t.execute("insertTable",{rows:r.rows,columns:r.columns}),t.editing.view.focus()})))})),i})),t.ui.componentFactory.add("menuBar:insertTable",(n=>{const o=t.commands.get("insertTable"),i=new Pk(n),r=new lD(n);return r.delegate("execute").to(i),i.on("change:isOpen",((t,e,n)=>{n||r.reset()})),r.on("execute",(()=>{t.execute("insertTable",{rows:r.rows,columns:r.columns}),t.editing.view.focus()})),i.buttonView.set({label:e("Table"),icon:Ju.table}),i.panelView.children.add(r),i.bind("isEnabled").to(o),i})),t.ui.componentFactory.add("tableColumn",(t=>{const o=[{type:"switchbutton",model:{commandName:"setTableColumnHeader",label:e("Header column"),bindIsOn:!0}},{type:"separator"},{type:"button",model:{commandName:n?"insertTableColumnLeft":"insertTableColumnRight",label:e("Insert column left")}},{type:"button",model:{commandName:n?"insertTableColumnRight":"insertTableColumnLeft",label:e("Insert column right")}},{type:"button",model:{commandName:"removeTableColumn",label:e("Delete column")}},{type:"button",model:{commandName:"selectTableColumn",label:e("Select column")}}];return this._prepareDropdown(e("Column"),'',o,t)})),t.ui.componentFactory.add("tableRow",(t=>{const n=[{type:"switchbutton",model:{commandName:"setTableRowHeader",label:e("Header row"),bindIsOn:!0}},{type:"separator"},{type:"button",model:{commandName:"insertTableRowAbove",label:e("Insert row above")}},{type:"button",model:{commandName:"insertTableRowBelow",label:e("Insert row below")}},{type:"button",model:{commandName:"removeTableRow",label:e("Delete row")}},{type:"button",model:{commandName:"selectTableRow",label:e("Select row")}}];return this._prepareDropdown(e("Row"),'',n,t)})),t.ui.componentFactory.add("mergeTableCells",(t=>{const o=[{type:"button",model:{commandName:"mergeTableCellUp",label:e("Merge cell up")}},{type:"button",model:{commandName:n?"mergeTableCellRight":"mergeTableCellLeft",label:e("Merge cell right")}},{type:"button",model:{commandName:"mergeTableCellDown",label:e("Merge cell down")}},{type:"button",model:{commandName:n?"mergeTableCellLeft":"mergeTableCellRight",label:e("Merge cell left")}},{type:"separator"},{type:"button",model:{commandName:"splitTableCellVertically",label:e("Split cell vertically")}},{type:"button",model:{commandName:"splitTableCellHorizontally",label:e("Split cell horizontally")}}];return this._prepareMergeSplitButtonDropdown(e("Merge cells"),'',o,t)}))}_prepareDropdown(t,e,n,o){const i=this.editor,r=Ug(o),s=this._fillDropdownWithListOptions(r,n);return r.buttonView.set({label:t,icon:e,tooltip:!0}),r.bind("isEnabled").toMany(s,"isEnabled",((...t)=>t.some((t=>t)))),this.listenTo(r,"execute",(t=>{i.execute(t.source.commandName),t.source instanceof qm||i.editing.view.focus()})),r}_prepareMergeSplitButtonDropdown(t,e,n,o){const i=this.editor,r=Ug(o,qg),s="mergeTableCells",a=i.commands.get(s),c=this._fillDropdownWithListOptions(r,n);return r.buttonView.set({label:t,icon:e,tooltip:!0,isEnabled:!0}),r.bind("isEnabled").toMany([a,...c],"isEnabled",((...t)=>t.some((t=>t)))),this.listenTo(r.buttonView,"execute",(()=>{i.execute(s),i.editing.view.focus()})),this.listenTo(r,"execute",(t=>{i.execute(t.source.commandName),i.editing.view.focus()})),r}_fillDropdownWithListOptions(t,e){const n=this.editor,o=[],i=new Qi;for(const t of e)hD(t,n,o,i);return Jg(t,i),o}}function hD(t,e,n,o){if("button"===t.type||"switchbutton"===t.type){const o=t.model=new If(t.model),{commandName:i,bindIsOn:r}=t.model,s=e.commands.get(i);n.push(s),o.set({commandName:i}),o.bind("isEnabled").to(s),r&&o.bind("isOn").to(s,"value"),o.set({withText:!0})}o.add(t)}var uD=n(8423),mD={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(uD.A,mD);uD.A.locals;class gD extends Nr{static get pluginName(){return"TableSelection"}static get requires(){return[FE,FE]}init(){const t=this.editor,e=t.model,n=t.editing.view;this.listenTo(e,"deleteContent",((t,e)=>this._handleDeleteContent(t,e)),{priority:"high"}),this.listenTo(n.document,"insertText",((t,e)=>this._handleInsertTextEvent(t,e)),{priority:"high"}),this._defineSelectionConverter(),this._enablePluginDisabling()}getSelectedTableCells(){const t=this.editor.plugins.get(FE),e=this.editor.model.document.selection,n=t.getSelectedTableCells(e);return 0==n.length?null:n}getSelectionAsFragment(){const t=this.editor.plugins.get(FE),e=this.getSelectedTableCells();return e?this.editor.model.change((n=>{const o=n.createDocumentFragment(),{first:i,last:r}=t.getColumnIndexes(e),{first:s,last:a}=t.getRowIndexes(e),c=e[0].findAncestor("table");let l=a,d=r;if(t.isSelectionRectangular(e)){const t={firstColumn:i,lastColumn:r,firstRow:s,lastRow:a};l=EE(c,t),d=DE(c,t)}const h=kE(c,{startRow:s,startColumn:i,endRow:l,endColumn:d},n);return n.insert(h,o,0),o})):null}setCellSelection(t,e){const n=this._getCellsToSelect(t,e);this.editor.model.change((t=>{t.setSelection(n.cells.map((e=>t.createRangeOn(e))),{backward:n.backward})}))}getFocusCell(){const t=[...this.editor.model.document.selection.getRanges()].pop().getContainedElement();return t&&t.is("element","tableCell")?t:null}getAnchorCell(){const t=Xi(this.editor.model.document.selection.getRanges()).getContainedElement();return t&&t.is("element","tableCell")?t:null}_defineSelectionConverter(){const t=this.editor,e=new Set;t.conversion.for("editingDowncast").add((t=>t.on("selection",((t,n,o)=>{const i=o.writer;!function(t){for(const n of e)t.removeClass("ck-editor__editable_selected",n);e.clear()}(i);const r=this.getSelectedTableCells();if(!r)return;for(const t of r){const n=o.mapper.toViewElement(t);i.addClass("ck-editor__editable_selected",n),e.add(n)}const s=o.mapper.toViewElement(r[r.length-1]);i.setSelection(s,0)}),{priority:"lowest"})))}_enablePluginDisabling(){const t=this.editor;this.on("change:isEnabled",(()=>{if(!this.isEnabled){const e=this.getSelectedTableCells();if(!e)return;t.model.change((n=>{const o=n.createPositionAt(e[0],0),i=t.model.schema.getNearestSelectionRange(o);n.setSelection(i)}))}}))}_handleDeleteContent(t,e){const n=this.editor.plugins.get(FE),o=e[0],i=e[1],r=this.editor.model,s=!i||"backward"==i.direction,a=n.getSelectedTableCells(o);a.length&&(t.stop(),r.change((t=>{const e=a[s?a.length-1:0];r.change((t=>{for(const e of a)r.deleteContent(t.createSelection(e,"in"))}));const n=r.schema.getNearestSelectionRange(t.createPositionAt(e,0));o.is("documentSelection")?t.setSelection(n):o.setTo(n)})))}_handleInsertTextEvent(t,e){const n=this.editor,o=this.getSelectedTableCells();if(!o)return;const i=n.editing.view,r=n.editing.mapper,s=o.map((t=>i.createRangeOn(r.toViewElement(t))));e.selection=i.createSelection(s)}_getCellsToSelect(t,e){const n=this.editor.plugins.get("TableUtils"),o=n.getCellLocation(t),i=n.getCellLocation(e),r=Math.min(o.row,i.row),s=Math.max(o.row,i.row),a=Math.min(o.column,i.column),c=Math.max(o.column,i.column),l=new Array(s-r+1).fill(null).map((()=>[])),d={startRow:r,endRow:s,startColumn:a,endColumn:c};for(const{row:e,cell:n}of new aE(t.findAncestor("table"),d))l[e-r].push(n);const h=i.rowt.reverse())),{cells:l.flat(),backward:h||u}}}class pD extends Nr{static get pluginName(){return"TableClipboard"}static get requires(){return[a_,c_,gD,FE]}init(){const t=this.editor,e=t.editing.view.document;this.listenTo(e,"copy",((t,e)=>this._onCopyCut(t,e))),this.listenTo(e,"cut",((t,e)=>this._onCopyCut(t,e))),this.listenTo(t.model,"insertContent",((t,[e,n])=>this._onInsertContent(t,e,n)),{priority:"high"}),this.decorate("_replaceTableSlotCell")}_onCopyCut(t,e){const n=this.editor.editing.view,o=this.editor.plugins.get(gD),i=this.editor.plugins.get(a_);o.getSelectedTableCells()&&("cut"!=t.name||this.editor.model.canEditAt(this.editor.model.document.selection))&&(e.preventDefault(),t.stop(),this.editor.model.enqueueChange({isUndoable:"cut"===t.name},(()=>{const r=i._copySelectedFragmentWithMarkers(t.name,this.editor.model.document.selection,(()=>o.getSelectionAsFragment()));n.document.fire("clipboardOutput",{dataTransfer:e.dataTransfer,content:this.editor.data.toView(r),method:t.name})})))}_onInsertContent(t,e,n){if(n&&!n.is("documentSelection"))return;const o=this.editor.model,i=this.editor.plugins.get(FE),r=this.editor.plugins.get(a_),s=this.getTableIfOnlyTableInContent(e,o);if(!s)return;const a=i.getSelectionAffectedTableCells(o.document.selection);a.length?(t.stop(),e.is("documentFragment")?r._pasteMarkersIntoTransformedElement(e.markers,(t=>this._replaceSelectedCells(s,a,t))):this.editor.model.change((t=>{this._replaceSelectedCells(s,a,t)}))):xE(s,i)}_replaceSelectedCells(t,e,n){const o=this.editor.plugins.get(FE),i={width:o.getColumns(t),height:o.getRows(t)},r=function(t,e,n,o){const i=t[0].findAncestor("table"),r=o.getColumnIndexes(t),s=o.getRowIndexes(t),a={firstColumn:r.first,lastColumn:r.last,firstRow:s.first,lastRow:s.last},c=1===t.length;c&&(a.lastRow+=e.height-1,a.lastColumn+=e.width-1,function(t,e,n,o){const i=o.getColumns(t),r=o.getRows(t);n>i&&o.insertColumns(t,{at:i,columns:n-i});e>r&&o.insertRows(t,{at:r,rows:e-r})}(i,a.lastRow+1,a.lastColumn+1,o));c||!o.isSelectionRectangular(t)?function(t,e,n){const{firstRow:o,lastRow:i,firstColumn:r,lastColumn:s}=e,a={first:o,last:i},c={first:r,last:s};kD(t,r,a,n),kD(t,s+1,a,n),fD(t,o,c,n),fD(t,i+1,c,n,o)}(i,a,n):(a.lastRow=EE(i,a),a.lastColumn=DE(i,a));return a}(e,i,n,o),s=r.lastRow-r.firstRow+1,a=r.lastColumn-r.firstColumn+1;t=kE(t,{startRow:0,startColumn:0,endRow:Math.min(s,i.height)-1,endColumn:Math.min(a,i.width)-1},n);const c=e[0].findAncestor("table"),l=this._replaceSelectedCellsWithPasted(t,i,c,r,n);if(this.editor.plugins.get("TableSelection").isEnabled){const t=o.sortRanges(l.map((t=>n.createRangeOn(t))));n.setSelection(t)}else n.setSelection(l[0],0);return c}_replaceSelectedCellsWithPasted(t,e,n,o,i){const{width:r,height:s}=e,a=function(t,e,n){const o=new Array(n).fill(null).map((()=>new Array(e).fill(null)));for(const{column:e,row:n,cell:i}of new aE(t))o[n][e]=i;return o}(t,r,s),c=[...new aE(n,{startRow:o.firstRow,endRow:o.lastRow,startColumn:o.firstColumn,endColumn:o.lastColumn,includeAllSlots:!0})],l=[];let d;for(const t of c){const{row:e,column:n}=t;n===o.firstColumn&&(d=t.getPositionBefore());const c=e-o.firstRow,h=n-o.firstColumn,u=a[c%s][h%r],m=u?i.cloneElement(u):null,g=this._replaceTableSlotCell(t,m,d,i);g&&(CE(g,e,n,o.lastRow,o.lastColumn,i),l.push(g),d=i.createPositionAfter(g))}const h=parseInt(n.getAttribute("headingRows")||"0"),u=parseInt(n.getAttribute("headingColumns")||"0"),m=o.firstRowbD(t,e,n))).map((({cell:t})=>wE(t,e,o)))}function kD(t,e,n,o){if(e<1)return;return _E(t,e).filter((({row:t,cellHeight:e})=>bD(t,e,n))).map((({cell:t,column:n})=>AE(t,n,e,o)))}function bD(t,e,n){const o=t+e-1,{first:i,last:r}=n;return t>=i&&t<=r||t=i}class wD extends Nr{static get pluginName(){return"TableKeyboard"}static get requires(){return[gD,FE]}init(){const t=this.editor,e=t.editing.view.document,n=t.t;this.listenTo(e,"arrowKey",((...t)=>this._onArrowKey(...t)),{context:"table"}),this.listenTo(e,"tab",((...t)=>this._handleTabOnSelectedTable(...t)),{context:"figure"}),this.listenTo(e,"tab",((...t)=>this._handleTab(...t)),{context:["th","td"]}),t.accessibility.addKeystrokeInfoGroup({id:"table",label:n("Keystrokes that can be used in a table cell"),keystrokes:[{label:n("Move the selection to the next cell"),keystroke:"Tab"},{label:n("Move the selection to the previous cell"),keystroke:"Shift+Tab"},{label:n("Insert a new table row (when in the last cell of a table)"),keystroke:"Tab"},{label:n("Navigate through the table"),keystroke:[["arrowup"],["arrowright"],["arrowdown"],["arrowleft"]]}]})}_handleTabOnSelectedTable(t,e){const n=this.editor,o=n.model.document.selection.getSelectedElement();o&&o.is("element","table")&&(e.preventDefault(),e.stopPropagation(),t.stop(),n.model.change((t=>{t.setSelection(t.createRangeIn(o.getChild(0).getChild(0)))})))}_handleTab(t,e){const n=this.editor,o=this.editor.plugins.get(FE),i=this.editor.plugins.get("TableSelection"),r=n.model.document.selection,s=!e.shiftKey;let a=o.getTableCellsContainingSelection(r)[0];if(a||(a=i.getFocusCell()),!a)return;e.preventDefault(),e.stopPropagation(),t.stop();const c=a.parent,l=c.parent,d=l.getChildIndex(c),h=c.getChildIndex(a),u=0===h;if(!s&&u&&0===d)return void n.model.change((t=>{t.setSelection(t.createRangeOn(l))}));const m=h===c.childCount-1,g=d===o.getRows(l)-1;if(s&&g&&m&&(n.execute("insertTableRowBelow"),d===o.getRows(l)-1))return void n.model.change((t=>{t.setSelection(t.createRangeOn(l))}));let p;if(s&&m){const t=l.getChild(d+1);p=t.getChild(0)}else if(!s&&u){const t=l.getChild(d-1);p=t.getChild(t.childCount-1)}else p=c.getChild(h+(s?1:-1));n.model.change((t=>{t.setSelection(t.createRangeIn(p))}))}_onArrowKey(t,e){const n=this.editor,o=xi(e.keyCode,n.locale.contentLanguageDirection);this._handleArrowKeys(o,e.shiftKey)&&(e.preventDefault(),e.stopPropagation(),t.stop())}_handleArrowKeys(t,e){const n=this.editor.plugins.get(FE),o=this.editor.plugins.get("TableSelection"),i=this.editor.model,r=i.document.selection,s=["right","down"].includes(t),a=n.getSelectedTableCells(r);if(a.length){let n;return n=e?o.getFocusCell():s?a[a.length-1]:a[0],this._navigateFromCellInDirection(n,t,e),!0}const c=r.focus.findAncestor("tableCell");if(!c)return!1;if(!r.isCollapsed)if(e){if(r.isBackward==s&&!r.containsEntireContent(c))return!1}else{const t=r.getSelectedElement();if(!t||!i.schema.isObject(t))return!1}return!!this._isSelectionAtCellEdge(r,c,s)&&(this._navigateFromCellInDirection(c,t,e),!0)}_isSelectionAtCellEdge(t,e,n){const o=this.editor.model,i=this.editor.model.schema,r=n?t.getLastPosition():t.getFirstPosition();if(!i.getLimitElement(r).is("element","tableCell")){return o.createPositionAt(e,n?"end":0).isTouching(r)}const s=o.createSelection(r);return o.modifySelection(s,{direction:n?"forward":"backward"}),r.isEqual(s.focus)}_navigateFromCellInDirection(t,e,n=!1){const o=this.editor.model,i=t.findAncestor("table"),r=[...new aE(i,{includeAllSlots:!0})],{row:s,column:a}=r[r.length-1],c=r.find((({cell:e})=>e==t));let{row:l,column:d}=c;switch(e){case"left":d--;break;case"up":l--;break;case"right":d+=c.cellWidth;break;case"down":l+=c.cellHeight}if(l<0||l>s||d<0&&l<=0||d>a&&l>=s)return void o.change((t=>{t.setSelection(t.createRangeOn(i))}));d<0?(d=n?0:a,l--):d>a&&(d=n?a:0,l++);const h=r.find((t=>t.row==l&&t.column==d)).cell,u=["right","down"].includes(e),m=this.editor.plugins.get("TableSelection");if(n&&m.isEnabled){const e=m.getAnchorCell()||t;m.setCellSelection(e,h)}else{const t=o.createPositionAt(h,u?0:"end");o.change((e=>{e.setSelection(t)}))}}}class _D extends cc{domEventType=["mousemove","mouseleave"];onDomEvent(t){this.fire(t.type,t)}}class AD extends Nr{static get pluginName(){return"TableMouse"}static get requires(){return[gD,FE]}init(){this.editor.editing.view.addObserver(_D),this._enableShiftClickSelection(),this._enableMouseDragSelection()}_enableShiftClickSelection(){const t=this.editor,e=t.plugins.get(FE);let n=!1;const o=t.plugins.get(gD);this.listenTo(t.editing.view.document,"mousedown",((i,r)=>{const s=t.model.document.selection;if(!this.isEnabled||!o.isEnabled)return;if(!r.domEvent.shiftKey)return;const a=o.getAnchorCell()||e.getTableCellsContainingSelection(s)[0];if(!a)return;const c=this._getModelTableCellFromDomEvent(r);c&&CD(a,c)&&(n=!0,o.setCellSelection(a,c),r.preventDefault())})),this.listenTo(t.editing.view.document,"mouseup",(()=>{n=!1})),this.listenTo(t.editing.view.document,"selectionChange",(t=>{n&&t.stop()}),{priority:"highest"})}_enableMouseDragSelection(){const t=this.editor;let e,n,o=!1,i=!1;const r=t.plugins.get(gD);this.listenTo(t.editing.view.document,"mousedown",((t,n)=>{this.isEnabled&&r.isEnabled&&(n.domEvent.shiftKey||n.domEvent.ctrlKey||n.domEvent.altKey||(e=this._getModelTableCellFromDomEvent(n)))})),this.listenTo(t.editing.view.document,"mousemove",((t,s)=>{if(!s.domEvent.buttons)return;if(!e)return;const a=this._getModelTableCellFromDomEvent(s);a&&CD(e,a)&&(n=a,o||n==e||(o=!0)),o&&(i=!0,r.setCellSelection(e,n),s.preventDefault())})),this.listenTo(t.editing.view.document,"mouseup",(()=>{o=!1,i=!1,e=null,n=null})),this.listenTo(t.editing.view.document,"selectionChange",(t=>{i&&t.stop()}),{priority:"highest"})}_getModelTableCellFromDomEvent(t){const e=t.target,n=this.editor.editing.view.createPositionAt(e,0);return this.editor.editing.mapper.toModelPosition(n).parent.findAncestor("tableCell",{includeSelf:!0})}}function CD(t,e){return t.parent.parent==e.parent.parent}var vD=n(2329),yD={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(vD.A,yD);vD.A.locals;function xD(t){const e=ED(t);return e||DD(t)}function ED(t){const e=t.getSelectedElement();return e&&BD(e)?e:null}function DD(t){const e=t.getFirstPosition();if(!e)return null;let n=e.parent;for(;n;){if(n.is("element")&&BD(n))return n;n=n.parent}return null}function BD(t){return!!t.getCustomProperty("table")&&f_(t)}var TD=n(5506),SD={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(TD.A,SD);TD.A.locals;class ID extends Lr{options;focusTracker;focusCycler;_focusables;dropdownView;inputView;keystrokes;_stillTyping;constructor(t,e){super(t),this.set("value",""),this.set("isReadOnly",!1),this.set("isFocused",!1),this.set("isEmpty",!0),this.options=e,this.focusTracker=new tr,this._focusables=new lr,this.dropdownView=this._createDropdownView(),this.inputView=this._createInputTextView(),this.keystrokes=new er,this._stillTyping=!1,this.focusCycler=new am({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-input-color"]},children:[this.dropdownView,this.inputView]}),this.on("change:value",((t,e,n)=>this._setInputValue(n)))}render(){super.render(),[this.inputView,this.dropdownView.buttonView].forEach((t=>{this.focusTracker.add(t.element),this._focusables.add(t)})),this.keystrokes.listenTo(this.element)}focus(t){-1===t?this.focusCycler.focusLast():this.focusCycler.focusFirst()}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}_createDropdownView(){const t=this.locale,e=t.t,n=this.bindTemplate,o=this._createColorSelector(t),i=Ug(t),r=new Lr;return r.setTemplate({tag:"span",attributes:{class:["ck","ck-input-color__button__preview"],style:{backgroundColor:n.to("value")}},children:[{tag:"span",attributes:{class:["ck","ck-input-color__button__preview__no-color-indicator",n.if("value","ck-hidden",(t=>""!=t))]}}]}),i.buttonView.extendTemplate({attributes:{class:"ck-input-color__button"}}),i.buttonView.children.add(r),i.buttonView.label=e("Color picker"),i.buttonView.tooltip=!0,i.panelPosition="rtl"===t.uiLanguageDirection?"se":"sw",i.panelView.children.add(o),i.bind("isEnabled").to(this,"isReadOnly",(t=>!t)),i.on("change:isOpen",((t,e,n)=>{n&&(o.updateSelectedColors(),o.showColorGridsFragment())})),i}_createInputTextView(){const t=this.locale,e=new pg(t);return e.extendTemplate({on:{blur:e.bindTemplate.to("blur")}}),e.value=this.value,e.bind("isReadOnly","hasError").to(this),this.bind("isFocused","isEmpty").to(e),e.on("input",(()=>{const t=e.element.value,n=this.options.colorDefinitions.find((e=>t===e.label));this._stillTyping=!0,this.value=n&&n.color||t})),e.on("blur",(()=>{this._stillTyping=!1,this._setInputValue(e.element.value)})),e.delegate("input").to(this),e}_createColorSelector(t){const e=t.t,n=this.options.defaultColorValue||"",o=e(n?"Restore default":"Remove color"),i=new Up(t,{colors:this.options.colorDefinitions,columns:this.options.columns,removeButtonLabel:o,colorPickerLabel:e("Color picker"),colorPickerViewConfig:!1!==this.options.colorPickerConfig&&{...this.options.colorPickerConfig,hideInput:!0}});i.appendUI(),i.on("execute",((t,e)=>{"colorPickerSaveButton"!==e.source?(this.value=e.value||n,this.fire("input"),"colorPicker"!==e.source&&(this.dropdownView.isOpen=!1)):this.dropdownView.isOpen=!1}));let r=this.value;return i.on("colorPicker:cancel",(()=>{this.value=r,this.fire("input"),this.dropdownView.isOpen=!1})),i.colorGridsFragmentView.colorPickerButtonView.on("execute",(()=>{r=this.value})),i.bind("selectedColor").to(this,"value"),i}_setInputValue(t){if(!this._stillTyping){const e=PD(t),n=this.options.colorDefinitions.find((t=>e===PD(t.color)));this.inputView.value=n?n.label:t||""}}}function PD(t){return t.replace(/([(,])\s+/g,"$1").replace(/^\s+|\s+(?=[),\s]|$)/g,"").replace(/,|\s/g," ")}const zD=t=>""===t;function RD(t){return{none:t("None"),solid:t("Solid"),dotted:t("Dotted"),dashed:t("Dashed"),double:t("Double"),groove:t("Groove"),ridge:t("Ridge"),inset:t("Inset"),outset:t("Outset")}}function LD(t){return t('The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".')}function FD(t){return t('The value is invalid. Try "10px" or "2em" or simply "2".')}function MD(t){return t=t.trim().toLowerCase(),zD(t)||mu(t)}function VD(t){return t=t.trim(),zD(t)||WD(t)||ku(t)||wu(t)}function OD(t){return t=t.trim(),zD(t)||WD(t)||ku(t)}function ND(t,e){const n=new Qi,o=RD(t.t);for(const i in o){const r={type:"button",model:new If({_borderStyleValue:i,label:o[i],role:"menuitemradio",withText:!0})};"none"===i?r.model.bind("isOn").to(t,"borderStyle",(t=>"none"===e?!t:t===i)):r.model.bind("isOn").to(t,"borderStyle",(t=>t===i)),n.add(r)}return n}function HD(t){const{view:e,icons:n,toolbar:o,labels:i,propertyName:r,nameToValue:s,defaultValue:a}=t;for(const t in i){const c=new om(e.locale);c.set({label:i[t],icon:n[t],tooltip:i[t]});const l=s?s(t):t;c.bind("isOn").to(e,r,(t=>{let e=t;return""===t&&a&&(e=a),l===e})),c.on("execute",(()=>{e[r]=l})),o.items.add(c)}}const qD=[{color:"hsl(0, 0%, 0%)",label:"Black"},{color:"hsl(0, 0%, 30%)",label:"Dim grey"},{color:"hsl(0, 0%, 60%)",label:"Grey"},{color:"hsl(0, 0%, 90%)",label:"Light grey"},{color:"hsl(0, 0%, 100%)",label:"White",hasBorder:!0},{color:"hsl(0, 75%, 60%)",label:"Red"},{color:"hsl(30, 75%, 60%)",label:"Orange"},{color:"hsl(60, 75%, 60%)",label:"Yellow"},{color:"hsl(90, 75%, 60%)",label:"Light green"},{color:"hsl(120, 75%, 60%)",label:"Green"},{color:"hsl(150, 75%, 60%)",label:"Aquamarine"},{color:"hsl(180, 75%, 60%)",label:"Turquoise"},{color:"hsl(210, 75%, 60%)",label:"Light blue"},{color:"hsl(240, 75%, 60%)",label:"Blue"},{color:"hsl(270, 75%, 60%)",label:"Purple"}];function jD(t){return(e,n,o)=>{const i=new ID(e.locale,{colorDefinitions:(r=t.colorConfig,r.map((t=>({color:t.model,label:t.label,options:{hasBorder:t.hasBorder}})))),columns:t.columns,defaultColorValue:t.defaultColorValue,colorPickerConfig:t.colorPickerConfig});var r;return i.inputView.set({id:n,ariaDescribedById:o}),i.bind("isReadOnly").to(e,"isEnabled",(t=>!t)),i.bind("hasError").to(e,"errorText",(t=>!!t)),i.on("input",(()=>{e.errorText=null})),e.bind("isEmpty","isFocused").to(i),i}}function WD(t){const e=parseFloat(t);return!Number.isNaN(e)&&t===String(e)}var GD=n(2655),KD={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(GD.A,KD);GD.A.locals;class UD extends Lr{children;constructor(t,e={}){super(t);const n=this.bindTemplate;this.set("class",e.class||null),this.children=this.createCollection(),e.children&&e.children.forEach((t=>this.children.add(t))),this.set("_role",null),this.set("_ariaLabelledBy",null),e.labelView&&this.set({_role:"group",_ariaLabelledBy:e.labelView.id}),this.setTemplate({tag:"div",attributes:{class:["ck","ck-form__row",n.to("class")],role:n.to("_role"),"aria-labelledby":n.to("_ariaLabelledBy")},children:this.children})}}var $D=n(4043),ZD={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()($D.A,ZD);$D.A.locals;var JD=n(1623),YD={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(JD.A,YD);JD.A.locals;var QD=n(8986),XD={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(QD.A,XD);QD.A.locals;const tB=tf.defaultPositions,eB=[tB.northArrowSouth,tB.northArrowSouthWest,tB.northArrowSouthEast,tB.southArrowNorth,tB.southArrowNorthWest,tB.southArrowNorthEast,tB.viewportStickyNorth];function nB(t,e){const n=t.plugins.get("ContextualBalloon"),o=t.editing.view.document.selection;let i;"cell"===e?DD(o)&&(i=iB(t)):xD(o)&&(i=oB(t)),i&&n.updatePosition(i)}function oB(t){const e=oE(t.model.document.selection),n=t.editing.mapper.toViewElement(e);return{target:t.editing.view.domConverter.mapViewToDom(n),positions:eB}}function iB(t){const e=t.editing.mapper,n=t.editing.view.domConverter,o=t.model.document.selection;if(o.rangeCount>1)return{target:()=>function(t,e){const n=e.editing.mapper,o=e.editing.view.domConverter,i=Array.from(t).map((t=>{const e=rB(t.start),i=n.toViewElement(e);return new Ko(o.mapViewToDom(i))}));return Ko.getBoundingRect(i)}(o.getRanges(),t),positions:eB};const i=rB(o.getFirstPosition()),r=e.toViewElement(i);return{target:n.mapViewToDom(r),positions:eB}}function rB(t){return t.nodeAfter&&t.nodeAfter.is("element","tableCell")?t.nodeAfter:t.findAncestor("tableCell")}function sB(t){if(!t||!j(t))return t;const{top:e,right:n,bottom:o,left:i}=t;return e==n&&n==o&&o==i?e:void 0}function aB(t,e){const n=parseFloat(t);return Number.isNaN(n)||String(n)!==String(t)?t:`${n}${e}`}function cB(t,e={}){const n={borderStyle:"none",borderWidth:"",borderColor:"",backgroundColor:"",width:"",height:"",...t};return e.includeAlignmentProperty&&!n.alignment&&(n.alignment="center"),e.includePaddingProperty&&!n.padding&&(n.padding=""),e.includeVerticalAlignmentProperty&&!n.verticalAlignment&&(n.verticalAlignment="middle"),e.includeHorizontalAlignmentProperty&&!n.horizontalAlignment&&(n.horizontalAlignment=e.isRightToLeftContent?"right":"left"),n}function lB(t,e){const{modelAttribute:n,styleName:o,viewElement:i,defaultValue:r,reduceBoxSides:s=!1,shouldUpcast:a=(()=>!0)}=e;t.for("upcast").attributeToAttribute({view:{name:i,styles:{[o]:/[\s\S]+/}},model:{key:n,value:t=>{if(!a(t))return;const e=t.getNormalizedStyle(o),n=s?hB(e):e;return r!==n?n:void 0}}})}function dB(t,e){const{modelAttribute:n,styleName:o}=e;t.for("downcast").add((t=>t.on(`attribute:${n}:table`,((t,e,n)=>{const{item:i,attributeNewValue:r}=e,{mapper:s,writer:a}=n;if(!n.consumable.consume(e.item,t.name))return;const c=[...s.toViewElement(i).getChildren()].find((t=>t.is("element","table")));r?a.setStyle(o,r,c):a.removeStyle(o,c)}))))}function hB(t){if(!t)return;const e=["top","right","bottom","left"];if(!e.every((e=>t[e])))return t;const n=t.top;return e.every((e=>t[e]===n))?n:t}class uB extends qr{attributeName;_defaultValue;constructor(t,e,n){super(t),this.attributeName=e,this._defaultValue=n}refresh(){const t=oE(this.editor.model.document.selection);this.isEnabled=!!t,this.value=this._getValue(t)}execute(t={}){const e=this.editor.model,n=e.document.selection,{value:o,batch:i}=t,r=oE(n),s=this._getValueToSet(o);e.enqueueChange(i,(t=>{s?t.setAttribute(this.attributeName,s,r):t.removeAttribute(this.attributeName,r)}))}_getValue(t){if(!t)return;const e=t.getAttribute(this.attributeName);return e!==this._defaultValue?e:void 0}_getValueToSet(t){if(t!==this._defaultValue)return t}}class mB extends uB{constructor(t,e){super(t,"tableBackgroundColor",e)}}class gB extends uB{constructor(t,e){super(t,"tableBorderColor",e)}_getValue(t){if(!t)return;const e=sB(t.getAttribute(this.attributeName));return e!==this._defaultValue?e:void 0}}class pB extends uB{constructor(t,e){super(t,"tableBorderStyle",e)}_getValue(t){if(!t)return;const e=sB(t.getAttribute(this.attributeName));return e!==this._defaultValue?e:void 0}}class fB extends uB{constructor(t,e){super(t,"tableBorderWidth",e)}_getValue(t){if(!t)return;const e=sB(t.getAttribute(this.attributeName));return e!==this._defaultValue?e:void 0}_getValueToSet(t){const e=aB(t,"px");if(e!==this._defaultValue)return e}}class kB extends uB{constructor(t,e){super(t,"tableWidth",e)}_getValueToSet(t){if((t=aB(t,"px"))!==this._defaultValue)return t}}class bB extends uB{constructor(t,e){super(t,"tableHeight",e)}_getValueToSet(t){if((t=aB(t,"px"))!==this._defaultValue)return t}}class wB extends uB{constructor(t,e){super(t,"tableAlignment",e)}}const _B=/^(left|center|right)$/,AB=/^(left|none|right)$/;class CB extends Nr{static get pluginName(){return"TablePropertiesEditing"}static get requires(){return[rD]}init(){const t=this.editor,e=t.model.schema,n=t.conversion;t.config.define("table.tableProperties.defaultProperties",{});const o=cB(t.config.get("table.tableProperties.defaultProperties"),{includeAlignmentProperty:!0});t.data.addStyleProcessorRules(zu),function(t,e,n){const o={width:"tableBorderWidth",color:"tableBorderColor",style:"tableBorderStyle"};t.extend("table",{allowAttributes:Object.values(o)}),function(t,e,n,o){t.for("upcast").add((t=>t.on("element:"+e,((t,e,i)=>{if(!e.modelRange)return;const r=["border-top-width","border-top-color","border-top-style","border-bottom-width","border-bottom-color","border-bottom-style","border-right-width","border-right-color","border-right-style","border-left-width","border-left-color","border-left-style"].filter((t=>e.viewItem.hasStyle(t)));if(!r.length)return;const s={styles:r};if(!i.consumable.test(e.viewItem,s))return;const a=[...e.modelRange.getItems({shallow:!0})].pop();i.consumable.consume(e.viewItem,s);const c={style:e.viewItem.getNormalizedStyle("border-style"),color:e.viewItem.getNormalizedStyle("border-color"),width:e.viewItem.getNormalizedStyle("border-width")},l={style:hB(c.style),color:hB(c.color),width:hB(c.width)};l.style!==o.style&&i.writer.setAttribute(n.style,l.style,a),l.color!==o.color&&i.writer.setAttribute(n.color,l.color,a),l.width!==o.width&&i.writer.setAttribute(n.width,l.width,a)}))))}(e,"table",o,n),dB(e,{modelAttribute:o.color,styleName:"border-color"}),dB(e,{modelAttribute:o.style,styleName:"border-style"}),dB(e,{modelAttribute:o.width,styleName:"border-width"})}(e,n,{color:o.borderColor,style:o.borderStyle,width:o.borderWidth}),t.commands.add("tableBorderColor",new gB(t,o.borderColor)),t.commands.add("tableBorderStyle",new pB(t,o.borderStyle)),t.commands.add("tableBorderWidth",new fB(t,o.borderWidth)),function(t,e,n){t.extend("table",{allowAttributes:["tableAlignment"]}),e.for("downcast").attributeToAttribute({model:{name:"table",key:"tableAlignment"},view:t=>({key:"style",value:{float:"center"===t?"none":t}}),converterPriority:"high"}),e.for("upcast").attributeToAttribute({view:{name:/^(table|figure)$/,styles:{float:AB}},model:{key:"tableAlignment",value:t=>{let e=t.getStyle("float");return"none"===e&&(e="center"),e===n?null:e}}}).attributeToAttribute({view:{attributes:{align:_B}},model:{name:"table",key:"tableAlignment",value:t=>{const e=t.getAttribute("align");return e===n?null:e}}})}(e,n,o.alignment),t.commands.add("tableAlignment",new wB(t,o.alignment)),vB(e,n,{modelAttribute:"tableWidth",styleName:"width",defaultValue:o.width}),t.commands.add("tableWidth",new kB(t,o.width)),vB(e,n,{modelAttribute:"tableHeight",styleName:"height",defaultValue:o.height}),t.commands.add("tableHeight",new bB(t,o.height)),t.data.addStyleProcessorRules(Pu),function(t,e,n){const{modelAttribute:o}=n;t.extend("table",{allowAttributes:[o]}),lB(e,{viewElement:"table",...n}),dB(e,n)}(e,n,{modelAttribute:"tableBackgroundColor",styleName:"background-color",defaultValue:o.backgroundColor}),t.commands.add("tableBackgroundColor",new mB(t,o.backgroundColor))}}function vB(t,e,n){const{modelAttribute:o}=n;t.extend("table",{allowAttributes:[o]}),lB(e,{viewElement:/^(table|figure)$/,shouldUpcast:t=>!("table"==t.name&&"figure"==t.parent.name),...n}),function(t,e){const{modelElement:n,modelAttribute:o,styleName:i}=e;t.for("downcast").attributeToAttribute({model:{name:n,key:o},view:t=>({key:"style",value:{[i]:t}})})}(e,{modelElement:"table",...n})}var yB=n(5562),xB={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(yB.A,xB);yB.A.locals;const EB={left:Ju.objectLeft,center:Ju.objectCenter,right:Ju.objectRight};class DB extends Lr{options;focusTracker;keystrokes;children;borderStyleDropdown;borderWidthInput;borderColorInput;backgroundInput;widthInput;heightInput;alignmentToolbar;saveButtonView;cancelButtonView;_focusables;_focusCycler;constructor(t,e){super(t),this.set({borderStyle:"",borderWidth:"",borderColor:"",backgroundColor:"",width:"",height:"",alignment:""}),this.options=e;const{borderStyleDropdown:n,borderWidthInput:o,borderColorInput:i,borderRowLabel:r}=this._createBorderFields(),{backgroundRowLabel:s,backgroundInput:a}=this._createBackgroundFields(),{widthInput:c,operatorLabel:l,heightInput:d,dimensionsLabel:h}=this._createDimensionFields(),{alignmentToolbar:u,alignmentLabel:m}=this._createAlignmentFields();this.focusTracker=new tr,this.keystrokes=new er,this.children=this.createCollection(),this.borderStyleDropdown=n,this.borderWidthInput=o,this.borderColorInput=i,this.backgroundInput=a,this.widthInput=c,this.heightInput=d,this.alignmentToolbar=u;const{saveButtonView:g,cancelButtonView:p}=this._createActionButtons();this.saveButtonView=g,this.cancelButtonView=p,this._focusables=new lr,this._focusCycler=new am({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.children.add(new sm(t,{label:this.t("Table properties")})),this.children.add(new UD(t,{labelView:r,children:[r,n,i,o],class:"ck-table-form__border-row"})),this.children.add(new UD(t,{labelView:s,children:[s,a],class:"ck-table-form__background-row"})),this.children.add(new UD(t,{children:[new UD(t,{labelView:h,children:[h,c,l,d],class:"ck-table-form__dimensions-row"}),new UD(t,{labelView:m,children:[m,u],class:"ck-table-properties-form__alignment-row"})]})),this.children.add(new UD(t,{children:[this.saveButtonView,this.cancelButtonView],class:"ck-table-form__action-row"})),this.setTemplate({tag:"form",attributes:{class:["ck","ck-form","ck-table-form","ck-table-properties-form"],tabindex:"-1"},children:this.children})}render(){super.render(),Vr({view:this}),[this.borderColorInput,this.backgroundInput].forEach((t=>{t.fieldView.focusCycler.on("forwardCycle",(t=>{this._focusCycler.focusNext(),t.stop()})),t.fieldView.focusCycler.on("backwardCycle",(t=>{this._focusCycler.focusPrevious(),t.stop()}))})),[this.borderStyleDropdown,this.borderColorInput,this.borderWidthInput,this.backgroundInput,this.widthInput,this.heightInput,this.alignmentToolbar,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t),this.focusTracker.add(t.element)})),this.keystrokes.listenTo(this.element)}destroy(){super.destroy(),this.focusTracker.destroy(),this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createBorderFields(){const t=this.options.defaultTableProperties,e={style:t.borderStyle,width:t.borderWidth,color:t.borderColor},n=jD({colorConfig:this.options.borderColors,columns:5,defaultColorValue:e.color,colorPickerConfig:this.options.colorPickerConfig}),o=this.locale,i=this.t,r=i("Style"),s=new Pm(o);s.text=i("Border");const a=RD(i),c=new dg(o,np);c.set({label:r,class:"ck-table-form__border-style"}),c.fieldView.buttonView.set({ariaLabel:r,ariaLabelledBy:void 0,isOn:!1,withText:!0,tooltip:r}),c.fieldView.buttonView.bind("label").to(this,"borderStyle",(t=>a[t||"none"])),c.fieldView.on("execute",(t=>{this.borderStyle=t.source._borderStyleValue})),c.bind("isEmpty").to(this,"borderStyle",(t=>!t)),Jg(c.fieldView,ND(this,e.style),{role:"menu",ariaLabel:r});const l=new dg(o,tp);l.set({label:i("Width"),class:"ck-table-form__border-width"}),l.fieldView.bind("value").to(this,"borderWidth"),l.bind("isEnabled").to(this,"borderStyle",BB),l.fieldView.on("input",(()=>{this.borderWidth=l.fieldView.element.value}));const d=new dg(o,n);return d.set({label:i("Color"),class:"ck-table-form__border-color"}),d.fieldView.bind("value").to(this,"borderColor"),d.bind("isEnabled").to(this,"borderStyle",BB),d.fieldView.on("input",(()=>{this.borderColor=d.fieldView.value})),this.on("change:borderStyle",((t,n,o,i)=>{BB(o)||(this.borderColor="",this.borderWidth=""),BB(i)||(this.borderColor=e.color,this.borderWidth=e.width)})),{borderRowLabel:s,borderStyleDropdown:c,borderColorInput:d,borderWidthInput:l}}_createBackgroundFields(){const t=this.locale,e=this.t,n=new Pm(t);n.text=e("Background");const o=jD({colorConfig:this.options.backgroundColors,columns:5,defaultColorValue:this.options.defaultTableProperties.backgroundColor,colorPickerConfig:this.options.colorPickerConfig}),i=new dg(t,o);return i.set({label:e("Color"),class:"ck-table-properties-form__background"}),i.fieldView.bind("value").to(this,"backgroundColor"),i.fieldView.on("input",(()=>{this.backgroundColor=i.fieldView.value})),{backgroundRowLabel:n,backgroundInput:i}}_createDimensionFields(){const t=this.locale,e=this.t,n=new Pm(t);n.text=e("Dimensions");const o=new dg(t,tp);o.set({label:e("Width"),class:"ck-table-form__dimensions-row__width"}),o.fieldView.bind("value").to(this,"width"),o.fieldView.on("input",(()=>{this.width=o.fieldView.element.value}));const i=new Lr(t);i.setTemplate({tag:"span",attributes:{class:["ck-table-form__dimension-operator"]},children:[{text:"×"}]});const r=new dg(t,tp);return r.set({label:e("Height"),class:"ck-table-form__dimensions-row__height"}),r.fieldView.bind("value").to(this,"height"),r.fieldView.on("input",(()=>{this.height=r.fieldView.element.value})),{dimensionsLabel:n,widthInput:o,operatorLabel:i,heightInput:r}}_createAlignmentFields(){const t=this.locale,e=this.t,n=new Pm(t);n.text=e("Alignment");const o=new Sg(t);return o.set({isCompact:!0,ariaLabel:e("Table alignment toolbar")}),HD({view:this,icons:EB,toolbar:o,labels:this._alignmentLabels,propertyName:"alignment",defaultValue:this.options.defaultTableProperties.alignment}),{alignmentLabel:n,alignmentToolbar:o}}_createActionButtons(){const t=this.locale,e=this.t,n=new om(t),o=new om(t),i=[this.borderWidthInput,this.borderColorInput,this.backgroundInput,this.widthInput,this.heightInput];return n.set({label:e("Save"),icon:Ju.check,class:"ck-button-save",type:"submit",withText:!0}),n.bind("isEnabled").toMany(i,"errorText",((...t)=>t.every((t=>!t)))),o.set({label:e("Cancel"),icon:Ju.cancel,class:"ck-button-cancel",withText:!0}),o.delegate("execute").to(this,"cancel"),{saveButtonView:n,cancelButtonView:o}}get _alignmentLabels(){const t=this.locale,e=this.t,n=e("Align table to the left"),o=e("Center table"),i=e("Align table to the right");return"rtl"===t.uiLanguageDirection?{right:i,center:o,left:n}:{left:n,center:o,right:i}}}function BB(t){return"none"!==t}const TB={borderStyle:"tableBorderStyle",borderColor:"tableBorderColor",borderWidth:"tableBorderWidth",backgroundColor:"tableBackgroundColor",width:"tableWidth",height:"tableHeight",alignment:"tableAlignment"};class SB extends Nr{_defaultTableProperties;_balloon;view=null;_undoStepBatch;_isReady;static get requires(){return[Mf]}static get pluginName(){return"TablePropertiesUI"}constructor(t){super(t),t.config.define("table.tableProperties",{borderColors:qD,backgroundColors:qD})}init(){const t=this.editor,e=t.t;this._defaultTableProperties=cB(t.config.get("table.tableProperties.defaultProperties"),{includeAlignmentProperty:!0}),this._balloon=t.plugins.get(Mf),t.ui.componentFactory.add("tableProperties",(n=>{const o=new om(n);o.set({label:e("Table properties"),icon:'',tooltip:!0}),this.listenTo(o,"execute",(()=>this._showView()));const i=Object.values(TB).map((e=>t.commands.get(e)));return o.bind("isEnabled").toMany(i,"isEnabled",((...t)=>t.some((t=>t)))),o}))}destroy(){super.destroy(),this.view&&this.view.destroy()}_createPropertiesView(){const t=this.editor,e=t.config.get("table.tableProperties"),n=Jm(e.borderColors),o=Zm(t.locale,n),i=Jm(e.backgroundColors),r=Zm(t.locale,i),s=!1!==e.colorPicker,a=new DB(t.locale,{borderColors:o,backgroundColors:r,defaultTableProperties:this._defaultTableProperties,colorPickerConfig:!!s&&(e.colorPicker||{})}),c=t.t;a.render(),this.listenTo(a,"submit",(()=>{this._hideView()})),this.listenTo(a,"cancel",(()=>{this._undoStepBatch.operations.length&&t.execute("undo",this._undoStepBatch),this._hideView()})),a.keystrokes.set("Esc",((t,e)=>{this._hideView(),e()})),Fr({emitter:a,activator:()=>this._isViewInBalloon,contextElements:[this._balloon.view.element],callback:()=>this._hideView()});const l=LD(c),d=FD(c);return a.on("change:borderStyle",this._getPropertyChangeCallback("tableBorderStyle")),a.on("change:borderColor",this._getValidatedPropertyChangeCallback({viewField:a.borderColorInput,commandName:"tableBorderColor",errorText:l,validator:MD})),a.on("change:borderWidth",this._getValidatedPropertyChangeCallback({viewField:a.borderWidthInput,commandName:"tableBorderWidth",errorText:d,validator:OD})),a.on("change:backgroundColor",this._getValidatedPropertyChangeCallback({viewField:a.backgroundInput,commandName:"tableBackgroundColor",errorText:l,validator:MD})),a.on("change:width",this._getValidatedPropertyChangeCallback({viewField:a.widthInput,commandName:"tableWidth",errorText:d,validator:VD})),a.on("change:height",this._getValidatedPropertyChangeCallback({viewField:a.heightInput,commandName:"tableHeight",errorText:d,validator:VD})),a.on("change:alignment",this._getPropertyChangeCallback("tableAlignment")),a}_fillViewFormFromCommandValues(){const t=this.editor.commands,e=t.get("tableBorderStyle");Object.entries(TB).map((([e,n])=>{const o=e,i=this._defaultTableProperties[o]||"";return[o,t.get(n).value||i]})).forEach((([t,n])=>{("borderColor"!==t&&"borderWidth"!==t||"none"!==e.value)&&this.view.set(t,n)})),this._isReady=!0}_showView(){const t=this.editor;this.view||(this.view=this._createPropertiesView()),this.listenTo(t.ui,"update",(()=>{this._updateView()})),this._fillViewFormFromCommandValues(),this._balloon.add({view:this.view,position:oB(t)}),this._undoStepBatch=t.model.createBatch(),this.view.focus()}_hideView(){const t=this.editor;this.stopListening(t.ui,"update"),this._isReady=!1,this.view.saveButtonView.focus(),this._balloon.remove(this.view),this.editor.editing.view.focus()}_updateView(){const t=this.editor;xD(t.editing.view.document.selection)?this._isViewVisible&&nB(t,"table"):this._hideView()}get _isViewVisible(){return!!this.view&&this._balloon.visibleView===this.view}get _isViewInBalloon(){return!!this.view&&this._balloon.hasView(this.view)}_getPropertyChangeCallback(t){return(e,n,o)=>{this._isReady&&this.editor.execute(t,{value:o,batch:this._undoStepBatch})}}_getValidatedPropertyChangeCallback(t){const{commandName:e,viewField:n,validator:o,errorText:i}=t,r=Cc((()=>{n.errorText=i}),500);return(t,i,s)=>{r.cancel(),this._isReady&&(o(s)?(this.editor.execute(e,{value:s,batch:this._undoStepBatch}),n.errorText=null):r())}}}var IB=n(4143),PB={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(IB.A,PB);IB.A.locals;var zB=n(8795),RB={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};Pr()(zB.A,RB);zB.A.locals;class LB extends Xk{}class FB extends ib{}const MB=[class extends Nr{static get requires(){return[ub,gb]}static get pluginName(){return"Alignment"}},class extends Nr{static get requires(){return[Bb]}static get pluginName(){return"Autoformat"}afterInit(){const t=this.editor,e=this.editor.t;this._addListAutoformats(),this._addBasicStylesAutoformats(),this._addHeadingAutoformats(),this._addBlockQuoteAutoformats(),this._addCodeBlockAutoformats(),this._addHorizontalLineAutoformats(),t.accessibility.addKeystrokeInfos({keystrokes:[{label:e("Revert autoformatting action"),keystroke:"Backspace"}]})}_addListAutoformats(){const t=this.editor.commands;t.get("bulletedList")&&Vb(this.editor,this,/^[*-]\s$/,"bulletedList"),t.get("numberedList")&&Vb(this.editor,this,/^1[.|)]\s$/,"numberedList"),t.get("todoList")&&Vb(this.editor,this,/^\[\s?\]\s$/,"todoList"),t.get("checkTodoList")&&Vb(this.editor,this,/^\[\s?x\s?\]\s$/,(()=>{this.editor.execute("todoList"),this.editor.execute("checkTodoList")}))}_addBasicStylesAutoformats(){const t=this.editor.commands;if(t.get("bold")){const t=Hb(this.editor,"bold");Ob(this.editor,this,/(?:^|\s)(\*\*)([^*]+)(\*\*)$/g,t),Ob(this.editor,this,/(?:^|\s)(__)([^_]+)(__)$/g,t)}if(t.get("italic")){const t=Hb(this.editor,"italic");Ob(this.editor,this,/(?:^|\s)(\*)([^*_]+)(\*)$/g,t),Ob(this.editor,this,/(?:^|\s)(_)([^_]+)(_)$/g,t)}if(t.get("code")){const t=Hb(this.editor,"code");Ob(this.editor,this,/(`)([^`]+)(`)$/g,t)}if(t.get("strikethrough")){const t=Hb(this.editor,"strikethrough");Ob(this.editor,this,/(~~)([^~]+)(~~)$/g,t)}}_addHeadingAutoformats(){const t=this.editor.commands.get("heading");t&&t.modelElements.filter((t=>t.match(/^heading[1-6]$/))).forEach((e=>{const n=e[7],o=new RegExp(`^(#{${n}})\\s$`);Vb(this.editor,this,o,(()=>{if(!t.isEnabled||t.value===e)return!1;this.editor.execute("heading",{value:e})}))}))}_addBlockQuoteAutoformats(){this.editor.commands.get("blockQuote")&&Vb(this.editor,this,/^>\s$/,"blockQuote")}_addCodeBlockAutoformats(){const t=this.editor,e=t.model.document.selection;t.commands.get("codeBlock")&&Vb(t,this,/^```$/,(()=>{if(e.getFirstPosition().parent.is("element","listItem"))return!1;this.editor.execute("codeBlock",{usePreviousLanguageChoice:!0})}))}_addHorizontalLineAutoformats(){this.editor.commands.get("horizontalLine")&&Vb(this.editor,this,/^---$/,"horizontalLine")}},class extends Nr{static get requires(){return[Sw,zw]}static get pluginName(){return"BlockQuote"}},class extends Nr{static get requires(){return[Wb,Ub]}static get pluginName(){return"Bold"}},class extends Ur{tokenUrl;uploadUrl;webSocketUrl;bundleVersion;token=null;_tokens=new Map;static get pluginName(){return"CloudServices"}static get requires(){return[Nw]}async init(){const t=this.context.config.get("cloudServices")||{};for(const[e,n]of Object.entries(t))this[e]=n;if(!this.tokenUrl)return void(this.token=null);const e=this.context.plugins.get("CloudServicesCore");this.token=await e.createToken(this.tokenUrl).init(),this._tokens.set(this.tokenUrl,this.token)}async registerTokenUrl(t){if(this._tokens.has(t))return this.getTokenFor(t);const e=this.context.plugins.get("CloudServicesCore"),n=await e.createToken(t).init();return this._tokens.set(t,n),n}getTokenFor(t){const e=this._tokens.get(t);if(!e)throw new x("cloudservices-token-not-registered",this);return e}destroy(){super.destroy();for(const t of this._tokens.values())t.destroy()}},class extends Nr{static get requires(){return[Vm,mA,Aw,wA,xw,Tb,DA]}static get pluginName(){return"Essentials"}},class extends Nr{static get requires(){return[iC,rC]}static get pluginName(){return"FontBackgroundColor"}},class extends Nr{static get requires(){return[tC,nC]}static get pluginName(){return"FontColor"}},class extends Nr{static get requires(){return[NA,qA]}static get pluginName(){return"FontFamily"}},class extends Nr{static get requires(){return[$A,QA]}static get pluginName(){return"FontSize"}normalizeSizeOptions(t){return WA(t)}},class extends Nr{static get requires(){return[mC,fC]}static get pluginName(){return"Heading"}},class extends Nr{static get requires(){return[_C,AC,O_]}static get pluginName(){return"HorizontalLine"}},class extends Nr{static get requires(){return[rv,av]}static get pluginName(){return"Image"}},class extends Nr{static get requires(){return[dv,hv]}static get pluginName(){return"ImageCaption"}},class extends Nr{static get requires(){return[yv,Iv,Vv,Ev]}static get pluginName(){return"ImageResize"}},class extends Nr{static get requires(){return[ey,iy]}static get pluginName(){return"ImageStyle"}},class extends Nr{static get requires(){return[H_,BC]}static get pluginName(){return"ImageToolbar"}afterInit(){const t=this.editor,e=t.t,n=t.plugins.get(H_),o=t.plugins.get("ImageUtils");n.register("image",{ariaLabel:e("Image toolbar"),items:cy(t.config.get("image.toolbar")||[]),getRelatedElement:t=>o.getClosestSelectedImageWidget(t)})}},class extends Nr{static get pluginName(){return"Indent"}static get requires(){return[ly,dy]}},class extends Nr{static get requires(){return[Yb,Xb]}static get pluginName(){return"Italic"}},cx,Rx,lC,class extends Nr{_characters;_groups;_allSpecialCharactersGroupLabel;static get requires(){return[Tb]}static get pluginName(){return"SpecialCharacters"}constructor(t){super(t);const e=t.t;this._characters=new Map,this._groups=new Map,this._allSpecialCharactersGroupLabel=e("All")}init(){const t=this.editor,e=t.t,n=t.commands.get("insertText");t.ui.componentFactory.add("specialCharacters",(o=>{const i=Ug(o);let r;return i.buttonView.set({label:e("Special characters"),icon:'',tooltip:!0}),i.bind("isEnabled").to(n),i.on("execute",((e,n)=>{t.execute("insertText",{text:n.character}),t.editing.view.focus()})),i.on("change:isOpen",(()=>{if(!r){r=this._createDropdownPanelContent(o,i);const t=new Gx(o,r.navigationView,r.gridView,r.infoView);i.panelView.children.add(t)}r.infoView.set({character:null,name:null})})),i}))}addItems(t,e,n={label:t}){if(t===$x)throw new x("special-character-invalid-group-name",null);const o=this._getGroup(t,n.label);for(const t of e)o.items.add(t.title),this._characters.set(t.title,t.character)}getGroups(){const t=Array.from(this._groups.keys()),e=this.editor.config.get("specialCharacters.order")||[],n=e.find((e=>!t.includes(e)));if(n)throw new x("special-character-invalid-order-group-name",null,{invalidGroup:n});return new Set([...e,...t])}getCharactersForGroup(t){if(t===$x)return new Set(this._characters.keys());const e=this._groups.get(t);return e?e.items:void 0}getCharacter(t){return this._characters.get(t)}_getGroup(t,e){return this._groups.has(t)||this._groups.set(t,{items:new Set,label:e}),this._groups.get(t)}_updateGrid(t,e){e.tiles.clear();const n=this.getCharactersForGroup(t);for(const t of n){const n=this.getCharacter(t);e.tiles.add(e.createTile(n,t))}}_createDropdownPanelContent(t,e){const n=Array.from(this.getGroups()).map((t=>[t,this._groups.get(t).label])),o=new Map([[$x,this._allSpecialCharactersGroupLabel],...n]),i=new Mx(t,o),r=new Nx(t),s=new jx(t);return r.delegate("execute").to(e),r.on("tileHover",((t,e)=>{s.set(e)})),r.on("tileFocus",((t,e)=>{s.set(e)})),i.on("execute",(()=>{this._updateGrid(i.currentGroupName,r)})),this._updateGrid(i.currentGroupName,r),{navigationView:i,gridView:r,infoView:s}}},Xx,class extends Nr{static get pluginName(){return"SpecialCharactersEssentials"}static get requires(){return[Xx,Jx,Yx,Zx,Qx]}},Qx,Jx,class extends Nr{static get requires(){return[ew,ow]}static get pluginName(){return"Strikethrough"}},class extends Nr{static get requires(){return[rw,aw]}static get pluginName(){return"Subscript"}},class extends Nr{static get requires(){return[lw,hw]}static get pluginName(){return"Superscript"}},class extends Nr{static get requires(){return[rD,dD,gD,AD,wD,pD,O_]}static get pluginName(){return"Table"}},class extends Nr{static get pluginName(){return"TableProperties"}static get requires(){return[CB,SB]}},class extends Nr{static get requires(){return[H_]}static get pluginName(){return"TableToolbar"}afterInit(){const t=this.editor,e=t.t,n=t.plugins.get(H_),o=t.config.get("table.contentToolbar"),i=t.config.get("table.tableToolbar");o&&n.register("tableContent",{ariaLabel:e("Table toolbar"),items:o,getRelatedElement:DD}),i&&n.register("table",{ariaLabel:e("Table toolbar"),items:i,getRelatedElement:ED})}},class extends Nr{static get requires(){return["Delete","Input"]}static get pluginName(){return"TextTransformation"}constructor(t){super(t),t.config.define("typing",{transformations:{include:zb}})}init(){const t=this.editor.model.document.selection;t.on("change:range",(()=>{this.isEnabled=!t.anchor.parent.is("element","codeBlock")})),this._enableTransformationWatchers()}_enableTransformationWatchers(){const t=this.editor,e=t.model,n=t.plugins.get("Delete"),o=function(t){const e=t.extra||[],n=t.remove||[],o=t=>!n.includes(t),i=t.include.concat(e).filter(o);return function(t){const e=new Set;for(const n of t)if("string"==typeof n&&Pb[n])for(const t of Pb[n])e.add(t);else e.add(n);return Array.from(e)}(i).filter(o).map((t=>"string"==typeof t&&Ib[t]?Ib[t]:t)).filter((t=>"object"==typeof t)).map((t=>({from:Rb(t.from),to:Lb(t.to)})))}(t.config.get("typing.transformations")),i=new Sb(t.model,(t=>{for(const e of o){if(e.from.test(t))return{normalizedTransformation:e}}}));i.on("matched:data",((t,o)=>{if(!o.batch.isTyping)return;const{from:i,to:r}=o.normalizedTransformation,s=i.exec(o.text),a=r(s.slice(1)),c=o.range;let l=s.index;e.enqueueChange((t=>{for(let n=1;n{n.requestUndoOnBackspace()}))}))})),i.bind("isEnabled").to(this)}},class extends Nr{static get requires(){return[mw,pw]}static get pluginName(){return"Underline"}},DA],VB={toolbar:{items:["undo","redo","fontFamily","fontSize","fontColor","fontBackgroundColor","alignment","outdent","indent","|","bold","italic","underline","strikethrough","subscript","superscript","|","bulletedList","numberedList","blockQuote","insertTable","horizontalLine","specialCharacters","|","heading"],shouldNotGroupWhenFull:!0},language:"en-gb",image:{toolbar:["imageTextAlternative","toggleImageCaption","imageStyle:inline","imageStyle:block","imageStyle:side"]},table:{contentToolbar:["tableColumn","tableRow","mergeTableCells","tableProperties"]}};LB.builtinPlugins=MB,LB.defaultConfig=VB,FB.builtinPlugins=MB,FB.defaultConfig=VB;const OB={ClassicEditor:LB,InlineEditor:FB}})(),o=o.default})())); +//# sourceMappingURL=ckeditor.js.map \ No newline at end of file diff --git a/ui/src/vendor/ckeditor/build/ckeditor.js.map b/ui/src/vendor/ckeditor/build/ckeditor.js.map new file mode 100644 index 0000000000..724a955197 --- /dev/null +++ b/ui/src/vendor/ckeditor/build/ckeditor.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ckeditor.js","mappings":";;;;;AAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAkB,SAAID,IAEtBD,EAAe,SAAIC,GACpB,CATD,CASGK,MAAM,IACT,M,sBCRA,MAAMC,EAAc,EAAQ,MAMtBC,EAAkB,CAAC,EACzB,IAAK,MAAMC,KAAOC,OAAOC,KAAKJ,GAC7BC,EAAgBD,EAAYE,IAAQA,EAGrC,MAAMG,EAAU,CACfC,IAAK,CAACC,SAAU,EAAGC,OAAQ,OAC3BC,IAAK,CAACF,SAAU,EAAGC,OAAQ,OAC3BE,IAAK,CAACH,SAAU,EAAGC,OAAQ,OAC3BG,IAAK,CAACJ,SAAU,EAAGC,OAAQ,OAC3BI,KAAM,CAACL,SAAU,EAAGC,OAAQ,QAC5BK,IAAK,CAACN,SAAU,EAAGC,OAAQ,OAC3BM,IAAK,CAACP,SAAU,EAAGC,OAAQ,OAC3BO,IAAK,CAACR,SAAU,EAAGC,OAAQ,OAC3BQ,IAAK,CAACT,SAAU,EAAGC,OAAQ,CAAC,QAC5BS,QAAS,CAACV,SAAU,EAAGC,OAAQ,CAAC,YAChCU,OAAQ,CAACX,SAAU,EAAGC,OAAQ,CAAC,WAC/BW,QAAS,CAACZ,SAAU,EAAGC,OAAQ,CAAC,YAChCY,IAAK,CAACb,SAAU,EAAGC,OAAQ,CAAC,IAAK,IAAK,MACtCa,MAAO,CAACd,SAAU,EAAGC,OAAQ,CAAC,MAAO,MAAO,QAC5Cc,KAAM,CAACf,SAAU,EAAGC,OAAQ,CAAC,UAG9BZ,EAAOD,QAAUU,EAGjB,IAAK,MAAMkB,KAASpB,OAAOC,KAAKC,GAAU,CACzC,KAAM,aAAcA,EAAQkB,IAC3B,MAAM,IAAIC,MAAM,8BAAgCD,GAGjD,KAAM,WAAYlB,EAAQkB,IACzB,MAAM,IAAIC,MAAM,oCAAsCD,GAGvD,GAAIlB,EAAQkB,GAAOf,OAAOiB,SAAWpB,EAAQkB,GAAOhB,SACnD,MAAM,IAAIiB,MAAM,sCAAwCD,GAGzD,MAAM,SAAChB,EAAQ,OAAEC,GAAUH,EAAQkB,UAC5BlB,EAAQkB,GAAOhB,gBACfF,EAAQkB,GAAOf,OACtBL,OAAOuB,eAAerB,EAAQkB,GAAQ,WAAY,CAACI,MAAOpB,IAC1DJ,OAAOuB,eAAerB,EAAQkB,GAAQ,SAAU,CAACI,MAAOnB,GACzD,CAEAH,EAAQC,IAAIG,IAAM,SAAUH,GAC3B,MAAMsB,EAAItB,EAAI,GAAK,IACbuB,EAAIvB,EAAI,GAAK,IACbwB,EAAIxB,EAAI,GAAK,IACbyB,EAAMC,KAAKD,IAAIH,EAAGC,EAAGC,GACrBG,EAAMD,KAAKC,IAAIL,EAAGC,EAAGC,GACrBI,EAAQD,EAAMF,EACpB,IAAII,EACAC,EAEAH,IAAQF,EACXI,EAAI,EACMP,IAAMK,EAChBE,GAAKN,EAAIC,GAAKI,EACJL,IAAMI,EAChBE,EAAI,GAAKL,EAAIF,GAAKM,EACRJ,IAAMG,IAChBE,EAAI,GAAKP,EAAIC,GAAKK,GAGnBC,EAAIH,KAAKD,IAAQ,GAAJI,EAAQ,KAEjBA,EAAI,IACPA,GAAK,KAGN,MAAME,GAAKN,EAAME,GAAO,EAUxB,OAPCG,EADGH,IAAQF,EACP,EACMM,GAAK,GACXH,GAASD,EAAMF,GAEfG,GAAS,EAAID,EAAMF,GAGjB,CAACI,EAAO,IAAJC,EAAa,IAAJC,EACrB,EAEAhC,EAAQC,IAAII,IAAM,SAAUJ,GAC3B,IAAIgC,EACAC,EACAC,EACAL,EACAC,EAEJ,MAAMR,EAAItB,EAAI,GAAK,IACbuB,EAAIvB,EAAI,GAAK,IACbwB,EAAIxB,EAAI,GAAK,IACbmC,EAAIT,KAAKC,IAAIL,EAAGC,EAAGC,GACnBY,EAAOD,EAAIT,KAAKD,IAAIH,EAAGC,EAAGC,GAC1Ba,EAAQ,SAAUC,GACvB,OAAQH,EAAIG,GAAK,EAAIF,EAAO,EAC7B,EA0BA,OAxBa,IAATA,GACHP,EAAI,EACJC,EAAI,IAEJA,EAAIM,EAAOD,EACXH,EAAOK,EAAMf,GACbW,EAAOI,EAAMd,GACbW,EAAOG,EAAMb,GAETF,IAAMa,EACTN,EAAIK,EAAOD,EACDV,IAAMY,EAChBN,EAAK,EAAI,EAAKG,EAAOE,EACXV,IAAMW,IAChBN,EAAK,EAAI,EAAKI,EAAOD,GAGlBH,EAAI,EACPA,GAAK,EACKA,EAAI,IACdA,GAAK,IAIA,CACF,IAAJA,EACI,IAAJC,EACI,IAAJK,EAEF,EAEApC,EAAQC,IAAIK,IAAM,SAAUL,GAC3B,MAAMsB,EAAItB,EAAI,GACRuB,EAAIvB,EAAI,GACd,IAAIwB,EAAIxB,EAAI,GACZ,MAAM6B,EAAI9B,EAAQC,IAAIG,IAAIH,GAAK,GACzBuC,EAAI,EAAI,IAAMb,KAAKD,IAAIH,EAAGI,KAAKD,IAAIF,EAAGC,IAI5C,OAFAA,EAAI,EAAI,EAAI,IAAME,KAAKC,IAAIL,EAAGI,KAAKC,IAAIJ,EAAGC,IAEnC,CAACK,EAAO,IAAJU,EAAa,IAAJf,EACrB,EAEAzB,EAAQC,IAAIM,KAAO,SAAUN,GAC5B,MAAMsB,EAAItB,EAAI,GAAK,IACbuB,EAAIvB,EAAI,GAAK,IACbwB,EAAIxB,EAAI,GAAK,IAEbwC,EAAId,KAAKD,IAAI,EAAIH,EAAG,EAAIC,EAAG,EAAIC,GAKrC,MAAO,CAAK,MAJD,EAAIF,EAAIkB,IAAM,EAAIA,IAAM,GAId,MAHV,EAAIjB,EAAIiB,IAAM,EAAIA,IAAM,GAGL,MAFnB,EAAIhB,EAAIgB,IAAM,EAAIA,IAAM,GAEI,IAAJA,EACpC,EAaAzC,EAAQC,IAAIW,QAAU,SAAUX,GAC/B,MAAMyC,EAAW9C,EAAgBK,GACjC,GAAIyC,EACH,OAAOA,EAGR,IACIC,EADAC,EAAyBC,IAG7B,IAAK,MAAMjC,KAAWd,OAAOC,KAAKJ,GAAc,CAC/C,MAAM2B,EAAQ3B,EAAYiB,GAGpBkC,GAxBwBC,EAwBYzB,IAxBf0B,EAwBU/C,GAnBjC,GAAK8C,EAAE,KAAO,GAChBC,EAAE,GAAKD,EAAE,KAAO,GAChBC,EAAE,GAAKD,EAAE,KAAO,GAoBdD,EAAWF,IACdA,EAAyBE,EACzBH,EAAwB/B,EAE1B,CA/BD,IAA6BoC,EAAGD,EAiC/B,OAAOJ,CACR,EAEA3C,EAAQY,QAAQX,IAAM,SAAUW,GAC/B,OAAOjB,EAAYiB,EACpB,EAEAZ,EAAQC,IAAIO,IAAM,SAAUP,GAC3B,IAAIsB,EAAItB,EAAI,GAAK,IACbuB,EAAIvB,EAAI,GAAK,IACbwB,EAAIxB,EAAI,GAAK,IAGjBsB,EAAIA,EAAI,SAAaA,EAAI,MAAS,QAAU,IAAQA,EAAI,MACxDC,EAAIA,EAAI,SAAaA,EAAI,MAAS,QAAU,IAAQA,EAAI,MACxDC,EAAIA,EAAI,SAAaA,EAAI,MAAS,QAAU,IAAQA,EAAI,MAMxD,MAAO,CAAK,KAJG,MAAJF,EAAmB,MAAJC,EAAmB,MAAJC,GAIpB,KAHN,MAAJF,EAAmB,MAAJC,EAAmB,MAAJC,GAGX,KAFf,MAAJF,EAAmB,MAAJC,EAAmB,MAAJC,GAG1C,EAEAzB,EAAQC,IAAIQ,IAAM,SAAUR,GAC3B,MAAMO,EAAMR,EAAQC,IAAIO,IAAIP,GAC5B,IAAI+C,EAAIxC,EAAI,GACRuC,EAAIvC,EAAI,GACRyC,EAAIzC,EAAI,GAEZwC,GAAK,OACLD,GAAK,IACLE,GAAK,QAELD,EAAIA,EAAI,QAAYA,IAAM,EAAI,GAAO,MAAQA,EAAM,GAAK,IACxDD,EAAIA,EAAI,QAAYA,IAAM,EAAI,GAAO,MAAQA,EAAM,GAAK,IACxDE,EAAIA,EAAI,QAAYA,IAAM,EAAI,GAAO,MAAQA,EAAM,GAAK,IAMxD,MAAO,CAJI,IAAMF,EAAK,GACZ,KAAOC,EAAID,GACX,KAAOA,EAAIE,GAGtB,EAEAjD,EAAQI,IAAIH,IAAM,SAAUG,GAC3B,MAAM0B,EAAI1B,EAAI,GAAK,IACb2B,EAAI3B,EAAI,GAAK,IACb4B,EAAI5B,EAAI,GAAK,IACnB,IAAI8C,EACAC,EACAC,EAEJ,GAAU,IAANrB,EAEH,OADAqB,EAAU,IAAJpB,EACC,CAACoB,EAAKA,EAAKA,GAIlBF,EADGlB,EAAI,GACFA,GAAK,EAAID,GAETC,EAAID,EAAIC,EAAID,EAGlB,MAAMsB,EAAK,EAAIrB,EAAIkB,EAEbjD,EAAM,CAAC,EAAG,EAAG,GACnB,IAAK,IAAIqD,EAAI,EAAGA,EAAI,EAAGA,IACtBH,EAAKrB,EAAI,EAAI,IAAMwB,EAAI,GACnBH,EAAK,GACRA,IAGGA,EAAK,GACRA,IAIAC,EADG,EAAID,EAAK,EACNE,EAAiB,GAAXH,EAAKG,GAAUF,EACjB,EAAIA,EAAK,EACbD,EACI,EAAIC,EAAK,EACbE,GAAMH,EAAKG,IAAO,EAAI,EAAIF,GAAM,EAEhCE,EAGPpD,EAAIqD,GAAW,IAANF,EAGV,OAAOnD,CACR,EAEAD,EAAQI,IAAIC,IAAM,SAAUD,GAC3B,MAAM0B,EAAI1B,EAAI,GACd,IAAI2B,EAAI3B,EAAI,GAAK,IACb4B,EAAI5B,EAAI,GAAK,IACbmD,EAAOxB,EACX,MAAMyB,EAAO7B,KAAKC,IAAII,EAAG,KAEzBA,GAAK,EACLD,GAAMC,GAAK,EAAKA,EAAI,EAAIA,EACxBuB,GAAQC,GAAQ,EAAIA,EAAO,EAAIA,EAI/B,MAAO,CAAC1B,EAAQ,KAFC,IAANE,EAAW,EAAIuB,GAASC,EAAOD,GAAS,EAAIxB,GAAMC,EAAID,IAExC,MAHdC,EAAID,GAAK,GAIrB,EAEA/B,EAAQK,IAAIJ,IAAM,SAAUI,GAC3B,MAAMyB,EAAIzB,EAAI,GAAK,GACb0B,EAAI1B,EAAI,GAAK,IACnB,IAAI+B,EAAI/B,EAAI,GAAK,IACjB,MAAMoD,EAAK9B,KAAK+B,MAAM5B,GAAK,EAErB6B,EAAI7B,EAAIH,KAAK+B,MAAM5B,GACnB8B,EAAI,IAAMxB,GAAK,EAAIL,GACnB8B,EAAI,IAAMzB,GAAK,EAAKL,EAAI4B,GACxBG,EAAI,IAAM1B,GAAK,EAAKL,GAAK,EAAI4B,IAGnC,OAFAvB,GAAK,IAEGqB,GACP,KAAK,EACJ,MAAO,CAACrB,EAAG0B,EAAGF,GACf,KAAK,EACJ,MAAO,CAACC,EAAGzB,EAAGwB,GACf,KAAK,EACJ,MAAO,CAACA,EAAGxB,EAAG0B,GACf,KAAK,EACJ,MAAO,CAACF,EAAGC,EAAGzB,GACf,KAAK,EACJ,MAAO,CAAC0B,EAAGF,EAAGxB,GACf,KAAK,EACJ,MAAO,CAACA,EAAGwB,EAAGC,GAEjB,EAEA7D,EAAQK,IAAID,IAAM,SAAUC,GAC3B,MAAMyB,EAAIzB,EAAI,GACR0B,EAAI1B,EAAI,GAAK,IACb+B,EAAI/B,EAAI,GAAK,IACb0D,EAAOpC,KAAKC,IAAIQ,EAAG,KACzB,IAAI4B,EACAhC,EAEJA,GAAK,EAAID,GAAKK,EACd,MAAMoB,GAAQ,EAAIzB,GAAKgC,EAMvB,OALAC,EAAKjC,EAAIgC,EACTC,GAAOR,GAAQ,EAAKA,EAAO,EAAIA,EAC/BQ,EAAKA,GAAM,EACXhC,GAAK,EAEE,CAACF,EAAQ,IAALkC,EAAc,IAAJhC,EACtB,EAGAhC,EAAQM,IAAIL,IAAM,SAAUK,GAC3B,MAAMwB,EAAIxB,EAAI,GAAK,IACnB,IAAI2D,EAAK3D,EAAI,GAAK,IACd4D,EAAK5D,EAAI,GAAK,IAClB,MAAM6D,EAAQF,EAAKC,EACnB,IAAIP,EAGAQ,EAAQ,IACXF,GAAME,EACND,GAAMC,GAGP,MAAMb,EAAI3B,KAAK+B,MAAM,EAAI5B,GACnBM,EAAI,EAAI8B,EACdP,EAAI,EAAI7B,EAAIwB,EAEH,EAAJA,IACJK,EAAI,EAAIA,GAGT,MAAMS,EAAIH,EAAKN,GAAKvB,EAAI6B,GAExB,IAAI1C,EACAC,EACAC,EAEJ,OAAQ6B,GACP,QACA,KAAK,EACL,KAAK,EAAG/B,EAAIa,EAAIZ,EAAI4C,EAAI3C,EAAIwC,EAAI,MAChC,KAAK,EAAG1C,EAAI6C,EAAI5C,EAAIY,EAAIX,EAAIwC,EAAI,MAChC,KAAK,EAAG1C,EAAI0C,EAAIzC,EAAIY,EAAIX,EAAI2C,EAAG,MAC/B,KAAK,EAAG7C,EAAI0C,EAAIzC,EAAI4C,EAAI3C,EAAIW,EAAG,MAC/B,KAAK,EAAGb,EAAI6C,EAAI5C,EAAIyC,EAAIxC,EAAIW,EAAG,MAC/B,KAAK,EAAGb,EAAIa,EAAIZ,EAAIyC,EAAIxC,EAAI2C,EAI7B,MAAO,CAAK,IAAJ7C,EAAa,IAAJC,EAAa,IAAJC,EAC3B,EAEAzB,EAAQO,KAAKN,IAAM,SAAUM,GAC5B,MAAMgC,EAAIhC,EAAK,GAAK,IACd8D,EAAI9D,EAAK,GAAK,IACdwC,EAAIxC,EAAK,GAAK,IACdkC,EAAIlC,EAAK,GAAK,IAMpB,MAAO,CAAK,KAJF,EAAIoB,KAAKD,IAAI,EAAGa,GAAK,EAAIE,GAAKA,IAInB,KAHX,EAAId,KAAKD,IAAI,EAAG2C,GAAK,EAAI5B,GAAKA,IAGV,KAFpB,EAAId,KAAKD,IAAI,EAAGqB,GAAK,EAAIN,GAAKA,IAGzC,EAEAzC,EAAQQ,IAAIP,IAAM,SAAUO,GAC3B,MAAMwC,EAAIxC,EAAI,GAAK,IACbuC,EAAIvC,EAAI,GAAK,IACbyC,EAAIzC,EAAI,GAAK,IACnB,IAAIe,EACAC,EACAC,EAuBJ,OArBAF,EAAS,OAAJyB,GAAoB,OAALD,GAAqB,MAALE,EACpCzB,GAAU,MAALwB,EAAoB,OAAJD,EAAmB,MAAJE,EACpCxB,EAAS,MAAJuB,GAAoB,KAALD,EAAoB,MAAJE,EAGpC1B,EAAIA,EAAI,SACH,MAASA,IAAM,EAAM,KAAS,KAC5B,MAAJA,EAEHC,EAAIA,EAAI,SACH,MAASA,IAAM,EAAM,KAAS,KAC5B,MAAJA,EAEHC,EAAIA,EAAI,SACH,MAASA,IAAM,EAAM,KAAS,KAC5B,MAAJA,EAEHF,EAAII,KAAKD,IAAIC,KAAKC,IAAI,EAAGL,GAAI,GAC7BC,EAAIG,KAAKD,IAAIC,KAAKC,IAAI,EAAGJ,GAAI,GAC7BC,EAAIE,KAAKD,IAAIC,KAAKC,IAAI,EAAGH,GAAI,GAEtB,CAAK,IAAJF,EAAa,IAAJC,EAAa,IAAJC,EAC3B,EAEAzB,EAAQQ,IAAIC,IAAM,SAAUD,GAC3B,IAAIwC,EAAIxC,EAAI,GACRuC,EAAIvC,EAAI,GACRyC,EAAIzC,EAAI,GAEZwC,GAAK,OACLD,GAAK,IACLE,GAAK,QAELD,EAAIA,EAAI,QAAYA,IAAM,EAAI,GAAO,MAAQA,EAAM,GAAK,IACxDD,EAAIA,EAAI,QAAYA,IAAM,EAAI,GAAO,MAAQA,EAAM,GAAK,IACxDE,EAAIA,EAAI,QAAYA,IAAM,EAAI,GAAO,MAAQA,EAAM,GAAK,IAMxD,MAAO,CAJI,IAAMF,EAAK,GACZ,KAAOC,EAAID,GACX,KAAOA,EAAIE,GAGtB,EAEAjD,EAAQS,IAAID,IAAM,SAAUC,GAI3B,IAAIuC,EACAD,EACAE,EAEJF,GAPUtC,EAAI,GAOL,IAAM,IACfuC,EAPUvC,EAAI,GAON,IAAMsC,EACdE,EAAIF,EAPMtC,EAAI,GAOF,IAEZ,MAAM6D,EAAKvB,GAAK,EACVwB,EAAKvB,GAAK,EACVwB,EAAKvB,GAAK,EAShB,OARAF,EAAIuB,EAAK,QAAWA,GAAMvB,EAAI,GAAK,KAAO,MAC1CC,EAAIuB,EAAK,QAAWA,GAAMvB,EAAI,GAAK,KAAO,MAC1CC,EAAIuB,EAAK,QAAWA,GAAMvB,EAAI,GAAK,KAAO,MAE1CD,GAAK,OACLD,GAAK,IACLE,GAAK,QAEE,CAACD,EAAGD,EAAGE,EACf,EAEAjD,EAAQS,IAAIC,IAAM,SAAUD,GAC3B,MAAMuB,EAAIvB,EAAI,GACRgE,EAAIhE,EAAI,GACRgB,EAAIhB,EAAI,GACd,IAAIqB,EAGJA,EAAS,IADEH,KAAK+C,MAAMjD,EAAGgD,GACV,EAAI9C,KAAKgD,GAEpB7C,EAAI,IACPA,GAAK,KAKN,MAAO,CAACE,EAFEL,KAAKiD,KAAKH,EAAIA,EAAIhD,EAAIA,GAElBK,EACf,EAEA9B,EAAQU,IAAID,IAAM,SAAUC,GAC3B,MAAMsB,EAAItB,EAAI,GACR6B,EAAI7B,EAAI,GAGRmE,EAFInE,EAAI,GAEC,IAAM,EAAIiB,KAAKgD,GAI9B,MAAO,CAAC3C,EAHEO,EAAIZ,KAAKmD,IAAID,GACbtC,EAAIZ,KAAKoD,IAAIF,GAGxB,EAEA7E,EAAQC,IAAIY,OAAS,SAAUmE,EAAMC,EAAa,MACjD,MAAO1D,EAAGC,EAAGC,GAAKuD,EAClB,IAAI1D,EAAuB,OAAf2D,EAAsBjF,EAAQC,IAAII,IAAI2E,GAAM,GAAKC,EAI7D,GAFA3D,EAAQK,KAAKuD,MAAM5D,EAAQ,IAEb,IAAVA,EACH,OAAO,GAGR,IAAI6D,EAAO,IACNxD,KAAKuD,MAAMzD,EAAI,MAAQ,EACxBE,KAAKuD,MAAM1D,EAAI,MAAQ,EACxBG,KAAKuD,MAAM3D,EAAI,MAMlB,OAJc,IAAVD,IACH6D,GAAQ,IAGFA,CACR,EAEAnF,EAAQK,IAAIQ,OAAS,SAAUmE,GAG9B,OAAOhF,EAAQC,IAAIY,OAAOb,EAAQK,IAAIJ,IAAI+E,GAAOA,EAAK,GACvD,EAEAhF,EAAQC,IAAIa,QAAU,SAAUkE,GAC/B,MAAMzD,EAAIyD,EAAK,GACTxD,EAAIwD,EAAK,GACTvD,EAAIuD,EAAK,GAIf,GAAIzD,IAAMC,GAAKA,IAAMC,EACpB,OAAIF,EAAI,EACA,GAGJA,EAAI,IACA,IAGDI,KAAKuD,OAAQ3D,EAAI,GAAK,IAAO,IAAM,IAQ3C,OALa,GACT,GAAKI,KAAKuD,MAAM3D,EAAI,IAAM,GAC1B,EAAII,KAAKuD,MAAM1D,EAAI,IAAM,GAC1BG,KAAKuD,MAAMzD,EAAI,IAAM,EAGzB,EAEAzB,EAAQa,OAAOZ,IAAM,SAAU+E,GAC9B,IAAII,EAAQJ,EAAO,GAGnB,GAAc,IAAVI,GAAyB,IAAVA,EAOlB,OANIJ,EAAO,KACVI,GAAS,KAGVA,EAAQA,EAAQ,KAAO,IAEhB,CAACA,EAAOA,EAAOA,GAGvB,MAAMC,EAA6B,IAAL,KAAbL,EAAO,KAKxB,MAAO,EAJa,EAARI,GAAaC,EAAQ,KACpBD,GAAS,EAAK,GAAKC,EAAQ,KAC3BD,GAAS,EAAK,GAAKC,EAAQ,IAGzC,EAEArF,EAAQc,QAAQb,IAAM,SAAU+E,GAE/B,GAAIA,GAAQ,IAAK,CAChB,MAAMzC,EAAmB,IAAdyC,EAAO,KAAY,EAC9B,MAAO,CAACzC,EAAGA,EAAGA,EACf,CAIA,IAAI+C,EAFJN,GAAQ,GAOR,MAAO,CAJGrD,KAAK+B,MAAMsB,EAAO,IAAM,EAAI,IAC5BrD,KAAK+B,OAAO4B,EAAMN,EAAO,IAAM,GAAK,EAAI,IACvCM,EAAM,EAAK,EAAI,IAG3B,EAEAtF,EAAQC,IAAIU,IAAM,SAAUqE,GAC3B,MAIMO,KAJkC,IAAtB5D,KAAKuD,MAAMF,EAAK,MAAe,MACtB,IAAtBrD,KAAKuD,MAAMF,EAAK,MAAe,IACV,IAAtBrD,KAAKuD,MAAMF,EAAK,MAEGQ,SAAS,IAAIC,cACpC,MAAO,SAASC,UAAUH,EAAOnE,QAAUmE,CAC5C,EAEAvF,EAAQW,IAAIV,IAAM,SAAU+E,GAC3B,MAAMW,EAAQX,EAAKQ,SAAS,IAAIG,MAAM,4BACtC,IAAKA,EACJ,MAAO,CAAC,EAAG,EAAG,GAGf,IAAIC,EAAcD,EAAM,GAEA,IAApBA,EAAM,GAAGvE,SACZwE,EAAcA,EAAYC,MAAM,IAAIC,KAAIC,GAChCA,EAAOA,IACZC,KAAK,KAGT,MAAMC,EAAUC,SAASN,EAAa,IAKtC,MAAO,CAJIK,GAAW,GAAM,IACjBA,GAAW,EAAK,IACP,IAAVA,EAGX,EAEAjG,EAAQC,IAAIc,IAAM,SAAUd,GAC3B,MAAMsB,EAAItB,EAAI,GAAK,IACbuB,EAAIvB,EAAI,GAAK,IACbwB,EAAIxB,EAAI,GAAK,IACb2B,EAAMD,KAAKC,IAAID,KAAKC,IAAIL,EAAGC,GAAIC,GAC/BC,EAAMC,KAAKD,IAAIC,KAAKD,IAAIH,EAAGC,GAAIC,GAC/B0E,EAAUvE,EAAMF,EACtB,IAAI0E,EACAC,EAuBJ,OApBCD,EADGD,EAAS,EACAzE,GAAO,EAAIyE,GAEX,EAIZE,EADGF,GAAU,EACP,EAEHvE,IAAQL,GACHC,EAAIC,GAAK0E,EAAU,EAExBvE,IAAQJ,EACL,GAAKC,EAAIF,GAAK4E,EAEd,GAAK5E,EAAIC,GAAK2E,EAGrBE,GAAO,EACPA,GAAO,EAEA,CAAO,IAANA,EAAoB,IAATF,EAA0B,IAAZC,EAClC,EAEApG,EAAQI,IAAIW,IAAM,SAAUX,GAC3B,MAAM2B,EAAI3B,EAAI,GAAK,IACb4B,EAAI5B,EAAI,GAAK,IAEbmC,EAAIP,EAAI,GAAO,EAAMD,EAAIC,EAAM,EAAMD,GAAK,EAAMC,GAEtD,IAAI2B,EAAI,EAKR,OAJIpB,EAAI,IACPoB,GAAK3B,EAAI,GAAMO,IAAM,EAAMA,IAGrB,CAACnC,EAAI,GAAQ,IAAJmC,EAAa,IAAJoB,EAC1B,EAEA3D,EAAQK,IAAIU,IAAM,SAAUV,GAC3B,MAAM0B,EAAI1B,EAAI,GAAK,IACb+B,EAAI/B,EAAI,GAAK,IAEbkC,EAAIR,EAAIK,EACd,IAAIuB,EAAI,EAMR,OAJIpB,EAAI,IACPoB,GAAKvB,EAAIG,IAAM,EAAIA,IAGb,CAAClC,EAAI,GAAQ,IAAJkC,EAAa,IAAJoB,EAC1B,EAEA3D,EAAQe,IAAId,IAAM,SAAUc,GAC3B,MAAMe,EAAIf,EAAI,GAAK,IACbwB,EAAIxB,EAAI,GAAK,IACbS,EAAIT,EAAI,GAAK,IAEnB,GAAU,IAANwB,EACH,MAAO,CAAK,IAAJf,EAAa,IAAJA,EAAa,IAAJA,GAG3B,MAAM8E,EAAO,CAAC,EAAG,EAAG,GACd7C,EAAM3B,EAAI,EAAK,EACfM,EAAIqB,EAAK,EACTjB,EAAI,EAAIJ,EACd,IAAImE,EAAK,EAGT,OAAQ5E,KAAK+B,MAAMD,IAClB,KAAK,EACJ6C,EAAK,GAAK,EAAGA,EAAK,GAAKlE,EAAGkE,EAAK,GAAK,EAAG,MACxC,KAAK,EACJA,EAAK,GAAK9D,EAAG8D,EAAK,GAAK,EAAGA,EAAK,GAAK,EAAG,MACxC,KAAK,EACJA,EAAK,GAAK,EAAGA,EAAK,GAAK,EAAGA,EAAK,GAAKlE,EAAG,MACxC,KAAK,EACJkE,EAAK,GAAK,EAAGA,EAAK,GAAK9D,EAAG8D,EAAK,GAAK,EAAG,MACxC,KAAK,EACJA,EAAK,GAAKlE,EAAGkE,EAAK,GAAK,EAAGA,EAAK,GAAK,EAAG,MACxC,QACCA,EAAK,GAAK,EAAGA,EAAK,GAAK,EAAGA,EAAK,GAAK9D,EAMtC,OAFA+D,GAAM,EAAMhE,GAAKf,EAEV,CACe,KAApBe,EAAI+D,EAAK,GAAKC,GACM,KAApBhE,EAAI+D,EAAK,GAAKC,GACM,KAApBhE,EAAI+D,EAAK,GAAKC,GAEjB,EAEAvG,EAAQe,IAAIV,IAAM,SAAUU,GAC3B,MAAMwB,EAAIxB,EAAI,GAAK,IAGbqB,EAAIG,EAFAxB,EAAI,GAAK,KAEA,EAAMwB,GACzB,IAAIoB,EAAI,EAMR,OAJIvB,EAAI,IACPuB,EAAIpB,EAAIH,GAGF,CAACrB,EAAI,GAAQ,IAAJ4C,EAAa,IAAJvB,EAC1B,EAEApC,EAAQe,IAAIX,IAAM,SAAUW,GAC3B,MAAMwB,EAAIxB,EAAI,GAAK,IAGbiB,EAFIjB,EAAI,GAAK,KAEJ,EAAMwB,GAAK,GAAMA,EAChC,IAAIR,EAAI,EASR,OAPIC,EAAI,GAAOA,EAAI,GAClBD,EAAIQ,GAAK,EAAIP,GAEVA,GAAK,IAAOA,EAAI,IACnBD,EAAIQ,GAAK,GAAK,EAAIP,KAGZ,CAACjB,EAAI,GAAQ,IAAJgB,EAAa,IAAJC,EAC1B,EAEAhC,EAAQe,IAAIT,IAAM,SAAUS,GAC3B,MAAMwB,EAAIxB,EAAI,GAAK,IAEbqB,EAAIG,EADAxB,EAAI,GAAK,KACA,EAAMwB,GACzB,MAAO,CAACxB,EAAI,GAAc,KAATqB,EAAIG,GAAoB,KAAT,EAAIH,GACrC,EAEApC,EAAQM,IAAIS,IAAM,SAAUT,GAC3B,MAAMkC,EAAIlC,EAAI,GAAK,IAEb8B,EAAI,EADA9B,EAAI,GAAK,IAEbiC,EAAIH,EAAII,EACd,IAAIhB,EAAI,EAMR,OAJIe,EAAI,IACPf,GAAKY,EAAIG,IAAM,EAAIA,IAGb,CAACjC,EAAI,GAAQ,IAAJiC,EAAa,IAAJf,EAC1B,EAEAxB,EAAQgB,MAAMf,IAAM,SAAUe,GAC7B,MAAO,CAAEA,EAAM,GAAK,MAAS,IAAMA,EAAM,GAAK,MAAS,IAAMA,EAAM,GAAK,MAAS,IAClF,EAEAhB,EAAQC,IAAIe,MAAQ,SAAUf,GAC7B,MAAO,CAAEA,EAAI,GAAK,IAAO,MAAQA,EAAI,GAAK,IAAO,MAAQA,EAAI,GAAK,IAAO,MAC1E,EAEAD,EAAQiB,KAAKhB,IAAM,SAAU+E,GAC5B,MAAO,CAACA,EAAK,GAAK,IAAM,IAAKA,EAAK,GAAK,IAAM,IAAKA,EAAK,GAAK,IAAM,IACnE,EAEAhF,EAAQiB,KAAKb,IAAM,SAAU4E,GAC5B,MAAO,CAAC,EAAG,EAAGA,EAAK,GACpB,EAEAhF,EAAQiB,KAAKZ,IAAML,EAAQiB,KAAKb,IAEhCJ,EAAQiB,KAAKX,IAAM,SAAUW,GAC5B,MAAO,CAAC,EAAG,IAAKA,EAAK,GACtB,EAEAjB,EAAQiB,KAAKV,KAAO,SAAUU,GAC7B,MAAO,CAAC,EAAG,EAAG,EAAGA,EAAK,GACvB,EAEAjB,EAAQiB,KAAKR,IAAM,SAAUQ,GAC5B,MAAO,CAACA,EAAK,GAAI,EAAG,EACrB,EAEAjB,EAAQiB,KAAKN,IAAM,SAAUM,GAC5B,MAAMmC,EAAwC,IAAlCzB,KAAKuD,MAAMjE,EAAK,GAAK,IAAM,KAGjCsE,IAFWnC,GAAO,KAAOA,GAAO,GAAKA,GAEpBoC,SAAS,IAAIC,cACpC,MAAO,SAASC,UAAUH,EAAOnE,QAAUmE,CAC5C,EAEAvF,EAAQC,IAAIgB,KAAO,SAAUhB,GAE5B,MAAO,EADMA,EAAI,GAAKA,EAAI,GAAKA,EAAI,IAAM,EAC3B,IAAM,IACrB,C,iBCt0BA,MAAMuG,EAAc,EAAQ,MACtBC,EAAQ,EAAQ,KAEhBzG,EAAU,CAAC,EAEFF,OAAOC,KAAKyG,GA0DpBE,SAAQC,IACd3G,EAAQ2G,GAAa,CAAC,EAEtB7G,OAAOuB,eAAerB,EAAQ2G,GAAY,WAAY,CAACrF,MAAOkF,EAAYG,GAAWzG,WACrFJ,OAAOuB,eAAerB,EAAQ2G,GAAY,SAAU,CAACrF,MAAOkF,EAAYG,GAAWxG,SAEnF,MAAMyG,EAASH,EAAME,GACD7G,OAAOC,KAAK6G,GAEpBF,SAAQG,IACnB,MAAMC,EAAKF,EAAOC,GAElB7G,EAAQ2G,GAAWE,GA9CrB,SAAqBC,GACpB,MAAMC,EAAY,YAAa/B,GAC9B,MAAMgC,EAAOhC,EAAK,GAElB,GAAIgC,QACH,OAAOA,EAGJA,EAAK5F,OAAS,IACjB4D,EAAOgC,GAGR,MAAMC,EAASH,EAAG9B,GAKlB,GAAsB,iBAAXiC,EACV,IAAK,IAAIC,EAAMD,EAAO7F,OAAQkC,EAAI,EAAGA,EAAI4D,EAAK5D,IAC7C2D,EAAO3D,GAAK3B,KAAKuD,MAAM+B,EAAO3D,IAIhC,OAAO2D,CACR,EAOA,MAJI,eAAgBH,IACnBC,EAAUI,WAAaL,EAAGK,YAGpBJ,CACR,CAcgCK,CAAYN,GAC1C9G,EAAQ2G,GAAWE,GAASQ,IArE9B,SAAiBP,GAChB,MAAMC,EAAY,YAAa/B,GAC9B,MAAMgC,EAAOhC,EAAK,GAClB,OAAIgC,QACIA,GAGJA,EAAK5F,OAAS,IACjB4D,EAAOgC,GAGDF,EAAG9B,GACX,EAOA,MAJI,eAAgB8B,IACnBC,EAAUI,WAAaL,EAAGK,YAGpBJ,CACR,CAiDoCO,CAAQR,EAAG,GAC5C,IAGHvH,EAAOD,QAAUU,C,gBChFjB,MAAMwG,EAAc,EAAQ,MA+B5B,SAASe,EAAUZ,GAClB,MAAMa,EAnBP,WACC,MAAMA,EAAQ,CAAC,EAETC,EAAS3H,OAAOC,KAAKyG,GAE3B,IAAK,IAAIU,EAAMO,EAAOrG,OAAQkC,EAAI,EAAGA,EAAI4D,EAAK5D,IAC7CkE,EAAMC,EAAOnE,IAAM,CAGlBR,UAAW,EACX4E,OAAQ,MAIV,OAAOF,CACR,CAIeG,GACRC,EAAQ,CAACjB,GAIf,IAFAa,EAAMb,GAAW7D,SAAW,EAErB8E,EAAMxG,QAAQ,CACpB,MAAMyG,EAAUD,EAAME,MAChBC,EAAYjI,OAAOC,KAAKyG,EAAYqB,IAE1C,IAAK,IAAIX,EAAMa,EAAU3G,OAAQkC,EAAI,EAAGA,EAAI4D,EAAK5D,IAAK,CACrD,MAAM0E,EAAWD,EAAUzE,GACrB2E,EAAOT,EAAMQ,IAEI,IAAnBC,EAAKnF,WACRmF,EAAKnF,SAAW0E,EAAMK,GAAS/E,SAAW,EAC1CmF,EAAKP,OAASG,EACdD,EAAMM,QAAQF,GAEhB,CACD,CAEA,OAAOR,CACR,CAEA,SAASW,EAAKC,EAAMC,GACnB,OAAO,SAAUrD,GAChB,OAAOqD,EAAGD,EAAKpD,GAChB,CACD,CAEA,SAASsD,EAAezB,EAASW,GAChC,MAAMe,EAAO,CAACf,EAAMX,GAASa,OAAQb,GACrC,IAAIC,EAAKN,EAAYgB,EAAMX,GAASa,QAAQb,GAExC2B,EAAMhB,EAAMX,GAASa,OACzB,KAAOF,EAAMgB,GAAKd,QACjBa,EAAKL,QAAQV,EAAMgB,GAAKd,QACxBZ,EAAKqB,EAAK3B,EAAYgB,EAAMgB,GAAKd,QAAQc,GAAM1B,GAC/C0B,EAAMhB,EAAMgB,GAAKd,OAIlB,OADAZ,EAAGK,WAAaoB,EACTzB,CACR,CAEAvH,EAAOD,QAAU,SAAUqH,GAC1B,MAAMa,EAAQD,EAAUZ,GAClBQ,EAAa,CAAC,EAEdM,EAAS3H,OAAOC,KAAKyH,GAC3B,IAAK,IAAIN,EAAMO,EAAOrG,OAAQkC,EAAI,EAAGA,EAAI4D,EAAK5D,IAAK,CAClD,MAAMuD,EAAUY,EAAOnE,GAGH,OAFPkE,EAAMX,GAEVa,SAKTP,EAAWN,GAAWyB,EAAezB,EAASW,GAC/C,CAEA,OAAOL,CACR,C,wBC7FA5H,EAAOD,QAAU,CAChB,UAAa,CAAC,IAAK,IAAK,KACxB,aAAgB,CAAC,IAAK,IAAK,KAC3B,KAAQ,CAAC,EAAG,IAAK,KACjB,WAAc,CAAC,IAAK,IAAK,KACzB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,OAAU,CAAC,IAAK,IAAK,KACrB,MAAS,CAAC,EAAG,EAAG,GAChB,eAAkB,CAAC,IAAK,IAAK,KAC7B,KAAQ,CAAC,EAAG,EAAG,KACf,WAAc,CAAC,IAAK,GAAI,KACxB,MAAS,CAAC,IAAK,GAAI,IACnB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,WAAc,CAAC,IAAK,IAAK,GACzB,UAAa,CAAC,IAAK,IAAK,IACxB,MAAS,CAAC,IAAK,IAAK,IACpB,eAAkB,CAAC,IAAK,IAAK,KAC7B,SAAY,CAAC,IAAK,IAAK,KACvB,QAAW,CAAC,IAAK,GAAI,IACrB,KAAQ,CAAC,EAAG,IAAK,KACjB,SAAY,CAAC,EAAG,EAAG,KACnB,SAAY,CAAC,EAAG,IAAK,KACrB,cAAiB,CAAC,IAAK,IAAK,IAC5B,SAAY,CAAC,IAAK,IAAK,KACvB,UAAa,CAAC,EAAG,IAAK,GACtB,SAAY,CAAC,IAAK,IAAK,KACvB,UAAa,CAAC,IAAK,IAAK,KACxB,YAAe,CAAC,IAAK,EAAG,KACxB,eAAkB,CAAC,GAAI,IAAK,IAC5B,WAAc,CAAC,IAAK,IAAK,GACzB,WAAc,CAAC,IAAK,GAAI,KACxB,QAAW,CAAC,IAAK,EAAG,GACpB,WAAc,CAAC,IAAK,IAAK,KACzB,aAAgB,CAAC,IAAK,IAAK,KAC3B,cAAiB,CAAC,GAAI,GAAI,KAC1B,cAAiB,CAAC,GAAI,GAAI,IAC1B,cAAiB,CAAC,GAAI,GAAI,IAC1B,cAAiB,CAAC,EAAG,IAAK,KAC1B,WAAc,CAAC,IAAK,EAAG,KACvB,SAAY,CAAC,IAAK,GAAI,KACtB,YAAe,CAAC,EAAG,IAAK,KACxB,QAAW,CAAC,IAAK,IAAK,KACtB,QAAW,CAAC,IAAK,IAAK,KACtB,WAAc,CAAC,GAAI,IAAK,KACxB,UAAa,CAAC,IAAK,GAAI,IACvB,YAAe,CAAC,IAAK,IAAK,KAC1B,YAAe,CAAC,GAAI,IAAK,IACzB,QAAW,CAAC,IAAK,EAAG,KACpB,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,KAAQ,CAAC,IAAK,IAAK,GACnB,UAAa,CAAC,IAAK,IAAK,IACxB,KAAQ,CAAC,IAAK,IAAK,KACnB,MAAS,CAAC,EAAG,IAAK,GAClB,YAAe,CAAC,IAAK,IAAK,IAC1B,KAAQ,CAAC,IAAK,IAAK,KACnB,SAAY,CAAC,IAAK,IAAK,KACvB,QAAW,CAAC,IAAK,IAAK,KACtB,UAAa,CAAC,IAAK,GAAI,IACvB,OAAU,CAAC,GAAI,EAAG,KAClB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,SAAY,CAAC,IAAK,IAAK,KACvB,cAAiB,CAAC,IAAK,IAAK,KAC5B,UAAa,CAAC,IAAK,IAAK,GACxB,aAAgB,CAAC,IAAK,IAAK,KAC3B,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,qBAAwB,CAAC,IAAK,IAAK,KACnC,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,YAAe,CAAC,IAAK,IAAK,KAC1B,cAAiB,CAAC,GAAI,IAAK,KAC3B,aAAgB,CAAC,IAAK,IAAK,KAC3B,eAAkB,CAAC,IAAK,IAAK,KAC7B,eAAkB,CAAC,IAAK,IAAK,KAC7B,eAAkB,CAAC,IAAK,IAAK,KAC7B,YAAe,CAAC,IAAK,IAAK,KAC1B,KAAQ,CAAC,EAAG,IAAK,GACjB,UAAa,CAAC,GAAI,IAAK,IACvB,MAAS,CAAC,IAAK,IAAK,KACpB,QAAW,CAAC,IAAK,EAAG,KACpB,OAAU,CAAC,IAAK,EAAG,GACnB,iBAAoB,CAAC,IAAK,IAAK,KAC/B,WAAc,CAAC,EAAG,EAAG,KACrB,aAAgB,CAAC,IAAK,GAAI,KAC1B,aAAgB,CAAC,IAAK,IAAK,KAC3B,eAAkB,CAAC,GAAI,IAAK,KAC5B,gBAAmB,CAAC,IAAK,IAAK,KAC9B,kBAAqB,CAAC,EAAG,IAAK,KAC9B,gBAAmB,CAAC,GAAI,IAAK,KAC7B,gBAAmB,CAAC,IAAK,GAAI,KAC7B,aAAgB,CAAC,GAAI,GAAI,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,SAAY,CAAC,IAAK,IAAK,KACvB,YAAe,CAAC,IAAK,IAAK,KAC1B,KAAQ,CAAC,EAAG,EAAG,KACf,QAAW,CAAC,IAAK,IAAK,KACtB,MAAS,CAAC,IAAK,IAAK,GACpB,UAAa,CAAC,IAAK,IAAK,IACxB,OAAU,CAAC,IAAK,IAAK,GACrB,UAAa,CAAC,IAAK,GAAI,GACvB,OAAU,CAAC,IAAK,IAAK,KACrB,cAAiB,CAAC,IAAK,IAAK,KAC5B,UAAa,CAAC,IAAK,IAAK,KACxB,cAAiB,CAAC,IAAK,IAAK,KAC5B,cAAiB,CAAC,IAAK,IAAK,KAC5B,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,KAAQ,CAAC,IAAK,IAAK,IACnB,KAAQ,CAAC,IAAK,IAAK,KACnB,KAAQ,CAAC,IAAK,IAAK,KACnB,WAAc,CAAC,IAAK,IAAK,KACzB,OAAU,CAAC,IAAK,EAAG,KACnB,cAAiB,CAAC,IAAK,GAAI,KAC3B,IAAO,CAAC,IAAK,EAAG,GAChB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,YAAe,CAAC,IAAK,GAAI,IACzB,OAAU,CAAC,IAAK,IAAK,KACrB,WAAc,CAAC,IAAK,IAAK,IACzB,SAAY,CAAC,GAAI,IAAK,IACtB,SAAY,CAAC,IAAK,IAAK,KACvB,OAAU,CAAC,IAAK,GAAI,IACpB,OAAU,CAAC,IAAK,IAAK,KACrB,QAAW,CAAC,IAAK,IAAK,KACtB,UAAa,CAAC,IAAK,GAAI,KACvB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,KAAQ,CAAC,IAAK,IAAK,KACnB,YAAe,CAAC,EAAG,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,IAAO,CAAC,IAAK,IAAK,KAClB,KAAQ,CAAC,EAAG,IAAK,KACjB,QAAW,CAAC,IAAK,IAAK,KACtB,OAAU,CAAC,IAAK,GAAI,IACpB,UAAa,CAAC,GAAI,IAAK,KACvB,OAAU,CAAC,IAAK,IAAK,KACrB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,WAAc,CAAC,IAAK,IAAK,KACzB,OAAU,CAAC,IAAK,IAAK,GACrB,YAAe,CAAC,IAAK,IAAK,I,+ECnJvBmJ,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,oKAAqK,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wDAAwD,MAAQ,GAAG,SAAW,6DAA6D,eAAiB,CAAC,8XAA8X,WAAa,MAEjxB,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,qOAAsO,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,6DAA6D,MAAQ,GAAG,SAAW,qHAAqH,eAAiB,CAAC,ikBAAmkB,WAAa,MAEplC,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,whFAA6hF,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,yDAAyD,+EAA+E,MAAQ,GAAG,SAAW,inBAAinB,eAAiB,CAAC,6wBAA6wB,q0FAAq0F,WAAa,MAEj+N,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,mvCAAovC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,kEAAkE,uFAAuF,iEAAiE,MAAQ,GAAG,SAAW,4PAA4P,eAAiB,CAAC,klBAAklB,0mCAA2mC,ieAAie,WAAa,MAEj+H,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,otBAAqtB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wDAAwD,4DAA4D,8EAA8E,MAAQ,GAAG,SAAW,0OAA0O,eAAiB,CAAC,k5BAAk5B,waAAwa,6wCAA+wC,WAAa,MAEn0H,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,qEAAsE,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,sDAAsD,MAAQ,GAAG,SAAW,kBAAkB,eAAiB,CAAC,mVAAmV,WAAa,MAE1lB,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,8JAA+J,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,oDAAoD,MAAQ,GAAG,SAAW,kEAAkE,eAAiB,CAAC,inBAAqnB,WAAa,MAEngC,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,kVAAmV,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,qDAAqD,2EAA2E,MAAQ,GAAG,SAAW,kGAAkG,eAAiB,CAAC,0YAA4Y,8YAA8Y,WAAa,MAEx8C,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,kIAAmI,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,qEAAqE,MAAQ,GAAG,SAAW,mEAAmE,eAAiB,CAAC,ubAAub,WAAa,MAE3zB,S,8ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,whCAAyhC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,kDAAkD,MAAQ,GAAG,SAAW,4YAA4Y,eAAiB,CAAC,2qJAA8qJ,WAAa,MAE9vM,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,45BAA65B,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wDAAwD,6DAA6D,MAAQ,GAAG,SAAW,iSAAiS,eAAiB,CAAC,06CAA46C,yaAAya,WAAa,MAEjwG,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,mcAAoc,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,iEAAiE,qDAAqD,MAAQ,GAAG,SAAW,sJAAsJ,eAAiB,CAAC,0oBAA4oB,yRAAyR,WAAa,MAE9uD,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,o1CAAq1C,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,uDAAuD,6EAA6E,MAAQ,GAAG,SAAW,uSAAuS,eAAiB,CAAC,4TAA4T,y+CAA2+C,WAAa,MAEhqH,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,2EAA4E,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,6DAA6D,MAAQ,GAAG,SAAW,mBAAmB,eAAiB,CAAC,mRAAmR,WAAa,MAExiB,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,qrBAAsrB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wDAAwD,MAAQ,GAAG,SAAW,4JAA4J,eAAiB,CAAC,mpDAAupD,WAAa,MAE1pF,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,k/FAAm/F,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,uDAAuD,MAAQ,GAAG,SAAW,uXAAuX,eAAiB,CAAC,qgGAAqgG,WAAa,MAE/hN,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,szDAAyzD,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2DAA2D,iFAAiF,MAAQ,GAAG,SAAW,4uBAA4uB,eAAiB,CAAC,8mBAAgnB,qzFAAuzF,WAAa,MAEjtM,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,2iCAA8iC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,6DAA6D,mFAAmF,MAAQ,GAAG,SAAW,sVAAsV,eAAiB,CAAC,8YAA8Y,+kDAA+kD,WAAa,MAE1mH,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,qtBAAstB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,+DAA+D,qFAAqF,MAAQ,GAAG,SAAW,+MAA+M,eAAiB,CAAC,4aAA4a,ouBAAouB,WAAa,MAEl0E,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,0ZAA2Z,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,+DAA+D,qDAAqD,MAAQ,GAAG,SAAW,yIAAyI,eAAiB,CAAC,2mBAA6mB,yRAAyR,WAAa,MAEvpD,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,+DAAgE,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wDAAwD,MAAQ,GAAG,SAAW,kBAAkB,eAAiB,CAAC,yPAAyP,WAAa,MAE5f,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,qYAAsY,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,gDAAgD,MAAQ,GAAG,SAAW,yIAAyI,eAAiB,CAAC,wqBAAwqB,WAAa,MAEh2C,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,kwCAAmwC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,+EAA+E,MAAQ,GAAG,SAAW,8OAA8O,eAAiB,CAAC,gkDAAgkD,WAAa,MAEzvG,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,4dAA6d,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,qDAAqD,2EAA2E,MAAQ,GAAG,SAAW,qKAAqK,eAAiB,CAAC,iOAAiO,sqCAAwqC,WAAa,MAEpwE,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,kgIAA2gI,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,oDAAoD,MAAQ,GAAG,SAAW,muCAAmuC,eAAiB,CAAC,2kGAA2kG,WAAa,MAEt+Q,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,k2CAAm2C,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,sEAAsE,2FAA2F,qDAAqD,MAAQ,GAAG,SAAW,0ZAA0Z,eAAiB,CAAC,6RAA6R,wnDAA2nD,yRAAyR,WAAa,MAE7vI,S,8ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,6eAA8e,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,sEAAsE,2FAA2F,qDAAqD,MAAQ,GAAG,SAAW,4KAA4K,eAAiB,CAAC,kQAAkQ,6rBAA+rB,yRAAyR,WAAa,MAEnsE,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,gaAAia,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,+FAA+F,qDAAqD,MAAQ,GAAG,SAAW,+IAA+I,eAAiB,CAAC,gzBAAozB,yRAAyR,WAAa,MAE14D,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,2pGAA4pG,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,sDAAsD,2EAA2E,iEAAiE,MAAQ,GAAG,SAAW,2sBAA2sB,eAAiB,CAAC,q6BAAq6B,68EAAi9E,ieAAie,WAAa,MAEz/P,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,0WAA2W,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,sEAAsE,MAAQ,GAAG,SAAW,+GAA+G,eAAiB,CAAC,6oBAA6oB,WAAa,MAEtyC,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,svBAAuvB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,mDAAmD,yEAAyE,MAAQ,GAAG,SAAW,yMAAyM,eAAiB,CAAC,shBAAshB,g0BAAk0B,WAAa,MAE7gF,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,2rCAA4rC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,uDAAuD,6EAA6E,MAAQ,GAAG,SAAW,mTAAmT,eAAiB,CAAC,yRAAyR,o7CAAo7C,WAAa,MAEz7G,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,0gBAA2gB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,kDAAkD,MAAQ,GAAG,SAAW,mOAAmO,eAAiB,CAAC,01EAA61E,WAAa,MAEtvG,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,y+BAA0+B,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wDAAwD,6DAA6D,MAAQ,GAAG,SAAW,0VAA0V,eAAiB,CAAC,ivDAAkvD,yaAAya,WAAa,MAE7sH,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,s1BAAu1B,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,+DAA+D,qFAAqF,MAAQ,GAAG,SAAW,yJAAyJ,eAAiB,CAAC,8rBAA8rB,2pBAA2pB,WAAa,MAEtlF,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,+oCAAgpC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,8DAA8D,MAAQ,GAAG,SAAW,kTAAkT,eAAiB,CAAC,okFAAokF,WAAa,MAE7rI,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,yeAA0e,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,8EAA8E,MAAQ,GAAG,SAAW,0EAA0E,eAAiB,CAAC,27BAA27B,WAAa,MAEtrD,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,i+GAAo+G,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,qDAAqD,0EAA0E,iEAAiE,MAAQ,GAAG,SAAW,ktBAAktB,eAAiB,CAAC,o7CAAs7C,86EAAg7E,ieAAie,WAAa,MAEtzR,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,msBAAosB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2DAA2D,iFAAiF,MAAQ,GAAG,SAAW,sJAAsJ,eAAiB,CAAC,wcAAwc,4oBAA4oB,WAAa,MAEnrE,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,8xCAAiyC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,gFAAgF,MAAQ,GAAG,SAAW,yNAAyN,eAAiB,CAAC,+pCAA+pC,WAAa,MAEl2F,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,6HAA8H,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wFAAwF,MAAQ,GAAG,SAAW,0DAA0D,eAAiB,CAAC,8UAA8U,WAAa,MAEvtB,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,q9BAAs9B,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,6EAA6E,kGAAkG,gEAAgE,gEAAgE,MAAQ,GAAG,SAAW,oSAAoS,eAAiB,CAAC,0cAA0c,kiCAAsiC,geAAge,ueAAue,WAAa,MAEzlI,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,82KAA+2K,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,iEAAiE,6DAA6D,sFAAsF,4EAA4E,gEAAgE,8DAA8D,+DAA+D,kEAAkE,MAAQ,GAAG,SAAW,6jCAA6jC,eAAiB,CAAC,4xBAAgyB,uWAAuW,0wIAAuxI,gxBAAgxB,geAAge,gWAAgW,seAAse,wUAAwU,WAAa,MAEh2d,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,w+GAAy+G,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,uEAAuE,4FAA4F,gEAAgE,kEAAkE,MAAQ,GAAG,SAAW,kmBAAkmB,eAAiB,CAAC,4UAA4U,owIAA0wI,geAAge,wUAAwU,WAAa,MAEv2T,S,6ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,62BAA82B,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2EAA2E,iGAAiG,MAAQ,GAAG,SAAW,6NAA6N,eAAiB,CAAC,+RAA+R,y/BAAy/B,WAAa,MAExoF,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,qiDAAsiD,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,uEAAuE,4FAA4F,6DAA6D,MAAQ,GAAG,SAAW,kdAAkd,eAAiB,CAAC,2NAA2N,m2EAAs2E,yaAAya,WAAa,MAE3zK,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,ofAAqf,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,4EAA4E,MAAQ,GAAG,SAAW,gLAAgL,eAAiB,CAAC,4sBAA4sB,WAAa,MAEtjD,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,mjFAAojF,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,+EAA+E,qGAAqG,MAAQ,GAAG,SAAW,kWAAkW,eAAiB,CAAC,k3BAAo3B,iuDAAmuD,WAAa,MAE1xL,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,+/CAAggD,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,iEAAiE,sFAAsF,gEAAgE,gEAAgE,MAAQ,GAAG,SAAW,igBAAigB,eAAiB,CAAC,0vBAA0vB,m4CAAy4C,geAAge,ueAAue,WAAa,MAE39K,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,2LAA4L,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wEAAwE,8FAA8F,MAAQ,GAAG,SAAW,2DAA2D,eAAiB,CAAC,4RAA4R,uVAAuV,WAAa,MAEzoC,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,66HAA86H,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,qEAAqE,0FAA0F,iEAAiE,+DAA+D,iEAAiE,MAAQ,GAAG,SAAW,u0BAAu0B,eAAiB,CAAC,k1EAAk1E,6hGAAoiG,uUAAuU,seAAse,ieAAie,WAAa,MAEl1X,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,8iCAA+iC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,8FAA8F,iEAAiE,MAAQ,GAAG,SAAW,uLAAuL,eAAiB,CAAC,w+BAA0+B,ieAAie,WAAa,MAEz8F,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,yrFAA4rF,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wEAAwE,6FAA6F,iEAAiE,MAAQ,GAAG,SAAW,kcAAkc,eAAiB,CAAC,kYAAkY,o6GAA66G,ieAAie,WAAa,MAE7uP,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,2SAA4S,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,4EAA4E,kGAAkG,MAAQ,GAAG,SAAW,iFAAiF,eAAiB,CAAC,igBAAigB,0OAA0O,WAAa,MAE/4C,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,2vFAA4vF,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,mGAAmG,8DAA8D,gEAAgE,MAAQ,GAAG,SAAW,kmBAAkmB,eAAiB,CAAC,qvEAAyvE,gWAAgW,ueAAue,WAAa,MAExvN,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,+pCAAgqC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,0FAA0F,gEAAgE,8DAA8D,gEAAgE,MAAQ,GAAG,SAAW,6PAA6P,eAAiB,CAAC,03DAA44D,geAAge,gWAAgW,ueAAue,WAAa,MAEj+J,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,ipBAAkpB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,yEAAyE,+FAA+F,MAAQ,GAAG,SAAW,4NAA4N,eAAiB,CAAC,iYAAiY,0xBAA4xB,WAAa,MAE5yE,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,iKAAkK,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,oFAAoF,MAAQ,GAAG,SAAW,uEAAuE,eAAiB,CAAC,+WAA+W,WAAa,MAEryB,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,maAAoa,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,6DAA6D,mFAAmF,MAAQ,GAAG,SAAW,4IAA4I,eAAiB,CAAC,8NAA8N,o9BAAw9B,WAAa,MAE/+D,S,8ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,u0CAAw0C,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,oFAAoF,gEAAgE,8DAA8D,gEAAgE,MAAQ,GAAG,SAAW,mbAAmb,eAAiB,CAAC,q+DAA2+D,geAAge,gWAAgW,ueAAue,WAAa,MAEx5K,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,2FAA4F,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,+DAA+D,qFAAqF,MAAQ,GAAG,SAAW,gDAAgD,eAAiB,CAAC,oQAAoQ,2NAA2N,WAAa,MAEx3B,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,gjJAAijJ,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,iFAAiF,sGAAsG,iEAAiE,MAAQ,GAAG,SAAW,uoBAAuoB,eAAiB,CAAC,8XAA8X,m1JAAu1J,ieAAie,WAAa,MAE/tW,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,4lEAA6lE,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,6DAA6D,6DAA6D,kFAAkF,iEAAiE,MAAQ,GAAG,SAAW,6mBAA6mB,eAAiB,CAAC,uqBAAyqB,uWAAuW,0qFAAgrF,ieAAie,WAAa,MAEjvO,S,8ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,4OAA6O,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,yFAAyF,MAAQ,GAAG,SAAW,uGAAuG,eAAiB,CAAC,ycAAyc,WAAa,MAE/+B,S,4ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,4IAA6I,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,uEAAuE,6FAA6F,MAAQ,GAAG,SAAW,0DAA0D,eAAiB,CAAC,uPAAuP,2WAA2W,WAAa,MAEtkC,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,qwFAAswF,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,6EAA6E,kGAAkG,kEAAkE,MAAQ,GAAG,SAAW,udAAud,eAAiB,CAAC,yVAAyV,woFAA8oF,wUAAwU,WAAa,MAEt3N,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,mJAAoJ,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,qGAAqG,MAAQ,GAAG,SAAW,mCAAmC,eAAiB,CAAC,0VAA0V,WAAa,MAE/uB,S,8ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,28BAA48B,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2GAA2G,MAAQ,GAAG,SAAW,kIAAkI,eAAiB,CAAC,+8CAA+8C,WAAa,MAEjwF,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,muGAAouG,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,4EAA4E,iGAAiG,gEAAgE,gEAAgE,MAAQ,GAAG,SAAW,mdAAmd,eAAiB,CAAC,++CAA++C,yuCAA6uC,geAAge,ueAAue,WAAa,MAEhwP,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,+5MAAk6M,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,sEAAsE,2FAA2F,gEAAgE,gEAAgE,MAAQ,GAAG,SAAW,spCAAspC,eAAiB,CAAC,wqCAA8qC,yqLAAqrL,geAAge,ueAAue,WAAa,MAE5vf,S,8ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,yrBAA0rB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wEAAwE,8FAA8F,MAAQ,GAAG,SAAW,gMAAgM,eAAiB,CAAC,+fAA+f,+/BAA+/B,WAAa,MAEvpF,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,6qCAA8qC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,mEAAmE,wFAAwF,gEAAgE,MAAQ,GAAG,SAAW,mTAAmT,eAAiB,CAAC,8fAA8f,k+CAAm+C,ueAAue,WAAa,MAE7vI,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,wWAAyW,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,qEAAqE,0FAA0F,gEAAgE,MAAQ,GAAG,SAAW,4HAA4H,eAAiB,CAAC,4aAA4a,+ZAAia,ueAAue,WAAa,MAEjnE,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,qiEAA0iE,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,kFAAkF,oDAAoD,wGAAwG,MAAQ,GAAG,SAAW,ueAAue,eAAiB,CAAC,6xBAAmyB,wRAAwR,u+DAA2+D,WAAa,MAE95L,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,siGAAuiG,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,iEAAiE,uFAAuF,MAAQ,GAAG,SAAW,0hBAA0hB,eAAiB,CAAC,+8BAAi9B,w+EAA0+E,WAAa,MAE7wO,S,8ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,8oBAA+oB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,mEAAmE,yFAAyF,MAAQ,GAAG,SAAW,qSAAqS,eAAiB,CAAC,kcAAkc,0uBAA0uB,WAAa,MAEr3E,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,kCAAmC,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,2FAA2F,MAAQ,GAAG,SAAW,kBAAkB,eAAiB,CAAC,qYAAqY,WAAa,MAE9oB,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,gTAAiT,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wEAAwE,8FAA8F,MAAQ,GAAG,SAAW,2FAA2F,eAAiB,CAAC,2QAA2Q,ubAAub,WAAa,MAE72C,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,m4IAAo4I,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,mEAAmE,6DAA6D,wFAAwF,iEAAiE,MAAQ,GAAG,SAAW,m5BAAm5B,eAAiB,CAAC,4xCAA8xC,uWAAuW,+qLAAisL,ieAAie,WAAa,MAEh9a,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,kyBAAmyB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,mEAAmE,6DAA6D,yFAAyF,MAAQ,GAAG,SAAW,kSAAkS,eAAiB,CAAC,+UAAiV,uWAAuW,u/BAAy/B,WAAa,MAExkG,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,stPAAutP,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,wDAAwD,wDAAwD,4DAA4D,2DAA2D,6EAA6E,+EAA+E,4EAA4E,4EAA4E,4EAA4E,8EAA8E,6EAA6E,+EAA+E,MAAQ,GAAG,SAAW,qpEAAqpE,eAAiB,CAAC,8aAA8a,+RAA+R,kWAAkW,izDAAqzD,orNAAorN,qRAAqR,+/BAA+/B,+dAA+d,giFAA8iF,mQAAmQ,soBAAsoB,koBAAkoB,WAAa,MAE1n0B,S,8ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,84NAA+4N,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,mDAAmD,wEAAwE,8DAA8D,+DAA+D,6DAA6D,MAAQ,GAAG,SAAW,gtCAAgtC,eAAiB,CAAC,8tFAA8tF,wuNAAivN,gWAAgW,seAAse,yaAAya,WAAa,MAE3smB,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,0gDAA2gD,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,yDAAyD,+EAA+E,MAAQ,GAAG,SAAW,4ZAA4Z,eAAiB,CAAC,4jCAA4jC,2sCAA2sC,WAAa,MAE/6I,S,+ECJIF,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACnJ,EAAOoJ,GAAI,gqQAAmqQ,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,6DAA6D,mFAAmF,MAAQ,GAAG,SAAW,8+CAA8+C,eAAiB,CAAC,i2GAA42G,ggSAAihS,WAAa,MAEvxsB,S,uBCCApJ,EAAOD,QAAU,SAAUsJ,GACzB,IAAIC,EAAO,GAuDX,OArDAA,EAAKrD,SAAW,WACd,OAAOsD,KAAKhD,KAAI,SAAUiD,GACxB,IAAIC,EAAUJ,EAAuBG,GAErC,OAAIA,EAAK,GACA,UAAUE,OAAOF,EAAK,GAAI,MAAME,OAAOD,EAAS,KAGlDA,CACT,IAAGhD,KAAK,GACV,EAIA6C,EAAKvF,EAAI,SAAU4F,EAASC,EAAYC,GACf,iBAAZF,IAETA,EAAU,CAAC,CAAC,KAAMA,EAAS,MAG7B,IAAIG,EAAyB,CAAC,EAE9B,GAAID,EACF,IAAK,IAAI9F,EAAI,EAAGA,EAAIwF,KAAK1H,OAAQkC,IAAK,CAEpC,IAAIqF,EAAKG,KAAKxF,GAAG,GAEP,MAANqF,IACFU,EAAuBV,IAAM,EAEjC,CAGF,IAAK,IAAIW,EAAK,EAAGA,EAAKJ,EAAQ9H,OAAQkI,IAAM,CAC1C,IAAIP,EAAO,GAAGE,OAAOC,EAAQI,IAEzBF,GAAUC,EAAuBN,EAAK,MAKtCI,IACGJ,EAAK,GAGRA,EAAK,GAAK,GAAGE,OAAOE,EAAY,SAASF,OAAOF,EAAK,IAFrDA,EAAK,GAAKI,GAMdN,EAAKH,KAAKK,GACZ,CACF,EAEOF,CACT,C,wBC/DA,SAASU,EAAeC,EAAKlG,GAAK,OAUlC,SAAyBkG,GAAO,GAAIC,MAAMC,QAAQF,GAAM,OAAOA,CAAK,CAV3BG,CAAgBH,IAQzD,SAA+BA,EAAKlG,GAAK,IAAIgG,EAAKE,IAA0B,oBAAXI,QAA0BJ,EAAII,OAAOC,WAAaL,EAAI,eAAgB,GAAU,MAANF,EAAY,OAAQ,IAAkDQ,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKZ,EAAKA,EAAGa,KAAKX,KAAQS,GAAMH,EAAKR,EAAGc,QAAQC,QAAoBL,EAAKtB,KAAKoB,EAAGxI,QAAYgC,GAAK0G,EAAK5I,SAAWkC,GAA3D2G,GAAK,GAAkE,CAAE,MAAOK,GAAOJ,GAAK,EAAMH,EAAKO,CAAK,CAAE,QAAU,IAAWL,GAAsB,MAAhBX,EAAW,QAAWA,EAAW,QAAK,CAAE,QAAU,GAAIY,EAAI,MAAMH,CAAI,CAAE,CAAE,OAAOC,CAAM,CARnbO,CAAsBf,EAAKlG,IAI5F,SAAqCkH,EAAGC,GAAU,IAAKD,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAOE,EAAkBF,EAAGC,GAAS,IAAIrG,EAAItE,OAAO6K,UAAUnF,SAAS2E,KAAKK,GAAGI,MAAM,GAAI,GAAc,WAANxG,GAAkBoG,EAAEK,cAAazG,EAAIoG,EAAEK,YAAYC,MAAM,GAAU,QAAN1G,GAAqB,QAANA,EAAa,OAAOqF,MAAMrB,KAAKoC,GAAI,GAAU,cAANpG,GAAqB,2CAA2C2G,KAAK3G,GAAI,OAAOsG,EAAkBF,EAAGC,EAAS,CAJ7TO,CAA4BxB,EAAKlG,IAEnI,WAA8B,MAAM,IAAI2H,UAAU,4IAA8I,CAFvDC,EAAoB,CAM7J,SAASR,EAAkBlB,EAAKtC,IAAkB,MAAPA,GAAeA,EAAMsC,EAAIpI,UAAQ8F,EAAMsC,EAAIpI,QAAQ,IAAK,IAAIkC,EAAI,EAAG6H,EAAO,IAAI1B,MAAMvC,GAAM5D,EAAI4D,EAAK5D,IAAO6H,EAAK7H,GAAKkG,EAAIlG,GAAM,OAAO6H,CAAM,CAMtL5L,EAAOD,QAAU,SAAgCyJ,GAC/C,IAAIqC,EAAQ7B,EAAeR,EAAM,GAC7BC,EAAUoC,EAAM,GAChBC,EAAaD,EAAM,GAEvB,IAAKC,EACH,OAAOrC,EAGT,GAAoB,mBAATsC,KAAqB,CAE9B,IAAIC,EAASD,KAAKE,SAASC,mBAAmBC,KAAKC,UAAUN,MACzDO,EAAO,+DAA+D3C,OAAOsC,GAC7EM,EAAgB,OAAO5C,OAAO2C,EAAM,OACpCE,EAAaT,EAAWU,QAAQjG,KAAI,SAAUkG,GAChD,MAAO,iBAAiB/C,OAAOoC,EAAWY,YAAc,IAAIhD,OAAO+C,EAAQ,MAC7E,IACA,MAAO,CAAChD,GAASC,OAAO6C,GAAY7C,OAAO,CAAC4C,IAAgB7F,KAAK,KACnE,CAEA,MAAO,CAACgD,GAAShD,KAAK,KACxB,C,8BCjCA,IACMkG,EADFC,EAEK,WAUL,YAToB,IAATD,IAMTA,EAAOE,QAAQC,QAAUC,UAAYA,SAASC,MAAQF,OAAOG,OAGxDN,CACT,EAGEO,EAAY,WACd,IAAIP,EAAO,CAAC,EACZ,OAAO,SAAkBQ,GACvB,QAA4B,IAAjBR,EAAKQ,GAAyB,CACvC,IAAIC,EAAcL,SAASM,cAAcF,GAEzC,GAAIL,OAAOQ,mBAAqBF,aAAuBN,OAAOQ,kBAC5D,IAGEF,EAAcA,EAAYG,gBAAgBC,IAC5C,CAAE,MAAOC,GAEPL,EAAc,IAChB,CAGFT,EAAKQ,GAAUC,CACjB,CAEA,OAAOT,EAAKQ,EACd,CACF,CAtBgB,GAwBZO,EAAc,GAElB,SAASC,EAAqBC,GAG5B,IAFA,IAAIlG,GAAU,EAEL3D,EAAI,EAAGA,EAAI2J,EAAY7L,OAAQkC,IACtC,GAAI2J,EAAY3J,GAAG6J,aAAeA,EAAY,CAC5ClG,EAAS3D,EACT,KACF,CAGF,OAAO2D,CACT,CAEA,SAASmG,EAAavE,EAAMwE,GAI1B,IAHA,IAAIC,EAAa,CAAC,EACdC,EAAc,GAETjK,EAAI,EAAGA,EAAIuF,EAAKzH,OAAQkC,IAAK,CACpC,IAAIyF,EAAOF,EAAKvF,GACZqF,EAAK0E,EAAQG,KAAOzE,EAAK,GAAKsE,EAAQG,KAAOzE,EAAK,GAClD0E,EAAQH,EAAW3E,IAAO,EAC1BwE,EAAa,GAAGlE,OAAON,EAAI,KAAKM,OAAOwE,GAC3CH,EAAW3E,GAAM8E,EAAQ,EACzB,IAAIC,EAAQR,EAAqBC,GAC7BQ,EAAM,CACRC,IAAK7E,EAAK,GACV8E,MAAO9E,EAAK,GACZ+E,UAAW/E,EAAK,KAGH,IAAX2E,GACFT,EAAYS,GAAOK,aACnBd,EAAYS,GAAOM,QAAQL,IAE3BV,EAAYvE,KAAK,CACfyE,WAAYA,EACZa,QAASC,EAASN,EAAKN,GACvBU,WAAY,IAIhBR,EAAY7E,KAAKyE,EACnB,CAEA,OAAOI,CACT,CAEA,SAASW,EAAmBb,GAC1B,IAAIc,EAAQ7B,SAAS8B,cAAc,SAC/BC,EAAahB,EAAQgB,YAAc,CAAC,EAExC,QAAgC,IAArBA,EAAWC,MAAuB,CAC3C,IAAIA,EAAmD,KAEnDA,IACFD,EAAWC,MAAQA,EAEvB,CAMA,GAJAxO,OAAOC,KAAKsO,GAAY3H,SAAQ,SAAU7G,GACxCsO,EAAMI,aAAa1O,EAAKwO,EAAWxO,GACrC,IAE8B,mBAAnBwN,EAAQmB,OACjBnB,EAAQmB,OAAOL,OACV,CACL,IAAIzB,EAASD,EAAUY,EAAQmB,QAAU,QAEzC,IAAK9B,EACH,MAAM,IAAIvL,MAAM,2GAGlBuL,EAAO+B,YAAYN,EACrB,CAEA,OAAOA,CACT,CAaA,IACMO,EADFC,GACED,EAAY,GACT,SAAiBhB,EAAOkB,GAE7B,OADAF,EAAUhB,GAASkB,EACZF,EAAUG,OAAOzC,SAASpG,KAAK,KACxC,GAGF,SAAS8I,EAAoBX,EAAOT,EAAOqB,EAAQpB,GACjD,IAAIC,EAAMmB,EAAS,GAAKpB,EAAIE,MAAQ,UAAU5E,OAAO0E,EAAIE,MAAO,MAAM5E,OAAO0E,EAAIC,IAAK,KAAOD,EAAIC,IAIjG,GAAIO,EAAMa,WACRb,EAAMa,WAAWC,QAAUN,EAAYjB,EAAOE,OACzC,CACL,IAAIsB,EAAU5C,SAAS6C,eAAevB,GAClCwB,EAAajB,EAAMiB,WAEnBA,EAAW1B,IACbS,EAAMkB,YAAYD,EAAW1B,IAG3B0B,EAAWhO,OACb+M,EAAMmB,aAAaJ,EAASE,EAAW1B,IAEvCS,EAAMM,YAAYS,EAEtB,CACF,CAEA,SAASK,EAAWpB,EAAOd,EAASM,GAClC,IAAIC,EAAMD,EAAIC,IACVC,EAAQF,EAAIE,MACZC,EAAYH,EAAIG,UAepB,GAbID,EACFM,EAAMI,aAAa,QAASV,GAE5BM,EAAMqB,gBAAgB,SAGpB1B,GAA6B,oBAATxC,OACtBsC,GAAO,uDAAuD3E,OAAOqC,KAAKE,SAASC,mBAAmBC,KAAKC,UAAUmC,MAAe,QAMlIK,EAAMa,WACRb,EAAMa,WAAWC,QAAUrB,MACtB,CACL,KAAOO,EAAMsB,YACXtB,EAAMkB,YAAYlB,EAAMsB,YAG1BtB,EAAMM,YAAYnC,SAAS6C,eAAevB,GAC5C,CACF,CAEA,IAAI8B,EAAY,KACZC,EAAmB,EAEvB,SAAS1B,EAASN,EAAKN,GACrB,IAAIc,EACAyB,EACAb,EAEJ,GAAI1B,EAAQqC,UAAW,CACrB,IAAIG,EAAaF,IACjBxB,EAAQuB,IAAcA,EAAYxB,EAAmBb,IACrDuC,EAASd,EAAoBgB,KAAK,KAAM3B,EAAO0B,GAAY,GAC3Dd,EAASD,EAAoBgB,KAAK,KAAM3B,EAAO0B,GAAY,EAC7D,MACE1B,EAAQD,EAAmBb,GAC3BuC,EAASL,EAAWO,KAAK,KAAM3B,EAAOd,GAEtC0B,EAAS,YAxFb,SAA4BZ,GAE1B,GAAyB,OAArBA,EAAM4B,WACR,OAAO,EAGT5B,EAAM4B,WAAWV,YAAYlB,EAC/B,CAkFM6B,CAAmB7B,EACrB,EAIF,OADAyB,EAAOjC,GACA,SAAqBsC,GAC1B,GAAIA,EAAQ,CACV,GAAIA,EAAOrC,MAAQD,EAAIC,KAAOqC,EAAOpC,QAAUF,EAAIE,OAASoC,EAAOnC,YAAcH,EAAIG,UACnF,OAGF8B,EAAOjC,EAAMsC,EACf,MACElB,GAEJ,CACF,CAEAxP,EAAOD,QAAU,SAAUuJ,EAAMwE,IAC/BA,EAAUA,GAAW,CAAC,GAGTqC,WAA0C,kBAAtBrC,EAAQqC,YACvCrC,EAAQqC,UAAYvD,KAItB,IAAI+D,EAAkB9C,EADtBvE,EAAOA,GAAQ,GAC0BwE,GACzC,OAAO,SAAgB8C,GAGrB,GAFAA,EAAUA,GAAW,GAE2B,mBAA5CrQ,OAAO6K,UAAUnF,SAAS2E,KAAKgG,GAAnC,CAIA,IAAK,IAAI7M,EAAI,EAAGA,EAAI4M,EAAgB9O,OAAQkC,IAAK,CAC/C,IACIoK,EAAQR,EADKgD,EAAgB5M,IAEjC2J,EAAYS,GAAOK,YACrB,CAIA,IAFA,IAAIqC,EAAqBhD,EAAa+C,EAAS9C,GAEtC/D,EAAK,EAAGA,EAAK4G,EAAgB9O,OAAQkI,IAAM,CAClD,IAEI+G,EAASnD,EAFKgD,EAAgB5G,IAIK,IAAnC2D,EAAYoD,GAAQtC,aACtBd,EAAYoD,GAAQrC,UAEpBf,EAAYqD,OAAOD,EAAQ,GAE/B,CAEAH,EAAkBE,CAtBlB,CAuBF,CACF,C,GC3QIG,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAapR,QAGrB,IAAIC,EAASgR,EAAyBE,GAAY,CACjD9H,GAAI8H,EAEJnR,QAAS,CAAC,GAOX,OAHAsR,EAAoBH,GAAUlR,EAAQA,EAAOD,QAASkR,GAG/CjR,EAAOD,OACf,CCrBAkR,EAAoBpM,EAAK7E,IACxB,IAAIsR,EAAStR,GAAUA,EAAOuR,WAC7B,IAAOvR,EAAiB,QACxB,IAAM,EAEP,OADAiR,EAAoBO,EAAEF,EAAQ,CAAEpM,EAAGoM,IAC5BA,CAAM,ECLdL,EAAoBO,EAAI,CAACzR,EAAS0R,KACjC,IAAI,IAAInR,KAAOmR,EACXR,EAAoBhG,EAAEwG,EAAYnR,KAAS2Q,EAAoBhG,EAAElL,EAASO,IAC5EC,OAAOuB,eAAe/B,EAASO,EAAK,CAAEoR,YAAY,EAAMC,IAAKF,EAAWnR,IAE1E,ECND2Q,EAAoBhG,EAAI,CAACmD,EAAKwD,IAAUrR,OAAO6K,UAAUyG,eAAejH,KAAKwD,EAAKwD,GCAlFX,EAAoBa,QAAKV,E,kCCelB,SAASW,IAEf,IACC,OAAOC,UAAUC,UAAUC,aAC5B,CAAE,MAAQzE,GACT,MAAO,EACR,CACD,C,wBAEA,MAAMwE,EAA4BF,IAkGlC,EA1BqB,CACpBI,MAAuBA,EAAOF,GAE9BG,UAA2BA,EAAWH,GAEtCI,QAAyBA,EAASJ,GAElCK,SAA0BA,EAAUL,GAEpCM,MAAuBA,EAAON,GAE9BO,UAA2BA,EAAWP,GAEtCQ,QAAyBA,EAASR,GAElCS,oBAAqCA,IAErC,mBAAIC,GACH,OAmHM7F,OAAO8F,WAAY,4BAA6BC,OAlHvD,EAEAC,SAAU,CACTC,iCAAkDA,MAY7C,SAASZ,EAAOF,GACtB,OAAOA,EAAUe,QAAS,cAAiB,CAC5C,CAQO,SAASZ,EAAWH,GAC1B,OAAOA,EAAUe,QAAS,YAAe,CAC1C,CAQO,SAASX,EAASJ,GACxB,QAASA,EAAU7L,MAAO,aAC3B,CAQO,SAASkM,EAAUL,GACzB,OAAOA,EAAUe,QAAS,kBAAqB,IAAwC,IAAnCf,EAAUe,QAAS,SACxE,CAQO,SAAST,EAAON,GAEtB,QAASA,EAAU7L,MAAO,iBAAsB+L,EAAOF,IAAeD,UAAUiB,eAAiB,CAClG,CAQO,SAAST,EAAWP,GAC1B,OAAOA,EAAUe,QAAS,YAAe,CAC1C,CAQO,SAASP,EAASR,GAGxB,OAAOA,EAAUe,QAAS,YAAe,GAAKf,EAAUe,QAAS,SAAY,CAC9E,CAOO,SAASD,IACf,IAAIG,GAAc,EAKlB,IAECA,EAA8D,IAAhD,IAAIC,OAAQ,IAAIC,OAAQ,WAAY,KACnD,CAAE,MAAQC,GAEV,CAEA,OAAOH,CACR,CAKO,SAASR,IACf,OAAO5F,OAAO8F,WAAY,2BAA4BC,OACvD,CC7Ge,SAASS,EACvBpO,EACAhD,EACAqR,EACAC,GAGAD,EAAMA,GAAO,SAAUrO,EAAGhD,GACzB,OAAOgD,IAAMhD,CACd,EAQA,MAAMuR,EAAmBvJ,MAAMC,QAASjF,GAAMA,EAAIgF,MAAMkB,UAAUC,MAAMT,KAAM1F,GACxEwO,EAAmBxJ,MAAMC,QAASjI,GAAMA,EAAIgI,MAAMkB,UAAUC,MAAMT,KAAM1I,GAGxEyR,EAsBP,SAAuCC,EAAwBhI,EAAwB2H,GAEtF,MAAMM,EAAaC,EAA0BF,EAAMhI,EAAM2H,GAGzD,IAAqB,IAAhBM,EACJ,MAAO,CAAEA,YAAa,EAAGE,cAAe,EAAGC,cAAe,GAI3D,MAAMC,EAAmBC,EAAeN,EAAMC,GACxCM,EAAmBD,EAAetI,EAAMiI,GAaxCO,EAAYN,EAA0BG,EAAkBE,EAAkBZ,GAG1EQ,EAAeH,EAAK/R,OAASuS,EAC7BJ,EAAepI,EAAK/J,OAASuS,EAEnC,MAAO,CAAEP,aAAYE,eAAcC,eACpC,CArDuBK,CAA2BZ,EAAQC,EAAQH,GAG3D7L,EAAS8L,EAqHhB,SAAuCG,EAA8BW,GACpE,MAAM,WAAET,EAAU,aAAEE,EAAY,aAAEC,GAAiBL,EAGnD,IAAqB,IAAhBE,EACJ,OAAO3J,MAAOoK,GAAYC,KAAM,SAGjC,IAAI7M,EAA4B,GAE3BmM,EAAa,IACjBnM,EAASA,EAAOgC,OAAQQ,MAAO2J,GAAaU,KAAM,WAG9CP,EAAeH,EAAa,IAChCnM,EAASA,EAAOgC,OAAQQ,MAAO8J,EAAeH,GAAaU,KAAM,YAG7DR,EAAeF,EAAa,IAChCnM,EAASA,EAAOgC,OAAQQ,MAAO6J,EAAeF,GAAaU,KAAM,YAG7DP,EAAeM,IACnB5M,EAASA,EAAOgC,OAAQQ,MAAOoK,EAAYN,GAAeO,KAAM,WAGjE,OAAO7M,CACR,CA/IE8M,CAA8Bb,EAAeD,EAAO7R,QAmFtD,SAAoC4S,EAA4Bd,GAC/D,MAAMjM,EAA2B,IAC3B,WAAEmM,EAAU,aAAEE,EAAY,aAAEC,GAAiBL,EAK9CK,EAAeH,EAAa,GAChCnM,EAAOyB,KAAM,CACZgF,MAAO0F,EACPa,KAAM,SACNC,OAAQF,EAASpJ,MAAOwI,EAAYG,KAIjCD,EAAeF,EAAa,GAChCnM,EAAOyB,KAAM,CACZgF,MAAO0F,GAAeG,EAAeH,GACrCa,KAAM,SACNE,QAASb,EAAeF,IAI1B,OAAOnM,CACR,CA1GEmN,CAAwBnB,EAAQC,GAEjC,OAAOjM,CACR,CAkDA,SAASoM,EAA6BF,EAAwBhI,EAAwB2H,GACrF,QAAUxP,EAAI,EAAGA,EAAI3B,KAAKC,IAAKuR,EAAK/R,OAAQ+J,EAAK/J,QAAUkC,IAC1D,QAAmB,IAAd6P,EAAM7P,SAAmC,IAAd6H,EAAM7H,KAAsBwP,EAAKK,EAAM7P,GAAK6H,EAAM7H,IACjF,OAAOA,EAIT,OAAQ,CACT,CASA,SAASmQ,EAAkBjK,EAAuB2K,GACjD,OAAO3K,EAAIoB,MAAOuJ,GAAUE,SAC7B,CCpLe,SAAShS,EACvBoC,EACAhD,EACAqR,GAGAA,EAAMA,GAAO,SAAUrO,EAAGhD,GACzB,OAAOgD,IAAMhD,CACd,EAEA,MAAM6S,EAAU7P,EAAErD,OACZmT,EAAU9S,EAAEL,OAGlB,GAAKkT,EAAU,KAAOC,EAAU,KAAOD,EAAUC,EAAU,IAC1D,OAAOlS,EAAKwQ,SAAUpO,EAAGhD,EAAGqR,GAAK,GAIlC,IAAI0B,EAAqBC,EAGzB,GAAKF,EAAUD,EAAU,CACxB,MAAMI,EAAMjQ,EAEZA,EAAIhD,EACJA,EAAIiT,EAGJF,EAAU,SACVC,EAAU,QACX,MACCD,EAAU,SACVC,EAAU,SAGX,MAAMpQ,EAAII,EAAErD,OACNgD,EAAI3C,EAAEL,OACNS,EAAQuC,EAAIC,EAGZsQ,EAA2C,CAAC,EAE5CC,EAA+B,CAAC,EAEtC,SAASC,EAAOpS,GAGf,MAAMqS,QAAuB,IAAhBF,EAAInS,EAAI,GAAoBmS,EAAInS,EAAI,IAAO,GAAM,EAExD6B,OAAqB,IAAhBsQ,EAAInS,EAAI,GAAoBmS,EAAInS,EAAI,IAAO,EAEhDsS,EAAMD,EAAKxQ,GAAM,EAAI,EAGtBqQ,EAAIlS,EAAIsS,KACZJ,EAAIlS,GAAMkS,EAAIlS,EAAIsS,GAAMnK,MAAO,IAI1B+J,EAAIlS,KACTkS,EAAIlS,GAAM,IAIXkS,EAAIlS,GAAIiG,KAAMoM,EAAKxQ,EAAKkQ,EAAUC,GAGlC,IAAI1R,EAAIpB,KAAKC,IAAKkT,EAAIxQ,GAClBtB,EAAID,EAAIN,EAGZ,KAAQO,EAAIqB,GAAKtB,EAAIqB,GAAK0O,EAAMrO,EAAGzB,GAAKvB,EAAGsB,KAC1CC,IACAD,IAEA4R,EAAIlS,GAAIiG,KAAM,SAGf,OAAO3F,CACR,CAEA,IACIN,EADAmB,EAAI,EAIR,EAAG,CAEF,IAAMnB,GAAKmB,EAAGnB,EAAIZ,EAAOY,IACxBmS,EAAInS,GAAMoS,EAAOpS,GAIlB,IAAMA,EAAIZ,EAAQ+B,EAAGnB,EAAIZ,EAAOY,IAC/BmS,EAAInS,GAAMoS,EAAOpS,GAKlBmS,EAAI/S,GAAUgT,EAAOhT,GAErB+B,GACD,OAAUgR,EAAI/S,KAAYuC,GAI1B,OAAOuQ,EAAI9S,GAAQ+I,MAAO,EAC3B,CAIAvI,EAAKwQ,SAAWA,ECvHhB,QANA,WACC,OAAO,SAASmC,IACbA,EAAaC,QAAS,CACzB,CACD,ECPe,MAAMC,EAIJlJ,OAKAlB,KAKTvC,KAKS4M,KAKAC,IAkBTC,OAMP,WAAAxK,CAAamB,EAAgBlB,GAC5BhC,KAAKkD,OAASA,EACdlD,KAAKgC,KAAOA,EACZhC,KAAKP,KAAO,GAGZO,KAAKqM,KAAO,IACZrM,KAAKsM,IAAM,GACZ,EC1DD,MAAME,EAAc,IAAI7L,MAAO,KAAMqK,KAAM,IACzChO,KAAK,CAAEyP,EAAG7H,KAAa,IAAQA,EAAQlI,SAAU,KAAOoF,OAAQ,KAYnD,SAAS4K,IAWvB,MAAMC,EAAqB,WAAhB9T,KAAK+T,WAA2B,EACrCC,EAAqB,WAAhBhU,KAAK+T,WAA2B,EACrCE,EAAqB,WAAhBjU,KAAK+T,WAA2B,EACrCG,EAAqB,WAAhBlU,KAAK+T,WAA2B,EAG3C,MAAO,IACNJ,EAAuB,IAAVG,GACbH,EAAaG,GAAM,EAAI,KACvBH,EAAaG,GAAM,GAAK,KACxBH,EAAaG,GAAM,GAAK,KACxBH,EAAuB,IAAVK,GACbL,EAAaK,GAAM,EAAI,KACvBL,EAAaK,GAAM,GAAK,KACxBL,EAAaK,GAAM,GAAK,KACxBL,EAAuB,IAAVM,GACbN,EAAaM,GAAM,EAAI,KACvBN,EAAaM,GAAM,GAAK,KACxBN,EAAaM,GAAM,GAAK,KACxBN,EAAuB,IAAVO,GACbP,EAAaO,GAAM,EAAI,KACvBP,EAAaO,GAAM,GAAK,KACxBP,EAAaO,GAAM,GAAK,IAC1B,CCtBA,MAgBA,EAhBmC,CAClC,GAAA3E,CAAK4E,EAA2B,UAC/B,MAAwB,iBAAZA,EACJhN,KAAMgN,IAAchN,KAAKiN,OAEzBD,CAET,EAEAE,QAAS,IACTC,KAAM,IACNF,OAAQ,EACRG,KAAM,IACNC,QAAS,KCjBK,SAASC,EAAqDC,EAAmBC,GAC/F,MAAMR,EAAW,EAAW5E,IAAKoF,EAAeR,UAEhD,QAAUxS,EAAI,EAAGA,EAAI+S,EAAQjV,OAAQkC,IACpC,GAAK,EAAW4N,IAAKmF,EAAS/S,GAAIwS,UAAaA,EAG9C,YAFAO,EAAQ/F,OAAQhN,EAAG,EAAGgT,GAMxBD,EAAQ3N,KAAM4N,EACf,CChCO,MAAMC,EAAoB,sEA8BlB,MAAMC,UAAsBrV,MAI1BsV,QAKA7K,KAgBhB,WAAAf,CAAa6L,EAAmBD,EAAyB7K,GACxD+K,MA4GF,SAA0BD,EAAmB9K,GAC5C,MAAMgL,EAAmB,IAAIC,QACvBC,EAA6B,CAAEjX,EAAayB,KACjD,GAAsB,iBAAVA,GAAgC,OAAVA,EAAiB,CAClD,GAAKsV,EAAiBG,IAAKzV,GAC1B,MAAO,WAAYA,EAAMuJ,YAAYC,QAGtC8L,EAAiBI,IAAK1V,EACvB,CAEA,OAAOA,CAAK,EAGP2V,EAAkBrL,EAAO,IAAKF,KAAKC,UAAWC,EAAMkL,KAAkC,GACtFI,EAAoBC,EAA+BT,GAEzD,OAAOA,EAAYO,EAAkBC,CACtC,CA9HSE,CAAiBV,EAAW9K,IAEnC9C,KAAKgC,KAAO,gBACZhC,KAAK2N,QAAUA,EACf3N,KAAK8C,KAAOA,CACb,CAKO,EAAAyL,CAAIpD,GACV,MAAgB,kBAATA,CACR,CAWA,6BAAcqD,CAAwBhN,EAAYmM,GACjD,GAAOnM,EAAa+M,IAAQ/M,EAAa+M,GAAI,iBAC5C,MAAM/M,EAYP,MAAMsI,EAAQ,IAAI4D,EAAelM,EAAIiN,QAASd,GAM9C,MAFA7D,EAAM4E,MAAQlN,EAAIkN,MAEZ5E,CACP,EAwBM,SAAS,EAAY8D,EAAmB9K,GAC9C6L,QAAQC,QAASC,EAAwBjB,EAAW9K,GACrD,CA+BA,SAASuL,EAA+BT,GACvC,MAAO,gBAAiBH,WAA6BG,GACtD,CA4BA,SAASiB,EAAwBjB,EAAmB9K,GACnD,MAAMgM,EAAuBT,EAA+BT,GAE5D,OAAO9K,EAAO,CAAE8K,EAAW9K,EAAMgM,GAAyB,CAAElB,EAAWkB,EACxE,CClMA,MAAMC,EAAU,SAKHC,EAAc,IAAIC,KAAM,KAAM,EAAG,IAQ9C,GAAKC,WAAWC,iBAuIf,MAAM,IAAIzB,EACT,8BACA,MAGDwB,WAAWC,iBAAmBJ,ECjJ/B,MAAMK,EAAetO,OAAQ,eACvBuO,EAAavO,OAAQ,aACrBwO,EAAexO,OAAQ,eAEvByO,EAAsCC,EAAcxY,QA+C3C,SAASwY,EAAc9K,GACrC,IAAMA,EACL,OAAO6K,EA2SR,OAxSA,cAA6B7K,EACrB,EAAA+K,CACNC,EACAC,EACApL,GAEAvE,KAAK4P,SAAU5P,KAAM0P,EAAOC,EAAUpL,EACvC,CAEO,IAAAsL,CACNH,EACAC,EACApL,GAEA,IAAIuL,GAAW,EAiBf9P,KAAK4P,SAAU5P,KAAM0P,GAfiB,CAAEA,KAAUxT,KAG3C4T,IACLA,GAAW,EAGXJ,EAAMpD,MAGNqD,EAAStO,KAAMrB,KAAM0P,KAAUxT,GAChC,GAIyCqI,EAC3C,CAEO,GAAA+H,CAAKoD,EAAeC,GAC1B3P,KAAK+P,cAAe/P,KAAM0P,EAAOC,EAClC,CAEO,QAAAC,CACNI,EACAN,EACAC,EACApL,EAA2B,CAAC,GAE5B,IAAI0L,EAAaC,EAgBXlQ,KAAMoP,KACXpP,KAAMoP,GAAiB,CAAC,GAGzB,MAAMe,EAAWnQ,KAAMoP,GAEjBgB,EAAeJ,IACpBK,EAAeL,GAGhB,MAAMM,EAAYF,EAAeJ,IAEzBC,EAAcE,EAAUG,MAC/BL,EAAcE,EAAUG,GAAc,CACrCN,UACAO,UAAW,CAAC,KAINL,EAAiBD,EAAYM,UAAWb,MAC/CQ,EAAiBD,EAAYM,UAAWb,GAAU,IAGnDQ,EAAetQ,KAAM+P,GAutBxB,SACCa,EACAR,EACAN,EACAC,EACApL,GAEKyL,EAAQS,kBACZT,EAAQS,kBAAmBf,EAAOC,EAAUpL,GAI1CiM,EAASC,kBAA6BpP,KAAM2O,EAASN,EAAOC,EAAUpL,EAE1E,CAluBGmM,CAAkB1Q,KAAMgQ,EAASN,EAAOC,EAAUpL,EACnD,CAEO,aAAAwL,CAAeC,EAAmBN,EAAgBC,GACxD,MAAMQ,EAAWnQ,KAAMoP,GACvB,IAAIkB,EAAYN,GAAWI,EAAeJ,GAC1C,MAAMC,EAAgBE,GAAYG,EAAcH,EAAUG,QAAc,EAClEJ,EAAmBD,GAAeP,EAAUO,EAAYM,UAAWb,QAAU,EAGnF,MAAMS,GAAcH,IAAYC,GAAmBP,IAAUQ,GAK7D,GAAKP,EAAW,CACfgB,EAAqB3Q,KAAMgQ,EAAUN,EAAQC,IAM7B,IAFFO,EAAgBzG,QAASkG,KAGN,IAA3BO,EAAgB5X,cACb2X,EAAaM,UAAWb,GAE/BiB,EAAqB3Q,KAAMgQ,EAAUN,EAAQC,GAGhD,SAEUO,EAAiB,CAC1B,KAAUP,EAAWO,EAAelR,OACnC2R,EAAqB3Q,KAAMgQ,EAAUN,EAAQC,UAGvCM,EAAaM,UAAWb,EAChC,SAEUO,EAAc,CACvB,IAAMP,KAASO,EAAYM,UAC1BvQ,KAAK+P,cAAeC,EAAUN,UAExBS,EAAUG,EAClB,KAEK,CACJ,IAAMA,KAAaH,EAClBnQ,KAAK+P,cAAeI,EAAUG,GAAYN,gBAEpChQ,KAAMoP,EACd,CACD,CAEO,IAAAwB,CACNC,KACG3U,GAEH,IACC,MAAM4U,EAAYD,aAAuBzE,EAAYyE,EAAc,IAAIzE,EAAWpM,KAAM6Q,GAClFnB,EAAQoB,EAAU9O,KACxB,IAAIuO,EAAYQ,EAAsB/Q,KAAM0P,GAM5C,GAHAoB,EAAUrR,KAAKG,KAAMI,MAGhBuQ,EAAY,CAEhB,MAAMS,EAAe,CAAEF,KAAc5U,GAOrCqU,EAAY5P,MAAMrB,KAAMiR,GAExB,QAAU/V,EAAI,EAAGA,EAAI+V,EAAUjY,SAC9BiY,EAAW/V,GAAImV,SAASsB,MAAOjR,KAAMgR,GAGhCF,EAAUxE,IAAIH,gBAEX2E,EAAUxE,IAAIH,OAErBnM,KAAKkR,qBAAsBxB,EAAOa,EAAW/V,GAAImV,YAI7CmB,EAAUzE,KAAKF,QAZkB3R,KAgBxC,CAGA,MAAM2W,EAAcnR,KAAMsP,GAE1B,GAAK6B,EAAc,CAClB,MAAMC,EAAeD,EAAY/I,IAAKsH,GAChC2B,EAAsBF,EAAY/I,IAAK,KAExCgJ,GACJE,EAAqBF,EAAcN,EAAW5U,GAG1CmV,GACJC,EAAqBD,EAAqBP,EAAW5U,EAEvD,CAEA,OAAO4U,EAAUvE,MAClB,CAAE,MAAQ/K,GAGTkM,EAAcc,uBAAwBhN,EAAcxB,KACrD,CACD,CAEO,QAAAuR,IAAaC,GACnB,MAAO,CACNjS,GAAI,CAAEyQ,EAASyB,KACRzR,KAAMsP,KACXtP,KAAMsP,GAAiB,IAAIoC,KAK5BF,EAAO5T,SAAS+T,IACf,MAAMP,EAAepR,KAAMsP,GAAgBlH,IAAKuJ,GAE1CP,EAGLA,EAAaQ,IAAK5B,EAASyB,GAF3BzR,KAAMsP,GAAgBsC,IAAKD,EAAW,IAAID,IAAK,CAAE,CAAE1B,EAASyB,KAG7D,GACE,EAGN,CAEO,cAAAI,CAAgBnC,EAAgBM,GACtC,GAAMhQ,KAAMsP,GAIZ,GAAMI,EAEC,GAAMM,EAEN,CACN,MAAMoB,EAAepR,KAAMsP,GAAgBlH,IAAKsH,GAE3C0B,GACJA,EAAaU,OAAQ9B,EAEvB,MAPChQ,KAAMsP,GAAgBwC,OAAQpC,QAF9B1P,KAAMsP,GAAgByC,OAUxB,CAEO,iBAAAtB,CACNf,EACAC,EACApL,IAuaH,SAA+BrB,EAAyByO,GACvD,MAAMH,EAASQ,EAAW9O,GAG1B,GAAKsO,EAAQG,GAEZ,OASD,IAAI3P,EAAO2P,EAEPM,EAAiB,KAGrB,MAAMC,EAAgB,GAKtB,KAAiB,KAATlQ,IACFwP,EAAQxP,IAQbwP,EAAQxP,GA/CF,CACNuO,UAAW,GACX4B,YAAa,IA+CbD,EAActS,KAAM4R,EAAQxP,IAGvBiQ,GACJT,EAAQxP,GAAOmQ,YAAYvS,KAAMqS,GAGlCA,EAAiBjQ,EAEjBA,EAAOA,EAAKoQ,OAAQ,EAAGpQ,EAAKqQ,YAAa,MAG1C,GAAc,KAATrQ,EAAc,CAKlB,UAAY7C,KAAQ+S,EACnB/S,EAAKoR,UAAYiB,EAAQxP,GAAOuO,UAAUzO,QAI3C0P,EAAQxP,GAAOmQ,YAAYvS,KAAMqS,EAClC,CACD,CAjeGK,CAAsBtS,KAAM0P,GAE5B,MAAM6C,EAAQC,EAA+BxS,KAAM0P,GAG7C+C,EAAqB,CAC1B9C,WACA3C,SAJgB,EAAW5E,IAAK7D,EAAQyI,WAQzC,UAAYuD,KAAagC,EAExBjF,EAAuBiD,EAAWkC,EAEpC,CAEO,oBAAAvB,CAAsBxB,EAAeC,GAC3C,MAAM4C,EAAQC,EAA+BxS,KAAM0P,GAEnD,UAAYa,KAAagC,EACxB,QAAU/X,EAAI,EAAGA,EAAI+V,EAAUjY,OAAQkC,IACjC+V,EAAW/V,GAAImV,UAAYA,IAE/BY,EAAU/I,OAAQhN,EAAG,GACrBA,IAIJ,EAiBF,CAkUO,SAAS6V,EAAeL,EAAkBnQ,GACxCmQ,EAA8BX,KACnCW,EAA8BX,GAAexP,GAAM6M,IAEvD,CAQO,SAAS0D,EAAeJ,GAC9B,OAASA,EAA8BX,EACxC,CAYA,SAAS2C,EAAW9O,GAOnB,OANMA,EAAOwP,SACZ1b,OAAOuB,eAAgB2K,EAAQ,UAAW,CACzC1K,MAAO,CAAC,IAIH0K,EAAOwP,OACf,CAsFA,SAASF,EAA+BtP,EAAyByO,GAChE,MAAMgB,EAAYX,EAAW9O,GAAUyO,GAEvC,IAAMgB,EACL,MAAO,GAGR,IAAIC,EAAiB,CAAED,EAAUpC,WAEjC,QAAU/V,EAAI,EAAGA,EAAImY,EAAUR,YAAY7Z,OAAQkC,IAAM,CACxD,MAAMqY,EAAsBL,EAA+BtP,EAAQyP,EAAUR,YAAa3X,IAE1FoY,EAAiBA,EAAezS,OAAQ0S,EACzC,CAEA,OAAOD,CACR,CAOA,SAAS7B,EAAsB7N,EAAyByO,GACvD,IAAIjC,EAEJ,OAAMxM,EAAOwP,UAAchD,EAAQxM,EAAOwP,QAASf,KAAkBjC,EAAMa,UAAUjY,OAY9EoX,EAAMa,UATPoB,EAAUlI,QAAS,MAAS,EAEzBsH,EAAsB7N,EAAQyO,EAAUS,OAAQ,EAAGT,EAAUU,YAAa,OAG1E,IAKV,CASA,SAASf,EACRF,EACAN,EACAgC,GAEA,QAAY9C,EAAShO,KAAUoP,EAAe,CACvCpP,EAEqB,mBAARA,IAClBA,EAAOA,EAAM8O,EAAU9O,OAFvBA,EAAO8O,EAAU9O,KAKlB,MAAM+Q,EAAgB,IAAI3G,EAAW0E,EAAU5N,OAAQlB,GAEvD+Q,EAActT,KAAO,IAAKqR,EAAUrR,MAEpCuQ,EAAQY,KAAMmC,KAAkBD,EACjC,CACD,CAwBA,SAASnC,EAAqBH,EAA2BR,EAA0BN,EAAeC,GAC5FK,EAAQkB,qBACZlB,EAAQkB,qBAAsBxB,EAAOC,GAIrCa,EAASU,qBAAsB7P,KAAM2O,EAASN,EAAOC,EAEvD,CAzhBE,CACD,KAAM,OAAQ,MAAO,WACrB,gBAAiB,OAAQ,WAAY,iBACrC,oBAAqB,wBAClB/R,SAAS7G,IACVyY,EAAuBzY,GAAUwY,EAAoB1N,UAAoB9K,EAAK,IC9VjF,QALA,SAAkByB,GAChB,IAAI2S,SAAc3S,EAClB,OAAgB,MAATA,IAA0B,UAAR2S,GAA4B,YAARA,EAC/C,ECXM6H,EAA6BlS,OAAQ,wBACrCmS,EAAyBnS,OAAQ,oBACjCoS,EAAwBpS,OAAQ,mBAEhCqS,EAAmBrS,OAAQ,oBAC3BsS,EAAoBtS,OAAQ,qBAE5BuS,EAAyCC,EAAiC9D,KAiDjE,SAAS8D,EAAiB5O,GACxC,IAAMA,EACL,OAAO2O,EAyPR,OAtPA,cAA6B3O,EACrB,GAAAkN,CAAK5P,EAA8CxJ,GAEzD,GAAK,EAAUwJ,GAKd,YAJAhL,OAAOC,KAAM+K,GAAOpE,SAAS2V,IAC5BvT,KAAK4R,IAAK2B,EAAUvR,EAAMuR,GAAY,GACpCvT,MAKJwT,EAAgBxT,MAEhB,MAAMyT,EAAazT,KAAMgT,GAEzB,GAAOhR,KAAQhC,OAAWyT,EAAYxF,IAAKjM,GAkB1C,MAAM,IAAI0L,EAAe,iCAAkC1N,MAG5DhJ,OAAOuB,eAAgByH,KAAMgC,EAAM,CAClCmG,YAAY,EACZuL,cAAc,EAEdtL,IAAG,IACKqL,EAAYrL,IAAKpG,GAGzB,GAAA4P,CAAuBpZ,GACtB,MAAMmb,EAAWF,EAAYrL,IAAKpG,GAKlC,IAAI4R,EAAW5T,KAAK4Q,KAA0B,OAAQ5O,IAASA,EAAMxJ,EAAOmb,QAE1D,IAAbC,IACJA,EAAWpb,GAKPmb,IAAaC,GAAaH,EAAYxF,IAAKjM,KAC/CyR,EAAY7B,IAAK5P,EAAM4R,GACvB5T,KAAK4Q,KAA6B,UAAW5O,IAASA,EAAM4R,EAAUD,GAExE,IAGC3T,KAAegC,GAASxJ,CAC3B,CAEO,IAAAwO,IAAS6M,GACf,IAAMA,EAAevb,SAAWwb,GAAeD,GAM9C,MAAM,IAAInG,EAAe,mCAAoC1N,MAG9D,GAAO,IAAI+T,IAAKF,GAAmBG,OAASH,EAAevb,OAM1D,MAAM,IAAIoV,EAAe,uCAAwC1N,MAGlEwT,EAAgBxT,MAEhB,MAAMiU,EAAkBjU,KAAMkT,GAE9BW,EAAejW,SAASsW,IACvB,GAAKD,EAAiBhG,IAAKiG,GAM1B,MAAM,IAAIxG,EAAe,yBAA0B1N,KACpD,IAGD,MAAMmU,EAAW,IAAIzC,IASrB,OAPAmC,EAAejW,SAASjC,IACvB,MAAMyY,EAAU,CAAEb,SAAU5X,EAAG4D,GAAI,IAEnC0U,EAAiBrC,IAAKjW,EAAGyY,GACzBD,EAASvC,IAAKjW,EAAGyY,EAAS,IAGpB,CACN7U,GAAI8U,EACJC,OAAQC,EAERC,YAAaxU,KACbyU,gBAAiBZ,EACjBa,IAAK,GACLC,UAAWR,EAEb,CAEO,MAAAS,IAAWC,GAEjB,IAAQ7U,KAAMgT,GACb,OAGD,MAAMiB,EAAkBjU,KAAMkT,GACxB4B,EAAmB9U,KAAMiT,GAE/B,GAAK4B,EAAiBvc,OAAS,CAC9B,IAAMwb,GAAee,GAMpB,MAAM,IAAInH,EAAe,qCAAsC1N,MAGhE6U,EAAiBjX,SAASsW,IACzB,MAAME,EAAUH,EAAgB7L,IAAK8L,GAG/BE,IAINA,EAAQ7U,GAAG3B,SAAS,EAAImX,EAAcC,MACrC,MAAMC,EAAeH,EAAiB1M,IAAK2M,GACrCG,EAAqBD,EAAcD,GAEzCE,EAAmBpD,OAAQsC,GAErBc,EAAmBlB,aACjBiB,EAAcD,GAGhBhe,OAAOC,KAAMge,GAAe3c,SACjCwc,EAAiBhD,OAAQiD,GACzB/U,KAAK+P,cAAegF,EAAc,UACnC,IAGDd,EAAgBnC,OAAQoC,GAAc,GAExC,MACCY,EAAiBlX,SAAS,CAAEuW,EAAUgB,KACrCnV,KAAK+P,cAAeoF,EAAiB,SAAU,IAGhDL,EAAiB/C,QACjBkC,EAAgBlC,OAElB,CAEO,QAAAqD,CAA+CC,GACrD7B,EAAgBxT,MAEhB,MAAMsV,EAAiBtV,KAAMqV,GAE7B,IAAMC,EAQL,MAAM,IAAI5H,EACT,4CACA1N,KACA,CAAEuV,OAAQvV,KAAMqV,eAIlBrV,KAAKyP,GAAI4F,GAAY,CAAEG,EAAKtZ,KAC3BsZ,EAAIjJ,OAAS+I,EAAerE,MAAOjR,KAAM9D,EAAM,IAGhD8D,KAAMqV,GAAe,YAAanZ,GACjC,OAAO8D,KAAK4Q,KAAMyE,EAAYnZ,EAC/B,EAEA8D,KAAMqV,GAAcjC,GAAsBkC,EAEpCtV,KAAMmT,KACXnT,KAAMmT,GAAqB,IAG5BnT,KAAMmT,GAAoBvT,KAAMyV,EACjC,CAOgB,aAAAtF,CAEfC,EACAN,EACAC,GAGA,IAAMK,GAAWhQ,KAAMmT,GAAqB,CAC3C,UAAYkC,KAAcrV,KAAMmT,GAC/BnT,KAAMqV,GAAerV,KAAMqV,GAAcjC,UAGnCpT,KAAMmT,EACd,CAEAtF,MAAMkC,cAAeC,EAASN,EAAOC,EACtC,CAEA,CAASqD,GAET,CAASG,GAET,CAASD,GAET,CAASD,GAIX,CA0CA,SAASO,EAAgBiC,GAEnBA,EAAYzC,KAKjBhc,OAAOuB,eAAgBkd,EAAYzC,EAA4B,CAC9Dxa,MAAO,IAAIkZ,MA8CZ1a,OAAOuB,eAAgBkd,EAAYxC,EAAwB,CAC1Dza,MAAO,IAAIkZ,MA6BZ1a,OAAOuB,eAAgBkd,EAAYvC,EAAuB,CACzD1a,MAAO,IAAIkZ,MAEb,CAOA,SAAS2C,KAAoCnY,GAC5C,MAAMwZ,EA2HP,YAA6BxZ,GAE5B,IAAMA,EAAK5D,OAMV,MAAM,IAAIoV,EAAe,iCAAkC,MAG5D,MAAMiI,EAAkE,CAAEpW,GAAI,IAC9E,IAAIqW,EAEmC,mBAA3B1Z,EAAMA,EAAK5D,OAAS,KAC/Bqd,EAAOhG,SAAWzT,EAAK8C,OAcxB,OAXA9C,EAAK0B,SAASjC,IACb,GAAiB,iBAALA,EACXia,EAAenC,WAAW7T,KAAMjE,OAC1B,IAAiB,iBAALA,EAIlB,MAAM,IAAI+R,EAAe,iCAAkC,MAH3DkI,EAAiB,CAAEH,WAAY9Z,EAAG8X,WAAY,IAC9CkC,EAAOpW,GAAGK,KAAMgW,EAGjB,KAGMD,CACR,CAzJoBE,IAAoB3Z,GACjC4Z,EAAenV,MAAMrB,KAAMU,KAAK2U,UAAU1d,QAC1C8e,EAAmBD,EAAaxd,OAGtC,IAAMod,EAAW/F,UAAY+F,EAAWnW,GAAGjH,OAAS,EAMnD,MAAM,IAAIoV,EAAe,iCAAkC1N,MAI5D,GAAK+V,EAAmB,GAAKL,EAAW/F,SAMvC,MAAM,IAAIjC,EACT,oCACA1N,MAsQH,IAAgCyV,EAlQ/BC,EAAWnW,GAAG3B,SAAS2B,IAEtB,GAAKA,EAAGkU,WAAWnb,QAAUiH,EAAGkU,WAAWnb,SAAWyd,EAMrD,MAAM,IAAIrI,EAAe,uCAAwC1N,MAK5DT,EAAGkU,WAAWnb,SACnBiH,EAAGkU,WAAazT,KAAKyU,gBACtB,IAGDzU,KAAK0U,IAAMgB,EAAWnW,GAGjBmW,EAAW/F,WACf3P,KAAK2U,UAAUvM,IAAK0N,EAAc,IAAOnG,SAAW+F,EAAW/F,UA4OjC8F,EAzORzV,KAAKwU,YAAaxU,KAAK0U,IA0OnC9W,SAAS2B,IACnB,MAAMuV,EAAmBW,EAAYxC,GACrC,IAAIkB,EAIEW,EAAiB1M,IAAK7I,EAAGkW,aAC9BA,EAAW7F,SAAiCrQ,EAAGkW,WAAY,UAAU,CAAED,EAAKtB,KAC3EC,EAAWW,EAAiB1M,IAAK7I,EAAGkW,YAAevB,GAI9CC,GACJA,EAASvW,SAASwW,IACjB4B,GAA+BP,EAAYrB,EAAQb,SAAU,GAE/D,GAEF,IAzEF,SAA4B0C,GAC3B,IAAIjB,EAEJiB,EAAMtB,UAAU/W,SAAS,CAAEwW,EAASF,KAInC+B,EAAMvB,IAAI9W,SAAS2B,IAClByV,EAAazV,EAAGkU,WAAYW,EAAQzE,SAAW,EAAIsG,EAAMxB,gBAAgBhL,QAASyK,IAElFE,EAAQ7U,GAAGK,KAAM,CAAEL,EAAGkW,WAAYT,IA/ErC,SACCS,EACArB,EACAW,EACAmB,GAEA,MAAMpB,EAAmBW,EAAYxC,GAC/BkD,EAAuBrB,EAAiB1M,IAAK2M,GAC7CZ,EAAWgC,GAAwB,CAAC,EAEpChC,EAAU+B,KACf/B,EAAU+B,GAAmB,IAAInC,KAIlCI,EAAU+B,GAAiBhI,IAAKkG,GAE1B+B,GACLrB,EAAiBlD,IAAKmD,EAAcZ,EAEtC,CA4DGiC,CAAwBH,EAAMzB,YAAaJ,EAAS7U,EAAGkW,WAAYT,EAAY,GAC7E,GAEL,CA9LCqB,CAAmBrW,MAGnBA,KAAKyU,gBAAgB7W,SAASsW,IAC7B8B,GAA+BhW,KAAKwU,YAAaN,EAAc,GAEjE,CAKA,SAASK,EAAqC+B,EAAgCC,EAAmB5G,GAChG,GAAK3P,KAAK2U,UAAUX,KAAO,EAM1B,MAAM,IAAItG,EAAe,0CAA2C1N,MAGrEA,KAAKT,MAYN,SAA4B+W,EAAgCC,GAC3D,MAAMC,EAA8BF,EAAYtZ,KAAKyY,GAAc,CAAEA,EAAYc,KAGjF,OAAO5V,MAAMkB,UAAU1B,OAAO8Q,MAAO,GAAIuF,EAC1C,CAfKC,CAAmBH,EAAaC,GAEnC5G,EAEF,CAgBA,SAASmE,GAAepT,GACvB,OAAOA,EAAIgW,OAAO/a,GAAiB,iBAALA,GAC/B,CA0JA,SAASqa,GAA+BP,EAAgCvB,GACvE,MACME,EADkBqB,EAAYvC,GACJ9K,IAAK8L,GACrC,IAAIyC,EAOCvC,EAAQzE,SACZgH,EAAgBvC,EAAQzE,SAASsB,MAAOwE,EAAYrB,EAAQ7U,GAAGvC,KAAKuC,GAAQA,EAAI,GAAcA,EAAI,QAElGoX,EAAgBvC,EAAQ7U,GAAI,GAC5BoX,EAAkBA,EAAe,GAAcA,EAAe,KAG1D3f,OAAO6K,UAAUyG,eAAejH,KAAMoU,EAAYvB,GACpDuB,EAAqBvB,GAAiByC,EAExClB,EAAW7D,IAAKsC,EAAqByC,EAEvC,CA1ZE,CACD,MAAO,OAAQ,SAAU,WACzB,KAAM,OAAQ,MAAO,WACrB,gBAAiB,OAAQ,WAAY,iBACrC,oBAAqB,wBAClB/Y,SAAS7G,IACVuc,EAA0Bvc,GAAUsc,EAAuBxR,UAAoB9K,EAAK,ICjUxE,MAAM6f,GAIZC,kBAER,WAAA9U,GACC/B,KAAK6W,kBAAoB,EAC1B,CAUO,OAAAC,CAASC,EAAsBC,GACrChX,KAAK6W,kBAAkBjX,KAAM,CAAEmX,UAASC,eAExCD,EAAQ1R,MAAM4R,QAAU,OAEnBD,GACJD,EAAQ9P,WAAYT,aAAcwQ,EAAYD,EAAQG,YAExD,CAKO,OAAAC,GACNnX,KAAK6W,kBAAkBjZ,SAAS,EAAImZ,UAASC,iBAC5CD,EAAQ1R,MAAM4R,QAAU,GAEnBD,GACJA,EAAW/Q,QACZ,IAGDjG,KAAK6W,kBAAoB,EAC1B,ECnCc,SAASlS,GAAOyS,GAC9B,IAAIzS,EAAQ,EAEZ,UAAY8H,KAAK2K,EAChBzS,IAGD,OAAOA,CACR,CCAe,SAAS0S,GAAe1b,EAA2BhD,GACjE,MAAMgJ,EAAS9I,KAAKD,IAAK+C,EAAErD,OAAQK,EAAEL,QAErC,QAAUkC,EAAI,EAAGA,EAAImH,EAAQnH,IAC5B,GAAKmB,EAAGnB,IAAO7B,EAAG6B,GAEjB,OAAOA,EAKT,OAAKmB,EAAErD,QAAUK,EAAEL,OAEX,OACIqD,EAAErD,OAASK,EAAEL,OAEjB,SAGA,WAET,CCjCe,SAASgf,GAAY9e,GACnC,SAAWA,IAASA,EAAOsI,OAAOC,UACnC,CCdA,SAFkC,iBAAVwW,QAAsBA,QAAUA,OAAOvgB,SAAWA,QAAUugB,OCEpF,IAAIC,GAA0B,iBAAR5gB,MAAoBA,MAAQA,KAAKI,SAAWA,QAAUJ,KAK5E,SAFW,IAAc4gB,IAAYC,SAAS,cAATA,GCDrC,SAFa,GAAK3W,OCAlB,IAAI4W,GAAc1gB,OAAO6K,UAGrB,GAAiB6V,GAAYpP,eAO7BqP,GAAuBD,GAAYhb,SAGnCkb,GAAiB,GAAS,GAAOC,iBAAchQ,EA6BnD,SApBA,SAAmBrP,GACjB,IAAIsf,EAAQ,GAAezW,KAAK7I,EAAOof,IACnCG,EAAMvf,EAAMof,IAEhB,IACEpf,EAAMof,SAAkB/P,EACxB,IAAImQ,GAAW,CACjB,CAAE,MAAO9T,GAAI,CAEb,IAAI/F,EAASwZ,GAAqBtW,KAAK7I,GAQvC,OAPIwf,IACEF,EACFtf,EAAMof,IAAkBG,SAEjBvf,EAAMof,KAGVzZ,CACT,EC1CA,IAOI,GAPcnH,OAAO6K,UAOcnF,SAavC,SAJA,SAAwBlE,GACtB,OAAO,GAAqB6I,KAAK7I,EACnC,ECdA,IAII,GAAiB,GAAS,GAAOqf,iBAAchQ,EAkBnD,SATA,SAAoBrP,GAClB,OAAa,MAATA,OACeqP,IAAVrP,EAdQ,qBADL,gBAiBJ,IAAkB,MAAkBxB,OAAOwB,GAC/C,GAAUA,GACV,GAAeA,EACrB,ECAA,SAFcmI,MAAMC,QCKpB,SAJA,SAAsBpI,GACpB,OAAgB,MAATA,GAAiC,iBAATA,CACjC,ECGA,SALA,SAAkBA,GAChB,MAAuB,iBAATA,IACV,GAAQA,IAAU,GAAaA,IArBrB,mBAqB+B,GAAWA,EAC1D,EC8De,SAAS,GACvByf,EACAjW,EACAuD,EAA2D,CAAC,EAC5D2S,EAA6B,IAE7B,MAAMC,EAAY5S,GAAcA,EAAW6S,MACrCrB,EAAUoB,EAAYF,EAAII,gBAAiBF,EAAWnW,GAASiW,EAAI3S,cAAetD,GAExF,UAAYjL,KAAOwO,EAClBwR,EAAQtR,aAAc1O,EAAKwO,EAAYxO,KAGnC,GAAUmhB,IAAeZ,GAAYY,KACzCA,EAAW,CAAEA,IAGd,QAAUI,KAASJ,EACb,GAAUI,KACdA,EAAQL,EAAI5R,eAAgBiS,IAG7BvB,EAAQpR,YAAa2S,GAGtB,OAAOvB,CACR,CCrGA,SANA,SAAiBwB,EAAMC,GACrB,OAAO,SAASC,GACd,OAAOF,EAAKC,EAAUC,GACxB,CACF,ECPA,SAFmB,GAAQzhB,OAAO0hB,eAAgB1hB,QCElD,IAGI2hB,GAAYlB,SAAS5V,UACrB,GAAc7K,OAAO6K,UAGrB+W,GAAeD,GAAUjc,SAGzB,GAAiB,GAAY4L,eAG7BuQ,GAAmBD,GAAavX,KAAKrK,QA2CzC,SAbA,SAAuBwB,GACrB,IAAK,GAAaA,IA5CJ,mBA4Cc,GAAWA,GACrC,OAAO,EAET,IAAIsgB,EAAQ,GAAatgB,GACzB,GAAc,OAAVsgB,EACF,OAAO,EAET,IAAIC,EAAO,GAAe1X,KAAKyX,EAAO,gBAAkBA,EAAM/W,YAC9D,MAAsB,mBAARgX,GAAsBA,aAAgBA,GAClDH,GAAavX,KAAK0X,IAASF,EAC/B,EC/CA,SALA,WACE7Y,KAAKgZ,SAAW,GAChBhZ,KAAKgU,KAAO,CACd,EC0BA,SAJA,SAAYxb,EAAOygB,GACjB,OAAOzgB,IAAUygB,GAAUzgB,GAAUA,GAASygB,GAAUA,CAC1D,ECdA,SAVA,SAAsBC,EAAOniB,GAE3B,IADA,IAAIuB,EAAS4gB,EAAM5gB,OACZA,KACL,GAAI,GAAG4gB,EAAM5gB,GAAQ,GAAIvB,GACvB,OAAOuB,EAGX,OAAQ,CACV,ECfA,IAGIkP,GAHa7G,MAAMkB,UAGC2F,OA4BxB,SAjBA,SAAyBzQ,GACvB,IAAI+L,EAAO9C,KAAKgZ,SACZpU,EAAQ,GAAa9B,EAAM/L,GAE/B,QAAI6N,EAAQ,KAIRA,GADY9B,EAAKxK,OAAS,EAE5BwK,EAAK9D,MAELwI,GAAOnG,KAAKyB,EAAM8B,EAAO,KAEzB5E,KAAKgU,MACA,EACT,ECdA,SAPA,SAAsBjd,GACpB,IAAI+L,EAAO9C,KAAKgZ,SACZpU,EAAQ,GAAa9B,EAAM/L,GAE/B,OAAO6N,EAAQ,OAAIiD,EAAY/E,EAAK8B,GAAO,EAC7C,ECDA,SAJA,SAAsB7N,GACpB,OAAO,GAAaiJ,KAAKgZ,SAAUjiB,IAAQ,CAC7C,ECYA,SAbA,SAAsBA,EAAKyB,GACzB,IAAIsK,EAAO9C,KAAKgZ,SACZpU,EAAQ,GAAa9B,EAAM/L,GAQ/B,OANI6N,EAAQ,KACR5E,KAAKgU,KACPlR,EAAKlD,KAAK,CAAC7I,EAAKyB,KAEhBsK,EAAK8B,GAAO,GAAKpM,EAEZwH,IACT,ECVA,SAASmZ,GAAUC,GACjB,IAAIxU,GAAS,EACTtM,EAAoB,MAAX8gB,EAAkB,EAAIA,EAAQ9gB,OAG3C,IADA0H,KAAK+R,UACInN,EAAQtM,GAAQ,CACvB,IAAI+gB,EAAQD,EAAQxU,GACpB5E,KAAK4R,IAAIyH,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAF,GAAUtX,UAAUkQ,MAAQ,GAC5BoH,GAAUtX,UAAkB,OAAI,GAChCsX,GAAUtX,UAAUuG,IAAM,GAC1B+Q,GAAUtX,UAAUoM,IAAM,GAC1BkL,GAAUtX,UAAU+P,IAAM,GAE1B,YCjBA,SALA,WACE5R,KAAKgZ,SAAW,IAAI,GACpBhZ,KAAKgU,KAAO,CACd,ECKA,SARA,SAAqBjd,GACnB,IAAI+L,EAAO9C,KAAKgZ,SACZ7a,EAAS2E,EAAa,OAAE/L,GAG5B,OADAiJ,KAAKgU,KAAOlR,EAAKkR,KACV7V,CACT,ECFA,SAJA,SAAkBpH,GAChB,OAAOiJ,KAAKgZ,SAAS5Q,IAAIrR,EAC3B,ECEA,SAJA,SAAkBA,GAChB,OAAOiJ,KAAKgZ,SAAS/K,IAAIlX,EAC3B,ECyBA,SAVA,SAAoByB,GAClB,IAAK,EAASA,GACZ,OAAO,EAIT,IAAIuf,EAAM,GAAWvf,GACrB,MA5BY,qBA4BLuf,GA3BI,8BA2BcA,GA7BZ,0BA6B6BA,GA1B7B,kBA0BgDA,CAC/D,EC7BA,SAFiB,GAAK,sBCAtB,IAAIuB,GAAc,WAChB,IAAI5M,EAAM,SAAS6M,KAAK,IAAc,GAAWtiB,MAAQ,GAAWA,KAAKuiB,UAAY,IACrF,OAAO9M,EAAO,iBAAmBA,EAAO,EAC1C,CAHiB,GAgBjB,SAJA,SAAkB6L,GAChB,QAASe,IAAeA,MAAcf,CACxC,EChBA,IAGI,GAHYd,SAAS5V,UAGInF,SAqB7B,SAZA,SAAkB6b,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAO,GAAalX,KAAKkX,EAC3B,CAAE,MAAOrU,GAAI,CACb,IACE,OAAQqU,EAAO,EACjB,CAAE,MAAOrU,GAAI,CACf,CACA,MAAO,EACT,ECdA,IAGIuV,GAAe,8BAGf,GAAYhC,SAAS5V,UACrB,GAAc7K,OAAO6K,UAGrB,GAAe,GAAUnF,SAGzB,GAAiB,GAAY4L,eAG7BoR,GAAa7P,OAAO,IACtB,GAAaxI,KAAK,IAAgByV,QAjBjB,sBAiBuC,QACvDA,QAAQ,yDAA0D,SAAW,KAmBhF,SARA,SAAsBte,GACpB,SAAK,EAASA,IAAU,GAASA,MAGnB,GAAWA,GAASkhB,GAAaD,IAChCxX,KAAK,GAASzJ,GAC/B,EChCA,SAJA,SAAkB+c,EAAQxe,GACxB,OAAiB,MAAVwe,OAAiB1N,EAAY0N,EAAOxe,EAC7C,ECMA,SALA,SAAmBwe,EAAQxe,GACzB,IAAIyB,EAAQ,GAAS+c,EAAQxe,GAC7B,OAAO,GAAayB,GAASA,OAAQqP,CACvC,ECRA,SAFU,GAAU,GAAM,OCC1B,SAFmB,GAAU7Q,OAAQ,UCWrC,SALA,WACEgJ,KAAKgZ,SAAW,GAAe,GAAa,MAAQ,CAAC,EACrDhZ,KAAKgU,KAAO,CACd,ECIA,SANA,SAAoBjd,GAClB,IAAIoH,EAAS6B,KAAKiO,IAAIlX,WAAeiJ,KAAKgZ,SAASjiB,GAEnD,OADAiJ,KAAKgU,MAAQ7V,EAAS,EAAI,EACnBA,CACT,ECXA,IAMI,GAHcnH,OAAO6K,UAGQyG,eAoBjC,SATA,SAAiBvR,GACf,IAAI+L,EAAO9C,KAAKgZ,SAChB,GAAI,GAAc,CAChB,IAAI7a,EAAS2E,EAAK/L,GAClB,MArBiB,8BAqBVoH,OAA4B0J,EAAY1J,CACjD,CACA,OAAO,GAAekD,KAAKyB,EAAM/L,GAAO+L,EAAK/L,QAAO8Q,CACtD,ECxBA,IAGI,GAHc7Q,OAAO6K,UAGQyG,eAgBjC,SALA,SAAiBvR,GACf,IAAI+L,EAAO9C,KAAKgZ,SAChB,OAAO,QAA8BnR,IAAd/E,EAAK/L,GAAsB,GAAesK,KAAKyB,EAAM/L,EAC9E,ECEA,SAPA,SAAiBA,EAAKyB,GACpB,IAAIsK,EAAO9C,KAAKgZ,SAGhB,OAFAhZ,KAAKgU,MAAQhU,KAAKiO,IAAIlX,GAAO,EAAI,EACjC+L,EAAK/L,GAAQ,SAA0B8Q,IAAVrP,EAfV,4BAekDA,EAC9DwH,IACT,ECPA,SAAS2Z,GAAKP,GACZ,IAAIxU,GAAS,EACTtM,EAAoB,MAAX8gB,EAAkB,EAAIA,EAAQ9gB,OAG3C,IADA0H,KAAK+R,UACInN,EAAQtM,GAAQ,CACvB,IAAI+gB,EAAQD,EAAQxU,GACpB5E,KAAK4R,IAAIyH,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAM,GAAK9X,UAAUkQ,MAAQ,GACvB4H,GAAK9X,UAAkB,OAAI,GAC3B8X,GAAK9X,UAAUuG,IAAM,GACrBuR,GAAK9X,UAAUoM,IAAM,GACrB0L,GAAK9X,UAAU+P,IAAM,GAErB,YCXA,SATA,WACE5R,KAAKgU,KAAO,EACZhU,KAAKgZ,SAAW,CACd,KAAQ,IAAI,GACZ,IAAO,IAAK,IAAO,IACnB,OAAU,IAAI,GAElB,ECJA,SAPA,SAAmBxgB,GACjB,IAAI2S,SAAc3S,EAClB,MAAgB,UAAR2S,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAV3S,EACU,OAAVA,CACP,ECKA,SAPA,SAAoBwE,EAAKjG,GACvB,IAAI+L,EAAO9F,EAAIgc,SACf,OAAO,GAAUjiB,GACb+L,EAAmB,iBAAP/L,EAAkB,SAAW,QACzC+L,EAAK9F,GACX,ECEA,SANA,SAAwBjG,GACtB,IAAIoH,EAAS,GAAW6B,KAAMjJ,GAAa,OAAEA,GAE7C,OADAiJ,KAAKgU,MAAQ7V,EAAS,EAAI,EACnBA,CACT,ECAA,SAJA,SAAqBpH,GACnB,OAAO,GAAWiJ,KAAMjJ,GAAKqR,IAAIrR,EACnC,ECEA,SAJA,SAAqBA,GACnB,OAAO,GAAWiJ,KAAMjJ,GAAKkX,IAAIlX,EACnC,ECQA,SATA,SAAqBA,EAAKyB,GACxB,IAAIsK,EAAO,GAAW9C,KAAMjJ,GACxBid,EAAOlR,EAAKkR,KAIhB,OAFAlR,EAAK8O,IAAI7a,EAAKyB,GACdwH,KAAKgU,MAAQlR,EAAKkR,MAAQA,EAAO,EAAI,EAC9BhU,IACT,ECNA,SAAS4Z,GAASR,GAChB,IAAIxU,GAAS,EACTtM,EAAoB,MAAX8gB,EAAkB,EAAIA,EAAQ9gB,OAG3C,IADA0H,KAAK+R,UACInN,EAAQtM,GAAQ,CACvB,IAAI+gB,EAAQD,EAAQxU,GACpB5E,KAAK4R,IAAIyH,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAO,GAAS/X,UAAUkQ,MAAQ,GAC3B6H,GAAS/X,UAAkB,OAAI,GAC/B+X,GAAS/X,UAAUuG,IAAM,GACzBwR,GAAS/X,UAAUoM,IAAM,GACzB2L,GAAS/X,UAAU+P,IAAM,GAEzB,YCEA,SAhBA,SAAkB7a,EAAKyB,GACrB,IAAIsK,EAAO9C,KAAKgZ,SAChB,GAAIlW,aAAgB,GAAW,CAC7B,IAAI+W,EAAQ/W,EAAKkW,SACjB,IAAK,IAAQa,EAAMvhB,OAASwhB,IAG1B,OAFAD,EAAMja,KAAK,CAAC7I,EAAKyB,IACjBwH,KAAKgU,OAASlR,EAAKkR,KACZhU,KAET8C,EAAO9C,KAAKgZ,SAAW,IAAI,GAASa,EACtC,CAGA,OAFA/W,EAAK8O,IAAI7a,EAAKyB,GACdwH,KAAKgU,KAAOlR,EAAKkR,KACVhU,IACT,ECjBA,SAAS+Z,GAAMX,GACb,IAAItW,EAAO9C,KAAKgZ,SAAW,IAAI,GAAUI,GACzCpZ,KAAKgU,KAAOlR,EAAKkR,IACnB,CAGA+F,GAAMlY,UAAUkQ,MAAQ,GACxBgI,GAAMlY,UAAkB,OAAI,GAC5BkY,GAAMlY,UAAUuG,IAAM,GACtB2R,GAAMlY,UAAUoM,IAAM,GACtB8L,GAAMlY,UAAU+P,IAAM,GAEtB,YCLA,SAZA,SAAmBsH,EAAOc,GAIxB,IAHA,IAAIpV,GAAS,EACTtM,EAAkB,MAAT4gB,EAAgB,EAAIA,EAAM5gB,SAE9BsM,EAAQtM,IAC8B,IAAzC0hB,EAASd,EAAMtU,GAAQA,EAAOsU,KAIpC,OAAOA,CACT,ECTA,SARsB,WACpB,IACE,IAAIX,EAAO,GAAUvhB,OAAQ,kBAE7B,OADAuhB,EAAK,CAAC,EAAG,GAAI,CAAC,GACPA,CACT,CAAE,MAAOrU,GAAI,CACf,CANqB,GCsBrB,SAbA,SAAyBqR,EAAQxe,EAAKyB,GACzB,aAAPzB,GAAsB,GACxB,GAAewe,EAAQxe,EAAK,CAC1B,cAAgB,EAChB,YAAc,EACd,MAASyB,EACT,UAAY,IAGd+c,EAAOxe,GAAOyB,CAElB,EClBA,IAGI,GAHcxB,OAAO6K,UAGQyG,eAoBjC,SARA,SAAqBiN,EAAQxe,EAAKyB,GAChC,IAAIyhB,EAAW1E,EAAOxe,GAChB,GAAesK,KAAKkU,EAAQxe,IAAQ,GAAGkjB,EAAUzhB,UACxCqP,IAAVrP,GAAyBzB,KAAOwe,IACnC,GAAgBA,EAAQxe,EAAKyB,EAEjC,ECcA,SA1BA,SAAoB0K,EAAQgX,EAAO3E,EAAQ4E,GACzC,IAAIC,GAAS7E,EACbA,IAAWA,EAAS,CAAC,GAKrB,IAHA,IAAI3Q,GAAS,EACTtM,EAAS4hB,EAAM5hB,SAEVsM,EAAQtM,GAAQ,CACvB,IAAIvB,EAAMmjB,EAAMtV,GAEZgP,EAAWuG,EACXA,EAAW5E,EAAOxe,GAAMmM,EAAOnM,GAAMA,EAAKwe,EAAQrS,QAClD2E,OAEaA,IAAb+L,IACFA,EAAW1Q,EAAOnM,IAEhBqjB,EACF,GAAgB7E,EAAQxe,EAAK6c,GAE7B,GAAY2B,EAAQxe,EAAK6c,EAE7B,CACA,OAAO2B,CACT,EClBA,SAVA,SAAmBja,EAAG0e,GAIpB,IAHA,IAAIpV,GAAS,EACTzG,EAASwC,MAAMrF,KAEVsJ,EAAQtJ,GACf6C,EAAOyG,GAASoV,EAASpV,GAE3B,OAAOzG,CACT,ECAA,SAJA,SAAyB3F,GACvB,OAAO,GAAaA,IAVR,sBAUkB,GAAWA,EAC3C,ECXA,IAAI,GAAcxB,OAAO6K,UAGrB,GAAiB,GAAYyG,eAG7B+R,GAAuB,GAAYA,qBAyBvC,SALkB,GAAgB,WAAa,OAAOC,SAAW,CAA/B,IAAsC,GAAkB,SAAS9hB,GACjG,OAAO,GAAaA,IAAU,GAAe6I,KAAK7I,EAAO,YACtD6hB,GAAqBhZ,KAAK7I,EAAO,SACtC,EChBA,SAJA,WACE,OAAO,CACT,ECXA,IAAI+hB,GAAgC,iBAAX/jB,SAAuBA,UAAYA,QAAQgkB,UAAYhkB,QAG5EikB,GAAaF,IAAgC,iBAAV9jB,QAAsBA,SAAWA,OAAO+jB,UAAY/jB,OAMvFikB,GAHgBD,IAAcA,GAAWjkB,UAAY+jB,GAG5B,GAAKG,YAAS7S,EAwB3C,UArBqB6S,GAASA,GAAOC,cAAW9S,IAmBf,GClCjC,IAGI+S,GAAW,mBAoBf,SAVA,SAAiBpiB,EAAOF,GACtB,IAAI6S,SAAc3S,EAGlB,SAFAF,EAAmB,MAAVA,EAfY,iBAewBA,KAGlC,UAAR6S,GACU,UAARA,GAAoByP,GAAS3Y,KAAKzJ,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQF,CACjD,ECYA,SALA,SAAkBE,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA9Bb,gBA+BvB,EC3BA,IA2BIqiB,GAAiB,CAAC,EACtBA,GAZiB,yBAYYA,GAXZ,yBAYjBA,GAXc,sBAWYA,GAVX,uBAWfA,GAVe,uBAUYA,GATZ,uBAUfA,GATsB,8BASYA,GARlB,wBAShBA,GARgB,yBAQY,EAC5BA,GAjCc,sBAiCYA,GAhCX,kBAiCfA,GApBqB,wBAoBYA,GAhCnB,oBAiCdA,GApBkB,qBAoBYA,GAhChB,iBAiCdA,GAhCe,kBAgCYA,GA/Bb,qBAgCdA,GA/Ba,gBA+BYA,GA9BT,mBA+BhBA,GA9BgB,mBA8BYA,GA7BZ,mBA8BhBA,GA7Ba,gBA6BYA,GA5BT,mBA6BhBA,GA5BiB,qBA4BY,EAc7B,SALA,SAA0BriB,GACxB,OAAO,GAAaA,IAClB,GAASA,EAAMF,WAAauiB,GAAe,GAAWriB,GAC1D,EC5CA,SANA,SAAmB+f,GACjB,OAAO,SAAS/f,GACd,OAAO+f,EAAK/f,EACd,CACF,ECRA,IAAI,GAAgC,iBAAXhC,SAAuBA,UAAYA,QAAQgkB,UAAYhkB,QAG5E,GAAa,IAAgC,iBAAVC,QAAsBA,SAAWA,OAAO+jB,UAAY/jB,OAMvFqkB,GAHgB,IAAc,GAAWtkB,UAAY,IAGtB,GAAWukB,QAiB9C,SAdgB,WACd,IAEE,IAAIC,EAAQ,IAAc,GAAWC,SAAW,GAAWA,QAAQ,QAAQD,MAE3E,OAAIA,GAKGF,IAAeA,GAAY1G,SAAW0G,GAAY1G,QAAQ,OACnE,CAAE,MAAOlQ,GAAI,CACf,CAZe,GCVf,IAAIgX,GAAmB,IAAY,GAASC,aAqB5C,SAFmBD,GAAmB,GAAUA,IAAoB,GChBpE,IAGI,GAHclkB,OAAO6K,UAGQyG,eAqCjC,SA3BA,SAAuB9P,EAAO4iB,GAC5B,IAAIC,EAAQ,GAAQ7iB,GAChB8iB,GAASD,GAAS,GAAY7iB,GAC9B+iB,GAAUF,IAAUC,GAAS,GAAS9iB,GACtCgjB,GAAUH,IAAUC,IAAUC,GAAU,GAAa/iB,GACrDijB,EAAcJ,GAASC,GAASC,GAAUC,EAC1Crd,EAASsd,EAAc,GAAUjjB,EAAMF,OAAQojB,QAAU,GACzDpjB,EAAS6F,EAAO7F,OAEpB,IAAK,IAAIvB,KAAOyB,GACT4iB,IAAa,GAAe/Z,KAAK7I,EAAOzB,IACvC0kB,IAEQ,UAAP1kB,GAECwkB,IAAkB,UAAPxkB,GAA0B,UAAPA,IAE9BykB,IAAkB,UAAPzkB,GAA0B,cAAPA,GAA8B,cAAPA,IAEtD,GAAQA,EAAKuB,KAElB6F,EAAOyB,KAAK7I,GAGhB,OAAOoH,CACT,EC7CA,IAAI,GAAcnH,OAAO6K,UAgBzB,SAPA,SAAqBrJ,GACnB,IAAIugB,EAAOvgB,GAASA,EAAMuJ,YAG1B,OAAOvJ,KAFqB,mBAARugB,GAAsBA,EAAKlX,WAAc,GAG/D,ECVA,SAFiB,GAAQ7K,OAAOC,KAAMD,QCCtC,IAGI,GAHcA,OAAO6K,UAGQyG,eAsBjC,SAbA,SAAkBiN,GAChB,IAAK,GAAYA,GACf,OAAO,GAAWA,GAEpB,IAAIpX,EAAS,GACb,IAAK,IAAIpH,KAAOC,OAAOue,GACjB,GAAelU,KAAKkU,EAAQxe,IAAe,eAAPA,GACtCoH,EAAOyB,KAAK7I,GAGhB,OAAOoH,CACT,ECKA,SAJA,SAAqB3F,GACnB,OAAgB,MAATA,GAAiB,GAASA,EAAMF,UAAY,GAAWE,EAChE,ECMA,SAJA,SAAc+c,GACZ,OAAO,GAAYA,GAAU,GAAcA,GAAU,GAASA,EAChE,EClBA,SAJA,SAAoBA,EAAQrS,GAC1B,OAAOqS,GAAU,GAAWrS,EAAQ,GAAKA,GAASqS,EACpD,ECKA,SAVA,SAAsBA,GACpB,IAAIpX,EAAS,GACb,GAAc,MAAVoX,EACF,IAAK,IAAIxe,KAAOC,OAAOue,GACrBpX,EAAOyB,KAAK7I,GAGhB,OAAOoH,CACT,ECZA,IAGI,GAHcnH,OAAO6K,UAGQyG,eAwBjC,SAfA,SAAoBiN,GAClB,IAAK,EAASA,GACZ,OAAO,GAAaA,GAEtB,IAAIoG,EAAU,GAAYpG,GACtBpX,EAAS,GAEb,IAAK,IAAIpH,KAAOwe,GACD,eAAPxe,IAAyB4kB,GAAY,GAAeta,KAAKkU,EAAQxe,KACrEoH,EAAOyB,KAAK7I,GAGhB,OAAOoH,CACT,ECCA,SAJA,SAAgBoX,GACd,OAAO,GAAYA,GAAU,GAAcA,GAAQ,GAAQ,GAAWA,EACxE,ECbA,SAJA,SAAsBA,EAAQrS,GAC5B,OAAOqS,GAAU,GAAWrS,EAAQ,GAAOA,GAASqS,EACtD,ECXA,IAAI,GAAgC,iBAAX/e,SAAuBA,UAAYA,QAAQgkB,UAAYhkB,QAG5E,GAAa,IAAgC,iBAAVC,QAAsBA,SAAWA,OAAO+jB,UAAY/jB,OAMvF,GAHgB,IAAc,GAAWD,UAAY,GAG5B,GAAKkkB,YAAS7S,EACvC+T,GAAc,GAAS,GAAOA,iBAAc/T,EAqBhD,SAXA,SAAqBgU,EAAQC,GAC3B,GAAIA,EACF,OAAOD,EAAO/Z,QAEhB,IAAIxJ,EAASujB,EAAOvjB,OAChB6F,EAASyd,GAAcA,GAAYtjB,GAAU,IAAIujB,EAAO9Z,YAAYzJ,GAGxE,OADAujB,EAAOE,KAAK5d,GACLA,CACT,ECbA,SAXA,SAAmB+E,EAAQgW,GACzB,IAAItU,GAAS,EACTtM,EAAS4K,EAAO5K,OAGpB,IADA4gB,IAAUA,EAAQvY,MAAMrI,MACfsM,EAAQtM,GACf4gB,EAAMtU,GAAS1B,EAAO0B,GAExB,OAAOsU,CACT,ECOA,SAfA,SAAqBA,EAAO8C,GAM1B,IALA,IAAIpX,GAAS,EACTtM,EAAkB,MAAT4gB,EAAgB,EAAIA,EAAM5gB,OACnC2jB,EAAW,EACX9d,EAAS,KAEJyG,EAAQtM,GAAQ,CACvB,IAAIE,EAAQ0gB,EAAMtU,GACdoX,EAAUxjB,EAAOoM,EAAOsU,KAC1B/a,EAAO8d,KAAczjB,EAEzB,CACA,OAAO2F,CACT,ECAA,SAJA,WACE,MAAO,EACT,EChBA,IAGI,GAHcnH,OAAO6K,UAGcwY,qBAGnC6B,GAAmBllB,OAAOmlB,sBAmB9B,SAVkBD,GAA+B,SAAS3G,GACxD,OAAc,MAAVA,EACK,IAETA,EAASve,OAAOue,GACT,GAAY2G,GAAiB3G,IAAS,SAAS6G,GACpD,OAAO,GAAqB/a,KAAKkU,EAAQ6G,EAC3C,IACF,EARqC,GCJrC,SAJA,SAAqBlZ,EAAQqS,GAC3B,OAAO,GAAWrS,EAAQ,GAAWA,GAASqS,EAChD,ECMA,SAXA,SAAmB2D,EAAO9N,GAKxB,IAJA,IAAIxG,GAAS,EACTtM,EAAS8S,EAAO9S,OAChB+jB,EAASnD,EAAM5gB,SAEVsM,EAAQtM,GACf4gB,EAAMmD,EAASzX,GAASwG,EAAOxG,GAEjC,OAAOsU,CACT,ECOA,SAlBuBliB,OAAOmlB,sBASqB,SAAS5G,GAE1D,IADA,IAAIpX,EAAS,GACNoX,GACL,GAAUpX,EAAQ,GAAWoX,IAC7BA,EAAS,GAAaA,GAExB,OAAOpX,CACT,EAPuC,GCAvC,SAJA,SAAuB+E,EAAQqS,GAC7B,OAAO,GAAWrS,EAAQ,GAAaA,GAASqS,EAClD,ECMA,SALA,SAAwBA,EAAQ+G,EAAUC,GACxC,IAAIpe,EAASme,EAAS/G,GACtB,OAAO,GAAQA,GAAUpX,EAAS,GAAUA,EAAQoe,EAAYhH,GAClE,ECFA,SAJA,SAAoBA,GAClB,OAAO,GAAeA,EAAQ,GAAM,GACtC,ECGA,SAJA,SAAsBA,GACpB,OAAO,GAAeA,EAAQ,GAAQ,GACxC,ECRA,SAFe,GAAU,GAAM,YCE/B,SAFc,GAAU,GAAM,WCE9B,SAFU,GAAU,GAAM,OCE1B,SAFc,GAAU,GAAM,WCK9B,IAAI,GAAS,eAETiH,GAAa,mBACb,GAAS,eACT,GAAa,mBAEb,GAAc,oBAGdC,GAAqB,GAAS,IAC9BC,GAAgB,GAAS,IACzBC,GAAoB,GAAS,IAC7BC,GAAgB,GAAS,IACzBC,GAAoB,GAAS,IAS7BC,GAAS,IAGR,IAAYA,GAAO,IAAI,GAAS,IAAIC,YAAY,MAAQ,IACxD,IAAOD,GAAO,IAAI,KAAQ,IAC1B,IAAWA,GAAO,GAAQE,YAAcR,IACxC,IAAOM,GAAO,IAAI,KAAQ,IAC1B,IAAWA,GAAO,IAAI,KAAY,MACrCA,GAAS,SAAStkB,GAChB,IAAI2F,EAAS,GAAW3F,GACpBugB,EA/BQ,mBA+BD5a,EAAsB3F,EAAMuJ,iBAAc8F,EACjDoV,EAAalE,EAAO,GAASA,GAAQ,GAEzC,GAAIkE,EACF,OAAQA,GACN,KAAKR,GAAoB,OAAO,GAChC,KAAKC,GAAe,OAAO,GAC3B,KAAKC,GAAmB,OAAOH,GAC/B,KAAKI,GAAe,OAAO,GAC3B,KAAKC,GAAmB,OAAO,GAGnC,OAAO1e,CACT,GAGF,YCxDA,IAGI,GAHcnH,OAAO6K,UAGQyG,eAqBjC,SAZA,SAAwB4Q,GACtB,IAAI5gB,EAAS4gB,EAAM5gB,OACf6F,EAAS,IAAI+a,EAAMnX,YAAYzJ,GAOnC,OAJIA,GAA6B,iBAAZ4gB,EAAM,IAAkB,GAAe7X,KAAK6X,EAAO,WACtE/a,EAAOyG,MAAQsU,EAAMtU,MACrBzG,EAAO+e,MAAQhE,EAAMgE,OAEhB/e,CACT,EClBA,SAFiB,GAAKgf,WCYtB,SANA,SAA0BC,GACxB,IAAIjf,EAAS,IAAIif,EAAYrb,YAAYqb,EAAYC,YAErD,OADA,IAAI,GAAWlf,GAAQyT,IAAI,IAAI,GAAWwL,IACnCjf,CACT,ECEA,SALA,SAAuBmf,EAAUxB,GAC/B,IAAID,EAASC,EAAS,GAAiBwB,EAASzB,QAAUyB,EAASzB,OACnE,OAAO,IAAIyB,EAASvb,YAAY8Z,EAAQyB,EAASC,WAAYD,EAASD,WACxE,ECZA,IAAIG,GAAU,OAed,SANA,SAAqBC,GACnB,IAAItf,EAAS,IAAIsf,EAAO1b,YAAY0b,EAAOva,OAAQsa,GAAQjE,KAAKkE,IAEhE,OADAtf,EAAO0M,UAAY4S,EAAO5S,UACnB1M,CACT,ECXA,IAAIuf,GAAc,GAAS,GAAO7b,eAAYgG,EAC1C8V,GAAgBD,GAAcA,GAAYE,aAAU/V,EAaxD,SAJA,SAAqBuU,GACnB,OAAOuB,GAAgB3mB,OAAO2mB,GAActc,KAAK+a,IAAW,CAAC,CAC/D,ECAA,SALA,SAAyByB,EAAY/B,GACnC,IAAID,EAASC,EAAS,GAAiB+B,EAAWhC,QAAUgC,EAAWhC,OACvE,OAAO,IAAIgC,EAAW9b,YAAY8Z,EAAQgC,EAAWN,WAAYM,EAAWvlB,OAC9E,EC+DA,SApCA,SAAwBid,EAAQwC,EAAK+D,GACnC,IAAI/C,EAAOxD,EAAOxT,YAClB,OAAQgW,GACN,IA3BiB,uBA4Bf,OAAO,GAAiBxC,GAE1B,IAvCU,mBAwCV,IAvCU,gBAwCR,OAAO,IAAIwD,GAAMxD,GAEnB,IAjCc,oBAkCZ,OAAO,GAAcA,EAAQuG,GAE/B,IAnCa,wBAmCI,IAlCJ,wBAmCb,IAlCU,qBAkCI,IAjCH,sBAiCkB,IAhClB,sBAiCX,IAhCW,sBAgCI,IA/BG,6BA+BmB,IA9BzB,uBA8ByC,IA7BzC,uBA8BV,OAAO,GAAgBvG,EAAQuG,GAEjC,IAjDS,eA2DT,IAxDS,eAyDP,OAAO,IAAI/C,EARb,IAnDY,kBAoDZ,IAjDY,kBAkDV,OAAO,IAAIA,EAAKxD,GAElB,IAtDY,kBAuDV,OAAO,GAAYA,GAKrB,IAzDY,kBA0DV,OAAO,GAAYA,GAEzB,ECvEA,IAAIuI,GAAe9mB,OAAO+mB,OA0B1B,SAhBkB,WAChB,SAASxI,IAAU,CACnB,OAAO,SAASuD,GACd,IAAK,EAASA,GACZ,MAAO,CAAC,EAEV,GAAIgF,GACF,OAAOA,GAAahF,GAEtBvD,EAAO1T,UAAYiX,EACnB,IAAI3a,EAAS,IAAIoX,EAEjB,OADAA,EAAO1T,eAAYgG,EACZ1J,CACT,CACF,CAdiB,GCIjB,SANA,SAAyBoX,GACvB,MAAqC,mBAAtBA,EAAOxT,aAA8B,GAAYwT,GAE5D,CAAC,EADD,GAAW,GAAaA,GAE9B,ECEA,SAJA,SAAmB/c,GACjB,OAAO,GAAaA,IAVT,gBAUmB,GAAOA,EACvC,ECVA,IAAIwlB,GAAY,IAAY,GAASC,MAqBrC,SAFYD,GAAY,GAAUA,IAAa,GCP/C,SAJA,SAAmBxlB,GACjB,OAAO,GAAaA,IAVT,gBAUmB,GAAOA,EACvC,ECVA,IAAI0lB,GAAY,IAAY,GAASC,MAqBrC,SAFYD,GAAY,GAAUA,IAAa,GCA/C,IAKI,GAAU,qBAKV,GAAU,oBAIV,GAAY,kBAoBZE,GAAgB,CAAC,EACrBA,GAAc,IAAWA,GA7BV,kBA8BfA,GAfqB,wBAeWA,GAdd,qBAelBA,GA9Bc,oBA8BWA,GA7BX,iBA8BdA,GAfiB,yBAeWA,GAdX,yBAejBA,GAdc,sBAcWA,GAbV,uBAcfA,GAbe,uBAaWA,GA5Bb,gBA6BbA,GA5BgB,mBA4BWA,GAAc,IACzCA,GA3BgB,mBA2BWA,GA1Bd,gBA2BbA,GA1BgB,mBA0BWA,GAzBX,mBA0BhBA,GAhBe,uBAgBWA,GAfJ,8BAgBtBA,GAfgB,wBAeWA,GAdX,yBAcsC,EACtDA,GArCe,kBAqCWA,GAAc,IACxCA,GA5BiB,qBA4BW,EA8F5B,SA5EA,SAASC,EAAU7lB,EAAO8lB,EAASnE,EAAYpjB,EAAKwe,EAAQ7G,GAC1D,IAAIvQ,EACA2d,EAnEgB,EAmEPwC,EACTC,EAnEgB,EAmEPD,EACTE,EAnEmB,EAmEVF,EAKb,GAHInE,IACFhc,EAASoX,EAAS4E,EAAW3hB,EAAOzB,EAAKwe,EAAQ7G,GAASyL,EAAW3hB,SAExDqP,IAAX1J,EACF,OAAOA,EAET,IAAK,EAAS3F,GACZ,OAAOA,EAET,IAAI6iB,EAAQ,GAAQ7iB,GACpB,GAAI6iB,GAEF,GADAld,EAAS,GAAe3F,IACnBsjB,EACH,OAAO,GAAUtjB,EAAO2F,OAErB,CACL,IAAI4Z,EAAM,GAAOvf,GACbimB,EAAS1G,GAAO,IA7EX,8BA6EsBA,EAE/B,GAAI,GAASvf,GACX,OAAO,GAAYA,EAAOsjB,GAE5B,GAAI/D,GAAO,IAAaA,GAAO,IAAY0G,IAAWlJ,GAEpD,GADApX,EAAUogB,GAAUE,EAAU,CAAC,EAAI,GAAgBjmB,IAC9CsjB,EACH,OAAOyC,EACH,GAAc/lB,EAAO,GAAa2F,EAAQ3F,IAC1C,GAAYA,EAAO,GAAW2F,EAAQ3F,QAEvC,CACL,IAAK4lB,GAAcrG,GACjB,OAAOxC,EAAS/c,EAAQ,CAAC,EAE3B2F,EAAS,GAAe3F,EAAOuf,EAAK+D,EACtC,CACF,CAEApN,IAAUA,EAAQ,IAAI,IACtB,IAAIgQ,EAAUhQ,EAAMtG,IAAI5P,GACxB,GAAIkmB,EACF,OAAOA,EAEThQ,EAAMkD,IAAIpZ,EAAO2F,GAEb,GAAM3F,GACRA,EAAMoF,SAAQ,SAAS+gB,GACrBxgB,EAAO+P,IAAImQ,EAAUM,EAAUL,EAASnE,EAAYwE,EAAUnmB,EAAOkW,GACvE,IACS,GAAMlW,IACfA,EAAMoF,SAAQ,SAAS+gB,EAAU5nB,GAC/BoH,EAAOyT,IAAI7a,EAAKsnB,EAAUM,EAAUL,EAASnE,EAAYpjB,EAAKyB,EAAOkW,GACvE,IAGF,IAIIwL,EAAQmB,OAAQxT,GAJL2W,EACVD,EAAS,GAAe,GACxBA,EAAS,GAAS,IAEkB/lB,GASzC,OARA,GAAU0hB,GAAS1hB,GAAO,SAASmmB,EAAU5nB,GACvCmjB,IAEFyE,EAAWnmB,EADXzB,EAAM4nB,IAIR,GAAYxgB,EAAQpH,EAAKsnB,EAAUM,EAAUL,EAASnE,EAAYpjB,EAAKyB,EAAOkW,GAChF,IACOvQ,CACT,EC5HA,SALA,SAAuB3F,EAAO2hB,GAE5B,OAAO,GAAU3hB,EAAO,EADxB2hB,EAAkC,mBAAdA,EAA2BA,OAAatS,EAE9D,ECbA,SAJA,SAAmBrP,GACjB,OAAO,GAAaA,IAA6B,IAAnBA,EAAMgiB,WAAmB,GAAchiB,EACvE,ECNe,MAAMomB,GAIHC,QAQjB,WAAA9c,CAAa+c,EAA+BC,GAC3C/e,KAAK6e,QAAU,CAAC,EAGXE,GAGJ/e,KAAKtJ,OAAQsoB,GAAaD,IAItBD,GACJ9e,KAAKif,mBAAoBjf,KAAK6e,QAASC,EAEzC,CA+DO,GAAAlN,CAAK5P,EAAoCxJ,GAC/CwH,KAAKkf,aAAclf,KAAK6e,QAAS7c,EAAMxJ,EACxC,CA4BO,MAAA9B,CAAQsL,EAAoCxJ,GAGlDwH,KAAKkf,aAAclf,KAAK6e,QAAS7c,EAAMxJ,GAFtB,EAGlB,CAkBO,GAAA4P,CAAuBpG,GAC7B,OAAOhC,KAAKmf,eAAgBnf,KAAK6e,QAAS7c,EAC3C,CAKA,MAAQod,GACP,UAAYpd,KAAQhL,OAAOC,KAAM+I,KAAK6e,eAC/B7c,CAER,CAWQ,YAAAkd,CAActb,EAAa5B,EAAWxJ,EAAY6mB,GAAoB,GAE7E,GAAK,GAAerd,GAGnB,YAFAhC,KAAKif,mBAAoBrb,EAAQ5B,EAAMqd,GAMxC,MAAMC,EAAQtd,EAAKjF,MAAO,KAG1BiF,EAAOsd,EAAMtgB,MAGb,UAAYugB,KAAQD,EAEb,GAAe1b,EAAQ2b,MAC5B3b,EAAQ2b,GAAS,CAAC,GAInB3b,EAASA,EAAQ2b,GAIlB,GAAK,GAAe/mB,GAWnB,OATM,GAAeoL,EAAQ5B,MAC5B4B,EAAQ5B,GAAS,CAAC,GAGnB4B,EAASA,EAAQ5B,QAGjBhC,KAAKif,mBAAoBrb,EAAQpL,EAAO6mB,GAMpCA,QAAqC,IAAlBzb,EAAQ5B,KAIhC4B,EAAQ5B,GAASxJ,EAClB,CASQ,cAAA2mB,CAAgBjc,EAAalB,GAEpC,MAAMsd,EAAQtd,EAAKjF,MAAO,KAG1BiF,EAAOsd,EAAMtgB,MAGb,UAAYugB,KAAQD,EAAQ,CAC3B,IAAM,GAAepc,EAAQqc,IAAW,CACvCrc,EAAS,KACT,KACD,CAGAA,EAASA,EAAQqc,EAClB,CAGA,OAAOrc,EAAS8b,GAAa9b,EAAQlB,SAAW,CACjD,CASQ,kBAAAid,CAAoBrb,EAAa4b,EAAoBH,GAC5DroB,OAAOC,KAAMuoB,GAAgB5hB,SAAS7G,IACrCiJ,KAAKkf,aAActb,EAAQ7M,EAAKyoB,EAAezoB,GAAOsoB,EAAU,GAElE,EAMD,SAASL,GAAgB9b,GACxB,OAAO,GAAeA,EAAQuc,GAC/B,CAOA,SAASA,GAAqBjnB,GAC7B,OAAO,GAAWA,IAA4B,mBAAVA,EAAuBA,OAAQ,CACpE,CChRe,SAASknB,GAAQ7a,GAC/B,GAAKA,EAAM,CACV,GAAKA,EAAI8a,YACR,OAAO9a,aAAeA,EAAI8a,YAAYC,SAChC,GAAK/a,EAAIgb,eAAiBhb,EAAIgb,cAAcF,YAClD,OAAO9a,aAAeA,EAAIgb,cAAcF,YAAYG,IAEtD,CAEA,OAAO,CACR,CCVe,SAASC,GAAUlb,GACjC,MAAMmb,EAAoBhpB,OAAO6K,UAAUnF,SAASuU,MAAOpM,GAG3D,MAA0B,mBAArBmb,GAKqB,mBAArBA,CAKN,CCHA,MAAM,GAAsCC,GAAiCzQ,KAuD9D,SAASyQ,GAAiBvb,GACxC,IAAMA,EACL,OAAO,GAyFR,OAtFA,cAA6BA,EAaZ,QAAAkL,CACfI,EACAN,EACAC,EACApL,EAA8F,CAAC,GAG/F,GAAKmb,GAAQ1P,IAAa+P,GAAU/P,GAAY,CAC/C,MAAMkQ,EAAe,CACpBC,UAAW5b,EAAQ6b,WACnBC,UAAW9b,EAAQ+b,YAGdC,EAAevgB,KAAKwgB,iBAAkBxQ,EAASkQ,IAAkB,IAAIO,GAAczQ,EAASkQ,GAElGlgB,KAAK4P,SAAU2Q,EAAc7Q,EAAOC,EAAUpL,EAC/C,MAECsJ,MAAM+B,SAAUI,EAASN,EAAOC,EAAUpL,EAE5C,CAEgB,aAAAwL,CACfC,EACAN,EACAC,GAGA,GAAK+P,GAAQ1P,IAAa+P,GAAU/P,GAAY,CAC/C,MAAM0Q,EAAgB1gB,KAAK2gB,qBAAsB3Q,GAEjD,UAAY4Q,KAASF,EACpB1gB,KAAK+P,cAAe6Q,EAAOlR,EAAOC,EAEpC,MAEC9B,MAAMkC,cAAeC,EAASN,EAAOC,EAEvC,CAaQ,gBAAA6Q,CACPrhB,EACAoF,GAEA,OzH6gBI,SAAgCsc,EAA2BC,GACjE,MAAMC,EAAgBF,EAAuCzR,GAC7D,OAAK2R,GAAeA,EAAaD,GACzBC,EAAaD,GAAsB9Q,QAGpC,IACR,CyHphBUgR,CAAuBhhB,KAAMihB,GAAmB9hB,EAAMoF,GAC9D,CAOQ,oBAAAoc,CAAsBxhB,GAC7B,MAAO,CACN,CAAEghB,SAAS,EAAOE,SAAS,GAC3B,CAAEF,SAAS,EAAOE,SAAS,GAC3B,CAAEF,SAAS,EAAME,SAAS,GAC1B,CAAEF,SAAS,EAAME,SAAS,IACzBrjB,KAAKuH,GAAWvE,KAAKwgB,iBAAkBrhB,EAAMoF,KAAYwB,QAAQ6a,KAAWA,GAC/E,EAIF,CAGE,CACD,mBAAoB,uBACpB,KAAM,OAAQ,MAAO,WACrB,gBAAiB,OAAQ,WAAY,iBACrC,oBAAqB,wBAClBhjB,SAAS7G,IACVkpB,GAA0BlpB,GAAU,GAAoB8K,UAAoB9K,EAAK,IA+BpF,MAAM0pB,WAAqCjR,KACzB0R,SACAC,SAUjB,WAAApf,CACC5C,EACAoF,GAEAsJ,QAGAwC,EAAerQ,KAAMihB,GAAmB9hB,EAAMoF,IAG9CvE,KAAKkhB,SAAW/hB,EAGhBa,KAAKmhB,SAAW5c,CACjB,CAKQ6c,cAkBD,MAAAC,CAAQ3R,GAGd,GAAK1P,KAAKohB,eAAiBphB,KAAKohB,cAAe1R,GAC9C,OAGD,MAAM4R,EAActhB,KAAKuhB,mBAAoB7R,GAG7C1P,KAAKkhB,SAASxQ,iBAAkBhB,EAAO4R,EAAathB,KAAKmhB,UAEnDnhB,KAAKohB,gBACVphB,KAAKohB,cAAgB,CAAC,GAKvBphB,KAAKohB,cAAe1R,GAAU4R,CAC/B,CAUO,MAAAE,CAAQ9R,GACd,IAAI8B,GAMCxR,KAAKohB,cAAgB1R,KAAgB8B,EAAWxR,KAAc0S,QAAUhD,KAAc8B,EAAOjB,UAAUjY,QAC3G0H,KAAKohB,cAAgB1R,GAAQ+R,gBAE/B,CAUO,iBAAAhR,CACNf,EACAC,EACApL,GAEAvE,KAAKqhB,OAAQ3R,GACXF,IAAe3N,UAAmB4O,kBAAkBpP,KAAMrB,KAAM0P,EAAOC,EAAUpL,EACpF,CASO,oBAAA2M,CAAsBxB,EAAeC,GACzCH,IAAe3N,UAAmBqP,qBAAqB7P,KAAMrB,KAAM0P,EAAOC,GAC5E3P,KAAKwhB,OAAQ9R,EACd,CAUQ,kBAAA6R,CAAoB7R,GAC3B,MAAM4R,EAAgBI,IACrB1hB,KAAK4Q,KAAMlB,EAAOgS,EAAQ,EAW3B,OALAJ,EAAYG,eAAiB,KAC5BzhB,KAAKkhB,SAASvQ,oBAAqBjB,EAAO4R,EAAathB,KAAKmhB,iBACrDnhB,KAAKohB,cAAgB1R,EAAO,EAG7B4R,CACR,EAeD,SAASL,GAAmB9hB,EAAqBoF,GAChD,IAAI1E,EARL,SAAqBV,GACpB,OAAOA,EAAM,qBAAyBA,EAAM,mBAAsBuN,IACnE,CAMUiV,CAAYxiB,GAErB,UAAYyiB,KAAU5qB,OAAOC,KAAMsN,GAAUsd,OACvCtd,EAASqd,KACb/hB,GAAM,IAAM+hB,GAId,OAAO/hB,CACR,CCpVA,IAAIiiB,GAGJ,IACCA,GAAY,CAAEve,OAAQC,SACvB,CAAE,MAAQU,GAQT4d,GAAY,CAAEve,OAAQ,CAAC,EAAUC,SAAU,CAAC,EAC7C,CAEA,YCnCe,SAASue,GAAoBC,GAC3C,OAAKA,aAAcC,oBACXD,EAAGxpB,MAGJwpB,EAAGE,SACX,CCPe,SAASC,GAAiBpL,GAExC,MAAM1R,EAAQ0R,EAAQ8I,cAAcF,YAAayC,iBAAkBrL,GAEnE,MAAO,CACNsL,IAAKjlB,SAAUiI,EAAMid,eAAgB,IACrCC,MAAOnlB,SAAUiI,EAAMmd,iBAAkB,IACzCC,OAAQrlB,SAAUiI,EAAMqd,kBAAmB,IAC3CC,KAAMvlB,SAAUiI,EAAMud,gBAAiB,IAEzC,CCde,SAASC,GAAQhe,GAC/B,MAAgD,iBAAzC7N,OAAO6K,UAAUnF,SAAS2E,KAAMwD,EACxC,CCFe,SAASie,GAASje,GAChC,MAAiD,kBAA1C7N,OAAO6K,UAAUnF,SAASuU,MAAOpM,EACzC,CCEe,SAASke,GAAuBhM,GAC9C,OAAMA,GAAYA,EAAQ9P,WAIrB8P,EAAQiM,eAAiB,GAAOxf,SAASyf,KACtC,KAGDlM,EAAQiM,aAPP,IAQT,CCVA,MAAME,GAAwC,CAAE,MAAO,QAAS,SAAU,OAAQ,QAAS,UAO5E,MAAM,GAMbb,IAOAE,MAOAE,OAOAE,KAOAQ,MAOAC,OAOCC,QA+BR,WAAAthB,CAAamB,GACZ,MAAMogB,EAAgBR,GAAS5f,GAS/B,GAPAlM,OAAOuB,eAAgByH,KAAM,UAAW,CAEvCxH,MAAS0K,EAAgBmgB,SAAWngB,EACpCqgB,UAAU,EACVpb,YAAY,IAGRqb,GAActgB,IAAYogB,EAY9B,GAAKA,EAAgB,CACpB,MAAMG,EAAa,GAAKC,iBAAkBxgB,GAC1CygB,GAAoB3jB,KAAM,GAAK4jB,gBAAiBH,GACjD,MACCE,GAAoB3jB,KAAMkD,EAAO2gB,8BAE5B,GAAK9D,GAAU7c,GAAW,CAChC,MAAM,WAAE4gB,EAAU,YAAEC,GAAgB7gB,EAEpCygB,GAAoB3jB,KAAM,CACzBqiB,IAAK,EACLE,MAAOuB,EACPrB,OAAQsB,EACRpB,KAAM,EACNQ,MAAOW,EACPV,OAAQW,GAEV,MACCJ,GAAoB3jB,KAAMkD,EAE5B,CAOO,KAAA8gB,GACN,OAAO,IAAI,GAAMhkB,KAClB,CASO,MAAAikB,CAAQ/pB,EAAWD,GAMzB,OALA+F,KAAKqiB,IAAMpoB,EACX+F,KAAKuiB,MAAQroB,EAAI8F,KAAKmjB,MACtBnjB,KAAKyiB,OAASxoB,EAAI+F,KAAKojB,OACvBpjB,KAAK2iB,KAAOzoB,EAEL8F,IACR,CASO,MAAAkkB,CAAQhqB,EAAWD,GAMzB,OALA+F,KAAKqiB,KAAOpoB,EACZ+F,KAAKuiB,OAASroB,EACd8F,KAAK2iB,MAAQzoB,EACb8F,KAAKyiB,QAAUxoB,EAER+F,IACR,CAKO,eAAAmkB,CAAiBC,GACvB,MAAMC,EAAO,CACZhC,IAAKxpB,KAAKC,IAAKkH,KAAKqiB,IAAK+B,EAAY/B,KACrCE,MAAO1pB,KAAKD,IAAKoH,KAAKuiB,MAAO6B,EAAY7B,OACzCE,OAAQ5pB,KAAKD,IAAKoH,KAAKyiB,OAAQ2B,EAAY3B,QAC3CE,KAAM9pB,KAAKC,IAAKkH,KAAK2iB,KAAMyB,EAAYzB,MACvCQ,MAAO,EACPC,OAAQ,GAMT,GAHAiB,EAAKlB,MAAQkB,EAAK9B,MAAQ8B,EAAK1B,KAC/B0B,EAAKjB,OAASiB,EAAK5B,OAAS4B,EAAKhC,IAE5BgC,EAAKlB,MAAQ,GAAKkB,EAAKjB,OAAS,EACpC,OAAO,KACD,CACN,MAAMkB,EAAU,IAAI,GAAMD,GAI1B,OAFAC,EAAQjB,QAAUrjB,KAAKqjB,QAEhBiB,CACR,CACD,CAOO,mBAAAC,CAAqBH,GAC3B,MAAMC,EAAOrkB,KAAKmkB,gBAAiBC,GAEnC,OAAKC,EACGA,EAAKG,UAEL,CAET,CAKO,OAAAA,GACN,OAAOxkB,KAAKmjB,MAAQnjB,KAAKojB,MAC1B,CAmBO,UAAAqB,GACN,MAAMvhB,EAA2FlD,KAAKqjB,QAEtG,IAAIqB,EAAc1kB,KAAKgkB,QAGvB,GAAKW,GAAQzhB,GACZ,OAAOwhB,EAGR,IAEIE,EAFAtM,EAAapV,EACbtE,EAASsE,EAAO+D,YAAc/D,EAAO2hB,wBAIzC,KAAQjmB,IAAW+lB,GAAQ/lB,IAAW,CACrC,MAAMkmB,EAA0E,cAwStD/N,EAxS0BnY,aAyS5BmmB,YAAchO,EAAQ8I,cAAcF,YAAayC,iBAAkBrL,GAAUiO,SAAW,WAvS3G1M,aAAiByM,aAA+C,aAAhCE,GAAoB3M,KACxDsM,EAAmCtM,GAGpC,MAAM4M,EAAwBD,GAAoBrmB,GAmClD,GACCkmB,GACAF,IAC6B,aAA1BM,GAAwCJ,GAChB,aAA1BI,GAEA,CACD5M,EAAQ1Z,EACRA,EAASA,EAAOqI,WAChB,QACD,CAEA,MAAMke,EAAa,IAAI,GAAMvmB,GACvBwmB,EAAmBV,EAAYP,gBAAiBgB,GAEtD,IAAKC,EAOJ,OAAO,KANFA,EAAiBZ,UAAYE,EAAYF,YAE7CE,EAAcU,GAOhB9M,EAAQ1Z,EACRA,EAASA,EAAOqI,UACjB,CAoOF,IAA6B8P,EAlO3B,OAAO2N,CACR,CAUO,OAAAW,CAASjB,GACf,UAAY/b,KAAQ6a,GACnB,GAAKljB,KAAMqI,KAAW+b,EAAa/b,GAClC,OAAO,EAIT,OAAO,CACR,CAQO,QAAAid,CAAUlB,GAChB,MAAMmB,EAAgBvlB,KAAKmkB,gBAAiBC,GAE5C,SAAWmB,IAAiBA,EAAcF,QAASjB,GACpD,CAKO,cAAAoB,GACN,MAAM,QAAEC,EAAO,QAAEC,GAAY,GAAOniB,OAC9BoiB,EAAe3lB,KAAKgkB,QAAQE,OAAQuB,EAASC,GAEnD,GAAKlC,GAAcmC,EAAatC,SAAY,CAC3C,MAAMuC,EAAqB7C,GAAuB4C,EAAatC,SAE1DuC,GAmMR,SAAkDvB,EAAYwB,GAC7D,MAAMC,EAAmB,IAAI,GAAMD,GAC7BE,EAAuB5D,GAAiB0D,GAE9C,IAAIG,EAAQ,EACRC,EAAQ,EAMZD,GAASF,EAAiBnD,KAC1BsD,GAASH,EAAiBzD,IAO1B2D,GAASH,EAA0BK,WACnCD,GAASJ,EAA0BM,UAOnCH,GAASD,EAAqBpD,KAC9BsD,GAASF,EAAqB1D,IAE9BgC,EAAKH,OAAQ8B,EAAOC,EACrB,CAjOIG,CAAyCT,EAAcC,EAEzD,CAEA,OAAOD,CACR,CAUO,2BAAAU,GACN,MAAMnjB,EAASlD,KAAKqjB,QACpB,IAAIiD,EAAgBC,EAAiBC,EAErC,GAAKzG,GAAU7c,GACdojB,EAAiBpjB,EAAO4gB,WAAa5gB,EAAOM,SAASijB,gBAAgBC,YACrEH,EAAkBrjB,EAAO6gB,YAAc7gB,EAAOM,SAASijB,gBAAgBE,aACvEH,EAAYtjB,EAAOkf,iBAAkBlf,EAAOM,SAASijB,iBAAkBD,cACjE,CACN,MAAMI,EAAezE,GAAiBjf,GAEtCojB,EAAiBpjB,EAAO2jB,YAAc3jB,EAAOwjB,YAAcE,EAAajE,KAAOiE,EAAarE,MAC5FgE,EAAkBrjB,EAAO4jB,aAAe5jB,EAAOyjB,aAAeC,EAAavE,IAAMuE,EAAanE,OAC9F+D,EAAYtjB,EAAO2c,cAAcF,YAAayC,iBAAkBlf,GAASsjB,UAEzExmB,KAAK2iB,MAAQiE,EAAajE,KAC1B3iB,KAAKqiB,KAAOuE,EAAavE,IACzBriB,KAAKuiB,OAASqE,EAAarE,MAC3BviB,KAAKyiB,QAAUmE,EAAanE,OAC5BziB,KAAKmjB,MAAQnjB,KAAKuiB,MAAQviB,KAAK2iB,KAC/B3iB,KAAKojB,OAASpjB,KAAKyiB,OAASziB,KAAKqiB,GAClC,CAaA,OAXAriB,KAAKmjB,OAASmD,EAEK,QAAdE,EACJxmB,KAAKuiB,OAAS+D,EAEdtmB,KAAK2iB,MAAQ2D,EAGdtmB,KAAKojB,QAAUmD,EACfvmB,KAAKyiB,QAAU8D,EAERvmB,IACR,CAQA,uBAAc0jB,CAAkBqD,GAC/B,MAAMC,EAAqB,GAErBC,EAActmB,MAAMrB,KAAMynB,EAAMG,kBAEtC,GAAKD,EAAY3uB,OAChB,UAAY+rB,KAAQ4C,EACnBD,EAAMpnB,KAAM,IAAI,GAAMykB,QAOnB,CACJ,IAAI8C,EAAiBJ,EAAMI,eAEtBtE,GAAQsE,KACZA,EAAiBA,EAAelgB,YAGjC,MAAMod,EAAO,IAAI,GAAQ8C,EAA4BtD,yBACrDQ,EAAK9B,MAAQ8B,EAAK1B,KAClB0B,EAAKlB,MAAQ,EAEb6D,EAAMpnB,KAAMykB,EACb,CAEA,OAAO2C,CACR,CAQA,sBAAcpD,CAAiBoD,GAC9B,MAAMI,EAAmB,CACxBzE,KAAM0E,OAAOC,kBACbjF,IAAKgF,OAAOC,kBACZ/E,MAAO8E,OAAOE,kBACd9E,OAAQ4E,OAAOE,kBACfpE,MAAO,EACPC,OAAQ,GAET,IAAIoE,EAAiB,EAErB,UAAYnD,KAAQ2C,EACnBQ,IAEAJ,EAAiBzE,KAAO9pB,KAAKD,IAAKwuB,EAAiBzE,KAAM0B,EAAK1B,MAC9DyE,EAAiB/E,IAAMxpB,KAAKD,IAAKwuB,EAAiB/E,IAAKgC,EAAKhC,KAC5D+E,EAAiB7E,MAAQ1pB,KAAKC,IAAKsuB,EAAiB7E,MAAO8B,EAAK9B,OAChE6E,EAAiB3E,OAAS5pB,KAAKC,IAAKsuB,EAAiB3E,OAAQ4B,EAAK5B,QAGnE,OAAuB,GAAlB+E,EACG,MAGRJ,EAAiBjE,MAAQiE,EAAiB7E,MAAQ6E,EAAiBzE,KACnEyE,EAAiBhE,OAASgE,EAAiB3E,OAAS2E,EAAiB/E,IAE9D,IAAI,GAAM+E,GAClB,EAuBD,SAASzD,GAAoBU,EAAYnhB,GACxC,UAAYpI,KAAKooB,GAChBmB,EAAMvpB,GAAMoI,EAAQpI,EAEtB,CAKA,SAAS6pB,GAAQnsB,GAChB,QAAMgrB,GAAchrB,IAIbA,IAAUA,EAAMqnB,cAAcoD,IACtC,CAKA,SAASO,GAAchrB,GAGtB,OAAiB,OAAVA,GAAmC,iBAAVA,GAAyC,IAAnBA,EAAMgiB,UAAyD,mBAAhChiB,EAAMqrB,qBAC5F,CAKA,SAASoB,GAAoBlO,GAC5B,OAAOA,aAAmBgO,YAAchO,EAAQ8I,cAAcF,YAAayC,iBAAkBrL,GAAU0Q,SAAW,QACnH,CCrhBe,MAAMC,GAIHC,SAKAC,UAKjB,yBAA6F,KAM7F,yBAAqG,KAWrG,WAAA7lB,CAAagV,EAAkBpH,GAGxB+X,GAAeG,mBACpBH,GAAeI,kBAGhB9nB,KAAK2nB,SAAW5Q,EAChB/W,KAAK4nB,UAAYjY,EAEjB+X,GAAeK,oBAAqBhR,EAASpH,GAC7C+X,GAAeG,kBAAmBG,QAASjR,EAC5C,CAKA,WAAWA,GACV,OAAO/W,KAAK2nB,QACb,CAKO,OAAAM,GACNP,GAAeQ,uBAAwBloB,KAAK2nB,SAAU3nB,KAAK4nB,UAC5D,CAKA,0BAAeG,CAAqBhR,EAAkBpH,GAC/C+X,GAAeS,oBACpBT,GAAeS,kBAAoB,IAAIzW,KAGxC,IAAInB,EAAYmX,GAAeS,kBAAkB/f,IAAK2O,GAEhDxG,IACLA,EAAY,IAAIwD,IAChB2T,GAAeS,kBAAkBvW,IAAKmF,EAASxG,IAGhDA,EAAUrC,IAAKyB,EAChB,CAMA,6BAAeuY,CAAwBnR,EAAkBpH,GACxD,MAAMY,EAAYmX,GAAeU,qBAAsBrR,GAIlDxG,IACJA,EAAUuB,OAAQnC,GAGZY,EAAUyD,OACf0T,GAAeS,kBAAmBrW,OAAQiF,GAC1C2Q,GAAeG,kBAAmBQ,UAAWtR,KAI1C2Q,GAAeS,oBAAsBT,GAAeS,kBAAkBnU,OAC1E0T,GAAeG,kBAAoB,KACnCH,GAAeS,kBAAoB,KAErC,CAKA,2BAAeC,CAAsBrR,GACpC,OAAM2Q,GAAeS,kBAIdT,GAAeS,kBAAkB/f,IAAK2O,GAHrC,IAIT,CAKA,sBAAe+Q,GACdJ,GAAeG,kBAAoB,IAAI,GAAOtkB,OAAOmkB,gBAAgBtO,IACpE,UAAYC,KAASD,EAAU,CAC9B,MAAM7I,EAAYmX,GAAeU,qBAAsB/O,EAAMzV,QAE7D,GAAK2M,EACJ,UAAYZ,KAAYY,EACvBZ,EAAU0J,EAGb,IAEF,EC1Ic,SAASiP,GAAkBtG,EAAiBlf,GACrDkf,aAAcC,sBAClBD,EAAGxpB,MAAQsK,GAGZkf,EAAGE,UAAYpf,CAChB,CCRe,SAASylB,GAAQC,GAC/B,OAAOhwB,GAASA,EAAQgwB,CACzB,CCFe,SAAS/e,GAAStK,GAChC,IAAIyF,EAAQ,EAEZ,KAAQzF,EAAKspB,iBACZtpB,EAAOA,EAAKspB,gBACZ7jB,IAGD,OAAOA,CACR,CCRe,SAAS8jB,GACvBC,EACA/jB,EACAgkB,GAEAD,EAAcniB,aAAcoiB,EAAcD,EAAcriB,WAAY1B,IAAW,KAChF,CCRe,SAASikB,GAAWhkB,GAClC,OAAOA,GAAOA,EAAI2V,WAAasF,KAAKgJ,YACrC,CCGe,SAASC,GAAWhS,GAClC,SAAWA,GAAWA,EAAQmQ,gBAAkBnQ,EAAQmQ,iBAAiB5uB,OAC1E,CC8FO,SAAS0wB,IAAoB,QACnCjS,EAAO,OAAEnT,EAAM,UAAEqlB,EAAS,QAAEC,EAAO,cAAEC,EAAa,qBAAEC,IAI/C,GAAYxlB,KAChBA,EAASA,KAKL,GAAYslB,KAChBA,EAAUA,KAGX,MAAMrD,EAA4B9C,GAAuBhM,GACnDsS,EAiEP,SAAqCD,GACpCA,EAAuBpyB,OAAOsyB,OAAQ,CAAEjH,IAAK,EAAGI,OAAQ,EAAGE,KAAM,EAAGJ,MAAO,GAAK6G,GAEhF,MAAMG,EAAe,IAAI,GAAM,GAAOhmB,QAOtC,OALAgmB,EAAalH,KAAO+G,EAAqB/G,IACzCkH,EAAanG,QAAUgG,EAAqB/G,IAC5CkH,EAAa9G,QAAU2G,EAAqB3G,OAC5C8G,EAAanG,QAAUgG,EAAqB3G,OAErC8G,CACR,CA5EiCC,CAA4BJ,GACtDK,EAAc,IAAI,GAAM1S,GACxB2S,EAAoBC,GAAoC/lB,EAAQylB,GAEtE,IAAIO,EAUJ,IAAMF,IAAsBL,EAAwBlF,gBAAiBuF,GACpE,OAAO,KAKR,MAAMG,EAAyC,CAC9CC,WAAYJ,EACZD,cACA5D,4BACA0D,aAAcF,GAIf,GAAMH,GAAYC,EAEX,CACN,GAAKD,EAAU,CACd,MAAMa,EAAqBJ,GAAoCT,EAASG,GAEnEU,IACJF,EAAgBG,YAAcD,EAGhC,CAIAH,EAwCF,SACCX,EACA1kB,GAEA,MAAM,YAAEklB,GAAgBllB,EAGlB0lB,EAAkBR,EAAYjF,UAE9B0F,EAAoBjB,EACxBjsB,KAAKmtB,GAAuB,IAAIC,GAAgBD,EAAqB5lB,KAErEwB,QAAQ0hB,KAAcA,EAASzlB,OAEjC,IAAIqoB,EAAe,EACfT,EAAe,KAEnB,UAAYnC,KAAYyC,EAAoB,CAC3C,MAAM,wBAAEI,EAAuB,yBAAEC,GAA6B9C,EAI9D,GAAK6C,IAA4BL,EAMhC,OAAOxC,EAKR,MAAM+C,EAAYD,GAA4B,EAAID,GAA2B,EAQxEE,EAAYH,IAChBA,EAAeG,EACfZ,EAAenC,EAEjB,CAMA,OAAOmC,CACR,CA5FiBa,CAAiBxB,EAAWY,EAC5C,MAdCD,EAAe,IAAIQ,GAAgBnB,EAAW,GAAKY,GAgBpD,OAAOD,CACR,CAMA,SAASD,GAAoCzmB,EAAoBqmB,GAChE,MAAMmB,EAAoB,IAAI,GAAMxnB,GAASuhB,aAE7C,OAAMiG,EAICA,EAAkBvG,gBAAiBoF,GAHlC,IAIT,CAkIA,MAAMa,GACEpoB,KACA2oB,OAECC,gCACAzJ,SACA0J,YACAC,oBAcR,WAAA/oB,CACCooB,EACA5lB,GAEA,MAAMwmB,EAA4BZ,EACjC5lB,EAAQulB,WACRvlB,EAAQklB,YACRllB,EAAQglB,aACRhlB,EAAQylB,aAIT,IAAMe,EACL,OAGD,MAAM,KAAEpI,EAAI,IAAEN,EAAG,KAAErgB,EAAI,OAAE2oB,GAAWI,EAEpC/qB,KAAKgC,KAAOA,EACZhC,KAAK2qB,OAASA,EAEd3qB,KAAK4qB,gCAAkC,CAAEjI,OAAMN,OAC/CriB,KAAKmhB,SAAW5c,CACjB,CAMA,QAAWoe,GACV,OAAO3iB,KAAKgrB,cAAcrI,IAC3B,CAMA,OAAWN,GACV,OAAOriB,KAAKgrB,cAAc3I,GAC3B,CAKA,2BAAWiI,GACV,MAAMN,EAAchqB,KAAKmhB,SAAS6I,YAElC,OAAKA,EACGA,EAAYzF,oBAAqBvkB,KAAKirB,OAGvC,CACR,CAKA,4BAAWV,GAGV,OAFqBvqB,KAAKmhB,SAASoI,aAEfhF,oBAAqBvkB,KAAKirB,MAC/C,CAMA,SAAYA,GACX,OAAKjrB,KAAK6qB,cAIV7qB,KAAK6qB,YAAc7qB,KAAKmhB,SAASsI,YAAYzF,QAAQC,OACpDjkB,KAAK4qB,gCAAgCjI,KACrC3iB,KAAK4qB,gCAAgCvI,MAL9BriB,KAAK6qB,WASd,CAKA,iBAAYG,GACX,OAAKhrB,KAAK8qB,sBAIV9qB,KAAK8qB,oBAAsB9qB,KAAKirB,MAAMzF,kBAH9BxlB,KAAK8qB,mBAMd,ECnac,SAAS7kB,GAAQ9G,GAC/B,MAAMP,EAASO,EAAK8H,WAEfrI,GACJA,EAAO2H,YAAapH,EAEtB,CC6MA,SAAS+rB,IACR,OACC3nB,EAAM,KACN8gB,EAAI,WACJ8G,EAAU,YACVC,EAAW,eACXC,IASD,MAAMC,EAAwBjH,EAAKL,QAAQE,OAAQ,EAAGmH,EAAe5I,QAC/D8I,EAAsBlH,EAAKL,QAAQE,OAAQ,GAAImH,EAAehJ,KAC9DkH,EAAe,IAAI,GAAMhmB,GAAS8iB,8BAGlCmF,EAAmBL,GAAcC,EACjCK,EAFQ,CAAEF,EAAqBD,GAED5U,OAAO2N,GAAQkF,EAAajE,SAAUjB,KAE1E,IAAI,QAAEoB,EAAO,QAAEC,GAAYniB,EAC3B,MAAMmoB,EAAiBjG,EACjBkG,EAAiBjG,EAElB8F,EACJ9F,GAAa6D,EAAalH,IAAMgC,EAAKhC,IAAQgJ,EAAehJ,IAChDoJ,IACPG,GAASL,EAAqBhC,GAClC7D,GAAW6D,EAAalH,IAAMgC,EAAKhC,IAAMgJ,EAAehJ,IAC7CwJ,GAASP,EAAuB/B,KAE1C7D,GADIyF,EACO9G,EAAKhC,IAAMkH,EAAalH,IAAMgJ,EAAehJ,IAE7CgC,EAAK5B,OAAS8G,EAAa9G,OAAS4I,EAAe5I,SAK3DgJ,IAGAK,GAAUzH,EAAMkF,GACpB9D,GAAW8D,EAAa5G,KAAO0B,EAAK1B,KAAO0I,EAAe1I,KAC/CoJ,GAAW1H,EAAMkF,KAC5B9D,GAAWpB,EAAK9B,MAAQgH,EAAahH,MAAQ8I,EAAe9I,QAIzDkD,GAAWiG,GAAkBhG,IAAYiG,GAC7CpoB,EAAOyoB,SAAUvG,EAASC,EAE5B,CAmBA,SAASuG,IACR,OACCrtB,EAAM,QACNstB,EAAO,WACPf,EAAU,YACVC,EAAW,eACXe,EAAiB,EAAC,eAClBC,IAUD,MAAMC,EAAeC,GAAW1tB,GAC1B4sB,EAAmBL,GAAcC,EACvC,IAAIjG,EAAkB2E,EAAkByC,EAExC,MAAMrD,EAAUkD,GAAkBC,EAAa7oB,SAASyf,KAExD,KAAQrkB,GAAUsqB,GACjBY,EAAaoC,IACb/G,EAAa,IAAI,GAAMvmB,GAASynB,8BAChCkG,EAAqBpH,EAAWG,SAAUwE,GAErC0B,EACJ5sB,EAAOunB,WAAehB,EAAW9C,IAAMyH,EAAWzH,IAAQ8J,EAC9CI,IACPX,GAAS9B,EAAY3E,GACzBvmB,EAAOunB,WAAahB,EAAW9C,IAAMyH,EAAWzH,IAAM8J,EAC3CN,GAAS/B,EAAY3E,KAE/BvmB,EAAOunB,WADHgF,EACgBrB,EAAWzH,IAAM8C,EAAW9C,IAAM8J,EAElCrC,EAAWrH,OAAS0C,EAAW1C,OAAS0J,IAKzDI,IACAT,GAAUhC,EAAY3E,GAC1BvmB,EAAOsnB,YAAcf,EAAWxC,KAAOmH,EAAWnH,KAAOwJ,EAC9CJ,GAAWjC,EAAY3E,KAClCvmB,EAAOsnB,YAAc4D,EAAWvH,MAAQ4C,EAAW5C,MAAQ4J,IAI7DvtB,EAASA,EAAOqI,UAElB,CAKA,SAAS4kB,GAASW,EAAiBC,GAClC,OAAOD,EAAU/J,OAASgK,EAAWhK,MACtC,CAKA,SAASmJ,GAASY,EAAiBC,GAClC,OAAOD,EAAUnK,IAAMoK,EAAWpK,GACnC,CAKA,SAASyJ,GAAUU,EAAiBC,GACnC,OAAOD,EAAU7J,KAAO8J,EAAW9J,IACpC,CAKA,SAASoJ,GAAWS,EAAiBC,GACpC,OAAOD,EAAUjK,MAAQkK,EAAWlK,KACrC,CAKA,SAAS+J,GAAWI,GACnB,OAAK5J,GAAS4J,GACNA,EAAevF,eAAetH,cAAeF,YAE7C+M,EAAe7M,cAAcF,WAEtC,CAKA,SAASgN,GAAkBD,GAC1B,GAAK5J,GAAS4J,GAAmB,CAChC,IAAI9tB,EAAS8tB,EAAe7H,wBAO5B,OAJKhC,GAAQjkB,KACZA,EAASA,EAAOqI,YAGVrI,CACR,CACC,OAAO8tB,EAAezlB,UAExB,CASA,SAAS2lB,GAAyBhpB,EAA6BipB,GAC9D,MAAMC,EAAeR,GAAW1oB,GAC1BygB,EAAO,IAAI,GAAMzgB,GAEvB,GAAKkpB,IAAiBD,EACrB,OAAOxI,EACD,CACN,IAAI0I,EAAgBD,EAEpB,KAAQC,GAAiBF,GAAiB,CACzC,MAAMG,EAAQD,EAAcE,aACtBC,EAAY,IAAI,GAAMF,GAAQ3G,8BAEpChC,EAAKH,OAAQgJ,EAAUvK,KAAMuK,EAAU7K,KAEvC0K,EAAgBA,EAAcnuB,MAC/B,CACD,CAEA,OAAOylB,CACR,CCraA,MAAM8I,GAAuB,CAC5BC,KAAM,IACNC,IAAK,IACLC,IAAK,IACLC,MAAO,KAGFC,GAA0B,CAC/BJ,KAAM,QACNE,IAAK,OACLC,MAAO,UAGFE,GAA8C,CACnD,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,EAAG,IACH,GAAI,UACJ,GAAI,aAgBQC,GAA2BC,KAElCC,GAAyE52B,OAAO62B,YACrE72B,OAAOoiB,QAASsU,IAAW1wB,KAAK,EAAIgF,EAAM8rB,MACzD,IAAIC,EAQJ,OALCA,EADID,KAAQL,GACIA,GAAkBK,GAElB9rB,EAAKgsB,OAAQ,GAAIrxB,cAAgBqF,EAAKF,MAAO,GAGvD,CAAEgsB,EAAMC,EAAe,KAYzB,SAAS,GAASh3B,GACxB,IAAIk3B,EAEJ,GAAmB,iBAAPl3B,GAGX,GAFAk3B,EAAUP,GAAU32B,EAAI4R,gBAElBslB,EAOL,MAAM,IAAIvgB,EAAe,uBAAwB,KAAM,CAAE3W,aAG1Dk3B,EAAUl3B,EAAIk3B,SACXl3B,EAAIm3B,OAASR,GAASJ,IAAM,IAC5Bv2B,EAAIo3B,QAAUT,GAASN,KAAO,IAC9Br2B,EAAIq3B,SAAWV,GAASH,MAAQ,IAChCx2B,EAAIs3B,QAAUX,GAASL,IAAM,GAGjC,OAAOY,CACR,CAwBO,SAAS,GAAgBK,GAK/B,MAJyB,iBAAbA,IACXA,EAoLF,SAA6BA,GAC5B,OAAOA,EAAUvxB,MAAO,KAAMC,KAAKjG,GAAOA,EAAIw3B,QAC/C,CAtLcC,CAAoBF,IAG1BA,EACLtxB,KAAKjG,GAAuB,iBAAPA,EAuFxB,SAAwBA,GAEvB,GAAKA,EAAI03B,SAAU,KAClB,OAAO,GAAS13B,EAAI+K,MAAO,GAAI,IAGhC,MAAMgsB,EAAO,GAAS/2B,GAEtB,OAAS,SAAa,UAAe+2B,GAAQJ,GAASN,KAAOM,GAASL,IAAMS,CAC7E,CAhG4CY,CAAe33B,GAAQA,IAChE43B,QAAQ,CAAE53B,EAAK63B,IAASA,EAAM73B,GAAK,EACtC,CASO,SAAS83B,GAAqBP,GACpC,IAAIQ,EAAgB,GAAgBR,GAcpC,OAZ0Bt3B,OAAOoiB,QAAW,SAAa,QAAc+T,GAAuBK,IAE1DmB,QAAQ,CAAEI,GAAa/sB,EAAMgtB,MAEzDF,EAAgBpB,GAAU1rB,KAChC8sB,IAAkBpB,GAAU1rB,GAC5B+sB,GAAaC,GAGPD,IACL,KAEkBD,EAAgBlB,GAAckB,GAAkB,GACtE,CA+BO,SAAS,GACfb,EACAgB,GAEA,MAAMC,EAA4C,QAA7BD,EAErB,OAAShB,GACR,KAAKP,GAASyB,UACb,OAAOD,EAAe,OAAS,QAEhC,KAAKxB,GAAS0B,WACb,OAAOF,EAAe,QAAU,OAEjC,KAAKxB,GAAS2B,QACb,MAAO,KAER,KAAK3B,GAAS4B,UACb,MAAO,OAEV,CAyCA,SAAS3B,KACR,MAAMD,EAA0C,CAC/C6B,OAAQ,GACRC,SAAU,GACVL,UAAW,GACXE,QAAS,GACTD,WAAY,GACZE,UAAW,GACXG,UAAW,EACX3d,OAAQ,GACR4d,MAAO,GACPC,MAAO,GACPC,IAAK,GACLC,IAAK,EAILzC,KAAM,QACNG,MAAO,QACPD,IAAK,QACLD,IAAK,SAIN,QAAUS,EAAO,GAAIA,GAAQ,GAAIA,IAAS,CAGzCJ,EAFehS,OAAOoU,aAAchC,GAEnBnlB,eAAkBmlB,CACpC,CAGA,QAAUA,EAAO,GAAIA,GAAQ,GAAIA,IAChCJ,EAAUI,EAAO,IAAOA,EAIzB,QAAUA,EAAO,IAAKA,GAAQ,IAAKA,IAClCJ,EAAU,KAAQI,EAAO,MAAUA,EAkBpC,OAdA92B,OAAOsyB,OAAQoE,EAAU,CACxB,IAAM,IACN,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,KAAM,IACN,IAAK,IACL,IAAK,MAGCA,CACR,CCpRe,SAASqC,GAAYjtB,GACnC,OAAOnC,MAAMC,QAASkC,GAASA,EAAO,CAAEA,EACzC,CCVA,SAPA,SAA0ByS,EAAQxe,EAAKyB,SACtBqP,IAAVrP,IAAwB,GAAG+c,EAAOxe,GAAMyB,SAC9BqP,IAAVrP,KAAyBzB,KAAOwe,KACnC,GAAgBA,EAAQxe,EAAKyB,EAEjC,ECFA,SCRA,SAAuBw3B,GACrB,OAAO,SAASza,EAAQyE,EAAUsC,GAMhC,IALA,IAAI1X,GAAS,EACTwS,EAAWpgB,OAAOue,GAClB2E,EAAQoC,EAAS/G,GACjBjd,EAAS4hB,EAAM5hB,OAEZA,KAAU,CACf,IAAIvB,EAAMmjB,EAAM8V,EAAY13B,IAAWsM,GACvC,IAA+C,IAA3CoV,EAAS5C,EAASrgB,GAAMA,EAAKqgB,GAC/B,KAEJ,CACA,OAAO7B,CACT,CACF,CDTc,GEmBd,SAJA,SAA2B/c,GACzB,OAAO,GAAaA,IAAU,GAAYA,EAC5C,ECVA,SAZA,SAAiB+c,EAAQxe,GACvB,IAAY,gBAARA,GAAgD,mBAAhBwe,EAAOxe,KAIhC,aAAPA,EAIJ,OAAOwe,EAAOxe,EAChB,ECaA,SAJA,SAAuByB,GACrB,OAAO,GAAWA,EAAO,GAAOA,GAClC,ECgEA,SA9DA,SAAuB+c,EAAQrS,EAAQnM,EAAKk5B,EAAUC,EAAW/V,EAAYzL,GAC3E,IAAIuL,EAAW,GAAQ1E,EAAQxe,GAC3Bo5B,EAAW,GAAQjtB,EAAQnM,GAC3B2nB,EAAUhQ,EAAMtG,IAAI+nB,GAExB,GAAIzR,EACF,GAAiBnJ,EAAQxe,EAAK2nB,OADhC,CAIA,IAAI9K,EAAWuG,EACXA,EAAWF,EAAUkW,EAAWp5B,EAAM,GAAKwe,EAAQrS,EAAQwL,QAC3D7G,EAEAuoB,OAAwBvoB,IAAb+L,EAEf,GAAIwc,EAAU,CACZ,IAAI/U,EAAQ,GAAQ8U,GAChB5U,GAAUF,GAAS,GAAS8U,GAC5BE,GAAWhV,IAAUE,GAAU,GAAa4U,GAEhDvc,EAAWuc,EACP9U,GAASE,GAAU8U,EACjB,GAAQpW,GACVrG,EAAWqG,EAEJ,GAAkBA,GACzBrG,EAAW,GAAUqG,GAEdsB,GACP6U,GAAW,EACXxc,EAAW,GAAYuc,GAAU,IAE1BE,GACPD,GAAW,EACXxc,EAAW,GAAgBuc,GAAU,IAGrCvc,EAAW,GAGN,GAAcuc,IAAa,GAAYA,IAC9Cvc,EAAWqG,EACP,GAAYA,GACdrG,EAAW,GAAcqG,GAEjB,EAASA,KAAa,GAAWA,KACzCrG,EAAW,GAAgBuc,KAI7BC,GAAW,CAEf,CACIA,IAEF1hB,EAAMkD,IAAIue,EAAUvc,GACpBsc,EAAUtc,EAAUuc,EAAUF,EAAU9V,EAAYzL,GACpDA,EAAc,OAAEyhB,IAElB,GAAiB5a,EAAQxe,EAAK6c,EAnD9B,CAoDF,EClDA,SAtBA,SAAS0c,EAAU/a,EAAQrS,EAAQ+sB,EAAU9V,EAAYzL,GACnD6G,IAAWrS,GAGf,GAAQA,GAAQ,SAASitB,EAAUp5B,GAEjC,GADA2X,IAAUA,EAAQ,IAAI,IAClB,EAASyhB,GACX,GAAc5a,EAAQrS,EAAQnM,EAAKk5B,EAAUK,EAAWnW,EAAYzL,OAEjE,CACH,IAAIkF,EAAWuG,EACXA,EAAW,GAAQ5E,EAAQxe,GAAMo5B,EAAWp5B,EAAM,GAAKwe,EAAQrS,EAAQwL,QACvE7G,OAEaA,IAAb+L,IACFA,EAAWuc,GAEb,GAAiB5a,EAAQxe,EAAK6c,EAChC,CACF,GAAG,GACL,ECnBA,SAJA,SAAkBpb,GAChB,OAAOA,CACT,ECEA,SAVA,SAAe+f,EAAMgY,EAASr0B,GAC5B,OAAQA,EAAK5D,QACX,KAAK,EAAG,OAAOigB,EAAKlX,KAAKkvB,GACzB,KAAK,EAAG,OAAOhY,EAAKlX,KAAKkvB,EAASr0B,EAAK,IACvC,KAAK,EAAG,OAAOqc,EAAKlX,KAAKkvB,EAASr0B,EAAK,GAAIA,EAAK,IAChD,KAAK,EAAG,OAAOqc,EAAKlX,KAAKkvB,EAASr0B,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAE3D,OAAOqc,EAAKtH,MAAMsf,EAASr0B,EAC7B,ECfA,IAAIs0B,GAAY33B,KAAKC,IAgCrB,SArBA,SAAkByf,EAAMkY,EAAOjY,GAE7B,OADAiY,EAAQD,QAAoB3oB,IAAV4oB,EAAuBlY,EAAKjgB,OAAS,EAAKm4B,EAAO,GAC5D,WAML,IALA,IAAIv0B,EAAOoe,UACP1V,GAAS,EACTtM,EAASk4B,GAAUt0B,EAAK5D,OAASm4B,EAAO,GACxCvX,EAAQvY,MAAMrI,KAETsM,EAAQtM,GACf4gB,EAAMtU,GAAS1I,EAAKu0B,EAAQ7rB,GAE9BA,GAAS,EAET,IADA,IAAI8rB,EAAY/vB,MAAM8vB,EAAQ,KACrB7rB,EAAQ6rB,GACfC,EAAU9rB,GAAS1I,EAAK0I,GAG1B,OADA8rB,EAAUD,GAASjY,EAAUU,GACtB,GAAMX,EAAMvY,KAAM0wB,EAC3B,CACF,ECRA,SANA,SAAkBl4B,GAChB,OAAO,WACL,OAAOA,CACT,CACF,ECFA,SATuB,GAA4B,SAAS+f,EAAM9b,GAChE,OAAO,GAAe8b,EAAM,WAAY,CACtC,cAAgB,EAChB,YAAc,EACd,MAAS,GAAS9b,GAClB,UAAY,GAEhB,EAPwC,GCXxC,IAIIk0B,GAAY1hB,KAAK2hB,IA+BrB,SApBA,SAAkBrY,GAChB,IAAI5T,EAAQ,EACRksB,EAAa,EAEjB,OAAO,WACL,IAAIC,EAAQH,KACRI,EApBO,IAoBiBD,EAAQD,GAGpC,GADAA,EAAaC,EACTC,EAAY,GACd,KAAMpsB,GAzBI,IA0BR,OAAO2V,UAAU,QAGnB3V,EAAQ,EAEV,OAAO4T,EAAKtH,WAAMpJ,EAAWyS,UAC/B,CACF,ECrBA,SAFkB,GAAS,ICK3B,SAJA,SAAkB/B,EAAMkY,GACtB,OAAO,GAAY,GAASlY,EAAMkY,EAAO,IAAWlY,EAAO,GAC7D,ECeA,SAdA,SAAwB/f,EAAOoM,EAAO2Q,GACpC,IAAK,EAASA,GACZ,OAAO,EAET,IAAIpK,SAAcvG,EAClB,SAAY,UAARuG,EACK,GAAYoK,IAAW,GAAQ3Q,EAAO2Q,EAAOjd,QACrC,UAAR6S,GAAoBvG,KAAS2Q,IAE7B,GAAGA,EAAO3Q,GAAQpM,EAG7B,ECSA,SA1BA,SAAwBw4B,GACtB,OAAO,IAAS,SAASzb,EAAQtS,GAC/B,IAAI2B,GAAS,EACTtM,EAAS2K,EAAQ3K,OACjB6hB,EAAa7hB,EAAS,EAAI2K,EAAQ3K,EAAS,QAAKuP,EAChDopB,EAAQ34B,EAAS,EAAI2K,EAAQ,QAAK4E,EAWtC,IATAsS,EAAc6W,EAAS14B,OAAS,GAA0B,mBAAd6hB,GACvC7hB,IAAU6hB,QACXtS,EAEAopB,GAAS,GAAehuB,EAAQ,GAAIA,EAAQ,GAAIguB,KAClD9W,EAAa7hB,EAAS,OAAIuP,EAAYsS,EACtC7hB,EAAS,GAEXid,EAASve,OAAOue,KACP3Q,EAAQtM,GAAQ,CACvB,IAAI4K,EAASD,EAAQ2B,GACjB1B,GACF8tB,EAASzb,EAAQrS,EAAQ0B,EAAOuV,EAEpC,CACA,OAAO5E,CACT,GACF,ECIA,SAJY,IAAe,SAASA,EAAQrS,EAAQ+sB,GAClD,GAAU1a,EAAQrS,EAAQ+sB,EAC5B,ICkIO,SAASiB,GACfC,EACA1iB,EACA2iB,EAAmB,EACnBC,GAEA,GAAyB,iBAAbD,EAQX,MAAM,IAAI1jB,EAAe,4CAA6C,KAAM,CAAE0jB,aAG/E,MAAME,EAAuCD,GAAgB,GAAO9tB,OAAOguB,sBACrEC,EAiEP,SAA+BH,GAC9B,OAAOr6B,OAAOC,KAAMo6B,GAAe/4B,MACpC,CAnE2Bm5B,CAAsBH,GAErB,IAAtBE,IAGJL,EAAWn6B,OAAOC,KAAMq6B,GAA0B,IAGnD,MAAMI,EAAYjjB,EAAQ5O,IAAM4O,EAAQhS,OAExC,GAA2B,IAAtB+0B,IAmDN,SAAyBL,EAAkBO,EAAmBL,GAC7D,QAASA,EAAcF,MAAgBE,EAAcF,GAAWQ,WAAYD,EAC7E,CArDkCE,CAAgBT,EAAUO,EAAWJ,GACrE,OAAkB,IAAbF,EAEG3iB,EAAQojB,OAGTpjB,EAAQhS,OAGhB,MAAMk1B,EAAaL,EAAwBH,GAAWQ,WAChDG,EAAgBR,EAAwBH,GAAWW,eAAiB,CAAEx2B,GAAW,IAANA,EAAU,EAAI,GACzFy2B,EAAcJ,EAAYD,GAEhC,GAA4B,iBAAhBK,EACX,OAAOA,EAMR,OAAOA,EAHiB1K,OAAQyK,EAAeV,IAIhD,CAjMM,GAAO7tB,OAAOguB,wBACnB,GAAOhuB,OAAOguB,sBAAwB,CAAC,GCTxC,MAAMS,GAAqB,CAC1B,KAAM,MACN,KAAM,MACN,KAAM,MAAO,MACb,KAAM,MACN,KAAM,MACN,KAAM,OAQA,SAASC,GAAsBC,GACrC,OAAOF,GAAmBG,SAAUD,GAAiB,MAAQ,KAC9D,CCZe,MAAME,GAOJC,WAKAC,oBAQAC,gBAaAtD,yBA8CAj0B,EAKTq2B,aAcP,WAAAtvB,EACC,WACCswB,EAAa,qBACbE,EAAe,aACflB,GAKG,CAAC,GAELrxB,KAAKqyB,WAAaA,EAClBryB,KAAKuyB,gBAAkBA,GAAmBvyB,KAAKqyB,WAC/CryB,KAAKsyB,oBAAsBL,GAAsBjyB,KAAKqyB,YACtDryB,KAAKivB,yBAA2BgD,GAAsBjyB,KAAKuyB,iBAC3DvyB,KAAKqxB,aFuGA,SACNA,GAEA,OAAO1wB,MAAMC,QAASywB,GACrBA,EAAa1C,QAAQ,CAAE6D,EAAKT,IAAiB,GAAOS,EAAKT,KACzDV,CACF,CE7GsBoB,CAAoBpB,GACxCrxB,KAAKhF,EAAI,CAAEyT,EAASrD,IAAYpL,KAAK0yB,GAAIjkB,EAASrD,EACnD,CAUA,YAAW+lB,GAaV,OALAxiB,QAAQC,KACP,iMAIM5O,KAAKqyB,UACb,CAKQ,EAAAK,CAAIjkB,EAA2BrD,EAA2D,IACjGA,EAAS2kB,GAAS3kB,GAEM,iBAAZqD,IACXA,EAAU,CAAEhS,OAAQgS,IAGrB,MACM2iB,IADkB3iB,EAAQojB,OACCzmB,EAAQ,GAAgB,EAIzD,OAiBF,SAA4B3O,EAAgB2O,GAC3C,OAAO3O,EAAOqa,QAAS,WAAW,CAAEja,EAAO+H,IACjCA,EAAQwG,EAAO9S,OAAW8S,EAAQxG,GAAU/H,GAEvD,CArBS81B,CAFkBzB,GAAYlxB,KAAKqyB,WAAY5jB,EAAS2iB,EAAUpxB,KAAKqxB,cAElCjmB,EAC7C,ECrJc,MAAMwnB,WAAkEpjB,KAIrEqjB,OAKAC,SAKAC,YAMTC,kBASSC,6BASAC,6BAKTC,4BAyDR,WAAApxB,CACCqxB,EAAwE,CAAC,EACzE7uB,EAA4C,CAAC,GAE7CsJ,QAEA,MAAMwlB,EAAkB/b,GAAY8b,GAcpC,GAZMC,IACL9uB,EAAU6uB,GAGXpzB,KAAK6yB,OAAS,GACd7yB,KAAK8yB,SAAW,IAAIphB,IACpB1R,KAAK+yB,YAAcxuB,EAAQ+uB,YAAc,KACzCtzB,KAAKizB,6BAA+B,IAAIM,QACxCvzB,KAAKkzB,6BAA+B,IAAIK,QACxCvzB,KAAKmzB,4BAA8B,GAG9BE,EACJ,UAAYpzB,KAAQmzB,EACnBpzB,KAAK6yB,OAAOjzB,KAAMK,GAClBD,KAAK8yB,SAASlhB,IAAK5R,KAAKwzB,uBAAwBvzB,GAAQA,EAG3D,CAKA,UAAW3H,GACV,OAAO0H,KAAK6yB,OAAOv6B,MACpB,CAKA,SAAWm7B,GACV,OAAOzzB,KAAK6yB,OAAQ,IAAO,IAC5B,CAKA,QAAWa,GACV,OAAO1zB,KAAK6yB,OAAQ7yB,KAAK1H,OAAS,IAAO,IAC1C,CAaO,GAAA4V,CAAKjO,EAAS2E,GACpB,OAAO5E,KAAK2zB,QAAS,CAAE1zB,GAAQ2E,EAChC,CAYO,OAAA+uB,CAASC,EAAoBhvB,GACnC,QAAe,IAAVA,EACJA,EAAQ5E,KAAK6yB,OAAOv6B,YACd,GAAKsM,EAAQ5E,KAAK6yB,OAAOv6B,QAAUsM,EAAQ,EAOjD,MAAM,IAAI8I,EAAe,oCAAqC1N,MAG/D,IAAIqc,EAAS,EAEb,UAAYpc,KAAQ2zB,EAAQ,CAC3B,MAAMC,EAAS7zB,KAAKwzB,uBAAwBvzB,GACtC6zB,EAAmBlvB,EAAQyX,EAEjCrc,KAAK6yB,OAAOrrB,OAAQssB,EAAkB,EAAG7zB,GACzCD,KAAK8yB,SAASlhB,IAAKiiB,EAAQ5zB,GAE3BD,KAAK4Q,KAA6B,MAAO3Q,EAAM6zB,GAE/CzX,GACD,CAQA,OANArc,KAAK4Q,KAAgC,SAAU,CAC9CmjB,MAAOH,EACPI,QAAS,GACTpvB,UAGM5E,IACR,CAQO,GAAAoI,CAAK6rB,GACX,IAAIh0B,EAEJ,GAAyB,iBAAbg0B,EACXh0B,EAAOD,KAAK8yB,SAAS1qB,IAAK6rB,OACpB,IAAyB,iBAAbA,EAQlB,MAAM,IAAIvmB,EAAe,6BAA8B1N,MAPvDC,EAAOD,KAAK6yB,OAAQoB,EAQrB,CAEA,OAAOh0B,GAAQ,IAChB,CAQO,GAAAgO,CAAKimB,GACX,GAAwB,iBAAZA,EACX,OAAOl0B,KAAK8yB,SAAS7kB,IAAKimB,GACpB,CACN,MACMr0B,EAAKq0B,EADQl0B,KAAK+yB,aAGxB,OAAOlzB,GAAMG,KAAK8yB,SAAS7kB,IAAKpO,EACjC,CACD,CASO,QAAAs0B,CAAUD,GAChB,IAAIj0B,EAQJ,OALCA,EADuB,iBAAZi0B,EACJl0B,KAAK8yB,SAAS1qB,IAAK8rB,GAEnBA,EAGDj0B,EAAOD,KAAK6yB,OAAOppB,QAASxJ,IAAU,CAC9C,CAUO,MAAAgG,CAAQmuB,GACd,MAAQn0B,EAAM2E,GAAU5E,KAAKq0B,QAASD,GAQtC,OANAp0B,KAAK4Q,KAAgC,SAAU,CAC9CmjB,MAAO,GACPC,QAAS,CAAE/zB,GACX2E,UAGM3E,CACR,CAUO,GAAAjD,CACN2S,EACA2kB,GAEA,OAAOt0B,KAAK6yB,OAAO71B,IAAK2S,EAAU2kB,EACnC,CAOO,OAAA12B,CACN+R,EACA2kB,GAEAt0B,KAAK6yB,OAAOj1B,QAAS+R,EAAU2kB,EAChC,CASO,IAAAC,CACN5kB,EACA2kB,GAEA,OAAOt0B,KAAK6yB,OAAO0B,KAAM5kB,EAAU2kB,EACpC,CASO,MAAAvuB,CACN4J,EACA2kB,GAEA,OAAOt0B,KAAK6yB,OAAO9sB,OAAQ4J,EAAU2kB,EACtC,CASO,KAAAviB,GACD/R,KAAKgzB,oBACThzB,KAAK+P,cAAe/P,KAAKgzB,mBACzBhzB,KAAKgzB,kBAAoB,MAG1B,MAAMwB,EAAe7zB,MAAMrB,KAAMU,KAAK6yB,QAEtC,KAAQ7yB,KAAK1H,QACZ0H,KAAKq0B,QAAS,GAGfr0B,KAAK4Q,KAAgC,SAAU,CAC9CmjB,MAAO,GACPC,QAASQ,EACT5vB,MAAO,GAET,CAiHO,MAAAyP,CACNogB,GAEA,GAAKz0B,KAAKgzB,kBAMT,MAAM,IAAItlB,EAAe,4BAA6B1N,MAKvD,OAFAA,KAAKgzB,kBAAoByB,EAElB,CACNC,GAAIC,IACH30B,KAAK40B,qBAAwB30B,GAAQ,IAAI00B,EAAO10B,IAAQ,EAGzD40B,MAAOC,IAC4B,mBAAtBA,EACX90B,KAAK40B,oBAAwBE,GAE7B90B,KAAK40B,qBAAwB30B,GAAQA,EAAM60B,IAC5C,EAGH,CAOQ,mBAAAF,CAAwBr+B,GAC/B,MAAMk+B,EAAqBz0B,KAAKgzB,kBAG1B+B,EAAU,CAAEvf,EAAcwf,EAAiBpwB,KAChD,MAAMqwB,EAAwBR,EAAmBzB,mBAAqBhzB,KAChEk1B,EAAoBT,EAAmBvB,6BAA6B9qB,IAAK4sB,GAM/E,GAAKC,GAAyBC,EAC7Bl1B,KAAKizB,6BAA6BrhB,IAAKojB,EAAcE,GACrDl1B,KAAKkzB,6BAA6BthB,IAAKsjB,EAAmBF,OACpD,CACN,MAAM/0B,EAAO1J,EAASy+B,GAGtB,IAAM/0B,EAGL,YAFAD,KAAKmzB,4BAA4BvzB,KAAMgF,GAOxC,IAAIuwB,EAAavwB,EAmBjB,UAAYwwB,KAAWp1B,KAAKmzB,4BACtBvuB,EAAQwwB,GACZD,IAiBF,UAAYC,KAAWX,EAAmBtB,4BACpCgC,GAAcC,GAClBD,IAIFn1B,KAAKizB,6BAA6BrhB,IAAKojB,EAAc/0B,GACrDD,KAAKkzB,6BAA6BthB,IAAK3R,EAAM+0B,GAC7Ch1B,KAAKkO,IAAKjO,EAAMk1B,GAIhB,QAAU36B,EAAI,EAAGA,EAAIi6B,EAAmBtB,4BAA4B76B,OAAQkC,IACtE26B,GAAcV,EAAmBtB,4BAA6B34B,IAClEi6B,EAAmBtB,4BAA6B34B,IAGnD,GAID,UAAYw6B,KAAgBP,EAC3BM,EAAS,EAAMC,EAAcP,EAAmBN,SAAUa,IAI3Dh1B,KAAK4P,SAAiC6kB,EAAoB,MAAOM,GAGjE/0B,KAAK4P,SAAoC6kB,EAAoB,UAAU,CAAEjf,EAAKwf,EAAcpwB,KAC3F,MAAM3E,EAAOD,KAAKizB,6BAA6B7qB,IAAK4sB,GAE/C/0B,GACJD,KAAKiG,OAAQhG,GAKdD,KAAKmzB,4BAA8BnzB,KAAKmzB,4BAA4BxE,QAAQ,CAAExwB,EAAQi3B,KAChFxwB,EAAQwwB,GACZj3B,EAAOyB,KAAMw1B,EAAU,GAGnBxwB,EAAQwwB,GACZj3B,EAAOyB,KAAMw1B,GAGPj3B,IACL,GAAqB,GAE1B,CASQ,sBAAAq1B,CAAwBvzB,GAC/B,MAAMqzB,EAAatzB,KAAK+yB,YACxB,IAAIc,EAEJ,GAAOP,KAAcrzB,EAAS,CAG7B,GAFA4zB,EAAS5zB,EAAMqzB,GAEO,iBAAVO,EAMX,MAAM,IAAInmB,EAAe,4BAA6B1N,MAGvD,GAAKA,KAAKoI,IAAKyrB,GAMd,MAAM,IAAInmB,EAAe,qCAAsC1N,KAEjE,MACCC,EAAMqzB,GAAeO,EAASnnB,IAG/B,OAAOmnB,CACR,CAWQ,OAAAQ,CAASD,GAChB,IAAIxvB,EAAe/E,EAAYI,EAC3Bo1B,GAAmB,EACvB,MAAM/B,EAAatzB,KAAK+yB,YAyBxB,GAvBuB,iBAAXqB,GACXv0B,EAAKu0B,EACLn0B,EAAOD,KAAK8yB,SAAS1qB,IAAKvI,GAC1Bw1B,GAAoBp1B,EAEfA,IACJ2E,EAAQ5E,KAAK6yB,OAAOppB,QAASxJ,KAED,iBAAXm0B,GAClBxvB,EAAQwvB,EACRn0B,EAAOD,KAAK6yB,OAAQjuB,GACpBywB,GAAoBp1B,EAEfA,IACJJ,EAAKI,EAAMqzB,MAGZrzB,EAAOm0B,EACPv0B,EAAKI,EAAMqzB,GACX1uB,EAAQ5E,KAAK6yB,OAAOppB,QAASxJ,GAC7Bo1B,GAA+B,GAAVzwB,IAAgB5E,KAAK8yB,SAAS1qB,IAAKvI,IAGpDw1B,EAMJ,MAAM,IAAI3nB,EAAe,wBAAyB1N,MAGnDA,KAAK6yB,OAAOrrB,OAAQ5C,EAAQ,GAC5B5E,KAAK8yB,SAAShhB,OAAQjS,GAEtB,MAAMm1B,EAAeh1B,KAAKkzB,6BAA6B9qB,IAAKnI,GAM5D,OALAD,KAAKkzB,6BAA6BphB,OAAQ7R,GAC1CD,KAAKizB,6BAA6BnhB,OAAQkjB,GAE1Ch1B,KAAK4Q,KAAgC,SAAU3Q,EAAM2E,GAE9C,CAAE3E,EAAM2E,EAChB,CAKA,CAAS9D,OAAOC,YACf,OAAOf,KAAK6yB,OAAQ/xB,OAAOC,WAC5B,EC7uBc,SAAS,GAAUA,GACjC,MAAMu0B,EAAev0B,EAASO,OAE9B,OAAKg0B,EAAa/zB,KACV,KAGD+zB,EAAa98B,KACrB,CCOe,MAAM+8B,WAAqCtV,GAAiC3M,MA0BnFkiB,UAA0B,IAAIzhB,IAK7B0hB,sBAA8D,KAEtE,WAAA1zB,GACC8L,QAEA7N,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,iBAAkB,KAC7B,CAKO,GAAA1D,CAAK6I,GACX,GAAK/W,KAAKw1B,UAAUvnB,IAAK8I,GAMxB,MAAM,IAAIrJ,EAAe,yCAA0C1N,MAGpEA,KAAK4P,SAAUmH,EAAS,SAAS,IAAM/W,KAAK01B,OAAQ3e,IAAW,CAAEqJ,YAAY,IAC7EpgB,KAAK4P,SAAUmH,EAAS,QAAQ,IAAM/W,KAAK21B,SAAS,CAAEvV,YAAY,IAClEpgB,KAAKw1B,UAAUtnB,IAAK6I,EACrB,CAKO,MAAA9Q,CAAQ8Q,GACTA,IAAY/W,KAAK41B,gBACrB51B,KAAK21B,QAGD31B,KAAKw1B,UAAUvnB,IAAK8I,KACxB/W,KAAK+P,cAAegH,GACpB/W,KAAKw1B,UAAU1jB,OAAQiF,GAEzB,CAOO,OAAAkR,GACNjoB,KAAK+P,eACN,CAKQ,MAAA2lB,CAAQ3e,GACf8e,aAAc71B,KAAKy1B,uBAEnBz1B,KAAK41B,eAAiB7e,EACtB/W,KAAK81B,WAAY,CAClB,CAMQ,KAAAH,GACPE,aAAc71B,KAAKy1B,uBAEnBz1B,KAAKy1B,sBAAwBM,YAAY,KACxC/1B,KAAK41B,eAAiB,KACtB51B,KAAK81B,WAAY,CAAK,GACpB,EACJ,EChFc,MAAME,GAIHC,UAKjB,WAAAl0B,GACC/B,KAAKi2B,UAAY,IAAMhW,KACxB,CAKO,QAAArQ,CAAUI,GAUhBhQ,KAAKi2B,UAAUrmB,SAAUI,EAAiC,WAAW,CAAEwF,EAAK0gB,KAC3El2B,KAAKi2B,UAAUrlB,KAAM,YAAc,GAASslB,GAAcA,EAAY,GAExE,CAeO,GAAAtkB,CACN0c,EACA3e,EACApL,EAAkD,CAAC,GAEnD,MAAM0pB,EAAU,GAAgBK,GAC1BthB,EAAWzI,EAAQyI,SAIzBhN,KAAKi2B,UAAUrmB,SAAU5P,KAAKi2B,UAAW,YAAchI,GAAS,CAAEzY,EAAK0gB,KACtEvmB,EAAUumB,GAAY,KAGrBA,EAAWC,iBACXD,EAAWE,kBAIX5gB,EAAInJ,MAAM,IAIXmJ,EAAIjJ,QAAS,CAAI,GACf,CAAES,YACN,CAQO,KAAAqpB,CAAOH,GACb,QAASl2B,KAAKi2B,UAAUrlB,KAAM,YAAc,GAASslB,GAAcA,EACpE,CAKO,aAAAnmB,CAAeC,GACrBhQ,KAAKi2B,UAAUlmB,cAAeC,EAC/B,CAKO,OAAAiY,GACNjoB,KAAK+P,eACN,ECtHc,SAASumB,GAAUxzB,GAGjC,OAAKwU,GAAYxU,GACT,IAAI4O,IAAK5O,GCNH,SAAyB+B,GACvC,MAAM7H,EAAM,IAAI0U,IAEhB,UAAY3a,KAAO8N,EAClB7H,EAAI4U,IAAK7a,EAAK8N,EAAK9N,IAGpB,OAAOiG,CACR,CDASu5B,CAAazzB,EAEtB,CEde,SAAS0zB,GAAiDje,EAASke,GACjF,IAAIC,EAEJ,SAASC,KAAYz6B,GACpBy6B,EAAQC,SACRF,EAAQX,YAAY,IAAMxd,KAASrc,IAAQu6B,EAC5C,CAMA,OAJAE,EAAQC,OAAS,KAChBf,aAAca,EAAO,EAGfC,CACR,CCoBO,SAASE,GAAuBp6B,EAAgB4f,GACtD,SAvBoCya,EAuBRr6B,EAAOuxB,OAAQ3R,EAAS,KAtBV,GAApBya,EAAUx+B,QAAe,kBAAkB2J,KAAM60B,IAWjE,SAA6BA,GACnC,QAASA,GAAiC,GAApBA,EAAUx+B,QAAe,kBAAkB2J,KAAM60B,EACxE,CAS8DC,CAAoBt6B,EAAOuxB,OAAQ3R,IAvB1F,IAA8Bya,CAwBrC,CAQO,SAASE,GAAwBv6B,EAAgB4f,GACvD,SA9CgCya,EA8CRr6B,EAAOuxB,OAAQ3R,KA5CG,GAApBya,EAAUx+B,QAAe,sEAAsE2J,KAAM60B,GAFrH,IAA0BA,CA+CjC,CAEA,MAAMG,GAAgCC,KAQ/B,SAASC,GAAuB16B,EAAgB4f,GACtD,MAAM/S,EAAUoS,OAAQjf,GAAS26B,SAAUH,IAE3C,OAAOt2B,MAAMrB,KAAMgK,GAAU+tB,MAAMx6B,GAASA,EAAM+H,MAASyX,GAAUA,EAASxf,EAAM+H,MAAS/H,EAAO,GAAIvE,QACzG,CAEA,SAAS4+B,KACR,MAcMI,EAAe,6BAA6Bp0B,OAC5Cq0B,EAAQ,MAfA,CAEb,4CAGA,8BAGA,qBAGA,sEAI2Bv6B,KAAKuiB,GAAQA,EAAKrc,SAAShG,KAAM,KAAQ,IAGrE,OAAO,IAAI2M,OAFM,GAAIytB,KAAkBC,QAAqBA,MAE/B,KAC9B,CCxCe,MAAMC,WAAkD5E,GAM9D6E,eAOR,WAAA11B,CAAa21B,EAAgC,IAC5C7pB,MAAO6pB,EAAc,CAGpBpE,WAAY,YAIbtzB,KAAKyP,GAA+B,OAAO,CAAE+F,EAAKmiB,EAAM/yB,KACvD5E,KAAK43B,gCAAiCD,EAAM/yB,EAAO,IAIpD5E,KAAKyP,GAAkC,UAAU,CAAE+F,EAAKmiB,KAClDA,EAAK5gB,SAAW/W,KAAKy3B,gBACzBE,EAAK5gB,QAAQ9Q,QACd,IAGDjG,KAAKy3B,eAAiB,IACvB,CAMO,OAAAxP,GACNjoB,KAAKhD,KAAK26B,GAAQA,EAAK1P,WACxB,CASO,SAAA4P,CAAWC,GACjB93B,KAAKy3B,eAAiBK,EAGtB,UAAYH,KAAQ33B,KACnBA,KAAK43B,gCAAiCD,EAExC,CAwCgB,QAAApmB,IAAaC,GAC5B,IAAMA,EAAOlZ,SAA0BkZ,EAkF7BkF,OAAO/a,GAAiB,iBAALA,IA5E5B,MAAM,IAAI+R,EACT,0CACA1N,MAIF,MAAO,CACNT,GAAIw4B,IAEH,UAAYJ,KAAQ33B,KACnB,UAAYg4B,KAAWxmB,EACtBmmB,EAAKpmB,SAAUymB,GAAUz4B,GAAIw4B,GAK/B/3B,KAAKyP,GAA8B,OAAO,CAAE+F,EAAKmiB,KAChD,UAAYK,KAAWxmB,EACtBmmB,EAAKpmB,SAAUymB,GAAUz4B,GAAIw4B,EAC9B,IAID/3B,KAAKyP,GAAiC,UAAU,CAAE+F,EAAKmiB,KACtD,UAAYK,KAAWxmB,EACtBmmB,EAAK9lB,eAAgBmmB,EAASD,EAC/B,GACE,EAGN,CAeQ,+BAAAH,CAAiCD,EAAY/yB,GAC9C+yB,EAAKM,YACVN,EAAKO,SAGDP,EAAK5gB,SAAW/W,KAAKy3B,gBACzBz3B,KAAKy3B,eAAejxB,aAAcmxB,EAAK5gB,QAAS/W,KAAKy3B,eAAevf,SAAUtT,GAEhF,CAYgB,MAAAqB,CAAQmuB,GACvB,OAAOvmB,MAAM5H,OAAQmuB,EACtB,ECnKc,MAAM+D,WAAiC3oB,KAC9C4oB,GAMArgB,IAKAsgB,KAQA9yB,WASA2S,SAKAogB,eAMCC,YAOAC,YAOR,WAAAz2B,CAAa02B,GACZ5qB,QAEA7W,OAAOsyB,OAAQtpB,KAAM04B,GAAW1U,GAAOyU,KAEvCz4B,KAAKu4B,aAAc,EACnBv4B,KAAKw4B,YAAc,IACpB,CAWO,MAAAN,GACN,MAAM/4B,EAAOa,KAAK24B,YAAa,CAC9BC,cAAc,IAKf,OAFA54B,KAAKu4B,aAAc,EAEZp5B,CACR,CA2CO,KAAA8R,CAAO9R,GAUb,OATAa,KAAKw4B,YAm0CC,CACNtgB,SAAU,GACV/D,SAAU,GACV5O,WAAY,CAAC,GAp0CbvF,KAAK24B,YAAa,CACjBx5B,OACAy5B,cAAc,EACdC,YAAY,EACZC,WAAY94B,KAAKw4B,cAGXr5B,CACR,CAQO,MAAA45B,CAAQ55B,GACd,IAAMa,KAAKw4B,YAMV,MAAM,IAAI9qB,EACT,iCACA,CAAE1N,KAAMb,IAIVa,KAAKg5B,wBAAyB75B,EAAMa,KAAKw4B,YAC1C,CA8BA,SAAQS,SACP,SAAUrvB,EAAQ6uB,GACjB,GAAKA,EAAIvgB,SACR,UAAYI,KAASmgB,EAAIvgB,SACnBghB,GAAQ5gB,SACNA,EACK6gB,GAAY7gB,WAChB1O,EAAQ0O,GAInB,CAEO1O,CAAQ5J,KAChB,CA0CA,WAAuBgH,CACtByO,EACAzF,GAEA,MAAO,CACNzQ,GAAE,CAAE65B,EAAqCzpB,IACjC,IAAI0pB,GAAmB,CAC7BC,oBAAqBF,EACrB7iB,UAAW6iB,EACX3jB,aAAYzF,UAASL,aAIvB4pB,GAAE,CAAEhjB,EAAmBijB,EAAsB7pB,IACrC,IAAI8pB,GAAmB,CAC7BhkB,aAAYzF,UAASuG,YAAWijB,cAAa7pB,aAIjD,CA8DA,aAAc+pB,CAAQC,EAAoBlB,GACzC,GAAKkB,EAASpB,YAQb,MAAM,IAAI7qB,EACT,yBACA,CAAE1N,KAAM25B,IAIVC,GAAgBD,EAAUjB,GAAW1U,GAAOyU,IAC7C,CAOQ,WAAAE,CAAa71B,GACpB,IAAI+2B,EAUJ,GANCA,EAFI/2B,EAAK3D,KAEGa,KAAK+X,KAAO/X,KAAKq4B,KAGjBr4B,KAAK+X,IAAM/X,KAAKq4B,MAAQr4B,KAAKq4B,KAGrCwB,EAOJ,MAAM,IAAInsB,EACT,2BACA1N,MAIF,OAAKA,KAAKq4B,KACFr4B,KAAK85B,YAAah3B,GAElB9C,KAAK+5B,eAAgBj3B,EAE9B,CAOQ,cAAAi3B,CAAgBj3B,GACvB,IAAI3D,EAAO2D,EAAK3D,KAUhB,OARMA,IACLA,EAAO2D,EAAK3D,KAAOqE,SAAS6U,gBAAiBrY,KAAKo4B,IA1arC,+BA0aoDp4B,KAAK+X,MAGvE/X,KAAKg6B,kBAAmBl3B,GACxB9C,KAAKi6B,uBAAwBn3B,GAC7B9C,KAAKk6B,gBAAiBp3B,GAEf3D,CACR,CAOQ,WAAA26B,CAAah3B,GACpB,IAAI3D,EAAO2D,EAAK3D,KAoChB,OAjCKA,EACJ2D,EAAKg2B,WAAYT,KAAOl5B,EAAKg7B,YAE7Bh7B,EAAO2D,EAAK3D,KAAOqE,SAAS6C,eAAgB,IAaxC+zB,GAAoBp6B,KAAKq4B,MAC7Br4B,KAAKq6B,kBAAmB,CACvBC,OAAQt6B,KAAKq4B,KACbnzB,QAASq1B,GAAgBp7B,GACzB2D,SAUD3D,EAAKg7B,YAAcn6B,KAAKq4B,KAAMn7B,KAAM,IAG9BiC,CACR,CAOQ,iBAAA66B,CAAmBl3B,GAC1B,IAAM9C,KAAKuF,WACV,OAGD,MAAMpG,EAAO2D,EAAK3D,KACZ25B,EAAah2B,EAAKg2B,WAExB,UAAY0B,KAAYx6B,KAAKuF,WAAa,CAEzC,MAAMk1B,EAAet7B,EAAKu7B,aAAcF,GAGlCG,EAAY36B,KAAKuF,WAAYi1B,GAG9B1B,IACJA,EAAWvzB,WAAYi1B,GAAaC,GAUrC,MAAMG,EAASC,GAAcF,GAAcA,EAAW,GAAIvC,GAAK,KAmB/D,GAAKgC,GAAoBO,GAAc,CAQtC,MAAMG,EAAcD,GAAcF,GAAcA,EAAW,GAAIniC,MAAQmiC,EAIlE7B,GAAciC,GAAcP,IAChCM,EAAY17B,QAASq7B,GAGtBz6B,KAAKq6B,kBAAmB,CACvBC,OAAQQ,EACR51B,QAAS81B,GAAqB77B,EAAMq7B,EAAUI,GAC9C93B,QAEF,SASsB,SAAZ03B,GAAiD,iBAAnBG,EAAW,GAClD36B,KAAKi7B,sBAAuBN,EAAW,GAAY73B,OAgB/C,CAGCg2B,GAAc2B,GAAgBM,GAAcP,IAChDG,EAAUv7B,QAASq7B,GAGpB,MAAMjiC,EAAamiC,EAUjB39B,KAAO1C,GAAcA,GAAQA,EAAI9B,OAAiB8B,IAElDq0B,QAAQ,CAAEuM,EAAM55B,IAAU45B,EAAK/6B,OAAQmB,IAAQ,IAE/CqtB,OAAQwM,GAAmB,IAEvBC,GAAS5iC,IACd2G,EAAKk8B,eAAgBT,EAAQJ,EAAUhiC,EAEzC,CACD,CACD,CAgCQ,qBAAAyiC,CAAuBK,EAA+Dx4B,GAC7F,MAAM3D,EAAO2D,EAAK3D,KAElB,UAAYo8B,KAAaD,EAAS,CACjC,MAAME,EAAaF,EAAQC,GAQtBnB,GAAoBoB,GACxBx7B,KAAKq6B,kBAAmB,CACvBC,OAAQ,CAAEkB,GACVt2B,QAASu2B,GAAiBt8B,EAAMo8B,GAChCz4B,SAWC3D,EAAckG,MAAOk2B,GAAcC,CAEvC,CACD,CAOQ,sBAAAvB,CAAwBn3B,GAC/B,MAAM3D,EAAO2D,EAAK3D,KACZu8B,EAAY54B,EAAK81B,aAAep1B,SAASm4B,yBAA2Bx8B,EACpE05B,EAAa/1B,EAAK+1B,WACxB,IAAI+C,EAAa,EAEjB,UAAYtjB,KAAStY,KAAKkY,SACzB,GAAK2jB,GAAkBvjB,IACtB,IAAMugB,EAAa,CAClBvgB,EAAMuf,UAAW14B,GAGjB,UAAYw4B,KAAQrf,EACnBojB,EAAU/1B,YAAagyB,EAAK5gB,QAE9B,OACM,GAAKmiB,GAAQ5gB,GACbugB,IACCvgB,EAAM2f,YACX3f,EAAM4f,SAGPwD,EAAU/1B,YAAa2S,EAAMvB,eAExB,GAAK2I,GAAQpH,GACnBojB,EAAU/1B,YAAa2S,QAEvB,GAAKugB,EAAa,CACjB,MACMiD,EAsyBH,CACN5jB,SAAU,GACV/D,SAAU,GACV5O,WAAY,CAAC,GA1yBSzC,EAAKg2B,WAGb5gB,SAAStY,KAAMk8B,GAE1BxjB,EAAMqgB,YAAa,CAClBC,cAAc,EACdz5B,KAAMu8B,EAAUp1B,WAAYs1B,KAC5B/C,YAAY,EACZC,WAAYgD,GAEd,MACCJ,EAAU/1B,YAAa2S,EAAM4f,UAK3Bp1B,EAAK81B,cACTz5B,EAAKwG,YAAa+1B,EAEpB,CAQQ,eAAAxB,CAAiBp3B,GACxB,GAAM9C,KAAKs4B,eAIX,UAAYvhC,KAAOiJ,KAAKs4B,eAAiB,CACxC,MAAMyD,EAAiB/7B,KAAKs4B,eAAgBvhC,GAAMiG,KAAKg/B,IACtD,MAAQC,EAAYC,GAAgBnlC,EAAIgG,MAAO,KAE/C,OAAOi/B,EAAWG,yBAA0BF,EAAYC,EAAap5B,EAAM,IAGvEA,EAAKg2B,YACTh2B,EAAKg2B,WAAW3kB,SAASvU,KAAMm8B,EAEjC,CACD,CAaQ,iBAAA1B,EAAmB,OAAEC,EAAM,QAAEp1B,EAAO,KAAEpC,IAK7C,MAAMg2B,EAAah2B,EAAKg2B,WAGxBsD,GAAsB9B,EAAQp1B,EAASpC,GAEvC,MAAMi5B,EAAiBzB,EAErBv0B,QAAQ9F,IAASm7B,GAASn7B,KAE1B8F,QAAU9F,GAAwCA,EAAKwV,aAIvDzY,KAAKq/B,GAAmBA,EAAgBC,0BAA2BhC,EAAQp1B,EAASpC,KAEjFg2B,GACJA,EAAW3kB,SAASvU,KAAMm8B,EAE5B,CAUQ,uBAAA/C,CAAyB75B,EAA0B25B,GAC1D,UAAY1kB,KAAW0kB,EAAW3kB,SAWjC,UAAYooB,KAAiBnoB,EAC5BmoB,IAIF,GAAKzD,EAAWT,KAGf,YAFAl5B,EAAKg7B,YAAcrB,EAAWT,MAK/B,MAAMthB,EAAU5X,EAEhB,UAAYq7B,KAAY1B,EAAWvzB,WAAa,CAC/C,MAAMo1B,EAAY7B,EAAWvzB,WAAYi1B,GAGtB,OAAdG,EACJ5jB,EAAQrQ,gBAAiB8zB,GAEzBzjB,EAAQtR,aAAc+0B,EAAUG,EAElC,CAEA,QAAUngC,EAAI,EAAGA,EAAIs+B,EAAW5gB,SAAS5f,SAAUkC,EAClDwF,KAAKg5B,wBAAyBjiB,EAAQzQ,WAAY9L,GAAYs+B,EAAW5gB,SAAU1d,GAErF,EAWM,MAAegiC,GAILjmB,UAQAd,WAQAzF,QAKAL,SAOhB,WAAA5N,CAAa02B,GAMZz4B,KAAKuW,UAAYkiB,EAAIliB,UACrBvW,KAAKyV,WAAagjB,EAAIhjB,WACtBzV,KAAKgQ,QAAUyoB,EAAIzoB,QACnBhQ,KAAK2P,SAAW8oB,EAAI9oB,QACrB,CAWO,QAAA8sB,CAAUt9B,GAChB,MAAM3G,EAAUwH,KAAKyV,WAAqBzV,KAAKuW,WAE/C,OAAOvW,KAAK2P,SAAW3P,KAAK2P,SAAUnX,EAAO2G,GAAS3G,CACvD,CAYO,yBAAA8jC,CACNhC,EACAp1B,EACApC,GAEA,MAAM6M,EAAW,IAAMysB,GAAsB9B,EAAQp1B,EAASpC,GAK9D,OAHA9C,KAAKgQ,QAAQJ,SAAiC5P,KAAKyV,WAAY,UAAWzV,KAAKuW,YAAc5G,GAGtF,KACN3P,KAAKgQ,QAAQD,cAAe/P,KAAKyV,WAAY,UAAWzV,KAAKuW,YAAc5G,EAAU,CAEvF,EAaM,MAAM0pB,WAA0BmD,GACtBlD,oBAEhB,WAAAv3B,CAAa02B,GAGZ5qB,MAAO4qB,GAEPz4B,KAAKs5B,oBAAsBb,EAAIa,mBAChC,CAWO,wBAAA6C,CACNF,EACAC,EACAp5B,GAEA,MAAM6M,EAAW,CAAE6F,EAAckM,KAC1Bwa,IAAiBxa,EAAO9d,OAAoB0F,QAAS4yB,KAClB,mBAA5Bl8B,KAAKs5B,oBAChBt5B,KAAKs5B,oBAAqB5X,GAE1B1hB,KAAKyV,WAAW7E,KAAM5Q,KAAKs5B,oBAAqB5X,GAElD,EAMD,OAHA1hB,KAAKgQ,QAAQJ,SAAU9M,EAAK3D,KAAM88B,EAAYtsB,GAGvC,KACN3P,KAAKgQ,QAAQD,cAAejN,EAAK3D,KAAM88B,EAAYtsB,EAAU,CAE/D,EASM,MAAM8pB,WAA0B+C,GAKtBhD,YAEhB,WAAAz3B,CAAa02B,GAGZ5qB,MAAO4qB,GAEPz4B,KAAKw5B,YAAcf,EAAIe,WACxB,CAKgB,QAAAiD,CAAUt9B,GAGzB,OAAOi8B,GAFOvtB,MAAM4uB,SAAUt9B,MAEMa,KAAKw5B,cAAe,EACzD,EAOD,SAASY,GAAoBE,GAC5B,QAAMA,IAWDA,EAAO9hC,QACX8hC,EAASA,EAAO9hC,OAGZmI,MAAMC,QAAS05B,GACZA,EAAOjD,KAAM+C,IACTE,aAAkBkC,GAK/B,CA4BA,SAASJ,GACR9B,EACAp1B,GACA,KAAE/F,IAEF,MAAMiM,EAxBP,SAA8BkvB,EAAsDn7B,GACnF,OAAOm7B,EAAOt9B,KAAKg/B,GAEbA,aAAsBQ,GACnBR,EAAWS,SAAUt9B,GAItB68B,GAET,CAcgBU,CAAqBpC,EAAQn7B,GAC5C,IAAI3G,EAOHA,EADqB,GAAjB8hC,EAAOhiC,QAAegiC,EAAQ,aAAeb,GACzCruB,EAAQ,GAERA,EAAOujB,OAAQwM,GAAmB,IAGtCC,GAAS5iC,GACb0M,EAAQe,SAERf,EAAQ0M,IAAKpZ,EAEf,CAcA,SAAS+hC,GAAgBp7B,GACxB,MAAO,CACN,GAAAyS,CAAKpZ,GACJ2G,EAAKg7B,YAAc3hC,CACpB,EAEA,MAAAyN,GACC9G,EAAKg7B,YAAc,EACpB,EAEF,CAWA,SAASa,GAAqBhZ,EAAawY,EAAkBpC,GAC5D,MAAO,CACN,GAAAxmB,CAAKpZ,GACJwpB,EAAGqZ,eAAgBjD,EAAIoC,EAAUhiC,EAClC,EAEA,MAAAyN,GACC+b,EAAG2a,kBAAmBvE,EAAIoC,EAC3B,EAEF,CAUA,SAASiB,GAAiBzZ,EAASuZ,GAClC,MAAO,CACN,GAAA3pB,CAAKpZ,GACJwpB,EAAG3c,MAAOk2B,GAAc/iC,CACzB,EAEA,MAAAyN,GACC+b,EAAG3c,MAAOk2B,GAAc,IACzB,EAEF,CAKA,SAASvX,GAAOyU,GAkBf,OAjBc,GAAeA,GAAKjgC,IAYjC,GAAKA,IAAWA,aAAiBgkC,IAAmBrD,GAAY3gC,IAAW0gC,GAAQ1gC,IAAWqjC,GAAkBrjC,IAC/G,OAAOA,CACR,GAIF,CAcA,SAASkgC,GAAWD,GAcnB,GAbmB,iBAAPA,EACXA,EAwHF,SAAuCA,GACtC,MAAO,CACNJ,KAAM,CAAEI,GAEV,CA5HQmE,CAA8BnE,GACzBA,EAAIJ,MAgJjB,SAAkCI,GACjCA,EAAIJ,KAAOtI,GAAS0I,EAAIJ,KACzB,CAjJEwE,CAAyBpE,GAGrBA,EAAIhpB,KACRgpB,EAAIH,eA2FN,SAA6BwE,GAC5B,UAAY5jC,KAAK4jC,EAChBC,GAAUD,EAAW5jC,GAGtB,OAAO4jC,CACR,CAjGuBE,CAAoBvE,EAAIhpB,WAGtCgpB,EAAIhpB,KAGNgpB,EAAIJ,KAAO,CACXI,EAAIlzB,YAmDX,SAA8BA,GAC7B,UAAY5J,KAAK4J,EACXA,EAAY5J,GAAInD,QACpB+M,EAAY5J,GAAInD,MAAQu3B,GAASxqB,EAAY5J,GAAInD,QAGlDukC,GAAUx3B,EAAY5J,EAExB,CA1DGshC,CAAqBxE,EAAIlzB,YAG1B,MAAM2S,EAAW,GAEjB,GAAKugB,EAAIvgB,SACR,GAAK2jB,GAAkBpD,EAAIvgB,UAC1BA,EAAStY,KAAM64B,EAAIvgB,eAEnB,UAAYI,KAASmgB,EAAIvgB,SACnBihB,GAAY7gB,IAAW4gB,GAAQ5gB,IAAWoH,GAAQpH,GACtDJ,EAAStY,KAAM0Y,GAEfJ,EAAStY,KAAM,IAAIu4B,GAAU7f,IAMjCmgB,EAAIvgB,SAAWA,CAChB,CAEA,OAAOugB,CACR,CAmIA,SAASsE,GAAUl4B,EAAU9N,GAC5B8N,EAAK9N,GAAQg5B,GAASlrB,EAAK9N,GAC5B,CAMA,SAASokC,GAAmBD,EAA2Bx7B,GACtD,OAAK07B,GAAS17B,GACNw7B,EACIE,GAASF,GACbx7B,EAEA,GAAIw7B,KAAUx7B,GAEvB,CAmBA,SAASw9B,GAAwBr4B,EAAUs4B,GAC1C,UAAYxhC,KAAKwhC,EACXt4B,EAAKlJ,GACTkJ,EAAKlJ,GAAIiE,QAASu9B,EAAKxhC,IAEvBkJ,EAAKlJ,GAAMwhC,EAAKxhC,EAGnB,CAUA,SAASi+B,GAAgBD,EAAoBlB,GAqB5C,GApBKA,EAAIlzB,aACFo0B,EAASp0B,aACdo0B,EAASp0B,WAAa,CAAC,GAGxB23B,GAAwBvD,EAASp0B,WAAYkzB,EAAIlzB,aAG7CkzB,EAAIH,iBACFqB,EAASrB,iBACdqB,EAASrB,eAAiB,CAAC,GAG5B4E,GAAwBvD,EAASrB,eAAgBG,EAAIH,iBAGjDG,EAAIJ,MACRsB,EAAStB,KAAMz4B,QAAS64B,EAAIJ,MAGxBI,EAAIvgB,UAAYugB,EAAIvgB,SAAS5f,OAAS,CAC1C,GAAKqhC,EAASzhB,SAAU5f,QAAUmgC,EAAIvgB,SAAS5f,OAM9C,MAAM,IAAIoV,EACT,uCACAisB,GAIF,IAAIiC,EAAa,EAEjB,UAAYwB,KAAY3E,EAAIvgB,SAC3B0hB,GAAgBD,EAASzhB,SAAW0jB,KAAuBwB,EAE7D,CACD,CAQA,SAAShC,GAAS5iC,GACjB,OAAQA,GAAmB,IAAVA,CAClB,CAOA,SAAS0gC,GAAQj5B,GAChB,OAAOA,aAAgBo9B,EACxB,CAOA,SAASlE,GAAYl5B,GACpB,OAAOA,aAAgBk4B,EACxB,CAOA,SAAS0D,GAAkB57B,GAC1B,OAAOA,aAAgBu3B,EACxB,CAKA,SAASqD,GACRF,GAEA,OAAO,EAAUA,EAAW,KAAWA,EAAW,GAAavC,EAChE,CAoBA,SAAS2C,GAAcP,GACtB,MAAmB,SAAZA,GAAmC,SAAZA,CAC/B,C,qCC9gDIj2B,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzEA,OAAiB,OACjBA,WAAoB,GAEP,KAAI,KAASA,IAIX,KAAQ+4B,OCiFR,MAAMD,WACIpd,GAAiC3M,MAmClDyD,QAOAkhB,WASAsF,OAUAviC,EAMA2+B,SAOG6D,iBAMAC,iBAMFC,cASR,WAAA37B,CAAaw7B,GACZ1vB,QAEA7N,KAAK+W,QAAU,KACf/W,KAAKi4B,YAAa,EAElBj4B,KAAKu9B,OAASA,EACdv9B,KAAKhF,EAAIuiC,GAAUA,EAAOviC,EAE1BgF,KAAKw9B,iBAAmB,IAAI5K,GAC5B5yB,KAAKy9B,iBAAmBz9B,KAAK29B,mBAG7B39B,KAAKw9B,iBAAiB/tB,GAA8B,OAAO,CAAE+F,EAAKooB,KACjEA,EAAWL,OAASA,EACpBK,EAAW5iC,EAAIuiC,GAAUA,EAAOviC,CAAC,IAGlCgF,KAAKoV,SAAU,SAChB,CA6CA,gBAAWyoB,GACV,OAAK79B,KAAK09B,cACF19B,KAAK09B,cAGJ19B,KAAK09B,cAAgBvF,GAASnxB,KAAMhH,KAAMA,KACpD,CAiCO,gBAAA29B,CAAyCG,GAC/C,MAAMF,EAAa,IAAIpG,GAAmBsG,GAI1C,OAFA99B,KAAKw9B,iBAAiBtvB,IAAK0vB,GAEpBA,CACR,CAiEO,aAAAG,CAAe7lB,GACfZ,GAAYY,KACjBA,EAAW,CAAEA,IAGd,UAAYI,KAASJ,EACpBlY,KAAKy9B,iBAAiBvvB,IAAKoK,EAE7B,CAUO,eAAA0lB,CAAiB9lB,GACjBZ,GAAYY,KACjBA,EAAW,CAAEA,IAGd,UAAYI,KAASJ,EACpBlY,KAAKy9B,iBAAiBx3B,OAAQqS,EAEhC,CAaO,WAAA2lB,CAAa/1B,GACnBlI,KAAK25B,SAAW,IAAIxB,GAAUjwB,EAC/B,CAgBO,cAAA0xB,CAAgB1xB,GACtBiwB,GAASuB,OAAQ15B,KAAK25B,SAAWzxB,EAClC,CA6DO,MAAAgwB,GACN,GAAKl4B,KAAKi4B,WAMT,MAAM,IAAIvqB,EAAe,kCAAmC1N,MAIxDA,KAAK25B,WACT35B,KAAK+W,QAAU/W,KAAK25B,SAASzB,SAG7Bl4B,KAAK+9B,cAAe/9B,KAAK25B,SAASV,aAGnCj5B,KAAKi4B,YAAa,CACnB,CAUO,OAAAhQ,GACNjoB,KAAK+P,gBAEL/P,KAAKw9B,iBAAiBxgC,KAAKvD,GAAKA,EAAEwuB,YAG7BjoB,KAAK25B,UAAc35B,KAAK25B,SAAkBnB,aAC9Cx4B,KAAK25B,SAASZ,OAAQ/4B,KAAK+W,QAE7B,EC9ec,SAASmnB,IACvB,QAAEluB,EAAO,UAAEmuB,EAAS,SAAExuB,EAAQ,gBAAEyuB,IAOhCpuB,EAAQJ,SAAUpM,SAAU,aAAa,CAAEgS,EAAKkM,KAC/C,IAAMyc,IACL,OAKD,MAAM1+B,EAAqC,mBAAvBiiB,EAAO2c,aAA6B3c,EAAO2c,eAAiB,GAE1EC,EAAgD,mBAAnBF,EAAgCA,IAAoBA,EAEvF,UAAYG,KAAkBD,EAC7B,GAAKC,EAAejZ,SAAU5D,EAAO9d,SAAoBnE,EAAK0yB,SAAUoM,GACvE,OAIF5uB,GAAU,GAEZ,CCfe,SAAS6uB,GAA4D7G,GA+BnF,OA7BA,cAA6BA,EAGrB,qBAAA8G,GACNz+B,KAAK0+B,2BAA4B,CAClC,CAEO,oBAAAC,GACN3+B,KAAK0+B,2BAA4B,CAClC,CAEA,WAAA38B,IAAgB7F,GACf2R,SAAU3R,GAEV8D,KAAK4R,IAAK,6BAA6B,GACvC5R,KAAK4+B,sCACN,CAEU,oCAAAA,GACT5+B,KAAK45B,eAAgB,CACpBr0B,WAAY,CACXs5B,MAAO,CACN7+B,KAAK69B,aAAatE,GAAI,4BAA6B,8BAIvD,EAIF,CCvBe,SAASuF,IAAe,KAAEnH,IACxCA,EAAK/nB,SAAU+nB,EAAK5gB,QAAU,UAAU,CAAEvB,EAAKkM,KAC9CA,EAAOyU,iBACPwB,EAAK/mB,KAA0B,SAAU,GACvC,CAAEwP,YAAY,GAClB,CC7Be,SAAS2e,IACvB,iBAAEC,EAAgB,aAAEC,EAAY,UAAEC,EAAS,gBAAEC,EAAe,oBAAE7M,IAQ9D,MAAM8M,EAAgD,iBAApBD,EAA+B,IAAMA,EAAkBA,EAsCzF,SAASE,EAAoBC,GAC5B,OAAS9pB,IACR,MAAMogB,EAAiBsJ,EAAU3K,MAAMt0B,GAAQA,EAAK8W,UAAYkoB,EAAarJ,iBACvE2J,EAAsBL,EAAU/K,SAAUyB,GAC1C4J,EAAmBF,EAAiBC,EAAqBL,GAE7DA,EAAU92B,IAAKo3B,GAAsCC,QAEvDjqB,EAAI4gB,kBACJ5gB,EAAI2gB,gBAAgB,CAEtB,CAoBA,SAASuJ,EAAsBC,EAAsBC,GACpD,OAAKD,IAAiBC,EAAmB,EACjC,EAEAD,EAAe,CAExB,CAoBA,SAASE,EAAqBF,EAAsBC,GACnD,OAAsB,IAAjBD,EACGC,EAAmB,EAEnBD,EAAe,CAExB,CAnGAX,EAAiBptB,IAAK,aAAcytB,GAAoB,CAAEE,EAAqBL,IAC/C,QAAxB5M,EACNuN,EAAqBN,EAAqBL,EAAU5mC,QACpDonC,EAAsBH,EAAqBL,EAAU5mC,WAGvD0mC,EAAiBptB,IAAK,YAAaytB,GAAoB,CAAEE,EAAqBL,IAC9C,QAAxB5M,EACNoN,EAAsBH,EAAqBL,EAAU5mC,QACrDunC,EAAqBN,EAAqBL,EAAU5mC,WAGtD0mC,EAAiBptB,IAAK,UAAWytB,GAAoB,CAAEE,EAAqBL,KAC3E,IAAIY,EAAYP,EAAsBH,IAUtC,OARKU,EAAY,IAChBA,EAAYP,EAAsBH,IAAuBvmC,KAAK+B,MAAOskC,EAAU5mC,OAAS8mC,KAEnFU,EAAYZ,EAAU5mC,OAAS,IACnCwnC,GAAaV,MAIRU,CAAS,KAGjBd,EAAiBptB,IAAK,YAAaytB,GAAoB,CAAEE,EAAqBL,KAC7E,IAAIY,EAAYP,EAAsBH,IAMtC,OAJKU,EAAYZ,EAAU5mC,OAAS,IACnCwnC,EAAYP,EAAsBH,KAG5BU,CAAS,IAmElB,CCrHe,MAAM,WAA+BxsB,KAYnCysB,OAuBRC,cAAgB,IAAIjsB,IAK5B,WAAAhS,CAAag+B,GACZlyB,QAEA7N,KAAK+/B,OAASA,EAEd//B,KAAK4R,IAAK,aAAa,EACxB,CA4CO,aAAAquB,CAAepgC,GACrBG,KAAKggC,cAAc9xB,IAAKrO,GAEQ,GAA3BG,KAAKggC,cAAchsB,OACvBhU,KAAKyP,GAAiC,gBAAiBywB,GAAc,CAAElzB,SAAU,YACjFhN,KAAKmgC,WAAY,EAEnB,CAOO,kBAAAC,CAAoBvgC,GAC1BG,KAAKggC,cAAcluB,OAAQjS,GAEK,GAA3BG,KAAKggC,cAAchsB,OACvBhU,KAAKsM,IAAK,gBAAiB4zB,IAC3BlgC,KAAKmgC,WAAY,EAEnB,CAKO,OAAAlY,GACNjoB,KAAK+P,eACN,CAKA,0BAAkBswB,GACjB,OAAO,CACR,EAyLD,SAASH,GAAc1qB,GACtBA,EAAIjJ,QAAS,EACbiJ,EAAInJ,MACL,CC3Se,MAAMi0B,WAAgChtB,KAIpCysB,OAwCNQ,2BAOFC,aAKSR,cAOjB,WAAAj+B,CAAag+B,GACZlyB,QAEA7N,KAAK+/B,OAASA,EACd//B,KAAK4R,IAAK,aAAS,GACnB5R,KAAK4R,IAAK,aAAa,GAEvB5R,KAAKwgC,cAAe,EACpBxgC,KAAKugC,4BAA6B,EAClCvgC,KAAKggC,cAAgB,IAAIjsB,IAEzB/T,KAAKoV,SAAU,WAGfpV,KAAK4P,SAAU5P,KAAK+/B,OAAO3nC,MAAMoL,SAAU,UAAU,KACpDxD,KAAKygC,SAAS,IAGfzgC,KAAK4P,SAA0CmwB,EAAQ,qBAAqB,KAC3E//B,KAAKygC,SAAS,IAIfzgC,KAAKyP,GAAiC,iBAAiB+F,IACtD,IAAMxV,KAAK0gC,YACV,OAGD,MAAMC,EAAYZ,EAAO3nC,MAAMoL,SAASm9B,UAElCC,IADsE,cAA/CD,EAAUE,mBAAoBvqC,KAAKwqC,WACZf,EAAO3nC,MAAM2oC,UAAWJ,IAMvEZ,EAAOiB,YAAchhC,KAAKugC,6BAA+BK,KAC7DprB,EAAIjJ,QAAS,EACbiJ,EAAInJ,OACL,GACE,CAAEW,SAAU,YAEfhN,KAAKyP,GAAyB,WAAW+F,IAClCxV,KAAKmgC,WACV3qB,EAAInJ,MACL,GACE,CAAEW,SAAU,QAChB,CAaA,eAAW0zB,GACV,OAAO1gC,KAAKwgC,YACb,CAEA,eAAcE,CAAaA,GAC1B1gC,KAAKwgC,aAAeE,CACrB,CASO,OAAAD,GACNzgC,KAAKmgC,WAAY,CAClB,CA4CO,aAAAF,CAAepgC,GACrBG,KAAKggC,cAAc9xB,IAAKrO,GAEQ,GAA3BG,KAAKggC,cAAchsB,OACvBhU,KAAKyP,GAAiC,gBAAiB,GAAc,CAAEzC,SAAU,YACjFhN,KAAKmgC,WAAY,EAEnB,CAOO,kBAAAC,CAAoBvgC,GAC1BG,KAAKggC,cAAcluB,OAAQjS,GAEK,GAA3BG,KAAKggC,cAAchsB,OACvBhU,KAAKsM,IAAK,gBAAiB,IAC3BtM,KAAKygC,UAEP,CAkBO,OAAAQ,IAAY/kC,GAAoD,CAKhE,OAAA+rB,GACNjoB,KAAK+P,eACN,EAMD,SAAS,GAAcyF,GACtBA,EAAIjJ,QAAS,EACbiJ,EAAInJ,MACL,CCtOe,MAAM60B,WAAqBZ,GAIjCa,0BAAmF,GAK3E,OAAAV,GAEhB,CAOgB,OAAAQ,IAAY/kC,GAC3B,MAAMklC,EAAUphC,KAAKqhC,0BAErB,QAASD,GAAWA,EAAQH,QAAS/kC,EACtC,CAQO,oBAAAolC,CACNF,EACA78B,EAAyC,CAAC,GAE1C+I,EAAuBtN,KAAKmhC,0BAA2B,CAAEC,UAASp0B,SAAUzI,EAAQyI,UAAY,WAGhGo0B,EAAQ3xB,GAAoC,oBAAoB,IAAMzP,KAAKuhC,kBAE3EvhC,KAAKuhC,eACN,CAKQ,aAAAA,GACPvhC,KAAKmgC,YAAcngC,KAAKqhC,yBACzB,CAKQ,uBAAAA,GACP,MAAMG,EAAoBxhC,KAAKmhC,0BAA0B5M,MAAM,EAAI6M,aAAeA,EAAQjB,YAE1F,OAAOqB,GAAqBA,EAAkBJ,OAC/C,EClFc,MAAMK,WACIjyB,KAEhBkyB,SAEAC,SAAW,IAAIjwB,IAKfkwB,kBAKAC,gBAaR,WAAA9/B,CACC4L,EACAm0B,EAA0D,GAC1DC,EAAkD,IAElDl0B,QAEA7N,KAAK0hC,SAAW/zB,EAChB3N,KAAK4hC,kBAAoB,IAAIlwB,IAE7B,UAAYswB,KAAqBF,EAC3BE,EAAkBC,YACtBjiC,KAAK4hC,kBAAkBhwB,IAAKowB,EAAkBC,WAAYD,GAI5DhiC,KAAK6hC,gBAAkB,IAAInwB,IAE3B,UAAcswB,EAAmBE,KAAoBH,EACpD/hC,KAAK6hC,gBAAgBjwB,IAAKowB,EAAmBE,GAC7CliC,KAAK6hC,gBAAgBjwB,IAAKswB,EAAgBF,GAGrCA,EAAkBC,YACtBjiC,KAAK4hC,kBAAkBhwB,IAAKowB,EAAkBC,WAAYD,EAG7D,CAOA,EAAUlhC,OAAOC,YAChB,UAAYsY,KAASrZ,KAAK2hC,SACC,mBAAdtoB,EAAO,WACZA,EAGT,CAyBO,GAAAjR,CAAKrR,GACX,MAAMorC,EAASniC,KAAK2hC,SAASv5B,IAAKrR,GAElC,IAAMorC,EAAS,CACd,IAAIF,EAAalrC,EAoBjB,KAlBmB,mBAAPA,IACXkrC,EAAalrC,EAAIkrC,YAAclrC,EAAIiL,MAiB9B,IAAI0L,EAAe,qCAAsC1N,KAAK0hC,SAAU,CAAES,OAAQF,GACzF,CAEA,OAAOE,CACR,CAiBO,GAAAl0B,CAAKlX,GACX,OAAOiJ,KAAK2hC,SAAS1zB,IAAKlX,EAC3B,CAkBO,IAAAqrC,CACNC,EACAC,EAAuE,GACvEC,EAAmE,IAiBnE,MAAMC,EAAOxiC,KACP2N,EAAU3N,KAAK0hC,UAuDrB,SAASe,EACRJ,EACAK,EAAY,IAAI3uB,KAEhBsuB,EAAQzkC,SAASukC,IACVQ,EAAqBR,KAItBO,EAAUz0B,IAAKk0B,KAIpBO,EAAUx0B,IAAKi0B,GAEVA,EAAOF,aAAeO,EAAKZ,kBAAkB3zB,IAAKk0B,EAAOF,aAC7DO,EAAKZ,kBAAkBhwB,IAAKuwB,EAAOF,WAAYE,GAG3CA,EAAOS,UACXH,EAAiCN,EAAOS,SAAUF,IACnD,GAEF,CA5EAD,CAAiCJ,GAEjCQ,EAAiBR,GAEjB,MAEMS,EAAqB,IAwE3B,SAASC,EACRV,EACAK,EAAY,IAAI3uB,KAEhB,OAAOsuB,EACLrlC,KAAKmlC,GACEQ,EAAqBR,GAC3BA,EACAK,EAAKZ,kBAAkBx5B,IAAK+5B,KAE7BxT,QAAQ,CAAExwB,EAAQgkC,IACbO,EAAUz0B,IAAKk0B,GACZhkC,GAGRukC,EAAUx0B,IAAKi0B,GAEVA,EAAOS,WACXC,EAAiBV,EAAOS,SAAUT,GAElCY,EAAuBZ,EAAOS,SAAUF,GAAY9kC,SAASukC,GAAUhkC,EAAO+P,IAAKi0B,MAG7EhkC,EAAO+P,IAAKi0B,KACjB,IAAIpuB,IACT,CAjGgCgvB,CAFVV,EAAQt8B,QAAQo8B,IAAWa,EAAiBb,EAAQG,QAgR1E,SACCQ,EACAP,GAEA,UAAYU,KAAcV,EAAuB,CAChD,GAA0B,mBAAdU,EAMX,MAAM,IAAIv1B,EAAe,+CAAgD,KAAM,CAAEu1B,eAGlF,MAAMhB,EAAagB,EAAWhB,WAE9B,IAAMA,EAML,MAAM,IAAIv0B,EAAe,+CAAgD,KAAM,CAAEu1B,eAGlF,GAAKA,EAAWL,UAAYK,EAAWL,SAAStqC,OAM/C,MAAM,IAAIoV,EAAe,iEAAkE,KAAM,CAAEu0B,eAGpG,MAAMiB,EAAkBV,EAAKZ,kBAAkBx5B,IAAK65B,GAEpD,IAAMiB,EAOL,MAAM,IAAIx1B,EAAe,kDAAmD,KAAM,CAAEu0B,eAGrF,MAAMkB,EAA4BL,EAAmBr5B,QAASy5B,GAE9D,IAAoC,IAA/BC,EAAmC,CAIvC,GAAKX,EAAKX,gBAAgB5zB,IAAKi1B,GAC9B,OAQD,MAAM,IAAIx1B,EAAe,mDAAoD,KAAM,CAAEu0B,cACtF,CAEA,GAAKiB,EAAgBN,UAAYM,EAAgBN,SAAStqC,OAMzD,MAAM,IAAIoV,EAAe,4DAA6D,KAAM,CAAEu0B,eAG/Fa,EAAmBt7B,OAAQ27B,EAA2B,EAAGF,GACzDT,EAAKZ,kBAAkBhwB,IAAKqwB,EAAYgB,EACzC,CACD,CAxVAG,CAAmBN,EAAoBP,GAEvC,MAAMc,EAA+BP,EA8OV9lC,KAAKglC,IAC9B,IAAIE,EAAiBM,EAAKX,gBAAgBz5B,IAAK45B,GAM/C,OAJAE,EAAiBA,GAAkB,IAAMF,EAAyDr0B,GAElG60B,EAAKc,KAAMtB,EAAmBE,GAEvBA,CAAc,IAnPvB,OAAOqB,EAAaF,EAAiB,QACnCG,MAAM,IAAMD,EAAaF,EAAiB,eAC1CG,MAAM,IAAMH,IAEd,SAASV,EAAqBR,GAC7B,MAAyB,mBAAXA,CACf,CAEA,SAAS9B,EACR8B,GAEA,OAAOQ,EAAqBR,MAAcA,EAAO9B,eAClD,CAEA,SAAS2C,EACRb,EACAG,GAEA,OAAOA,EAAgBjL,MAAMoM,GACvBA,IAAkBtB,IAIlBuB,EAAevB,KAAasB,GAI5BC,EAAeD,KAAoBtB,IAM1C,CAEA,SAASuB,EAAevB,GACvB,OAAOQ,EAAqBR,GAC3BA,EAAOF,YAAcE,EAAOngC,KAC5BmgC,CACF,CAsDA,SAASU,EACRR,EACAsB,EAA8D,MAE9DtB,EACErlC,KAAKmlC,GACEQ,EAAqBR,GAC3BA,EACAK,EAAKZ,kBAAkBx5B,IAAK+5B,IAAYA,IAEzCvkC,SAASukC,KAOZ,SACCA,EACAwB,GAEA,GAAKhB,EAAqBR,GACzB,OAGD,GAAKwB,EAwBJ,MAAM,IAAIj2B,EACT,iCACAC,EACA,CAAEi2B,cAAezB,EAAQ0B,WAAYH,EAAeC,KA0BtD,MAAM,IAAIj2B,EACT,oCACAC,EACA,CAAEw0B,UAEJ,CAxEG2B,CAAoB3B,EAAQwB,GA0E/B,SACCxB,EACAwB,GAEA,IAAMtD,EAAiBsD,GACtB,OAGD,GAAKtD,EAAiB8B,GACrB,OAeD,MAAM,IAAIz0B,EACT,oCACAC,EACA,CAAEw0B,OAAQuB,EAAevB,GAAU0B,WAAYH,EAAeC,IAEhE,CAtGGI,CAAoB5B,EAAQwB,GAwG/B,SACCxB,EACAwB,GAEA,IAAMA,EACL,OAGD,IAAMX,EAAiBb,EAAQG,GAC9B,OAUD,MAAM,IAAI50B,EACT,4BACAC,EACA,CAAEw0B,OAAQuB,EAAevB,GAAU0B,WAAYH,EAAeC,IAEhE,CA/HGK,CAAoB7B,EAAQwB,EAAyB,GAExD,CA2IA,SAASJ,EAAaF,EAAiDY,GACtE,OAAOZ,EAAgB1U,QAA0B,CAAEuV,EAAS/B,IACrDA,EAAQ8B,GAITzB,EAAKX,gBAAgB5zB,IAAKk0B,GACvB+B,EAGDA,EAAQV,KAAMrB,EAAQ8B,GAAUj9B,KAAMm7B,IAPrC+B,GAQNC,QAAQnnB,UACZ,CAkFD,CAKO,OAAAiL,GACN,MAAMmc,EAA2B,GAEjC,UAAc,CAAElC,KAAoBliC,KACG,mBAA1BkiC,EAAeja,SAA0BjoB,KAAK6hC,gBAAgB5zB,IAAKi0B,IAC9EkC,EAASxkC,KAAMsiC,EAAeja,WAIhC,OAAOkc,QAAQ1gC,IAAK2gC,EACrB,CAQQ,IAAAd,CAAMtB,EAAgDG,GAC7DniC,KAAK2hC,SAAS/vB,IAAKowB,EAAmBG,GAEtC,MAAMF,EAAaD,EAAkBC,WAErC,GAAMA,EAAN,CAIA,GAAKjiC,KAAK2hC,SAAS1zB,IAAKg0B,GA+BvB,MAAM,IAAIv0B,EACT,wCACA,KACA,CAAEu0B,aAAYoC,QAASrkC,KAAK2hC,SAASv5B,IAAK65B,GAAclgC,YAAauiC,QAAStC,IAIhFhiC,KAAK2hC,SAAS/vB,IAAKqwB,EAAYE,EAxC/B,CAyCD,EC3jBc,MAAMoC,GAIJ5Z,OAKA0X,QAEA9E,OAKAviC,EAKAwpC,QAiChB,qBA2BA,sBAQQC,cAA+B,KASvC,WAAA1iC,CAAa4oB,GAGZ,MAAM,aAAE0G,KAAiBqT,GAAS/Z,GAAU,CAAC,EAE7C3qB,KAAK2qB,OAAS,IAAI/L,GAAuB8lB,EAAQ1kC,KAAK+B,YAAgC4iC,eAEtF,MAAM7C,EAAqB9hC,KAAK+B,YAAgC6iC,eAEhE5kC,KAAK2qB,OAAOj0B,OAAQ,UAAWorC,GAE/B9hC,KAAKqiC,QAAU,IAAIZ,GAAoCzhC,KAAM8hC,GAE7D,MAAM+C,EAAiB7kC,KAAK2qB,OAAOviB,IAAK,aAAgB,CAAC,EAEzDpI,KAAKu9B,OAAS,IAAInL,GAAQ,CACzBC,WAAsC,iBAAnBwS,EAA8BA,EAAiBA,EAAeC,GACjFvS,gBAAiBvyB,KAAK2qB,OAAOviB,IAAK,oBAClCipB,iBAGDrxB,KAAKhF,EAAIgF,KAAKu9B,OAAOviC,EAErBgF,KAAKwkC,QAAU,IAAI5R,EACpB,CAOO,WAAA2Q,GACN,MAAMlB,EAAUriC,KAAK2qB,OAAOviB,IAAK,YAAe,GAC1Cg7B,EAAoBpjC,KAAK2qB,OAAOviB,IAAK,sBAAyB,GAGpE,UAAY28B,KAAU1C,EAAQliC,OAAQijC,GAAsB,CAC3D,GAAsB,mBAAV2B,EAMX,MAAM,IAAIr3B,EACT,uCACA,KACA,CAAEq3B,WAIJ,IAAgC,IAA3BA,EAAO1E,gBAOX,MAAM,IAAI3yB,EACT,qCACA,KACA,CAAEq3B,UAGL,CAEA,OAAO/kC,KAAKqiC,QAAQD,KAAMC,EAAS,GAAIe,EACxC,CAQO,OAAAnb,GACN,OAAOkc,QAAQ1gC,IAAK9C,MAAMrB,KAAMU,KAAKwkC,SAASzE,GAAUA,EAAO9X,aAC7Dub,MAAM,IAAMxjC,KAAKqiC,QAAQpa,WAC5B,CAaO,UAAA+c,CAAYjF,EAAgBkF,GAClC,GAAKjlC,KAAKykC,cAMT,MAAM,IAAI/2B,EAAe,qCAG1B1N,KAAKwkC,QAAQt2B,IAAK6xB,GAEbkF,IACJjlC,KAAKykC,cAAgB1E,EAEvB,CAWO,aAAAmF,CAAenF,GAKrB,OAJK//B,KAAKwkC,QAAQv2B,IAAK8xB,IACtB//B,KAAKwkC,QAAQv+B,OAAQ85B,GAGjB//B,KAAKykC,gBAAkB1E,EACpB//B,KAAKioB,UAGNkc,QAAQnnB,SAChB,CAaO,gBAAAmoB,GACN,MAAMhnC,EAAkC,CAAC,EAEzC,UAAY6D,KAAQhC,KAAK2qB,OAAOvL,QACzB,CAAE,UAAW,gBAAiB,gBAAiB+S,SAAUnwB,KAC9D7D,EAAQ6D,GAAShC,KAAK2qB,OAAOviB,IAAKpG,IAIpC,OAAO7D,CACR,CAqDA,aAAc4f,CAAQ4M,GACrB,OAAO,IAAIwZ,SAASnnB,IACnB,MAAMrP,EAAU,IAAI3N,KAAM2qB,GAE1B3N,EAASrP,EAAQ41B,cAAcC,MAAM,IAAM71B,IAAW,GAExD,EC9Tc,MAAMy3B,WAAsC9xB,KAI1C3F,QAKhB,WAAA5L,CAAa4L,GACZE,QAEA7N,KAAK2N,QAAUA,CAChB,CAKO,OAAAsa,GACNjoB,KAAK+P,eACN,CAKA,0BAAkBswB,GACjB,OAAO,CACR,ECtCc,MAAMgF,WAAgCrP,GAIpC+J,OAKhB,WAAAh+B,CAAag+B,GACZlyB,QACA7N,KAAK+/B,OAASA,CACf,CAmBgB,GAAAnuB,CACf0c,EACA3e,EACApL,EAAkD,CAAC,GAEnD,GAAwB,iBAAZoL,EAAuB,CAClC,MAAM21B,EAAc31B,EAEpBA,EAAW,CAAE41B,EAAS3O,KACrB52B,KAAK+/B,OAAOkB,QAASqE,GACrB1O,GAAQ,CAEV,CAEA/oB,MAAM+D,IAAK0c,EAAW3e,EAAUpL,EACjC,E,eCrEG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ+4B,OAAvB,MCQMkI,GAAuB,IAAIjS,QAEjC,IAAIkS,IAA4C,EAqBzC,SAAS,IAAmB,KAAE9N,EAAI,QAAE5gB,EAAO,KAAEshB,EAAI,aAAEqN,GAAe,EAAI,YAAEC,GAAc,IAO5F,MAAM1tB,EAAM0f,EAAKn0B,SAgCjB,SAASoiC,EAAgBvN,GAExBmN,GAAqBp9B,IAAK6P,GAAOrG,IAAKmF,EAAS,CAC9CshB,KAAAA,EACAqN,eACAC,cACAE,YAAaH,EAAe3uB,EAAU,OAIvC4gB,EAAKmO,QAAQC,GAAUC,GAA4B/tB,EAAK8tB,IACzD,CAxCMP,GAAqBv3B,IAAKgK,KAC/ButB,GAAqB5zB,IAAKqG,EAAK,IAAIvG,KAInCuG,EAAIguB,mBAAmBF,GAAUC,GAA4B/tB,EAAK8tB,KAGlE9tB,EAAIxI,GAA2B,sBAAsB,KACpDkoB,EAAKmO,QAAQC,GAAUC,GAA4B/tB,EAAK8tB,IAAU,GAChE,CAAE/4B,SAAU,UAGX+J,EAAQxI,GAAI,oBAChBwI,EAAQtH,GAAI,sBAAsB,CAAEy2B,EAAS1wB,EAAK6iB,KACjDuN,EAAgBvN,EAAM,IAInBthB,EAAQovB,YACZP,EAAgB7uB,EAAQovB,aACb9N,GACXuN,EAAgBvN,GAGZA,GA6ON,WACOoN,IAUL,EAAY,4CAGbA,IAA4C,CAC7C,CA3PEW,EAeF,CA8DO,SAAS,GAAiBL,EAAwBhvB,GACxD,QAAKA,EAAQsvB,SAAU,oBACtBN,EAAOO,YAAa,iBAAkBvvB,IAE/B,EAIT,CAuDA,SAASivB,GAA4B/tB,EAAe8tB,GACnD,MAAMQ,EAAef,GAAqBp9B,IAAK6P,GACzCuuB,EAAqC,GAC3C,IAAIC,GAAkB,EAGtB,UAAc1vB,EAAS4T,KAAY4b,EAC7B5b,EAAO+a,eACXc,EAAmB5mC,KAAMmX,GAEpB2vB,GAAmBX,EAAQhvB,EAAS4T,KACxC8b,GAAkB,IAMrB,UAAc1vB,EAAS4T,KAAY4b,EAAe,CACjD,GAAK5b,EAAO+a,aACX,SAGD,MAAMG,EAAcc,GAAmC5vB,GAIjD8uB,IAKDW,EAAmBrU,SAAU0T,KAKlClb,EAAOkb,YAAcA,EAEhBa,GAAmBX,EAAQhvB,EAAS4T,KACxC8b,GAAkB,IAEpB,CAEA,OAAOA,CACR,CAOA,SAASC,GAAmBX,EAAwBhvB,EAAkB4T,GACrE,MAAM,KAAE0N,EAAI,aAAEqN,EAAY,YAAEG,GAAgBlb,EAE5C,IAAI8b,GAAkB,EAGjBZ,EAAanL,aAAc,sBAAyBrC,IACxD0N,EAAOtgC,aAAc,mBAAoB4yB,EAAMwN,GAC/CY,GAAkB,GAcnB,OAVoBf,GAAsC,GAAtB3uB,EAAQ6vB,aAvGtC,SAA2B7vB,EAAkB4uB,GACnD,IAAM5uB,EAAQ8vB,aACb,OAAO,EAOR,GAHmBlmC,MAAMrB,KAAMyX,EAAQ+vB,eACrCzP,MAAMtgB,IAAYA,EAAQxI,GAAI,eAG/B,OAAO,EAGR,MAAM0J,EAAMlB,EAAQvT,SAEdujC,EADgB9uB,EAAI0oB,UACYqG,OAEtC,QAAK/uB,EAAIgvB,aAAeF,GAAmBA,EAAgBnoC,SAAWmY,IAKjE4uB,GAKC1tB,EAAI6d,aAKDiR,GAAmBA,EAAgBnoC,SAAWmY,GACxD,CAwEqB,CAAkB8uB,EAAclb,EAAOgb,aArJrD,SAA0BI,EAAwBhvB,GACxD,OAAMA,EAAQsvB,SAAU,oBACvBN,EAAOmB,SAAU,iBAAkBnwB,IAE5B,EAIT,CA8IO,CAAiBgvB,EAAQF,KAC7BY,GAAkB,GAER,GAAiBV,EAAQF,KACpCY,GAAkB,GAGZA,CACR,CAOA,SAASE,GAAmC/nC,GAC3C,GAAKA,EAAOgoC,WAAa,CACxB,MAAMjgC,EAAa/H,EAAOuoC,SAAU,GAEpC,GAAKxgC,EAAW4H,GAAI,aAAgB5H,EAAW4H,GAAI,eAAkB5H,EAAW4H,GAAI,oBACnF,OAAO5H,CAET,CAEA,OAAO,IACR,CC5Re,MAAeygC,GAqdtB,EAAA74B,GAON,MAAM,IAAIlW,MAAO,0BAClB,ECpdD,SAJA,SAAeG,GACb,OAAO,GAAUA,EA7BM,EA8BzB,ECHe,MAAe,WAA6BgX,EAAc43B,KAIxD5jC,SAKA5E,OAON,WAAAmD,CAAayB,GACtBqK,QAEA7N,KAAKwD,SAAWA,EAChBxD,KAAKpB,OAAS,IACf,CAQA,SAAWgG,GACV,IAAIyiC,EAEJ,IAAMrnC,KAAKpB,OACV,OAAO,KAIR,IAAqD,IAA9CyoC,EAAMrnC,KAAKpB,OAAO0oC,cAAetnC,OAMvC,MAAM,IAAI0N,EAAe,gCAAiC1N,MAG3D,OAAOqnC,CACR,CAKA,eAAWnwB,GACV,MAAMtS,EAAQ5E,KAAK4E,MAEnB,OAAmB,OAAVA,GAAkB5E,KAAKpB,OAAQuoC,SAAUviC,EAAQ,IAAS,IACpE,CAKA,mBAAW6jB,GACV,MAAM7jB,EAAQ5E,KAAK4E,MAEnB,OAAmB,OAAVA,GAAkB5E,KAAKpB,OAAQuoC,SAAUviC,EAAQ,IAAS,IACpE,CAKA,QAAWtO,GAEV,IAAIA,EAAgC0J,KAEpC,KAAQ1J,EAAKsI,QACZtI,EAAOA,EAAKsI,OAGb,OAAOtI,CACR,CAKO,UAAAuwC,GACN,OAAO7mC,KAAK1J,KAAKiY,GAAI,cACtB,CAmBO,OAAAg5B,GACN,MAAM9nC,EAAO,GAEb,IAAIN,EAAgCa,KAEpC,KAAQb,EAAKP,QACZa,EAAKL,QAASD,EAAKyF,OACnBzF,EAAOA,EAAKP,OAGb,OAAOa,CACR,CAWO,YAAA+nC,CAAcjjC,EAA4D,CAAC,GACjF,MAAMkjC,EAA4C,GAClD,IAAI7oC,EAAS2F,EAAQmjC,YAAc1nC,KAAOA,KAAKpB,OAE/C,KAAQA,GACP6oC,EAAWljC,EAAQojC,YAAc,OAAS,WAAa/oC,GACvDA,EAASA,EAAOA,OAGjB,OAAO6oC,CACR,CAWO,iBAAAG,CAAmBzoC,EAAYoF,EAAqC,CAAC,GAC3E,MAAMsjC,EAAa7nC,KAAKwnC,aAAcjjC,GAChCujC,EAAa3oC,EAAKqoC,aAAcjjC,GAEtC,IAAI/J,EAAI,EAER,KAAQqtC,EAAYrtC,IAAOstC,EAAYttC,IAAOqtC,EAAYrtC,IACzDA,IAGD,OAAa,IAANA,EAAU,KAAOqtC,EAAYrtC,EAAI,EACzC,CAQO,QAAAutC,CAAU5oC,GAEhB,GAAKa,MAAQb,EACZ,OAAO,EAIR,GAAKa,KAAK1J,OAAS6I,EAAK7I,KACvB,OAAO,EAGR,MAAM0xC,EAAWhoC,KAAKunC,UAChBU,EAAW9oC,EAAKooC,UAEhBppC,EAASkZ,GAAe2wB,EAAUC,GAExC,OAAS9pC,GACR,IAAK,SACJ,OAAO,EAER,IAAK,YACJ,OAAO,EAER,QACC,OAAO6pC,EAAU7pC,GAAqB8pC,EAAU9pC,GAEnD,CAQO,OAAA+pC,CAAS/oC,GAEf,OAAKa,MAAQb,IAKRa,KAAK1J,OAAS6I,EAAK7I,OAKhB0J,KAAK+nC,SAAU5oC,GACxB,CAOO,OAAAk1B,GACNr0B,KAAKpB,OAAQupC,gBAAiBnoC,KAAK4E,MACpC,CAQO,WAAAwjC,CAAaj9B,EAAkBhM,GACrCa,KAAK4Q,KAA2B,UAAWzF,IAAShM,GAE/Ca,KAAKpB,QACToB,KAAKpB,OAAOwpC,YAAaj9B,EAAMhM,EAEjC,CAOO,MAAAkpC,GACN,MAAMC,EAAY,GAAOtoC,MAKzB,cAFOsoC,EAAK1pC,OAEL0pC,CACR,EAoBD,GAAKzmC,UAAU0M,GAAK,SAAUpD,GAC7B,MAAgB,SAATA,GAA4B,cAATA,CAC3B,ECzRe,MAAMo9B,WAAa,GAMzBC,UAUR,WAAAzmC,CAAayB,EAAoBV,GAChC+K,MAAOrK,GAEPxD,KAAKwoC,UAAY1lC,CAClB,CAKA,QAAWA,GACV,OAAO9C,KAAKwoC,SACb,CAqBA,SAAWC,GACV,OAAOzoC,KAAK8C,IACb,CAEA,SAAW2lC,CAAO3lC,GACjB9C,KAAKooC,YAAa,OAAQpoC,MAE1BA,KAAKwoC,UAAY1lC,CAClB,CAQO,SAAA4lC,CAAWC,GACjB,OAAQA,aAAqBJ,KAItBvoC,OAAS2oC,GAAa3oC,KAAK8C,OAAS6lC,EAAU7lC,KACtD,CAQO,MAAA8lC,GACN,OAAO,IAAIL,GAAMvoC,KAAKwD,SAAUxD,KAAK8C,KACtC,EAiBDylC,GAAK1mC,UAAU0M,GAAK,SAAUpD,GAC7B,MAAgB,UAATA,GAA6B,eAATA,GAEjB,SAATA,GAA4B,cAATA,GAEV,SAATA,GAA4B,cAATA,CACrB,ECvFe,MAAM09B,WAAkBzB,GAItB0B,SAKAhmC,KAKAimC,aAYhB,WAAAhnC,CAAa+mC,EAAgBC,EAAsBzwC,GAKlD,GAJAuV,QAEA7N,KAAK8oC,SAAWA,EAEXC,EAAe,GAAKA,EAAeD,EAAShmC,KAAKxK,OAMrD,MAAM,IAAIoV,EAAe,oCAAqC1N,MAG/D,GAAK1H,EAAS,GAAKywC,EAAezwC,EAASwwC,EAAShmC,KAAKxK,OAMxD,MAAM,IAAIoV,EAAe,8BAA+B1N,MAGzDA,KAAK8C,KAAOgmC,EAAShmC,KAAKlG,UAAWmsC,EAAcA,EAAezwC,GAClE0H,KAAK+oC,aAAeA,CACrB,CAKA,cAAWC,GACV,OAAOhpC,KAAK8C,KAAKxK,MAClB,CAUA,aAAW2wC,GACV,OAAOjpC,KAAK8C,KAAKxK,SAAW0H,KAAK8oC,SAAShmC,KAAKxK,MAChD,CAKA,UAAWsG,GACV,OAAOoB,KAAK8oC,SAASlqC,MACtB,CAKA,QAAWtI,GACV,OAAO0J,KAAK8oC,SAASxyC,IACtB,CAMA,YAAWkN,GACV,OAAOxD,KAAK8oC,SAAStlC,QACtB,CAWO,YAAAgkC,CAAcjjC,EAGjB,CAAC,GACJ,MAAMkjC,EAAsD,GAC5D,IAAI7oC,EAAmD2F,EAAQmjC,YAAc1nC,KAAK8oC,SAAW9oC,KAAKpB,OAElG,KAAmB,OAAXA,GACP6oC,EAAWljC,EAAQojC,YAAc,OAAS,WAAa/oC,GACvDA,EAASA,EAAOA,OAGjB,OAAO6oC,CACR,EAiBDoB,GAAUhnC,UAAU0M,GAAK,SAAUpD,GAClC,MAAgB,eAATA,GAAkC,oBAATA,GAEtB,cAATA,GAAiC,mBAATA,CAC1B,EC5Je,MAAM+9B,GACHC,UAAkE,GAOnF,WAAApnC,IAAgBqnC,GACfppC,KAAKkO,OAAQk7B,EACd,CAgCO,GAAAl7B,IAAQk7B,GACd,QAAUnpC,KAAQmpC,GAEG,iBAARnpC,GAAoBA,aAAgB4J,UAC/C5J,EAAO,CAAE+B,KAAM/B,IAGhBD,KAAKmpC,UAAUvpC,KAAMK,EAEvB,CAyBO,KAAApD,IAAUka,GAChB,UAAYsyB,KAAiBtyB,EAC5B,UAAYqyB,KAAWppC,KAAKmpC,UAAY,CACvC,MAAMtsC,EAAQysC,GAAmBD,EAAeD,GAEhD,GAAKvsC,EACJ,MAAO,CACNka,QAASsyB,EACTD,UACAvsC,QAGH,CAGD,OAAO,IACR,CAYO,QAAAu6B,IAAargB,GACnB,MAAMwyB,EAA8B,GAEpC,UAAYF,KAAiBtyB,EAC5B,UAAYqyB,KAAWppC,KAAKmpC,UAAY,CACvC,MAAMtsC,EAAQysC,GAAmBD,EAAeD,GAE3CvsC,GACJ0sC,EAAQ3pC,KAAM,CACbmX,QAASsyB,EACTD,UACAvsC,SAGH,CAGD,OAAO0sC,EAAQjxC,OAAS,EAAIixC,EAAU,IACvC,CAQO,cAAAC,GACN,GAA+B,IAA1BxpC,KAAKmpC,UAAU7wC,OACnB,OAAO,KAGR,MAAM8wC,EAAUppC,KAAKmpC,UAAW,GAC1BnnC,EAAOonC,EAAQpnC,KAErB,MAA2B,mBAAXonC,IAAyBpnC,GAAWA,aAAgB6H,OAAoB,KAAP7H,CAClF,EASD,SAASsnC,GAAmBvyB,EAAkBqyB,GAE7C,GAAuB,mBAAXA,EACX,OAAOA,EAASryB,GAGjB,MAAMla,EAAe,CAAC,EAGtB,OAAKusC,EAAQpnC,OACZnF,EAAMmF,KA0CR,SAAoBonC,EAA0BpnC,GAE7C,GAAKonC,aAAmBv/B,OACvB,QAAS7H,EAAKnF,MAAOusC,GAGtB,OAAOA,IAAYpnC,CACpB,CAjDeynC,CAAWL,EAAQpnC,KAAM+U,EAAQ/U,OAExCnF,EAAMmF,OAMRonC,EAAQ7jC,aACZ1I,EAAM0I,WA6QR,SACCmkC,EACA3yB,GAEA,MAAM4yB,EAAgB,IAAI51B,IAAKgD,EAAQ6yB,oBAIlC,GAAeF,SACgB,IAA5BA,EAAkBrkC,OAExB,EAAY,kDAAmDqkC,QAE7B,IAA5BA,EAAkB7K,OAExB,EAAY,kDAAmD6K,KAGhEC,EAAc73B,OAAQ,SACtB63B,EAAc73B,OAAQ,UAGvB,OAAO+3B,GAAeH,EAAUC,GAAe5yC,GAAOggB,EAAQ2jB,aAAc3jC,IAC7E,CApSqB+yC,CAAiBV,EAAQ7jC,WAAYwR,IAElDla,EAAM0I,aAMR6jC,EAAQW,UACZltC,EAAMktC,QAoSR,SAAuBL,EAAyB3yB,GAE/C,OAAO8yB,GAAeH,EAAU3yB,EAAQizB,iBAAyD,QAClG,CAvSkBC,CAAcb,EAAQW,QAAShzB,IAEzCla,EAAMktC,UAMRX,EAAQ9N,SACZz+B,EAAMy+B,OAwSR,SAAsBoO,EAAyB3yB,GAC9C,OAAO8yB,GAAeH,EAAU3yB,EAAQmzB,eAAe,IAAQnzC,GAAOggB,EAAQozB,SAAUpzC,IACzF,CA1SiBqzC,CAAahB,EAAQ9N,OAAQvkB,IAEtCla,EAAMy+B,QA1BJ,KA+BFz+B,CACR,CAkFA,SAASgtC,GACRH,EACAzyC,EACAozC,GAEA,MAAMC,EA0FP,SAA4BZ,GAC3B,GAAK/oC,MAAMC,QAAS8oC,GACnB,OAAOA,EAAS1sC,KAAOosC,GACjB,GAAeA,SACE,IAAhBA,EAAQryC,UAAuC,IAAlBqyC,EAAQ5wC,OAEzC,EAAY,uCAAwC4wC,GAG9C,CAAEA,EAAQryC,IAAKqyC,EAAQ5wC,QAIxB,CAAE4wC,GAAS,KAIpB,GAAK,GAAeM,GACnB,OAAO1yC,OAAOoiB,QAASswB,GAIxB,MAAO,CAAE,CAAEA,GAAiB,GAC7B,CAjH4Ba,CAAmBb,GACxCc,EAAkB7pC,MAAMrB,KAAMrI,GAC9B4F,EAAuB,GAe7B,GAbAytC,EAAmB1sC,SAAS,EAAI6sC,EAAYC,MAC3CF,EAAgB5sC,SAAS+sC,KAkH3B,SAAuBF,EAAoCE,GAC1D,OAAsB,IAAfF,GACNA,IAAeE,GACfF,aAAsB5gC,QAAU8gC,EAAQ9tC,MAAO4tC,EACjD,EApHIG,CAAcH,EAAYE,IA2H9B,SACCD,EACAC,EACAN,GAEA,IAAsB,IAAjBK,EACJ,OAAO,EAGR,MAAMG,EAAYR,EAAaM,GAK/B,OAAOD,IAAiBG,GACvBH,aAAwB7gC,UAAY6R,OAAQmvB,GAAYhuC,MAAO6tC,EACjE,CA1III,CAAgBJ,EAAcC,EAASN,IAEvCxtC,EAAM+C,KAAM+qC,EACb,GACE,IAKEL,EAAmBhyC,UAAUuE,EAAMvE,OAASgyC,EAAmBhyC,QAIrE,OAAOuE,CACR,CCrSA,SALA,SAAkBrE,GAChB,MAAuB,iBAATA,GACX,GAAaA,IArBF,mBAqBY,GAAWA,EACvC,ECtBA,IAAIuyC,GAAe,mDACfC,GAAgB,QAuBpB,SAbA,SAAexyC,EAAO+c,GACpB,GAAI,GAAQ/c,GACV,OAAO,EAET,IAAI2S,SAAc3S,EAClB,QAAY,UAAR2S,GAA4B,UAARA,GAA4B,WAARA,GAC/B,MAAT3S,IAAiB,GAASA,MAGvBwyC,GAAc/oC,KAAKzJ,KAAWuyC,GAAa9oC,KAAKzJ,IAC1C,MAAV+c,GAAkB/c,KAASxB,OAAOue,GACvC,ECuBA,SAAS01B,GAAQ1yB,EAAM2yB,GACrB,GAAmB,mBAAR3yB,GAAmC,MAAZ2yB,GAAuC,mBAAZA,EAC3D,MAAM,IAAI/oC,UAhDQ,uBAkDpB,IAAIgpC,EAAW,WACb,IAAIjvC,EAAOoe,UACPvjB,EAAMm0C,EAAWA,EAASj6B,MAAMjR,KAAM9D,GAAQA,EAAK,GACnDkvC,EAAQD,EAASC,MAErB,GAAIA,EAAMn9B,IAAIlX,GACZ,OAAOq0C,EAAMhjC,IAAIrR,GAEnB,IAAIoH,EAASoa,EAAKtH,MAAMjR,KAAM9D,GAE9B,OADAivC,EAASC,MAAQA,EAAMx5B,IAAI7a,EAAKoH,IAAWitC,EACpCjtC,CACT,EAEA,OADAgtC,EAASC,MAAQ,IAAKH,GAAQI,OAAS,IAChCF,CACT,CAGAF,GAAQI,MAAQ,GAEhB,YC/CA,SAZA,SAAuB9yB,GACrB,IAAIpa,EAAS,GAAQoa,GAAM,SAASxhB,GAIlC,OAfmB,MAYfq0C,EAAMp3B,MACRo3B,EAAMr5B,QAEDhb,CACT,IAEIq0C,EAAQjtC,EAAOitC,MACnB,OAAOjtC,CACT,ECpBA,IAAImtC,GAAa,mGAGbC,GAAe,WASfC,GAAe,IAAc,SAAS/uC,GACxC,IAAI0B,EAAS,GAOb,OAN6B,KAAzB1B,EAAOgvC,WAAW,IACpBttC,EAAOyB,KAAK,IAEdnD,EAAOqa,QAAQw0B,IAAY,SAASzuC,EAAO6uC,EAAQC,EAAOC,GACxDztC,EAAOyB,KAAK+rC,EAAQC,EAAU90B,QAAQy0B,GAAc,MAASG,GAAU7uC,EACzE,IACOsB,CACT,IAEA,YCNA,SAXA,SAAkB+a,EAAOc,GAKvB,IAJA,IAAIpV,GAAS,EACTtM,EAAkB,MAAT4gB,EAAgB,EAAIA,EAAM5gB,OACnC6F,EAASwC,MAAMrI,KAEVsM,EAAQtM,GACf6F,EAAOyG,GAASoV,EAASd,EAAMtU,GAAQA,EAAOsU,GAEhD,OAAO/a,CACT,ECZA,IAGI,GAAc,GAAS,GAAO0D,eAAYgG,EAC1CgkC,GAAiB,GAAc,GAAYnvC,cAAWmL,EA0B1D,SAhBA,SAASikC,EAAatzC,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAI,GAAQA,GAEV,OAAO,GAASA,EAAOszC,GAAgB,GAEzC,GAAI,GAAStzC,GACX,OAAOqzC,GAAiBA,GAAexqC,KAAK7I,GAAS,GAEvD,IAAI2F,EAAU3F,EAAQ,GACtB,MAAkB,KAAV2F,GAAkB,EAAI3F,IAAU,IAAa,KAAO2F,CAC9D,ECPA,SAJA,SAAkB3F,GAChB,OAAgB,MAATA,EAAgB,GAAK,GAAaA,EAC3C,ECLA,SAPA,SAAkBA,EAAO+c,GACvB,OAAI,GAAQ/c,GACHA,EAEF,GAAMA,EAAO+c,GAAU,CAAC/c,GAAS,GAAa,GAASA,GAChE,ECCA,SALA,SAAc0gB,GACZ,IAAI5gB,EAAkB,MAAT4gB,EAAgB,EAAIA,EAAM5gB,OACvC,OAAOA,EAAS4gB,EAAM5gB,EAAS,QAAKuP,CACtC,ECGA,SARA,SAAerP,GACb,GAAoB,iBAATA,GAAqB,GAASA,GACvC,OAAOA,EAET,IAAI2F,EAAU3F,EAAQ,GACtB,MAAkB,KAAV2F,GAAkB,EAAI3F,IAAU,IAAa,KAAO2F,CAC9D,ECKA,SAZA,SAAiBoX,EAAQ9V,GAMvB,IAHA,IAAImF,EAAQ,EACRtM,GAHJmH,EAAO,GAASA,EAAM8V,IAGJjd,OAED,MAAVid,GAAkB3Q,EAAQtM,GAC/Bid,EAASA,EAAO,GAAM9V,EAAKmF,OAE7B,OAAQA,GAASA,GAAStM,EAAUid,OAAS1N,CAC/C,ECSA,SArBA,SAAmBqR,EAAOuX,EAAOsb,GAC/B,IAAInnC,GAAS,EACTtM,EAAS4gB,EAAM5gB,OAEfm4B,EAAQ,IACVA,GAASA,EAAQn4B,EAAS,EAAKA,EAASm4B,IAE1Csb,EAAMA,EAAMzzC,EAASA,EAASyzC,GACpB,IACRA,GAAOzzC,GAETA,EAASm4B,EAAQsb,EAAM,EAAMA,EAAMtb,IAAW,EAC9CA,KAAW,EAGX,IADA,IAAItyB,EAASwC,MAAMrI,KACVsM,EAAQtM,GACf6F,EAAOyG,GAASsU,EAAMtU,EAAQ6rB,GAEhC,OAAOtyB,CACT,ECbA,SAJA,SAAgBoX,EAAQ9V,GACtB,OAAOA,EAAKnH,OAAS,EAAIid,EAAS,GAAQA,EAAQ,GAAU9V,EAAM,GAAI,GACxE,ECMA,SANA,SAAmB8V,EAAQ9V,GAGzB,OAFAA,EAAO,GAASA,EAAM8V,GAEL,OADjBA,EAAS,GAAOA,EAAQ9V,YACQ8V,EAAO,GAAM,GAAK9V,IACpD,ECgBA,SAJA,SAAe8V,EAAQ9V,GACrB,OAAiB,MAAV8V,GAAwB,GAAUA,EAAQ9V,EACnD,ECCA,SALA,SAAa8V,EAAQ9V,EAAMusC,GACzB,IAAI7tC,EAAmB,MAAVoX,OAAiB1N,EAAY,GAAQ0N,EAAQ9V,GAC1D,YAAkBoI,IAAX1J,EAAuB6tC,EAAe7tC,CAC/C,ECoBA,SAlCA,SAAiBoX,EAAQ9V,EAAMjH,EAAO2hB,GACpC,IAAK,EAAS5E,GACZ,OAAOA,EAST,IALA,IAAI3Q,GAAS,EACTtM,GAHJmH,EAAO,GAASA,EAAM8V,IAGJjd,OACduS,EAAYvS,EAAS,EACrB2zC,EAAS12B,EAEI,MAAV02B,KAAoBrnC,EAAQtM,GAAQ,CACzC,IAAIvB,EAAM,GAAM0I,EAAKmF,IACjBgP,EAAWpb,EAEf,GAAY,cAARzB,GAA+B,gBAARA,GAAiC,cAARA,EAClD,OAAOwe,EAGT,GAAI3Q,GAASiG,EAAW,CACtB,IAAIoP,EAAWgyB,EAAOl1C,QAEL8Q,KADjB+L,EAAWuG,EAAaA,EAAWF,EAAUljB,EAAKk1C,QAAUpkC,KAE1D+L,EAAW,EAASqG,GAChBA,EACC,GAAQxa,EAAKmF,EAAQ,IAAM,GAAK,CAAC,EAE1C,CACA,GAAYqnC,EAAQl1C,EAAK6c,GACzBq4B,EAASA,EAAOl1C,EAClB,CACA,OAAOwe,CACT,ECdA,SAJA,SAAaA,EAAQ9V,EAAMjH,GACzB,OAAiB,MAAV+c,EAAiBA,EAAS,GAAQA,EAAQ9V,EAAMjH,EACzD,EClBe,MAAM0zC,GAOZC,QAKSC,gBAKjB,WAAArqC,CAAasqC,GACZrsC,KAAKmsC,QAAU,CAAC,EAChBnsC,KAAKosC,gBAAkBC,CACxB,CAKA,WAAWC,GAGV,OAFgBt1C,OAAOoiB,QAASpZ,KAAKmsC,SAErB7zC,MACjB,CAKA,QAAW0b,GACV,OAAKhU,KAAKssC,QACF,EAGDtsC,KAAKkqC,gBAAgB5xC,MAC7B,CASO,KAAAi0C,CAAOC,GACbxsC,KAAK+R,QAEL,MAAM06B,EAwxBR,SAA4BC,GAE3B,IAAIC,EAAY,KACZC,EAAoB,EACpBC,EAAqB,EACrB34B,EAAe,KAEnB,MAAM44B,EAAY,IAAIp7B,IAGtB,GAAsB,KAAjBg7B,EACJ,OAAOI,EAI+C,KAAlDJ,EAAa1e,OAAQ0e,EAAap0C,OAAS,KAC/Co0C,GAA8B,KAI/B,QAAUlyC,EAAI,EAAGA,EAAIkyC,EAAap0C,OAAQkC,IAAM,CAC/C,MAAMyC,EAAOyvC,EAAa1e,OAAQxzB,GAElC,GAAmB,OAAdmyC,EAEJ,OAAS1vC,GACR,IAAK,IAGEiX,IAGLA,EAAew4B,EAAat6B,OAAQw6B,EAAmBpyC,EAAIoyC,GAE3DC,EAAqBryC,EAAI,GAG1B,MAED,IAAK,IACL,IAAK,IAEJmyC,EAAY1vC,EAEZ,MAED,IAAK,IAAK,CAGT,MAAM0Z,EAAgB+1B,EAAat6B,OAAQy6B,EAAoBryC,EAAIqyC,GAE9D34B,GAEJ44B,EAAUl7B,IAAKsC,EAAaqa,OAAQ5X,EAAc4X,QAGnDra,EAAe,KAGf04B,EAAoBpyC,EAAI,EAExB,KACD,OAEUyC,IAAS0vC,IAEpBA,EAAY,KAEd,CAEA,OAAOG,CACR,CA/1BuBC,CAAmBP,GAExC,UAAcz1C,EAAKyB,KAAWi0C,EAC7BzsC,KAAKosC,gBAAgBY,iBAAkBj2C,EAAKyB,EAAOwH,KAAKmsC,QAE1D,CAiCO,GAAAl+B,CAAKjM,GACX,GAAKhC,KAAKssC,QACT,OAAO,EAGR,MAEMW,EAFSjtC,KAAKosC,gBAAgBc,eAAgBlrC,EAAMhC,KAAKmsC,SAE7B5X,MAAM,EAAIhhB,KAAgBA,IAAavR,IAGzE,OAAOrB,MAAMC,QAASqsC,EACvB,CAkFO,GAAAr7B,CAAKu7B,EAA+BC,GAC1C,GAAK,EAAUD,GACd,UAAcp2C,EAAKyB,KAAWxB,OAAOoiB,QAAS+zB,GAC7CntC,KAAKosC,gBAAgBY,iBAAkBj2C,EAAKyB,EAAOwH,KAAKmsC,cAGzDnsC,KAAKosC,gBAAgBY,iBAAkBG,EAAcC,EAAgBptC,KAAKmsC,QAE5E,CA8BO,MAAAlmC,CAAQjE,GACd,MAAMvC,EAAO4tC,GAAQrrC,GAErB,GAAOhC,KAAKmsC,QAAS1sC,UACdO,KAAKmsC,QAASnqC,GAErBhC,KAAKstC,yBAA0B7tC,EAChC,CA4BO,aAAA8tC,CAAevrC,GACrB,OAAOhC,KAAKosC,gBAAgBmB,cAAevrC,EAAMhC,KAAKmsC,QACvD,CA0BO,QAAAzvC,GACN,OAAKsD,KAAKssC,QACF,GAGDtsC,KAAKwtC,mBACVxwC,KAAK0D,GAAOA,EAAIxD,KAAM,OACtB2kB,OACA3kB,KAAM,KAAQ,GACjB,CA0DO,WAAAuwC,CAAav5B,GACnB,GAAKlU,KAAKssC,QACT,OAGD,GAAKtsC,KAAKmsC,QAASj4B,KAAmB,EAAUlU,KAAKmsC,QAASj4B,IAE7D,OAAOlU,KAAKmsC,QAASj4B,GAGtB,MAEM+4B,EAFSjtC,KAAKosC,gBAAgBc,eAAgBh5B,EAAclU,KAAKmsC,SAErC5X,MAAM,EAAIhhB,KAAgBA,IAAaW,IAGzE,OAAKvT,MAAMC,QAASqsC,GACZA,EAAoB,QAD5B,CAGD,CAmBO,aAAA/C,CAAewD,GAAS,GAC9B,GAAK1tC,KAAKssC,QACT,MAAO,GAGR,GAAKoB,EACJ,OAAO1tC,KAAKosC,gBAAgBlC,cAAelqC,KAAKmsC,SAKjD,OAFgBnsC,KAAKwtC,mBAENxwC,KAAK,EAAIjG,KAAWA,GACpC,CAKO,KAAAgb,GACN/R,KAAKmsC,QAAU,CAAC,CACjB,CAKO,gBAAAqB,GACN,MAAM73B,EAAoC,GAEpC1e,EAAOD,OAAOC,KAAM+I,KAAKmsC,SAE/B,UAAYp1C,KAAOE,EAClB0e,EAAO/V,QAASI,KAAKosC,gBAAgBc,eAAgBn2C,EAAKiJ,KAAKmsC,UAGhE,OAAOx2B,CACR,CAKQ,wBAAA23B,CAA0B7tC,GACjC,MAAMkuC,EAAYluC,EAAK1C,MAAO,KAG9B,KAFoB4wC,EAAUr1C,OAAS,GAGtC,OAGD,MAAMs1C,EAAaD,EAAUnmC,OAAQ,EAAGmmC,EAAUr1C,OAAS,GAAI4E,KAAM,KAE/D2wC,EAAe,GAAK7tC,KAAKmsC,QAASyB,GAExC,IAAMC,EACL,QAGsB72C,OAAOC,KAAM42C,GAAev1C,QAGlD0H,KAAKiG,OAAQ2nC,EAEf,EAMM,MAAME,GACKC,aACAC,YACAC,UACAC,aAOjB,WAAAnsC,GACC/B,KAAK+tC,aAAe,IAAIr8B,IACxB1R,KAAKguC,YAAc,IAAIt8B,IACvB1R,KAAKiuC,UAAY,IAAIv8B,IACrB1R,KAAKkuC,aAAe,IAAIx8B,GACzB,CAmBO,gBAAAs7B,CAAkBhrC,EAAc2U,EAA2B2kB,GACjE,GAAK,EAAU3kB,GACdw3B,GAAkB7S,EAAQ+R,GAAQrrC,GAAQ2U,QAK3C,GAAK3W,KAAK+tC,aAAa9/B,IAAKjM,GAAS,CACpC,MAAMosC,EAAapuC,KAAK+tC,aAAa3lC,IAAKpG,IAEpC,KAAEvC,EAAI,MAAEjH,GAAU41C,EAAYz3B,GAEpCw3B,GAAkB7S,EAAQ77B,EAAMjH,EACjC,MACC21C,GAAkB7S,EAAQt5B,EAAM2U,EAElC,CAuBO,aAAA42B,CAAevrC,EAA0Bs5B,GAC/C,IAAMt5B,EACL,OAAO,GAAO,CAAC,EAAGs5B,GAInB,QAAwB,IAAnBA,EAAQt5B,GACZ,OAAOs5B,EAAQt5B,GAGhB,GAAKhC,KAAKguC,YAAY//B,IAAKjM,GAAS,CACnC,MAAMqsC,EAAYruC,KAAKguC,YAAY5lC,IAAKpG,GAExC,GAA0B,iBAAdqsC,EACX,OAAO,GAAK/S,EAAQ+S,GAGrB,MAAM71C,EAAQ61C,EAAWrsC,EAAMs5B,GAE/B,GAAK9iC,EACJ,OAAOA,CAET,CAEA,OAAO,GAAK8iC,EAAQ+R,GAAQrrC,GAC7B,CAoCO,cAAAkrC,CAAgBlrC,EAAcs5B,GACpC,MAAMgT,EAAkBtuC,KAAKutC,cAAevrC,EAAMs5B,GAGlD,QAAyB,IAApBgT,EACJ,MAAO,GAGR,GAAKtuC,KAAKiuC,UAAUhgC,IAAKjM,GAAS,CAGjC,OAFgBhC,KAAKiuC,UAAU7lC,IAAKpG,EAE7BusC,CAASD,EACjB,CAEA,MAAO,CAAE,CAAEtsC,EAAMssC,GAClB,CAOO,aAAApE,CAAe5O,GAErB,MAAMkT,EAAqB7tC,MAAMrB,KAAMU,KAAKkuC,aAAaj3C,QAAS8O,QAAQ/D,IACzE,MAAMqD,EAAQrF,KAAKutC,cAAevrC,EAAMs5B,GAExC,OAAKj2B,GAAyB,iBAATA,EACbrO,OAAOC,KAAMoO,GAAQ/M,OAGtB+M,CAAK,IAKPopC,EAAoB,IAAI16B,IAAK,IAC/By6B,KACAx3C,OAAOC,KAAMqkC,KAGjB,OAAO36B,MAAMrB,KAAMmvC,EACpB,CAgBO,gBAAAC,CAAkB1sC,GACxB,OAAOhC,KAAKkuC,aAAa9lC,IAAKpG,IAAU,EACzC,CAwDO,aAAA2sC,CAAe3sC,EAAc2N,GACnC3P,KAAK+tC,aAAan8B,IAAK5P,EAAM2N,EAC9B,CA8CO,YAAAi/B,CAAc5sC,EAAc6sC,GAClC7uC,KAAKguC,YAAYp8B,IAAK5P,EAAM6sC,EAC7B,CAsCO,UAAAC,CAAY9sC,EAAc2N,GAChC3P,KAAKiuC,UAAUr8B,IAAK5P,EAAM2N,EAC3B,CAuBO,gBAAAo/B,CAAkBC,EAAuBC,GAC/CjvC,KAAKkvC,eAAgBF,EAAeC,GAEpC,UAAYE,KAAYF,EACvBjvC,KAAKkvC,eAAgBC,EAAU,CAAEH,GAEnC,CAKQ,cAAAE,CAAgBltC,EAAcitC,GAC/BjvC,KAAKkuC,aAAajgC,IAAKjM,IAC5BhC,KAAKkuC,aAAat8B,IAAK5P,EAAM,IAG9BhC,KAAKkuC,aAAa9lC,IAAKpG,GAAQpC,QAASqvC,EACzC,EAqFD,SAAS5B,GAAQrrC,GAChB,OAAOA,EAAK8U,QAAS,IAAK,IAC3B,CAKA,SAASq3B,GAAkBiB,EAAsBC,EAAoBjC,GACpE,IAAIkC,EAAalC,EAEZ,EAAUA,KACdkC,EAAa,GAAO,CAAC,EAAG,GAAKF,EAAcC,GAAcjC,IAG1D,GAAKgC,EAAcC,EAAYC,EAChC,CCz4Be,MAAMC,WAAgB,GAIpBvtC,KAaAwtC,0BAA2C,GAK1CC,OAKAC,UAKAC,SAKAxD,QAMAyD,kBAAoB,IAAIl+B,IAmBzC,WAAA3P,CACCyB,EACAxB,EACA6tC,EACA33B,GAeA,GAbArK,MAAOrK,GAEPxD,KAAKgC,KAAOA,EAEZhC,KAAKyvC,OAiwBP,SAA0BI,GACzB,MAAMC,EAAWxZ,GAAOuZ,GAExB,UAAc94C,EAAKyB,KAAWs3C,EACd,OAAVt3C,EACJs3C,EAASh+B,OAAQ/a,GACU,iBAATyB,GAClBs3C,EAASl+B,IAAK7a,EAAK2kB,OAAQljB,IAI7B,OAAOs3C,CACR,CA7wBgBC,CAAiBF,GAC/B7vC,KAAK0vC,UAAY,GAEZx3B,GACJlY,KAAKgwC,aAAc,EAAG93B,GAGvBlY,KAAK2vC,SAAW,IAAI57B,IAEf/T,KAAKyvC,OAAOxhC,IAAK,SAAY,CAEjC,MAAMgiC,EAAcjwC,KAAKyvC,OAAOrnC,IAAK,SACrC8nC,GAAclwC,KAAK2vC,SAAUM,GAC7BjwC,KAAKyvC,OAAO39B,OAAQ,QACrB,CAEA9R,KAAKmsC,QAAU,IAAID,GAAWlsC,KAAKwD,SAAS2sC,iBAEvCnwC,KAAKyvC,OAAOxhC,IAAK,WAErBjO,KAAKmsC,QAAQI,MAAOvsC,KAAKyvC,OAAOrnC,IAAK,UAErCpI,KAAKyvC,OAAO39B,OAAQ,SAEtB,CAKA,cAAW80B,GACV,OAAO5mC,KAAK0vC,UAAUp3C,MACvB,CAKA,WAAWg0C,GACV,OAAiC,IAA1BtsC,KAAK0vC,UAAUp3C,MACvB,CAQO,QAAA6uC,CAAUviC,GAChB,OAAO5E,KAAK0vC,UAAW9qC,EACxB,CAQO,aAAA0iC,CAAenoC,GACrB,OAAOa,KAAK0vC,UAAUjmC,QAAStK,EAChC,CAOO,WAAA2nC,GACN,OAAO9mC,KAAK0vC,UAAW5uC,OAAOC,WAC/B,CAOA,iBAAQ6oC,GACF5pC,KAAK2vC,SAAS37B,KAAO,SACnB,SAGDhU,KAAKmsC,QAAQG,eACZ,eAGAtsC,KAAKyvC,OAAOx4C,MACpB,CAQA,cAAQm5C,SACApwC,KAAKyvC,OAAOr2B,UAEdpZ,KAAK2vC,SAAS37B,KAAO,SACnB,CAAE,QAAShU,KAAK06B,aAAc,WAG/B16B,KAAKmsC,QAAQG,eACZ,CAAE,QAAStsC,KAAK06B,aAAc,UAEtC,CAQO,YAAAA,CAAc3jC,GACpB,GAAY,SAAPA,EACJ,OAAKiJ,KAAK2vC,SAAS37B,KAAO,EAClB,IAAKhU,KAAK2vC,UAAWzyC,KAAM,UAGnC,EAGD,GAAY,SAAPnG,EAAiB,CACrB,MAAMy1C,EAAcxsC,KAAKmsC,QAAQzvC,WAEjC,MAAsB,IAAf8vC,OAAoB,EAAYA,CACxC,CAEA,OAAOxsC,KAAKyvC,OAAOrnC,IAAKrR,EACzB,CAQO,YAAAs5C,CAAct5C,GACpB,MAAY,SAAPA,EACGiJ,KAAK2vC,SAAS37B,KAAO,EAGjB,SAAPjd,GACIiJ,KAAKmsC,QAAQG,QAGftsC,KAAKyvC,OAAOxhC,IAAKlX,EACzB,CAOO,SAAA2xC,CAAW4H,GACjB,KAAQA,aAAwBf,IAC/B,OAAO,EAIR,GAAKvvC,OAASswC,EACb,OAAO,EAIR,GAAKtwC,KAAKgC,MAAQsuC,EAAatuC,KAC9B,OAAO,EAIR,GAAKhC,KAAKyvC,OAAOz7B,OAASs8B,EAAab,OAAOz7B,MAAQhU,KAAK2vC,SAAS37B,OAASs8B,EAAaX,SAAS37B,MAClGhU,KAAKmsC,QAAQn4B,OAASs8B,EAAanE,QAAQn4B,KAC3C,OAAO,EAIR,UAAcjd,EAAKyB,KAAWwH,KAAKyvC,OAClC,IAAMa,EAAab,OAAOxhC,IAAKlX,IAASu5C,EAAab,OAAOrnC,IAAKrR,KAAUyB,EAC1E,OAAO,EAKT,UAAY+3C,KAAavwC,KAAK2vC,SAC7B,IAAMW,EAAaX,SAAS1hC,IAAKsiC,GAChC,OAAO,EAKT,UAAYh9B,KAAYvT,KAAKmsC,QAAQjC,gBACpC,IACEoG,EAAanE,QAAQl+B,IAAKsF,IAC3B+8B,EAAanE,QAAQsB,YAAal6B,KAAevT,KAAKmsC,QAAQsB,YAAal6B,GAE3E,OAAO,EAIT,OAAO,CACR,CAWO,QAAA8yB,IAAakK,GACnB,UAAYvuC,KAAQuuC,EACnB,IAAMvwC,KAAK2vC,SAAS1hC,IAAKjM,GACxB,OAAO,EAIT,OAAO,CACR,CAKO,aAAAgoC,GACN,OAAOhqC,KAAK2vC,SAAS14C,MACtB,CA2BO,QAAAkzC,CAAU52B,GAChB,OAAOvT,KAAKmsC,QAAQsB,YAAal6B,EAClC,CAoCO,kBAAAi9B,CAAoBj9B,GAC1B,OAAOvT,KAAKmsC,QAAQoB,cAAeh6B,EACpC,CAOO,aAAA22B,CAAewD,GACrB,OAAO1tC,KAAKmsC,QAAQjC,cAAewD,EACpC,CAWO,QAAA+C,IAAal9B,GACnB,UAAYvR,KAAQuR,EACnB,IAAMvT,KAAKmsC,QAAQl+B,IAAKjM,GACvB,OAAO,EAIT,OAAO,CACR,CAUO,YAAA0uC,IAAiBhH,GACvB,MAAMiH,EAAU,IAAIzH,MAAYQ,GAChC,IAAI9qC,EAASoB,KAAKpB,OAElB,KAAQA,IAAWA,EAAO2P,GAAI,qBAAuB,CACpD,GAAKoiC,EAAQ9zC,MAAO+B,GACnB,OAAOA,EAGRA,EAASA,EAAOA,MACjB,CAEA,OAAO,IACR,CAKO,iBAAAgyC,CAAmB75C,GACzB,OAAOiJ,KAAK4vC,kBAAkBxnC,IAAKrR,EACpC,CAMA,oBAAQ85C,SACA7wC,KAAK4vC,kBAAkBx2B,SAC/B,CA2BO,WAAA03B,GACN,MAAM/G,EAAUppC,MAAMrB,KAAMU,KAAK2vC,UAAW9tB,OAAO3kB,KAAM,KACnDo+B,EAASt7B,KAAKmsC,QAAQzvC,WACtB6I,EAAa5E,MAAMrB,KAAMU,KAAKyvC,QAASzyC,KAAKxC,GAAK,GAAIA,EAAG,OAAUA,EAAG,QAAUqnB,OAAO3kB,KAAM,KAElG,OAAO8C,KAAKgC,MACE,IAAX+nC,EAAgB,GAAK,WAAYA,OAChCzO,EAAc,WAAYA,KAAjB,KACI,IAAd/1B,EAAmB,GAAK,IAAKA,IACjC,CAUO,2BAAAwrC,CAA6BC,GACnC,OAAOhxC,KAAKwvC,0BAA0Brd,SAAU6e,EACjD,CAUO,MAAApI,CAAQqI,GAAO,GACrB,MAAMC,EAA6B,GAEnC,GAAKD,EACJ,UAAY34B,KAAStY,KAAK8mC,cACzBoK,EAActxC,KAAM0Y,EAAMswB,OAAQqI,IAKpC,MAAME,EAAS,IAAMnxC,KAAK+B,YAAsB/B,KAAKwD,SAAUxD,KAAKgC,KAAMhC,KAAKyvC,OAAQyB,GAkBvF,OAdAC,EAAOxB,SAAW,IAAI57B,IAAK/T,KAAK2vC,UAChCwB,EAAOhF,QAAQv6B,IAAK5R,KAAKmsC,QAAQoB,iBAGjC4D,EAAOvB,kBAAoB,IAAIl+B,IAAK1R,KAAK4vC,mBAKzCuB,EAAOC,gBAAkBpxC,KAAKoxC,gBAG9BD,EAAO3B,0BAA4BxvC,KAAKwvC,0BAEjC2B,CACR,CAYO,YAAAE,CAAczd,GACpB,OAAO5zB,KAAKgwC,aAAchwC,KAAK4mC,WAAYhT,EAC5C,CAaO,YAAAoc,CAAcprC,EAAegvB,GACnC5zB,KAAKooC,YAAa,WAAYpoC,MAC9B,IAAI2E,EAAQ,EAEZ,MAAM2sC,EAqUR,SAAoB9tC,EAAoB8tC,GAEvC,GAAqB,iBAATA,EACX,MAAO,CAAE,IAAI/I,GAAM/kC,EAAU8tC,IAGxBh6B,GAAYg6B,KACjBA,EAAQ,CAAEA,IAIX,OAAO3wC,MAAMrB,KAAMgyC,GACjBt0C,KAAKmC,GACe,iBAARA,EACJ,IAAIopC,GAAM/kC,EAAUrE,GAGvBA,aAAgB0pC,GACb,IAAIN,GAAM/kC,EAAUrE,EAAK2D,MAG1B3D,GAEV,CA5VgB,CAAWa,KAAKwD,SAAUowB,GAExC,UAAYz0B,KAAQmyC,EAEE,OAAhBnyC,EAAKP,QACTO,EAAKk1B,UAGJl1B,EAAcP,OAASoB,KACvBb,EAAcqE,SAAWxD,KAAKwD,SAEhCxD,KAAK0vC,UAAUloC,OAAQ5C,EAAO,EAAGzF,GACjCyF,IACAD,IAGD,OAAOA,CACR,CAYO,eAAAwjC,CAAiBvjC,EAAeyG,EAAkB,GACxDrL,KAAKooC,YAAa,WAAYpoC,MAE9B,QAAUxF,EAAIoK,EAAOpK,EAAIoK,EAAQyG,EAAS7Q,IACvCwF,KAAK0vC,UAAWl1C,GAAaoE,OAAS,KAGzC,OAAOoB,KAAK0vC,UAAUloC,OAAQ5C,EAAOyG,EACtC,CAWO,aAAAkmC,CAAex6C,EAAayB,GAClC,MAAMg5C,EAAc91B,OAAQljB,GAE5BwH,KAAKooC,YAAa,aAAcpoC,MAEpB,SAAPjJ,EACJm5C,GAAclwC,KAAK2vC,SAAU6B,GACX,SAAPz6C,EACXiJ,KAAKmsC,QAAQI,MAAOiF,GAEpBxxC,KAAKyvC,OAAO79B,IAAK7a,EAAKy6C,EAExB,CAWO,gBAAAC,CAAkB16C,GAIxB,OAHAiJ,KAAKooC,YAAa,aAAcpoC,MAGpB,SAAPjJ,EACCiJ,KAAK2vC,SAAS37B,KAAO,IACzBhU,KAAK2vC,SAAS59B,SAEP,GAOG,SAAPhb,GACEiJ,KAAKmsC,QAAQG,UAClBtsC,KAAKmsC,QAAQp6B,SAEN,GAOF/R,KAAKyvC,OAAO39B,OAAQ/a,EAC5B,CAcO,SAAA26C,CAAWnB,GACjBvwC,KAAKooC,YAAa,aAAcpoC,MAEhC,UAAYgC,KAAQ+tB,GAASwgB,GAC5BvwC,KAAK2vC,SAASzhC,IAAKlM,EAErB,CAcO,YAAA2vC,CAAcpB,GACpBvwC,KAAKooC,YAAa,aAAcpoC,MAEhC,UAAYgC,KAAQ+tB,GAASwgB,GAC5BvwC,KAAK2vC,SAAS79B,OAAQ9P,EAExB,CA4CO,SAAA4vC,CAAWr+B,EAA2C/a,GAC5DwH,KAAKooC,YAAa,aAAcpoC,MAER,iBAAZuT,EACXvT,KAAKmsC,QAAQv6B,IAAK2B,GAElBvT,KAAKmsC,QAAQv6B,IAAK2B,EAAU/a,EAE9B,CAkBO,YAAAq5C,CAAct+B,GACpBvT,KAAKooC,YAAa,aAAcpoC,MAEhC,UAAYgC,KAAQ+tB,GAASxc,GAC5BvT,KAAKmsC,QAAQlmC,OAAQjE,EAEvB,CASO,kBAAA8vC,CAAoB/6C,EAAsByB,GAChDwH,KAAK4vC,kBAAkBh+B,IAAK7a,EAAKyB,EAClC,CASO,qBAAAu5C,CAAuBh7C,GAC7B,OAAOiJ,KAAK4vC,kBAAkB99B,OAAQ/a,EACvC,EAgFD,SAASm5C,GAAc8B,EAAyBC,GAC/C,MAAMC,EAAaD,EAAcl1C,MAAO,OACxCi1C,EAAWjgC,QACXmgC,EAAWt0C,SAASoE,GAAQgwC,EAAW9jC,IAAKlM,IAC7C,CAhDAutC,GAAQ1tC,UAAU0M,GAAK,SAAUpD,EAAcnJ,GAC9C,OAAMA,EAKEA,IAAShC,KAAKgC,OAAmB,YAATmJ,GAA+B,iBAATA,GAJrC,YAATA,GAA+B,iBAATA,GAEnB,SAATA,GAA4B,cAATA,CAItB,ECt0Be,MAAMgnC,WAAyB5C,GAY7C,WAAAxtC,CACCyB,EACAxB,EACA6tC,EACA33B,GAEArK,MAAOrK,EAAUxB,EAAM6tC,EAAO33B,GAE9BlY,KAAKoxC,gBAAkBA,EACxB,EAyBM,SAASA,KACf,MAAMl5B,EAAW,IAAKlY,KAAK8mC,eACrBsL,EAAYl6B,EAAUlY,KAAK4mC,WAAa,GAG9C,GAAKwL,GAAaA,EAAU7jC,GAAI,UAAW,MAC1C,OAAOvO,KAAK4mC,WAGb,UAAYtuB,KAASJ,EAEpB,IAAMI,EAAM/J,GAAI,aACf,OAAO,KAKT,OAAOvO,KAAK4mC,UACb,CAtCAuL,GAAiBtwC,UAAU0M,GAAK,SAAUpD,EAAcnJ,GACvD,OAAMA,EAMEA,IAAShC,KAAKgC,OACX,qBAATmJ,GAAwC,0BAATA,GAEtB,YAATA,GAA+B,iBAATA,GARP,qBAATA,GAAwC,0BAATA,GAE5B,YAATA,GAA+B,iBAATA,GACb,SAATA,GAA4B,cAATA,CAQtB,EC9Ce,MAAMknC,WAAwC/+B,EAAiB6+B,KAwC7E,WAAApwC,CACCyB,EACAxB,EACAuD,EACA2S,GAEArK,MAAOrK,EAAUxB,EAAMuD,EAAY2S,GAEnClY,KAAK4R,IAAK,cAAc,GACxB5R,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,mBAAe,GAEzB5R,KAAKgH,KAAM,cAAezH,GAAIiE,GAE9BxD,KAAKgH,KAAM,aAAczH,GACxBiE,EACA,aACAsyB,GAAaA,GAAatyB,EAASm9B,UAAU2R,iBAAmBtyC,OAIjEA,KAAK4P,SAAoCpM,EAASm9B,UAAW,UAAU,KACtE3gC,KAAK81B,UAAYtyB,EAASsyB,WAAatyB,EAASm9B,UAAU2R,iBAAmBtyC,IAAI,GAEnF,CAEO,OAAAioB,GACNjoB,KAAK+P,eACN,EAKDsiC,GAAgBxwC,UAAU0M,GAAK,SAAUpD,EAAcnJ,GACtD,OAAMA,EAOEA,IAAShC,KAAKgC,OACX,oBAATmJ,GAAuC,yBAATA,GAErB,qBAATA,GAAwC,0BAATA,GACtB,YAATA,GAA+B,iBAATA,GAVP,oBAATA,GAAuC,yBAATA,GAE3B,qBAATA,GAAwC,0BAATA,GACtB,YAATA,GAA+B,iBAATA,GACb,SAATA,GAA4B,cAATA,CAStB,ECpGA,MAAMonC,GAAiBzxC,OAAQ,YAOhB,MAAM0xC,WAA4BH,GAOhD,WAAAtwC,CACCyB,EACAxB,GAEA6L,MAAOrK,EAAUxB,GAEjBhC,KAAK8gC,SAAW,MACjB,CAQA,YAAWA,GACV,OAAO9gC,KAAK4wC,kBAAmB2B,GAChC,CAEA,YAAWzR,CAAUA,GACpB9gC,KAAK8xC,mBAAoBS,GAAgBzR,EAC1C,CAWA,SAAW2R,CAAOzwC,GACfhC,KAAcgC,KAAOA,CACxB,EAKDwwC,GAAoB3wC,UAAU0M,GAAK,SAAUpD,EAAcnJ,GAC1D,OAAMA,EAQEA,IAAShC,KAAKgC,OACX,gBAATmJ,GAAmC,qBAATA,GAEjB,oBAATA,GAAuC,yBAATA,GACrB,qBAATA,GAAwC,0BAATA,GACtB,YAATA,GAA+B,iBAATA,GAZP,gBAATA,GAAmC,qBAATA,GAEvB,oBAATA,GAAuC,yBAATA,GACrB,qBAATA,GAAwC,0BAATA,GACtB,YAATA,GAA+B,iBAATA,GACb,SAATA,GAA4B,cAATA,CAUtB,EC5De,MAAMunC,GAIJlsB,UAUAmsB,WAMAC,iBAMAC,QAOAC,iBAMRC,UAKSC,qBAKAC,mBAOjB,WAAAlxC,CAAawC,EAA6B,CAAC,GAC1C,IAAMA,EAAQouC,aAAepuC,EAAQ2uC,cAMpC,MAAM,IAAIxlC,EACT,qCACA,MAIF,GAAKnJ,EAAQiiB,WAAkC,WAArBjiB,EAAQiiB,WAA+C,YAArBjiB,EAAQiiB,UAMnE,MAAM,IAAI9Y,EAAe,qCAAsCnJ,EAAQ2uC,cAAe,CAAE1sB,UAAWjiB,EAAQiiB,YAG5GxmB,KAAK2yC,WAAapuC,EAAQouC,YAAc,KAEnCpuC,EAAQ2uC,cACZlzC,KAAK+yC,UAAYI,GAASC,UAAW7uC,EAAQ2uC,eAE7ClzC,KAAK+yC,UAAYI,GAASC,UAAW7uC,EAAQouC,WAAkC,YAArBpuC,EAAQiiB,UAA0B,MAAQ,UAGrGxmB,KAAKwmB,UAAYjiB,EAAQiiB,WAAa,UACtCxmB,KAAK4yC,mBAAqBruC,EAAQquC,iBAClC5yC,KAAK6yC,UAAYtuC,EAAQsuC,QACzB7yC,KAAK8yC,mBAAqBvuC,EAAQuuC,iBAElC9yC,KAAKgzC,qBAAuBhzC,KAAK2yC,WAAa3yC,KAAK2yC,WAAWliB,MAAM7xB,OAAS,KAC7EoB,KAAKizC,mBAAqBjzC,KAAK2yC,WAAa3yC,KAAK2yC,WAAW5G,IAAIntC,OAAS,IAC1E,CAKA,CAASkC,OAAOC,YACf,OAAOf,IACR,CAMA,YAAWynB,GACV,OAAOznB,KAAK+yC,SACb,CAgBO,IAAAM,CAAMA,GACZ,IAAIC,EACAC,EAEJ,GACCA,EAAevzC,KAAKynB,SACpB6rB,EAAatzC,KAAKsB,cACRgyC,EAAW/xC,MAAQ8xC,EAAMC,EAAW96C,QAEzC86C,EAAW/xC,OAChBvB,KAAK+yC,UAAYQ,EAEnB,CAQO,IAAAjyC,GACN,MAAuB,WAAlBtB,KAAKwmB,UACFxmB,KAAKwzC,QAELxzC,KAAKyzC,WAEd,CAKQ,KAAAD,GACP,IAAI/rB,EAAWznB,KAAKynB,SAASzD,QAC7B,MAAM0vB,EAAmB1zC,KAAKynB,SACxB7oB,EAAS6oB,EAAS7oB,OAGxB,GAAuB,OAAlBA,EAAOA,QAAmB6oB,EAASpL,SAAazd,EAAgBgoC,WACpE,MAAO,CAAErlC,MAAM,EAAM/I,WAAO,GAI7B,GAAKoG,IAAWoB,KAAKizC,oBAAsBxrB,EAASpL,QAAUrc,KAAK2yC,WAAY5G,IAAI1vB,OAClF,MAAO,CAAE9a,MAAM,EAAM/I,WAAO,GAI7B,IAAI2G,EAGJ,GAAKP,aAAkB2pC,GAAO,CAC7B,GAAK9gB,EAASksB,QAIb,OAFA3zC,KAAK+yC,UAAYI,GAASS,aAAch1C,GAEjCoB,KAAKwzC,QAGbr0C,EAAOP,EAAOkE,KAAM2kB,EAASpL,OAC9B,MACCld,EAASP,EAAuCuoC,SAAU1f,EAASpL,QAGpE,GAAKld,aAAgBowC,GAAU,CAC9B,GAAMvvC,KAAK6yC,QAEJ,CAEN,GAAK7yC,KAAK2yC,YAAc3yC,KAAK2yC,WAAW5G,IAAIhE,SAAUtgB,GACrD,MAAO,CAAElmB,MAAM,EAAM/I,WAAO,GAG7BivB,EAASpL,QACV,MARCoL,EAAW,IAAI0rB,GAAUh0C,EAAM,GAYhC,OAFAa,KAAK+yC,UAAYtrB,EAEVznB,KAAK6zC,mBAAoB,eAAgB10C,EAAMu0C,EAAkBjsB,EAAU,EACnF,CAEA,GAAKtoB,aAAgBopC,GAAO,CAC3B,GAAKvoC,KAAK4yC,iBAIT,OAHAnrB,EAAW,IAAI0rB,GAAUh0C,EAAM,GAC/Ba,KAAK+yC,UAAYtrB,EAEVznB,KAAKwzC,QAGb,IACIvzC,EADA6zC,EAAkB30C,EAAK2D,KAAKxK,OAgBhC,OAZK6G,GAAQa,KAAKizC,oBACjBa,EAAkB9zC,KAAK2yC,WAAY5G,IAAI1vB,OACvCpc,EAAO,IAAI4oC,GAAW1pC,EAAM,EAAG20C,GAC/BrsB,EAAW0rB,GAASS,aAAc3zC,KAElCA,EAAO,IAAI4oC,GAAW1pC,EAAM,EAAGA,EAAK2D,KAAKxK,QAEzCmvB,EAASpL,UAGVrc,KAAK+yC,UAAYtrB,EAEVznB,KAAK6zC,mBAAoB,OAAQ5zC,EAAMyzC,EAAkBjsB,EAAUqsB,EAC3E,CAEA,GAAoB,iBAAR30C,EAAmB,CAC9B,IAAI40C,EAEJ,GAAK/zC,KAAK4yC,iBACTmB,EAAa,MACP,CAINA,GAFkBn1C,IAAWoB,KAAKizC,mBAAqBjzC,KAAK2yC,WAAY5G,IAAI1vB,OAAWzd,EAAiBkE,KAAKxK,QAEpFmvB,EAASpL,MACnC,CAEA,MAAM23B,EAAY,IAAInL,GAAWjqC,EAAgB6oB,EAASpL,OAAQ03B,GAKlE,OAHAtsB,EAASpL,QAAU03B,EACnB/zC,KAAK+yC,UAAYtrB,EAEVznB,KAAK6zC,mBAAoB,OAAQG,EAAWN,EAAkBjsB,EAAUssB,EAChF,CAMA,OAHAtsB,EAAW0rB,GAASS,aAAch1C,GAClCoB,KAAK+yC,UAAYtrB,EAEZznB,KAAK8yC,iBACF9yC,KAAKwzC,QAGNxzC,KAAK6zC,mBAAoB,aAAcj1C,EAAe80C,EAAkBjsB,EAChF,CAKQ,SAAAgsB,GACP,IAAIhsB,EAAWznB,KAAKynB,SAASzD,QAC7B,MAAM0vB,EAAmB1zC,KAAKynB,SACxB7oB,EAAS6oB,EAAS7oB,OAGxB,GAAuB,OAAlBA,EAAOA,QAAuC,IAApB6oB,EAASpL,OACvC,MAAO,CAAE9a,MAAM,EAAM/I,WAAO,GAI7B,GAAKoG,GAAUoB,KAAKgzC,sBAAwBvrB,EAASpL,QAAUrc,KAAK2yC,WAAYliB,MAAMpU,OACrF,MAAO,CAAE9a,MAAM,EAAM/I,WAAO,GAI7B,IAAI2G,EAGJ,GAAKP,aAAkB2pC,GAAO,CAC7B,GAAK9gB,EAASwsB,UAIb,OAFAj0C,KAAK+yC,UAAYI,GAASe,cAAet1C,GAElCoB,KAAKyzC,YAGbt0C,EAAOP,EAAOkE,KAAM2kB,EAASpL,OAAS,EACvC,MACCld,EAASP,EAAuCuoC,SAAU1f,EAASpL,OAAS,GAG7E,GAAKld,aAAgBowC,GACpB,OAAKvvC,KAAK6yC,SACTprB,EAASpL,SACTrc,KAAK+yC,UAAYtrB,EAEVznB,KAAK6zC,mBAAoB,eAAgB10C,EAAMu0C,EAAkBjsB,EAAU,KAGnFA,EAAW,IAAI0rB,GAAUh0C,EAAMA,EAAKynC,YACpC5mC,KAAK+yC,UAAYtrB,EAEZznB,KAAK8yC,iBACF9yC,KAAKyzC,YAGNzzC,KAAK6zC,mBAAoB,aAAc10C,EAAMu0C,EAAkBjsB,IAGvE,GAAKtoB,aAAgBopC,GAAO,CAC3B,GAAKvoC,KAAK4yC,iBAIT,OAHAnrB,EAAW,IAAI0rB,GAAUh0C,EAAMA,EAAK2D,KAAKxK,QACzC0H,KAAK+yC,UAAYtrB,EAEVznB,KAAKyzC,YAGb,IACIxzC,EADA6zC,EAAkB30C,EAAK2D,KAAKxK,OAIhC,GAAK6G,GAAQa,KAAKgzC,qBAAuB,CACxC,MAAM32B,EAASrc,KAAK2yC,WAAYliB,MAAMpU,OAEtCpc,EAAO,IAAI4oC,GAAW1pC,EAAMkd,EAAQld,EAAK2D,KAAKxK,OAAS+jB,GACvDy3B,EAAkB7zC,EAAK6C,KAAKxK,OAC5BmvB,EAAW0rB,GAASe,cAAej0C,EACpC,MACCA,EAAO,IAAI4oC,GAAW1pC,EAAM,EAAGA,EAAK2D,KAAKxK,QAEzCmvB,EAASpL,SAKV,OAFArc,KAAK+yC,UAAYtrB,EAEVznB,KAAK6zC,mBAAoB,OAAQ5zC,EAAMyzC,EAAkBjsB,EAAUqsB,EAC3E,CAEA,GAAoB,iBAAR30C,EAAmB,CAC9B,IAAI40C,EAEJ,GAAM/zC,KAAK4yC,iBAMVmB,EAAa,MANgB,CAE7B,MAAMI,EAAcv1C,IAAWoB,KAAKgzC,qBAAuBhzC,KAAK2yC,WAAYliB,MAAMpU,OAAS,EAE3F03B,EAAatsB,EAASpL,OAAS83B,CAChC,CAIA1sB,EAASpL,QAAU03B,EAEnB,MAAMC,EAAY,IAAInL,GAAWjqC,EAAgB6oB,EAASpL,OAAQ03B,GAIlE,OAFA/zC,KAAK+yC,UAAYtrB,EAEVznB,KAAK6zC,mBAAoB,OAAQG,EAAWN,EAAkBjsB,EAAUssB,EAChF,CAMA,OAHAtsB,EAAW0rB,GAASe,cAAet1C,GACnCoB,KAAK+yC,UAAYtrB,EAEVznB,KAAK6zC,mBAAoB,eAAgBj1C,EAAmB80C,EAAkBjsB,EAAU,EAChG,CAWQ,kBAAAosB,CACP1oC,EACAlL,EACAyzC,EACAU,EACA97C,GA8BA,OAxBK2H,aAAgB4oC,KAEf5oC,EAAK8oC,aAAe9oC,EAAK6C,KAAKxK,QAAU2H,EAAK6oC,SAAShmC,KAAKxK,SACxC,WAAlB0H,KAAKwmB,WAA6BxmB,KAAK2yC,YAAc3yC,KAAK2yC,WAAW5G,IAAI1mB,QAASrlB,KAAKynB,UAK3FisB,EAAmBP,GAASS,aAAc3zC,EAAK6oC,WAJ/CsL,EAAejB,GAASS,aAAc3zC,EAAK6oC,UAE3C9oC,KAAK+yC,UAAYqB,IAOQ,IAAtBn0C,EAAK8oC,eACc,YAAlB/oC,KAAKwmB,WAA8BxmB,KAAK2yC,YAAc3yC,KAAK2yC,WAAWliB,MAAMpL,QAASrlB,KAAKynB,UAK9FisB,EAAmBP,GAASe,cAAej0C,EAAK6oC,WAJhDsL,EAAejB,GAASe,cAAej0C,EAAK6oC,UAE5C9oC,KAAK+yC,UAAYqB,KAOb,CACN7yC,MAAM,EACN/I,MAAO,CACN2S,OACAlL,OACAyzC,mBACAU,eACA97C,UAGH,ECnac,MAAM66C,WAAiB/L,GAIrBxoC,OAKTyd,OAQP,WAAAta,CAAanD,EAAiCyd,GAC7CxO,QAEA7N,KAAKpB,OAASA,EACdoB,KAAKqc,OAASA,CACf,CAMA,aAAWg4B,GACV,OAAKr0C,KAAKpB,OAAO2P,GAAI,SACb,KAGCvO,KAAKpB,OAAoBuoC,SAAUnnC,KAAKqc,SAAY,IAC9D,CAMA,cAAWi4B,GACV,OAAKt0C,KAAKpB,OAAO2P,GAAI,SACb,KAGCvO,KAAKpB,OAAoBuoC,SAAUnnC,KAAKqc,OAAS,IAAO,IAClE,CAKA,aAAW43B,GACV,OAAuB,IAAhBj0C,KAAKqc,MACb,CAKA,WAAWs3B,GACV,MAAMY,EAAYv0C,KAAKpB,OAAO2P,GAAI,SAAYvO,KAAKpB,OAAOkE,KAAKxK,OAAW0H,KAAKpB,OAAgBgoC,WAE/F,OAAO5mC,KAAKqc,SAAWk4B,CACxB,CAKA,QAAWj+C,GACV,OAAO0J,KAAKpB,OAAOtI,IACpB,CAMA,mBAAWg8C,GACV,IAAIkC,EAAWx0C,KAAKpB,OAEpB,OAAW41C,aAAoBnC,KAAoB,CAClD,IAAKmC,EAAS51C,OAGb,OAAO,KAFP41C,EAAWA,EAAS51C,MAItB,CAEA,OAAO41C,CACR,CAQO,YAAAC,CAAclnB,GACpB,MAAMmnB,EAAUvB,GAASC,UAAWpzC,MAE9Bqc,EAASq4B,EAAQr4B,OAASkR,EAGhC,OAFAmnB,EAAQr4B,OAASA,EAAS,EAAI,EAAIA,EAE3Bq4B,CACR,CAmBO,uBAAAC,CAAyBtB,EAA6C9uC,EAA6B,CAAC,GAC1GA,EAAQ2uC,cAAgBlzC,KAExB,MAAM40C,EAAa,IAAIlC,GAAYnuC,GAGnC,OAFAqwC,EAAWvB,KAAMA,GAEVuB,EAAWntB,QACnB,CAOO,YAAA+f,GACN,OAAKxnC,KAAKpB,OAAO2P,GAAI,oBACb,CAAEvO,KAAKpB,QAEPoB,KAAKpB,OAAO4oC,aAAc,CAAEE,aAAa,GAElD,CAMO,iBAAAE,CAAmBngB,GACzB,MAAMogB,EAAa7nC,KAAKwnC,eAClBM,EAAargB,EAAS+f,eAE5B,IAAIhtC,EAAI,EAER,KAAQqtC,EAAYrtC,IAAOstC,EAAYttC,IAAOqtC,EAAYrtC,IACzDA,IAGD,OAAa,IAANA,EAAU,KAAOqtC,EAAYrtC,EAAI,EACzC,CAQO,OAAA6qB,CAASwvB,GACf,OAAS70C,KAAKpB,QAAUi2C,EAAcj2C,QAAUoB,KAAKqc,QAAUw4B,EAAcx4B,MAC9E,CAYO,QAAA0rB,CAAU8M,GAChB,MAA4C,UAArC70C,KAAK80C,YAAaD,EAC1B,CAYO,OAAA3M,CAAS2M,GACf,MAA4C,SAArC70C,KAAK80C,YAAaD,EAC1B,CAQO,WAAAC,CAAaD,GACnB,GAAK70C,KAAK1J,OAASu+C,EAAcv+C,KAChC,MAAO,YAGR,GAAK0J,KAAKqlB,QAASwvB,GAClB,MAAO,OAIR,MAAM7M,EAAWhoC,KAAKpB,OAAO2P,GAAI,QAAWvO,KAAKpB,OAAO2oC,UAAY,GAC9DwN,EAAYF,EAAcj2C,OAAO2P,GAAI,QAAWsmC,EAAcj2C,OAAO2oC,UAAY,GAGvFS,EAASpoC,KAAMI,KAAKqc,QACpB04B,EAAUn1C,KAAMi1C,EAAcx4B,QAG9B,MAAMle,EAASkZ,GAAe2wB,EAAU+M,GAExC,OAAS52C,GACR,IAAK,SACJ,MAAO,SAER,IAAK,YACJ,MAAO,QAER,QAEC,OAAO6pC,EAAU7pC,GAAqB42C,EAAW52C,GAAqB,SAAW,QAEpF,CAOO,SAAA62C,CAAWzwC,EAA6B,CAAC,GAG/C,OAFAA,EAAQ2uC,cAAgBlzC,KAEjB,IAAI0yC,GAAYnuC,EACxB,CAKO,KAAAyf,GACN,OAAO,IAAImvB,GAAUnzC,KAAKpB,OAAQoB,KAAKqc,OACxC,CAkBA,gBAAc+2B,CAAW6B,EAAiC54B,GACzD,GAAK44B,aAA0B9B,GAC9B,OAAO,IAAInzC,KAAMi1C,EAAer2C,OAAQq2C,EAAe54B,QACjD,CACN,MAAMld,EAAO81C,EAEb,GAAe,OAAV54B,EACJA,EAASld,EAAKoP,GAAI,SAAYpP,EAAK2D,KAAKxK,OAAW6G,EAAcynC,eAC3D,IAAe,UAAVvqB,EACX,OAAOrc,KAAKk0C,cAAe/0C,GACrB,GAAe,SAAVkd,EACX,OAAOrc,KAAK4zC,aAAcz0C,GACpB,GAAgB,IAAXkd,IAAiBA,EAO5B,MAAM,IAAI3O,EAAe,wCAAyCvO,EACnE,CAEA,OAAO,IAAIg0C,GAAUh0C,EAAakd,EACnC,CACD,CAQA,mBAAcu3B,CAAc3zC,GAE3B,GAAKA,EAAKsO,GAAI,cACb,OAAO,IAAI4kC,GAAUlzC,EAAK6oC,SAAU7oC,EAAK8oC,aAAe9oC,EAAK6C,KAAKxK,QAGnE,IAAM2H,EAAKrB,OAOV,MAAM,IAAI8O,EAAe,2BAA4BzN,EAAM,CAAE3J,KAAM2J,IAGpE,OAAO,IAAIkzC,GAAUlzC,EAAKrB,OAAUqB,EAAK2E,MAAoB,EAC9D,CAQA,oBAAcsvC,CAAej0C,GAE5B,GAAKA,EAAKsO,GAAI,cACb,OAAO,IAAI4kC,GAAUlzC,EAAK6oC,SAAU7oC,EAAK8oC,cAG1C,IAAM9oC,EAAKrB,OAOV,MAAM,IAAI8O,EAAe,4BAA6BzN,EAAM,CAAE3J,KAAM2J,IAGrE,OAAO,IAAIkzC,GAAUlzC,EAAKrB,OAAQqB,EAAK2E,MACxC,EAKDuuC,GAAStxC,UAAU0M,GAAK,SAAUpD,GACjC,MAAgB,aAATA,GAAgC,kBAATA,CAC/B,ECnWe,MAAM+pC,WAAc9N,GAIlB3W,MAKAsb,IAUhB,WAAAhqC,CAAa0uB,EAAiBsb,EAAuB,MACpDl+B,QAEA7N,KAAKywB,MAAQA,EAAMzM,QACnBhkB,KAAK+rC,IAAMA,EAAMA,EAAI/nB,QAAUyM,EAAMzM,OACtC,CAaA,EAAUljB,OAAOC,kBACT,IAAI2xC,GAAY,CAAEC,WAAY3yC,KAAM8yC,kBAAkB,GAC9D,CAKA,eAAWqC,GACV,OAAOn1C,KAAKywB,MAAMpL,QAASrlB,KAAK+rC,IACjC,CAMA,UAAWxtB,GACV,OAAOve,KAAKywB,MAAM7xB,SAAWoB,KAAK+rC,IAAIntC,MACvC,CAKA,QAAWtI,GACV,OAAO0J,KAAKywB,MAAMn6B,IACnB,CAqBO,WAAA8+C,GACN,IAAI3kB,EAAQzwB,KAAKywB,MAAMkkB,wBAAyBU,GAAiB,CAAE7uB,UAAW,aAC1EulB,EAAM/rC,KAAK+rC,IAAI4I,wBAAyBU,IAW5C,OARK5kB,EAAM7xB,OAAO2P,GAAI,UAAakiB,EAAMwjB,YACxCxjB,EAAQ0iB,GAASe,cAAezjB,EAAM7xB,SAGlCmtC,EAAIntC,OAAO2P,GAAI,UAAaw9B,EAAI4H,UACpC5H,EAAMoH,GAASS,aAAc7H,EAAIntC,SAG3B,IAAIs2C,GAAOzkB,EAAOsb,EAC1B,CAqBO,UAAAuJ,GACN,IAAI7kB,EAAQzwB,KAAKywB,MAAMkkB,wBAAyBU,IAEhD,GAAK5kB,EAAMyX,QAASloC,KAAK+rC,MAAStb,EAAMpL,QAASrlB,KAAK+rC,KACrD,OAAO,IAAImJ,GAAOzkB,EAAOA,GAG1B,IAAIsb,EAAM/rC,KAAK+rC,IAAI4I,wBAAyBU,GAAiB,CAAE7uB,UAAW,aAC1E,MAAM+uB,EAAiB9kB,EAAM4jB,UACvBmB,EAAgBzJ,EAAIuI,WAW1B,OARKiB,GAAkBA,EAAehnC,GAAI,WACzCkiB,EAAQ,IAAI0iB,GAAUoC,EAAgB,IAGlCC,GAAiBA,EAAcjnC,GAAI,WACvCw9B,EAAM,IAAIoH,GAAUqC,EAAeA,EAAc1yC,KAAKxK,SAGhD,IAAI48C,GAAOzkB,EAAOsb,EAC1B,CAQO,OAAA1mB,CAASowB,GACf,OAAOz1C,MAAQy1C,GAAgBz1C,KAAKywB,MAAMpL,QAASowB,EAAWhlB,QAAWzwB,KAAK+rC,IAAI1mB,QAASowB,EAAW1J,IACvG,CAQO,gBAAA2J,CAAkBjuB,GACxB,OAAOA,EAASygB,QAASloC,KAAKywB,QAAWhJ,EAASsgB,SAAU/nC,KAAK+rC,IAClE,CAYO,aAAA4J,CAAeF,EAAmBG,GAAiB,GACpDH,EAAWN,cACfS,GAAQ,GAGT,MAAMC,EAAgB71C,KAAK01C,iBAAkBD,EAAWhlB,QAAamlB,GAAS51C,KAAKywB,MAAMpL,QAASowB,EAAWhlB,OACvGqlB,EAAc91C,KAAK01C,iBAAkBD,EAAW1J,MAAW6J,GAAS51C,KAAK+rC,IAAI1mB,QAASowB,EAAW1J,KAEvG,OAAO8J,GAAiBC,CACzB,CAmCO,aAAAC,CAAeN,GACrB,MAAMO,EAAuB,GAqB7B,OAnBKh2C,KAAKi2C,eAAgBR,IAGpBz1C,KAAK01C,iBAAkBD,EAAWhlB,QAGtCulB,EAAOp2C,KAAM,IAAIs1C,GAAOl1C,KAAKywB,MAAOglB,EAAWhlB,QAG3CzwB,KAAK01C,iBAAkBD,EAAW1J,MAGtCiK,EAAOp2C,KAAM,IAAIs1C,GAAOO,EAAW1J,IAAK/rC,KAAK+rC,OAI9CiK,EAAOp2C,KAAMI,KAAKgkB,SAGZgyB,CACR,CAyBO,eAAA7xB,CAAiBsxB,GACvB,GAAKz1C,KAAKi2C,eAAgBR,GAAe,CAGxC,IAAIS,EAAmBl2C,KAAKywB,MACxB0lB,EAAiBn2C,KAAK+rC,IAc1B,OAZK/rC,KAAK01C,iBAAkBD,EAAWhlB,SAGtCylB,EAAmBT,EAAWhlB,OAG1BzwB,KAAK01C,iBAAkBD,EAAW1J,OAGtCoK,EAAiBV,EAAW1J,KAGtB,IAAImJ,GAAOgB,EAAkBC,EACrC,CAGA,OAAO,IACR,CAOO,SAAAnB,CAAWzwC,EAA6B,CAAC,GAG/C,OAFAA,EAAQouC,WAAa3yC,KAEd,IAAI0yC,GAAYnuC,EACxB,CAMO,iBAAAqjC,GACN,OAAO5nC,KAAKywB,MAAMmX,kBAAmB5nC,KAAK+rC,IAC3C,CAOO,mBAAAqK,GACN,GAAKp2C,KAAKm1C,YACT,OAAO,KAGR,IAAII,EAAiBv1C,KAAKywB,MAAM4jB,UAC5BmB,EAAgBx1C,KAAK+rC,IAAIuI,WAmB7B,OARKt0C,KAAKywB,MAAM7xB,OAAO2P,GAAI,UAAavO,KAAKywB,MAAMkjB,SAAW3zC,KAAKywB,MAAM7xB,OAAOsY,cAC/Eq+B,EAAiBv1C,KAAKywB,MAAM7xB,OAAOsY,aAG/BlX,KAAK+rC,IAAIntC,OAAO2P,GAAI,UAAavO,KAAK+rC,IAAIkI,WAAaj0C,KAAK+rC,IAAIntC,OAAO6pB,kBAC3E+sB,EAAgBx1C,KAAK+rC,IAAIntC,OAAO6pB,iBAG5B8sB,GAAkBA,EAAehnC,GAAI,YAAegnC,IAAmBC,EACpED,EAGD,IACR,CAKO,KAAAvxB,GACN,OAAO,IAAIkxB,GAAOl1C,KAAKywB,MAAOzwB,KAAK+rC,IACpC,CAeA,SAAQsK,CAAU9xC,EAA6B,CAAC,GAC/CA,EAAQouC,WAAa3yC,KACrBuE,EAAQuuC,kBAAmB,EAE3B,MAAM8B,EAAa,IAAIlC,GAAYnuC,GAEnC,UAAY/L,KAASo8C,QACdp8C,EAAMyH,IAEd,CAcA,aAAQq2C,CAAc/xC,EAA6B,CAAC,GACnDA,EAAQouC,WAAa3yC,KAErB,MAAM40C,EAAa,IAAIlC,GAAYnuC,SAE7BqwC,EAAWntB,SAEjB,UAAYjvB,KAASo8C,QACdp8C,EAAM47C,YAEd,CAQO,cAAA6B,CAAgBR,GACtB,OAAOz1C,KAAKywB,MAAMsX,SAAU0N,EAAW1J,MAAS/rC,KAAK+rC,IAAI7D,QAASuN,EAAWhlB,MAC9E,CAYA,mCAAc8lB,CACbC,EACArC,EACAsC,EACAlC,GAEA,OAAO,IAAIv0C,KACV,IAAImzC,GAAUqD,EAAcrC,GAC5B,IAAIhB,GAAUsD,EAAYlC,GAE5B,CAUA,kCAAcmC,CAA6BjvB,EAAoB8F,GAC9D,MAAMkD,EAAQhJ,EACRskB,EAAMtkB,EAASgtB,aAAclnB,GAEnC,OAAOA,EAAQ,EAAI,IAAIvtB,KAAMywB,EAAOsb,GAAQ,IAAI/rC,KAAM+rC,EAAKtb,EAC5D,CASA,gBAAckmB,CAAW5/B,GACxB,OAAO/W,KAAKu2C,6BAA8Bx/B,EAAS,EAAGA,EAASA,EAAQ6vB,WACxE,CAOA,gBAAcgQ,CAAW32C,GACxB,MAAM+T,EAAO/T,EAAKsO,GAAI,cAAiBtO,EAAK+oC,WAAa,EAEzD,OAAOhpC,KAAK02C,4BAA6BvD,GAASe,cAAej0C,GAAQ+T,EAC1E,EAYD,SAASqhC,GAAiB78C,GACzB,SAAKA,EAAMyH,KAAKsO,GAAI,sBAAwB/V,EAAMyH,KAAKsO,GAAI,aAK5D,CAbA2mC,GAAMrzC,UAAU0M,GAAK,SAAUpD,GAC9B,MAAgB,UAATA,GAA6B,eAATA,CAC5B,EC9ce,MAAM0rC,WAAkCrnC,EAAc43B,KAI5D0P,QAKAC,mBAKAC,QAKAC,oBAmER,WAAAl1C,IACI7F,GASH2R,QAEA7N,KAAK82C,QAAU,GACf92C,KAAK+2C,oBAAqB,EAC1B/2C,KAAKg3C,SAAU,EACfh3C,KAAKi3C,oBAAsB,GAEtB/6C,EAAK5D,QACT0H,KAAKusC,SAAUrwC,EAEjB,CAOA,UAAWg7C,GACV,OAAOl3C,KAAKg3C,OACb,CAOA,sBAAWG,GACV,OAAOn3C,KAAKi3C,mBACb,CAUA,UAAWjQ,GACV,IAAMhnC,KAAK82C,QAAQx+C,OAClB,OAAO,KAGR,MAAMyuB,EAAQ/mB,KAAK82C,QAAS92C,KAAK82C,QAAQx+C,OAAS,GAGlD,OAFe0H,KAAK+2C,mBAAqBhwB,EAAMglB,IAAMhlB,EAAM0J,OAE7CzM,OACf,CAOA,SAAWyb,GACV,IAAMz/B,KAAK82C,QAAQx+C,OAClB,OAAO,KAGR,MAAMyuB,EAAQ/mB,KAAK82C,QAAS92C,KAAK82C,QAAQx+C,OAAS,GAGlD,OAFc0H,KAAK+2C,mBAAqBhwB,EAAM0J,MAAQ1J,EAAMglB,KAE/C/nB,OACd,CAMA,eAAWmxB,GACV,OAA2B,IAApBn1C,KAAKo3C,YAAoBp3C,KAAK82C,QAAS,GAAI3B,WACnD,CAKA,cAAWiC,GACV,OAAOp3C,KAAK82C,QAAQx+C,MACrB,CAKA,cAAW++C,GACV,OAAQr3C,KAAKm1C,aAAen1C,KAAK+2C,kBAClC,CAMA,mBAAWzE,GACV,OAAKtyC,KAAKgnC,OACFhnC,KAAKgnC,OAAOsL,gBAGb,IACR,CAKA,UAAQgF,GACP,UAAYvwB,KAAS/mB,KAAK82C,cACnB/vB,EAAM/C,OAEd,CAQO,aAAAuzB,GACN,IAAI9jB,EAAQ,KAEZ,UAAY1M,KAAS/mB,KAAK82C,QACnBrjB,IAAS1M,EAAM0J,MAAMsX,SAAUtU,EAAMhD,SAC1CgD,EAAQ1M,GAIV,OAAO0M,EAAQA,EAAMzP,QAAU,IAChC,CAOO,YAAAwzB,GACN,IAAI9jB,EAAO,KAEX,UAAY3M,KAAS/mB,KAAK82C,QACnBpjB,IAAQ3M,EAAMglB,IAAI7D,QAASxU,EAAKqY,OACrCrY,EAAO3M,GAIT,OAAO2M,EAAOA,EAAK1P,QAAU,IAC9B,CAOO,gBAAA6c,GACN,MAAM4W,EAAaz3C,KAAKu3C,gBAExB,OAAOE,EAAaA,EAAWhnB,MAAMzM,QAAU,IAChD,CAOO,eAAA0zB,GACN,MAAMC,EAAY33C,KAAKw3C,eAEvB,OAAOG,EAAYA,EAAU5L,IAAI/nB,QAAU,IAC5C,CASO,OAAAqB,CAASuyB,GACf,GAAK53C,KAAKk3C,QAAUU,EAAeV,OAClC,OAAO,EAGR,GAAKl3C,KAAKk3C,QAAUl3C,KAAKm3C,oBAAsBS,EAAeT,mBAC7D,OAAO,EAGR,GAAKn3C,KAAKo3C,YAAcQ,EAAeR,WACtC,OAAO,EACD,GAAyB,IAApBp3C,KAAKo3C,WAChB,OAAO,EAGR,IAAMp3C,KAAKgnC,OAAQ3hB,QAASuyB,EAAe5Q,UAAchnC,KAAKy/B,MAAOpa,QAASuyB,EAAenY,OAC5F,OAAO,EAGR,UAAYoY,KAAa73C,KAAK82C,QAAU,CACvC,IAAIgB,GAAQ,EAEZ,UAAYrC,KAAgBmC,EAAwBd,QACnD,GAAKe,EAAUxyB,QAASowB,GAAe,CACtCqC,GAAQ,EACR,KACD,CAGD,IAAMA,EACL,OAAO,CAET,CAEA,OAAO,CACR,CAUO,SAAApP,CAAWkP,GACjB,GAAK53C,KAAKq3C,YAAcO,EAAeP,WACtC,OAAO,EAGR,MAAMU,EAAepzC,GAAO3E,KAAKs3C,aAIjC,GAAKS,GAHgBpzC,GAAOizC,EAAeN,aAI1C,OAAO,EAIR,GAAqB,GAAhBS,EACJ,OAAO,EAIR,QAAUC,KAAUh4C,KAAKs3C,YAAc,CACtCU,EAASA,EAAO1C,aAEhB,IAAIwC,GAAQ,EAEZ,QAAUG,KAAUL,EAAeN,YAGlC,GAFAW,EAASA,EAAO3C,aAEX0C,EAAOvnB,MAAMpL,QAAS4yB,EAAOxnB,QAAWunB,EAAOjM,IAAI1mB,QAAS4yB,EAAOlM,KAAQ,CAC/E+L,GAAQ,EACR,KACD,CAID,IAAMA,EACL,OAAO,CAET,CAGA,OAAO,CACR,CAOO,kBAAAI,GACN,OAAyB,IAApBl4C,KAAKo3C,WACF,KAGDp3C,KAAKu3C,gBAAiBnB,qBAC9B,CAmEO,KAAA7J,IACHrwC,GASH,IAAMi8C,EAAYC,EAAe7zC,GAAYrI,EAO7C,GAL6B,iBAAjBk8C,IACX7zC,EAAU6zC,EACVA,OAAgB,GAGG,OAAfD,EACJn4C,KAAKq4C,WAAY,IACjBr4C,KAAKs4C,gBAAiB/zC,QAChB,GAAK4zC,aAAsBtB,IAAasB,aAAsBI,GACpEv4C,KAAKq4C,WAAYF,EAAWb,YAAaa,EAAWd,YACpDr3C,KAAKs4C,gBAAiB,CAAEE,KAAML,EAAWjB,OAAQuB,MAAON,EAAWhB,0BAC7D,GAAKgB,aAAsBjD,GACjCl1C,KAAKq4C,WAAY,CAAEF,GAAc5zC,GAAWA,EAAQm0C,UACpD14C,KAAKs4C,gBAAiB/zC,QAChB,GAAK4zC,aAAsBhF,GACjCnzC,KAAKq4C,WAAY,CAAE,IAAInD,GAAOiD,KAC9Bn4C,KAAKs4C,gBAAiB/zC,QAChB,GAAK4zC,aAAsB,GAAO,CACxC,MAAMO,IAAan0C,KAAaA,EAAQm0C,SACxC,IAAI3xB,EAEJ,QAAuB,IAAlBqxB,EAMJ,MAAM,IAAI1qC,EAAe,iDAAkD1N,MAE3E+mB,EAD4B,MAAjBqxB,EACHlD,GAAMyB,UAAWwB,GACG,MAAjBC,EACHlD,GAAM0B,UAAWuB,GAEjB,IAAIjD,GAAO/B,GAASC,UAAW+E,EAAYC,IAGpDp4C,KAAKq4C,WAAY,CAAEtxB,GAAS2xB,GAC5B14C,KAAKs4C,gBAAiB/zC,EACvB,KAAO,KAAK+S,GAAY6gC,GAWvB,MAAM,IAAIzqC,EAAe,sCAAuC1N,MARhEA,KAAKq4C,WAAYF,EAAY5zC,GAAWA,EAAQm0C,UAChD14C,KAAKs4C,gBAAiB/zC,EAQvB,CAEAvE,KAAK4Q,KAAgC,SACtC,CAWO,QAAA+nC,CAAU1D,EAAiC54B,GACjD,GAAqB,OAAhBrc,KAAKgnC,OAMT,MAAM,IAAIt5B,EAAe,oCAAqC1N,MAG/D,MAAM44C,EAAWzF,GAASC,UAAW6B,EAAgB54B,GAErD,GAA4C,QAAvCu8B,EAAS9D,YAAa90C,KAAKy/B,OAC/B,OAGD,MAAMuH,EAAShnC,KAAKgnC,OAEpBhnC,KAAK82C,QAAQ93C,MAE0B,UAAlC45C,EAAS9D,YAAa9N,GAC1BhnC,KAAK64C,UAAW,IAAI3D,GAAO0D,EAAU5R,IAAU,GAE/ChnC,KAAK64C,UAAW,IAAI3D,GAAOlO,EAAQ4R,IAGpC54C,KAAK4Q,KAAgC,SACtC,CAWQ,UAAAynC,CAAYS,EAA4BC,GAA0B,GAGzED,EAAYn4C,MAAMrB,KAAMw5C,GAExB94C,KAAK82C,QAAU,GAEf,UAAY/vB,KAAS+xB,EACpB94C,KAAK64C,UAAW9xB,GAGjB/mB,KAAK+2C,qBAAuBgC,CAC7B,CAUQ,eAAAT,CAAiB/zC,EAA4B,CAAC,GACrDvE,KAAKg3C,UAAYzyC,EAAQi0C,KACzBx4C,KAAKi3C,oBAAsB1yC,EAAQi0C,MAAOj0C,EAAQk0C,OAAc,EACjE,CAcQ,SAAAI,CAAW9xB,EAAcswB,GAAsB,GACtD,KAAQtwB,aAAiBmuB,IAMxB,MAAM,IAAIxnC,EACT,qCACA1N,MAIFA,KAAKg5C,WAAYjyB,GACjB/mB,KAAK+2C,qBAAuBM,CAC7B,CAQQ,UAAA2B,CAAYjyB,GACnB,UAAYkyB,KAAej5C,KAAK82C,QAC/B,GAAK/vB,EAAMkvB,eAAgBgD,GAQ1B,MAAM,IAAIvrC,EACT,kCACA1N,KACA,CAAEk5C,WAAYnyB,EAAOoyB,kBAAmBF,IAK3Cj5C,KAAK82C,QAAQl3C,KAAM,IAAIs1C,GAAOnuB,EAAM0J,MAAO1J,EAAMglB,KAClD,EAKD8K,GAAUh1C,UAAU0M,GAAK,SAAUpD,GAClC,MAAgB,cAATA,GAAiC,mBAATA,CAChC,EC9nBe,MAAMotC,WAA0C/oC,EAAc43B,KAI3DgS,WA6FjB,WAAAr3C,IAAgB7F,GACf2R,QAEA7N,KAAKo5C,WAAa,IAAIvC,GAGtB72C,KAAKo5C,WAAW7nC,SAAU,UAAWhS,GAAIS,MAGpC9D,EAAK5D,QACT0H,KAAKo5C,WAAW7M,SAAUrwC,EAE5B,CAOA,UAAWg7C,GACV,OAAOl3C,KAAKo5C,WAAWlC,MACxB,CAOA,sBAAWC,GACV,OAAOn3C,KAAKo5C,WAAWjC,kBACxB,CAUA,UAAWnQ,GACV,OAAOhnC,KAAKo5C,WAAWpS,MACxB,CAOA,SAAWvH,GACV,OAAOz/B,KAAKo5C,WAAW3Z,KACxB,CAMA,eAAW0V,GACV,OAAOn1C,KAAKo5C,WAAWjE,WACxB,CAKA,cAAWiC,GACV,OAAOp3C,KAAKo5C,WAAWhC,UACxB,CAKA,cAAWC,GACV,OAAOr3C,KAAKo5C,WAAW/B,UACxB,CAMA,mBAAW/E,GACV,OAAOtyC,KAAKo5C,WAAW9G,eACxB,CAOA,WAAWwE,GACV,OAAS92C,KAAKo5C,WAAoBtC,OACnC,CAKA,UAAQQ,SACAt3C,KAAKo5C,WAAW9B,WACxB,CAQO,aAAAC,GACN,OAAOv3C,KAAKo5C,WAAW7B,eACxB,CAOO,YAAAC,GACN,OAAOx3C,KAAKo5C,WAAW5B,cACxB,CAOO,gBAAA3W,GACN,OAAO7gC,KAAKo5C,WAAWvY,kBACxB,CAOO,eAAA6W,GACN,OAAO13C,KAAKo5C,WAAW1B,iBACxB,CAOO,kBAAAQ,GACN,OAAOl4C,KAAKo5C,WAAWlB,oBACxB,CASO,OAAA7yB,CAASuyB,GACf,OAAO53C,KAAKo5C,WAAW/zB,QAASuyB,EACjC,CAUO,SAAAlP,CAAWkP,GACjB,OAAO53C,KAAKo5C,WAAW1Q,UAAWkP,EACnC,CAiEO,MAAAyB,IAAWn9C,GACjB8D,KAAKo5C,WAAW7M,SAAUrwC,EAC3B,CAYO,SAAAo9C,CAAWrE,EAAiC54B,GAClDrc,KAAKo5C,WAAWT,SAAU1D,EAAgB54B,EAC3C,EAKDk8B,GAAkB12C,UAAU0M,GAAK,SAAUpD,GAC1C,MAAgB,cAATA,GACE,qBAARA,GACQ,kBAARA,GACQ,0BAARA,CACF,ECpXe,MAAMouC,WAA4EntC,EAIhFotC,WAKRC,YAKAC,eAOR,WAAA33C,CAAamB,EAAgBlB,EAAaw3C,GACzC3rC,MAAO3K,EAAQlB,GAEfhC,KAAKw5C,WAAaA,EAClBx5C,KAAKy5C,YAAc,OACnBz5C,KAAK05C,eAAiB,IACvB,CAKA,cAAWC,GACV,OAAO35C,KAAKy5C,WACb,CAKA,iBAAWG,GACV,OAAO55C,KAAK05C,cACb,EC5BD,MAAMG,GAAiB/4C,OAAQ,qBAkBhB,SAASg5C,GAAyDp1C,GA4GhF,OA3GA,cAA6BA,EAGZ,IAAAkM,CACfC,KACGkpC,GAEH,IACC,MAAMjpC,EAAYD,aAAuBzE,EAAYyE,EAAc,IAAIzE,EAAWpM,KAAM6Q,GAClFmpC,EAAgBC,GAAqBj6C,MAE3C,IAAMg6C,EAAchmC,KACnB,OAMD,GAHAkmC,GAAiBppC,EAAW,YAAa9Q,MAGpCm6C,GAAiBH,EAAe,WAAYlpC,KAAcipC,GAC9D,OAAOjpC,EAAUvE,OAGlB,MAAMitC,EAAe1oC,EAAiC0oC,YAAcx5C,KAAK2gC,UAAU4W,gBAC7E6C,EAAkBZ,EAAaA,EAAWpD,sBAAwB,KAClEiE,IAAkBD,GAAkB92C,QAASg3C,GAAkBN,EAAeI,IAEpF,IAAIj7C,EAAoBi7C,GAkK5B,SAA+BrzB,GAC9B,IAAMA,EACL,OAAO,KAGR,MAAMwzB,EAAcxzB,EAAM0J,MAAM7xB,OAC1B47C,EAAYzzB,EAAMglB,IAAIntC,OAEtB67C,EAAYF,EAAYhT,UACxBmT,EAAUF,EAAUjT,UAE1B,OAAOkT,EAAUniD,OAASoiD,EAAQpiD,OAASiiD,EAAcC,CAC1D,CA9K+CG,CAAsBnB,GAKjE,GAHAU,GAAiBppC,EAAW,WAAY3R,IAGlCk7C,EAAkB,CACvB,GAAKF,GAAiBH,EAAe,QAASlpC,KAAcipC,GAC3D,OAAOjpC,EAAUvE,OAGlB2tC,GAAiBppC,EAAW,WAAY3R,EACzC,CAEA,KAAQA,GAAO,CAEd,GAAKA,EAAKoP,GAAI,gBACb,GAAK4rC,GAAiBH,EAAe,QAASlpC,KAAcipC,GAC3D,OAAOjpC,EAAUvE,YAEnB,GAGUpN,EAAKoP,GAAI,YACb4rC,GAAiBH,EAAe76C,EAAK6C,KAAM8O,KAAcipC,GAC7D,OAAOjpC,EAAUvE,OAKnB,GAAK4tC,GAAiBH,EAAe76C,EAAM2R,KAAcipC,GACxD,OAAOjpC,EAAUvE,OAGlBpN,EAAOA,EAAKP,OAEZs7C,GAAiBppC,EAAW,WAAY3R,EACzC,CAOA,OALA+6C,GAAiBppC,EAAW,WAAY9Q,MAGxCm6C,GAAiBH,EAAe,YAAalpC,KAAcipC,GAEpDjpC,EAAUvE,MAClB,CAAE,MAAQ/K,GAGTkM,EAAcc,uBAAwBhN,EAAKxB,KAC5C,CACD,CAEO,iBAAAyQ,CAENf,EACAC,EACApL,GAEA,MAAMq2C,EAAW7qB,GAASxrB,EAAQoJ,SAAW,aACvCqsC,EAAgBC,GAAqBj6C,MAE3C,UAAY2N,KAAWitC,EAAW,CACjC,IAAI5qC,EAAUgqC,EAAc5xC,IAAKuF,GAE3BqC,IACLA,EAAU,IAAMR,KAChBwqC,EAAcpoC,IAAKjE,EAASqC,IAG7BhQ,KAAK4P,SAAUI,EAAUN,EAAOC,EAAUpL,EAC3C,CACD,CAEO,oBAAA2M,CAAsCxB,EAAeC,GAC3D,MAAMqqC,EAAgBC,GAAqBj6C,MAE3C,UAAYgQ,KAAWgqC,EAAc5uC,SACpCpL,KAAK+P,cAAeC,EAASN,EAAOC,EAEtC,EAIF,CAGA,CACC,MAAMkrC,EAAUf,GAA+B9iD,QAE/C,CAAE,OAAQ,oBAAqB,wBAAyB4G,SAAS7G,IAC9D+iD,GAA+B/iD,GAAQ8jD,EAAMh5C,UAAW9K,EAAK,GAEjE,CASA,SAASmjD,GACRppC,EACA6oC,EACAC,GAEK9oC,aAAqByoC,KACvBzoC,EAAmB2oC,YAAcE,EACjC7oC,EAAmB4oC,eAAiBE,EAExC,CASA,SAASO,GACRH,EACArsC,EACAmD,KACGipC,GAEH,MAAM/pC,EAA4B,iBAAXrC,EAAsBqsC,EAAc5xC,IAAKuF,GAAY2sC,GAAkBN,EAAersC,GAE7G,QAAMqC,IAINA,EAAQY,KAAME,KAAcipC,GAErBjpC,EAAUzE,KAAKF,OACvB,CAKA,SAASmuC,GAAkBN,EAAsC76C,GAChE,UAAcwO,EAASqC,KAAagqC,EACnC,GAAuB,mBAAXrsC,GAAyBA,EAASxO,GAC7C,OAAO6Q,EAIT,OAAO,IACR,CAKA,SAASiqC,GAAqB/2C,GAK7B,OAJMA,EAAQ22C,MACb32C,EAAQ22C,IAAmB,IAAInoC,KAGzBxO,EAAQ22C,GAChB,CCjNe,MAAMj6B,WAAiCk6B,GAAsCxmC,MAI3EqtB,UAUAma,MAKA3K,gBA+CC4K,YAAc,IAAIhnC,IAOnC,WAAAhS,CAAaouC,GACZtiC,QAEA7N,KAAK2gC,UAAY,IAAI4X,GACrBv4C,KAAK86C,MAAQ,IAAIloB,GAAY,CAAEU,WAAY,aAC3CtzB,KAAKmwC,gBAAkBA,EAEvBnwC,KAAK4R,IAAK,cAAc,GACxB5R,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,eAAe,GACzB5R,KAAK4R,IAAK,eAAe,EAC1B,CASO,OAAAopC,CAASh5C,EAAe,QAC9B,OAAOhC,KAAK86C,MAAM1yC,IAAKpG,EACxB,CAoDO,iBAAAikC,CAAmBgV,GACzBj7C,KAAK+6C,YAAY7sC,IAAK+sC,EACvB,CAKO,OAAAhzB,GACNjoB,KAAK86C,MAAMl9C,SAAStH,GAAQA,EAAK2xB,YACjCjoB,KAAK+P,eACN,CAOO,eAAAmrC,CAAiBnV,GACvB,IAAIoV,GAAW,EAEf,GACC,UAAYxrC,KAAY3P,KAAK+6C,YAG5B,GAFAI,EAAWxrC,EAAUo2B,GAEhBoV,EACJ,YAGOA,EACX,EC1Kc,MAAMC,WAAyB7L,GAC7C,wBAdwB,GAsBjB8L,UAtBiB,GA+BjBC,IAA8B,KAQpBC,aAA6C,KAa9D,WAAAx5C,CACCyB,EACAxB,EACA6tC,EACA33B,GAEArK,MAAOrK,EAAUxB,EAAM6tC,EAAO33B,GAE9BlY,KAAKoxC,gBAAkB,EACxB,CAKA,YAAWpkC,GACV,OAAOhN,KAAKq7C,SACb,CAMA,MAAWx7C,GACV,OAAOG,KAAKs7C,GACb,CAcO,qBAAAE,GACN,GAAiB,OAAZx7C,KAAKH,GAMT,MAAM,IAAI6N,EACT,oDACA1N,MAIF,OAAO,IAAI+T,IAAK/T,KAAKu7C,aACtB,CAoBgB,SAAA7S,CAAW4H,GAE1B,OAAiB,OAAZtwC,KAAKH,IAA8C,OAA7BywC,EAAsBzwC,GACzCG,KAAKH,KAASywC,EAAsBzwC,GAGrCgO,MAAM66B,UAAW4H,IAAkBtwC,KAAKgN,UAAcsjC,EAAsBtjC,QACpF,CAUgB,MAAA47B,CAAQqI,GAAgB,GACvC,MAAME,EAAStjC,MAAM+6B,OAAQqI,GAQ7B,OALAE,EAAOkK,UAAYr7C,KAAKq7C,UAGxBlK,EAAOmK,IAAMt7C,KAAKs7C,IAEXnK,CACR,EAyBD,SAAS,KAER,GAAKsK,GAAoBz7C,MACxB,OAAO,KAGR,IAAI+W,EAAU/W,KAAKpB,OAGnB,KAAQmY,GAAWA,EAAQxI,GAAI,qBAAuB,CACrD,GAAKktC,GAAoB1kC,GAAY,EACpC,OAAO,KAGRA,EAAUA,EAAQnY,MACnB,CAEA,OAAMmY,GAAW0kC,GAAoB1kC,GAAY,EACzC,KAID/W,KAAK4mC,UACb,CAKA,SAAS6U,GAAoB1kC,GAC5B,OAAOpW,MAAMrB,KAAMyX,EAAQ+vB,eAAgB/gC,QAAQgR,IAAYA,EAAQxI,GAAI,eAAgBjW,MAC5F,CAlDA8iD,GAAiBv5C,UAAU0M,GAAK,SAAUpD,EAAcnJ,GACvD,OAAMA,EAMEA,IAAShC,KAAKgC,OACX,qBAATmJ,GAAwC,0BAATA,GAEtB,YAATA,GAA+B,iBAATA,GARP,qBAATA,GAAwC,0BAATA,GAE5B,YAATA,GAA+B,iBAATA,GACb,SAATA,GAA4B,cAATA,CAQtB,ECpKe,MAAMuwC,WAAqBnM,GAczC,WAAAxtC,CACCyB,EACAxB,EACAuD,EACA2S,GAEArK,MAAOrK,EAAUxB,EAAMuD,EAAY2S,GAEnClY,KAAKoxC,gBAAkB,EACxB,CASgB,YAAApB,CAAcprC,EAAegvB,GAC5C,GAAKA,IAAWA,aAAiB,IAAQjzB,MAAMrB,KAAMs0B,GAA0Bt7B,OAAS,GAMvF,MAAM,IAAIoV,EACT,+BACA,CAAE1N,KAAM4zB,IAIV,OAAO,CACR,EAsBD,SAAS,KACR,OAAO,IACR,CAnBA8nB,GAAa75C,UAAU0M,GAAK,SAAUpD,EAAcnJ,GACnD,OAAMA,EAMEA,IAAShC,KAAKgC,OACX,iBAATmJ,GAAoC,sBAATA,GAClB,YAATA,GAA+B,iBAATA,GAPP,iBAATA,GAAoC,sBAATA,GAExB,YAATA,GAA+B,iBAATA,GACb,SAATA,GAA4B,cAATA,CAOtB,EC5Ce,MAAMwwC,WAAkBpM,GActC,WAAAxtC,CACCyB,EACAxB,EACA6tC,EACA33B,GAEArK,MAAOrK,EAAUxB,EAAM6tC,EAAO33B,GAE9BlY,KAAKoxC,gBAAkB,EACxB,CASgB,YAAApB,CAAcprC,EAAegvB,GAC5C,GAAKA,IAAWA,aAAiB,IAAQjzB,MAAMrB,KAAMs0B,GAA0Bt7B,OAAS,GAMvF,MAAM,IAAIoV,EAAe,4BAA6B,CAAE1N,KAAM4zB,IAG/D,OAAO,CACR,CAwBO,MAAAsE,CACN0jB,EACAC,GAGA,OAAO77C,KAAK87C,aAAcF,EAC3B,CAMO,YAAAE,CAAcF,GACpB,MAAMG,EAAaH,EAAYt2C,cAAetF,KAAKgC,MAEnD,UAAYjL,KAAOiJ,KAAK4pC,mBACvBmS,EAAWt2C,aAAc1O,EAAKiJ,KAAK06B,aAAc3jC,IAGlD,OAAOglD,CACR,EA4BM,SAASC,GAAyBrkB,GACxCA,EAAKn0B,SAASiM,GAA+B,YAAY,CAAE+F,EAAK1S,IAgBjE,SAA4B0S,EAAc1S,EAAoB+4C,GAC7D,GAAK/4C,EAAKmrB,SAAWP,GAAS0B,WAAa,CAC1C,MAAM6sB,EAAen5C,EAAKo5C,UAAUr8B,cAAcF,YAAaw8B,eACzDC,EAAmD,GAA3BH,EAAa7E,YAAmB6E,EAAaI,WAAY,GAAIC,UAG3F,GAAKF,GAAyBt5C,EAAKsrB,SAAW,CAC7C,MAAMmuB,EAAYN,EAAaO,UACzBC,EAAYR,EAAaS,YAEzBC,EAAed,EAAae,kBAAmBL,EAAWE,GAGhE,GAAsB,OAAjBE,EACJ,OAID,IAAIE,GAAyB,EAE7B,MAAMC,EAAmBH,EAAahI,yBAAyBn8C,IACzDA,EAAMyH,KAAKsO,GAAI,eAEnBsuC,GAAyB,MAIrBrkD,EAAMyH,KAAKsO,GAAI,eAAiB/V,EAAMyH,KAAKsO,GAAI,wBAUrD,GAAKsuC,EAAyB,CAC7B,MAAME,EAAiBlB,EAAamB,kBAAmBF,GAElDV,EAEJH,EAAagB,SAAUF,EAAen+C,OAAQm+C,EAAe1gC,QAG7D4/B,EAAaviB,OAAQqjB,EAAen+C,OAAQm+C,EAAe1gC,OAE7D,CACD,CACD,CACD,CAjEE6gC,CAAmB1nC,EAAK1S,EAAM60B,EAAKkkB,eAAgB,CAAE7uC,SAAU,OACjE,CAKA,SAAS,KACR,OAAO,IACR,CAjCA2uC,GAAU95C,UAAU0M,GAAK,SAAUpD,EAAcnJ,GAChD,OAAMA,EAMEA,IAAShC,KAAKgC,OACX,cAATmJ,GAAiC,mBAATA,GACf,YAATA,GAA+B,iBAATA,GAPP,cAATA,GAAiC,mBAATA,GAErB,YAATA,GAA+B,iBAATA,GACb,SAATA,GAA4B,cAATA,CAOtB,EC5Ge,MAAMgyC,WAAmB5N,GAcvC,WAAAxtC,CACCyB,EACAxB,EACA6tC,EACA33B,GAEArK,MAAOrK,EAAUxB,EAAM6tC,EAAO33B,GAG9BlY,KAAKoxC,gBAAkB,EACxB,CASgB,YAAApB,CAAcprC,EAAegvB,GAC5C,GAAKA,IAAWA,aAAiB,IAAQjzB,MAAMrB,KAAMs0B,GAA0Bt7B,OAAS,GAMvF,MAAM,IAAIoV,EACT,6BACA,CAAE1N,KAAM4zB,IAIV,OAAO,CACR,CAoBO,MAAAsE,CAAQ6jB,EAAwBF,GAAoC,EAuB5E,SAAS,KACR,OAAO,IACR,CApBAsB,GAAWt7C,UAAU0M,GAAK,SAAUpD,EAAcnJ,GACjD,OAAMA,EAOEA,IAAShC,KAAKgC,OACX,eAATmJ,GAAkC,oBAATA,GAChB,YAATA,GAA+B,iBAATA,GARP,eAATA,GAAkC,oBAATA,GAE/BA,IAASnL,KAAKgC,MAAQmJ,IAAS,QAAUnL,KAAKgC,MACrC,YAATmJ,GAA+B,iBAATA,GACb,SAATA,GAA4B,cAATA,CAOtB,EC/Fe,MAAMiyC,WAAyC5tC,EAAc43B,KAI3D5jC,SAKCksC,UAAyB,GAMzBE,kBAAoB,IAAIl+B,IASzC,WAAA3P,CAAayB,EAAoB0U,GAChCrK,QAEA7N,KAAKwD,SAAWA,EAEX0U,GACJlY,KAAKgwC,aAAc,EAAG93B,EAExB,CAOA,CAASpX,OAAOC,YACf,OAAOf,KAAK0vC,UAAW5uC,OAAOC,WAC/B,CAKA,cAAW6lC,GACV,OAAO5mC,KAAK0vC,UAAUp3C,MACvB,CAKA,WAAWg0C,GACV,OAA2B,IAApBtsC,KAAK4mC,UACb,CAKA,QAAWtwC,GACV,OAAO0J,IACR,CAKA,UAAWpB,GACV,OAAO,IACR,CAKA,QAAWoD,GAEX,CAKA,mBAAWovC,GAEX,CAKO,iBAAAR,CAAmB75C,GACzB,OAAOiJ,KAAK4vC,kBAAkBxnC,IAAKrR,EACpC,CAMA,oBAAQ85C,SACA7wC,KAAK4vC,kBAAkBx2B,SAC/B,CAUO,YAAAi4B,CAAczd,GACpB,OAAO5zB,KAAKgwC,aAAchwC,KAAK4mC,WAAYhT,EAC5C,CAQO,QAAAuT,CAAUviC,GAChB,OAAO5E,KAAK0vC,UAAW9qC,EACxB,CAQO,aAAA0iC,CAAenoC,GACrB,OAAOa,KAAK0vC,UAAUjmC,QAAStK,EAChC,CAOO,WAAA2nC,GACN,OAAO9mC,KAAK0vC,UAAW5uC,OAAOC,WAC/B,CAWO,YAAAivC,CAAcprC,EAAegvB,GACnC5zB,KAAKooC,YAAa,WAAYpoC,MAC9B,IAAI2E,EAAQ,EAEZ,MAAM2sC,EAkGR,SAAoB9tC,EAAoB8tC,GAEvC,GAAqB,iBAATA,EACX,MAAO,CAAE,IAAI/I,GAAM/kC,EAAU8tC,IAGxBh6B,GAAYg6B,KACjBA,EAAQ,CAAEA,IAIX,OAAO3wC,MAAMrB,KAAMgyC,GACjBt0C,KAAKmC,GACe,iBAARA,EACJ,IAAIopC,GAAM/kC,EAAUrE,GAGvBA,aAAgB0pC,GACb,IAAIN,GAAM/kC,EAAUrE,EAAK2D,MAG1B3D,GAEV,CAzHgB,CAAWa,KAAKwD,SAAUowB,GAExC,UAAYz0B,KAAQmyC,EAEE,OAAhBnyC,EAAKP,QACTO,EAAKk1B,UAGJl1B,EAAcP,OAASoB,KAEzBA,KAAK0vC,UAAUloC,OAAQ5C,EAAO,EAAGzF,GACjCyF,IACAD,IAGD,OAAOA,CACR,CAUO,eAAAwjC,CAAiBvjC,EAAeyG,EAAkB,GACxDrL,KAAKooC,YAAa,WAAYpoC,MAE9B,QAAUxF,EAAIoK,EAAOpK,EAAIoK,EAAQyG,EAAS7Q,IACvCwF,KAAK0vC,UAAWl1C,GAAaoE,OAAS,KAGzC,OAAOoB,KAAK0vC,UAAUloC,OAAQ5C,EAAOyG,EACtC,CASO,WAAA+8B,CAAaj9B,EAAkBhM,GACrCa,KAAK4Q,KAAM,UAAYzF,EAAMhM,EAC9B,CAQO,kBAAA2yC,CAAoB/6C,EAAsByB,GAChDwH,KAAK4vC,kBAAkBh+B,IAAK7a,EAAKyB,EAClC,CASO,qBAAAu5C,CAAuBh7C,GAC7B,OAAOiJ,KAAK4vC,kBAAkB99B,OAAQ/a,EACvC,EAyBDqmD,GAAiBv7C,UAAU0M,GAAK,SAAUpD,GACzC,MAAgB,qBAATA,GAAwC,0BAATA,CACvC,EC9Ne,MAAM,GAIJ3H,SAMC65C,aAAe,IAAI3rC,IAK5B4rC,aAAwG,KAKhH,WAAAv7C,CAAayB,GACZxD,KAAKwD,SAAWA,CACjB,CAwGO,YAAA+5C,IAAiBrhD,GACvB8D,KAAKwD,SAASm9B,UAAU0Y,UAAWn9C,EACpC,CAUO,iBAAAshD,CAAmBvI,EAAiC54B,GAC1Drc,KAAKwD,SAASm9B,UAAU2Y,UAAWrE,EAAgB54B,EACpD,CAQO,sBAAAsf,CAAwBzjB,GAC9B,OAAO,IAAIklC,GAAkBp9C,KAAKwD,SAAU0U,EAC7C,CAYO,UAAAulC,CAAY36C,GAClB,OAAO,IAAIylC,GAAMvoC,KAAKwD,SAAUV,EACjC,CAyBO,sBAAA46C,CACN17C,EACAuD,EACAhB,EAII,CAAC,GAEL,MAAMo5C,EAAmB,IAAIvC,GAAkBp7C,KAAKwD,SAAUxB,EAAMuD,GAcpE,MAZiC,iBAArBhB,EAAQyI,WACnB2wC,EAAiBtC,UAAY92C,EAAQyI,UAGjCzI,EAAQ1E,KACZ89C,EAAiBrC,IAAM/2C,EAAQ1E,IAG3B0E,EAAQq5C,wBACZD,EAAiBnO,0BAA0B5vC,QAAS2E,EAAQq5C,wBAGtDD,CACR,CAqEO,sBAAAE,CACN77C,EACAuD,EACAu4C,EAAwF,CAAC,EACzFv5C,EAAsD,CAAC,GAEvD,IAAI2T,EAAW,KAEV,GAAe4lC,GACnBv5C,EAAUu5C,EAEV5lC,EAAW4lC,EAGZ,MAAMC,EAAmB,IAAI5L,GAAkBnyC,KAAKwD,SAAUxB,EAAMuD,EAAY2S,GAMhF,OAJK3T,EAAQq5C,wBACZG,EAAiBvO,0BAA0B5vC,QAAS2E,EAAQq5C,wBAGtDG,CACR,CAoBO,qBAAAC,CACNh8C,EACAuD,EACAhB,EAEI,CAAC,GAEL,MAAM+tC,EAAkB,IAAID,GAAiBryC,KAAKwD,SAAUxB,EAAMuD,GAMlE,OAJKhB,EAAQq5C,wBACZtL,EAAgB9C,0BAA0B5vC,QAAS2E,EAAQq5C,wBAGrDtL,CACR,CAiBO,kBAAA2L,CACNj8C,EACAuD,EACAhB,EAEI,CAAC,GAEL,MAAM25C,EAAe,IAAIxC,GAAc17C,KAAKwD,SAAUxB,EAAMuD,GAM5D,OAJKhB,EAAQq5C,wBACZM,EAAa1O,0BAA0B5vC,QAAS2E,EAAQq5C,wBAGlDM,CACR,CA+BO,eAAAC,CACNn8C,EACAuD,EACA64C,GAEA,MAAMC,EAAY,IAAI1C,GAAW37C,KAAKwD,SAAUxB,EAAMuD,GAMtD,OAJK64C,IACJC,EAAUnmB,OAASkmB,GAGbC,CACR,CA+BO,gBAAAC,CACNt8C,EACAuD,EACA64C,EACA75C,EAEI,CAAC,GAEL,MAAMg6C,EAAa,IAAIpB,GAAYn9C,KAAKwD,SAAUxB,EAAMuD,GAUxD,OARK64C,IACJG,EAAWrmB,OAASkmB,GAGhB75C,EAAQq5C,wBACZW,EAAW/O,0BAA0B5vC,QAAS2E,EAAQq5C,wBAGhDW,CACR,CAYO,YAAA94C,CAAc1O,EAAayB,EAAgBue,GACjDA,EAAQw6B,cAAex6C,EAAKyB,EAC7B,CAWO,eAAAkO,CAAiB3P,EAAaggB,GACpCA,EAAQ06B,iBAAkB16C,EAC3B,CAUO,QAAAmwC,CAAUqJ,EAAmCx5B,GACnDA,EAAQ26B,UAAWnB,EACpB,CAUO,WAAAjK,CAAaiK,EAAmCx5B,GACtDA,EAAQ46B,aAAcpB,EACvB,CAwCO,QAAAiO,CACNjrC,EACA/a,EACAue,GAGK,GAAexD,SAA0B,IAAZwD,EAC/Bve,EAAmBo5C,UAAWr+B,GAEhCwD,EAAS66B,UAAWr+B,EAAoB/a,EAE1C,CAcO,WAAAimD,CAAalrC,EAAkCwD,GACrDA,EAAQ86B,aAAct+B,EACvB,CAMO,iBAAAmrC,CAAmB3nD,EAAsByB,EAAgBue,GAC/DA,EAAQ+6B,mBAAoB/6C,EAAKyB,EAClC,CAOO,oBAAAmmD,CAAsB5nD,EAAsBggB,GAClD,OAAOA,EAAQg7B,sBAAuBh7C,EACvC,CAuCO,eAAA6nD,CAAiBC,GACvB,OAAKA,aAA2B1L,GACxBnzC,KAAK8+C,iBAAkBD,GAEvB7+C,KAAK++C,sBAAuBF,EAErC,CA2BO,cAAAG,CAAgBv3B,GACtB,MAAM1Q,EAAU0Q,EAAS7oB,OAEzB,IAAQmY,EAAQxI,GAAI,oBAMnB,MAAM,IAAIb,EAAe,0CAA2C1N,KAAKwD,UAG1E,IAAMuT,EAAQnY,OAMb,MAAM,IAAI8O,EAAe,yBAA0B1N,KAAKwD,UAGzD,GAAKikB,EAASwsB,UACb,OAAOd,GAASe,cAAen9B,GACzB,IAAM0Q,EAASksB,QAAU,CAC/B,MAAM38B,EAAaD,EAAQ6xB,QAAQ,GAEnC5oC,KAAK0F,OAAQytC,GAASS,aAAc78B,GAAWC,GAE/C,MAAMioC,EAAc,IAAI/J,GAAOztB,EAAU0rB,GAASC,UAAWr8B,EAAS,QAChEmoC,EAAiB,IAAI/L,GAAUn8B,EAAY,GAEjDhX,KAAKm/C,KAAMF,EAAaC,EACzB,CAEA,OAAO/L,GAASS,aAAc78B,EAC/B,CAgCO,eAAAqoC,CAAiB33B,GACvB,MAAM43B,EAAiB53B,EAASpL,OAC1BijC,EAAiB73B,EAAS7oB,OAGhC,GAAK0gD,EAAe/wC,GAAI,SACvB,OAAOkZ,EAIR,GAAK63B,EAAe/wC,GAAI,qBAAsD,IAA9B+wC,EAAe1Y,WAAmB,CACjF,MAAMhoC,EAAS0gD,EAAe1gD,OACxByd,EAASijC,EAAe16C,MAK9B,OAHA06C,EAAejrB,UACfr0B,KAAKu/C,+BAAgCD,GAE9Bt/C,KAAKo/C,gBAAiB,IAAIjM,GAAUv0C,EAASyd,GACrD,CAEA,MAAMi4B,EAAegL,EAA4BnY,SAAUkY,EAAiB,GACtEhL,EAAciL,EAA4BnY,SAAUkY,GAG1D,IAAM/K,IAAeD,EACpB,OAAO5sB,EAIR,GAAK6sB,EAAW/lC,GAAI,UAAa8lC,EAAU9lC,GAAI,SAC9C,OAAOixC,GAAgBlL,EAAYD,GACpC,GAEUC,EAAW/lC,GAAI,qBAAwB8lC,EAAU9lC,GAAI,qBAAwB+lC,EAAW5L,UAAW2L,GAAc,CAE1H,MAAM1vC,EAAQ2vC,EAAW1N,WAQzB,OAPA0N,EAAWjD,aAAcgD,EAAUvN,eAEnCuN,EAAUhgB,UACVr0B,KAAKu/C,+BAAgClL,GAI9Br0C,KAAKo/C,gBAAiB,IAAIjM,GAAUmB,EAAY3vC,GACxD,CAEA,OAAO8iB,CACR,CAsBO,eAAAg4B,CAAiBh4B,GACvB,MAAMyT,EAAOzT,EAAS6sB,WAChBhzC,EAAOmmB,EAAS4sB,UAEtB,KAAMnZ,GAAS55B,GAAS45B,EAAK3sB,GAAI,qBAAyBjN,EAAKiN,GAAI,qBAMlE,MAAM,IAAIb,EAAe,gDAAiD1N,KAAKwD,UAGhF,MAAM4uC,EAAYlX,EAAKiM,SAAUjM,EAAK0L,WAAa,GAC7C8Y,EAActN,aAAqB7J,GAAO4K,GAASC,UAAWhB,EAAW,OAAUe,GAASC,UAAWlY,EAAM,OAKnH,OAHAl7B,KAAKm/C,KAAMjK,GAAMyB,UAAWr1C,GAAQ6xC,GAASC,UAAWlY,EAAM,QAC9Dl7B,KAAKiG,OAAQivC,GAAM0B,UAAWt1C,IAEvBo+C,CACR,CAkBO,MAAAh6C,CAAQ+hB,EAAoB6pB,GAIlCqO,GAHArO,EAAQh6B,GAAYg6B,GAAU,IAAKA,GAAU,CAAEA,GAGjBtxC,KAAKwD,UAGnC,MAAMo8C,EAAetO,EAAuB3iB,QAAQ,CAAEkxB,EAAiE1gD,KACtH,MAAM2gD,EAAYD,EAAQA,EAAOvnD,OAAS,GAIpCsmD,GAAmBz/C,EAAKoP,GAAI,aAWlC,OATMuxC,GAAaA,EAAUlB,iBAAmBA,EAM/CkB,EAAUxO,MAAM1xC,KAAMT,GALtB0gD,EAAOjgD,KAAM,CACZg/C,kBACAtN,MAAO,CAAEnyC,KAMJ0gD,CAAM,GACX,IAGH,IAAIpvB,EAAQ,KACRsb,EAAMtkB,EAEV,UAAc6pB,MAAAA,EAAAA,gBAAOsN,KAAqBgB,EAAa,CACtD,MAAM74B,EAAQ/mB,KAAK+/C,aAAchU,EAAKuF,EAAOsN,GAEvCnuB,IACLA,EAAQ1J,EAAM0J,OAGfsb,EAAMhlB,EAAMglB,GACb,CAGA,OAAMtb,EAIC,IAAIykB,GAAOzkB,EAAOsb,GAHjB,IAAImJ,GAAOztB,EAIpB,CAcO,MAAAxhB,CAAQ+5C,GACd,MAAMj5B,EAAQi5B,aAAuB9K,GAAQ8K,EAAc9K,GAAM0B,UAAWoJ,GAK5E,GAHAC,GAAwBl5B,EAAO/mB,KAAKwD,UAG/BujB,EAAMouB,YACV,OAAO,IAAIiI,GAAkBp9C,KAAKwD,UAInC,MAAQitB,MAAOyvB,EAAYnU,IAAKoU,GAAangD,KAAK++C,sBAAuBh4B,GAAO,GAC1Eq5B,EAAkBF,EAAWthD,OAE7B+F,EAAQw7C,EAAS9jC,OAAS6jC,EAAW7jC,OAGrC2X,EAAUosB,EAAgBjY,gBAAiB+X,EAAW7jC,OAAQ1X,GAEpE,UAAYxF,KAAQ60B,EACnBh0B,KAAKu/C,+BAAgCpgD,GAItC,MAAMkhD,EAAgBrgD,KAAKo/C,gBAAiBc,GAK5C,OAJEn5B,EAAe0J,MAAQ4vB,EACvBt5B,EAAeglB,IAAMsU,EAAcr8B,QAG9B,IAAIo5B,GAAkBp9C,KAAKwD,SAAUwwB,EAC7C,CAYO,KAAAjiB,CAAOgV,EAAchQ,GAC3BkpC,GAAwBl5B,EAAO/mB,KAAKwD,UAIpC,MAAM88C,EAASv5B,EAAMiuB,UAAW,CAC/BxuB,UAAW,WACXssB,kBAAkB,IAInB,UAAY/zC,KAAWuhD,EAAS,CAC/B,MAAMrgD,EAAOlB,EAAQkB,KACrB,IAAIsgD,EAGJ,GAAKtgD,EAAKsO,GAAI,YAAewI,EAAQ2xB,UAAWzoC,GAE/CsgD,EAAgBrL,GAAM0B,UAAW32C,QAE3B,IAAMlB,EAAQq1C,aAAalM,QAASnhB,EAAM0J,QAAWxwB,EAAKsO,GAAI,cAAiB,CAErF,MAAMoa,EAAgB1oB,EAAKunC,eAAejT,MAAMisB,GACxCA,EAASjyC,GAAI,YAAewI,EAAQ2xB,UAAW8X,KAIlD73B,IACJ43B,EAAgBrL,GAAMyB,UAAWhuB,GAEnC,CAGK43B,IAECA,EAAcxU,IAAI7D,QAASnhB,EAAMglB,OACnCwU,EAAuBxU,IAAMhlB,EAAMglB,KAGjCwU,EAAc9vB,MAAMsX,SAAUhhB,EAAM0J,SACtC8vB,EAAuB9vB,MAAQ1J,EAAM0J,OAIxCzwB,KAAKiG,OAAQs6C,GAEf,CACD,CAcO,IAAApB,CAAMF,EAAoBC,GAChC,IAAI5N,EAEJ,GAAK4N,EAAehX,QAAS+W,EAAYlT,KAAQ,CAGhD,MAAMntC,GAFNsgD,EAAiBl/C,KAAK8+C,iBAAkBI,GAAgB,IAE1BtgD,OACxB6hD,EAAc7hD,EAAOgoC,WAE3BqY,EAAcj/C,KAAK++C,sBAAuBE,GAAa,GAEvD3N,EAAQtxC,KAAKiG,OAAQg5C,GAErBC,EAAe7iC,QAAYzd,EAAOgoC,WAAa6Z,CAChD,MACCnP,EAAQtxC,KAAKiG,OAAQg5C,GAGtB,OAAOj/C,KAAK0F,OAAQw5C,EAAgB5N,EACrC,CAuBO,IAAAoP,CAAM35B,EAAcxQ,GAC1B,KAAQA,aAAqB6kC,IAC5B,MAAM,IAAI1tC,EACT,qCACA1N,KAAKwD,UAMP,GAFAy8C,GAAwBl5B,EAAO/mB,KAAKwD,UAE9BujB,EAAMouB,YAGL,CAEN,IAAI1tB,EAAWV,EAAM0J,MAEhBhJ,EAAS7oB,OAAO2P,GAAI,aAq/BA3P,EAr/BmC6oB,EAAS7oB,QAs/BhE+B,MAAMrB,KAAMV,EAAOkoC,eAAgBzP,MAAM/e,IAAUA,EAAM/J,GAAI,kBAr/BjEkZ,EAAWA,EAASktB,yBAAyBn8C,GAASA,EAAMyH,KAAKsO,GAAI,gBAGtEkZ,EAAWznB,KAAK2gD,cAAel5B,EAAUlR,GACzC,MAAMqqC,EAAgB5gD,KAAKwD,SAASm9B,UAOpC,OAJKigB,EAAczL,aAAeyL,EAAc/f,mBAAoBxb,QAAS0B,EAAM0J,QAClFzwB,KAAKu9C,aAAc91B,GAGb,IAAIytB,GAAOztB,EACnB,CAlBC,OAAOznB,KAAK6gD,WAAY95B,EAAOxQ,GA0/BlC,IAA4B3X,CAv+B3B,CASO,MAAAkiD,CAAQ/5B,EAAcxQ,GAC5B,KAAQA,aAAqB6kC,IAO5B,MAAM,IAAI1tC,EACT,uCACA1N,KAAKwD,UAOP,GAHAy8C,GAAwBl5B,EAAO/mB,KAAKwD,UAG/BujB,EAAMouB,YACV,OAAOpuB,EAIR,MAAQ0J,MAAOyvB,EAAYnU,IAAKoU,GAAangD,KAAK++C,sBAAuBh4B,GAAO,GAC1Eq5B,EAAkBF,EAAWthD,OAG7BmiD,EAAW/gD,KAAKghD,gBAAiBZ,EAAiBF,EAAW7jC,OAAQ8jC,EAAS9jC,OAAQ9F,GAGtFka,EAAQzwB,KAAKo/C,gBAAiB2B,EAAStwB,OAGvCA,EAAMpL,QAAS07B,EAAStwB,QAC7BswB,EAAShV,IAAI1vB,SAGd,MAAM0vB,EAAM/rC,KAAKo/C,gBAAiB2B,EAAShV,KAE3C,OAAO,IAAImJ,GAAOzkB,EAAOsb,EAC1B,CAeO,MAAAkV,CAAQC,EAAiBC,GAC/B,MAAMnqC,EAAa,IAAIm7B,GAAkBnyC,KAAKwD,SAAU09C,EAASC,EAAY/Q,iBAM7E,OAJApwC,KAAK0F,OAAQytC,GAASS,aAAcuN,GAAenqC,GACnDhX,KAAKm/C,KAAMjK,GAAMyB,UAAWwK,GAAehO,GAASC,UAAWp8B,EAAY,IAC3EhX,KAAKiG,OAAQivC,GAAM0B,UAAWuK,IAEvBnqC,CACR,CAgBO,wBAAAoqC,CAA0BC,GAChCrhD,KAAKq9C,aAAavrC,OAAQuvC,EAC3B,CAiBO,gBAAAC,CAAkBrM,EAAiC54B,GACzD,OAAO82B,GAASC,UAAW6B,EAAgB54B,EAC5C,CAOO,mBAAAklC,CAAqBthD,GAC3B,OAAOkzC,GAASS,aAAc3zC,EAC/B,CAOO,oBAAAuhD,CAAsBvhD,GAC5B,OAAOkzC,GAASe,cAAej0C,EAChC,CAUO,WAAAwhD,CAAahxB,EAAiBsb,GACpC,OAAO,IAAImJ,GAAOzkB,EAAOsb,EAC1B,CAKO,aAAA2V,CAAezhD,GACrB,OAAOi1C,GAAM0B,UAAW32C,EACzB,CAQO,aAAA0hD,CAAe5qC,GACrB,OAAOm+B,GAAMyB,UAAW5/B,EACzB,CAgGO,eAAA6qC,IAAoB1lD,GAC1B,OAAO,IAAI26C,MAAc36C,EAC1B,CA+BO,UAAA2lD,CAAYC,EAAwC,YAC1D,IAAM9hD,KAAKs9C,aAMV,MAAM,IAAI5vC,EAAe,0CAA2C1N,KAAKwD,UAG1E,OAAOxD,KAAKs9C,aAAct9C,KAAM8hD,EACjC,CAQO,oBAAAC,CAAsBC,GAC5BhiD,KAAKs9C,aAAe0E,CACrB,CAOO,iBAAAC,GACNjiD,KAAKs9C,aAAe,IACrB,CAWQ,YAAAyC,CAAct4B,EAAoB6pB,EAAuBsN,GAChE,IAAIj2B,EAsBAu5B,EAZJ,GALCv5B,EADIi2B,EACYuD,GAAoB16B,GAEpBA,EAAS7oB,OAAO2P,GAAI,SAAYkZ,EAAS7oB,OAAOA,OAAS6oB,EAAS7oB,QAG7E+pB,EAML,MAAM,IAAIjb,EACT,yCACA1N,KAAKwD,UAON0+C,EADItD,EACgB5+C,KAAK8+C,iBAAkBr3B,GAAU,GAEjCA,EAAS7oB,OAAO2P,GAAI,SAAY6zC,GAAe36B,GAAaA,EAGjF,MAAMnvB,EAAWqwB,EAA8CqnB,aAAckS,EAAkB7lC,OAAQi1B,GAEvG,UAAYnyC,KAAQmyC,EACnBtxC,KAAKqiD,0BAA2BljD,GAGjC,MAAMmjD,EAAcJ,EAAkBzN,aAAcn8C,GAC9Cm4B,EAAQzwB,KAAKo/C,gBAAiB8C,GAG9BzxB,EAAMpL,QAAS68B,IACpBI,EAAYjmC,SAGb,MAAM0vB,EAAM/rC,KAAKo/C,gBAAiBkD,GAElC,OAAO,IAAIpN,GAAOzkB,EAAOsb,EAC1B,CAMQ,aAAAwW,CAAe3jD,EAAiBu1C,EAAqBI,EAAmBiO,GAC/E,IAAIhoD,EAAI25C,EACR,MAAMsO,EAAiC,GAEvC,KAAQjoD,EAAI+5C,GAAY,CACvB,MAAMj8B,EAAQ1Z,EAAOuoC,SAAU3sC,GACzBqoB,EAASvK,EAAM/J,GAAI,SACnBm0C,EAAcpqC,EAAM/J,GAAI,oBAU9B,GAAKm0C,GAAe1iD,KAAK2iD,sBAAuBH,EAAalqC,GAC5DmqC,EAAc7iD,KAAM,IAAIuzC,GAAUv0C,EAAQpE,SAC3C,GAOUqoB,IAAW6/B,GAAeE,GAAmBJ,EAAalqC,GAAU,CAE7E,MAAMuqC,EAAeL,EAAY5Z,SAGjCtwB,EAAM+b,UACNwuB,EAAaxR,aAAc/4B,GAE3B1Z,EAAOoxC,aAAcx1C,EAAGqoD,GACxB7iD,KAAKqiD,0BAA2BQ,GAEhCJ,EAAc7iD,KAAM,IAAIuzC,GAAUv0C,EAAQpE,GAC3C,MAOCwF,KAAKuiD,cAAejqC,EAAO,EAAGA,EAAMsuB,WAAY4b,GAGjDhoD,GACD,CAGA,IAAIsoD,EAAe,EAEnB,UAAYr7B,KAAYg7B,EAAgB,CAIvC,GAHAh7B,EAASpL,QAAUymC,EAGdr7B,EAASpL,QAAU83B,EACvB,SAGmBn0C,KAAKo/C,gBAAiB33B,GAGxBpC,QAASoC,KAC1Bq7B,IACAvO,IAEF,CAEA,OAAOW,GAAMqB,6BAA8B33C,EAAQu1C,EAAav1C,EAAQ21C,EACzE,CAMQ,eAAAyM,CAAiBpiD,EAAiBu1C,EAAqBI,EAAmBwO,GACjF,IAAIvoD,EAAI25C,EACR,MAAM6O,EAAmC,GAKzC,KAAQxoD,EAAI+5C,GAAY,CACvB,MAAMj8B,EAAQ1Z,EAAOuoC,SAAU3sC,GAG/B,GAAM8d,EAAM/J,GAAI,oBAahB,GAAK+J,EAAMowB,UAAWqa,GAAtB,CACC,MAAME,EAAY3qC,EAAMwuB,cAClBniC,EAAQ2T,EAAMsuB,WAGpBtuB,EAAM+b,UACNz1B,EAAOoxC,aAAcx1C,EAAGyoD,GAExBjjD,KAAKu/C,+BAAgCjnC,GAGrC0qC,EAAgBpjD,KACf,IAAIuzC,GAAUv0C,EAAQpE,GACtB,IAAI24C,GAAUv0C,EAAQpE,EAAImK,IAI3BnK,GAAKmK,EACL4vC,GAAa5vC,EAAQ,CAGtB,MASK3E,KAAKkjD,wBAAyBH,EAAezqC,IACjD0qC,EAAgBpjD,KACf,IAAIuzC,GAAUv0C,EAAQpE,GACtB,IAAI24C,GAAUv0C,EAAQpE,EAAI,IAG3BA,MAUDwF,KAAKghD,gBAAiB1oC,EAAO,EAAGA,EAAMsuB,WAAYmc,GAElDvoD,UA5DCA,GA6DF,CAGA,IAAIsoD,EAAe,EAEnB,UAAYr7B,KAAYu7B,EAAkB,CAIzC,GAHAv7B,EAASpL,QAAUymC,EAGdr7B,EAASpL,QAAU83B,GAAe1sB,EAASpL,QAAUk4B,EACzD,SAGmBv0C,KAAKo/C,gBAAiB33B,GAGxBpC,QAASoC,KAC1Bq7B,IACAvO,IAEF,CAEA,OAAOW,GAAMqB,6BAA8B33C,EAAQu1C,EAAav1C,EAAQ21C,EACzE,CAWQ,UAAAsM,CAAY95B,EAAcxQ,GAEjC,MAAQka,MAAOyvB,EAAYnU,IAAKoU,GAAangD,KAAK++C,sBAAuBh4B,GAAO,GAC1Eq5B,EAAkBF,EAAWthD,OAG7BmiD,EAAW/gD,KAAKuiD,cAAenC,EAAiBF,EAAW7jC,OAAQ8jC,EAAS9jC,OAAQ9F,GAGpFka,EAAQzwB,KAAKo/C,gBAAiB2B,EAAStwB,OAGvCA,EAAMpL,QAAS07B,EAAStwB,QAC7BswB,EAAShV,IAAI1vB,SAEd,MAAM0vB,EAAM/rC,KAAKo/C,gBAAiB2B,EAAShV,KAE3C,OAAO,IAAImJ,GAAOzkB,EAAOsb,EAC1B,CAWQ,aAAA4U,CAAel5B,EAAoBlR,GAE1C,GAAKA,EAAUmyB,UAAWjhB,EAAS7oB,QAClC,OAAOukD,GAAwB17B,EAASzD,SAIpCyD,EAAS7oB,OAAO2P,GAAI,WACxBkZ,EAAW26B,GAAe36B,IAI3B,MAAM27B,EAAcpjD,KAAK09C,uBAAwB,8BAC/C0F,EAAqB/H,UAAYh0B,OAAOC,kBAC1C87B,EAAY1a,UAAY,KAAM,EAG5BjhB,EAAS7oB,OAAoBoxC,aAAcvoB,EAASpL,OAAQ+mC,GAG9D,MAAMC,EAAY,IAAInO,GAAOztB,EAAUA,EAASgtB,aAAc,IAG9Dz0C,KAAK0gD,KAAM2C,EAAW9sC,GAGtB,MAAMmpC,EAAc,IAAIvM,GAAUiQ,EAAYxkD,OAASwkD,EAAYx+C,OACnEw+C,EAAY/uB,UAGZ,MAAMigB,EAAaoL,EAAYpL,WACzBD,EAAYqL,EAAYrL,UAE9B,OAAKC,aAAsB/L,IAAQ8L,aAAqB9L,GAChDiX,GAAgBlL,EAAYD,GAI7B8O,GAAwBzD,EAChC,CAWQ,qBAAAiD,CAAuBW,EAA2BC,GACzD,IAAMC,GAAaF,EAASC,GAC3B,OAAO,EAIR,GAAKD,EAAQthD,OAASuhD,EAAOvhD,MAAQshD,EAAQt2C,WAAau2C,EAAOv2C,SAChE,OAAO,EAIR,UAAYjW,KAAOusD,EAAQ1Z,mBAE1B,GAAa,UAAR7yC,GAA2B,UAARA,GAKnBwsD,EAAOlT,aAAct5C,IAASwsD,EAAO7oB,aAAc3jC,KAAUusD,EAAQ5oB,aAAc3jC,GACvF,OAAO,EAKT,UAAYA,KAAOusD,EAAQpZ,gBAC1B,GAAKqZ,EAAO9S,SAAU15C,IAASwsD,EAAOpZ,SAAUpzC,KAAUusD,EAAQnZ,SAAUpzC,GAC3E,OAAO,EAKT,UAAYA,KAAOusD,EAAQ1Z,mBAEb,UAAR7yC,GAA2B,UAARA,IAKlBwsD,EAAOlT,aAAct5C,IAC1BiJ,KAAKyF,aAAc1O,EAAKusD,EAAQ5oB,aAAc3jC,GAAQwsD,IAIxD,UAAYxsD,KAAOusD,EAAQpZ,gBACpBqZ,EAAO9S,SAAU15C,IACtBiJ,KAAKw+C,SAAUznD,EAAKusD,EAAQnZ,SAAUpzC,GAAQwsD,GAIhD,UAAYxsD,KAAOusD,EAAQtZ,gBACpBuZ,EAAOld,SAAUtvC,IACtBiJ,KAAKknC,SAAUnwC,EAAKwsD,GAItB,OAAO,CACR,CAWQ,uBAAAL,CAAyBI,EAA2BG,GAC3D,IAAMD,GAAaF,EAASG,GAC3B,OAAO,EAIR,GAAKH,EAAQthD,OAASyhD,EAASzhD,MAAQshD,EAAQt2C,WAAay2C,EAASz2C,SACpE,OAAO,EAIR,UAAYjW,KAAOusD,EAAQ1Z,mBAE1B,GAAa,UAAR7yC,GAA2B,UAARA,KAKlB0sD,EAASpT,aAAct5C,IAAS0sD,EAAS/oB,aAAc3jC,KAAUusD,EAAQ5oB,aAAc3jC,IAC5F,OAAO,EAKT,IAAM0sD,EAASpd,YAAaid,EAAQtZ,iBACnC,OAAO,EAIR,UAAYjzC,KAAOusD,EAAQpZ,gBAE1B,IAAMuZ,EAAShT,SAAU15C,IAAS0sD,EAAStZ,SAAUpzC,KAAUusD,EAAQnZ,SAAUpzC,GAChF,OAAO,EAKT,UAAYA,KAAOusD,EAAQ1Z,mBAEb,UAAR7yC,GAA2B,UAARA,GAIxBiJ,KAAK0G,gBAAiB3P,EAAK0sD,GAS5B,OALAzjD,KAAKsmC,YAAa3lC,MAAMrB,KAAMgkD,EAAQtZ,iBAAmByZ,GAGzDzjD,KAAKy+C,YAAa99C,MAAMrB,KAAMgkD,EAAQpZ,iBAAmBuZ,IAElD,CACR,CAUQ,qBAAA1E,CAAuBh4B,EAAc28B,GAA0B,GACtE,MAAMC,EAAa58B,EAAM0J,MACnBmzB,EAAW78B,EAAMglB,IAKvB,GAHAkU,GAAwBl5B,EAAO/mB,KAAKwD,UAG/BujB,EAAMouB,YAAc,CACxB,MAAM1tB,EAAWznB,KAAK8+C,iBAAkB/3B,EAAM0J,MAAOizB,GAErD,OAAO,IAAIxO,GAAOztB,EAAUA,EAC7B,CAEA,MAAM04B,EAAWngD,KAAK8+C,iBAAkB8E,EAAUF,GAC5C/+C,EAAUw7C,EAASvhD,OAAoBgoC,WACvCsZ,EAAalgD,KAAK8+C,iBAAkB6E,EAAYD,GAKtD,OAFAvD,EAAS9jC,QAAY8jC,EAASvhD,OAAoBgoC,WAAajiC,EAExD,IAAIuwC,GAAOgL,EAAYC,EAC/B,CAgBQ,gBAAArB,CAAkBr3B,EAAoBi8B,GAA0B,GACvE,MAAMrE,EAAiB53B,EAASpL,OAC1BijC,EAAiB73B,EAAS7oB,OAGhC,GAAK6oB,EAAS7oB,OAAO2P,GAAI,gBAUxB,MAAM,IAAIb,EAAe,yCAA0C1N,KAAKwD,UAIzE,GAAKikB,EAAS7oB,OAAO2P,GAAI,aAUxB,MAAM,IAAIb,EAAe,sCAAuC1N,KAAKwD,UAItE,GAAKikB,EAAS7oB,OAAO2P,GAAI,cAUxB,MAAM,IAAIb,EAAe,uCAAwC1N,KAAKwD,UAIvE,IAAMkgD,GAAkBpE,EAAe/wC,GAAI,UAAas1C,GAAuBvE,EAAe1gD,QAC7F,OAAO6oB,EAASzD,QAIjB,GAAK6/B,GAAuBvE,GAC3B,OAAO73B,EAASzD,QAIjB,GAAKs7B,EAAe/wC,GAAI,SACvB,OAAOvO,KAAK8+C,iBAAkBsD,GAAe36B,GAAYi8B,GAQ1D,GAAKrE,GALYC,EAAwB1Y,WAKT,CAC/B,MAAM8Y,EAAc,IAAIvM,GAAUmM,EAAe1gD,OAAiB0gD,EAAwB16C,MAAQ,GAElG,OAAO5E,KAAK8+C,iBAAkBY,EAAagE,EAC5C,CAIC,GAAwB,IAAnBrE,EAAuB,CAC3B,MAAMK,EAAc,IAAIvM,GAAUmM,EAAe1gD,OAAqB0gD,EAAwB16C,OAE9F,OAAO5E,KAAK8+C,iBAAkBY,EAAagE,EAC5C,CAKK,CACJ,MAAMI,EAAgBxE,EAAwB16C,MAAQ,EAGhDm/C,EAAezE,EAAwB1W,SAG3C0W,EAAe1gD,OAAgBoxC,aAAc8T,EAAaC,GAC5D/jD,KAAKqiD,0BAA2B0B,GAGhC,MAAMp/C,EAAU26C,EAAwB1Y,WAAayY,EAC/C2E,EAAgB1E,EAAwBnX,gBAAiBkX,EAAgB16C,GAG/Eo/C,EAAW1S,aAAc2S,GAGzB,MAAMtE,EAAc,IAAIvM,GAAYmM,EAAwB1gD,OAAQklD,GAEpE,OAAO9jD,KAAK8+C,iBAAkBY,EAAagE,EAC5C,CAEF,CAaQ,yBAAArB,CAA2BtrC,GAElC,IAAMA,EAAQzgB,KAAKiY,GAAI,eACtB,OAKD,GAAKwI,EAAQxI,GAAI,WAChB,UAAY+J,KAASvB,EAAQ+vB,cAC5B9mC,KAAKqiD,0BAA2B/pC,GAIlC,MAAMzY,EAAOkX,EAAiBlX,GAE9B,IAAMA,EACL,OAGD,IAAIokD,EAAQjkD,KAAKq9C,aAAaj1C,IAAKvI,GAE7BokD,IACLA,EAAQ,IAAIlwC,IACZ/T,KAAKq9C,aAAazrC,IAAK/R,EAAIokD,IAG5BA,EAAM/1C,IAAK6I,GACTA,EAAiBwkC,aAAe0I,CACnC,CAaQ,8BAAA1E,CAAgCxoC,GAGvC,GAAKA,EAAQxI,GAAI,WAChB,UAAY+J,KAASvB,EAAQ+vB,cAC5B9mC,KAAKu/C,+BAAgCjnC,GAIvC,MAAMzY,EAAOkX,EAAiBlX,GAE9B,IAAMA,EACL,OAGD,MAAMokD,EAAQjkD,KAAKq9C,aAAaj1C,IAAKvI,GAE/BokD,GAINA,EAAMnyC,OAAQiF,EAGf,EAuBD,SAASorC,GAAoB16B,GAC5B,IAAI7oB,EAAS6oB,EAAS7oB,OAEtB,MAASilD,GAAuBjlD,IAAW,CAC1C,IAAMA,EACL,OAGDA,EAASA,EAAOA,MACjB,CAEA,OAASA,CACV,CAQA,SAASgkD,GAAmBjnD,EAAqBhD,GAChD,OAAKgD,EAAEqR,SAAWrU,EAAEqU,YAERrR,EAAEqR,SAAWrU,EAAEqU,WAKpBrR,EAAEm1C,cAAgBn4C,EAAEm4C,aAC5B,CAcA,SAASqS,GAAwB17B,GAChC,MAAM6sB,EAAa7sB,EAAS6sB,WAE5B,GAAKA,GAAcA,EAAW/lC,GAAI,SACjC,OAAO,IAAI4kC,GAAUmB,EAAYA,EAAWxxC,KAAKxK,QAGlD,MAAM+7C,EAAY5sB,EAAS4sB,UAE3B,OAAKA,GAAaA,EAAU9lC,GAAI,SACxB,IAAI4kC,GAAUkB,EAAW,GAG1B5sB,CACR,CAcA,SAAS26B,GAAe36B,GACvB,GAAKA,EAASpL,QAAYoL,EAAS7oB,OAAiBkE,KAAKxK,OACxD,OAAO,IAAI66C,GAAU1rB,EAAS7oB,OAAOA,OAAiB6oB,EAAS7oB,OAAiBgG,MAAS,GAG1F,GAAyB,IAApB6iB,EAASpL,OACb,OAAO,IAAI82B,GAAU1rB,EAAS7oB,OAAOA,OAAiB6oB,EAAS7oB,OAAiBgG,OAIjF,MAAMs/C,EAAez8B,EAAS7oB,OAAiBkE,KAAKhB,MAAO2lB,EAASpL,QAYpE,OATEoL,EAAS7oB,OAAiB6pC,MAAUhhB,EAAS7oB,OAAiBkE,KAAKhB,MAAO,EAAG2lB,EAASpL,QAGtFoL,EAAS7oB,OAAOA,OAAgBoxC,aAC/BvoB,EAAS7oB,OAAiBgG,MAAS,EACrC,IAAI2jC,GAAM9gB,EAASnxB,KAAKkN,SAAU0gD,IAI5B,IAAI/Q,GAAU1rB,EAAS7oB,OAAOA,OAAiB6oB,EAAS7oB,OAAiBgG,MAAS,EAC1F,CASA,SAAS46C,GAAgBjlD,EAAUH,GAElC,MAAM+pD,EAAmB5pD,EAAGuI,KAAKxK,OAIjC,OAHAiC,EAAGkuC,OAASruC,EAAG0I,KACf1I,EAAGi6B,UAEI,IAAI8e,GAAU54C,EAAI4pD,EAC1B,CAEA,MAAMC,GAAqB,CAAE7b,GAAM6S,GAAkBjJ,GAAkBuJ,GAAcyB,GAAYxB,IAQjG,SAASgE,GAAuBrO,EAAuB+S,GACtD,UAAYllD,KAAQmyC,EAAQ,CAC3B,IAAM8S,GAAmB/sB,MAAQitB,GAAanlD,aAAgBmlD,IAgB7D,MAAM,IAAI52C,EAAe,uCAAwC22C,GAG5DllD,EAAKoP,GAAI,UACdoxC,GAAyBxgD,EAAkB2nC,cAAeud,EAE5D,CACD,CAOA,SAASR,GAAuB1kD,GAC/B,OAAOA,IAAUA,EAAKoP,GAAI,qBAAwBpP,EAAKoP,GAAI,oBAC5D,CAOA,SAAS0xC,GAAwBl5B,EAAcs9B,GAC9C,MAAMl9B,EAAiBg7B,GAAoBp7B,EAAM0J,OAC3C8zB,EAAepC,GAAoBp7B,EAAMglB,KAE/C,IAAM5kB,IAAmBo9B,GAAgBp9B,IAAmBo9B,EAiB3D,MAAM,IAAI72C,EAAe,sCAAuC22C,EAElE,CAMA,SAASb,GAAa7nD,EAAqBhD,GAC1C,OAAgB,OAATgD,EAAEkE,IAAwB,OAATlH,EAAEkH,EAC3B,CCtvEO,MAAM2kD,GAAgB5I,GAAiCA,EAAYv1C,eAAgB,KAS7Eo+C,GAAuB7I,IACnC,MAAM8I,EAAO9I,EAAYt2C,cAAe,QAIxC,OAHAo/C,EAAKC,QAAQC,UAAY,OACzBF,EAAKG,UAAY,IAEVH,CAAI,EAUCI,GAAclJ,IAC1B,MAAMmJ,EAAWnJ,EAAYt2C,cAAe,MAG5C,OAFAy/C,EAASJ,QAAQC,UAAY,OAEtBG,CAAQ,EAMHC,GAAuB,EAKvBC,GAAgB,IAASC,OAAQF,IAevC,SAASG,GAAkBC,GACjC,MAAuB,iBAAXA,EACJA,EAAQhzC,OAAQ,EAAG4yC,MAA2BC,GAG/CpiC,GAAQuiC,IAAeA,EAAQtiD,KAAKsP,OAAQ,EAAG4yC,MAA2BC,EAClF,CAaO,SAASI,GAAgBC,GAC/B,OAAOA,EAAQxiD,KAAKxK,QAAU0sD,IAAwBG,GAAkBG,EACzE,CAcO,SAASC,GAAsBD,GACrC,MAAMxiD,EAAyB,iBAAXwiD,EAAsBA,EAAUA,EAAQxiD,KAE5D,OAAKqiD,GAAkBG,GACfxiD,EAAKhB,MAAOkjD,IAGbliD,CACR,CAeA,SAAS0iD,GAAsBhwC,EAAc1S,GAC5C,GAAKA,EAAKmrB,SAAWP,GAASyB,UAAY,CACzC,MAAM8sB,EAAen5C,EAAKo5C,UAAUr8B,cAAcF,YAAaw8B,eAE/D,GAAgC,GAA3BF,EAAa7E,YAAmB6E,EAAaI,WAAY,GAAIC,UAAY,CAC7E,MAAMC,EAAYN,EAAaI,WAAY,GAAIl1B,eACzCs1B,EAAYR,EAAaI,WAAY,GAAIlI,YAE1CgR,GAAkB5I,IAAeE,GAAauI,IAClD/I,EAAagB,SAAUV,EAAW,EAEpC,CACD,CACD,C,eCxKI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQjf,OC4CR,MAAMmoB,WAAiCnyC,KAIrCoyC,aAAiC,IAAI3xC,IAKrC8nC,aAKA8J,iBAAqC,IAAI5xC,IAKzC6xC,eAAmC,IAAI7xC,IAKvC8xC,YAA6B,IAAI9xC,IAKjC4sB,UAkCRmlB,cAAgC,KAKhCC,wBAA6C,KAQrD,WAAAhkD,CAAa85C,EAA4Blb,GACxC9yB,QAEA7N,KAAK67C,aAAeA,EACpB77C,KAAK2gC,UAAYA,EAEjB3gC,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,eAAe,GAMpB,EAAI1I,UAAY,EAAID,WACxBjJ,KAAKyP,GAA2B,sBAAsB,KAC/CzP,KAAKgmD,aACVhmD,KAAKk4B,QACN,IAIFl4B,KAAK4R,IAAK,eAAe,GAEzB5R,KAAKyP,GAA2B,sBAAsB,KAC/CzP,KAAKinC,aACVjnC,KAAKk4B,QACN,GAEF,CAcO,UAAA+tB,CAAY96C,EAAkBhM,GACpC,GAAc,SAATgM,EACCnL,KAAK67C,aAAaqK,aAAc/mD,EAAKP,SACzCoB,KAAK6lD,YAAY33C,IAAK/O,OAEjB,CAGN,IAAMa,KAAK67C,aAAaqK,aAAc/mD,GACrC,OAGD,GAAc,eAATgM,EACJnL,KAAK2lD,iBAAiBz3C,IAAK/O,OACrB,IAAc,aAATgM,EAEL,CASN,MAAM,IAAIuC,EAAe,6BAA8B1N,KACxD,CAXCA,KAAK4lD,eAAe13C,IAAK/O,EAW1B,CACD,CACD,CAaO,MAAA+4B,GAKN,GAAKl4B,KAAKinC,cAAgB,EAAIh+B,UAO7B,OASD,IAAIk9C,EAA4C,KAChD,MAAMC,IAAkC,EAAIl9C,UAAY,EAAID,aAAajJ,KAAKgmD,YAG9E,UAAYjvC,KAAW/W,KAAK4lD,eAC3B5lD,KAAKqmD,wBAAyBtvC,GAM1BqvC,GAICpmD,KAAK8lD,gBAAkB9lD,KAAKsmD,8BAChCtmD,KAAKumD,sBAIDvmD,KAAK8lD,cACTK,EAAuBnmD,KAAKwmD,2BAGnBxmD,KAAKymD,kCACdN,EAAuBnmD,KAAK2gC,UAAUE,mBAGtC7gC,KAAK4lD,eAAe13C,IAAKi4C,EAAqBvnD,UAItCoB,KAAK8lD,eAAiB9lD,KAAK8lD,cAAc7+C,aAElDk/C,EAAuBnmD,KAAK67C,aAAae,kBAAmB58C,KAAK8lD,eAM5DK,GAAwBA,EAAqBvnD,OAAO2P,GAAI,WAE5D43C,EAAuB,GAAajS,cAAeiS,EAAqBvnD,UAI1E,UAAYmY,KAAW/W,KAAK2lD,iBAC3B3lD,KAAK0mD,aAAc3vC,GAGpB,UAAYA,KAAW/W,KAAK4lD,eAC3B5lD,KAAK2mD,gBAAiB5vC,EAAS,CAAEovC,yBAGlC,UAAYhnD,KAAQa,KAAK6lD,aAClB7lD,KAAK4lD,eAAe33C,IAAK9O,EAAKP,SAA2BoB,KAAK67C,aAAaqK,aAAc/mD,EAAKP,SACnGoB,KAAK4mD,YAAaznD,EAAkB,CAAEgnD,yBAYxC,GAAKC,EACJ,GAAKD,EAAuB,CAC3B,MAAMU,EAAoB7mD,KAAK67C,aAAamB,kBAAmBmJ,GACzDvK,EAAciL,EAAkBjoD,OAAOihB,cAEvCslC,GAAkB0B,EAAkBjoD,QAKzCoB,KAAK8lD,cAAgBe,EAAkBjoD,OAHvCoB,KAAK8lD,cAAgBgB,GAAiBlL,EAAaiL,EAAkBjoD,OAAQioD,EAAkBxqC,OAKjG,MAECrc,KAAK8lD,cAAgB,KAMvB9lD,KAAK+mD,eACL/mD,KAAKgnD,mBAELhnD,KAAK67C,aAAaoL,kCAElBjnD,KAAK6lD,YAAY9zC,QACjB/R,KAAK2lD,iBAAiB5zC,QACtB/R,KAAK4lD,eAAe7zC,OAKrB,CAWQ,uBAAAs0C,CAAyBlF,GAChC,MAAMpF,EAAa/7C,KAAK67C,aAAaqK,aAAc/E,GAEnD,IAAMpF,EAEL,OASD,MAAMmL,EAAoBvmD,MAAMrB,KAC/By8C,EAAWz1C,YAEN6gD,EAAsBxmD,MAAMrB,KACjCU,KAAK67C,aAAauL,kBAAmBjG,EAAa,CAAEkG,cAAc,KAE7D9tD,EAAOyG,KAAKsnD,eAAgBJ,EAAmBC,GAC/CI,EAAUvnD,KAAKwnD,mBAAoBjuD,EAAM2tD,EAAmBC,EAAqBM,IAEvF,IAAsC,IAAjCF,EAAQ99C,QAAS,UAAoB,CACzC,MAAMi+C,EAAU,CAAEC,MAAO,EAAGjiD,OAAQ,EAAGoM,OAAQ,GAE/C,UAAY81C,KAAUL,EACrB,GAAgB,WAAXK,EAAsB,CAC1B,MAAMC,EAAcH,EAAQC,MAAQD,EAAQhiD,OACtCoiD,EAAcJ,EAAQC,MAAQD,EAAQ51C,OACtCi2C,EAAY5G,EAAYha,SAAU0gB,IAKnCE,GAAcA,EAAUx5C,GAAI,cAAkBw5C,EAAUx5C,GAAI,eAChEvO,KAAKgoD,uBAAwBD,EAA0Bb,EAAmBY,IAG3E7hD,GAAQkhD,EAAqBU,IAC7BH,EAAQC,OACT,MACCD,EAASE,IAGZ,CACD,CAQQ,sBAAAI,CAAwB7G,EAA0BpF,GAEzD/7C,KAAK67C,aAAaoM,iBAAkBlM,GACpC/7C,KAAK67C,aAAaqM,aAAcnM,EAAYoF,GAG5CnhD,KAAK4lD,eAAe13C,IAAKizC,GAWzBnhD,KAAK2lD,iBAAiBz3C,IAAKizC,EAC5B,CAYQ,wBAAAqF,GACP,MAAM2B,EAAWnoD,KAAK2gC,UAAUE,mBAEhC,OAAKsnB,EAASvpD,OAAO2P,GAAI,SACjB,GAAa2lC,cAAeiU,EAASvpD,QAErCupD,CAET,CASQ,0BAAA7B,GACP,GAAkC,GAA7BtmD,KAAK2gC,UAAUyW,aAAoBp3C,KAAK2gC,UAAUwU,YACtD,OAAO,EAYR,MAAMiT,EAAoBpoD,KAAK2gC,UAAUE,mBACnCpZ,EAAWznB,KAAK67C,aAAamB,kBAAmBoL,GAEtD,SAAK3gC,GAAY5E,GAAQ4E,EAAS7oB,SAAYumD,GAAkB19B,EAAS7oB,QAK1E,CAKQ,mBAAA2nD,GACP,MAAM8B,EAAgBroD,KAAK8lD,cAG3B,IAAMX,GAAkBkD,GAOvB,MAAM,IAAI36C,EAAe,gCAAiC1N,MAGtDqlD,GAAgBgD,GACpBA,EAAcpiD,SAEdoiD,EAAcvlD,KAAOulD,EAAcvlD,KAAKsP,OAAQ4yC,IAGjDhlD,KAAK8lD,cAAgB,IACtB,CAOQ,6BAAAW,GACP,GAAkC,GAA7BzmD,KAAK2gC,UAAUyW,aAAoBp3C,KAAK2gC,UAAUwU,YACtD,OAAO,EAGR,MAAMiT,EAAoBpoD,KAAK2gC,UAAUE,mBACnCynB,EAAkBF,EAAkBxpD,OACpC2pD,EAAkBH,EAAkB/rC,OAG1C,IAAMrc,KAAK67C,aAAaqK,aAAcoC,EAAgBhyD,MACrD,OAAO,EAGR,IAAQgyD,EAAgB/5C,GAAI,WAC3B,OAAO,EAKR,IAghBF,SAAqBwI,GACpB,GAAkD,SAA7CA,EAAQ2jB,aAAc,mBAC1B,OAAO,EAGR,MAAM97B,EAASmY,EAAQ25B,cAAc35B,GAAWA,EAAQs5B,aAAc,qBAEtE,OAAQzxC,GAAsD,QAA5CA,EAAO87B,aAAc,kBACxC,CAxhBQ8tB,CAAYF,GACjB,OAAO,EAGR,MAAMhU,EAAa8T,EAAkB9T,WAC/BD,EAAY+T,EAAkB/T,UAEpC,QAAKC,aAAsB,IAAYD,aAAqB,SAKvDkU,IAAoBD,EAAgBlX,mBAAyBkD,GAAeA,EAAW/lC,GAAI,UAAW,UAMtG,EAAItF,YAAeqrC,IAAcD,GAKvC,CAQQ,WAAAuS,CAAa6B,EAAoBlkD,GACxC,MAAM+gD,EAAUtlD,KAAK67C,aAAa6M,yBAA0BD,GAG5D,IAAIE,EAFe3oD,KAAK67C,aAAa+M,UAAWH,GAElB3lD,KAC9B,MAAM+lD,EAAStkD,EAAQ4hD,qBAElB0C,GAAUA,EAAOjqD,QAAU6pD,EAAS7pD,QAAUiqD,EAAOxsC,QAAUosC,EAAS7jD,QAC5E+jD,EAAe1D,GAAgB0D,GAShCG,GAAgBxD,EAASqD,EAK1B,CAOQ,YAAAjC,CAAcvF,GACrB,MAAMpF,EAAa/7C,KAAK67C,aAAaqK,aAAc/E,GAEnD,IAAMpF,EAKL,OAGD,MAAMgN,EAAcpoD,MAAMrB,KAAQy8C,EAA2Bx2C,YAAavI,KAAKgsD,GAAQA,EAAKhnD,OACtFinD,EAAe9H,EAAYvX,mBAGjC,UAAY7yC,KAAOkyD,EAClBjpD,KAAK67C,aAAaqN,uBAAwBnN,EAA0BhlD,EAAKoqD,EAAYzmB,aAAc3jC,GAAQoqD,GAI5G,UAAYpqD,KAAOgyD,EAEZ5H,EAAY9Q,aAAct5C,IAC/BiJ,KAAK67C,aAAasN,0BAA2BpN,EAA0BhlD,EAG1E,CAWQ,eAAA4vD,CAAiBxF,EAA0B58C,GAClD,MAAMw3C,EAAa/7C,KAAK67C,aAAaqK,aAAc/E,GAEnD,IAAMpF,EAGL,OAaD,GAAK,EAAI9yC,UAAY,CACpB,IAAImgD,EAAkB,KAEtB,UAAYhE,KAAWzkD,MAAMrB,KAAMy8C,EAAWz1C,YAAe,CAC5D,GAAK8iD,GAAmBvmC,GAAQumC,IAAqBvmC,GAAQuiC,GAAY,CACxErJ,EAAWrjB,YAEX,KACD,CAEA0wB,EAAkBhE,CACnB,CACD,CAEA,MAAMe,EAAuB5hD,EAAQ4hD,qBAC/Be,EAAoBnL,EAAWz1C,WAC/B6gD,EAAsBxmD,MAAMrB,KACjCU,KAAK67C,aAAauL,kBAAmBjG,EAAa,CAAEn6C,MAAM,KAMtDm/C,GAAwBA,EAAqBvnD,SAAWuiD,GAC5D2F,GAAmB/K,EAA2Bl8B,cAAesnC,EAAqBhB,EAAqB9pC,QAGxG,MAAM9iB,EAAOyG,KAAKsnD,eAAgBJ,EAAmBC,GAI/CI,EAAUvnD,KAAKwnD,mBAAoBjuD,EAAM2tD,EAAmBC,EAAqBkC,IAEvF,IAAI7uD,EAAI,EACR,MAAM8uD,EAA8B,IAAIv1C,IAQxC,UAAY6zC,KAAUL,EACL,WAAXK,GAMJ0B,EAAcp7C,IAAKg5C,EAAmB1sD,IACtCyL,GAAQihD,EAAmB1sD,KACL,UAAXotD,GAAiC,WAAXA,GACjCptD,IAIFA,EAAI,EAEJ,UAAYotD,KAAUL,EACL,WAAXK,GAOJl/B,GAAUqzB,EAA0BvhD,EAAG2sD,EAAqB3sD,IAC5DA,KAGoB,WAAXotD,GAOTkB,GAAgB5B,EAAmB1sD,GAAkB2sD,EAAqB3sD,GAAiBsI,MAC3FtI,KAKsB,UAAXotD,IAGX5nD,KAAKupD,0BAA2BvpD,KAAK67C,aAAa2N,UAAWrC,EAAqB3sD,KAClFA,KAOF,UAAY2E,KAAQmqD,EACbnqD,EAAK8H,YACVjH,KAAK67C,aAAaoM,iBAAkB9oD,EAOvC,CASQ,cAAAmoD,CAAgBJ,EAA8CC,GAGrE,OAFAD,EAqaF,SAA0CuC,EAAyCC,GAClF,MAAMC,EAAYhpD,MAAMrB,KAAMmqD,GAE9B,GAAyB,GAApBE,EAAUrxD,SAAgBoxD,EAC9B,OAAOC,EAGR,MAAMj2B,EAAOi2B,EAAWA,EAAUrxD,OAAS,GAEtCo7B,GAAQg2B,GACZC,EAAU3qD,MAGX,OAAO2qD,CACR,CAnbsBC,CAAiC1C,EAAmBlnD,KAAK+lD,yBAEtExsD,EAAM2tD,EAAmBC,EAAqB0C,GAAU7iD,KAAM,KAAMhH,KAAK67C,cACjF,CAoBQ,kBAAA2L,CACPD,EACAuC,EACAC,EACAC,GAGA,IAAsC,IAAjCzC,EAAQ99C,QAAS,YAAsD,IAAjC89C,EAAQ99C,QAAS,UAC3D,OAAO89C,EAGR,IAAI0C,EAA2C,GAC3CC,EAAc,GACdC,EAAgB,GAEpB,MAAMzC,EAAU,CAAEC,MAAO,EAAGjiD,OAAQ,EAAGoM,OAAQ,GAE/C,UAAY81C,KAAUL,EACL,WAAXK,EACJuC,EAAcvqD,KAAMmqD,EAAarC,EAAQC,MAAQD,EAAQhiD,SACnC,WAAXkiD,EACXsC,EAAYtqD,KAAMkqD,EAAWpC,EAAQC,MAAQD,EAAQ51C,UAErDm4C,EAAaA,EAAW9pD,OACvB5G,EAAM2wD,EAAaC,EAAeH,GAChChtD,KAAK4qD,GAAqB,UAAXA,EAAqB,SAAWA,KAGlDqC,EAAWrqD,KAAM,SAGjBsqD,EAAc,GACdC,EAAgB,IAEjBzC,EAASE,KAGV,OAAOqC,EAAW9pD,OACjB5G,EAAM2wD,EAAaC,EAAeH,GAChChtD,KAAK4qD,GAAqB,UAAXA,EAAqB,SAAWA,IAEnD,CASQ,yBAAA2B,CAA2Ba,GAClC,GAAMA,EAIN,GAAKA,EAAS77C,GAAI,SACjBvO,KAAK6lD,YAAY33C,IAAKk8C,QAChB,GAAKA,EAAS77C,GAAI,WACxB,UAAY+J,KAAS8xC,EAAStjB,cAC7B9mC,KAAKupD,0BAA2BjxC,EAGnC,CAKQ,gBAAA0uC,GAKP,GAAK,EAAI99C,UAAY,EAAID,WAAajJ,KAAKgmD,cAAgBhmD,KAAK4lD,eAAe5xC,KAC9E,OAID,GAAmC,IAA9BhU,KAAK2gC,UAAUyW,WAInB,OAHAp3C,KAAKqqD,2BACLrqD,KAAKsqD,uBAKN,MAAMC,EAAUvqD,KAAK67C,aAAaqK,aAAclmD,KAAK2gC,UAAU2R,iBAGzDtyC,KAAK81B,WAAcy0B,IAKpBvqD,KAAK2gC,UAAUuW,OACnBl3C,KAAKwqD,qBAAsBD,GAIlBvqD,KAAK+lD,yBAA2B/lD,KAAK+lD,wBAAwB0E,aACtEzqD,KAAKsqD,uBACLtqD,KAAK0qD,oBAAqBH,IAMdvqD,KAAKinC,aAAe,EAAIh+B,WACpCjJ,KAAK0qD,oBAAqBH,GAE5B,CAOQ,oBAAAC,CAAsBD,GAC7B,MAAM3O,EAAc2O,EAAQ1qC,cAEtB7f,KAAK+lD,0BACV/lD,KAAK+lD,wBA0SR,SAAuCnK,GACtC,MAAMlgB,EAAYkgB,EAAYt2C,cAAe,OAe7C,OAbAo2B,EAAU6U,UAAY,8BAEtBv5C,OAAOsyB,OAAQoS,EAAUr2B,MAAO,CAC/BoiB,SAAU,QACVpF,IAAK,EACLM,KAAM,UAENQ,MAAO,SAIRuY,EAAUvB,YAAc,IAEjBuB,CACR,CA3TkCivB,CAA8B/O,IAG9D,MAAMlgB,EAAY17B,KAAK+lD,wBAKvB,GAFA/lD,KAAK67C,aAAa+O,kBAAmBlvB,EAAW17B,KAAK2gC,YAE/C3gC,KAAK6qD,0BAA2BN,GACrC,OAGK7uB,EAAU/S,eAAiB+S,EAAU/S,eAAiB4hC,GAC3DA,EAAQ5kD,YAAa+1B,GAGtBA,EAAUvB,YAAcn6B,KAAK2gC,UAAUwW,oBAAsB,IAE7D,MAAM8E,EAAeL,EAAYO,eAC3B2O,EAAWlP,EAAY6F,cAE7BxF,EAAa8O,kBACbD,EAASE,mBAAoBtvB,GAC7BugB,EAAagP,SAAUH,EACxB,CAOQ,mBAAAJ,CAAqBH,GAC5B,MAAMtO,EAAesO,EAAQ1qC,cAAcF,YAAaw8B,eAGxD,IAAMn8C,KAAKkrD,yBAA0BjP,GACpC,OAQD,MAAMjV,EAAShnC,KAAK67C,aAAamB,kBAAmBh9C,KAAK2gC,UAAUqG,QAC7DvH,EAAQz/B,KAAK67C,aAAamB,kBAAmBh9C,KAAK2gC,UAAUlB,OAQlEwc,EAAakP,iBAAkBnkB,EAAOpoC,OAAQooC,EAAO3qB,OAAQojB,EAAM7gC,OAAQ6gC,EAAMpjB,QAG5E,EAAIvT,SAuMX,SAAmC22B,EAAwDwc,GAC1F,IAAIr9C,EAAS6gC,EAAO7gC,OAChByd,EAASojB,EAAOpjB,OAEfwG,GAAQjkB,IAAYymD,GAAgBzmD,KACxCyd,EAAS5S,GAAS7K,GAAW,EAC7BA,EAASA,EAAOqI,YAKjB,GAAKrI,EAAO4b,UAAYsF,KAAKsrC,cAAgB/uC,GAAUzd,EAAO0H,WAAWhO,OAAS,EACjF,OAGD,MAAM+yD,EAAgBzsD,EAAO0H,WAAY+V,GAIpCgvC,GAA4D,MAAzCA,EAA8BC,SACrDrP,EAAagP,SAAUhP,EAAaI,WAAY,GAElD,CA5NGkP,CAA0B9rB,EAAOwc,EAEnC,CAOQ,wBAAAiP,CAA0BjP,GACjC,IAAMj8C,KAAK67C,aAAa2P,sBAAuBvP,GAE9C,OAAO,EAGR,MAAMwP,EAAmBxP,GAAgBj8C,KAAK67C,aAAa6P,mBAAoBzP,GAE/E,QAAKwP,IAAoBzrD,KAAK2gC,UAAUtb,QAASomC,QAK3CzrD,KAAK2gC,UAAUwU,aAAen1C,KAAK2gC,UAAU+H,UAAW+iB,GAO/D,CAOQ,yBAAAZ,CAA2BN,GAClC,MAAM7uB,EAAY17B,KAAK+lD,wBACjB9J,EAAesO,EAAQ1qC,cAAcs8B,eAI3C,OAAMzgB,GAAaA,EAAU/S,gBAAkB4hC,IAK1CtO,EAAa0P,aAAejwB,IAAcA,EAAUpW,SAAU22B,EAAa0P,aAIzEjwB,EAAUvB,cAAgBn6B,KAAK2gC,UAAUwW,mBACjD,CAKQ,mBAAAkT,GACP,UAAYpyC,KAAOjY,KAAK0lD,aAAe,CACtC,MAAMzJ,EAAehkC,EAAIkkC,eAEzB,GAAKF,EAAa7E,WAAa,CAC9B,MAAMwU,EAAmB3zC,EAAI4zC,cACvB1K,EAAcnhD,KAAK67C,aAAaiQ,aAAcF,GAE/CA,GAAoBzK,GACxBlF,EAAa8O,iBAEf,CACD,CACD,CAKQ,oBAAAT,GACP,MAAM5uB,EAAY17B,KAAK+lD,wBAElBrqB,GACJA,EAAUz1B,QAEZ,CAKQ,YAAA8gD,GACP,GAAK/mD,KAAK81B,UAAY,CACrB,MAAM0e,EAAWx0C,KAAK2gC,UAAU2R,gBAE3BkC,GACJx0C,KAAK67C,aAAapc,MAAO+U,EAE3B,CACD,EAwBD,SAASsS,GAAiBlL,EAA0BmQ,EAA4C1vC,GAC/F,MAAM/V,EAAaylD,aAA4BprD,MAAQorD,EAAmBA,EAAiBzlD,WACrF0lD,EAAkB1lD,EAAY+V,GAEpC,GAAKwG,GAAQmpC,GAGZ,OAFAA,EAAgBlpD,KAAOmiD,GAAgB+G,EAAgBlpD,KAEhDkpD,EACD,CACN,MAAMC,EAAarQ,EAAYv1C,eAAgB4+C,IAQ/C,OANKtkD,MAAMC,QAASmrD,GACjBzlD,EAA+BkB,OAAQ6U,EAAQ,EAAG4vC,GAEpDvjC,GAAUqjC,EAAgC1vC,EAAQ4vC,GAG5CA,CACR,CACD,CAMA,SAASxE,GAAoByE,EAAgBC,GAC5C,OAAOzsC,GAAQwsC,IAAWxsC,GAAQysC,KAChCtpC,GAAQqpC,KAAYrpC,GAAQspC,KAC5BtjC,GAAWqjC,KAAYrjC,GAAWsjC,IACjCD,EAAsBZ,QAAQ3iD,gBAAoBwjD,EAAsBb,QAAQ3iD,aACpF,CAKA,SAAS0gD,GAAc6C,EAAgBC,GACtC,OAAOzsC,GAAQwsC,IAAWxsC,GAAQysC,IACjCtpC,GAAQqpC,IAAWrpC,GAAQspC,EAC7B,CAYA,SAAStC,GAAWhO,EAA4BuQ,EAAyBC,GAExE,OAAKD,IAAmBC,IAIdxpC,GAAQupC,IAAoBvpC,GAAQwpC,GACtCD,EAAetpD,OAASupD,EAAiBvpD,QAGvC+4C,EAAayQ,cAAeF,KACrCvQ,EAAayQ,cAAeD,IAM9B,CAkFA,SAASvD,GAAgBxD,EAAkBqD,GAC1C,MAAM4D,EAAajH,EAAQxiD,KAE3B,GAAKypD,GAAc5D,EAQlB,OAUD,MAAMpB,EAAUx9C,EAAUwiD,EAAY5D,GAEtC,UAAYf,KAAUL,EACA,WAAhBK,EAAOz8C,KACXm6C,EAAQkH,WAAY5E,EAAOhjD,MAAOgjD,EAAOx8C,OAAOlO,KAAM,KAEtDooD,EAAQmH,WAAY7E,EAAOhjD,MAAOgjD,EAAOv8C,QAG5C,CC3qCA,MAAMqhD,GAAgB5H,GAAW,GAAOthD,UAClCmpD,GAAkBnI,GAAa,GAAOhhD,UACtCopD,GAAyBnI,GAAoB,GAAOjhD,UACpDqpD,GAA+B,4BAC/BC,GAAuC,yBAe9B,MAAMC,GACJvpD,SAKAwpD,cAKTC,gBAKSC,YAUAC,cAYAC,qBAMAC,eAKCC,aAKAC,kBAAoB,IAAIh6B,QAKxBi6B,kBAAoB,IAAIj6B,QAKxBk6B,sBAAwB,IAAIl6B,QAM5Bm6B,0BAA4B,IAAIxkB,GAKhCykB,4BAA8B,IAAIzkB,GAKlC0kB,uCAAyC,IAAI75C,IAc9D,WAAAhS,CACCyB,GACA,gBAAEypD,EAAe,cAAED,EAAgB,WAG/B,CAAC,GAELhtD,KAAKwD,SAAWA,EAChBxD,KAAKgtD,cAAgBA,EACrBhtD,KAAKitD,gBAAkBA,IAAuC,YAAlBD,EAA8B,KAAO,QACjFhtD,KAAKktD,YAAc,CAAE,OACrBltD,KAAKmtD,cAAgB,CACpB,UAAW,UAAW,QAAS,aAAc,UAAW,SAAU,KAAM,UAAW,MAAO,MAC1F,KAAM,KAAM,WAAY,aAAc,SAAU,SAAU,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,SACtG,SAAU,SAAU,KAAM,OAAQ,OAAQ,MAAO,KAAM,IAAK,MAAO,UAAW,UAAW,QAAS,QAClG,KAAM,QAAS,KAAM,QAAS,KAAM,MAErCntD,KAAKotD,qBAAuB,CAC3B,SAAU,SAAU,QAAS,SAAU,WAAY,SAAU,SAAU,QAAS,QAAS,QAAS,MAAO,UAE1GptD,KAAKqtD,eAAiB,CAAE,SAAU,SAElCrtD,KAAKstD,aAAsC,YAAvBttD,KAAKgtD,cAA8B,GAAOxpD,SAAW,GAAOA,SAASqqD,eAAeC,mBAAoB,GAC7H,CAQO,iBAAAlD,CAAmB7O,EAAwBgS,GACjD/tD,KAAKytD,sBAAsB77C,IAAKmqC,EAAY,IAAI,GAAegS,GAChE,CAMO,mBAAAC,CAAqBjS,GAC3B,OAAO/7C,KAAKytD,sBAAsBrlD,IAAK2zC,EACxC,CAUO,YAAAmM,CAAcnM,EAAwBoF,GAC5CnhD,KAAKutD,kBAAkB37C,IAAKmqC,EAAYoF,GACxCnhD,KAAKwtD,kBAAkB57C,IAAKuvC,EAAapF,EAC1C,CAQO,gBAAAkM,CAAkBlM,GACxB,MAAMoF,EAAcnhD,KAAKutD,kBAAkBnlD,IAAK2zC,GAEhD,GAAKoF,EAAc,CAClBnhD,KAAKutD,kBAAkBz7C,OAAQiqC,GAC/B/7C,KAAKwtD,kBAAkB17C,OAAQqvC,GAE/B,UAAY7oC,KAAS3X,MAAMrB,KAAMy8C,EAAW7jC,UAC3ClY,KAAKioD,iBAAkB3vC,EAEzB,CACD,CAUO,qBAAA21C,CAAuBC,EAAkCC,GAC/DnuD,KAAKutD,kBAAkB37C,IAAKs8C,EAAaC,GACzCnuD,KAAKwtD,kBAAkB57C,IAAKu8C,EAAcD,EAC3C,CAOO,qBAAAE,CAAuBC,EAAsBC,EAAwBC,GAC3E,MAA4B,SAAvBvuD,KAAKgtD,iBAIVqB,EAAeA,EAAa1lD,eAEV6lD,WAAY,SAKZ,WAAjBH,IACAC,EAAezxD,MAAO,6CAMN,QAAhB0xD,IACmB,QAAjBF,GAA2C,WAAjBA,KAKR,WAAhBE,GAA6C,WAAjBF,IAI5BC,EAAezxD,MAAO,uDAK5B,CAQO,YAAA4xD,CAAc1S,EAAwB2S,GAE5C,GAA4B,SAAvB1uD,KAAKgtD,cAGT,YAFAjR,EAAW75B,UAAYwsC,GAKxB,MAAMlrD,GAAW,IAAImrD,WAAYC,gBAAiBF,EAAM,aAClDG,EAAWrrD,EAASm4B,yBACpBmzB,EAAiBtrD,EAASyf,KAAK3c,WAErC,KAAQwoD,EAAex2D,OAAS,GAC/Bu2D,EAASlpD,YAAampD,EAAgB,IAGvC,MAAMla,EAAapxC,EAASurD,iBAAkBF,EAAUG,WAAWC,cAC7D3d,EAA2B,GAEjC,IAAI4d,EAGJ,KAAQA,EAActa,EAAWua,YAChC7d,EAAM1xC,KAAMsvD,GAGb,UAAYA,KAAe5d,EAAQ,CAElC,UAAYN,KAAiBke,EAAYE,oBACxCpvD,KAAKkpD,uBAAwBgG,EAAale,EAAeke,EAAYx0B,aAAcsW,IAGpF,MAAMud,EAAcW,EAAY5D,QAAQ3iD,cAGnC3I,KAAKqvD,qBAAsBd,KAC/Be,GAAmBf,GAEnBW,EAAYK,YAAavvD,KAAKwvD,6BAA8BjB,EAAaW,IAE3E,CAGA,KAAQnT,EAAWp1C,YAClBo1C,EAAWp1C,WAAWV,SAGvB81C,EAAW0T,OAAQZ,EACpB,CAgCO,SAAAjG,CACNwB,EACA7lD,EAAsD,CAAC,GAEvD,GAAK6lD,EAAS77C,GAAI,SAAY,CAC7B,MAAMmhD,EAAW1vD,KAAK2vD,yBAA0BvF,GAEhD,OAAOpqD,KAAKstD,aAAajnD,eAAgBqpD,EAC1C,CAAO,CACN,MAAME,EAAwBxF,EAE9B,GAAKpqD,KAAKkmD,aAAc0J,GAA0B,CAGjD,IAAKA,EAAsBhf,kBAAmB,kCAG7C,OAAO5wC,KAAKkmD,aAAc0J,GAF1B5vD,KAAK4tD,uCAAuC1/C,IAAK0hD,EAInD,CAEA,IAAI7T,EAEJ,GAAK6T,EAAsBrhD,GAAI,oBAE9BwtC,EAAa/7C,KAAKstD,aAAa3xB,yBAE1Bp3B,EAAQyC,MACZhH,KAAKiuD,sBAAuBlS,EAAY6T,OAEnC,IAAKA,EAAsBrhD,GAAI,aAYrC,OAVCwtC,EADmC,aAA/B6T,EAAsB5tD,KACbhC,KAAKstD,aAAauC,cAAeD,EAAsBhf,kBAAmB,gBAG1Egf,EAAsB13B,OAAQl4B,KAAKstD,aAActtD,MAG1DuE,EAAQyC,MACZhH,KAAKkoD,aAAcnM,EAA0B6T,GAGvC7T,EAGF/7C,KAAKqvD,qBAAsBO,EAAsB5tD,OACrDstD,GAAmBM,EAAsB5tD,MAEzC+5C,EAAa/7C,KAAKwvD,6BAA8BI,EAAsB5tD,OAEtE+5C,EADW6T,EAAsBvf,aAAc,SAClCrwC,KAAKstD,aAAaj1C,gBAC9Bu3C,EAAsBl1B,aAAc,SACpCk1B,EAAsB5tD,MAGVhC,KAAKstD,aAAahoD,cAAesqD,EAAsB5tD,MAKhE4tD,EAAsBrhD,GAAI,eAC9BqhD,EAAsB13B,OAAQ6jB,EAAY/7C,MAGtCuE,EAAQyC,MACZhH,KAAKkoD,aAAcnM,EAAY6T,GAIhC,UAAY74D,KAAO64D,EAAsBhmB,mBACxC5pC,KAAKkpD,uBACJnN,EACAhlD,EACA64D,EAAsBl1B,aAAc3jC,GACpC64D,EAGH,CAEA,IAA8B,IAAzBrrD,EAAQ8iD,aACZ,UAAY/uC,KAAStY,KAAKonD,kBAAmBwI,EAAuBrrD,GAC9Dw3C,aAAsB+T,oBAC1B/T,EAAW77C,QAAQyF,YAAa2S,GAEhCyjC,EAAWp2C,YAAa2S,GAK3B,OAAOyjC,CACR,CACD,CAcO,sBAAAmN,CAAwBnN,EAAwBhlD,EAAayB,EAAeu3D,GAClF,MAAM3B,EAAwBpuD,KAAKouD,sBAAuBr3D,EAAKyB,EAAOujD,EAAWuP,QAAQ3iD,gBACxFonD,GAAsBA,EAAmBhf,4BAA6Bh6C,GAEjEq3D,GACL,EAAY,yCAA0C,CAAErS,aAAYhlD,MAAKyB,UC3d7D,SAA+BwJ,GAC7C,IACC,GAAOwB,SAASwsD,gBAAiBhuD,EAClC,CAAE,MAAQ8H,GACT,OAAO,CACR,CAEA,OAAO,CACR,CDsdQmmD,CAAsBl5D,IAYvBglD,EAAW1L,aAAct5C,KAAUq3D,EACvCrS,EAAWr1C,gBAAiB3P,GAGnBglD,EAAW1L,aAAcwc,GAA+B91D,IAASq3D,GAC1ErS,EAAWr1C,gBAAiBmmD,GAA+B91D,GAK5DglD,EAAWt2C,aAAc2oD,EAAwBr3D,EAAM81D,GAA+B91D,EAAKyB,IAhB1F,EAAY,0CAA2C,CAAEujD,aAAYhlD,MAAKyB,SAiB5E,CAUO,yBAAA2wD,CAA2BpN,EAAwBhlD,GAEpDA,GAAO+1D,KAIZ/Q,EAAWr1C,gBAAiB3P,GAG5BglD,EAAWr1C,gBAAiBmmD,GAA+B91D,GAC5D,CAWA,kBAAQqwD,CACPjG,EACA58C,EAAsD,CAAC,GAEvD,MAAM2rD,EAAuB/O,EAAY/P,iBAAmB+P,EAAY/P,kBACxE,IAAI/0B,EAAS,EAEb,UAAY8zC,KAAahP,EAAYra,cAAgB,CAC/CopB,IAAyB7zC,UACvBrc,KAAKowD,mBAGZ,MAAMC,EAAuBF,EAAU5hD,GAAI,cACxC4hD,EAAUvf,kBAAmB,uCAC9B,GAAOuf,EAAU/f,iBAEdigB,GAA8C,QAAtBrwD,KAAKgtD,oBAC1BhtD,KAAKonD,kBAAmB+I,EAAW5rD,IAErC8rD,GAMJ,EAAY,qEAAsE,CAAElP,YAAagP,UAG5FnwD,KAAK4oD,UAAWuH,EAAW5rD,IAGlC8X,GACD,CAEK6zC,IAAyB7zC,UACvBrc,KAAKowD,kBAEb,CASO,cAAAE,CAAgBC,GACtB,MAAMC,EAAWxwD,KAAKg9C,kBAAmBuT,EAAU9/B,OAC7CggC,EAASzwD,KAAKg9C,kBAAmBuT,EAAUxkB,KAE3C+e,EAAW9qD,KAAKstD,aAAa7L,cAInC,OAHAqJ,EAAS4F,SAAUF,EAAS5xD,OAAQ4xD,EAASn0C,QAC7CyuC,EAAS6F,OAAQF,EAAO7xD,OAAQ6xD,EAAOp0C,QAEhCyuC,CACR,CAcO,iBAAA9N,CAAmBL,GACzB,MAAMiU,EAAajU,EAAa/9C,OAEhC,GAAKgyD,EAAWriD,GAAI,SAAY,CAC/B,MAAMguC,EAAYv8C,KAAK0oD,yBAA0BkI,GAEjD,IAAMrU,EAEL,OAAO,KAGR,IAAIlgC,EAASsgC,EAAatgC,OAM1B,OAJK8oC,GAAkB5I,KACtBlgC,GAAU2oC,IAGJ,CAAEpmD,OAAQ29C,EAAWlgC,SAC7B,CAAO,CAEN,IAAIkgC,EAAWsU,EAAWC,EAE1B,GAA6B,IAAxBnU,EAAatgC,OAAe,CAGhC,GAFAkgC,EAAYv8C,KAAKkmD,aAAc0K,IAEzBrU,EAEL,OAAO,KAGRuU,EAAWvU,EAAUj2C,WAAY,EAClC,KAAO,CACN,MAAMguC,EAAaqI,EAAarI,WAMhC,GAJAuc,EAAYvc,EAAW/lC,GAAI,SAC1BvO,KAAK0oD,yBAA0BpU,GAC/Bt0C,KAAKkmD,aAAc5R,IAEduc,EAEL,OAAO,KAGRtU,EAAYsU,EAAU5pD,WACtB6pD,EAAWD,EAAU35C,WACtB,CAIA,GAAK2L,GAAQiuC,IAAc3L,GAAkB2L,GAC5C,MAAO,CAAElyD,OAAQkyD,EAAUz0C,OAAQ2oC,IAKpC,MAAO,CAAEpmD,OAAQ29C,EAAYlgC,OAFdw0C,EAAYpnD,GAASonD,GAAc,EAAI,EAGvD,CACD,CAkBO,SAAArH,CACNpE,EACA7gD,EAKI,CAAC,GAEL,MAAMwsD,EAA+B,GAC/BC,EAAYhxD,KAAKixD,WAAY7L,EAAS7gD,EAASwsD,GAG/C5xD,EAAO6xD,EAAU1vD,OAAO9I,MAE9B,OAAM2G,GAKN6xD,EAAU1vD,OAGVtB,KAAKkxD,uBAAwB,KAAMH,EAAaxsD,GAG3CpF,EAAKoP,GAAI,UAAiC,GAApBpP,EAAK2D,KAAKxK,OAC7B,KAGD6G,GAdC,IAeT,CAYA,kBAAQgyD,CACPpV,EACAx3C,EAAwD,CAAC,EACzDwsD,EAA+B,IAG/B,IAAIzqD,EAA+B,GAGlCA,EADIy1C,aAAsB+T,oBACb,IAAK/T,EAAW77C,QAAQoG,YAExB,IAAKy1C,EAAWz1C,YAG9B,QAAU9L,EAAI,EAAGA,EAAI8L,EAAWhO,OAAQkC,IAAM,CAC7C,MAAM42D,EAAW9qD,EAAY9L,GACvBw2D,EAAYhxD,KAAKixD,WAAYG,EAAU7sD,EAASwsD,GAGhDhJ,EAAYiJ,EAAU1vD,OAAO9I,MAEhB,OAAduvD,IAEC/nD,KAAKqxD,oBAAqBtJ,IAC9B/nD,KAAKkxD,uBAAwBnV,EAAYgV,EAAaxsD,SAGjDwjD,EAGNiJ,EAAU1vD,OAEZ,CAGAtB,KAAKkxD,uBAAwBnV,EAAYgV,EAAaxsD,EACvD,CASO,kBAAAmnD,CAAoBzP,GAE1B,GAqjCF,SAAwCA,GACvC,IAAM,EAAInzC,QACT,OAAO,EAGR,IAAMmzC,EAAa7E,WAClB,OAAO,EAGR,MAAM1b,EAAYugB,EAAaI,WAAY,GAAIl1B,eAE/C,IACCnwB,OAAO6K,UAAUnF,SAAS2E,KAAMq6B,EACjC,CAAE,MAAQ5xB,GACT,OAAO,CACR,CAEA,OAAO,CACR,CAvkCOwnD,CAA+BrV,GACnC,OAAO,IAAI,GAAe,IAK3B,GAAiC,IAA5BA,EAAa7E,WAAmB,CACpC,IAAI1b,EAAyBugB,EAAaI,WAAY,GAAIl1B,eAGrDtE,GAAQ6Y,KACZA,EAAYA,EAAUz0B,YAGvB,MAAM25C,EAAgB5gD,KAAKguD,oBAAqBtyB,GAEhD,GAAKklB,EACJ,OAAOA,CAET,CAEA,MAAMvJ,EAAar3C,KAAKuxD,uBAAwBtV,GAE1CuV,EAA+B,GAErC,QAAUh3D,EAAI,EAAGA,EAAIyhD,EAAa7E,WAAY58C,IAAM,CAEnD,MAAMswD,EAAW7O,EAAaI,WAAY7hD,GACpC+1D,EAAYvwD,KAAKyxD,eAAgB3G,GAElCyF,GACJiB,EAAW5xD,KAAM2wD,EAEnB,CAEA,OAAO,IAAI,GAAeiB,EAAY,CAAE9Y,SAAUrB,GACnD,CASO,cAAAoa,CAAgB3G,GACtB,MAAM4G,EAAY1xD,KAAK48C,kBAAmBkO,EAAS3jC,eAAgB2jC,EAAS3W,aACtEwd,EAAU3xD,KAAK48C,kBAAmBkO,EAASvG,aAAcuG,EAASvW,WAExE,OAAKmd,GAAaC,EACV,IAAI,GAAWD,EAAWC,GAG3B,IACR,CAiBO,iBAAA/U,CAAmBL,EAAoBE,EAAoB,GACjE,GAAKz8C,KAAKssD,cAAe/P,GACxB,OAAOv8C,KAAK48C,kBAAmBL,EAAUt1C,WAAawC,GAAS8yC,IAIhE,MAAM4E,EAAcnhD,KAAK8rD,aAAcvP,GAEvC,GAAK4E,IAAiBA,EAAY5yC,GAAI,cAAiB4yC,EAAY5yC,GAAI,eACtE,OAAO,GAAa2lC,cAAeiN,GAGpC,GAAKt+B,GAAQ05B,GAAc,CAC1B,GAAK8I,GAAgB9I,GACpB,OAAOv8C,KAAK48C,kBAAmBL,EAAUt1C,WAAawC,GAAS8yC,IAGhE,MAAMqU,EAAa5wD,KAAK4xD,0BAA2BrV,GACnD,IAAIlgC,EAASogC,EAEb,OAAMmU,GAIDzL,GAAkB5I,KACtBlgC,GAAU2oC,GACV3oC,EAASA,EAAS,EAAI,EAAIA,GAGpB,IAAI,GAAcu0C,EAAYv0C,IAR7B,IAST,CAGC,GAAmB,IAAdogC,EAAkB,CACtB,MAAMmU,EAAa5wD,KAAK8rD,aAAcvP,GAEtC,GAAKqU,EACJ,OAAO,IAAI,GAAcA,EAAY,EAEvC,KAAO,CACN,MAAMC,EAAYtU,EAAUj2C,WAAYm2C,EAAY,GAGpD,GAAK55B,GAAQguC,IAAexL,GAAgBwL,IAAeA,GAAa7wD,KAAKssD,cAAeuE,GAC3F,OAAO7wD,KAAK48C,kBAAmBiU,EAAU5pD,WAAawC,GAASonD,IAGhE,MAAMgB,EAAahvC,GAAQguC,GAC1B7wD,KAAK4xD,0BAA2Bf,GAChC7wD,KAAK8rD,aAAc+E,GAGpB,GAAKgB,GAAcA,EAAWjzD,OAC7B,OAAO,IAAI,GAAcizD,EAAWjzD,OAAQizD,EAAWjtD,MAAS,EAElE,CAEA,OAAO,IAET,CAcO,YAAAknD,CAAcgG,GAGpB,OAFoB9xD,KAAK+xD,mBAAoBD,IAEvB9xD,KAAKutD,kBAAkBnlD,IAAK0pD,EACnD,CAsBO,yBAAAF,CAA2BtM,GACjC,GAAKD,GAAgBC,GACpB,OAAO,KAIR,MAAMzf,EAAc7lC,KAAK+xD,mBAAoBzM,GAE7C,GAAKzf,EACJ,OAAOA,EAGR,MAAMpd,EAAkB68B,EAAQ78B,gBAGhC,GAAKA,EAAkB,CACtB,IAAQzoB,KAAKgyD,UAAWvpC,GAEvB,OAAO,KAGR,MAAM04B,EAAcnhD,KAAK8rD,aAAcrjC,GAEvC,GAAK04B,EAAc,CAClB,MAAMjqC,EAAgBiqC,EAA6BjqC,YAGnD,OAAKA,aAAuB,GACpBA,EAEA,IAET,CACD,KAEK,CACJ,MAAMiqC,EAAcnhD,KAAK8rD,aAAcxG,EAAQr+C,YAE/C,GAAKk6C,EAAc,CAClB,MAAMx6C,EAAew6C,EAA6Bha,SAAU,GAG5D,OAAKxgC,aAAsB,GACnBA,EAEA,IAET,CACD,CAEA,OAAO,IACR,CAsCO,YAAAu/C,CAAc+L,GACpB,OAAOjyD,KAAKwtD,kBAAkBplD,IAAK6pD,EACpC,CAiBO,wBAAAvJ,CAA0BD,GAChC,MAAMhgC,EAAkBggC,EAAShgC,gBAGjC,OAAKA,GAAmBzoB,KAAKkmD,aAAcz9B,GACnCzoB,KAAKkmD,aAAcz9B,GAAkCvR,aAIvDuR,GAAmBggC,EAAS7pD,QAAUoB,KAAKkmD,aAAcuC,EAAS7pD,QAChEoB,KAAKkmD,aAAcuC,EAAS7pD,QAAU0H,WAAY,GAGnD,IACR,CAKO,KAAAm5B,CAAOyyB,GACb,MAAMC,EAAcnyD,KAAKkmD,aAAcgM,GAEvC,GAAKC,GAAeA,EAAYtyC,cAAcgsC,gBAAkBsG,EAAc,CAE7E,MAAM,QAAE1sC,EAAO,QAAEC,GAAY,GAAOniB,OAC9B6uD,EAA6C,GAInDC,GAA2BF,GAAahzD,IACvC,MAAM,WAAE+mB,EAAU,UAAEC,GAAgBhnB,EAEpCizD,EAAgBxyD,KAAM,CAAEsmB,EAAYC,GAAa,IAGlDgsC,EAAY1yB,QAMZ4yB,GAA2BF,GAAahzD,IACvC,MAAQ+mB,EAAYC,GAAcisC,EAAgB7kC,QAElDpuB,EAAK+mB,WAAaA,EAClB/mB,EAAKgnB,UAAYA,CAAS,IAK3B,GAAO5iB,OAAOyoB,SAAUvG,EAASC,EAClC,CACD,CAOO,kBAAA4sC,GACN,MAAMH,EAAcnyD,KAAKkmD,aAAclmD,KAAKwD,SAASm9B,UAAU2R,iBAE/D,IAAM6f,EACL,OAID,MAAMlW,EAAekW,EAAYtyC,cAAcF,YAAaw8B,eACtDoW,EAAmBvyD,KAAK0rD,mBAAoBzP,GACtBsW,GAAoBA,EAAiBnb,WAAa,GAG7E6E,EAAa8O,iBAEf,CAOO,SAAAiH,CAAW7yD,GACjB,OAAOA,GAAQA,EAAKqb,UAAYsF,KAAKsrC,YACtC,CAOO,kBAAAoH,CAAoBrzD,GAC1B,OAAOA,GAAQA,EAAKqb,UAAYsF,KAAK2yC,sBACtC,CAmBO,aAAAnG,CAAelH,GACrB,MAA6B,MAAxBplD,KAAKitD,gBACF7H,EAAQsN,YAAahG,MAKU,OAApCtH,EAAwBkG,UAC1BqH,GAAgBvN,EAASplD,KAAKmtD,gBAC8B,IAA1D/H,EAAwBn+C,WAAYX,WAAWhO,UAM3C8sD,EAAQsN,YAAa9F,KA2nB9B,SAA4BxH,EAAkB+H,GAC7C,MAAMyF,EAASxN,EAAQsN,YAAa/F,IAEpC,OAAOiG,GAAUD,GAAgBvN,EAAS+H,IAA+E,IAA1D/H,EAAwBn+C,WAAYX,WAAWhO,MAC/G,CA/nB0Du6D,CAAmBzN,EAASplD,KAAKmtD,eAC1F,CAOO,sBAAAoE,CAAwB5wB,GAC9B,GAAKA,EAAUwU,YACd,OAAO,EAKR,MAAMpuB,EAAQ/mB,KAAKstD,aAAa7L,cAEhC,IACC16B,EAAM2pC,SAAU/vB,EAAUgrB,WAAahrB,EAAUmyB,cACjD/rC,EAAM4pC,OAAQhwB,EAAU6b,UAAY7b,EAAU+b,YAC/C,CAAE,MAAQx4C,GAGT,OAAO,CACR,CAEA,MAAMw0C,EAAW3xB,EAAMu1B,UAIvB,OAFAv1B,EAAMvF,SAECk3B,CACR,CAMO,kBAAAqZ,CAAoB3M,GAC1B,MAAM3d,EEprCO,SAAuBtoC,GACrC,MAAMmyC,EAAqB,GAC3B,IAAI4d,EAA2B/vD,EAG/B,KAAQ+vD,GAAeA,EAAY10C,UAAYsF,KAAKizC,eACnDzhB,EAAMlyC,QAAS8vD,GACfA,EAAcA,EAAYjoD,WAG3B,OAAOqqC,CACR,CFyqCoB9J,CAAc4d,GAKhC,IAFA3d,EAAUzoC,MAEFyoC,EAAUnvC,QAAS,CAC1B,MAAM8sD,EAAU3d,EAAUzoC,MACpBorD,EAAWpqD,KAAKutD,kBAAkBnlD,IAAKg9C,GAE7C,GAAKgF,IAAcA,EAAS77C,GAAI,cAAiB67C,EAAS77C,GAAI,eAC7D,OAAO67C,CAET,CAEA,OAAO,IACR,CAcO,qBAAAoB,CAAuBvP,GAC7B,OAAOj8C,KAAKgzD,+BAAgC/W,EAAa0P,WAAa1P,EAAa6W,eAClF9yD,KAAKgzD,+BAAgC/W,EAAaO,UAAYP,EAAaS,YAC7E,CAeO,yBAAAuW,CAA2B7pB,GACjCppC,KAAK0tD,0BAA0Bx/C,IAAKk7B,EACrC,CAYO,2BAAA8pB,CAA6B9pB,GACnCppC,KAAK2tD,4BAA4Bz/C,IAAKk7B,EACvC,CAOO,+BAAA6d,GACN,UAAYlwC,KAAW/W,KAAK4tD,uCAC3B72C,EAAQg7B,sBAAuB,kCAGhC/xC,KAAK4tD,uCAAuC77C,OAC7C,CAKQ,eAAAq+C,GACP,OAASpwD,KAAKitD,iBACb,IAAK,OACJ,OAAOzI,GAAaxkD,KAAKstD,cAC1B,IAAK,aACJ,OAAO7I,GAAoBzkD,KAAKstD,cACjC,IAAK,KACJ,OAAOxI,GAAW9kD,KAAKstD,cAE1B,CASQ,8BAAA0F,CAAgCzW,EAAoBlgC,GAE3D,GAAKwG,GAAQ05B,IAAe4I,GAAkB5I,IAAelgC,EAAS2oC,GAErE,OAAO,EAGR,GAAKhlD,KAAKgyD,UAAWzV,IAAe4I,GAAkB5I,EAAUj2C,WAAY+V,IAE3E,OAAO,EAGR,MAAMu0C,EAAa5wD,KAAK8rD,aAAcvP,GAKtC,OAAKqU,IAAgBA,EAAWriD,GAAI,eAAiBqiD,EAAWriD,GAAI,aAKrE,CAUA,WAAS0iD,CACR7L,EACA7gD,EAMAwsD,GAEA,GAAK/wD,KAAKssD,cAAelH,GACxB,OAAO,KAIR,MAAMvf,EAAc7lC,KAAK+xD,mBAAoB3M,GAE7C,GAAKvf,EACJ,OAAOA,EAGR,GAAKhd,GAAWu8B,IAAa7gD,EAAQ4uD,aACpC,OAAO,KAGR,GAAKtwC,GAAQuiC,GAAY,CACxB,GAAKC,GAAgBD,GACpB,OAAO,KACD,CACN,MAAMsK,EAAWtK,EAAQtiD,KAEzB,GAAkB,KAAb4sD,EACJ,OAAO,KAGR,MAAM5mB,EAAW,IAAI,GAAU9oC,KAAKwD,SAAUksD,GAI9C,OAFAqB,EAAYnxD,KAAMkpC,GAEXA,CACR,CACD,CAAO,CACN,IAAIqY,EAAcnhD,KAAK8rD,aAAc1G,GAErC,GAAKjE,EAKJ,OAJKnhD,KAAKozD,uBAAwBjS,IACjC4P,EAAYnxD,KAAMuhD,GAGZA,EAGR,GAAKnhD,KAAKwyD,mBAAoBpN,GAE7BjE,EAAc,IAAI,GAAsBnhD,KAAKwD,UAExCe,EAAQyC,MACZhH,KAAKiuD,sBAAuB7I,EAASjE,OAEhC,CAENA,EAAcnhD,KAAKqzD,mBAAoBjO,EAAS7gD,GAE3CA,EAAQyC,MACZhH,KAAKkoD,aAAc9C,EAAuBjE,GAI3C,MAAMtR,EAAUuV,EAAwB7/C,WAExC,GAAKsqC,EACJ,QAAU32C,EAAI22C,EAAMv3C,OAAQkC,EAAI,EAAGA,EAAItB,EAAGsB,IACzC2mD,EAAY5P,cAAe1B,EAAOr1C,GAAIwH,KAAM6tC,EAAOr1C,GAAIhC,OAKzD,GAAKwH,KAAKszD,6BAA8BnS,EAAa58C,GAOpD,OANA48C,EAAYrP,mBAAoB,cAAiBsT,EAAwBljC,WAEnEliB,KAAKqxD,oBAAqBlQ,IAC/B4P,EAAYnxD,KAAMuhD,GAGZA,EAIR,GAAKt4B,GAAWu8B,GAGf,OAFAjE,EAAYrP,mBAAoB,cAAesT,EAAQtiD,MAEhDq+C,CAET,OAGMA,EAEN,MAAMoS,EAAqC,GAE3C,IAA8B,IAAzBhvD,EAAQ8iD,aACZ,UAAY/uC,KAAStY,KAAKmxD,kBAAmB/L,EAAuB7gD,EAASgvD,GAC5EpS,EAAY9P,aAAc/4B,GAM5B,GAAKtY,KAAKozD,uBAAwBjS,GACjC4P,EAAYnxD,KAAMuhD,QAGlB,UAAYqS,KAAcD,EACzBxC,EAAYnxD,KAAM4zD,EAGrB,CACD,CAUQ,sBAAAtC,CACP3U,EACAwU,EACAxsD,GAEA,IAAMwsD,EAAYz4D,OACjB,OAKD,GAAKikD,IAAcv8C,KAAKwyD,mBAAoBjW,KAAgBv8C,KAAKyzD,mBAAoBlX,GACpF,OAGD,IAAImX,GAAwB,EAE5B,QAAUl5D,EAAI,EAAGA,EAAIu2D,EAAYz4D,OAAQkC,IAAM,CAC9C,MAAM2E,EAAO4xD,EAAav2D,GAE1B,IAAM2E,EAAKoP,GAAI,SAAY,CAC1BmlD,GAAwB,EACxB,QACD,CAEA,IAAI5wD,EACA6wD,GAA6B,EAEjC,GAAKC,GAAsBz0D,EAAMa,KAAKktD,aACrCpqD,EAAOyiD,GAAsBpmD,EAAK2D,UAC5B,CAKNA,EAAO3D,EAAK2D,KAAKgU,QAAS,iBAAkB,KAC5C68C,EAAoB,cAAc1xD,KAAMa,EAAKkrB,OAAQlrB,EAAKxK,OAAS,IAEnE,MAAMu7D,EAAWr5D,EAAI,EAAIu2D,EAAav2D,EAAI,GAAM,KAC1C20D,EAAW30D,EAAI,EAAIu2D,EAAYz4D,OAASy4D,EAAav2D,EAAI,GAAM,KAE/Ds5D,GAAkBD,GAAYA,EAAStlD,GAAI,YAAgC,MAAjBslD,EAAS7xD,MAAgB0xD,EACnFK,GAAkB5E,IAAoBhK,GAAkBhmD,EAAK2D,OAGrC,IAAzByB,EAAQ8iD,eAGPyM,IACJhxD,EAAOA,EAAKgU,QAAS,KAAM,KAIvBi9C,IACJjxD,EAAOA,EAAKgU,QAAS,KAAM,MAQ7BhU,EAAOyiD,GAAsBziD,GAS7BA,EAAOA,EAAKgU,QAAS,WAAY,MAEjC,MAAMk9C,EAAgC7E,GAAYA,EAAS5gD,GAAI,YAAgC,MAAjB4gD,EAASntD,KACjFiyD,EAA8B9E,GAAYA,EAAS5gD,GAAI,UAA0C,KAA7B4gD,EAASrsD,KAAKkrB,OAAQ,IAG3F,mBAAmB/rB,KAAMa,KAAWqsD,GAAY6E,GAAiCC,KACrFnxD,EAAOA,EAAKgU,QAAS,UAAW,OAK5Bg9C,GAAkBD,GAAYA,EAAStlD,GAAI,YAAgC,MAAjBslD,EAAS7xD,QACvEc,EAAOA,EAAKgU,QAAS,UAAW,KAElC,CAKoB,GAAfhU,EAAKxK,QAAe6G,EAAKP,QAC7BO,EAAKk1B,UACL08B,EAAYvpD,OAAQhN,EAAG,GACvBA,MAEA2E,EAAKspC,MAAQ3lC,EACb4wD,EAAwBC,EAE1B,CAEA5C,EAAYz4D,OAAS,CACtB,CAmBQ,wBAAAq3D,CAA0BxwD,GACjC,IAAI2D,EAAO3D,EAAK2D,KAIhB,GAAK3D,EAAKqoC,eAAenQ,MAAMz4B,GAAUoB,KAAKktD,YAAY/6B,SAAYvzB,EAAwBoD,QAC7F,OAAOc,EAKR,GAAyB,KAApBA,EAAKkrB,OAAQ,GAAa,CAC9B,MAAM6lC,EAAW7zD,KAAKk0D,2BAA4B/0D,GAAkB,KAC1C00D,GAAYA,EAAStlD,GAAI,eAAkBvO,KAAKm0D,mBAAoBN,KAEnEA,IAC1B/wD,EAAO,IAAWA,EAAKsP,OAAQ,GAEjC,CAWA,GAAuC,KAAlCtP,EAAKkrB,OAAQlrB,EAAKxK,OAAS,GAAa,CAC5C,MAAM62D,EAAWnvD,KAAKk0D,2BAA4B/0D,GAAkB,GAC9Di1D,EAAsBjF,GAAYA,EAAS5gD,GAAI,eAA+C,KAA7B4gD,EAASrsD,KAAKkrB,OAAQ,GAEtD,KAAlClrB,EAAKkrB,OAAQlrB,EAAKxK,OAAS,IAAe62D,IAAYiF,IAC1DtxD,EAAOA,EAAKsP,OAAQ,EAAGtP,EAAKxK,OAAS,GAAM,IAE7C,CAGA,OAAOwK,EAAKgU,QAAS,QAAS,KAC/B,CAQQ,kBAAAq9C,CAAoBh1D,GAC3B,GAAKA,EAAKqoC,eAAenQ,MAAMz4B,GAAUoB,KAAKktD,YAAY/6B,SAAYvzB,EAAwBoD,QAC7F,OAAO,EAGR,MAAMc,EAAO9C,KAAK2vD,yBAA0BxwD,GAE5C,MAAyC,KAAlC2D,EAAKkrB,OAAQlrB,EAAKxK,OAAS,EACnC,CAUQ,0BAAA47D,CAA4B/0D,EAAgBk1D,GACnD,MAAMzf,EAAa,IAAI,GAAgB,CACtC1B,cAAemhB,EAAU,GAAazgB,aAAcz0C,GAAS,GAAa+0C,cAAe/0C,GACzFqnB,UAAW6tC,EAAU,UAAY,aAGlC,UAAY77D,KAASo8C,EAAa,CAEjC,GAAKp8C,EAAMyH,KAAKsO,GAAI,UAAW,MAC9B,OAAO,KACR,GAEUvO,KAAKozD,uBAAwB56D,EAAMyH,MAC5C,OAAOzH,EAAMyH,KACd,GAGUzH,EAAMyH,KAAKsO,GAAI,oBACxB,OAAO,KACR,GAEU/V,EAAMyH,KAAKsO,GAAI,cACxB,OAAO/V,EAAMyH,IAEf,CAEA,OAAO,IACR,CAKQ,kBAAAwzD,CAAoBt0D,GAC3B,OAAOa,KAAKgyD,UAAW7yD,IAAUa,KAAKmtD,cAAch7B,SAAUhzB,EAAKmsD,QAAQ3iD,cAC5E,CAKQ,mBAAA0oD,CAAqBlyD,GAC5B,OAAOA,EAAKoP,GAAI,YAAevO,KAAKmtD,cAAch7B,SAAUhzB,EAAK6C,KAClE,CAKQ,sBAAAoxD,CAAwBj0D,GAC/B,QAAMA,EAAKoP,GAAI,aAIK,MAAbpP,EAAK6C,MACXhC,KAAKotD,qBAAqBj7B,SAAUhzB,EAAK6C,SACvChC,KAAK2tD,4BAA4B9wD,MAAOsC,GAC5C,CAQQ,kBAAAk0D,CAAoBl0D,EAAeoF,GAC1C,GAAKskB,GAAW1pB,GACf,OAAO,IAAI,GAAea,KAAKwD,SAAU,YAG1C,MAAM8wD,EAAW/vD,EAAQgwD,iBAAqBp1D,EAAqBmsD,QAAYnsD,EAAqBmsD,QAAQ3iD,cAE5G,OAAO,IAAI,GAAa3I,KAAKwD,SAAU8wD,EACxC,CAQQ,4BAAAhB,CAA8BnS,EAAiD58C,GACtF,OAAgC,IAAzBA,EAAQ8iD,cAA0BlG,EAAY5yC,GAAI,cAAiBvO,KAAK0tD,0BAA0B7wD,MAAOskD,EACjH,CAOQ,oBAAAkO,CAAsBd,GAC7B,MAAMvsD,EAAOusD,EAAY5lD,cAEzB,MAA8B,YAAvB3I,KAAKgtD,eAA+BhtD,KAAKqtD,eAAel7B,SAAUnwB,EAC1E,CASQ,4BAAAwtD,CAA8BjB,EAAqBiG,GAC1D,MAAMC,EAAgBz0D,KAAKstD,aAAahoD,cAAe,QAKvD,GAFAmvD,EAAchvD,aAAcqnD,GAAsCyB,GAE7DiG,EAAqB,CACzB,KAAQA,EAAmB7tD,YAC1B8tD,EAAc9uD,YAAa6uD,EAAmB7tD,YAG/C,UAAYqqC,KAAiBwjB,EAAmBpF,oBAC/CqF,EAAchvD,aAAcurC,EAAewjB,EAAmB95B,aAAcsW,GAE9E,CAEA,OAAOyjB,CACR,EASD,SAASb,GAAsBz0D,EAAgB6b,GAC9C,OAAO7b,EAAKqoC,eAAenQ,MAAMz4B,GAAUA,EAAO2P,GAAI,YAAeyM,EAAMmX,SAAUvzB,EAAOoD,OAC7F,CAQA,SAASqwD,GAA2Bt7C,EAAqBpH,GACxD,IAAIxQ,EAA0B4X,EAE9B,KAAQ5X,GACPwQ,EAAUxQ,GACVA,EAAOA,EAAKwpB,aAEd,CAoBA,SAASgqC,GAAgBvN,EAAkB+H,GAC1C,MAAMvuD,EAASwmD,EAAQn+C,WAEvB,QAASrI,KAAcA,EAAuB0sD,SAAW6B,EAAch7B,SAAYvzB,EAAuB0sD,QAAQ3iD,cACnH,CAQA,SAAS2mD,GAAmBf,GACN,WAAhBA,GACJ,EAAY,+CAGQ,UAAhBA,GACJ,EAAY,6CAEd,CGxyDe,MAAemG,WAAiCz0C,MAI9C0X,KAKAn0B,SAKRmxD,YAAsB,EAK9B,WAAA5yD,CAAa41B,GACZ9pB,QAEA7N,KAAK23B,KAAOA,EACZ33B,KAAKwD,SAAWm0B,EAAKn0B,QACtB,CAKA,aAAW28B,GACV,OAAOngC,KAAK20D,UACb,CAYO,MAAAC,GACN50D,KAAK20D,YAAa,CACnB,CAQO,OAAAE,GACN70D,KAAK20D,YAAa,CACnB,CAKO,OAAA1sC,GACNjoB,KAAK60D,UACL70D,KAAK+P,eACN,CAcO,gCAAA+kD,CAAkC5Y,GAKxC,OAJKA,GAAoC,IAAvBA,EAAU1hC,WAC3B0hC,EAAYA,EAAUj1C,eAGjBi1C,GAAoC,IAAvBA,EAAU1hC,WAIpB0hC,EAAmB5yC,QAAS,uDACtC,ECpED,SAJe,IAAe,SAASiM,EAAQrS,GAC7C,GAAWA,EAAQ,GAAOA,GAASqS,EACrC,ICfe,MAAMw/C,GAIJp9B,KAKAn0B,SAKAwxD,SAKA9Y,UAOhB,WAAAn6C,CAAa41B,EAAYq9B,EAAkBC,GAC1Cj1D,KAAK23B,KAAOA,EACZ33B,KAAKwD,SAAWm0B,EAAKn0B,SACrBxD,KAAKg1D,SAAWA,EAChBh1D,KAAKk8C,UAAY8Y,EAASpxD,OAE1B,GAAQ5D,KAAMi1D,EACf,CAKA,UAAWrxD,GACV,OAAO5D,KAAK23B,KAAKkkB,aAAaiQ,aAAc9rD,KAAKk8C,UAClD,CAKO,cAAA/lB,GACNn2B,KAAKg1D,SAAS7+B,gBACf,CAKO,eAAAC,GACNp2B,KAAKg1D,SAAS5+B,iBACf,EClCc,MAAe,WAGpBs+B,GAWFt0C,YAAsB,EAab,OAAA4H,CAAS+zB,IACkB,iBAArB/7C,KAAKk1D,aAA2B,CAAEl1D,KAAKk1D,cAAiBl1D,KAAKk1D,cAE5Et3D,SAASuN,IACdnL,KAAK4P,SAAUmsC,EAAY5wC,GAAM,CAAE2F,EAAWkkD,KACxCh1D,KAAKmgC,YAAcngC,KAAK80D,iCAAkCE,EAASpxD,SACvE5D,KAAKm1D,WAAYH,EAClB,GACE,CAAE50C,WAAYpgB,KAAKogB,YAAc,GAEtC,CAKgB,aAAAg1C,CAAerZ,GAC9B/7C,KAAK+P,cAAegsC,EACrB,CAWgB,IAAAnrC,CAAMykD,EAA+BL,EAAiBC,GAChEj1D,KAAKmgC,WACTngC,KAAKwD,SAASoN,KAAMykD,EAAW,IAAIN,GAAc/0D,KAAK23B,KAAMq9B,EAAUC,GAExE,ECnFc,MAAMK,WAAoB,GAIxBJ,aAAe,CAAE,UAAW,SAKrC,UAAAC,CAAYzzC,GAClB,MAAM5e,EAAO,CACZmrB,QAASvM,EAAOuM,QAEhBC,OAAQxM,EAAOwM,OACfC,QAASzM,EAAOyM,QAChBC,SAAU1M,EAAO0M,SACjBC,QAAS3M,EAAO2M,QAEhB,aAAIC,GACH,OAAO,GAAStuB,KACjB,GAGDA,KAAK4Q,KAAM8Q,EAAOvW,KAAMuW,EAAQ5e,EACjC,ECpBD,SAJU,WACR,OAAO,GAAKmM,KAAK2hB,KACnB,ECnBA,IAAI2kC,GAAe,KAiBnB,SAPA,SAAyB94D,GAGvB,IAFA,IAAImI,EAAQnI,EAAOnE,OAEZsM,KAAW2wD,GAAatzD,KAAKxF,EAAOuxB,OAAOppB,MAClD,OAAOA,CACT,ECbA,IAAI4wD,GAAc,OAelB,SANA,SAAkB/4D,GAChB,OAAOA,EACHA,EAAOqF,MAAM,EAAG,GAAgBrF,GAAU,GAAGqa,QAAQ0+C,GAAa,IAClE/4D,CACN,ECXA,IAGIg5D,GAAa,qBAGbC,GAAa,aAGbC,GAAY,cAGZC,GAAex4D,SA8CnB,SArBA,SAAkB5E,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAI,GAASA,GACX,OA1CM,IA4CR,GAAI,EAASA,GAAQ,CACnB,IAAIygB,EAAgC,mBAAjBzgB,EAAMolB,QAAwBplB,EAAMolB,UAAYplB,EACnEA,EAAQ,EAASygB,GAAUA,EAAQ,GAAMA,CAC3C,CACA,GAAoB,iBAATzgB,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAEhCA,EAAQ,GAASA,GACjB,IAAIq9D,EAAWH,GAAWzzD,KAAKzJ,GAC/B,OAAQq9D,GAAYF,GAAU1zD,KAAKzJ,GAC/Bo9D,GAAap9D,EAAMsJ,MAAM,GAAI+zD,EAAW,EAAI,GAC3CJ,GAAWxzD,KAAKzJ,GAvDb,KAuD6BA,CACvC,ECxDA,IAGI,GAAYK,KAAKC,IACjBg9D,GAAYj9D,KAAKD,IAqLrB,SA7HA,SAAkB2f,EAAMke,EAAMlyB,GAC5B,IAAIwxD,EACAC,EACAC,EACA93D,EACA+3D,EACAC,EACAC,EAAiB,EACjBC,GAAU,EACVC,GAAS,EACTC,GAAW,EAEf,GAAmB,mBAARh+C,EACT,MAAM,IAAIpW,UAzEQ,uBAmFpB,SAASq0D,EAAWC,GAClB,IAAIv6D,EAAO65D,EACPxlC,EAAUylC,EAKd,OAHAD,EAAWC,OAAWnuD,EACtBuuD,EAAiBK,EACjBt4D,EAASoa,EAAKtH,MAAMsf,EAASr0B,EAE/B,CAqBA,SAASw6D,EAAaD,GACpB,IAAIE,EAAoBF,EAAON,EAM/B,YAAyBtuD,IAAjBsuD,GAA+BQ,GAAqBlgC,GACzDkgC,EAAoB,GAAOL,GANJG,EAAOL,GAM8BH,CACjE,CAEA,SAASW,IACP,IAAIH,EAAO,KACX,GAAIC,EAAaD,GACf,OAAOI,EAAaJ,GAGtBP,EAAUngC,WAAW6gC,EA3BvB,SAAuBH,GACrB,IAEIK,EAAcrgC,GAFMggC,EAAON,GAI/B,OAAOG,EACHR,GAAUgB,EAAab,GAJDQ,EAAOL,IAK7BU,CACN,CAmBqCC,CAAcN,GACnD,CAEA,SAASI,EAAaJ,GAKpB,OAJAP,OAAUruD,EAIN0uD,GAAYR,EACPS,EAAWC,IAEpBV,EAAWC,OAAWnuD,EACf1J,EACT,CAcA,SAAS64D,IACP,IAAIP,EAAO,KACPQ,EAAaP,EAAaD,GAM9B,GAJAV,EAAWz7C,UACX07C,EAAWh2D,KACXm2D,EAAeM,EAEXQ,EAAY,CACd,QAAgBpvD,IAAZquD,EACF,OAzEN,SAAqBO,GAMnB,OAJAL,EAAiBK,EAEjBP,EAAUngC,WAAW6gC,EAAcngC,GAE5B4/B,EAAUG,EAAWC,GAAQt4D,CACtC,CAkEa+4D,CAAYf,GAErB,GAAIG,EAIF,OAFAzgC,aAAaqgC,GACbA,EAAUngC,WAAW6gC,EAAcngC,GAC5B+/B,EAAWL,EAEtB,CAIA,YAHgBtuD,IAAZquD,IACFA,EAAUngC,WAAW6gC,EAAcngC,IAE9Bt4B,CACT,CAGA,OA3GAs4B,EAAO,GAASA,IAAS,EACrB,EAASlyB,KACX8xD,IAAY9xD,EAAQ8xD,QAEpBJ,GADAK,EAAS,YAAa/xD,GACH,GAAU,GAASA,EAAQ0xD,UAAY,EAAGx/B,GAAQw/B,EACrEM,EAAW,aAAchyD,IAAYA,EAAQgyD,SAAWA,GAoG1DS,EAAUpgC,OApCV,gBACkB/uB,IAAZquD,GACFrgC,aAAaqgC,GAEfE,EAAiB,EACjBL,EAAWI,EAAeH,EAAWE,OAAUruD,CACjD,EA+BAmvD,EAAUG,MA7BV,WACE,YAAmBtvD,IAAZquD,EAAwB/3D,EAAS04D,EAAa,KACvD,EA4BOG,CACT,EChKe,MAAMI,WAA8B1C,GAIjC2C,kCAKjB,WAAAt1D,CAAa41B,GACZ9pB,MAAO8pB,GAEP33B,KAAKq3D,kCAAoC,IAAUv0D,IAClD9C,KAAKwD,SAASoN,KAA4C,sBAAuB9N,EAAM,GACrF,IACJ,CAKgB,OAAAklB,GACf,MAAMxkB,EAAWxD,KAAKwD,SAEtBA,EAASiM,GAA+B,YAAY,CAAEqB,EAAWhO,KAC9CU,EAASm9B,UAEZuW,QAAUl3C,KAAKmgC,WAE7Br9B,EAAKqzB,gBACN,GACE,CAAExoB,QAAS,aAEdnK,EAASiM,GAA+B,YAAY,CAAEqB,EAAWhO,KAC9CU,EAASm9B,UAEZuW,QAAUl3C,KAAKmgC,WAC7BngC,KAAKs3D,qBAAsBx0D,EAAKmrB,QACjC,GACE,CAAEjhB,SAAU,UAChB,CAKgB,aAAAooD,GAAuB,CAKvB,OAAAntC,GACfpa,MAAMoa,UAENjoB,KAAKq3D,kCAAkCzgC,QACxC,CAUQ,oBAAA0gC,CAAsBrpC,GAC7B,MAAM0S,EAAY3gC,KAAKwD,SAASm9B,UAC1B42B,EAAe,IAAI,GAAe52B,EAAU2W,YAAa,CAAEoB,SAAU/X,EAAU0W,WAAYmB,MAAM,IAGlGvqB,GAAWP,GAASyB,WAAalB,GAAWP,GAAS2B,SACzDkoC,EAAahrB,MAAOgrB,EAAa12B,oBAI7B5S,GAAWP,GAAS0B,YAAcnB,GAAWP,GAAS4B,WAC1DioC,EAAahrB,MAAOgrB,EAAa7f,mBAGlC,MAAM50C,EAAO,CACZ00D,aAAc72B,EACd42B,eACAtb,aAAc,MAIfj8C,KAAKwD,SAASoN,KAAwC,kBAAmB9N,GAMzE9C,KAAKq3D,kCAAmCv0D,EACzC,ECrGD,SALA,SAAqBtK,GAEnB,OADAwH,KAAKgZ,SAASpH,IAAIpZ,EAbC,6BAcZwH,IACT,ECHA,SAJA,SAAqBxH,GACnB,OAAOwH,KAAKgZ,SAAS/K,IAAIzV,EAC3B,ECCA,SAASi/D,GAASrsD,GAChB,IAAIxG,GAAS,EACTtM,EAAmB,MAAV8S,EAAiB,EAAIA,EAAO9S,OAGzC,IADA0H,KAAKgZ,SAAW,IAAI,KACXpU,EAAQtM,GACf0H,KAAKkO,IAAI9C,EAAOxG,GAEpB,CAGA6yD,GAAS51D,UAAUqM,IAAMupD,GAAS51D,UAAUjC,KAAO,GACnD63D,GAAS51D,UAAUoM,IAAM,GAEzB,YCJA,SAZA,SAAmBiL,EAAO8C,GAIxB,IAHA,IAAIpX,GAAS,EACTtM,EAAkB,MAAT4gB,EAAgB,EAAIA,EAAM5gB,SAE9BsM,EAAQtM,GACf,GAAI0jB,EAAU9C,EAAMtU,GAAQA,EAAOsU,GACjC,OAAO,EAGX,OAAO,CACT,ECRA,SAJA,SAAkBkyB,EAAOr0C,GACvB,OAAOq0C,EAAMn9B,IAAIlX,EACnB,ECyEA,SA9DA,SAAqBmiB,EAAOD,EAAOqF,EAASnE,EAAYu9C,EAAWhpD,GACjE,IAAIu6B,EAjBqB,EAiBT3qB,EACZq5C,EAAYz+C,EAAM5gB,OAClBs/D,EAAY3+C,EAAM3gB,OAEtB,GAAIq/D,GAAaC,KAAe3uB,GAAa2uB,EAAYD,GACvD,OAAO,EAGT,IAAIE,EAAanpD,EAAMtG,IAAI8Q,GACvB4+C,EAAappD,EAAMtG,IAAI6Q,GAC3B,GAAI4+C,GAAcC,EAChB,OAAOD,GAAc5+C,GAAS6+C,GAAc5+C,EAE9C,IAAItU,GAAS,EACTzG,GAAS,EACT45D,EA/BuB,EA+Bfz5C,EAAoC,IAAI,QAAWzW,EAM/D,IAJA6G,EAAMkD,IAAIsH,EAAOD,GACjBvK,EAAMkD,IAAIqH,EAAOC,KAGRtU,EAAQ+yD,GAAW,CAC1B,IAAIK,EAAW9+C,EAAMtU,GACjBqzD,EAAWh/C,EAAMrU,GAErB,GAAIuV,EACF,IAAI+9C,EAAWjvB,EACX9uB,EAAW89C,EAAUD,EAAUpzD,EAAOqU,EAAOC,EAAOxK,GACpDyL,EAAW69C,EAAUC,EAAUrzD,EAAOsU,EAAOD,EAAOvK,GAE1D,QAAiB7G,IAAbqwD,EAAwB,CAC1B,GAAIA,EACF,SAEF/5D,GAAS,EACT,KACF,CAEA,GAAI45D,GACF,IAAK,GAAU9+C,GAAO,SAASg/C,EAAUE,GACnC,IAAK,GAASJ,EAAMI,KACfH,IAAaC,GAAYP,EAAUM,EAAUC,EAAU35C,EAASnE,EAAYzL,IAC/E,OAAOqpD,EAAKn4D,KAAKu4D,EAErB,IAAI,CACNh6D,GAAS,EACT,KACF,OACK,GACD65D,IAAaC,IACXP,EAAUM,EAAUC,EAAU35C,EAASnE,EAAYzL,GACpD,CACLvQ,GAAS,EACT,KACF,CACF,CAGA,OAFAuQ,EAAc,OAAEwK,GAChBxK,EAAc,OAAEuK,GACT9a,CACT,EChEA,SAVA,SAAoBnB,GAClB,IAAI4H,GAAS,EACTzG,EAASwC,MAAM3D,EAAIgX,MAKvB,OAHAhX,EAAIY,SAAQ,SAASpF,EAAOzB,GAC1BoH,IAASyG,GAAS,CAAC7N,EAAKyB,EAC1B,IACO2F,CACT,ECEA,SAVA,SAAoByT,GAClB,IAAIhN,GAAS,EACTzG,EAASwC,MAAMiR,EAAIoC,MAKvB,OAHApC,EAAIhU,SAAQ,SAASpF,GACnB2F,IAASyG,GAASpM,CACpB,IACO2F,CACT,ECPA,IAkBI,GAAc,GAAS,GAAO0D,eAAYgG,EAC1C,GAAgB,GAAc,GAAY+V,aAAU/V,EAoFxD,SAjEA,SAAoB0N,EAAQ0D,EAAOlB,EAAKuG,EAASnE,EAAYu9C,EAAWhpD,GACtE,OAAQqJ,GACN,IAzBc,oBA0BZ,GAAKxC,EAAO8H,YAAcpE,EAAMoE,YAC3B9H,EAAOgI,YAActE,EAAMsE,WAC9B,OAAO,EAEThI,EAASA,EAAOsG,OAChB5C,EAAQA,EAAM4C,OAEhB,IAlCiB,uBAmCf,QAAKtG,EAAO8H,YAAcpE,EAAMoE,aAC3Bq6C,EAAU,IAAI,GAAWniD,GAAS,IAAI,GAAW0D,KAKxD,IAnDU,mBAoDV,IAnDU,gBAoDV,IAjDY,kBAoDV,OAAO,IAAI1D,GAAS0D,GAEtB,IAxDW,iBAyDT,OAAO1D,EAAOvT,MAAQiX,EAAMjX,MAAQuT,EAAO9G,SAAWwK,EAAMxK,QAE9D,IAxDY,kBAyDZ,IAvDY,kBA2DV,OAAO8G,GAAW0D,EAAQ,GAE5B,IAjES,eAkEP,IAAI/hB,EAAU,GAEhB,IAjES,eAkEP,IAAI+xC,EA5EiB,EA4EL3qB,EAGhB,GAFApnB,IAAYA,EAAU,IAElBqe,EAAOvB,MAAQiF,EAAMjF,OAASi1B,EAChC,OAAO,EAGT,IAAIvqB,EAAUhQ,EAAMtG,IAAImN,GACxB,GAAImJ,EACF,OAAOA,GAAWzF,EAEpBqF,GAtFuB,EAyFvB5P,EAAMkD,IAAI2D,EAAQ0D,GAClB,IAAI9a,EAAS,GAAYjH,EAAQqe,GAASre,EAAQ+hB,GAAQqF,EAASnE,EAAYu9C,EAAWhpD,GAE1F,OADAA,EAAc,OAAE6G,GACTpX,EAET,IAnFY,kBAoFV,GAAI,GACF,OAAO,GAAckD,KAAKkU,IAAW,GAAclU,KAAK4X,GAG9D,OAAO,CACT,EC1GA,IAMI,GAHcjiB,OAAO6K,UAGQyG,eAgFjC,SAjEA,SAAsBiN,EAAQ0D,EAAOqF,EAASnE,EAAYu9C,EAAWhpD,GACnE,IAAIu6B,EAtBqB,EAsBT3qB,EACZ85C,EAAW,GAAW7iD,GACtB8iD,EAAYD,EAAS9/D,OAIzB,GAAI+/D,GAHW,GAAWp/C,GACD3gB,SAEM2wC,EAC7B,OAAO,EAGT,IADA,IAAIrkC,EAAQyzD,EACLzzD,KAAS,CACd,IAAI7N,EAAMqhE,EAASxzD,GACnB,KAAMqkC,EAAYlyC,KAAOkiB,EAAQ,GAAe5X,KAAK4X,EAAOliB,IAC1D,OAAO,CAEX,CAEA,IAAIuhE,EAAa5pD,EAAMtG,IAAImN,GACvBuiD,EAAappD,EAAMtG,IAAI6Q,GAC3B,GAAIq/C,GAAcR,EAChB,OAAOQ,GAAcr/C,GAAS6+C,GAAcviD,EAE9C,IAAIpX,GAAS,EACbuQ,EAAMkD,IAAI2D,EAAQ0D,GAClBvK,EAAMkD,IAAIqH,EAAO1D,GAGjB,IADA,IAAIgjD,EAAWtvB,IACNrkC,EAAQyzD,GAAW,CAE1B,IAAIp+C,EAAW1E,EADfxe,EAAMqhE,EAASxzD,IAEXqzD,EAAWh/C,EAAMliB,GAErB,GAAIojB,EACF,IAAI+9C,EAAWjvB,EACX9uB,EAAW89C,EAAUh+C,EAAUljB,EAAKkiB,EAAO1D,EAAQ7G,GACnDyL,EAAWF,EAAUg+C,EAAUlhE,EAAKwe,EAAQ0D,EAAOvK,GAGzD,UAAmB7G,IAAbqwD,EACGj+C,IAAag+C,GAAYP,EAAUz9C,EAAUg+C,EAAU35C,EAASnE,EAAYzL,GAC7EwpD,GACD,CACL/5D,GAAS,EACT,KACF,CACAo6D,IAAaA,EAAkB,eAAPxhE,EAC1B,CACA,GAAIoH,IAAWo6D,EAAU,CACvB,IAAIC,EAAUjjD,EAAOxT,YACjB02D,EAAUx/C,EAAMlX,YAGhBy2D,GAAWC,KACV,gBAAiBljD,MAAU,gBAAiB0D,IACzB,mBAAXu/C,GAAyBA,aAAmBA,GACjC,mBAAXC,GAAyBA,aAAmBA,IACvDt6D,GAAS,EAEb,CAGA,OAFAuQ,EAAc,OAAE6G,GAChB7G,EAAc,OAAEuK,GACT9a,CACT,EC7EA,IAGI,GAAU,qBACV,GAAW,iBACX,GAAY,kBAMZ,GAHcnH,OAAO6K,UAGQyG,eA6DjC,SA7CA,SAAyBiN,EAAQ0D,EAAOqF,EAASnE,EAAYu9C,EAAWhpD,GACtE,IAAIgqD,EAAW,GAAQnjD,GACnBojD,EAAW,GAAQ1/C,GACnB2/C,EAASF,EAAW,GAAW,GAAOnjD,GACtCsjD,EAASF,EAAW,GAAW,GAAO1/C,GAKtC6/C,GAHJF,EAASA,GAAU,GAAU,GAAYA,IAGhB,GACrBG,GAHJF,EAASA,GAAU,GAAU,GAAYA,IAGhB,GACrBG,EAAYJ,GAAUC,EAE1B,GAAIG,GAAa,GAASzjD,GAAS,CACjC,IAAK,GAAS0D,GACZ,OAAO,EAETy/C,GAAW,EACXI,GAAW,CACb,CACA,GAAIE,IAAcF,EAEhB,OADApqD,IAAUA,EAAQ,IAAI,IACdgqD,GAAY,GAAanjD,GAC7B,GAAYA,EAAQ0D,EAAOqF,EAASnE,EAAYu9C,EAAWhpD,GAC3D,GAAW6G,EAAQ0D,EAAO2/C,EAAQt6C,EAASnE,EAAYu9C,EAAWhpD,GAExE,KArDyB,EAqDnB4P,GAAiC,CACrC,IAAI26C,EAAeH,GAAY,GAAez3D,KAAKkU,EAAQ,eACvD2jD,EAAeH,GAAY,GAAe13D,KAAK4X,EAAO,eAE1D,GAAIggD,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAe1jD,EAAO/c,QAAU+c,EAC/C6jD,EAAeF,EAAejgD,EAAMzgB,QAAUygB,EAGlD,OADAvK,IAAUA,EAAQ,IAAI,IACfgpD,EAAUyB,EAAcC,EAAc96C,EAASnE,EAAYzL,EACpE,CACF,CACA,QAAKsqD,IAGLtqD,IAAUA,EAAQ,IAAI,IACf,GAAa6G,EAAQ0D,EAAOqF,EAASnE,EAAYu9C,EAAWhpD,GACrE,ECrDA,SAVA,SAAS2qD,EAAY7gE,EAAOygB,EAAOqF,EAASnE,EAAYzL,GACtD,OAAIlW,IAAUygB,IAGD,MAATzgB,GAA0B,MAATygB,IAAmB,GAAazgB,KAAW,GAAaygB,GACpEzgB,GAAUA,GAASygB,GAAUA,EAE/B,GAAgBzgB,EAAOygB,EAAOqF,EAASnE,EAAYk/C,EAAa3qD,GACzE,ECeA,SANA,SAAqBlW,EAAOygB,EAAOkB,GAEjC,IAAIhc,GADJgc,EAAkC,mBAAdA,EAA2BA,OAAatS,GAClCsS,EAAW3hB,EAAOygB,QAASpR,EACrD,YAAkBA,IAAX1J,EAAuB,GAAY3F,EAAOygB,OAAOpR,EAAWsS,KAAgBhc,CACrF,ECLe,MAAM,WAAyBu2D,GAI7B7Y,aAKAyd,SAKCz6C,QAKA06C,aAKTC,kBAKR,WAAAz3D,CAAa41B,GACZ9pB,MAAO8pB,GAEP33B,KAAK6e,QAAU,CACd8qC,WAAW,EACX8P,eAAe,EACfC,SAAS,GAGV15D,KAAK67C,aAAelkB,EAAKkkB,aACzB77C,KAAKs5D,SAAW3hC,EAAKgiC,UAErB35D,KAAKu5D,aAAe,IAAIxlD,IACxB/T,KAAKw5D,kBAAoB,IAAIj2D,OAAOq2D,iBAAkB55D,KAAK65D,aAAa7yD,KAAMhH,MAC/E,CAKO,KAAAm3D,GACNn3D,KAAK65D,aAAc75D,KAAKw5D,kBAAkBM,cAC3C,CAKO,OAAA9xC,CAAS+zB,GACf/7C,KAAKu5D,aAAarrD,IAAK6tC,GAElB/7C,KAAKmgC,WACTngC,KAAKw5D,kBAAkBxxC,QAAS+zB,EAAY/7C,KAAK6e,QAEnD,CAKgB,aAAAu2C,CAAerZ,GAG9B,GAFA/7C,KAAKu5D,aAAaznD,OAAQiqC,GAErB/7C,KAAKmgC,UAAY,CAGrBngC,KAAKw5D,kBAAkBO,aAEvB,UAAYhe,KAAc/7C,KAAKu5D,aAC9Bv5D,KAAKw5D,kBAAkBxxC,QAAS+zB,EAAY/7C,KAAK6e,QAEnD,CACD,CAKgB,MAAA+1C,GACf/mD,MAAM+mD,SAEN,UAAY7Y,KAAc/7C,KAAKu5D,aAC9Bv5D,KAAKw5D,kBAAkBxxC,QAAS+zB,EAAY/7C,KAAK6e,QAEnD,CAKgB,OAAAg2C,GACfhnD,MAAMgnD,UAEN70D,KAAKw5D,kBAAkBO,YACxB,CAKgB,OAAA9xC,GACfpa,MAAMoa,UAENjoB,KAAKw5D,kBAAkBO,YACxB,CAOQ,YAAAF,CAAcG,GAErB,GAA6B,IAAxBA,EAAa1hE,OACjB,OAGD,MAAMujD,EAAe77C,KAAK67C,aAGpBoe,EAAmB,IAAIlmD,IACvBmmD,EAA8B,IAAInmD,IAIxC,UAAYomD,KAAYH,EAAe,CACtC,MAAMjjD,EAAU8kC,EAAaiQ,aAAcqO,EAASv2D,QAE9CmT,IAKDA,EAAQxI,GAAI,cAAiBwI,EAAQxI,GAAI,eAIvB,cAAlB4rD,EAAShvD,MAAyBnL,KAAKo6D,mBAAoBD,IAC/DD,EAA4BhsD,IAAK6I,GAEnC,CAGA,UAAYojD,KAAYH,EAAe,CACtC,MAAMjjD,EAAU8kC,EAAaiQ,aAAcqO,EAASv2D,QAGpD,KAAKmT,IAAaA,EAAQxI,GAAI,eAAiBwI,EAAQxI,GAAI,gBAIpC,kBAAlB4rD,EAAShvD,KAA2B,CACxC,MAAMktB,EAAOwjB,EAAa+V,0BAA2BuI,EAASv2D,QAEzDy0B,IAAS6hC,EAA4BjsD,IAAKoqB,EAAKz5B,QACnDq7D,EAAiB/rD,IAAKmqB,IAKZA,GAAQ8sB,GAAkBgV,EAASv2D,SAC7Cs2D,EAA4BhsD,IAC3B2tC,EAAaiQ,aAAcqO,EAASv2D,OAAOqD,YAG9C,CACD,CAKA,IAAIozD,GAAe,EAEnB,UAAYvxB,KAAYmxB,EACvBI,GAAe,EACfr6D,KAAKs5D,SAASrT,WAAY,OAAQnd,GAGnC,UAAYqY,KAAe+Y,EAA8B,CACxD,MAAMne,EAAaF,EAAaqK,aAAc/E,GACxCmZ,EAAe35D,MAAMrB,KAAM6hD,EAAYra,eACvCyzB,EAAkB55D,MAAMrB,KAAMu8C,EAAasV,kBAAmBpV,EAAY,CAAEsL,cAAc,KAI1F,GAAaiT,EAAcC,EAAiB,MACjDF,GAAe,EACfr6D,KAAKs5D,SAASrT,WAAY,WAAY9E,GAExC,CAGKkZ,GASJr6D,KAAK23B,KAAK6iC,aAMZ,CASQ,kBAAAJ,CAAoBD,GAC3B,IAAIM,EAAY,KAShB,OAN8B,OAAzBN,EAASjjD,aAAyD,IAAjCijD,EAASO,aAAapiE,QAA8C,GAA9B6hE,EAASQ,WAAWriE,SAC/FmiE,EAAYz6D,KAAK67C,aAAa2N,UAAW2Q,EAASQ,WAAY,GAAK,CAClEtT,cAAc,KAIToT,GAAaA,EAAUlsD,GAAI,UAAW,KAC9C,EAGD,SAAS,GAAWqsD,EAAkBC,GAErC,IAAKl6D,MAAMC,QAASg6D,GAKpB,OAAKA,IAAWC,MAIND,EAAOrsD,GAAI,WAAassD,EAAOtsD,GAAI,WACrCqsD,EAAO93D,OAAS+3D,EAAO/3D,IAKhC,CCpQe,MAAMg4D,WAAsB,GAIlCC,iBAOAC,kBAA4B,EAKpB9F,aAAe,CAAE,QAAS,QAK1C,WAAAnzD,CAAa41B,GACZ9pB,MAAO8pB,GAEP33B,KAAKogB,YAAa,EAClB,MAAM5c,EAAWxD,KAAKwD,SAEtBA,EAASiM,GAA4B,SAAS,KAC7CzP,KAAKg7D,kBAAmB,EAUxBh7D,KAAK+6D,iBAAmBhlC,YAAY,KACnC/1B,KAAKm3D,QACLx/B,EAAKmO,QAAQ,QAAU,GACrB,GAAI,IAGRtiC,EAASiM,GAA2B,QAAQ,CAAE+F,EAAK1S,KAClD,MAAMm4D,EAAmBz3D,EAASm9B,UAAU2R,gBAElB,OAArB2oB,GAA6BA,IAAqBn4D,EAAKc,SAC3DJ,EAASsyB,WAAY,EACrB91B,KAAKg7D,kBAAmB,EAIxBrjC,EAAKmO,QAAQ,SACd,GAEF,CAKO,KAAAqxB,GACDn3D,KAAKg7D,mBACTh7D,KAAKg7D,kBAAmB,EACxBh7D,KAAKwD,SAASsyB,WAAY,EAE5B,CAKO,UAAAq/B,CAAYH,GAClBh1D,KAAK4Q,KAAMokD,EAAS7pD,KAAM6pD,EAC3B,CAKgB,OAAA/sC,GACVjoB,KAAK+6D,kBACTllC,aAAc71B,KAAK+6D,kBAGpBltD,MAAMoa,SACP,ECzEc,MAAMizC,WAA0BxG,GAM9ByG,iBAMAC,cAMAz6B,UAKAkb,aAMCwf,WAKAhE,kCAOAiE,2BAOAC,+CAKTC,iBAER,WAAAz5D,CAAa41B,GACZ9pB,MAAO8pB,GAEP33B,KAAKm7D,iBAAmBxjC,EAAK8jC,YAAa,IAC1Cz7D,KAAKo7D,cAAgBzjC,EAAK8jC,YAAaX,IACvC96D,KAAK2gC,UAAY3gC,KAAKwD,SAASm9B,UAC/B3gC,KAAK67C,aAAelkB,EAAKkkB,aAEzB77C,KAAKq7D,WAAa,IAAIttD,QAEtB/N,KAAKq3D,kCAAoC,IAAUv0D,IAClD9C,KAAKwD,SAASoN,KAA4C,sBAAuB9N,EAAM,GACrF,KAEH9C,KAAKs7D,2BAA6BI,aAAa,IAAM17D,KAAK27D,sBAAsB,KAEhF37D,KAAKu7D,+CAAiD,IAAU,IAAQv7D,KAAKwD,SAASwiD,aAAc,GAAS,KAE7GhmD,KAAKw7D,iBAAmB,CACzB,CAKgB,OAAAxzC,CAAS+zB,GACxB,MAAMH,EAAcG,EAAWl8B,cASzB+7C,EAAyB,KACxB57D,KAAKwD,SAASwiD,cAMpBhmD,KAAK67D,uBAAwB,KAAMjgB,GAEnC57C,KAAKwD,SAASwiD,aAAc,EAG5BhmD,KAAKu7D,+CAA+C3kC,SAAQ,EAM7D52B,KAAK4P,SAAUmsC,EAAY,eAzBM,KAChC/7C,KAAKwD,SAASwiD,aAAc,EAG5BhmD,KAAKu7D,gDAAgD,GAqBc,CAAEvuD,SAAU,YAEhFhN,KAAK4P,SAAUmsC,EAAY,UAAW6f,EAAwB,CAAE5uD,SAAU,UAAWoT,YAAY,IACjGpgB,KAAK4P,SAAUmsC,EAAY,QAAS6f,EAAwB,CAAE5uD,SAAU,UAAWoT,YAAY,IAG1FpgB,KAAKq7D,WAAWptD,IAAK2tC,KAM1B57C,KAAK4P,SAAUgsC,EAAa,UAAWggB,EAAwB,CAAE5uD,SAAU,UAAWoT,YAAY,IAElGpgB,KAAK4P,SAAUgsC,EAAa,mBAAmB,CAAEpmC,EAAKw/C,KAahDh1D,KAAKwD,SAASyjC,cAAgB,EAAIh+B,YAWvCjJ,KAAK67D,uBAAwB7G,EAAUpZ,GAQvC57C,KAAKu7D,iDAAgD,IAGtDv7D,KAAKq7D,WAAWntD,IAAK0tC,GACtB,CAKgB,aAAAwZ,CAAerZ,GAC9B/7C,KAAK+P,cAAegsC,EACrB,CAKgB,OAAA9zB,GACfpa,MAAMoa,UAEN6zC,cAAe97D,KAAKs7D,4BACpBt7D,KAAKq3D,kCAAkCzgC,SACvC52B,KAAKu7D,+CAA+C3kC,QACrD,CAGQ,mBAAAmlC,GAKR,CAUQ,sBAAAF,CAAwB7G,EAAmBpZ,GAClD,IAAM57C,KAAKmgC,UACV,OAGD,MAAM8b,EAAeL,EAAYj8B,YAAaw8B,eAE9C,GAAKn8C,KAAK80D,iCAAkC7Y,EAAa0P,YACxD,OAID3rD,KAAKm7D,iBAAiBhE,QAEtB,MAAM5E,EAAmBvyD,KAAK67C,aAAa6P,mBAAoBzP,GAM/D,GAAoC,GAA/BsW,EAAiBnb,YAWtB,GALAp3C,KAAK23B,KAAKqkC,iBAAkB,EAG5Bh8D,KAAKo7D,cAAcjE,SAEdn3D,KAAK2gC,UAAUtb,QAASktC,KAAsBvyD,KAAK67C,aAAa2P,sBAAuBvP,GAO5F,KAAOj8C,KAAKw7D,iBAAmB,GAK9Bx7D,KAAK+7D,2BAKN,GAAK/7D,KAAK2gC,UAAU+H,UAAW6pB,GAG9BvyD,KAAK23B,KAAK6iC,kBACJ,CACN,MAAM13D,EAAuC,CAC5C00D,aAAcx3D,KAAK2gC,UACnB42B,aAAchF,EACdtW,gBAWDj8C,KAAKwD,SAASoN,KAAwC,kBAAmB9N,GAMzE9C,KAAKq3D,kCAAmCv0D,EACzC,OArDC9C,KAAK23B,KAAKqkC,iBAAkB,CAsD9B,CAKQ,kBAAAL,GACP37D,KAAKw7D,iBAAmB,CACzB,ECjSc,MAAMS,WAA4B,GAIhC/G,aAAe,CAAE,mBAAoB,oBAAqB,kBAK1E,WAAAnzD,CAAa41B,GACZ9pB,MAAO8pB,GAEP,MAAMn0B,EAAWxD,KAAKwD,SAEtBA,EAASiM,GAAuC,oBAAoB,KAOnEjM,EAASyjC,aAAc,CAAI,GACzB,CAAEj6B,SAAU,QAEfxJ,EAASiM,GAAqC,kBAAkB,KAO/DjM,EAASyjC,aAAc,CAAK,GAC1B,CAAEj6B,SAAU,OAChB,CAKO,UAAAmoD,CAAYH,GAKlBh1D,KAAK4Q,KAAMokD,EAAS7pD,KAAM6pD,EAAU,CACnClyD,KAAMkyD,EAASlyD,MAMjB,ECxDc,MAAMo5D,GAIZC,OAKAC,QAMR,WAAAr6D,CAAas6D,EAAqC93D,EAAoC,CAAC,GAKtFvE,KAAKm8D,OAAS53D,EAAQ+3D,WAAaC,GAAUF,GAAuB,KAEpEr8D,KAAKo8D,QAAUC,CAChB,CAKA,SAAWG,GAKV,OAJMx8D,KAAKm8D,SACVn8D,KAAKm8D,OAASI,GAAUv8D,KAAKo8D,UAGvBp8D,KAAKm8D,MACb,CAKA,SAAWnhD,GACV,OAAOhb,KAAKo8D,QAAQphD,KACrB,CAWO,OAAAyhD,CAAStxD,GACf,OAAOnL,KAAKo8D,QAAQK,QAAStxD,EAC9B,CAOO,OAAAuxD,CAASvxD,EAAcrI,GAC7B9C,KAAKo8D,QAAQM,QAASvxD,EAAMrI,EAC7B,CAKA,iBAAW65D,CAAenkE,GACzBwH,KAAKo8D,QAAQO,cAAgBnkE,CAC9B,CAEA,iBAAWmkE,GACV,OAAO38D,KAAKo8D,QAAQO,aACrB,CAKA,cAAWC,CAAYpkE,GACtBwH,KAAKo8D,QAAQQ,WAAapkE,CAC3B,CAEA,cAAWokE,GACV,OAAO58D,KAAKo8D,QAAQQ,UACrB,CAKO,YAAAC,CAAcC,EAAgB5iE,EAAWD,GAC/C+F,KAAKo8D,QAAQS,aAAcC,EAAO5iE,EAAGD,EACtC,CAKA,cAAW8iE,GACV,MAAkC,QAA3B/8D,KAAKo8D,QAAQQ,cAA4B58D,KAAKo8D,QAAiBY,gBACvE,EAaD,SAAST,GAAUF,GAElB,MAAMG,EAAQ77D,MAAMrB,KAAM+8D,EAAmBG,OAAS,IAChD5oC,EAAQjzB,MAAMrB,KAAM+8D,EAAmBzoC,OAAS,IAEtD,OAAK4oC,EAAMlkE,OACHkkE,EAID5oC,EACL7tB,QAAQ9F,GAAsB,SAAdA,EAAKg9D,OACrBjgE,KAAKiD,GAAQA,EAAKi9D,aACrB,CCtHe,MAAMC,WAAsB,GAI1BjI,aAAe,cAKxB,UAAAC,CAAYH,GAOlB,MAAMoI,EAAkBpI,EAASqI,kBAC3B1lC,EAAO33B,KAAK23B,KACZ2lC,EAAe3lC,EAAKn0B,SAE1B,IAAI+5D,EAAoC,KACpCz6D,EAAsB,KACtB06D,EAAiC,GA0BrC,GAxBKxI,EAASuI,eACbA,EAAe,IAAIrB,GAAclH,EAASuI,eAGpB,OAAlBvI,EAASlyD,KACbA,EAAOkyD,EAASlyD,KAOLy6D,IACXz6D,EAAOy6D,EAAad,QAAS,eAWzBa,EAAa38B,UAAUuW,OAE3BsmB,EAAe78D,MAAMrB,KAAMg+D,EAAa38B,UAAU2W,kBAQ5C,GAAK8lB,EAAgB9kE,OAC3BklE,EAAeJ,EAAgBpgE,KAAK8tD,IAKnC,MAAM4G,EAAY/5B,EAAKkkB,aAAae,kBAAmBkO,EAAS3jC,eAAgB2jC,EAAS3W,aACnFwd,EAAUh6B,EAAKkkB,aAAae,kBAAmBkO,EAASvG,aAAcuG,EAASvW,WAErF,OAAKmd,EACG/5B,EAAK8pB,YAAaiQ,EAAWC,GACzBA,EACJh6B,EAAK8pB,YAAakQ,QADnB,CAEP,IACG5rD,QAAUghB,KAAiCA,SAOhD,GAGU,EAAI9d,UAAY,CACzB,MAAMgzC,EAAiB+Y,EAASpxD,OAAwBic,cAAcF,YAAaw8B,eAEnFqhB,EAAe78D,MAAMrB,KAAMq4B,EAAKkkB,aAAa6P,mBAAoBzP,GAAe3E,YAOjF,CAOA,GAAK,EAAIruC,WAAmC,yBAAtB+rD,EAASyI,WAAwC36D,GAAQA,EAAK2rB,SAAU,MAC7FzuB,KAAK4Q,KAAMokD,EAAS7pD,KAAM6pD,EAAU,CACnCyI,UAAW,kBACXD,aAAc,CAAE7lC,EAAK8pB,YAAa+b,EAAc,GAAIzxB,aAYtD,GAA2B,cAAtBipB,EAASyI,WAA6B36D,GAAQA,EAAKqvB,SAAU,MAAlE,CAGC,MAAM7S,EAAQxc,EAAK/F,MAAO,YAE1B,IAAI2gE,EAAmBF,EAEvB,QAAUhjE,EAAI,EAAGA,EAAI8kB,EAAMhnB,OAAQkC,IAAM,CACxC,MAAMmjE,EAAWr+C,EAAO9kB,GAEP,IAAZmjE,IACJ39D,KAAK4Q,KAAMokD,EAAS7pD,KAAM6pD,EAAU,CACnClyD,KAAM66D,EACNJ,eACAC,aAAcE,EACdD,UAAWzI,EAASyI,UACpBx2B,YAAa+tB,EAAS/tB,cAIvBy2B,EAAmB,CAAEJ,EAAa38B,UAAU4W,kBAGxC/8C,EAAI,EAAI8kB,EAAMhnB,SAClB0H,KAAK4Q,KAAMokD,EAAS7pD,KAAM6pD,EAAU,CACnCyI,UAAW,kBACXD,aAAcE,IAIfA,EAAmB,CAAEJ,EAAa38B,UAAU4W,iBAE9C,CAOD,MAGAv3C,KAAK4Q,KAAMokD,EAAS7pD,KAAM6pD,EAAU,CACnClyD,OACAy6D,eACAC,eACAC,UAAWzI,EAASyI,UACpBx2B,YAAa+tB,EAAS/tB,aAMxB,ECtKc,MAAM22B,WAA0BlJ,GAI9C,WAAA3yD,CAAa41B,GACZ9pB,MAAO8pB,GAEP33B,KAAKwD,SAASiM,GAA8B,WAAW,CAAEC,EAAO5M,KAC/D,GAAK9C,KAAKmgC,ajIqImBlS,EiIrIUnrB,EAAKmrB,UjIsI5BP,GAAS0B,YAC1BnB,GAAWP,GAASyB,WACpBlB,GAAWP,GAAS2B,SACpBpB,GAAWP,GAAS4B,WiIzIqC,CACvD,MAAMxe,EAAY,IAAIyoC,GAAmBv5C,KAAKwD,SAAU,WAAYxD,KAAKwD,SAASm9B,UAAU4W,iBAE5Fv3C,KAAKwD,SAASoN,KAAiCE,EAAWhO,GAErDgO,EAAUzE,KAAKF,QACnBuD,EAAMrD,MAER,CjI6HI,IAAyB4hB,CiI7H7B,GAEF,CAKgB,OAAAjG,GAAiB,CAKjB,aAAAotC,GAAuB,EC3BzB,MAAMyI,WAAoBnJ,GAIxC,WAAA3yD,CAAa41B,GACZ9pB,MAAO8pB,GAEP,MAAM1f,EAAMjY,KAAKwD,SAEjByU,EAAIxI,GAA8B,WAAW,CAAE+F,EAAK1S,KACnD,IACE9C,KAAKmgC,WACNr9B,EAAKmrB,SAAWP,GAASmC,KACzB/sB,EAAKqrB,QAEL,OAGD,MAAMze,EAAQ,IAAI6pC,GAAmBthC,EAAK,MAAOA,EAAI0oB,UAAU4W,iBAE/Dt/B,EAAIrH,KAA4BlB,EAAO5M,GAElC4M,EAAMrD,KAAKF,QACfqJ,EAAInJ,MACL,GAEF,CAKgB,OAAA2b,GAAiB,CAKjB,aAAAotC,GAAuB,EC/BxC,SAJA,SAAmB58D,GACjB,OAAO,GAAUA,EAAO,EAC1B,EC2De,MAAM,WAA6B8a,KAIjC9P,SAOAq4C,aAKAiiB,SAAqC,IAAIpsD,IAuBzCioD,UAQCoE,0BAA0E,IAAIxqC,QAK9EyqC,WAAiD,IAAItsD,IAKrDusD,QAKTC,gBAA0B,EAK1BC,uBAAiC,EAKjCC,oBAA8B,EAM9BC,kCAA4C,EAKpD,WAAAt8D,CAAaouC,GACZtiC,QAEA7N,KAAKwD,SAAW,IAAIoc,GAAUuwB,GAC9BnwC,KAAK67C,aAAe,IAAIkR,GAAc/sD,KAAKwD,UAE3CxD,KAAK4R,IAAK,yBAAyB,GACnC5R,KAAK4R,IAAK,mBAAmB,GAE7B5R,KAAK25D,UAAY,IAAIlU,GAAUzlD,KAAK67C,aAAc77C,KAAKwD,SAASm9B,WAChE3gC,KAAK25D,UAAU3yD,KAAM,YAAa,cAAe,eAC/CzH,GAAIS,KAAKwD,SAAU,YAAa,cAAe,eAEjDxD,KAAKi+D,QAAU,IAAI,GAAgBj+D,KAAKwD,UAIxCxD,KAAKs+D,YAAa,IAClBt+D,KAAKs+D,YAAaxD,IAClB96D,KAAKs+D,YAAapD,IAClBl7D,KAAKs+D,YAAahJ,IAClBt1D,KAAKs+D,YAAalH,IAClBp3D,KAAKs+D,YAAarC,IAClBj8D,KAAKs+D,YAAaV,IAClB59D,KAAKs+D,YAAanB,IAClBn9D,KAAKs+D,YAAaT,IAGI79D,KvC5ClBwD,SAASiM,GAA+B,WAAY+1C,GAAsB,CAAEx4C,SAAU,QuC6C1FgvC,GAAyBh8C,MAGzBA,KAAKyP,GAAqB,UAAU,KACnCzP,KAAKu+D,UAGLv+D,KAAKwD,SAASoN,KAAsC,iBAGpD5Q,KAAKq+D,kCAAmC,CAAK,IAI9Cr+D,KAAK4P,SAA4C5P,KAAKwD,SAASm9B,UAAW,UAAU,KACnF3gC,KAAKq+D,kCAAmC,CAAI,IAI7Cr+D,KAAK4P,SAAiC5P,KAAKwD,SAAU,oBAAoB,KACxExD,KAAKq+D,kCAAmC,CAAI,IAKxC,EAAIr1D,OACRhJ,KAAK4P,SAAiC5P,KAAKwD,SAAU,QAAQ,CAAEgS,EAAK1S,KACxC9C,KAAK67C,aAAaiQ,aAAchpD,EAAKkyD,SAASwJ,gBAIxEx+D,KAAK67C,aAAayW,oBACnB,GAGH,CAeO,aAAAmM,CAAelU,EAAsBvoD,EAAe,QAC1D,MAAM08D,EAAW1+D,KAAKwD,SAASw3C,QAASh5C,GAGxC08D,EAASjsB,MAAQ8X,EAAQe,QAAQ3iD,cAEjC,MAAMg2D,EAAmD,CAAC,EAS1D,UAAc38D,KAAAA,EAAAA,MAAMxJ,KAAWmI,MAAMrB,KAAMirD,EAAQhlD,YAClDo5D,EAA0B38D,GAASxJ,EAMrB,UAATwJ,EACJhC,KAAKi+D,QAAQ/2B,SAAU1uC,EAAMuE,MAAO,KAAO2hE,GAE3C1+D,KAAKi+D,QAAQx4D,aAAczD,EAAMxJ,EAAOkmE,GAI1C1+D,KAAK+9D,0BAA0BnsD,IAAK24C,EAASoU,GAE7C,MAAMC,EAAiC,KACtC5+D,KAAKi+D,QAAQx4D,aAAc,oBAAsBi5D,EAAS19B,YAAatkC,WAAYgiE,GAE9EA,EAAS19B,WACbhhC,KAAKi+D,QAAQ/2B,SAAU,eAAgBw3B,GAEvC1+D,KAAKi+D,QAAQ33B,YAAa,eAAgBo4B,EAC3C,EAIDE,IAEA5+D,KAAK89D,SAASlsD,IAAK5P,EAAMuoD,GACzBvqD,KAAK67C,aAAaqM,aAAcqC,EAASmU,GACzC1+D,KAAK25D,UAAU1T,WAAY,WAAYyY,GACvC1+D,KAAK25D,UAAU1T,WAAY,aAAcyY,GACzC1+D,KAAK25D,UAAUjU,aAAax3C,IAAKq8C,EAAQ1qC,eAEzC6+C,EAASjvD,GAAyB,mBAAmB,CAAE+F,EAAKrW,IAAUa,KAAK25D,UAAU1T,WAAY,WAAY9mD,KAC7Gu/D,EAASjvD,GAAyB,qBAAqB,CAAE+F,EAAKrW,IAAUa,KAAK25D,UAAU1T,WAAY,aAAc9mD,KACjHu/D,EAASjvD,GAAyB,eAAe,CAAE+F,EAAKrW,IAAUa,KAAK25D,UAAU1T,WAAY,OAAQ9mD,KACrGu/D,EAASjvD,GAA2B,qBAAqB,IAAMzP,KAAK8lC,OAAQ84B,KAE5EF,EAASjvD,GAAI,UAAU,KACtBzP,KAAKq+D,kCAAmC,CAAI,IAG7C,UAAYQ,KAAY7+D,KAAKg+D,WAAW5yD,SACvCyzD,EAAS72C,QAASuiC,EAASvoD,EAE7B,CAQO,aAAA88D,CAAe98D,GACrB,MAAMuoD,EAAUvqD,KAAK89D,SAAS11D,IAAKpG,GAGnCrB,MAAMrB,KAAMirD,EAAQhlD,YAAa3H,SAAS,EAAIoE,KAAAA,KAAYuoD,EAAQ7jD,gBAAiB1E,KAEnF,MAAM28D,EAA2B3+D,KAAK+9D,0BAA0B31D,IAAKmiD,GAGrE,UAAYh0C,KAAaooD,EACxBpU,EAAQ9kD,aAAc8Q,EAAWooD,EAA0BpoD,IAG5DvW,KAAK89D,SAAShsD,OAAQ9P,GACtBhC,KAAK67C,aAAaoM,iBAAkBsC,GAEpC,UAAYsU,KAAY7+D,KAAKg+D,WAAW5yD,SACvCyzD,EAASzJ,cAAe7K,EAE1B,CAQO,UAAAwU,CAAY/8D,EAAe,QACjC,OAAOhC,KAAK89D,SAAS11D,IAAKpG,EAC3B,CAeO,WAAAs8D,CAAaU,GACnB,IAAIH,EAAW7+D,KAAKg+D,WAAW51D,IAAK42D,GAEpC,GAAKH,EACJ,OAAOA,EAGRA,EAAW,IAAIG,EAAqBh/D,MAEpCA,KAAKg+D,WAAWpsD,IAAKotD,EAAqBH,GAE1C,UAAc78D,EAAM+5C,KAAgB/7C,KAAK89D,SACxCe,EAAS72C,QAAS+zB,EAAY/5C,GAK/B,OAFA68D,EAASjK,SAEFiK,CACR,CAWO,WAAApD,CAA4CuD,GAClD,OAAOh/D,KAAKg+D,WAAW51D,IAAK42D,EAC7B,CAKO,gBAAAC,GACN,UAAYJ,KAAY7+D,KAAKg+D,WAAW5yD,SACvCyzD,EAAShK,SAEX,CAKO,eAAAqK,GACN,UAAYL,KAAY7+D,KAAKg+D,WAAW5yD,SACvCyzD,EAASjK,QAEX,CAqBO,oBAAAuK,EAA8D,WACpEh0C,EAAU,YACVC,EAAW,eACXC,EAAiB,GAAE,eACnBc,EAAiB,IAMd,CAAC,GACJ,MAAMpF,EAAQ/mB,KAAKwD,SAASm9B,UAAU4W,gBAEtC,IAAMxwB,EACL,OAID,MAAMq4C,EAAe,GAAW,CAAEj0C,aAAYC,cAAaC,iBAAgBc,mBAE5C,iBAAnBd,IACXA,EAAiB,CAChBhJ,IAAKgJ,EACL5I,OAAQ4I,EACR1I,KAAM0I,EACN9I,MAAO8I,IAIT,MAAM9mB,EAAU,CACfX,OAAQ5D,KAAK67C,aAAayU,eAAgBvpC,GAC1CsE,iBACAc,iBACAhB,aACAC,eAGDprB,KAAK4Q,KAAqC,uBAAwBrM,EAAS66D,GrIzZtE,UACN,OACCx7D,EAAM,eACNynB,EAAiB,EAAC,eAClBc,EAAiB,EAAC,WAClBhB,EAAU,YACVC,IAUD,MAAM0B,EAAeR,GAAW1oB,GAChC,IAAImpB,EAA+BD,EAC/BuyC,EAAmC,KAKvC,IAHAh0C,EA+WD,SAAkCA,GACjC,MAA+B,iBAAnBA,EACJ,CACNhJ,IAAKgJ,EACL5I,OAAQ4I,EACR1I,KAAM0I,EACN9I,MAAO8I,GAIFA,CACR,CA1XkBi0C,CAAyBj0C,GAGlC0B,GAAgB,CACvB,IAAIwyC,EASHA,EAAwB5yC,GADpBI,GAAiBD,EACqBlpB,EAEAy7D,GAI3CpzC,GAA2B,CAC1BrtB,OAAQ2gE,EACRrzC,QAAS,IAMDU,GAAyBhpB,EAAQmpB,GAEzC5B,aACAgB,iBACAf,gBAKD,MAAMtB,EAAa8C,GAAyBhpB,EAAQmpB,GAUpD,GARA7B,GAAwB,CACvB3nB,OAAQwpB,EACR1I,KAAMyF,EACNuB,iBACAF,aACAC,gBAGI2B,EAAcnuB,QAAUmuB,GAY5B,GAPAsyC,EAAetyC,EAAcE,aAC7BF,EAAgBA,EAAcnuB,QAMxBygE,EACL,YAGDtyC,EAAgB,IAElB,CACD,CqIsUEyyC,CAA4Bj7D,EAC7B,CAMO,KAAAk7B,GACN,IAAMz/B,KAAKwD,SAASsyB,UAAY,CAC/B,MAAM0e,EAAWx0C,KAAKwD,SAASm9B,UAAU2R,gBAEpCkC,IACJx0C,KAAK67C,aAAapc,MAAO+U,GACzBx0C,KAAKw6D,cAQP,CACD,CAiCO,MAAA10B,CAAiBn2B,GACvB,GAAK3P,KAAKy/D,uBAAyBz/D,KAAKm+D,sBAavC,MAAM,IAAIzwD,EACT,0BACA1N,MAIF,IAEC,GAAKA,KAAKk+D,eACT,OAAOvuD,EAAU3P,KAAKi+D,SAKvBj+D,KAAKk+D,gBAAiB,EACtB,MAAMwB,EAAiB/vD,EAAU3P,KAAKi+D,SActC,OAbAj+D,KAAKk+D,gBAAiB,GAKhBl+D,KAAKo+D,oBAAsBp+D,KAAKq+D,mCACrCr+D,KAAKm+D,uBAAwB,EAC7Bn+D,KAAKwD,SAAS03C,gBAAiBl7C,KAAKi+D,SACpCj+D,KAAKm+D,uBAAwB,EAE7Bn+D,KAAK4Q,KAAuB,WAGtB8uD,CACR,CAAE,MAAQl+D,GAGTkM,EAAcc,uBAAwBhN,EAAKxB,KAC5C,CACD,CAYO,WAAAw6D,GACNx6D,KAAKq+D,kCAAmC,EACxCr+D,KAAKy7D,YAAaX,IAAgB3D,QAClCn3D,KAAK8lC,QAAQ,QACd,CAKO,OAAA7d,GACN,UAAY42C,KAAY7+D,KAAKg+D,WAAW5yD,SACvCyzD,EAAS52C,UAGVjoB,KAAKwD,SAASykB,UAEdjoB,KAAK+P,eACN,CAiBO,gBAAAuxC,CAAkBrM,EAAiC54B,GACzD,OAAO82B,GAASC,UAAW6B,EAAgB54B,EAC5C,CAOO,mBAAAklC,CAAqBthD,GAC3B,OAAOkzC,GAASS,aAAc3zC,EAC/B,CAOO,oBAAAuhD,CAAsBvhD,GAC5B,OAAOkzC,GAASe,cAAej0C,EAChC,CAUO,WAAAwhD,CAAahxB,EAAiBsb,GACpC,OAAO,IAAImJ,GAAOzkB,EAAOsb,EAC1B,CAKO,aAAA2V,CAAezhD,GACrB,OAAOi1C,GAAM0B,UAAW32C,EACzB,CAQO,aAAA0hD,CAAe5qC,GACrB,OAAOm+B,GAAMyB,UAAW5/B,EACzB,CAgGO,eAAA6qC,IAAoB1lD,GAC1B,OAAO,IAAI26C,MAAc36C,EAC1B,CASO,iBAAAyjE,CAAmBC,GACzB5/D,KAAKo+D,mBAAqBwB,EAEb,GAARA,GAEJ5/D,KAAK8lC,QAAQ,QAEf,CAMQ,OAAAy4B,GACPv+D,KAAKy/D,uBAAwB,EAC7Bz/D,KAAKi/D,mBACLj/D,KAAK25D,UAAUzhC,SACfl4B,KAAKk/D,kBACLl/D,KAAKy/D,uBAAwB,CAC9B,ECpwBc,MAAe,GAoRtB,EAAAlxD,GAON,MAAM,IAAIlW,MAAO,0BAClB,ECpQc,MAAe,WAAa,GAM1BuG,OAA4C,KAUpD6wC,OASR,WAAA1tC,CAAa8tC,GACZhiC,QAEA7N,KAAKyvC,OAASnZ,GAAOuZ,EACtB,CAKA,YAAWrsC,GACV,OAAO,IACR,CAQA,SAAWoB,GACV,IAAIyiC,EAEJ,IAAMrnC,KAAKpB,OACV,OAAO,KAGR,GAAqD,QAA9CyoC,EAAMrnC,KAAKpB,OAAO0oC,cAAetnC,OACvC,MAAM,IAAI0N,EAAe,iCAAkC1N,MAG5D,OAAOqnC,CACR,CASA,eAAW8M,GACV,IAAI9M,EAEJ,IAAMrnC,KAAKpB,OACV,OAAO,KAGR,GAA2D,QAApDyoC,EAAMrnC,KAAKpB,OAAOihE,oBAAqB7/D,OAC7C,MAAM,IAAI0N,EAAe,iCAAkC1N,MAG5D,OAAOqnC,CACR,CAQA,cAAW2B,GACV,OAAO,CACR,CAOA,aAAWuL,GACV,OAAMv0C,KAAKpB,OAIJoB,KAAKm0C,YAAen0C,KAAKgpC,WAHxB,IAIT,CAKA,eAAW9xB,GACV,MAAMtS,EAAQ5E,KAAK4E,MAEnB,OAAmB,OAAVA,GAAkB5E,KAAKpB,OAAQuoC,SAAUviC,EAAQ,IAAS,IACpE,CAKA,mBAAW6jB,GACV,MAAM7jB,EAAQ5E,KAAK4E,MAEnB,OAAmB,OAAVA,GAAkB5E,KAAKpB,OAAQuoC,SAAUviC,EAAQ,IAAS,IACpE,CAMA,QAAWtO,GAEV,IAAIA,EAAgC0J,KAEpC,KAAQ1J,EAAKsI,QACZtI,EAAOA,EAAKsI,OAGb,OAAOtI,CACR,CAKO,UAAAuwC,GAKN,OAAuB,OAAhB7mC,KAAKpB,QAA0BoB,KAAK1J,KAAKuwC,YACjD,CAkBO,OAAAU,GACN,MAAM9nC,EAAO,GAEb,IAAIN,EAAgCa,KAEpC,KAAQb,EAAKP,QACZa,EAAKL,QAASD,EAAKg1C,aACnBh1C,EAAOA,EAAKP,OAGb,OAAOa,CACR,CAWO,YAAA+nC,CAAcjjC,EAA4D,CAAC,GACjF,MAAMkjC,EAA4C,GAClD,IAAI7oC,EAAS2F,EAAQmjC,YAAc1nC,KAAOA,KAAKpB,OAE/C,KAAQA,GACP6oC,EAAWljC,EAAQojC,YAAc,OAAS,WAAa/oC,GACvDA,EAASA,EAAOA,OAGjB,OAAO6oC,CACR,CAWO,iBAAAG,CAAmBzoC,EAAYoF,EAAqC,CAAC,GAC3E,MAAMsjC,EAAa7nC,KAAKwnC,aAAcjjC,GAChCujC,EAAa3oC,EAAKqoC,aAAcjjC,GAEtC,IAAI/J,EAAI,EAER,KAAQqtC,EAAYrtC,IAAOstC,EAAYttC,IAAOqtC,EAAYrtC,IACzDA,IAGD,OAAa,IAANA,EAAU,KAAOqtC,EAAYrtC,EAAI,EACzC,CAQO,QAAAutC,CAAU5oC,GAEhB,GAAKa,MAAQb,EACZ,OAAO,EAIR,GAAKa,KAAK1J,OAAS6I,EAAK7I,KACvB,OAAO,EAGR,MAAM0xC,EAAWhoC,KAAKunC,UAChBU,EAAW9oC,EAAKooC,UAEhBppC,EAASkZ,GAAe2wB,EAAUC,GAExC,OAAS9pC,GACR,IAAK,SACJ,OAAO,EAER,IAAK,YACJ,OAAO,EAER,QACC,OAAO6pC,EAAU7pC,GAAqB8pC,EAAU9pC,GAEnD,CAQO,OAAA+pC,CAAS/oC,GAEf,OAAKa,MAAQb,IAKRa,KAAK1J,OAAS6I,EAAK7I,OAKhB0J,KAAK+nC,SAAU5oC,GACxB,CAQO,YAAAkxC,CAAct5C,GACpB,OAAOiJ,KAAKyvC,OAAOxhC,IAAKlX,EACzB,CAQO,YAAA2jC,CAAc3jC,GACpB,OAAOiJ,KAAKyvC,OAAOrnC,IAAKrR,EACzB,CAQO,aAAAq5C,GACN,OAAOpwC,KAAKyvC,OAAOr2B,SACpB,CAKO,gBAAAwwB,GACN,OAAO5pC,KAAKyvC,OAAOx4C,MACpB,CAOO,MAAAoxC,GACN,MAAMC,EAAY,CAAC,EAYnB,OARKtoC,KAAKyvC,OAAOz7B,OAChBs0B,EAAK/iC,WAAa5E,MAAMrB,KAAMU,KAAKyvC,QAAS9gB,QAAQ,CAAExwB,EAAQ6qD,KAC7D7qD,EAAQ6qD,EAAM,IAAQA,EAAM,GAErB7qD,IACL,CAAC,IAGEmqC,CACR,CAQO,MAAAM,CAAQk3B,GACd,OAAO,IAAM9/D,KAAK+B,YAAsB/B,KAAKyvC,OAC9C,CAQO,OAAApb,GACNr0B,KAAKpB,OAAQupC,gBAAiBnoC,KAAK4E,MACpC,CAUO,aAAA2sC,CAAex6C,EAAayB,GAClCwH,KAAKyvC,OAAO79B,IAAK7a,EAAKyB,EACvB,CASO,gBAAAunE,CAAkBlwB,GACxB7vC,KAAKyvC,OAASnZ,GAAOuZ,EACtB,CAUO,gBAAA4B,CAAkB16C,GACxB,OAAOiJ,KAAKyvC,OAAO39B,OAAQ/a,EAC5B,CAQO,gBAAAipE,GACNhgE,KAAKyvC,OAAO19B,OACb,EAKD,GAAKlQ,UAAU0M,GAAK,SAAUpD,GAC7B,MAAgB,SAATA,GAA4B,eAATA,CAC3B,EC9ae,MAAM80D,GAIZC,OAAsB,GAQ9B,WAAAn+D,CAAauvC,GACPA,GACJtxC,KAAK+/C,aAAc,EAAGzO,EAExB,CAOA,CAASxwC,OAAOC,YACf,OAAOf,KAAKkgE,OAAQp/D,OAAOC,WAC5B,CAKA,UAAWzI,GACV,OAAO0H,KAAKkgE,OAAO5nE,MACpB,CAKA,aAAW6nE,GACV,OAAOngE,KAAKkgE,OAAOvxC,QAAQ,CAAEC,EAAKzvB,IAAUyvB,EAAMzvB,EAAK6pC,YAAY,EACpE,CAKO,OAAAo3B,CAASx7D,GACf,OAAO5E,KAAKkgE,OAAQt7D,IAAW,IAChC,CAKO,YAAAy7D,CAAclhE,GACpB,MAAMyF,EAAQ5E,KAAKkgE,OAAOz2D,QAAStK,GAEnC,OAAiB,GAAVyF,EAAc,KAAOA,CAC7B,CAMO,kBAAA07D,CAAoBnhE,GAC1B,MAAMyF,EAAQ5E,KAAKqgE,aAAclhE,GAEjC,OAAiB,OAAVyF,EAAiB,KAAO5E,KAAKkgE,OAAOp+D,MAAO,EAAG8C,GAAQ+pB,QAAQ,CAAEC,EAAKzvB,IAAUyvB,EAAMzvB,EAAK6pC,YAAY,EAC9G,CAQO,aAAAu3B,CAAe37D,GACrB,GAAKA,GAAS5E,KAAKkgE,OAAO5nE,OACzB,OAAO0H,KAAKmgE,UAGb,MAAMhhE,EAAOa,KAAKkgE,OAAQt7D,GAE1B,IAAMzF,EAML,MAAM,IAAIuO,EAAe,qCAAsC1N,MAGhE,OAAOA,KAAKsgE,mBAAoBnhE,EACjC,CAQO,aAAAqhE,CAAenkD,GACrB,IAAIokD,EAAc,EAElB,UAAYthE,KAAQa,KAAKkgE,OAAS,CACjC,GAAK7jD,GAAUokD,GAAepkD,EAASokD,EAActhE,EAAK6pC,WACzD,OAAOhpC,KAAKqgE,aAAclhE,GAG3BshE,GAAethE,EAAK6pC,UACrB,CAEA,GAAKy3B,GAAepkD,EAQnB,MAAM,IAAI3O,EAAe,sCACxB1N,KACA,CACCqc,SACAqkD,SAAU1gE,OAKb,OAAOA,KAAK1H,MACb,CASO,YAAAynD,CAAcn7C,EAAe0sC,GAEnC,UAAYnyC,KAAQmyC,EACnB,KAAQnyC,aAAgB,IAMvB,MAAM,IAAIuO,EAAe,sCAAuC1N,MAIlEA,KAAKkgE,OCvIQ,SAAyBt8D,EAA0BV,EAA0ButB,EAAe9rB,GAE1G,GAAK9L,KAAKC,IAAKoK,EAAO5K,OAAQsL,EAAOtL,QAzBf,IA0BrB,OAAOsL,EAAO9B,MAAO,EAAG2uB,GAAQtwB,OAAQ+C,GAAS/C,OAAQyD,EAAO9B,MAAO2uB,EAAQ9rB,EAAOf,EAAOtL,SACvF,CACN,MAAMqoE,EAAYhgE,MAAMrB,KAAMsE,GAG9B,OAFA+8D,EAAUn5D,OAAQipB,EAAO9rB,KAAUzB,GAE5By9D,CACR,CACD,CD6HgBC,CAAmB5gE,KAAKkgE,OAAQv/D,MAAMrB,KAAMgyC,GAAS1sC,EAAO,EAC3E,CAUO,YAAAi8D,CAAcC,EAAoBz1D,EAAkB,GAC1D,OAAOrL,KAAKkgE,OAAO14D,OAAQs5D,EAAYz1D,EACxC,CAQO,MAAAg9B,GACN,OAAOroC,KAAKkgE,OAAOljE,KAAKmC,GAAQA,EAAKkpC,UACtC,EEtKc,MAAM,WAAa,GAM1BI,MAYP,WAAA1mC,CAAae,EAAe+sC,GAC3BhiC,MAAOgiC,GACP7vC,KAAKyoC,MAAQ3lC,GAAQ,EACtB,CAKA,cAAoBkmC,GACnB,OAAOhpC,KAAK8C,KAAKxK,MAClB,CAKA,QAAWwK,GACV,OAAO9C,KAAKyoC,KACb,CAOgB,MAAAJ,GACf,MAAMC,EAAYz6B,MAAMw6B,SAIxB,OAFAC,EAAKxlC,KAAO9C,KAAK8C,KAEVwlC,CACR,CAQgB,MAAAM,GACf,OAAO,IAAI,GAAM5oC,KAAK8C,KAAM9C,KAAKowC,gBAClC,CAQA,eAAc2wB,CAAUz4B,GACvB,OAAO,IAAI,GAAMA,EAAKxlC,KAAMwlC,EAAK/iC,WAClC,EAiBD,GAAK1D,UAAU0M,GAAK,SAAUpD,GAC7B,MAAgB,UAATA,GAA6B,gBAATA,GAEjB,SAATA,GAA4B,eAATA,GAEV,SAATA,GAA4B,eAATA,CACrB,ECnEe,MAAM,WAAkB,GAItB29B,SAKAhmC,KAKAimC,aAWhB,WAAAhnC,CAAa+mC,EAAgBC,EAAsBzwC,GAKlD,GAJAuV,QAEA7N,KAAK8oC,SAAWA,EAEXC,EAAe,GAAKA,EAAeD,EAASE,WAMhD,MAAM,IAAIt7B,EAAe,qCAAsC1N,MAGhE,GAAK1H,EAAS,GAAKywC,EAAezwC,EAASwwC,EAASE,WAMnD,MAAM,IAAIt7B,EAAe,+BAAgC1N,MAE1DA,KAAK8C,KAAOgmC,EAAShmC,KAAKlG,UAAWmsC,EAAcA,EAAezwC,GAElE0H,KAAK+oC,aAAeA,CACrB,CAOA,eAAWoL,GACV,OAAqC,OAA9Bn0C,KAAK8oC,SAASqL,YAAuBn0C,KAAK8oC,SAASqL,YAAcn0C,KAAK+oC,aAAe,IAC7F,CAOA,cAAWC,GACV,OAAOhpC,KAAK8C,KAAKxK,MAClB,CAOA,aAAWi8C,GACV,OAA4B,OAArBv0C,KAAKm0C,YAAuBn0C,KAAKm0C,YAAcn0C,KAAKgpC,WAAa,IACzE,CAUA,aAAWC,GACV,OAAOjpC,KAAKgpC,aAAehpC,KAAK8oC,SAASE,UAC1C,CAKA,UAAWpqC,GACV,OAAOoB,KAAK8oC,SAASlqC,MACtB,CAKA,QAAWtI,GACV,OAAO0J,KAAK8oC,SAASxyC,IACtB,CAOO,OAAAixC,GACN,MAAM9nC,EAAOO,KAAK8oC,SAASvB,UAM3B,OAJK9nC,EAAKnH,OAAS,IAClBmH,EAAMA,EAAKnH,OAAS,IAAO0H,KAAK+oC,cAG1BtpC,CACR,CAWO,YAAA+nC,CAAcjjC,EAGjB,CAAC,GACJ,MAAMkjC,EAA2D,GACjE,IAAI7oC,EAAwD2F,EAAQmjC,YAAc1nC,KAAOA,KAAKpB,OAE9F,KAAQA,GACP6oC,EAAWljC,EAAQojC,YAAc,OAAS,WAAa/oC,GACvDA,EAASA,EAAOA,OAGjB,OAAO6oC,CACR,CAQO,YAAA4I,CAAct5C,GACpB,OAAOiJ,KAAK8oC,SAASuH,aAAct5C,EACpC,CAQO,YAAA2jC,CAAc3jC,GACpB,OAAOiJ,KAAK8oC,SAASpO,aAAc3jC,EACpC,CAQO,aAAAq5C,GACN,OAAOpwC,KAAK8oC,SAASsH,eACtB,CAKO,gBAAAxG,GACN,OAAO5pC,KAAK8oC,SAASc,kBACtB,EAkBD,GAAU/nC,UAAU0M,GAAK,SAAUpD,GAClC,MAAgB,eAATA,GAAkC,qBAATA,GAEtB,cAATA,GAAiC,oBAATA,CAC1B,EC/Ne,MAAM,WAAgB,GAIpBnJ,KAKC0tC,UAAsB,IAAIuwB,GAa3C,WAAAl+D,CACCC,EACA6tC,EACA33B,GAEArK,MAAOgiC,GAEP7vC,KAAKgC,KAAOA,EAEPkW,GACJlY,KAAKgwC,aAAc,EAAG93B,EAExB,CAKA,cAAW0uB,GACV,OAAO5mC,KAAK0vC,UAAUp3C,MACvB,CAKA,aAAW6nE,GACV,OAAOngE,KAAK0vC,UAAUywB,SACvB,CAKA,WAAW7zB,GACV,OAA2B,IAApBtsC,KAAK4mC,UACb,CAKO,QAAAO,CAAUviC,GAChB,OAAO5E,KAAK0vC,UAAU0wB,QAASx7D,EAChC,CAKO,WAAAkiC,GACN,OAAO9mC,KAAK0vC,UAAW5uC,OAAOC,WAC/B,CAQO,aAAAumC,CAAenoC,GACrB,OAAOa,KAAK0vC,UAAU2wB,aAAclhE,EACrC,CAUO,mBAAA0gE,CAAqB1gE,GAC3B,OAAOa,KAAK0vC,UAAU4wB,mBAAoBnhE,EAC3C,CAkBO,aAAAqhE,CAAenkD,GACrB,OAAOrc,KAAK0vC,UAAU8wB,cAAenkD,EACtC,CAcO,aAAA2kD,CAAeC,GAErB,IAAI9hE,EAAaa,KAEjB,UAAY4E,KAASq8D,EACpB9hE,EAASA,EAAkBgoC,SAAYhoC,EAAkBqhE,cAAe57D,IAGzE,OAAOzF,CACR,CASO,YAAAuxC,CAAcwwB,EAAoB38D,EAAqC,CAAC,GAC9E,IAAI3F,EAAS2F,EAAQmjC,YAAc1nC,KAAOA,KAAKpB,OAE/C,KAAQA,GAAS,CAChB,GAAKA,EAAOoD,OAASk/D,EACpB,OAAOtiE,EAGRA,EAASA,EAAOA,MACjB,CAEA,OAAO,IACR,CAOgB,MAAAypC,GACf,MAAMC,EAAYz6B,MAAMw6B,SAIxB,GAFAC,EAAKtmC,KAAOhC,KAAKgC,KAEZhC,KAAK0vC,UAAUp3C,OAAS,EAAI,CAChCgwC,EAAKpwB,SAAW,GAEhB,UAAY/Y,KAAQa,KAAK0vC,UACxBpH,EAAKpwB,SAAStY,KAAMT,EAAKkpC,SAE3B,CAEA,OAAOC,CACR,CAUgB,MAAAM,CAAQqI,GAAO,GAC9B,MAAM/4B,EAAW+4B,EAAOtwC,MAAMrB,KAAMU,KAAK0vC,WAAY1yC,KAAKmC,GAAQA,EAAKypC,QAAQ,UAAW,EAE1F,OAAO,IAAI,GAAS5oC,KAAKgC,KAAMhC,KAAKowC,gBAAiBl4B,EACtD,CASO,YAAAm5B,CAAcC,GACpBtxC,KAAKgwC,aAAchwC,KAAK4mC,WAAY0K,EACrC,CAWO,YAAAtB,CAAcprC,EAAegvB,GACnC,MAAM0d,EA0IR,SAAoBA,GAEnB,GAAqB,iBAATA,EACX,MAAO,CAAE,IAAI,GAAMA,IAGdh6B,GAAYg6B,KACjBA,EAAQ,CAAEA,IAIX,OAAO3wC,MAAMrB,KAAMgyC,GACjBt0C,KAAKmC,GACe,iBAARA,EACJ,IAAI,GAAMA,GAGbA,aAAgB,GACb,IAAI,GAAMA,EAAK2D,KAAM3D,EAAKixC,iBAG3BjxC,GAEV,CAjKgB,CAAWy0B,GAEzB,UAAYz0B,KAAQmyC,EAEE,OAAhBnyC,EAAKP,QACTO,EAAKk1B,UAGJl1B,EAAcP,OAASoB,KAG1BA,KAAK0vC,UAAUqQ,aAAcn7C,EAAO0sC,EACrC,CAYO,eAAAnJ,CAAiBvjC,EAAeyG,EAAkB,GACxD,MAAMimC,EAAQtxC,KAAK0vC,UAAUmxB,aAAcj8D,EAAOyG,GAElD,UAAYlM,KAAQmyC,EACjBnyC,EAAcP,OAAS,KAG1B,OAAO0yC,CACR,CASA,eAAcyvB,CAAUz4B,GACvB,IAAIpwB,EAEJ,GAAKowB,EAAKpwB,SAAW,CACpBA,EAAW,GAEX,UAAYI,KAASgwB,EAAKpwB,SACpBI,EAAMtW,KAEVkW,EAAStY,KAAM,GAAQmhE,SAAUzoD,IAGjCJ,EAAStY,KAAM,GAAKmhE,SAAUzoD,GAGjC,CAEA,OAAO,IAAI,GAASgwB,EAAKtmC,KAAMsmC,EAAK/iC,WAAY2S,EACjD,EAkED,GAAQrW,UAAU0M,GAAK,SAAUpD,EAAcnJ,GAC9C,OAAMA,EAMCA,IAAShC,KAAKgC,OAAmB,YAATmJ,GAA+B,kBAATA,GALpC,YAATA,GAA+B,kBAATA,GAEnB,SAATA,GAA4B,eAATA,CAItB,ECxVe,MAAM,GAIJqb,UAUAmsB,WAMAC,iBAMAC,QAQAC,iBAQRC,UAKAC,qBAKAC,mBAKAkuB,eAOR,WAAAp/D,CAAawC,GACZ,IAAMA,IAAcA,EAAQouC,aAAepuC,EAAQ2uC,cAMlD,MAAM,IAAIxlC,EACT,sCACA,MAIF,MAAM8Y,EAAYjiB,EAAQiiB,WAAa,UAEvC,GAAkB,WAAbA,GAAuC,YAAbA,EAM9B,MAAM,IAAI9Y,EAAe,sCAAuCnJ,EAAS,CAAEiiB,cAG5ExmB,KAAKwmB,UAAYA,EACjBxmB,KAAK2yC,WAAapuC,EAAQouC,YAAc,KAEnCpuC,EAAQ2uC,cACZlzC,KAAK+yC,UAAYxuC,EAAQ2uC,cAAclvB,QAEvChkB,KAAK+yC,UAAY,GAASK,UAAWpzC,KAAK2yC,WAA+B,YAAlB3yC,KAAKwmB,UAA0B,MAAQ,UAI/FxmB,KAAKynB,SAAS25C,WAAa,SAE3BphE,KAAK4yC,mBAAqBruC,EAAQquC,iBAClC5yC,KAAK6yC,UAAYtuC,EAAQsuC,QACzB7yC,KAAK8yC,mBAAqBvuC,EAAQuuC,iBAElC9yC,KAAKgzC,qBAAuBhzC,KAAK2yC,WAAa3yC,KAAK2yC,WAAWliB,MAAM7xB,OAAS,KAC7EoB,KAAKizC,mBAAqBjzC,KAAK2yC,WAAa3yC,KAAK2yC,WAAW5G,IAAIntC,OAAS,KACzEoB,KAAKmhE,eAAiBnhE,KAAKynB,SAAS7oB,MACrC,CAOA,CAASkC,OAAOC,YACf,OAAOf,IACR,CAQA,YAAWynB,GACV,OAAOznB,KAAK+yC,SACb,CAgBO,IAAAM,CAAMA,GACZ,IAAI9xC,EAAM/I,EAAO+6C,EAAc8tB,EAE/B,GACC9tB,EAAevzC,KAAKynB,SACpB45C,EAAoBrhE,KAAKmhE,iBAErB5/D,OAAM/I,SAAUwH,KAAKsB,eACfC,GAAQ8xC,EAAM76C,IAEnB+I,IACLvB,KAAK+yC,UAAYQ,EACjBvzC,KAAKmhE,eAAiBE,EAExB,CAKO,IAAA//D,GACN,MAAuB,WAAlBtB,KAAKwmB,UACFxmB,KAAKwzC,QAELxzC,KAAKyzC,WAEd,CAKQ,KAAAD,GACP,MAAME,EAAmB1zC,KAAKynB,SACxBA,EAAWznB,KAAKynB,SAASzD,QACzBplB,EAASoB,KAAKmhE,eAGpB,GAAuB,OAAlBviE,EAAOA,QAAmB6oB,EAASpL,SAAWzd,EAAOuhE,UACzD,MAAO,CAAE5+D,MAAM,EAAM/I,WAAO,GAI7B,GAAKoG,IAAWoB,KAAKizC,oBAAsBxrB,EAASpL,QAAUrc,KAAK2yC,WAAY5G,IAAI1vB,OAClF,MAAO,CAAE9a,MAAM,EAAM/I,WAAO,GAK7B,MAAM8oE,EAAqBC,GAAuB95C,EAAU7oB,GACtDO,EAAOmiE,GAAsBE,GAAsB/5C,EAAU7oB,EAAQ0iE,GAE3E,GAAKniE,aAAgB,GAAU,CAC9B,GAAMa,KAAK6yC,QAIJ,CAEN,GAAK7yC,KAAK2yC,YAAc3yC,KAAK2yC,WAAW5G,IAAIhE,SAAUtgB,GACrD,MAAO,CAAElmB,MAAM,EAAM/I,WAAO,GAG7BivB,EAASpL,QACV,MATGoL,EAAShoB,KAAwBG,KAAM,GACzCI,KAAKmhE,eAAiBhiE,EAYvB,OAFAa,KAAK+yC,UAAYtrB,EAEVg6C,GAAmB,eAAgBtiE,EAAMu0C,EAAkBjsB,EAAU,EAC7E,CAEA,GAAKtoB,aAAgB,GAAO,CAC3B,IAAI20C,EAEJ,GAAK9zC,KAAK4yC,iBACTkB,EAAkB,MACZ,CACN,IAAIz3B,EAASld,EAAKo1C,UAEbv0C,KAAKizC,oBAAsBr0C,GAAUoB,KAAK2yC,WAAY5G,IAAI1vB,OAASA,IACvEA,EAASrc,KAAK2yC,WAAY5G,IAAI1vB,QAG/By3B,EAAkBz3B,EAASoL,EAASpL,MACrC,CAEA,MAAMqlD,EAAmBj6C,EAASpL,OAASld,EAAKg1C,YAC1Cl0C,EAAO,IAAI,GAAWd,EAAMuiE,EAAkB5tB,GAKpD,OAHArsB,EAASpL,QAAUy3B,EACnB9zC,KAAK+yC,UAAYtrB,EAEVg6C,GAAmB,OAAQxhE,EAAMyzC,EAAkBjsB,EAAUqsB,EACrE,CAQA,OALErsB,EAAShoB,KAAwBT,MACnCyoB,EAASpL,SACTrc,KAAK+yC,UAAYtrB,EACjBznB,KAAKmhE,eAAiBviE,EAAOA,OAExBoB,KAAK8yC,iBACF9yC,KAAKwzC,QAGNiuB,GAAmB,aAAc7iE,EAAmB80C,EAAkBjsB,EAC9E,CAKQ,SAAAgsB,GACP,MAAMC,EAAmB1zC,KAAKynB,SACxBA,EAAWznB,KAAKynB,SAASzD,QACzBplB,EAASoB,KAAKmhE,eAGpB,GAAuB,OAAlBviE,EAAOA,QAAuC,IAApB6oB,EAASpL,OACvC,MAAO,CAAE9a,MAAM,EAAM/I,WAAO,GAI7B,GAAKoG,GAAUoB,KAAKgzC,sBAAwBvrB,EAASpL,QAAUrc,KAAK2yC,WAAYliB,MAAMpU,OACrF,MAAO,CAAE9a,MAAM,EAAM/I,WAAO,GAK7B,MAAM8mD,EAAiB73B,EAAS7oB,OAC1B0iE,EAAqBC,GAAuB95C,EAAU63B,GACtDngD,EAAOmiE,GAAsBK,GAAuBl6C,EAAU63B,EAAgBgiB,GAEpF,GAAKniE,aAAgB,GAGpB,OAFAsoB,EAASpL,SAEJrc,KAAK6yC,SACT7yC,KAAK+yC,UAAYtrB,EAEVg6C,GAAmB,eAAgBtiE,EAAMu0C,EAAkBjsB,EAAU,KAG3EA,EAAShoB,KAAwBG,KAAMT,EAAKghE,WAC9CngE,KAAK+yC,UAAYtrB,EACjBznB,KAAKmhE,eAAiBhiE,EAEjBa,KAAK8yC,iBACF9yC,KAAKyzC,YAGNguB,GAAmB,aAActiE,EAAMu0C,EAAkBjsB,IAGjE,GAAKtoB,aAAgB,GAAO,CAC3B,IAAI20C,EAEJ,GAAK9zC,KAAK4yC,iBACTkB,EAAkB,MACZ,CACN,IAAIz3B,EAASld,EAAKg1C,YAEbn0C,KAAKgzC,sBAAwBp0C,GAAUoB,KAAK2yC,WAAYliB,MAAMpU,OAASA,IAC3EA,EAASrc,KAAK2yC,WAAYliB,MAAMpU,QAGjCy3B,EAAkBrsB,EAASpL,OAASA,CACrC,CAEA,MAAMqlD,EAAmBj6C,EAASpL,OAASld,EAAKg1C,YAC1Cl0C,EAAO,IAAI,GAAWd,EAAMuiE,EAAmB5tB,EAAiBA,GAKtE,OAHArsB,EAASpL,QAAUy3B,EACnB9zC,KAAK+yC,UAAYtrB,EAEVg6C,GAAmB,OAAQxhE,EAAMyzC,EAAkBjsB,EAAUqsB,EACrE,CAOA,OAJErsB,EAAShoB,KAAwBT,MACnCgB,KAAK+yC,UAAYtrB,EACjBznB,KAAKmhE,eAAiBviE,EAAOA,OAEtB6iE,GAAmB,eAAgB7iE,EAAmB80C,EAAkBjsB,EAAU,EAC1F,EAGD,SAASg6C,GACRt2D,EACAlL,EACAyzC,EACAU,EACA97C,GAEA,MAAO,CACNiJ,MAAM,EACN/I,MAAO,CACN2S,OACAlL,OACAyzC,mBACAU,eACA97C,UAGH,CC7Te,MAAM,WAAiB,GAIrBhC,KAiCAmJ,KAKT2hE,WASP,WAAAr/D,CACCzL,EACAmJ,EACA2hE,EAAiC,UAIjC,GAFAvzD,SAEMvX,EAAKiY,GAAI,aAAgBjY,EAAKiY,GAAI,oBAQvC,MAAM,IAAIb,EACT,8BACApX,GAIF,KAAQmJ,aAAgBkB,QAA2B,IAAhBlB,EAAKnH,OAOvC,MAAM,IAAIoV,EACT,uCACApX,EACA,CAAEmJ,SAKCnJ,EAAKiY,GAAI,eACb9O,EAAOA,EAAKqC,SAEZrC,EAAO,IAAKnJ,EAAKixC,aAAc9nC,GAC/BnJ,EAAOA,EAAKA,MAGb0J,KAAK1J,KAAOA,EACZ0J,KAAKP,KAAOA,EACZO,KAAKohE,WAAaA,CACnB,CAQA,UAAW/kD,GACV,OAAOrc,KAAKP,KAAMO,KAAKP,KAAKnH,OAAS,EACtC,CAEA,UAAW+jB,CAAQulD,GAChB5hE,KAAKP,KAAyBO,KAAKP,KAAKnH,OAAS,GAAMspE,CAC1D,CAWA,UAAWhjE,GACV,IAAIA,EAAcoB,KAAK1J,KAEvB,QAAUkE,EAAI,EAAGA,EAAIwF,KAAKP,KAAKnH,OAAS,EAAGkC,IAG1C,GAFAoE,EAASA,EAAOuoC,SAAUvoC,EAAO4hE,cAAexgE,KAAKP,KAAMjF,MAErDoE,EAgBL,MAAM,IAAI8O,EAAe,gCAAiC1N,KAAM,CAAEynB,SAAUznB,OAI9E,GAAKpB,EAAO2P,GAAI,SACf,MAAM,IAAIb,EAAe,gCAAiC1N,KAAM,CAAEynB,SAAUznB,OAG7E,OAAOpB,CACR,CAOA,SAAWgG,GACV,OAAO5E,KAAKpB,OAAO4hE,cAAexgE,KAAKqc,OACxC,CAMA,YAAWysB,GACV,OAAOy4B,GAAuBvhE,KAAMA,KAAKpB,OAC1C,CAKA,aAAWy1C,GAEV,MAAMz1C,EAASoB,KAAKpB,OAEpB,OAAO4iE,GAAsBxhE,KAAMpB,EAAQ2iE,GAAuBvhE,KAAMpB,GACzE,CAKA,cAAW01C,GAEV,MAAM11C,EAASoB,KAAKpB,OAEpB,OAAO+iE,GAAuB3hE,KAAMpB,EAAQ2iE,GAAuBvhE,KAAMpB,GAC1E,CAKA,aAAWq1C,GACV,OAAuB,IAAhBj0C,KAAKqc,MACb,CAKA,WAAWs3B,GACV,OAAO3zC,KAAKqc,QAAUrc,KAAKpB,OAAOuhE,SACnC,CAOO,WAAArrB,CAAaD,GACnB,GAAK70C,KAAK1J,MAAQu+C,EAAcv+C,KAC/B,MAAO,YAGR,MAAM6H,EAASkZ,GAAerX,KAAKP,KAAMo1C,EAAcp1C,MAEvD,OAAStB,GACR,IAAK,OACJ,MAAO,OAER,IAAK,SACJ,MAAO,SAER,IAAK,YACJ,MAAO,QAER,QACC,OAAO6B,KAAKP,KAAMtB,GAAW02C,EAAcp1C,KAAMtB,GAAW,SAAW,QAE1E,CAyBO,uBAAAw2C,CACNtB,EACA9uC,EAA6B,CAAC,GAE9BA,EAAQ2uC,cAAgBlzC,KAExB,MAAM40C,EAAa,IAAI,GAAYrwC,GAGnC,OAFAqwC,EAAWvB,KAAMA,GAEVuB,EAAWntB,QACnB,CAUO,aAAAo6C,GACN,OAAO7hE,KAAKP,KAAKqC,MAAO,GAAI,EAC7B,CAOO,YAAA0lC,GACN,MAAM5oC,EAASoB,KAAKpB,OAEpB,OAAKA,EAAO2P,GAAI,oBACR,CAAE3P,GAEFA,EAAO4oC,aAAc,CAAEE,aAAa,GAE7C,CAOO,YAAAgJ,CAAcwwB,GACpB,MAAMtiE,EAASoB,KAAKpB,OAEpB,OAAKA,EAAO2P,GAAI,WACR3P,EAAO8xC,aAAcwwB,EAAY,CAAEx5B,aAAa,IAGjD,IACR,CAWO,aAAAo6B,CAAer6C,GACrB,GAAKznB,KAAK1J,MAAQmxB,EAASnxB,KAC1B,MAAO,GAIR,MAAM0T,EAAMqN,GAAerX,KAAKP,KAAMgoB,EAAShoB,MAEzCsiE,EAAyB,iBAAP/3D,EAAoBnR,KAAKD,IAAKoH,KAAKP,KAAKnH,OAAQmvB,EAAShoB,KAAKnH,QAAW0R,EAEjG,OAAOhK,KAAKP,KAAKqC,MAAO,EAAGigE,EAC5B,CAQO,iBAAAn6B,CAAmBngB,GACzB,MAAMogB,EAAa7nC,KAAKwnC,eAClBM,EAAargB,EAAS+f,eAE5B,IAAIhtC,EAAI,EAER,KAAQqtC,EAAYrtC,IAAOstC,EAAYttC,IAAOqtC,EAAYrtC,IACzDA,IAGD,OAAa,IAANA,EAAU,KAAOqtC,EAAYrtC,EAAI,EACzC,CAWO,YAAAi6C,CAAclnB,GACpB,MAAMmnB,EAAU10C,KAAKgkB,QAEf3H,EAASq4B,EAAQr4B,OAASkR,EAGhC,OAFAmnB,EAAQr4B,OAASA,EAAS,EAAI,EAAIA,EAE3Bq4B,CACR,CAWO,OAAAxM,CAAS2M,GACf,MAA4C,SAArC70C,KAAK80C,YAAaD,EAC1B,CAyCO,QAAA9M,CAAU8M,GAChB,MAA4C,UAArC70C,KAAK80C,YAAaD,EAC1B,CAUO,OAAAxvB,CAASwvB,GACf,MAA4C,QAArC70C,KAAK80C,YAAaD,EAC1B,CAUO,UAAAmtB,CAAYntB,GAClB,GAAK70C,KAAK1J,OAASu+C,EAAcv+C,KAChC,OAAO,EAGR,MAAM2rE,EAAcppE,KAAKD,IAAKoH,KAAKP,KAAKnH,OAAQu8C,EAAcp1C,KAAKnH,QAEnE,QAAU4pE,EAAQ,EAAGA,EAAQD,EAAaC,IAAU,CACnD,MAAM3oE,EAAOyG,KAAKP,KAAMyiE,GAAUrtB,EAAcp1C,KAAMyiE,GAGtD,GAAK3oE,GAAQ,GAAKA,EAAO,EACxB,OAAO,EACD,GAAc,IAATA,EAGX,OAAO4oE,GAAqBttB,EAAe70C,KAAMkiE,GAC3C,IAAe,IAAV3oE,EAGX,OAAO4oE,GAAqBniE,KAAM60C,EAAeqtB,EAInD,CAIA,OAAKliE,KAAKP,KAAKnH,SAAWu8C,EAAcp1C,KAAKnH,SASnC0H,KAAKP,KAAKnH,OAASu8C,EAAcp1C,KAAKnH,OACxC8pE,GAAiBpiE,KAAKP,KAAMwiE,GAE5BG,GAAiBvtB,EAAcp1C,KAAMwiE,GAE9C,CAUO,eAAAI,CAAiB56C,GACvB,GAAKznB,KAAK1J,OAASmxB,EAASnxB,KAC3B,OAAO,EAMR,MAAyD,QAAlD+gB,GAHgBrX,KAAK6hE,gBACNp6C,EAASo6C,gBAGhC,CAeO,yBAAAS,CAA2BC,GACjC,IAAIpkE,EAEJ,OAASokE,EAAUp3D,MAClB,IAAK,SACJhN,EAAS6B,KAAKwiE,iCAAkCD,GAChD,MACD,IAAK,OACL,IAAK,SACL,IAAK,WACJpkE,EAAS6B,KAAKyiE,+BAAgCF,GAC9C,MACD,IAAK,QACJpkE,EAAS6B,KAAK0iE,gCAAiCH,GAC/C,MACD,IAAK,QACJpkE,EAAS6B,KAAK2iE,gCAAiCJ,GAC/C,MACD,QACCpkE,EAAS,GAASi1C,UAAWpzC,MAI/B,OAAO7B,CACR,CAOO,gCAAAqkE,CAAkCD,GACxC,OAAOviE,KAAK4iE,2BAA4BL,EAAU96C,SAAU86C,EAAUl3D,QACvE,CAOO,8BAAAo3D,CAAgCF,GACtC,OAAOviE,KAAK6iE,sBAAuBN,EAAUO,eAAgBP,EAAUrjB,eAAgBqjB,EAAUl3D,QAClG,CAOO,+BAAAq3D,CAAiCH,GACvC,MAAMQ,EAAaR,EAAUQ,WAK7B,OAHoBA,EAAWrtB,iBAAkB11C,OAC9C+iE,EAAWtyC,MAAMpL,QAASrlB,OAA6B,UAAnBA,KAAKohE,WAGpCphE,KAAKgjE,aAAcT,EAAUU,cAAeV,EAAUW,oBAExDX,EAAUY,kBACPnjE,KAAK6iE,sBAAuBN,EAAUY,kBAAmBZ,EAAUrgB,kBAAmB,GAEtFliD,KAAK4iE,2BAA4BL,EAAUrgB,kBAAmB,EAGxE,CAOO,+BAAAygB,CAAiCJ,GACvC,MAAMQ,EAAaR,EAAUQ,WAG7B,IAAI17B,EAeJ,OAjBoB07B,EAAWrtB,iBAAkB11C,OAAU+iE,EAAWtyC,MAAMpL,QAASrlB,OAKpFqnC,EAAMrnC,KAAKgjE,aAAcT,EAAUO,eAAgBP,EAAUrjB,gBAExDqjB,EAAUO,eAAe/6B,SAAUw6B,EAAUrjB,kBAEjD7X,EAAMA,EAAI+7B,0BAA2Bb,EAAUc,iBAAkB,KAGlEh8B,EADWrnC,KAAKqlB,QAASk9C,EAAUc,kBAC7B,GAASjwB,UAAWmvB,EAAUc,kBAE9BrjE,KAAK6iE,sBAAuBN,EAAUc,iBAAkBd,EAAUY,kBAAmB,GAGrF97B,CACR,CAWO,yBAAA+7B,CAA2BE,EAA0Bj4D,GAC3D,MAAMk4D,EAAc,GAASnwB,UAAWpzC,MAGxC,GAAKA,KAAK1J,MAAQgtE,EAAehtE,KAChC,OAAOitE,EAGR,GAA8E,QAAzElsD,GAAeisD,EAAezB,gBAAiB7hE,KAAK6hE,kBAExD,GAAKyB,EAAejnD,OAASrc,KAAKqc,OAAS,CAE1C,GAAKinD,EAAejnD,OAAShR,EAAUrL,KAAKqc,OAE3C,OAAO,KAGPknD,EAAYlnD,QAAUhR,CAExB,OACM,GAA8E,UAAzEgM,GAAeisD,EAAezB,gBAAiB7hE,KAAK6hE,iBAAgC,CAE/F,MAAMrnE,EAAI8oE,EAAe7jE,KAAKnH,OAAS,EAEvC,GAAKgrE,EAAejnD,QAAUrc,KAAKP,KAAMjF,GAAM,CAE9C,GAAK8oE,EAAejnD,OAAShR,EAAUrL,KAAKP,KAAMjF,GAGjD,OAAO,KAGL+oE,EAAY9jE,KAAyBjF,IAAO6Q,CAEhD,CACD,CAEA,OAAOk4D,CACR,CAUO,0BAAAX,CAA4BY,EAA0Bn4D,GAC5D,MAAMk4D,EAAc,GAASnwB,UAAWpzC,MAGxC,GAAKA,KAAK1J,MAAQktE,EAAeltE,KAChC,OAAOitE,EAGR,GAA8E,QAAzElsD,GAAemsD,EAAe3B,gBAAiB7hE,KAAK6hE,kBAEnD2B,EAAennD,OAASrc,KAAKqc,QAAYmnD,EAAennD,QAAUrc,KAAKqc,QAA6B,cAAnBrc,KAAKohE,cAG1FmC,EAAYlnD,QAAUhR,QAEjB,GAA8E,UAAzEgM,GAAemsD,EAAe3B,gBAAiB7hE,KAAK6hE,iBAAgC,CAE/F,MAAMrnE,EAAIgpE,EAAe/jE,KAAKnH,OAAS,EAElCkrE,EAAennD,QAAUrc,KAAKP,KAAMjF,KAGtC+oE,EAAY9jE,KAAyBjF,IAAO6Q,EAEhD,CAEA,OAAOk4D,CACR,CAWO,qBAAAV,CAAuBC,EAA0B5jB,EAA0B7zC,GAIjF,GAFA6zC,EAAiBA,EAAekkB,0BAA2BN,EAAgBz3D,GAEtEy3D,EAAez9C,QAAS65B,GAE5B,OAAO,GAAS9L,UAAWpzC,MAI5B,MAAMujE,EAAcvjE,KAAKojE,0BAA2BN,EAAgBz3D,GAMpE,OAJgC,OAAhBk4D,GACbT,EAAez9C,QAASrlB,OAA6B,UAAnBA,KAAKohE,YACvC0B,EAAeruB,aAAcppC,GAAUga,QAASrlB,OAA6B,cAAnBA,KAAKohE,WAK1DphE,KAAKgjE,aAAcF,EAAgB5jB,GAKnCqkB,EAAYX,2BAA4B1jB,EAAgB7zC,EAEjE,CA+BO,YAAA23D,CAAc9/D,EAAkBU,GACtC,MAAMpJ,EAAI0I,EAAOzD,KAAKnH,OAAS,EAGzBmrE,EAAW,GAASrwB,UAAWxvC,GAYrC,OAXA6/D,EAASrC,WAAaphE,KAAKohE,WAK3BqC,EAASpnD,OAASonD,EAASpnD,OAASrc,KAAKP,KAAMjF,GAAM0I,EAAOmZ,OAI1DonD,EAAkBhkE,KAAO,IAAKgkE,EAAShkE,QAASO,KAAKP,KAAKqC,MAAOtH,EAAI,IAEhEipE,CACR,CAKO,MAAAp7B,GACN,MAAO,CACN/xC,KAAM0J,KAAK1J,KAAK+xC,SAChB5oC,KAAMkB,MAAMrB,KAAMU,KAAKP,MACvB2hE,WAAYphE,KAAKohE,WAEnB,CAKO,KAAAp9C,GACN,OAAO,IAAMhkB,KAAK+B,YAAsB/B,KAAK1J,KAAM0J,KAAKP,KAAMO,KAAKohE,WACpE,CAmBA,gBAAchuB,CACb6B,EACA54B,EACA+kD,EAAiC,UAEjC,GAAKnsB,aAA0B,GAC9B,OAAO,IAAI,GAAUA,EAAe3+C,KAAM2+C,EAAex1C,KAAMw1C,EAAemsB,YACxE,CACN,MAAMjiE,EAAO81C,EAEb,GAAe,OAAV54B,EACJA,EAAWld,EAAcghE,cACnB,IAAe,UAAV9jD,EACX,OAAOrc,KAAKk0C,cAAe/0C,EAAMiiE,GAC3B,GAAe,SAAV/kD,EACX,OAAOrc,KAAK4zC,aAAcz0C,EAAMiiE,GAC1B,GAAgB,IAAX/kD,IAAiBA,EAO5B,MAAM,IAAI3O,EAAe,yCAA0C,CAAE1N,KAAMi1C,GAC5E,CAEA,IAAM91C,EAAKoP,GAAI,aAAgBpP,EAAKoP,GAAI,oBAMvC,MAAM,IAAIb,EACT,kCACA,CAAE1N,KAAMi1C,IAIV,MAAMx1C,EAAON,EAAKooC,UAIlB,OAFA9nC,EAAKG,KAAMyc,GAEJ,IAAIrc,KAAMb,EAAK7I,KAAamJ,EAAM2hE,EAC1C,CACD,CASA,mBAAcxtB,CAAc3zC,EAA+BmhE,GAC1D,IAAMnhE,EAAKrB,OAOV,MAAM,IAAI8O,EACT,4BACA,CAAE1N,KAAMC,GACR,CAAE3J,KAAM2J,IAIV,OAAOD,KAAKozC,UAAWnzC,EAAKrB,OAAQqB,EAAKs0C,UAAY6sB,EACtD,CASA,oBAAcltB,CAAej0C,EAA+BmhE,GAC3D,IAAMnhE,EAAKrB,OAOV,MAAM,IAAI8O,EACT,6BACAzN,EACA,CAAE3J,KAAM2J,IAIV,OAAOD,KAAKozC,UAAWnzC,EAAKrB,OAAQqB,EAAKk0C,YAAcitB,EACxD,CASA,eAAcL,CAAUz4B,EAAWrwB,GAClC,GAAmB,eAAdqwB,EAAKhyC,KAAwB,CACjC,MAAM+wC,EAAM,IAAI,GAAUpvB,EAAIyrD,UAAWp7B,EAAK7oC,MAG9C,OAFA4nC,EAAI+5B,WAAa94B,EAAK84B,WAEf/5B,CACR,CAEA,IAAMpvB,EAAI+iC,QAAS1S,EAAKhyC,MAOvB,MAAM,IAAIoX,EACT,kCACAuK,EACA,CAAE6oB,SAAUwH,EAAKhyC,OAInB,OAAO,IAAI,GAAU2hB,EAAI+iC,QAAS1S,EAAKhyC,MAASgyC,EAAK7oC,KAAM6oC,EAAK84B,WACjE,EA4EM,SAASG,GAAuB95C,EAAoB63B,GAC1D,MAAMngD,EAAOmgD,EAAenY,SAAUmY,EAAekhB,cAAe/4C,EAASpL,SAE7E,OAAKld,GAAQA,EAAKoP,GAAI,UAAapP,EAAKg1C,YAAe1sB,EAASpL,OACxDld,EAGD,IACR,CAwBO,SAASqiE,GACf/5C,EACA63B,EACAxW,GAEA,OAAkB,OAAbA,EACG,KAGDwW,EAAenY,SAAUmY,EAAekhB,cAAe/4C,EAASpL,QACxE,CAeO,SAASslD,GACfl6C,EACA63B,EACAxW,GAEA,OAAkB,OAAbA,EACG,KAGDwW,EAAenY,SAAUmY,EAAekhB,cAAe/4C,EAASpL,QAAW,EACnF,CAeA,SAAS8lD,GAAqBx/C,EAAgBJ,EAAiB2/C,GAC9D,OAAKA,EAAQ,IAAMv/C,EAAKljB,KAAKnH,WAQvB8pE,GAAiB7/C,EAAM9iB,KAAMyiE,EAAQ,MA8C5C,SAA6B76B,EAAe66B,GAC3C,IAAItjE,EAASyoC,EAAIzoC,OACb+kE,EAAMt8B,EAAI5nC,KAAKnH,OAAS,EACxB4V,EAAM,EAEV,KAAQy1D,GAAOzB,GAAQ,CACtB,GAAK76B,EAAI5nC,KAAMkkE,GAAQz1D,IAAQtP,EAAOuhE,UACrC,OAAO,EAMRjyD,EAAM,EACNy1D,IACA/kE,EAASA,EAAOA,MACjB,CAEA,OAAO,CACR,CAzDOglE,CAAoBjhD,EAAMu/C,EAAQ,GAazC,CAOA,SAASE,GAAiB1hE,EAA4BijE,GACrD,KAAQA,EAAMjjE,EAAIpI,QAAS,CAC1B,GAAoB,IAAfoI,EAAKijE,GACT,OAAO,EAGRA,GACD,CAEA,OAAO,CACR,CAhMA,GAAS9hE,UAAU0M,GAAK,SAAUpD,GACjC,MAAgB,aAATA,GAAgC,mBAATA,CAC/B,ECp9Be,MAAM,WAAc,GAIlBslB,MAKAsb,IAQhB,WAAAhqC,CAAa0uB,EAAiBsb,GAC7Bl+B,QAEA7N,KAAKywB,MAAQ,GAAS2iB,UAAW3iB,GACjCzwB,KAAK+rC,IAAMA,EAAM,GAASqH,UAAWrH,GAAQ,GAASqH,UAAW3iB,GAIjEzwB,KAAKywB,MAAM2wC,WAAaphE,KAAKm1C,YAAc,SAAW,SACtDn1C,KAAK+rC,IAAIq1B,WAAaphE,KAAKm1C,YAAc,SAAW,YACrD,CAcA,EAAUr0C,OAAOC,kBACT,IAAI,GAAY,CAAE4xC,WAAY3yC,KAAM8yC,kBAAkB,GAC9D,CAMA,eAAWqC,GACV,OAAOn1C,KAAKywB,MAAMpL,QAASrlB,KAAK+rC,IACjC,CAMA,UAAWxtB,GAIV,MAA0D,QAAnDlH,GAHiBrX,KAAKywB,MAAMoxC,gBACb7hE,KAAK+rC,IAAI81B,gBAGhC,CAKA,QAAWvrE,GACV,OAAO0J,KAAKywB,MAAMn6B,IACnB,CASO,gBAAAo/C,CAAkBjuB,GACxB,OAAOA,EAASygB,QAASloC,KAAKywB,QAAWhJ,EAASsgB,SAAU/nC,KAAK+rC,IAClE,CAWO,aAAA4J,CAAeF,EAAmBG,GAAiB,GACpDH,EAAWN,cACfS,GAAQ,GAGT,MAAMC,EAAgB71C,KAAK01C,iBAAkBD,EAAWhlB,QAAamlB,GAAS51C,KAAKywB,MAAMpL,QAASowB,EAAWhlB,OACvGqlB,EAAc91C,KAAK01C,iBAAkBD,EAAW1J,MAAW6J,GAAS51C,KAAK+rC,IAAI1mB,QAASowB,EAAW1J,KAEvG,OAAO8J,GAAiBC,CACzB,CAKO,YAAA+tB,CAAc5jE,GACpB,MAAMonC,EAAM,GAAS6M,cAAej0C,GAEpC,OAAOD,KAAK01C,iBAAkBrO,IAASrnC,KAAKywB,MAAMpL,QAASgiB,EAC5D,CAQO,OAAAhiB,CAASowB,GACf,OAAOz1C,KAAKywB,MAAMpL,QAASowB,EAAWhlB,QAAWzwB,KAAK+rC,IAAI1mB,QAASowB,EAAW1J,IAC/E,CAQO,cAAAkK,CAAgBR,GACtB,OAAOz1C,KAAKywB,MAAMsX,SAAU0N,EAAW1J,MAAS/rC,KAAK+rC,IAAI7D,QAASuN,EAAWhlB,MAC9E,CA6BO,aAAAslB,CAAeN,GACrB,MAAMO,EAAS,GAqBf,OAnBKh2C,KAAKi2C,eAAgBR,IAGpBz1C,KAAK01C,iBAAkBD,EAAWhlB,QAGtCulB,EAAOp2C,KAAM,IAAI,GAAOI,KAAKywB,MAAOglB,EAAWhlB,QAG3CzwB,KAAK01C,iBAAkBD,EAAW1J,MAGtCiK,EAAOp2C,KAAM,IAAI,GAAO61C,EAAW1J,IAAK/rC,KAAK+rC,OAI9CiK,EAAOp2C,KAAM,IAAI,GAAOI,KAAKywB,MAAOzwB,KAAK+rC,MAGnCiK,CACR,CAuBO,eAAA7xB,CAAiBsxB,GACvB,GAAKz1C,KAAKi2C,eAAgBR,GAAe,CAGxC,IAAIS,EAAmBl2C,KAAKywB,MACxB0lB,EAAiBn2C,KAAK+rC,IAc1B,OAZK/rC,KAAK01C,iBAAkBD,EAAWhlB,SAGtCylB,EAAmBT,EAAWhlB,OAG1BzwB,KAAK01C,iBAAkBD,EAAW1J,OAGtCoK,EAAiBV,EAAW1J,KAGtB,IAAI,GAAOmK,EAAkBC,EACrC,CAGA,OAAO,IACR,CAgCO,SAAA2tB,CAAWruB,EAAmBG,GAAiB,GACrD,IAAImuB,EAAa/jE,KAAKi2C,eAAgBR,GAUtC,GARMsuB,IAEJA,EADI/jE,KAAKywB,MAAMsX,SAAU0N,EAAWhlB,OACvBmlB,EAAQ51C,KAAK+rC,IAAIi2B,WAAYvsB,EAAWhlB,OAAUzwB,KAAK+rC,IAAI1mB,QAASowB,EAAWhlB,OAE/EmlB,EAAQH,EAAW1J,IAAIi2B,WAAYhiE,KAAKywB,OAAUglB,EAAW1J,IAAI1mB,QAASrlB,KAAKywB,SAIxFszC,EACL,OAAO,KAGR,IAAI7wB,EAAgBlzC,KAAKywB,MACrB6xB,EAActiD,KAAK+rC,IAUvB,OARK0J,EAAWhlB,MAAMsX,SAAUmL,KAC/BA,EAAgBuC,EAAWhlB,OAGvBglB,EAAW1J,IAAI7D,QAASoa,KAC5BA,EAAc7M,EAAW1J,KAGnB,IAAI,GAAOmH,EAAeoP,EAClC,CA6CO,oBAAA0hB,GACN,MAAMhuB,EAAS,GACT+rB,EAAS/hE,KAAKywB,MAAMqxC,cAAe9hE,KAAK+rC,KAAMzzC,OAE9C+uC,EAAM,GAAS+L,UAAWpzC,KAAKywB,OACrC,IAAIwzC,EAAY58B,EAAIzoC,OAGpB,KAAQyoC,EAAI5nC,KAAKnH,OAASypE,EAAS,GAAI,CACtC,MAAM12D,EAAU44D,EAAU9D,UAAY94B,EAAIhrB,OAEzB,IAAZhR,GACJ2qC,EAAOp2C,KAAM,IAAI,GAAOynC,EAAKA,EAAIoN,aAAcppC,KAG9Cg8B,EAAa5nC,KAAO4nC,EAAI5nC,KAAKqC,MAAO,GAAI,GAC1CulC,EAAIhrB,SACJ4nD,EAAYA,EAAUrlE,MACvB,CAGA,KAAQyoC,EAAI5nC,KAAKnH,QAAU0H,KAAK+rC,IAAItsC,KAAKnH,QAAS,CACjD,MAAM+jB,EAASrc,KAAK+rC,IAAItsC,KAAM4nC,EAAI5nC,KAAKnH,OAAS,GAC1C+S,EAAUgR,EAASgrB,EAAIhrB,OAEZ,IAAZhR,GACJ2qC,EAAOp2C,KAAM,IAAI,GAAOynC,EAAKA,EAAIoN,aAAcppC,KAGhDg8B,EAAIhrB,OAASA,EACXgrB,EAAI5nC,KAAwBG,KAAM,EACrC,CAEA,OAAOo2C,CACR,CAmBO,SAAAhB,CAAWzwC,EAA6B,CAAC,GAG/C,OAFAA,EAAQouC,WAAa3yC,KAEd,IAAI,GAAYuE,EACxB,CAeA,SAAQ8xC,CAAU9xC,EAA6B,CAAC,GAC/CA,EAAQouC,WAAa3yC,KACrBuE,EAAQuuC,kBAAmB,EAE3B,MAAM8B,EAAa,IAAI,GAAYrwC,GAEnC,UAAY/L,KAASo8C,QACdp8C,EAAMyH,IAEd,CAcA,aAAQq2C,CAAc/xC,EAA6B,CAAC,GACnDA,EAAQouC,WAAa3yC,KAErB,MAAM40C,EAAa,IAAI,GAAYrwC,SAE7BqwC,EAAWntB,SAEjB,UAAYjvB,KAASo8C,QACdp8C,EAAM47C,YAEd,CAYO,yBAAAkuB,CAA2BC,GACjC,OAASA,EAAUp3D,MAClB,IAAK,SACJ,OAAOnL,KAAKwiE,iCAAkCD,GAC/C,IAAK,OACL,IAAK,SACL,IAAK,WACJ,OAAOviE,KAAKyiE,+BAAgCF,GAC7C,IAAK,QACJ,MAAO,CAAEviE,KAAK0iE,gCAAiCH,IAChD,IAAK,QACJ,MAAO,CAAEviE,KAAK2iE,gCAAiCJ,IAGjD,MAAO,CAAE,IAAI,GAAOviE,KAAKywB,MAAOzwB,KAAK+rC,KACtC,CASO,0BAAAm4B,CAA4BC,GAClC,MAAMnuB,EAAS,CAAE,IAAI,GAAOh2C,KAAKywB,MAAOzwB,KAAK+rC,MAE7C,UAAYw2B,KAAa4B,EACxB,QAAU3pE,EAAI,EAAGA,EAAIw7C,EAAO19C,OAAQkC,IAAM,CACzC,MAAM2D,EAAS63C,EAAQx7C,GAAI8nE,0BAA2BC,GAEtDvsB,EAAOxuC,OAAQhN,EAAG,KAAM2D,GACxB3D,GAAK2D,EAAO7F,OAAS,CACtB,CAOD,QAAUkC,EAAI,EAAGA,EAAIw7C,EAAO19C,OAAQkC,IAAM,CACzC,MAAMusB,EAAQivB,EAAQx7C,GAEtB,QAAU4pE,EAAI5pE,EAAI,EAAG4pE,EAAIpuB,EAAO19C,OAAQ8rE,IAAM,CAC7C,MAAM9iE,EAAO00C,EAAQouB,IAEhBr9C,EAAM4uB,cAAer0C,IAAUA,EAAKq0C,cAAe5uB,IAAWA,EAAM1B,QAAS/jB,KACjF00C,EAAOxuC,OAAQ48D,EAAG,EAEpB,CACD,CAEA,OAAOpuB,CACR,CAMO,iBAAApO,GACN,OAAO5nC,KAAKywB,MAAMmX,kBAAmB5nC,KAAK+rC,IAC3C,CAOO,mBAAAqK,GACN,GAAKp2C,KAAKm1C,YACT,OAAO,KAGR,MAAMI,EAAiBv1C,KAAKywB,MAAM4jB,UAC5BmB,EAAgBx1C,KAAK+rC,IAAIuI,WAE/B,OAAKiB,GAAkBA,EAAehnC,GAAI,YAAegnC,IAAmBC,EACpED,EAGD,IACR,CAOO,MAAAlN,GACN,MAAO,CACN5X,MAAOzwB,KAAKywB,MAAM4X,SAClB0D,IAAK/rC,KAAK+rC,IAAI1D,SAEhB,CAKO,KAAArkB,GACN,OAAO,IAAMhkB,KAAK+B,YAAsB/B,KAAKywB,MAAOzwB,KAAK+rC,IAC1D,CASO,gCAAAy2B,CAAkCD,EAA4B8B,GAAkB,GACtF,OAAOrkE,KAAK4iE,2BAA4BL,EAAU96C,SAAU86C,EAAUl3D,QAASg5D,EAChF,CASO,8BAAA5B,CAAgCF,EAA0B8B,GAAkB,GAClF,MAAMvB,EAAiBP,EAAUO,eAC3Bz3D,EAAUk3D,EAAUl3D,QACpB6zC,EAAiBqjB,EAAUrjB,eAEjC,OAAOl/C,KAAK6iE,sBAAuBC,EAAgB5jB,EAAgB7zC,EAASg5D,EAC7E,CASO,+BAAA3B,CAAiCH,GACvC,MAAM9xC,EAAQzwB,KAAKywB,MAAMiyC,gCAAiCH,GAC1D,IAAIx2B,EAAM/rC,KAAK+rC,IAAI22B,gCAAiCH,GAapD,OAXKviE,KAAK+rC,IAAI1mB,QAASk9C,EAAUrgB,qBAChCnW,EAAM/rC,KAAK+rC,IAAI0I,aAAc,IAIzBhkB,EAAMn6B,MAAQy1C,EAAIz1C,OAGtBy1C,EAAM/rC,KAAK+rC,IAAI0I,cAAe,IAGxB,IAAI,GAAOhkB,EAAOsb,EAC1B,CASO,+BAAA42B,CAAiCJ,GAYvC,GAAKviE,KAAKywB,MAAMpL,QAASk9C,EAAUrjB,iBAAoBl/C,KAAK+rC,IAAI1mB,QAASk9C,EAAUc,kBAClF,OAAO,IAAI,GAAOrjE,KAAKywB,OAGxB,IAAIA,EAAQzwB,KAAKywB,MAAMkyC,gCAAiCJ,GACpDx2B,EAAM/rC,KAAK+rC,IAAI42B,gCAAiCJ,GASpD,OAPK9xC,EAAMn6B,MAAQy1C,EAAIz1C,OAItBy1C,EAAM/rC,KAAK+rC,IAAI0I,cAAe,IAG1BhkB,EAAMyX,QAAS6D,IA2Bdw2B,EAAUO,eAAe/6B,SAAUw6B,EAAUrjB,iBAEjDzuB,EAAQ,GAAS2iB,UAAWrH,GAC5Btb,EAAMpU,OAAS,IAETkmD,EAAUc,iBAAiBh+C,QAASoL,KAEzCsb,EAAMw2B,EAAUc,kBAIjB5yC,EAAQ8xC,EAAUrjB,gBAGZ,IAAI,GAAOzuB,EAAOsb,IAGnB,IAAI,GAAOtb,EAAOsb,EAC1B,CAkCO,0BAAA62B,CAA4BY,EAA0Bn4D,EAAiBg5D,GAAkB,GAC/F,GAAKA,GAAUrkE,KAAK01C,iBAAkB8tB,GAKrC,MAAO,CACN,IAAI,GAAOxjE,KAAKywB,MAAO+yC,GACvB,IAAI,GACHA,EAAe/uB,aAAcppC,GAC7BrL,KAAK+rC,IAAI62B,2BAA4BY,EAAgBn4D,KAGjD,CACN,MAAM0b,EAAQ,IAAI,GAAO/mB,KAAKywB,MAAOzwB,KAAK+rC,KAK1C,OAHEhlB,EAAe0J,MAAQ1J,EAAM0J,MAAMmyC,2BAA4BY,EAAgBn4D,GAC/E0b,EAAeglB,IAAMhlB,EAAMglB,IAAI62B,2BAA4BY,EAAgBn4D,GAEtE,CAAE0b,EACV,CACD,CAaO,qBAAA87C,CACNC,EACA5jB,EACA7zC,EACAg5D,GAAkB,GAGlB,GAAKrkE,KAAKm1C,YAAc,CACvB,MAAMmvB,EAAStkE,KAAKywB,MAAMoyC,sBAAuBC,EAAgB5jB,EAAgB7zC,GAEjF,MAAO,CAAE,IAAI,GAAOi5D,GACrB,CAcA,MAAMC,EAAY,GAAM7tB,4BAA6BosB,EAAgBz3D,GAC/Dm4D,EAAiBtkB,EAAekkB,0BAA2BN,EAAgBz3D,GAEjF,GAAKrL,KAAK01C,iBAAkBwJ,KAAqBmlB,IAC3CE,EAAU7uB,iBAAkB11C,KAAKywB,QAAW8zC,EAAU7uB,iBAAkB11C,KAAK+rC,MAAQ,CACzF,MAAMtb,EAAQzwB,KAAKywB,MAAMoyC,sBAAuBC,EAAgB5jB,EAAgB7zC,GAC1E0gC,EAAM/rC,KAAK+rC,IAAI82B,sBAAuBC,EAAgB5jB,EAAgB7zC,GAE5E,MAAO,CAAE,IAAI,GAAOolB,EAAOsb,GAC5B,CAID,IAAI5tC,EAEJ,MAAMqmE,EAAgBxkE,KAAK+1C,cAAewuB,GAC1C,IAAIE,EAAa,KAEjB,MAAMC,EAAS1kE,KAAKmkB,gBAAiBogD,GAsBrC,GApB6B,GAAxBC,EAAclsE,OAElBmsE,EAAa,IAAI,GAChBD,EAAe,GAAI/zC,MAAM2yC,0BAA2BN,EAAgBz3D,GACpEm5D,EAAe,GAAIz4B,IAAIq3B,0BAA2BN,EAAgBz3D,IAEhC,GAAxBm5D,EAAclsE,SAEzBmsE,EAAa,IAAI,GAChBzkE,KAAKywB,MACLzwB,KAAK+rC,IAAIq3B,0BAA2BN,EAAgBz3D,KAKrDlN,EADIsmE,EACKA,EAAW7B,2BAA4BY,EAAiBn4D,EAAoB,OAAXq5D,GAAmBL,GAEpF,GAGLK,EAAS,CACb,MAAMC,EAAoB,IAAI,GAC7BD,EAAOj0C,MAAMuyC,aAAcuB,EAAU9zC,MAAO+yC,GAC5CkB,EAAO34B,IAAIi3B,aAAcuB,EAAU9zC,MAAO+yC,IAGrB,GAAjBrlE,EAAO7F,OACX6F,EAAOqJ,OAAQ,EAAG,EAAGm9D,GAErBxmE,EAAOyB,KAAM+kE,EAEf,CAEA,OAAOxmE,CACR,CAcO,yBAAAilE,CAA2BE,EAA0Bj4D,GAC3D,IAAIu5D,EAAW5kE,KAAKywB,MAAM2yC,0BAA2BE,EAAgBj4D,GACjEw5D,EAAS7kE,KAAK+rC,IAAIq3B,0BAA2BE,EAAgBj4D,GAEjE,OAAiB,MAAZu5D,GAA8B,MAAVC,EACjB,MAGS,MAAZD,IACJA,EAAWtB,GAGG,MAAVuB,IACJA,EAASvB,GAGH,IAAI,GAAOsB,EAAUC,GAC7B,CAUA,kCAAcnuB,CAA6BjvB,EAAoB8F,GAC9D,MAAMkD,EAAQhJ,EACRskB,EAAMtkB,EAASgtB,aAAclnB,GAEnC,OAAOA,EAAQ,EAAI,IAAIvtB,KAAMywB,EAAOsb,GAAQ,IAAI/rC,KAAM+rC,EAAKtb,EAC5D,CASA,gBAAckmB,CAAW5/B,GACxB,OAAO,IAAI/W,KAAM,GAASozC,UAAWr8B,EAAS,GAAK,GAASq8B,UAAWr8B,EAASA,EAAQopD,WACzF,CAOA,gBAAcvpB,CAAW32C,GACxB,OAAOD,KAAK02C,4BAA6B,GAASxC,cAAej0C,GAAQA,EAAK+oC,WAC/E,CAoBA,wBAAc87B,CAAmB9uB,GAChC,GAAuB,IAAlBA,EAAO19C,OAOX,MAAM,IAAIoV,EACT,uCACA,MAEK,GAAsB,GAAjBsoC,EAAO19C,OAClB,OAAO09C,EAAQ,GAAIhyB,QAMpB,MAAM+gD,EAAM/uB,EAAQ,GAGpBA,EAAOn0B,MAAM,CAAElmB,EAAGhD,IACVgD,EAAE80B,MAAMyX,QAASvvC,EAAE83B,OAAU,GAAK,IAI1C,MAAMu0C,EAAWhvB,EAAOvsC,QAASs7D,GAK3B5mE,EAAS,IAAI6B,KAAM+kE,EAAIt0C,MAAOs0C,EAAIh5B,KAIxC,GAAKi5B,EAAW,EAEf,QAAUxqE,EAAIwqE,EAAW,EACnBhvB,EAAQx7C,GAAIuxC,IAAI1mB,QAASlnB,EAAOsyB,OADJj2B,IAE9B2D,EAAgBsyB,MAAQ,GAAS2iB,UAAW4C,EAAQx7C,GAAIi2B,OAU7D,QAAUj2B,EAAIwqE,EAAW,EAAGxqE,EAAIw7C,EAAO19C,QACjC09C,EAAQx7C,GAAIi2B,MAAMpL,QAASlnB,EAAO4tC,KADOvxC,IAE3C2D,EAAgB4tC,IAAM,GAASqH,UAAW4C,EAAQx7C,GAAIuxC,KAO1D,OAAO5tC,CACR,CASA,eAAc4iE,CAAUz4B,EAAWrwB,GAClC,OAAO,IAAIjY,KAAM,GAAS+gE,SAAUz4B,EAAK7X,MAAOxY,GAAO,GAAS8oD,SAAUz4B,EAAKyD,IAAK9zB,GACrF,EAaD,GAAMpW,UAAU0M,GAAK,SAAUpD,GAC9B,MAAgB,UAATA,GAA6B,gBAATA,CAC5B,EC99Be,MAAM85D,WAA+Bz1D,KAI3C01D,oBAAsB,IAAI3xC,QAK1B4xC,oBAAsB,IAAI5xC,QAM1B6xC,4BAA8B,IAAI1zD,IAQlC2zD,sBAAwB,IAAI3zD,IAO5B4zD,sBAAwB,IAAI5zD,IAK5B6zD,yBAA2B,IAAI7zD,IAM/B8zD,oBAAsB,IAAIzxD,IAKlC,WAAAhS,GACC8L,QAGA7N,KAAKyP,GAAoC,uBAAuB,CAAE+F,EAAK1S,KACtE,GAAKA,EAAK65C,aACT,OAGD,MAAM8oB,EAAgBzlE,KAAKklE,oBAAoB98D,IAAKtF,EAAK4iE,cAAc9mE,QAEvE,IAAM6mE,EASL,MAAM,IAAI/3D,EAAe,+CAAgD1N,KAAM,CAAE0lE,cAAe5iE,EAAK4iE,gBAGtG5iE,EAAK65C,aAAe38C,KAAK2lE,eAAgBF,EAAe3iE,EAAK4iE,cAAcrpD,OAAQ,GACjF,CAAErP,SAAU,QAGfhN,KAAKyP,GAAoC,uBAAuB,CAAE+F,EAAK1S,KACtE,GAAKA,EAAK4iE,cACT,OAGD,MAAME,EAAY5lE,KAAK6lE,uBAAwB/iE,EAAK65C,cAC9CmpB,EAAc9lE,KAAKmlE,oBAAoB/8D,IAAKw9D,GAC5CG,EAAc/lE,KAAKgmE,eAAgBljE,EAAK65C,aAAa/9C,OAAuBkE,EAAK65C,aAAatgC,OAAQupD,GAE5G9iE,EAAK4iE,cAAgB,GAActyB,UAAW0yB,EAAcC,EAAa,GACvE,CAAE/4D,SAAU,OAChB,CAWO,YAAAk7C,CACN+d,EACA9kB,GAEAnhD,KAAKklE,oBAAoBtzD,IAAKq0D,EAAc9kB,GAC5CnhD,KAAKmlE,oBAAoBvzD,IAAKuvC,EAAa8kB,EAC5C,CAgBO,iBAAAC,CACN/kB,EACA58C,EAA+B,CAAC,GAEhC,MAAM0hE,EAAejmE,KAAKmmE,eAAgBhlB,GAE1C,GAAKnhD,KAAKslE,sBAAsBr3D,IAAKkzC,GACpC,UAAYilB,KAAcpmE,KAAKslE,sBAAsBl9D,IAAK+4C,GACzDnhD,KAAKwlE,oBAAoBt3D,IAAKk4D,GAI3B7hE,EAAQ8hE,MACZrmE,KAAKulE,yBAAyB3zD,IAAKuvC,EAAaA,EAAY7qD,OAE5D0J,KAAKmlE,oBAAoBrzD,OAAQqvC,GAE5BnhD,KAAKklE,oBAAoB98D,IAAK69D,IAAkB9kB,GACpDnhD,KAAKklE,oBAAoBpzD,OAAQm0D,GAGpC,CAaO,kBAAAK,CAAoBL,GAC1B,MAAM9kB,EAAcnhD,KAAKumE,cAAeN,GAExCjmE,KAAKklE,oBAAoBpzD,OAAQm0D,GAE5BjmE,KAAKmlE,oBAAoB/8D,IAAK+4C,IAAiB8kB,GACnDjmE,KAAKmlE,oBAAoBrzD,OAAQqvC,EAEnC,CASO,mBAAAqlB,CAAqBzvD,EAAsB/U,GACjD,MAAMykE,EAAWzmE,KAAKqlE,sBAAsBj9D,IAAKpG,IAAU,IAAI+R,IAC/D0yD,EAASv4D,IAAK6I,GAEd,MAAMqI,EAAQpf,KAAKslE,sBAAsBl9D,IAAK2O,IAAa,IAAIhD,IAC/DqL,EAAMlR,IAAKlM,GAEXhC,KAAKqlE,sBAAsBzzD,IAAK5P,EAAMykE,GACtCzmE,KAAKslE,sBAAsB1zD,IAAKmF,EAASqI,EAC1C,CAQO,2BAAAsnD,CAA6B3vD,EAAsB/U,GACzD,MAAM2kE,EAAiB3mE,KAAKqlE,sBAAsBj9D,IAAKpG,GAElD2kE,IACJA,EAAe70D,OAAQiF,GAEK,GAAvB4vD,EAAe3yD,MACnBhU,KAAKqlE,sBAAsBvzD,OAAQ9P,IAIrC,MAAM4kE,EAAiB5mE,KAAKslE,sBAAsBl9D,IAAK2O,GAElD6vD,IACJA,EAAe90D,OAAQ9P,GAEK,GAAvB4kE,EAAe5yD,MACnBhU,KAAKslE,sBAAsBxzD,OAAQiF,GAGtC,CAMO,uBAAA8vD,GACN,MAAMC,EAAcnmE,MAAMrB,KAAMU,KAAKwlE,qBAIrC,OAFAxlE,KAAKwlE,oBAAoBzzD,QAElB+0D,CACR,CAOO,qBAAAC,GACN,UAAc5lB,EAAa7qD,KAAU0J,KAAKulE,yBAEpCpkB,EAAY7qD,MAAQA,GACxB0J,KAAKkmE,kBAAmB/kB,GAI1BnhD,KAAKulE,yBAA2B,IAAI7zD,GACrC,CAKO,aAAAs1D,GACNhnE,KAAKklE,oBAAsB,IAAI3xC,QAC/BvzB,KAAKmlE,oBAAsB,IAAI5xC,QAC/BvzB,KAAKqlE,sBAAwB,IAAI3zD,IACjC1R,KAAKslE,sBAAwB,IAAI5zD,IACjC1R,KAAKwlE,oBAAsB,IAAIzxD,IAC/B/T,KAAKulE,yBAA2B,IAAI7zD,GACrC,CAsBO,cAAAy0D,CAAgBhlB,GACtB,OAAOnhD,KAAKmlE,oBAAoB/8D,IAAK+4C,EACtC,CAoBO,aAAAolB,CAAeN,GACrB,OAAOjmE,KAAKklE,oBAAoB98D,IAAK69D,EACtC,CAQO,YAAAgB,CAAc1W,GACpB,OAAO,IAAI,GAAYvwD,KAAKknE,gBAAiB3W,EAAU9/B,OAASzwB,KAAKknE,gBAAiB3W,EAAUxkB,KACjG,CAQO,WAAAo7B,CAAaC,GACnB,OAAO,IAAI,GAAWpnE,KAAKqnE,eAAgBD,EAAW32C,OAASzwB,KAAKqnE,eAAgBD,EAAWr7B,KAChG,CASO,eAAAm7B,CAAiBvqB,GACvB,MAAM75C,EAA2C,CAChD65C,eACA2qB,OAAQtnE,MAKT,OAFAA,KAAK4Q,KAAsC,sBAAuB9N,GAE3DA,EAAK4iE,aACb,CAYO,cAAA2B,CACN3B,EACAnhE,EAAmC,CAAC,GAEpC,MAAMzB,EAA2C,CAChD4iE,gBACA4B,OAAQtnE,KACRunE,UAAWhjE,EAAQgjE,WAKpB,OAFAvnE,KAAK4Q,KAAsC,sBAAuB9N,GAE3DA,EAAK65C,YACb,CASO,oBAAA6qB,CAAsBxlE,GAC5B,MAAMylE,EAAgBznE,KAAKqlE,sBAAsBj9D,IAAKpG,GAEtD,IAAMylE,EACL,OAAO,KAGR,MAAMhB,EAAW,IAAI1yD,IAErB,UAAYgD,KAAW0wD,EACtB,GAAK1wD,EAAQxI,GAAI,oBAChB,UAAYyV,KAASjN,EAAQykC,wBAC5BirB,EAASv4D,IAAK8V,QAGfyiD,EAASv4D,IAAK6I,GAIhB,OAAO0vD,CACR,CAiCO,yBAAAiB,CACNC,EACAC,GAEA5nE,KAAKolE,4BAA4BxzD,IAAK+1D,EAAiBC,EACxD,CAQO,sBAAA/B,CAAwBlpB,GAC9B,IAAI/9C,EAAc+9C,EAAa/9C,OAE/B,MAASoB,KAAKmlE,oBAAoBl3D,IAAKrP,IACtCA,EAASA,EAAOA,OAGjB,OAAOA,CACR,CAuBQ,cAAAonE,CACPpV,EACAiX,EACAjC,GAEA,GAAKA,GAAahV,EAAa,CAK9B,OAH4B5wD,KAAKgmE,eAAgBpV,EAAWhyD,OAAegyD,EAAWhsD,MAAQghE,GACvE5lE,KAAKgmE,eAAgBpV,EAAYiX,EAAYjX,EAGrE,CAKA,GAAKA,EAAWriD,GAAI,SACnB,OAAOs5D,EAIR,IAAI9B,EAAc,EAElB,QAAUvrE,EAAI,EAAGA,EAAIqtE,EAAYrtE,IAChCurE,GAAe/lE,KAAK8nE,eAAgBlX,EAAWzpB,SAAU3sC,IAG1D,OAAOurE,CACR,CA0BO,cAAA+B,CAAgB1d,GACtB,GAAKpqD,KAAKolE,4BAA4Bh9D,IAAOgiD,EAAkBpoD,MAAS,CAGvE,OAFiBhC,KAAKolE,4BAA4Bh9D,IAAOgiD,EAAkBpoD,KAEpE2N,CAAUy6C,EAClB,CAAO,GAAKpqD,KAAKmlE,oBAAoBl3D,IAAKm8C,GACzC,OAAO,EACD,GAAKA,EAAS77C,GAAI,SACxB,OAAO67C,EAAStnD,KAAKxK,OACf,GAAK8xD,EAAS77C,GAAI,aACxB,OAAO,EACD,CACN,IAAInQ,EAAM,EAEV,UAAYka,KAAW8xC,EAA0BtjB,cAChD1oC,GAAO4B,KAAK8nE,eAAgBxvD,GAG7B,OAAOla,CACR,CACD,CA4BO,cAAAunE,CAAgB/U,EAA6CmX,GAEnE,IAAI3d,EAEA4d,EAAa,EAEbjC,EAAc,EACd8B,EAAa,EAGjB,GAAKjX,EAAWriD,GAAI,SACnB,OAAO,IAAI,GAAcqiD,EAAYmX,GAMtC,KAAQhC,EAAcgC,GACrB3d,EAAawG,EAAmDzpB,SAAU0gC,GAC1EG,EAAahoE,KAAK8nE,eAAgB1d,GAClC2b,GAAeiC,EACfH,IAID,OAAK9B,GAAegC,EACZ/nE,KAAKioE,4BAA6B,IAAI,GAAcrX,EAAYiX,IAMhE7nE,KAAK2lE,eAAgBvb,EAAW2d,GAAmBhC,EAAciC,GAE1E,CAeQ,2BAAAC,CAA6BtrB,GAGpC,MAAMrI,EAAaqI,EAAarI,WAC1BD,EAAYsI,EAAatI,UAE/B,OAAKC,aAAsB,GACnB,IAAI,GAAcA,EAAYA,EAAWxxC,KAAKxK,QAC1C+7C,aAAqB,GACzB,IAAI,GAAcA,EAAW,GAI9BsI,CACR,EC1jBc,MAAMurB,GAIZC,YAAc,IAAIz2D,IAUlB02D,mBAAqB,IAAI12D,IAiB1B,GAAAxD,CACNjO,EACAkL,GAEAA,EAAOk9D,GAA0Bl9D,GAE5BlL,aAAgB,KACpBA,EAAOD,KAAKsoE,uBAAwBroE,IAG/BD,KAAKmoE,YAAYl6D,IAAKhO,IAC3BD,KAAKmoE,YAAYv2D,IAAK3R,EAAM,IAAIyR,KAGjC1R,KAAKmoE,YAAY//D,IAAKnI,GAAQ2R,IAAKzG,GAAM,EAC1C,CAkBO,OAAAo9D,CACNtoE,EACAkL,GAQA,OANAA,EAAOk9D,GAA0Bl9D,GAE5BlL,aAAgB,KACpBA,EAAOD,KAAKsoE,uBAAwBroE,MAGhCD,KAAKiC,KAAMhC,EAAMkL,KACrBnL,KAAKmoE,YAAY//D,IAAKnI,GAAQ2R,IAAKzG,GAAM,IAElC,EAIT,CAmBO,IAAAlJ,CACNhC,EACAkL,GAEAA,EAAOk9D,GAA0Bl9D,GAE5BlL,aAAgB,KACpBA,EAAOD,KAAKsoE,uBAAwBroE,IAGrC,MAAMuoE,EAAkBxoE,KAAKmoE,YAAY//D,IAAKnI,GAE9C,QAAyB,IAApBuoE,EACJ,OAAO,KAGR,MAAMhwE,EAAQgwE,EAAgBpgE,IAAK+C,GAEnC,YAAe,IAAV3S,EACG,KAGDA,CACR,CAkBO,MAAAugC,CACN94B,EACAkL,GAEAA,EAAOk9D,GAA0Bl9D,GAE5BlL,aAAgB,KACpBA,EAAOD,KAAKsoE,uBAAwBroE,IAGrC,MAAMgC,EAAOjC,KAAKiC,KAAMhC,EAAMkL,GAE9B,OAAc,IAATlJ,GACJjC,KAAKmoE,YAAY//D,IAAKnI,GAAQ2R,IAAKzG,GAAM,IAElC,IACa,IAATlJ,GAIL,IACR,CAOO,iBAAAwmE,CAAmBC,GACzB,MAAM90C,EAAQ,GAEd,UAAc3zB,EAAM0oE,KAAiB3oE,KAAKmoE,YACzC,UAAcz4D,EAAOk5D,KAAgBD,EAAc,CAClD,MAAME,EAAcn5D,EAAM3S,MAAO,KAAO,GAEnC6rE,GAAcF,GAAcG,GAChCj1C,EAAMh0B,KAAM,CACX8P,QACAzP,KAAMA,EAAK+B,MAAQ/B,EAAK6oE,aAG3B,CAGD,GAAKl1C,EAAMt7B,OAiBV,MAAM,IAAIoV,EAAe,2CAA4C,KAAM,CAAEkmB,SAE/E,CAYO,sBAAA00C,CAAwBt0B,GAC9B,IAAI53B,EAAS,KAEb,MAAM2sD,EAAW/oE,KAAKooE,mBAAmBhgE,IAAK4rC,EAAUG,aAExD,GAAK40B,EAAW,CACf,MAAMC,EAASD,EAAS3gE,IAAK4rC,EAAUO,WAElCy0B,IACJ5sD,EAAS4sD,EAAO5gE,IAAK4rC,EAAUp1C,QAEjC,CAMA,OAJMwd,IACLA,EAASpc,KAAKipE,uBAAwBj1B,IAGhC53B,CACR,CAUQ,sBAAA6sD,CAAwBj1B,GAC/B,MAAMvjB,EAAQujB,EAAUG,YAClBpI,EAAMiI,EAAUO,UAChB31C,EAASo1C,EAAUp1C,OAEnBwd,EAAStb,OAAQ,cAAgBkzC,EAAUlxC,MACjD,IAAIimE,EACAC,EAkBJ,OAhBAD,EAAW/oE,KAAKooE,mBAAmBhgE,IAAKqoB,GAElCs4C,IACLA,EAAW,IAAIr3D,IACf1R,KAAKooE,mBAAmBx2D,IAAK6e,EAAOs4C,IAGrCC,EAASD,EAAS3gE,IAAK2jC,GAEjBi9B,IACLA,EAAS,IAAIt3D,IACbq3D,EAASn3D,IAAKm6B,EAAKi9B,IAGpBA,EAAOp3D,IAAKhT,EAAQwd,GAEbA,CACR,EAWD,SAASisD,GAA0Bl9D,GAClC,MAAMmU,EAAQnU,EAAKpO,MAAO,KAG1B,MAAmB,UAAduiB,EAAO,GACJA,EAAO,GAII,aAAdA,EAAO,IAAoC,gBAAdA,EAAO,GACjCnU,EAGDmU,EAAMhnB,OAAS,EAAIgnB,EAAO,GAAM,IAAMA,EAAO,GAAMA,EAAO,EAClE,CClRe,MAAM4pD,WAA2C15D,KAM/C25D,eAKCC,gBAUjB,WAAArnE,CAAasnE,GACZx7D,QAEA7N,KAAKmpE,eAAiB,CAAEG,WAAYtpE,QAASqpE,GAC7CrpE,KAAKopE,gBAAkB,IAAI71C,OAC5B,CAgBO,cAAAg2C,CACNC,EACAC,EACA1jC,GAEA,MAAMsjC,EAAgBrpE,KAAK0pE,qBAAsB3jC,EAAQyjC,EAAOG,qBAGhE,UAAY7jC,KAAU0jC,EAAOI,qBAC5B5pE,KAAK6pE,qBAAsB/jC,EAAO9jC,KAAM8jC,EAAO/e,MAAOsiD,GAIvD,MAAMS,EAAU9pE,KAAK+pE,eAAgBP,EAAOQ,cAG5C,UAAY3wD,KAASywD,EACA,WAAfzwD,EAAMlO,KACVnL,KAAKiqE,eAAgB,GAAMvzB,4BAA6Br9B,EAAMoO,SAAUpO,EAAM/gB,QAAU+wE,GAC9D,aAAfhwD,EAAMlO,KACjBnL,KAAKkqE,iBAAkB,GAAMxzB,4BAA6Br9B,EAAMoO,SAAUpO,EAAM/gB,QAAU+wE,GAChE,WAAfhwD,EAAMlO,KACjBnL,KAAKmqE,eAAgB9wD,EAAMoO,SAAUpO,EAAM/gB,OAAQ+gB,EAAMrX,KAAMqnE,GAG/DrpE,KAAKoqE,kBAAmB/wD,EAAM0N,MAAO1N,EAAMg1C,aAAch1C,EAAMgxD,kBAAmBhxD,EAAMixD,kBAAmBjB,GAM7GA,EAAc/B,OAAOP,wBAErB,UAAYX,KAAciD,EAAc/B,OAAOT,0BAA4B,CAC1E,MAAM0D,EAAcd,EAAQrhE,IAAKg+D,GAAcoE,WAE/CxqE,KAAK6pE,qBAAsBzD,EAAYmE,EAAalB,GACpDrpE,KAAKyqE,kBAAmBrE,EAAYmE,EAAalB,EAClD,CAGA,UAAYvjC,KAAU0jC,EAAOkB,kBAC5B1qE,KAAKyqE,kBAAmB3kC,EAAO9jC,KAAM8jC,EAAO/e,MAAOsiD,GAIpDA,EAAcsB,WAAWlC,kBAAmB,SAC7C,CAaO,OAAAvxE,CACN6vB,EACA0iD,EACA1jC,EACAxhC,EAA8C,CAAC,GAE/C,MAAM8kE,EAAgBrpE,KAAK0pE,qBAAsB3jC,OAAQ,EAAWxhC,GAEpEvE,KAAKiqE,eAAgBljD,EAAOsiD,GAE5B,UAAcrnE,EAAM+kB,KAAW0iD,EAC9BzpE,KAAKyqE,kBAAmBzoE,EAAM+kB,EAAOsiD,GAItCA,EAAcsB,WAAWlC,kBAAmB,SAC7C,CAcO,gBAAAmC,CACNjqC,EACA8oC,EACA1jC,GAEA,MAAMsjC,EAAgBrpE,KAAK0pE,qBAAsB3jC,GAGjD/lC,KAAK4Q,KAAmC,iBAAkB,CAAE+vB,aAAa0oC,GAGzE,MAAMwB,EAAYlqC,EAAUE,mBAAoBvqC,KAEhD,IAAM+yE,EAAc/B,OAAOf,cAAesE,GACzC,OAID,MAAMC,EAAqBnqE,MAAMrB,KAAMmqE,EAAQsB,qBAAsBpqC,EAAUE,qBAM/E,GAJA7gC,KAAKgrE,4BAA6B3B,EAAcsB,WAAYhqC,EAAWmqC,GAEvE9qE,KAAK4Q,KAA8B,YAAa,CAAE+vB,aAAa0oC,GAEzD1oC,EAAUwU,YAAhB,CAIA,UAAY81B,KAAUH,EAErB,GAAKzB,EAAcsB,WAAW1oE,KAAM0+B,EAAW,aAAesqC,EAAOjpE,MAAS,CAC7E,MAAMuoE,EAAcU,EAAOT,WAE3B,IAAMU,GAA+BvqC,EAAUE,mBAAqBoqC,EAAQ5B,EAAc/B,QACzF,SAGD,MAAMxkE,EAAO,CACZ7C,KAAM0gC,EACNylC,WAAY6E,EAAOjpE,KACnBuoE,eAGDvqE,KAAK4Q,KAA8B,aAAcq6D,EAAOjpE,OAASc,EAAMumE,EACxE,CAGD,UAAYtyE,KAAO4pC,EAAUiJ,mBAE5B,GAAKy/B,EAAcsB,WAAW1oE,KAAM0+B,EAAW,aAAe5pC,GAAQ,CACrE,MAAM+L,EAAO,CACZ7C,KAAM0gC,EACN5Z,MAAO4Z,EAAU4W,gBACjB8W,aAAct3D,EACdszE,kBAAmB,KACnBC,kBAAmB3pC,EAAUjG,aAAc3jC,IAG5CiJ,KAAK4Q,KAA8B,aAAc7Z,UAAc+L,EAAMumE,EACtE,CAjCD,CAmCD,CAeQ,cAAAY,CACPljD,EACAsiD,EACA9kE,EAA6C,CAAC,GAExCA,EAAQ4mE,qBAEbnrE,KAAKorE,yBAA0B/B,EAAcsB,WAAY5jD,GAI1D,UAAYjkB,KAAQnC,MAAMrB,KAAMynB,EAAMiuB,UAAW,CAAEnC,SAAS,KAAW71C,IAAKquE,IAC3ErrE,KAAKsrE,aAAc,SAAUxoE,EAAMumE,EAErC,CAUQ,cAAAc,CACP1iD,EACAnvB,EACA0J,EACAqnE,GAEArpE,KAAK4Q,KAA2B,UAAW5O,IAAS,CAAEylB,WAAUnvB,UAAU+wE,EAC3E,CAcQ,iBAAAe,CACPrjD,EACAhwB,EACA4c,EACAC,EACAy1D,GAGArpE,KAAKurE,wBAAyBlC,EAAcsB,WAAY5jD,EAAO,aAAchwB,KAG7E,UAAYyB,KAASuuB,EAAQ,CAC5B,MAAMjkB,EAAO,CACZ7C,KAAMzH,EAAMyH,KACZ8mB,MAAO,GAAM2vB,4BAA6Bl+C,EAAMk7C,iBAAkBl7C,EAAMF,QACxE+1D,aAAct3D,EACdszE,kBAAmB12D,EACnB22D,kBAAmB12D,GAGpB5T,KAAKsrE,aAAc,aAAcv0E,IAAQ+L,EAAMumE,EAChD,CACD,CAcQ,gBAAAa,CAAkBnjD,EAAcsiD,GAEvC,MAAMmC,EAAe7qE,MAAMrB,KAAMynB,EAAMiuB,UAAW,CAAEnC,SAAS,KAG7D7yC,KAAKorE,yBAA0B/B,EAAcsB,WAAYa,GAGzD,UAAY1oE,KAAQ0oE,EAAaxuE,IAAKquE,IACrCrrE,KAAKsrE,aAAc,SAAU,IAAKxoE,EAAM2oE,cAAc,GAAQpC,EAEhE,CAWQ,iBAAAoB,CACPrE,EACAmE,EACAlB,GAGA,GAAkC,cAA7BkB,EAAYj0E,KAAKwqC,SACrB,OAID,MAAMnvB,EAAY,aAAcy0D,IAahC,GARAiD,EAAcsB,WAAWz8D,IAAKq8D,EAAa54D,GAE3C3R,KAAK4Q,KAA8Be,EAAW,CAAEy0D,aAAYmE,eAAelB,GAMrEA,EAAcsB,WAAWpC,QAASgC,EAAa54D,GAArD,CAOA3R,KAAKurE,wBAAyBlC,EAAcsB,WAAYJ,EAAa54D,GAErE,UAAY1R,KAAQsqE,EAAYl0B,WAAa,CAE5C,IAAMgzB,EAAcsB,WAAW1oE,KAAMhC,EAAM0R,GAC1C,SAGD,MAAM7O,EAAO,CAAE7C,OAAM8mB,MAAO,GAAM6vB,UAAW32C,GAAQmmE,aAAYmE,eAEjEvqE,KAAK4Q,KAA8Be,EAAW7O,EAAMumE,EACrD,CAhBA,CAiBD,CAUQ,oBAAAQ,CAAsBzD,EAAoBmE,EAAoBlB,GAEnC,cAA7BkB,EAAYj0E,KAAKwqC,UAItB9gC,KAAK4Q,KAAiC,gBAAiBw1D,IAAe,CAAEA,aAAYmE,eAAelB,EACpG,CAWQ,cAAAU,CAAgBD,GACvB,MAAMhnE,EAA2D,CAAEgnE,WAInE,OAFA9pE,KAAK4Q,KAAkC,gBAAiB9N,GAEjDA,EAAKgnE,OACb,CAUQ,wBAAAsB,CACPT,EACAa,GAEA,UAAYhzE,KAASgzE,EAAe,CACnC,MAAMvrE,EAAOzH,EAAMyH,KAGnB,GAA2C,OAAtC0qE,EAAW1oE,KAAMhC,EAAM,UAAsB,CACjD0qE,EAAWz8D,IAAKjO,EAAM,UAEtB,UAAYlJ,KAAOkJ,EAAK2pC,mBACvB+gC,EAAWz8D,IAAKjO,EAAM,aAAelJ,EAEvC,CACD,CAEA,OAAO4zE,CACR,CAUQ,uBAAAY,CACPZ,EACA5jD,EACA5b,GAEA,UAAYlL,KAAQ8mB,EAAMsvB,WACzBs0B,EAAWz8D,IAAKjO,EAAMkL,GAGvB,OAAOw/D,CACR,CAUQ,2BAAAK,CACPL,EACAhqC,EACA8oC,GAEAkB,EAAWz8D,IAAKyyB,EAAW,aAE3B,UAAYsqC,KAAUxB,EACrBkB,EAAWz8D,IAAKyyB,EAAW,aAAesqC,EAAOjpE,MAGlD,UAAYjL,KAAO4pC,EAAUiJ,mBAC5B+gC,EAAWz8D,IAAKyyB,EAAW,aAAe5pC,GAG3C,OAAO4zE,CACR,CAWQ,YAAAW,CACPngE,EACArI,EACAumE,GAEA,MAAM13D,EAqTR,SAA6CxG,EAAarI,GACzD,MAAMd,EAAOc,EAAK7C,KAAKsO,GAAI,WAAczL,EAAK7C,KAAK+B,KAAO,QAE1D,MAAO,GAAImJ,KAAUnJ,GACtB,CAzToB0pE,CAAcvgE,EAAMrI,GAChC6nC,EAAU7nC,EAAK7C,KAAKsO,GAAI,cAAiB86D,EAAcsB,WAAWrC,uBAAwBxlE,EAAK7C,MAAS6C,EAAK7C,KAE7G0rE,EAA2B3rE,KAAKopE,gBAAgBhhE,IAAKihE,GACrDuC,EAAqBD,EAAyBvjE,IAAKuiC,GAEzD,GAAMihC,EAEC,IAAMA,EAAmB39D,IAAK0D,GAGpC,OAFAi6D,EAAmB19D,IAAKyD,EAGzB,MALCg6D,EAAyB/5D,IAAK+4B,EAAS,IAAI52B,IAAK,CAAEpC,KAOnD3R,KAAK4Q,KAA4Be,EAAW7O,EAAMumE,EACnD,CAQQ,yBAAAwC,CACP5rE,EACAopE,GAEA,MAAMvmE,EAAgC,CACrC7C,OACA8mB,MAAO,GAAM6vB,UAAW32C,IAGzB,UAAYlJ,KAAO+L,EAAK7C,KAAK2pC,mBAC5B9mC,EAAKurD,aAAet3D,EACpB+L,EAAKunE,kBAAoB,KACzBvnE,EAAKwnE,kBAAoBxnE,EAAK7C,KAAKy6B,aAAc3jC,GAEjDiJ,KAAKsrE,aAAc,aAAcv0E,IAAQ+L,EAAMumE,EAEjD,CAYQ,oBAAAK,CACP3jC,EACA+lC,EAA4B,IAAI/3D,IAChCxP,EAA8C,CAAC,GAE/C,MAAM8kE,EAAuC,IACzCrpE,KAAKmpE,eACRwB,WAAY,IAAI,GAChB5kC,SACAxhC,UACAwnE,YAAa9rE,GAAQD,KAAKiqE,eAAgB,GAAMrzB,UAAW32C,GAAQopE,GACnE2C,gBAAiBj1D,GAAW/W,KAAKiqE,eAAgB,GAAMtzB,UAAW5/B,GAAWsyD,EAAe,CAAE8B,qBAAqB,IACnHc,kBAAmBhsE,GAAQD,KAAK6rE,0BAA2B5rE,EAAMopE,GACjE6C,aAAc/qB,IAAgB2qB,EAAe79D,IAAKo7D,EAAc/B,OAAOnB,eAAgBhlB,KAKxF,OAFAnhD,KAAKopE,gBAAgBx3D,IAAKy3D,EAAe,IAAI33D,KAEtC23D,CACR,EA0ND,SAAS6B,GACRxF,EACAuF,EACA3D,GAEA,MAAMvgD,EAAQkkD,EAAOT,WACf/iC,EAAY9mC,MAAMrB,KAAMomE,EAAcl+B,gBAC5CC,EAAUla,QACVka,EAAUl8B,UAUV,OAR4Bk8B,EAA8BpQ,MAAMtgB,IAC/D,GAAKgQ,EAAM88C,aAAc9sD,GAAY,CAGpC,QAFoBuwD,EAAOf,cAAexvD,GAErB65B,kBAAmB,eACzC,IAIF,CAQA,SAASy6B,GAAwB7yE,GAIhC,MAAO,CACNyH,KAJYzH,EAAMyH,KAKlB8mB,MAJiB,GAAM2vB,4BAA6Bl+C,EAAMk7C,iBAAkBl7C,EAAMF,QAMpF,CC53Be,MAAM,WAAkCkX,EAAc,KAI5DunC,oBAA8B,EAK5BtH,OAA+B,IAAI/9B,IAGtColC,QAAwB,GAsD/B,WAAA/0C,IACI7F,GAWH2R,QAEK3R,EAAK5D,QACT0H,KAAKusC,SAAUrwC,EAEjB,CAiBA,UAAW8qC,GACV,GAAKhnC,KAAK82C,QAAQx+C,OAAS,EAAI,CAC9B,MAAMyuB,EAAQ/mB,KAAK82C,QAAS92C,KAAK82C,QAAQx+C,OAAS,GAElD,OAAO0H,KAAK+2C,mBAAqBhwB,EAAMglB,IAAMhlB,EAAM0J,KACpD,CAEA,OAAO,IACR,CAUA,SAAWgP,GACV,GAAKz/B,KAAK82C,QAAQx+C,OAAS,EAAI,CAC9B,MAAMyuB,EAAQ/mB,KAAK82C,QAAS92C,KAAK82C,QAAQx+C,OAAS,GAElD,OAAO0H,KAAK+2C,mBAAqBhwB,EAAM0J,MAAQ1J,EAAMglB,GACtD,CAEA,OAAO,IACR,CAMA,eAAWoJ,GAGV,OAAgB,IAFDn1C,KAAK82C,QAAQx+C,QAGpB0H,KAAK82C,QAAS,GAAI3B,WAI3B,CAKA,cAAWiC,GACV,OAAOp3C,KAAK82C,QAAQx+C,MACrB,CAKA,cAAW++C,GACV,OAAQr3C,KAAKm1C,aAAen1C,KAAK+2C,kBAClC,CASO,OAAA1xB,CAASuyB,GACf,GAAK53C,KAAKo3C,YAAcQ,EAAeR,WACtC,OAAO,EACD,GAAyB,IAApBp3C,KAAKo3C,WAChB,OAAO,EAGR,IAAMp3C,KAAKgnC,OAAQ3hB,QAASuyB,EAAe5Q,UAAchnC,KAAKy/B,MAAOpa,QAASuyB,EAAenY,OAC5F,OAAO,EAGR,UAAYoY,KAAa73C,KAAK82C,QAAU,CACvC,IAAIgB,GAAQ,EAEZ,UAAYrC,KAAcmC,EAAed,QACxC,GAAKe,EAAUxyB,QAASowB,GAAe,CACtCqC,GAAQ,EACR,KACD,CAGD,IAAMA,EACL,OAAO,CAET,CAEA,OAAO,CACR,CAKA,UAAQR,GACP,UAAYvwB,KAAS/mB,KAAK82C,cACnB,IAAI,GAAO/vB,EAAM0J,MAAO1J,EAAMglB,IAEtC,CAUO,aAAAwL,GACN,IAAI9jB,EAAQ,KAEZ,UAAY1M,KAAS/mB,KAAK82C,QACnBrjB,IAAS1M,EAAM0J,MAAMsX,SAAUtU,EAAMhD,SAC1CgD,EAAQ1M,GAIV,OAAO0M,EAAQ,IAAI,GAAOA,EAAMhD,MAAOgD,EAAMsY,KAAQ,IACtD,CAUO,YAAAyL,GACN,IAAI9jB,EAAO,KAEX,UAAY3M,KAAS/mB,KAAK82C,QACnBpjB,IAAQ3M,EAAMglB,IAAI7D,QAASxU,EAAKqY,OACrCrY,EAAO3M,GAIT,OAAO2M,EAAO,IAAI,GAAOA,EAAKjD,MAAOiD,EAAKqY,KAAQ,IACnD,CASO,gBAAAlL,GACN,MAAMpN,EAAQzzB,KAAKu3C,gBAEnB,OAAO9jB,EAAQA,EAAMhD,MAAMzM,QAAU,IACtC,CASO,eAAA0zB,GACN,MAAMC,EAAY33C,KAAKw3C,eAEvB,OAAOG,EAAYA,EAAU5L,IAAI/nB,QAAU,IAC5C,CAwDO,KAAAuoB,IACHrwC,GASH,IAAMi8C,EAAYC,EAAe7zC,GAAYrI,EAO7C,GAL6B,iBAAjBk8C,IACX7zC,EAAU6zC,EACVA,OAAgB,GAGG,OAAfD,EACJn4C,KAAKq4C,WAAY,SACX,GAAKF,aAAsB,GACjCn4C,KAAKq4C,WAAYF,EAAWb,YAAaa,EAAWd,iBAC9C,GAAKc,GAAwD,mBAAjCA,EAAoBb,UAGtDt3C,KAAKq4C,WAAcF,EAAkCb,YAAea,EAAkCd,iBAChG,GAAKc,aAAsB,GACjCn4C,KAAKq4C,WAAY,CAAEF,KAAgB5zC,KAAaA,EAAQm0C,eAClD,GAAKP,aAAsB,GACjCn4C,KAAKq4C,WAAY,CAAE,IAAI,GAAOF,UACxB,GAAKA,aAAsB,GAAO,CACxC,MAAMO,IAAan0C,KAAaA,EAAQm0C,SACxC,IAAI3xB,EAEJ,GAAsB,MAAjBqxB,EACJrxB,EAAQ,GAAM4vB,UAAWwB,QACnB,GAAsB,MAAjBC,EACXrxB,EAAQ,GAAM6vB,UAAWuB,OACnB,SAAuB,IAAlBC,EAQX,MAAM,IAAI1qC,EAAe,kDAAmD,CAAE1N,KAAMm4C,IAPpFpxB,EAAQ,IAAI,GAAO,GAASqsB,UAAW+E,EAAYC,GAQpD,CAEAp4C,KAAKq4C,WAAY,CAAEtxB,GAAS2xB,EAC7B,KAAO,KAAKphC,GAAY6gC,GAgBvB,MAAM,IAAIzqC,EAAe,uCAAwC,CAAE1N,KAAMm4C,IAdzEn4C,KAAKq4C,WAAYF,EAAY5zC,KAAaA,EAAQm0C,SAenD,CACD,CAYU,UAAAL,CAAYS,EAA4BC,GAA0B,GAC3E,MAAM/C,EAASr1C,MAAMrB,KAAMw5C,GAGrBqzB,EAAcn2B,EAAO3e,MAAM0pB,IAChC,KAAQA,aAAoB,IAY3B,MAAM,IAAIrzC,EACT,uCACA,CAAE1N,KAAM84C,IAIV,OAAO94C,KAAK82C,QAAQpgC,OAAO01D,IAClBA,EAAS/mD,QAAS07B,IACxB,KAIC/K,EAAO19C,SAAW0H,KAAK82C,QAAQx+C,QAAW6zE,KAI/CnsE,KAAKqsE,kBAAmBr2B,GAExBh2C,KAAK+2C,qBAAuBgC,EAE5B/4C,KAAK4Q,KAAiC,eAAgB,CAAE07D,cAAc,IACvE,CAWO,QAAA3zB,CAAU1D,EAAiC54B,GACjD,GAAqB,OAAhBrc,KAAKgnC,OAMT,MAAM,IAAIt5B,EAAe,qCAAsC,CAAE1N,KAAMi1C,IAGxE,MAAM2D,EAAW,GAASxF,UAAW6B,EAAgB54B,GAErD,GAA4C,QAAvCu8B,EAAS9D,YAAa90C,KAAKy/B,OAC/B,OAGD,MAAMuH,EAAShnC,KAAKgnC,OAEfhnC,KAAK82C,QAAQx+C,QACjB0H,KAAKusE,YAGiC,UAAlC3zB,EAAS9D,YAAa9N,IAC1BhnC,KAAKg5C,WAAY,IAAI,GAAOJ,EAAU5R,IACtChnC,KAAK+2C,oBAAqB,IAE1B/2C,KAAKg5C,WAAY,IAAI,GAAOhS,EAAQ4R,IACpC54C,KAAK+2C,oBAAqB,GAG3B/2C,KAAK4Q,KAAiC,eAAgB,CAAE07D,cAAc,GACvE,CAQO,YAAA5xC,CAAc3jC,GACpB,OAAOiJ,KAAKyvC,OAAOrnC,IAAKrR,EACzB,CAQO,aAAAq5C,GACN,OAAOpwC,KAAKyvC,OAAOr2B,SACpB,CAKO,gBAAAwwB,GACN,OAAO5pC,KAAKyvC,OAAOx4C,MACpB,CAQO,YAAAo5C,CAAct5C,GACpB,OAAOiJ,KAAKyvC,OAAOxhC,IAAKlX,EACzB,CAWO,eAAA2P,CAAiB3P,GAClBiJ,KAAKqwC,aAAct5C,KACvBiJ,KAAKyvC,OAAO39B,OAAQ/a,GAEpBiJ,KAAK4Q,KAAqC,mBAAoB,CAAE+4B,cAAe,CAAE5yC,GAAOu1E,cAAc,IAExG,CAYO,YAAA7mE,CAAc1O,EAAayB,GAC5BwH,KAAK06B,aAAc3jC,KAAUyB,IACjCwH,KAAKyvC,OAAO79B,IAAK7a,EAAKyB,GAEtBwH,KAAK4Q,KAAqC,mBAAoB,CAAE+4B,cAAe,CAAE5yC,GAAOu1E,cAAc,IAExG,CAOO,kBAAAp0B,GACN,OAAyB,IAApBl4C,KAAKo3C,WACF,KAGDp3C,KAAKu3C,gBAAiBnB,qBAC9B,CAiEA,kBAAQo2B,GACP,MAAMC,EAAU,IAAI1+D,QAEpB,UAAYgZ,KAAS/mB,KAAKs3C,YAAc,CAEvC,MAAMo1B,EAAaC,GAAgB5lD,EAAM0J,MAAOg8C,GAE3CG,GAAsBF,EAAY3lD,WAChC2lD,GAGP,UAAYl0E,KAASuuB,EAAMiuB,YAAc,CACxC,MAAM63B,EAAQr0E,EAAMyH,KAED,cAAdzH,EAAM2S,MAAwB2hE,GAAqBD,EAAcJ,EAAS1lD,WACxE8lD,EAER,CAEA,MAAME,EAAWJ,GAAgB5lD,EAAMglB,IAAK0gC,GAEvCO,GAAoBD,EAAUhmD,WAC5BgmD,EAER,CACD,CAUO,qBAAAE,CAAuBl2D,EAAmB/W,KAAKgnC,OAAQ1wC,MAC7D,MAAM42E,EAAqB,GAAS95B,UAAWr8B,EAAS,GAClDo2D,EAAmB,GAAS/5B,UAAWr8B,EAAS,OAEtD,OAAOm2D,EAAmBlL,WAAYhiE,KAAK6gC,qBAC1CssC,EAAiBnL,WAAYhiE,KAAK03C,kBACpC,CAMU,UAAAsB,CAAYjyB,GACrB/mB,KAAKotE,YAAarmD,GAClB/mB,KAAK82C,QAAQl3C,KAAM,IAAI,GAAOmnB,EAAM0J,MAAO1J,EAAMglB,KAClD,CAKU,WAAAqhC,CAAarmD,GACtB,QAAUvsB,EAAI,EAAGA,EAAIwF,KAAK82C,QAAQx+C,OAAQkC,IACzC,GAAKusB,EAAMkvB,eAAgBj2C,KAAK82C,QAASt8C,IAQxC,MAAM,IAAIkT,EACT,mCACA,CAAE1N,KAAM+mB,GACR,CAAEmyB,WAAYnyB,EAAOoyB,kBAAmBn5C,KAAK82C,QAASt8C,IAI1D,CAMU,iBAAA6xE,CAAmBr2B,GAC5Bh2C,KAAKqtE,mBAEL,UAAYtmD,KAASivB,EACpBh2C,KAAKg5C,WAAYjyB,EAEnB,CAMU,gBAAAsmD,GACT,KAAQrtE,KAAK82C,QAAQx+C,OAAS,GAC7B0H,KAAKusE,WAEP,CAKU,SAAAA,GACTvsE,KAAK82C,QAAQ93C,KACd,EAgED,SAASsuE,GAAkBv2D,EAAkC01D,GAC5D,OAAKA,EAAQx+D,IAAK8I,KAIlB01D,EAAQv+D,IAAK6I,GAENA,EAAQzgB,KAAKkN,SAAUpL,MAAMkiC,OAAOizC,QAASx2D,MAAeA,EAAQnY,OAC5E,CAKA,SAASkuE,GAAqB/1D,EAAkB01D,EAA2C1lD,GAC1F,OAAOumD,GAAkBv2D,EAAS01D,IAAae,GAAmBz2D,EAASgQ,EAC5E,CAOA,SAAS4lD,GAAgBllD,EAAoBglD,GAC5C,MACMnyC,EADU7S,EAAS7oB,OACFtI,KAAKkN,SAAUpL,MAAMkiC,OAEtCmN,EAAYhgB,EAAS7oB,OAAO4oC,aAAc,CAAEG,aAAa,EAAMD,aAAa,IAElF,IAAI+lC,GAAiB,EAErB,MAAMZ,EAAQplC,EAAUlT,MAAQxd,IAE1B02D,IAILA,EAAiBnzC,EAAOozC,QAAS32D,IAEzB02D,GAAkBH,GAAkBv2D,EAAS01D,MAOtD,OAFAhlC,EAAU7pC,SAASmZ,GAAW01D,EAAQv+D,IAAK6I,KAEpC81D,CACR,CAKA,SAASW,GAAmBX,EAAa9lD,GACxC,MAAM4mD,EA+EP,SAA4BxuE,GAC3B,MAAMm7B,EAASn7B,EAAK7I,KAAKkN,SAAUpL,MAAMkiC,OAEzC,IAAI17B,EAASO,EAAKP,OAElB,KAAQA,GAAS,CAChB,GAAK07B,EAAOizC,QAAS3uE,GACpB,OAAOA,EAGRA,EAASA,EAAOA,MACjB,CACD,CA3FqBgvE,CAAmBf,GAEvC,IAAMc,EACL,OAAO,EAMR,OAFwB5mD,EAAM4uB,cAAe,GAAMiB,UAAW+2B,IAAe,EAG9E,CAkBA,SAASf,GAAsBF,EAAiC3lD,GAC/D,QAAM2lD,OAID3lD,EAAMouB,cAAeu3B,EAAWpgC,WAIhCvlB,EAAM0J,MAAMuxC,WAAY,GAAS5uB,UAAWs5B,EAAYA,EAAWvM,aAIjEqN,GAAmBd,EAAY3lD,GACvC,CAkBA,SAASimD,GAAoBD,EAA+BhmD,GAC3D,QAAMgmD,OAIDhmD,EAAMouB,cAAe43B,EAASzgC,WAI9BvlB,EAAMglB,IAAIi2B,WAAY,GAAS5uB,UAAW25B,EAAU,KAIlDS,GAAmBT,EAAUhmD,GACrC,CAzLA,GAAUllB,UAAU0M,GAAK,SAAUpD,GAClC,MAAgB,cAATA,GAAiC,oBAATA,CAChC,EChuBe,MAAM0iE,WAAkCr+D,EAAc,KAMpE,WAAAzN,CAAa0uB,EAAiBsb,GAC7Bl+B,MAAO4iB,EAAOsb,GAEd+hC,GAAiBzsE,KAAMrB,KACxB,CAOO,MAAAwhB,GACNxhB,KAAK+P,eACN,CAKO,OAAAg+D,GACN,OAAO,IAAI,GAAO/tE,KAAKywB,MAAOzwB,KAAK+rC,IACpC,CAKA,gBAAciiC,CAAWjnD,GACxB,OAAO,IAAI8mD,GAAW9mD,EAAM0J,MAAO1J,EAAMglB,IAC1C,EA4ED,SAAS+hC,KACR9tE,KAAK4P,SACJ5P,KAAK1J,KAAKkN,SAAUpL,MACpB,kBACA,CAAEsX,EAAOxT,KACR,MAAMqmE,EAAYrmE,EAAM,GAElBqmE,EAAU0L,qBAIhBz1D,GAAUnX,KAAMrB,KAAMuiE,EAAW,GAElC,CAAEv1D,SAAU,OAEd,CAKA,SAASwL,GAA4B+pD,GAEpC,MAAMvsB,EAASh2C,KAAKsiE,0BAA2BC,GACzCpkE,EAAS,GAAM2mE,kBAAmB9uB,GAElCk4B,GAAqB/vE,EAAOknB,QAASrlB,MACrCmuE,EAgCP,SAA0CpnD,EAAcw7C,GACvD,OAASA,EAAUp3D,MAClB,IAAK,SACJ,OAAO4b,EAAM2uB,iBAAkB6sB,EAAU96C,UAC1C,IAAK,OACL,IAAK,SACL,IAAK,WACL,IAAK,QACJ,OAAOV,EAAM2uB,iBAAkB6sB,EAAUO,iBACxC/7C,EAAM0J,MAAMpL,QAASk9C,EAAUO,iBAC/B/7C,EAAM2uB,iBAAkB6sB,EAAUrjB,gBACpC,IAAK,QACJ,OAAOn4B,EAAM2uB,iBAAkB6sB,EAAUU,gBAAmBl8C,EAAM2uB,iBAAkB6sB,EAAUrgB,mBAGhG,OAAO,CACR,CAhDwBksB,CAAiCpuE,KAAMuiE,GAE9D,IAAIc,EAAmB,KAEvB,GAAK6K,EAAoB,CAGK,cAAxB/vE,EAAO7H,KAAKwqC,WAGfuiC,EADsB,UAAlBd,EAAUp3D,KACOo3D,EAA6BO,eAG7BP,EAA8Bc,kBAIrD,MAAM+I,EAAWpsE,KAAK+tE,UAEpB/tE,KAAcywB,MAAQtyB,EAAOsyB,MAC7BzwB,KAAc+rC,IAAM5tC,EAAO4tC,IAE7B/rC,KAAK4Q,KAAiC,eAAgBw7D,EAAU,CAAE/I,oBACnE,MAAY8K,GAEXnuE,KAAK4Q,KAAmC,iBAAkB5Q,KAAK+tE,UAAW,CAAE1K,oBAE9E,CAvGAwK,GAAUhsE,UAAU0M,GAAK,SAAUpD,GAClC,MAAgB,cAATA,GAAiC,oBAATA,GAEtB,SAARA,GAA4B,gBAATA,CACrB,ECzDA,MAAMkjE,GAAc,aA0BL,MAAM,WAA0C7+D,EAAc,KAIpE4pC,WAOR,WAAAr3C,CAAakW,GACZpK,QAEA7N,KAAKo5C,WAAa,IAAIk1B,GAAer2D,GAErCjY,KAAKo5C,WAAW7nC,SAAU,gBAAiBhS,GAAIS,MAC/CA,KAAKo5C,WAAW7nC,SAAU,oBAAqBhS,GAAIS,MACnDA,KAAKo5C,WAAW7nC,SAAU,iBAAkBhS,GAAIS,KACjD,CAMA,eAAWm1C,GACV,OAAOn1C,KAAKo5C,WAAWjE,WACxB,CAYA,UAAWnO,GACV,OAAOhnC,KAAKo5C,WAAWpS,MACxB,CASA,SAAWvH,GACV,OAAOz/B,KAAKo5C,WAAW3Z,KACxB,CAKA,cAAW2X,GACV,OAAOp3C,KAAKo5C,WAAWhC,UACxB,CAMA,eAAWm3B,GACV,OAAOvuE,KAAKo5C,WAAWm1B,WACxB,CASA,cAAWl3B,GACV,OAAOr3C,KAAKo5C,WAAW/B,UACxB,CAOA,uBAAWm3B,GACV,OAAOxuE,KAAKo5C,WAAWo1B,mBACxB,CAQA,WAAW/E,GACV,OAAOzpE,KAAKo5C,WAAWqwB,OACxB,CAOA,WAAW3yB,GACV,OAAO92C,KAAKo5C,WAAWtC,OACxB,CAKO,SAAAQ,GACN,OAAOt3C,KAAKo5C,WAAW9B,WACxB,CASO,gBAAAzW,GACN,OAAO7gC,KAAKo5C,WAAWvY,kBACxB,CASO,eAAA6W,GACN,OAAO13C,KAAKo5C,WAAW1B,iBACxB,CAUO,aAAAH,GACN,OAAOv3C,KAAKo5C,WAAW7B,eACxB,CAUO,YAAAC,GACN,OAAOx3C,KAAKo5C,WAAW5B,cACxB,CAuDO,iBAAAg1B,GACN,OAAOxsE,KAAKo5C,WAAWozB,mBACxB,CAOO,kBAAAt0B,GACN,OAAOl4C,KAAKo5C,WAAWlB,oBACxB,CAUO,qBAAA+0B,CAAuBl2D,GAC7B,OAAO/W,KAAKo5C,WAAW6zB,sBAAuBl2D,EAC/C,CAKO,OAAAkR,GACNjoB,KAAKo5C,WAAWnxB,SACjB,CAKO,gBAAA2hB,GACN,OAAO5pC,KAAKo5C,WAAWxP,kBACxB,CAQO,aAAAwG,GACN,OAAOpwC,KAAKo5C,WAAWhJ,eACxB,CAQO,YAAA1V,CAAc3jC,GACpB,OAAOiJ,KAAKo5C,WAAW1e,aAAc3jC,EACtC,CAQO,YAAAs5C,CAAct5C,GACpB,OAAOiJ,KAAKo5C,WAAW/I,aAAct5C,EACtC,CAKO,OAAA0pC,GACNzgC,KAAKo5C,WAAWq1B,gBAChBzuE,KAAKo5C,WAAWs1B,mBAAmB,EACpC,CAUO,cAAAC,CAAgBC,GACtB5uE,KAAKo5C,WAAWu1B,eAAgBC,EACjC,CAcO,SAAAt1B,CAAWrE,EAAiC54B,GAClDrc,KAAKo5C,WAAWT,SAAU1D,EAAgB54B,EAC3C,CAUO,MAAAg9B,IAAWn9C,GACjB8D,KAAKo5C,WAAW7M,SAAUrwC,EAC3B,CAWO,aAAAq1C,CAAex6C,EAAayB,GAClCwH,KAAKo5C,WAAW3zC,aAAc1O,EAAKyB,EACpC,CAYO,gBAAAi5C,CAAkB16C,GACxBiJ,KAAKo5C,WAAW1yC,gBAAiB3P,EAClC,CAOO,oBAAA83E,GACN,OAAO7uE,KAAKo5C,WAAW01B,qBACxB,CAgBO,gBAAAC,GACN,OAAO/uE,KAAKo5C,WAAW41B,iBACxB,CAaO,eAAAC,CAAiBviE,GACvB1M,KAAKo5C,WAAW81B,eAAgBxiE,EACjC,CASA,4BAAcyiE,CAAuBp4E,GACpC,OAAOs3E,GAAct3E,CACtB,CAOA,2BAAcq4E,CAAsBr4E,GACnC,OAAOA,EAAIy3D,WAAY6f,GACxB,EAKD,GAAkBxsE,UAAU0M,GAAK,SAAUpD,GAC1C,MAAgB,cAATA,GACE,mBAARA,GACQ,qBAARA,GACQ,2BAARA,CACF,EAiFA,MAAMmjE,WAAsB,GAKpB7E,QAA8B,IAAI72C,GAAY,CAAEU,WAAY,SAK3D+7C,OAKAC,UAgBAC,mBAAoD,IAAI79D,IAKxD89D,0BAA6C,KAK7CC,kBAA4B,EAQ5BC,2BAA0C,IAAI37D,IAK9C47D,iBAAgC,IAAI57D,IAO5C,WAAAhS,CAAakW,GACZpK,QAEA7N,KAAKqvE,OAASp3D,EAAI7f,MAClB4H,KAAKsvE,UAAYr3D,EAGjBjY,KAAK4P,SAAoC5P,KAAKqvE,OAAQ,kBAAkB,CAAE75D,EAAKtZ,KAC9E,MAAMqmE,EAAYrmE,EAAM,GAElBqmE,EAAU0L,qBAAyC,UAAlB1L,EAAUp3D,MAAsC,UAAlBo3D,EAAUp3D,MAAsC,QAAlBo3D,EAAUp3D,OAKjF,GAAvBnL,KAAK82C,QAAQx+C,QAAe0H,KAAKwvE,2BACrCxvE,KAAK4vE,uBAAwB5vE,KAAKwvE,2BAInCxvE,KAAKwvE,0BAA4B,KAE5BxvE,KAAKyvE,mBACTzvE,KAAKyvE,kBAAmB,EACxBzvE,KAAK4Q,KAAyC,eAAgB,CAAE07D,cAAc,KAC/E,GACE,CAAEt/D,SAAU,WAGfhN,KAAKyP,GAAuC,gBAAgB,KAC3DzP,KAAK6vE,yBAA0B7vE,KAAKs3C,YAAa,IAKlDt3C,KAAK4P,SAAuC5P,KAAKqvE,OAAO5F,QAAS,UAAU,CAAEj0D,EAAKy1D,EAAQmB,EAAUrrB,KACnG/gD,KAAK8vE,cAAe7E,EAAQlqB,EAAU,IAIvC/gD,KAAK4P,SAA+B5P,KAAKsvE,UAAW,UAAU,CAAE95D,EAAKu6D,MA2kBvE,SAAyC33E,EAAc23E,GACtD,MAAMvG,EAASpxE,EAAMoL,SAASgmE,OAE9B,UAAYnwD,KAASmwD,EAAOQ,aAAe,CAC1C,GAAmB,UAAd3wD,EAAMlO,KACV,SAGD,MAAM6kE,EAAe32D,EAAMoO,SAAS7oB,OACZya,EAAM/gB,SAAW03E,EAAa7P,WAGrD/nE,EAAM63E,cAAeF,GAAOhqC,IAC3B,MAAMmqC,EAAmBvvE,MAAMrB,KAAM0wE,EAAapmC,oBAChD7jC,QAAQhP,GAAOA,EAAIy3D,WAAY6f,MAEjC,UAAYt3E,KAAOm5E,EAClBnqC,EAAOr/B,gBAAiB3P,EAAKi5E,EAC9B,GAGH,CACD,CAhmBGG,CAAgCnwE,KAAKqvE,OAAQU,EAAO,GAEtD,CAEA,eAAoB56B,GAGnB,OAAkB,IAFHn1C,KAAK82C,QAAQx+C,OAEN0H,KAAKsvE,UAAUc,mBAAmBj7B,YAActnC,MAAMsnC,WAC7E,CAEA,UAAoBnO,GACnB,OAAOn5B,MAAMm5B,QAAUhnC,KAAKsvE,UAAUc,mBAAmB3/C,KAC1D,CAEA,SAAoBgP,GACnB,OAAO5xB,MAAM4xB,OAASz/B,KAAKsvE,UAAUc,mBAAmBrkC,GACzD,CAEA,cAAoBqL,GACnB,OAAOp3C,KAAK82C,QAAQx+C,OAAS0H,KAAK82C,QAAQx+C,OAAS,CACpD,CAMA,eAAWi2E,GACV,OAAOvuE,KAAK82C,QAAQx+C,OAAS,CAC9B,CAMA,uBAAWk2E,GACV,QAASxuE,KAAK0vE,2BAA2B17D,IAC1C,CAKO,OAAAiU,GACN,QAAUztB,EAAI,EAAGA,EAAIwF,KAAK82C,QAAQx+C,OAAQkC,IACzCwF,KAAK82C,QAASt8C,GAAIgnB,SAGnBxhB,KAAK+P,eACN,CAEA,UAAiBunC,GACXt3C,KAAK82C,QAAQx+C,aACVuV,MAAMypC,kBAEPt3C,KAAKsvE,UAAUc,kBAEvB,CAEgB,aAAA74B,GACf,OAAO1pC,MAAM0pC,iBAAmBv3C,KAAKsvE,UAAUc,kBAChD,CAEgB,YAAA54B,GACf,OAAO3pC,MAAM2pC,gBAAkBx3C,KAAKsvE,UAAUc,kBAC/C,CAEgB,KAAA7jC,IAAUrwC,GACzB2R,MAAM0+B,SAAUrwC,GAChB8D,KAAK0uE,mBAAmB,GACxB1uE,KAAKyuE,eACN,CAEgB,QAAA91B,CAAU1D,EAAiC54B,GAC1DxO,MAAM8qC,SAAU1D,EAAgB54B,GAChCrc,KAAK0uE,mBAAmB,GACxB1uE,KAAKyuE,eACN,CAEgB,YAAAhpE,CAAc1O,EAAayB,GAC1C,GAAKwH,KAAKuxC,cAAex6C,EAAKyB,GAAU,CAEvC,MAAMmxC,EAAgB,CAAE5yC,GACxBiJ,KAAK4Q,KAA6C,mBAAoB,CAAE+4B,gBAAe2iC,cAAc,GACtG,CACD,CAEgB,eAAA5lE,CAAiB3P,GAChC,GAAKiJ,KAAKyxC,iBAAkB16C,GAAQ,CAEnC,MAAM4yC,EAAgB,CAAE5yC,GACxBiJ,KAAK4Q,KAA6C,mBAAoB,CAAE+4B,gBAAe2iC,cAAc,GACtG,CACD,CAEO,eAAA0C,GACN,MAAMqB,EAAc3jE,IAUpB,OANA1M,KAAK0vE,2BAA2BxhE,IAAKmiE,GAES,IAAzCrwE,KAAK0vE,2BAA2B17D,MACpChU,KAAK0uE,mBAAmB,GAGlB2B,CACR,CAEO,cAAAnB,CAAgBxiE,GACtB,IAAM1M,KAAK0vE,2BAA2BzhE,IAAKvB,GAS1C,MAAM,IAAIgB,EACT,2CACA1N,KACA,CAAE0M,IAAAA,IAIJ1M,KAAK0vE,2BAA2B59D,OAAQpF,GAGlC1M,KAAKwuE,qBACVxuE,KAAK0uE,mBAAmB,EAE1B,CAEO,cAAAC,CAAgBC,GACtB5uE,KAAK2vE,iBAAiBzhE,IAAK0gE,GAC3B5uE,KAAKyuE,eACN,CAEmB,iBAAApC,CAAmBr2B,GACrCh2C,KAAK6vE,yBAA0B75B,GAE/BnoC,MAAMw+D,kBAAmBr2B,EAC1B,CAEmB,SAAAu2B,GAClBvsE,KAAK82C,QAAQ93C,MAAOwiB,QACrB,CAEmB,UAAAw3B,CAAYjyB,GAC9B,MAAMupD,EAAYtwE,KAAKuwE,cAAexpD,GAGjCupD,GACJtwE,KAAK82C,QAAQl3C,KAAM0wE,EAErB,CAEQ,wBAAAT,CAA0B75B,GACjC,UAAYjvB,KAASivB,EACpB,IAAMh2C,KAAKsvE,UAAUkB,wBAAyBzpD,GAQ7C,MAAM,IAAIrZ,EACT,oCACA1N,KACA,CAAE+mB,SAIN,CAOQ,aAAAwpD,CAAexpD,GAGtB,GAFA/mB,KAAKotE,YAAarmD,GAEbA,EAAMzwB,MAAQ0J,KAAKsvE,UAAU5L,UAGjC,OAGD,MAAM4M,EAAYzC,GAAUG,UAAWjnD,GAgBvC,OAZAupD,EAAU7gE,GAAI,gBAAgB,CAAE+F,EAAK42D,EAAUtpE,KAG9C,GAFA9C,KAAKyvE,kBAAmB,EAEnBa,EAAUh6E,MAAQ0J,KAAKsvE,UAAU5L,UAAY,CACjD1jE,KAAKwvE,0BAA4B1sE,EAAKugE,iBAEtC,MAAMz+D,EAAQ5E,KAAK82C,QAAQrtC,QAAS6mE,GACpCtwE,KAAK82C,QAAQtvC,OAAQ5C,EAAO,GAC5B0rE,EAAU9uD,QACX,KAGM8uD,CACR,CAEO,aAAA7B,GACN,IAAMzuE,KAAK2vE,iBAAiB37D,KAC3B,OAGD,MAAMy1D,EAAU,GAChB,IAAIgH,GAAU,EAEd,UAAYxF,KAAUjrE,KAAKqvE,OAAO5F,QAAU,CAC3C,MAAMiH,EAAczF,EAAOjpE,KAAKjF,MAAO,IAAK,GAAK,GAEjD,IAAMiD,KAAK2vE,iBAAiB1hE,IAAKyiE,GAChC,SAGD,MAAMnG,EAAcU,EAAOT,WAE3B,UAAYmG,KAAkB3wE,KAAKs3C,YAC7BizB,EAAY50B,cAAeg7B,GAAiBA,EAAex7B,cAC/Ds0B,EAAQ7pE,KAAMqrE,EAGjB,CAEA,MAAM2F,EAAajwE,MAAMrB,KAAMU,KAAKypE,SAEpC,UAAYwB,KAAUxB,EACfzpE,KAAKypE,QAAQx7D,IAAKg9D,KACvBjrE,KAAKypE,QAAQv7D,IAAK+8D,GAElBwF,GAAU,GAIZ,UAAYxF,KAAUtqE,MAAMrB,KAAMU,KAAKypE,SAChCA,EAAQt3C,SAAU84C,KACvBjrE,KAAKypE,QAAQxjE,OAAQglE,GAErBwF,GAAU,GAIPA,GACJzwE,KAAK4Q,KAA0C,gBAAiB,CAAEggE,aAAYtE,cAAc,GAE9F,CAEQ,aAAAwD,CAAe7E,EAAgBV,GACtC,MAAMmG,EAAczF,EAAOjpE,KAAKjF,MAAO,IAAK,GAAK,GAEjD,IAAMiD,KAAK2vE,iBAAiB1hE,IAAKyiE,GAChC,OAGD,IAAID,GAAU,EAEd,MAAMG,EAAajwE,MAAMrB,KAAMU,KAAKypE,SAC9BoH,EAAY7wE,KAAKypE,QAAQx7D,IAAKg9D,GAEpC,GAAMV,EAKC,CACN,IAAIuG,GAAY,EAEhB,UAAYH,KAAkB3wE,KAAKs3C,YAClC,GAAKizB,EAAY50B,cAAeg7B,GAAiBA,EAAex7B,aAAgB,CAC/E27B,GAAY,EAEZ,KACD,CAGIA,IAAcD,GAClB7wE,KAAKypE,QAAQv7D,IAAK+8D,GAElBwF,GAAU,IACEK,GAAaD,IACzB7wE,KAAKypE,QAAQxjE,OAAQglE,GAErBwF,GAAU,EAEZ,MAxBMI,IACJ7wE,KAAKypE,QAAQxjE,OAAQglE,GACrBwF,GAAU,GAwBPA,GACJzwE,KAAK4Q,KAA0C,gBAAiB,CAAEggE,aAAYtE,cAAc,GAE9F,CAKO,iBAAAoC,CAAmBqC,GACzB,MAAMC,EAAgB16C,GAAOt2B,KAAKixE,6BAC5BC,EAAgB56C,GAAOt2B,KAAKowC,iBAElC,GAAK2gC,EAEJ/wE,KAAKuvE,mBAAqB,IAAI79D,IAC9B1R,KAAKyvC,OAAS,IAAI/9B,SAGlB,UAAc3a,EAAKiW,KAAchN,KAAKuvE,mBACpB,OAAZviE,IACJhN,KAAKyvC,OAAO39B,OAAQ/a,GACpBiJ,KAAKuvE,mBAAmBz9D,OAAQ/a,IAKnCiJ,KAAK+/D,iBAAkBiR,GAGvB,MAAMP,EAAU,GAIhB,UAAcU,EAAQv9D,KAAc5T,KAAKowC,gBAClC8gC,EAAcjjE,IAAKkjE,IAAYD,EAAc9oE,IAAK+oE,KAAav9D,GACpE68D,EAAQ7wE,KAAMuxE,GAKhB,UAAcC,KAAYF,EACnBlxE,KAAKqwC,aAAc+gC,IACxBX,EAAQ7wE,KAAMwxE,GAKXX,EAAQn4E,OAAS,GACrB0H,KAAK4Q,KAA6C,mBAAoB,CAAE+4B,cAAe8mC,EAASnE,cAAc,GAEhH,CAMQ,aAAA/6B,CAAex6C,EAAayB,EAAgB8zE,GAAwB,GAC3E,MAAMt/D,EAAWs/D,EAAe,SAAW,MAE3C,GAAiB,OAAZt/D,GAA2D,UAAtChN,KAAKuvE,mBAAmBnnE,IAAKrR,GAEtD,OAAO,EAMR,OAHiB8W,MAAM6sB,aAAc3jC,KAGnByB,IAIlBwH,KAAKyvC,OAAO79B,IAAK7a,EAAKyB,GAGtBwH,KAAKuvE,mBAAmB39D,IAAK7a,EAAKiW,IAE3B,EACR,CASQ,gBAAAykC,CAAkB16C,EAAau1E,GAAwB,GAC9D,MAAMt/D,EAAWs/D,EAAe,SAAW,MAE3C,OAAiB,OAAZt/D,GAA2D,UAAtChN,KAAKuvE,mBAAmBnnE,IAAKrR,MAMvDiJ,KAAKuvE,mBAAmB39D,IAAK7a,EAAKiW,KAG5Ba,MAAMwiC,aAAct5C,KAI1BiJ,KAAKyvC,OAAO39B,OAAQ/a,IAEb,GACR,CAMQ,gBAAAgpE,CAAkBlwB,GACzB,MAAM4gC,EAAU,IAAI18D,IAEpB,UAAcq9D,EAAQz9D,KAAc3T,KAAKowC,gBAEnCP,EAAMznC,IAAKgpE,KAAaz9D,GAK7B3T,KAAKyxC,iBAAkB2/B,GAAQ,GAGhC,UAAcr6E,EAAKyB,KAAWq3C,EAAQ,CAEpB7vC,KAAKuxC,cAAex6C,EAAKyB,GAAO,IAGhDi4E,EAAQviE,IAAKnX,EAEf,CAEA,OAAO05E,CACR,CAKA,oBAAQ3B,GACP,MAAMxmB,EAAkBtoD,KAAK6gC,mBAAoBjiC,OAEjD,GAAKoB,KAAKm1C,aAAemT,EAAgBhc,QACxC,UAAYv1C,KAAOuxD,EAAgB1e,mBAClC,GAAK7yC,EAAIy3D,WAAY6f,IAAgB,CACpC,MAAMgD,EAAUt6E,EAAIqb,OAAQi8D,SAEtB,CAAEgD,EAAS/oB,EAAgB5tB,aAAc3jC,GAChD,CAGH,CAOQ,yBAAAk6E,GACP,MAAMxpD,EAAWznB,KAAK6gC,mBAChBvG,EAASt6B,KAAKqvE,OAAO/0C,OAE3B,GAA+B,cAA1B7S,EAASnxB,KAAKwqC,SAClB,OAAO,KAGR,IAAI+O,EAAQ,KAEZ,GAAM7vC,KAAKm1C,YAkBJ,CAGN,MAAMb,EAAa7sB,EAASqhB,SAAWrhB,EAASqhB,SAAWrhB,EAAS6sB,WAC9DD,EAAY5sB,EAASqhB,SAAWrhB,EAASqhB,SAAWrhB,EAAS4sB,UAenE,GAZMr0C,KAAKwuE,sBAEV3+B,EAAQyhC,GAAmBh9B,EAAYha,IAIlCuV,IACLA,EAAQyhC,GAAmBj9B,EAAW/Z,KAKjCt6B,KAAKwuE,sBAAwB3+B,EAAQ,CAC1C,IAAI1wC,EAAOm1C,EAEX,KAAQn1C,IAAS0wC,GAChB1wC,EAAOA,EAAKspB,gBACZonB,EAAQyhC,GAAmBnyE,EAAMm7B,EAEnC,CAGA,IAAMuV,EAAQ,CACb,IAAI1wC,EAAOk1C,EAEX,KAAQl1C,IAAS0wC,GAChB1wC,EAAOA,EAAK+X,YACZ24B,EAAQyhC,GAAmBnyE,EAAMm7B,EAEnC,CAGMuV,IACLA,EAAQ7vC,KAAK8uE,sBAEf,KA5DyB,CAExB,MAAM/nD,EAAQ/mB,KAAKu3C,gBAGnB,UAAY/+C,KAASuuB,EAAQ,CAE5B,GAAKvuB,EAAMyH,KAAKsO,GAAI,YAAe+rB,EAAOi3C,SAAU/4E,EAAMyH,MAAS,CAElE4vC,EAAQyhC,GAAmB94E,EAAMyH,KAAMq6B,GACvC,KACD,CAEA,GAAmB,QAAd9hC,EAAM2S,KAAiB,CAC3B0kC,EAAQr3C,EAAMyH,KAAKmwC,gBACnB,KACD,CACD,CACD,CA4CA,OAAOP,CACR,CAMQ,sBAAA+/B,CAAwBvM,GAE/B,MAAMsN,EAAiB3wE,KAAKqvE,OAAO/0C,OAAOk3C,yBAA0BnO,GAG/DsN,GAEJ3wE,KAAKg5C,WAAY23B,EAGnB,EASD,SAASW,GAAmBnyE,EAAmBm7B,GAC9C,IAAMn7B,EACL,OAAO,KAGR,GAAKA,aAAgB,IAAaA,aAAgB,GACjD,OAAOA,EAAKixC,gBAGb,IAAM9V,EAAOm3C,SAAUtyE,GACtB,OAAO,KAIR,IAAMm7B,EAAOi3C,SAAUpyE,GACtB,MAAO,GAGR,MAAMoG,EAAuC,GAG7C,UAAcxO,EAAKyB,KAAW2G,EAAKixC,gBAEjC9V,EAAOo3C,eAAgB,QAAS36E,KACwB,IAAxDujC,EAAOq3C,uBAAwB56E,GAAM66E,gBAErCrsE,EAAW3F,KAAM,CAAE7I,EAAKyB,IAI1B,OAAO+M,CACR,CC1tCe,MAAMssE,GACHC,aAKjB,WAAA/vE,CAAagwE,GACZ/xE,KAAK8xE,aAAeC,CACrB,CAUO,GAAA7jE,CAAK8jE,GACX,UAAY1I,KAActpE,KAAK8xE,aAC9BE,EAAkB1I,GAGnB,OAAOtpE,IACR,ECgCc,MAAMiyE,WAAwBJ,GAiJrC,gBAAAK,CAAkBvnD,GASxB,OAAO3qB,KAAKkO,IAmrDd,SAAmCyc,GASlC,MAAMvyB,EAAQ+5E,GAA6BxnD,EAAOvyB,OAC5Cu/B,EAAOy6C,GAA0BznD,EAAOgN,KAAM,aAI/Cv/B,EAAMmN,WAAWjN,SACrBF,EAAM8f,UAAW,GAGlB,OAASoxD,IACRA,EAAW75D,GACV,UAAWrX,EAAM4J,OACjBqwE,GAAe16C,EAAM26C,GAAgBl6E,IACrC,CAAE4U,SAAU2d,EAAO4nD,mBAAqB,YAGpCn6E,EAAM8f,UAAY9f,EAAMmN,WAAWjN,SACvCgxE,EAAW75D,GAAgC,gBAAiB+iE,GAAqBp6E,GAAS,CAAE4U,SAAU,OACvG,CAEF,CAhtDmBylE,CAA0B9nD,GAC5C,CAiHO,kBAAA+nD,CAAoB/nD,GAQ1B,OAAO3qB,KAAKkO,IAgmDd,SACCyc,GASA,MAAMvyB,EAAQ+5E,GAA6BxnD,EAAOvyB,OAC5Cu/B,EAAOy6C,GAA0BznD,EAAOgN,KAAM,aAMpD,OAFAv/B,EAAM8f,UAAW,EAERoxD,IACR,GAAKA,EAAWH,eAAe7uC,OAAOq4C,WAAYv6E,EAAM4J,KAAM,SA2C7D,MAAM,IAAI0L,EAAe,kDAAmD47D,EAAY,CAAE/a,YAAan2D,EAAM4J,OAryBzG,IAA0B4wE,EAA0CC,EAwyBzEvJ,EAAW75D,GACV,UAAWrX,EAAM4J,QAzyBa4wE,EA0yBbj7C,EA1yBuDk7C,EA0yBjDP,GAAgBl6E,GAzyBlC,CACNod,EACA1S,EACAumE,KAEA,IAAMwJ,EAAU/vE,EAAK7C,KAAMopE,EAAcsB,WAAY,CAAEmI,WAAW,IACjE,OAGD,MAAMC,EAAW,IAAIrhE,IAErB23D,EAActjC,OAAOgc,qBAo0CvB,SAA4BhrC,EAAuBg8D,EAA8C1J,GAChG,MAAO,CAAEtjC,EAAwB+b,KAChC,MAAMkxB,EAAOjtC,EAAO8X,uBAAwB,SAE5C,IAAI3lC,EAAoC,KAExC,GAAsB,aAAjB4pC,EACJ5pC,EAAWvX,MAAMrB,KAAMyX,EAAQ+vB,mBACzB,IAA4B,mBAAhBgb,EAQlB,MAAM,IAAIp0C,EAAe,+BAAgC27D,EAAcC,WAAY,CAAExnB,iBAPrF5pC,EAAWvX,MAAMrB,KAAMyX,EAAQ+vB,eAAgB/gC,QAAQgR,GAAW+qC,EAAc/qC,IAQjF,CAIA,OAFAg8D,EAASnhE,IAAKohE,EAAM96D,GAEb86D,CAAI,CAEb,CA31C6CC,CAAmBnwE,EAAK7C,KAAM8yE,EAAU1J,IAGnF,MAAMloB,EAAcyxB,EAAgB9vE,EAAK7C,KAAMopE,EAAevmE,GAI9D,GAFAumE,EAActjC,OAAOkc,qBAEfd,EACL,QAw1CH,SACCpqC,EACAg8D,EACA1J,GAEA,MAAM6J,EAAkBvyE,MAAMrB,KAAMyzE,EAAS3nE,UAAW+nE,OAClDC,EAAwB,IAAIr/D,IAAKm/D,GAEvC,GAAKE,EAAsBp/D,MAAQk/D,EAAgB56E,OAQlD,MAAM,IAAIoV,EAAe,iCAAkC27D,EAAcC,WAAY,CAAEvyD,YAGxF,GAAKq8D,EAAsBp/D,MAAQ+C,EAAQ6vB,WAS1C,MAAM,IAAIl5B,EAAe,oCAAqC27D,EAAcC,WAAY,CAAEvyD,WAE5F,CAl3CEs8D,CAAuBvwE,EAAK7C,KAAM8yE,EAAU1J,GAG5CwJ,EAAU/vE,EAAK7C,KAAMopE,EAAcsB,YAEnC,MAAMhuB,EAAe0sB,EAAc/B,OAAOD,eAAgBvkE,EAAKikB,MAAM0J,OAErE44C,EAAc/B,OAAOpf,aAAcplD,EAAK7C,KAAMkhD,GAC9CkoB,EAActjC,OAAOrgC,OAAQi3C,EAAcwE,GAG3CkoB,EAAc4C,kBAAmBnpE,EAAK7C,MA42CxC,SACCkhD,EACA4xB,EACA1J,EACA9kE,GAGA8kE,EAAc/B,OAAO73D,GAAoC,sBAAuB6jE,EAAuB,CAAEtmE,SAAU,YAEnH,IAAIumE,EAAkC,KAClCC,EAA4C,KAGhD,KAAQD,EAAaC,KAAsBT,EAC1CU,GAAwBtyB,EAAaqyB,EAAkBnK,EAAe9kE,GAEtE8kE,EAActjC,OAAOoZ,KACpBkqB,EAActjC,OAAO4b,cAAe4xB,GACpClK,EAActjC,OAAOyb,qBAAsB+xB,IAE5ClK,EAActjC,OAAO9/B,OAAQstE,GAK9B,SAASD,EAAuB99D,EAAc1S,GAM7C,MAAMiU,EAAUjU,EAAK4iE,cAAcrxB,UAG7BzvC,EAAQ4uE,EAAkB/pE,QAASsN,GAEpCnS,EAAQ,IAIb9B,EAAK65C,aAAe75C,EAAKwkE,OAAO3B,eAAgB4N,EAAc3uE,GAC/D,CAlBAykE,EAAc/B,OAAOh7D,IAAK,sBAAuBgnE,EAmBlD,CAn5CEI,CAAWvyB,EAAa4xB,EAAU1J,EAAe,CAAEoC,aAAc3oE,EAAK2oE,cAAgB,GAqwBrF,CAAEz+D,SAAU2d,EAAO4nD,mBAAqB,WAGzCjJ,EAAW75D,GAAgC,gBAAiB+iE,GAAqBp6E,GAAS,CAAE4U,SAAU,OAAS,CAEjH,CAxqDmB2mE,CAA4BhpD,GAC9C,CAwFO,kBAAAipD,CACNjpD,GAiBA,OAAO3qB,KAAKkO,IA8kDd,SAAqCyc,GASpCA,EAAS,GAAWA,GAEpB,IAAIvyB,EAAQuyB,EAAOvyB,MAEE,iBAATA,IACXA,EAAQ,CAAErB,IAAKqB,IAGhB,IAAIuZ,EAAY,aAAcvZ,EAAMrB,MAE/BqB,EAAM4J,OACV2P,GAAa,IAAMvZ,EAAM4J,MAG1B,GAAK5J,EAAMgT,OACV,UAAYyoE,KAAcz7E,EAAMgT,OAC7Buf,EAAOgN,KAAek8C,GAAezB,GAA4BznD,EAAOgN,KAAek8C,GAAc,kBAGxGlpD,EAAOgN,KAAOy6C,GAA0BznD,EAAOgN,KAAa,aAG7D,MAAMi7C,EAAiBkB,GAA0DnpD,GAEjF,OAAS2+C,IACRA,EAAW75D,GACVkC,EACA+uC,GAAMkyB,GACN,CAAE5lE,SAAU2d,EAAO4nD,mBAAqB,UACxC,CAEH,CAtnDmBwB,CAA4BppD,GAC9C,CAmFO,oBAAAqpD,CACNrpD,GAiBA,OAAO3qB,KAAKkO,IAmiDd,SAAuCyc,GAStCA,EAAS,GAAWA,GAEpB,IAAIvyB,EAAQuyB,EAAOvyB,MAEE,iBAATA,IACXA,EAAQ,CAAErB,IAAKqB,IAGhB,IAAIuZ,EAAY,aAAcvZ,EAAMrB,MAE/BqB,EAAM4J,OACV2P,GAAa,IAAMvZ,EAAM4J,MAG1B,GAAK5J,EAAMgT,OACV,UAAYyoE,KAAcz7E,EAAMgT,OAC7Buf,EAAOgN,KAAek8C,GAAeI,GAA8BtpD,EAAOgN,KAAek8C,SAG5FlpD,EAAOgN,KAAOs8C,GAA4BtpD,EAAOgN,MAGlD,MAAMi7C,EAAiBkB,GAAmDnpD,GAE1E,OAAS2+C,IAvjBV,IAA0B4K,EAwjBxB5K,EAAW75D,GACVkC,GAzjBuBuiE,EA0jBNtB,EAzjBZ,CACNp9D,EACA1S,EAOAumE,KAEA,IAAMA,EAAcsB,WAAW1oE,KAAMa,EAAK7C,KAAMuV,EAAIxT,MACnD,OAGD,MAAMmyE,EAAeD,EAAkBpxE,EAAKunE,kBAAmBhB,EAAevmE,GACxE+/C,EAAeqxB,EAAkBpxE,EAAKwnE,kBAAmBjB,EAAevmE,GAE9E,IAAMqxE,IAAiBtxB,EACtB,OAGDwmB,EAAcsB,WAAWpC,QAASzlE,EAAK7C,KAAMuV,EAAIxT,MAEjD,MAAMm/C,EAAckoB,EAAc/B,OAAOf,cAAezjE,EAAK7C,MACvDm0E,EAAa/K,EAActjC,OAIjC,IAAMob,EAyCL,MAAM,IAAIzzC,EAAe,4CAA6C27D,EAAcC,WAAYxmE,GAIjG,GAAgC,OAA3BA,EAAKunE,mBAA8B8J,EACvC,GAAyB,SAApBA,EAAap9E,IAAiB,CAClC,MAAMgzC,EAAuC,iBAAtBoqC,EAAa37E,MAAoB27E,EAAa37E,MAAMuE,MAAO,OAAUo3E,EAAa37E,MAEzG,UAAY+3C,KAAaxG,EACxBqqC,EAAW9tC,YAAaiK,EAAW4Q,EAErC,MAAO,GAAyB,SAApBgzB,EAAap9E,IACxB,GAAkC,iBAAtBo9E,EAAa37E,MAAoB,CAC5C,MAAM8iC,EAAS,IAAI4Q,GAAWkoC,EAAW5wE,SAAS2sC,iBAElD7U,EAAOiR,MAAO4nC,EAAa37E,OAE3B,UAAczB,KAASukC,EAAOkS,mBAC7B4mC,EAAW31B,YAAa1nD,EAAKoqD,EAE/B,KAAO,CACN,MAAMlqD,EAAOD,OAAOC,KAAMk9E,EAAa37E,OAEvC,UAAYzB,KAAOE,EAClBm9E,EAAW31B,YAAa1nD,EAAKoqD,EAE/B,MAEAizB,EAAW1tE,gBAAiBytE,EAAap9E,IAAKoqD,GAKhD,GAAgC,OAA3Br+C,EAAKwnE,mBAA8BznB,EACvC,GAAyB,SAApBA,EAAa9rD,IAAiB,CAClC,MAAMgzC,EAAuC,iBAAtB8Y,EAAarqD,MAAoBqqD,EAAarqD,MAAMuE,MAAO,OAAU8lD,EAAarqD,MAEzG,UAAY+3C,KAAaxG,EACxBqqC,EAAWltC,SAAUqJ,EAAW4Q,EAElC,MAAO,GAAyB,SAApB0B,EAAa9rD,IACxB,GAAkC,iBAAtB8rD,EAAarqD,MAAoB,CAC5C,MAAM8iC,EAAS,IAAI4Q,GAAWkoC,EAAW5wE,SAAS2sC,iBAElD7U,EAAOiR,MAAOsW,EAAarqD,OAE3B,UAAczB,EAAKyB,KAAW8iC,EAAOkS,mBACpC4mC,EAAW51B,SAAUznD,EAAKyB,EAAO2oD,EAEnC,KAAO,CACN,MAAMlqD,EAAOD,OAAOC,KAAM4rD,EAAarqD,OAEvC,UAAYzB,KAAOE,EAClBm9E,EAAW51B,SAAUznD,EAAO8rD,EAAarqD,MAAmCzB,GAAOoqD,EAErF,MAEAizB,EAAW3uE,aAAco9C,EAAa9rD,IAAK8rD,EAAarqD,MAAiB2oD,EAE3E,GAybC,CAAEn0C,SAAU2d,EAAO4nD,mBAAqB,UACxC,CAEH,CA3kDmB8B,CAA8B1pD,GAChD,CAqEO,eAAA2pD,CAAiB3pD,GAKvB,OAAO3qB,KAAKkO,IA6gDd,SAAkCyc,GAKjC,MAAMgN,EAAOy6C,GAA0BznD,EAAOgN,KAAM,MAEpD,OAAS2xC,IACRA,EAAW75D,GACV,aAAckb,EAAOvyB,QACrBm8E,GAAiB58C,GACjB,CAAE3qB,SAAU2d,EAAO4nD,mBAAqB,WAEzCjJ,EAAW75D,GACV,gBAAiBkb,EAAOvyB,SAv0BnB,CACNod,EACA1S,EACAumE,KAEA,MAAM5C,EAAW4C,EAAc/B,OAAOE,qBAAsB1kE,EAAKsjE,YAEjE,GAAMK,EAAN,CAIA,UAAY1vD,KAAW0vD,EACtB4C,EAAc/B,OAAOZ,4BAA6B3vD,EAASjU,EAAKsjE,YAChEiD,EAActjC,OAAOh0B,MAAOs3D,EAActjC,OAAO2b,cAAe3qC,GAAWA,GAG5EsyD,EAActjC,OAAOqb,yBAA0Bt+C,EAAKsjE,YAEpD5wD,EAAInJ,MATJ,CASU,GAuzBT,CAAEW,SAAU2d,EAAO4nD,mBAAqB,UACxC,CAEH,CAhiDmBiC,CAAyB7pD,GAC3C,CA4DO,iBAAA8pD,CAAmB9pD,GAKzB,OAAO3qB,KAAKkO,IAmhDd,SAAoCyc,GAKnC,OAAS2+C,IAngBV,IAAwBoL,EAogBtBpL,EAAW75D,GACV,aAAckb,EAAOvyB,SArgBAs8E,EAsgBN/pD,EAAOgN,KArgBjB,CACNniB,EACA1S,EAMAumE,KAEA,IAAMvmE,EAAK7C,KACV,OAGD,KAAQ6C,EAAK7C,gBAAgB,IAAkB6C,EAAK7C,gBAAgB,IAA6B6C,EAAK7C,KAAKsO,GAAI,eAC9G,OAGD,MAAMomE,EAAaC,GAAmBF,EAAqB5xE,EAAMumE,GAEjE,IAAMsL,EACL,OAGD,IAAMtL,EAAcsB,WAAWpC,QAASzlE,EAAK7C,KAAMuV,EAAIxT,MACtD,OAGD,MAAMoyE,EAAa/K,EAActjC,OAC3Bob,EAAc0zB,GAA0CT,EAAYO,GACpE/zB,EAAgBwzB,EAAW5wE,SAASm9B,UAE1C,GAAK79B,EAAK7C,gBAAgB,IAAkB6C,EAAK7C,gBAAgB,GAChEm0E,EAAW1zB,KAAME,EAAcrJ,gBAAkB4J,OAC3C,CACN,MAAMoP,EAAY8Y,EAAc/B,OAAOH,YAAarkE,EAAKikB,OACnD+tD,EAAiBV,EAAW1zB,KAAM6P,EAAWpP,GAEnD,UAAYpqC,KAAW+9D,EAAez+B,WACrC,GAAKt/B,EAAQxI,GAAI,qBAAwBwI,EAAQ2xB,UAAWyY,GAAgB,CAC3EkoB,EAAc/B,OAAOd,oBAAqBzvD,EAASjU,EAAKsjE,YAIxD,KACD,CAEF,IAudC,CAAEp5D,SAAU2d,EAAO4nD,mBAAqB,WAEzCjJ,EAAW75D,GACV,aAAckb,EAAOvyB,QArcxB,SAA2Bs8E,GAC1B,MAAO,CACNl/D,EACA1S,EAKAumE,KAEA,IAAMvmE,EAAK7C,KACV,OAGD,KAAQ6C,EAAK7C,gBAAgB,IAC5B,OAGD,MAAM00E,EAAaC,GAAmBF,EAAqB5xE,EAAMumE,GAEjE,IAAMsL,EACL,OAGD,IAAMtL,EAAcsB,WAAW1oE,KAAMa,EAAK7C,KAAMuV,EAAIxT,MACnD,OAGD,MAAMm/C,EAAckoB,EAAc/B,OAAOf,cAAezjE,EAAK7C,MAE7D,GAAKkhD,GAAeA,EAAYvQ,kBAAmB,gBAAmB,CAErEy4B,EAAcsB,WAAWpC,QAASzlE,EAAK7C,KAAMuV,EAAIxT,MAGjD,UAAYxJ,KAAS,GAAWm+C,UAAW7zC,EAAK7C,MAC/CopE,EAAcsB,WAAWpC,QAAS/vE,EAAMyH,KAAMuV,EAAIxT,MAGtBm/C,EAAYvQ,kBAAmB,eAE5DmkC,CAAsB5zB,EAAawzB,EAAYtL,EAActjC,QAE7DsjC,EAAc/B,OAAOd,oBAAqBrlB,EAAar+C,EAAKsjE,WAC7D,EAEF,CAwZG4O,CAAkBrqD,EAAOgN,MACzB,CAAE3qB,SAAU2d,EAAO4nD,mBAAqB,WAEzCjJ,EAAW75D,GACV,gBAAiBkb,EAAOvyB,QArY3B,SAA0Bs8E,GACzB,MAAO,CACNl/D,EACA1S,EAIAumE,KAGA,GAAKvmE,EAAKynE,YAAYp1B,YACrB,OAGD,MAAMw/B,EAAaC,GAAmBF,EAAqB5xE,EAAMumE,GAEjE,IAAMsL,EACL,OAID,MAAMM,EAAuBJ,GAA0CxL,EAActjC,OAAQ4uC,GAGvFlO,EAAW4C,EAAc/B,OAAOE,qBAAsB1kE,EAAKsjE,YAEjE,GAAMK,EAAN,CAIA,UAAY1vD,KAAW0vD,EAGtB,GAFA4C,EAAc/B,OAAOZ,4BAA6B3vD,EAASjU,EAAKsjE,YAE3DrvD,EAAQxI,GAAI,oBAChB86D,EAActjC,OAAO+a,OAAQuoB,EAActjC,OAAO2b,cAAe3qC,GAAWk+D,OACtE,CAE0Bl+D,EAAQ65B,kBAAmB,kBAE3DskC,CAAyBn+D,EAAS49D,EAAW90E,GAAKwpE,EAActjC,OACjE,CAGDsjC,EAActjC,OAAOqb,yBAA0Bt+C,EAAKsjE,YAEpD5wD,EAAInJ,MAjBJ,CAiBU,CAEZ,CAuVG8oE,CAAiBxqD,EAAOgN,MACxB,CAAE3qB,SAAU2d,EAAO4nD,mBAAqB,UACxC,CAEH,CAziDmB6C,CAA2BzqD,GAC7C,CA0HO,YAAA0qD,CAAc1qD,GAKpB,OAAO3qB,KAAKkO,IAu2Cd,SAA+Byc,GAK9BA,EAAS,GAAWA,GAEpB,MAAMs5B,EAAQt5B,EAAOvyB,MACrB,IAAIu/B,EAAOhN,EAAOgN,KAGZA,IACLA,EAAOyuC,IAAA,CACNniB,QACAjiD,KAAMokE,EAAWh0D,OAAQuY,EAAOvyB,MAAME,OAAS,MAIjD,OAASgxE,IAv0BV,IAA2BgM,EAw0BzBhM,EAAW75D,GACV,aAAcw0C,KAz0BUqxB,EA00BN39C,EAz0Bb,CACNniB,EACA1S,EAIAumE,KAEA,MAAMkM,EAAiBD,EAAaxyE,EAAKsjE,WAAYiD,GAErD,IAAMkM,EACL,OAGD,MAAMhL,EAAcznE,EAAKynE,YAEnBlB,EAAcsB,WAAWpC,QAASgC,EAAa/0D,EAAIxT,QAKzDwzE,GAAsBjL,GAAa,EAAOlB,EAAevmE,EAAMyyE,GAC/DC,GAAsBjL,GAAa,EAAMlB,EAAevmE,EAAMyyE,GAE9D//D,EAAInJ,OAAM,GAkzBT,CAAEW,SAAU2d,EAAO4nD,mBAAqB,WAEzCjJ,EAAW75D,GACV,gBAAiBw0C,IAptBpB,SAA2BqxB,GAC1B,MAAO,CACN9/D,EACA1S,EACAumE,KAEA,MAAMoM,EAAWH,EAAaxyE,EAAKsjE,WAAYiD,GAE/C,IAAMoM,EACL,OAGD,MAAMhP,EAAW4C,EAAc/B,OAAOE,qBAAsB1kE,EAAKsjE,YAEjE,GAAMK,EAAN,CAIA,UAAY1vD,KAAW0vD,EACtB4C,EAAc/B,OAAOZ,4BAA6B3vD,EAASjU,EAAKsjE,YAE3DrvD,EAAQxI,GAAI,qBAChBmnE,EAA2B,QAASD,EAASxxB,qBAAuBltC,GACpE2+D,EAA2B,QAASD,EAASxxB,oBAAsBltC,GACnE2+D,EAA2B,QAASD,EAASxxB,mBAAqBltC,GAClE2+D,EAA2B,QAASD,EAASxxB,kBAAoBltC,IAEjEsyD,EAActjC,OAAOh0B,MAAOs3D,EAActjC,OAAO2b,cAAe3qC,GAAWA,GAI7EsyD,EAActjC,OAAOqb,yBAA0Bt+C,EAAKsjE,YAEpD5wD,EAAInJ,MAjBJ,CAmBA,SAASqpE,EAA2B1kC,EAAuBj6B,GAC1D,GAAKA,EAAQs5B,aAAcW,GAAkB,CAC5C,MAAM81B,EAAc,IAAI/yD,IAAKgD,EAAQ2jB,aAAcsW,GAAiBj0C,MAAO,MAE3E+pE,EAAYh1D,OAAQ2jE,EAAUzzE,MAEL,GAApB8kE,EAAY9yD,KAChBq1D,EAActjC,OAAOr/B,gBAAiBsqC,EAAej6B,GAErDsyD,EAActjC,OAAOtgC,aAAcurC,EAAerwC,MAAMrB,KAAMwnE,GAAc5pE,KAAM,KAAO6Z,EAE3F,CACD,EAEF,CAoqBG4+D,CAAkBh+C,GAClB,CAAE3qB,SAAU2d,EAAO4nD,mBAAqB,UACxC,CAEH,CAr4CmBqD,CAAsBjrD,GACxC,EA6FM,SAASkqD,GAA0C9uC,EAAwB4uC,GACjF,MAAMxzB,EAAcpb,EAAO2X,uBAAwB,OAAQi3B,EAAWpvE,YAYtE,OAVKovE,EAAW5qC,SACfoX,EAAYzP,UAAWijC,EAAW5qC,SAGC,iBAAxB4qC,EAAW3nE,WACpBm0C,EAAqB9F,UAAYs5B,EAAW3nE,UAG7Cm0C,EAAqB7F,IAAMq5B,EAAW90E,GAEjCshD,CACR,CAgLO,SAAST,GAAMkyB,GACrB,MAAO,CACNp9D,EACA1S,EAOAumE,KAEA,IAAMA,EAAcsB,WAAW1oE,KAAMa,EAAK7C,KAAMuV,EAAIxT,MACnD,OAKD,MAAM6zE,EAAiBjD,EAAgB9vE,EAAKunE,kBAAmBhB,EAAevmE,GAGxEgzE,EAAiBlD,EAAgB9vE,EAAKwnE,kBAAmBjB,EAAevmE,GAE9E,IAAM+yE,IAAmBC,EACxB,OAGDzM,EAAcsB,WAAWpC,QAASzlE,EAAK7C,KAAMuV,EAAIxT,MAEjD,MAAMoyE,EAAa/K,EAActjC,OAC3B6a,EAAgBwzB,EAAW5wE,SAASm9B,UAE1C,GAAK79B,EAAK7C,gBAAgB,IAAkB6C,EAAK7C,gBAAgB,GAEhEm0E,EAAW1zB,KAAME,EAAcrJ,gBAAkBu+B,OAC3C,CAEN,IAAIvlB,EAAY8Y,EAAc/B,OAAOH,YAAarkE,EAAKikB,OAGvB,OAA3BjkB,EAAKunE,mBAA8BwL,IACvCtlB,EAAY6jB,EAAWtzB,OAAQyP,EAAWslB,IAGX,OAA3B/yE,EAAKwnE,mBAA8BwL,GACvC1B,EAAW1zB,KAAM6P,EAAWulB,EAE9B,EAEF,CA+BO,SAASzD,GAAeO,EAAwCC,EAA6BkD,IACnG,MAAO,CACNvgE,EACA1S,EACAumE,KAEA,IAAMwJ,EAAU/vE,EAAK7C,KAAMopE,EAAcsB,WAAY,CAAEmI,WAAW,IACjE,OAGD,MAAM3xB,EAAcyxB,EAAgB9vE,EAAK7C,KAAMopE,EAAevmE,GAE9D,IAAMq+C,EACL,OAID0xB,EAAU/vE,EAAK7C,KAAMopE,EAAcsB,YAEnC,MAAMhuB,EAAe0sB,EAAc/B,OAAOD,eAAgBvkE,EAAKikB,MAAM0J,OAErE44C,EAAc/B,OAAOpf,aAAcplD,EAAK7C,KAAMkhD,GAC9CkoB,EAActjC,OAAOrgC,OAAQi3C,EAAcwE,GAG3CkoB,EAAc4C,kBAAmBnpE,EAAK7C,MAGtCwzE,GAAwBtyB,EAAar+C,EAAK7C,KAAK6mC,cAAeuiC,EAAe,CAAEoC,aAAc3oE,EAAK2oE,cAAgB,CAEpH,CAwEO,SAAS8I,GAAiB3B,GAChC,MAAO,CACNp9D,EACA1S,EAKAumE,KAIAvmE,EAAKkzE,WAAY,EACjB,MAAMC,EAAmBrD,EAAgB9vE,EAAMumE,GAE/CvmE,EAAKkzE,WAAY,EACjB,MAAME,EAAiBtD,EAAgB9vE,EAAMumE,GAE7C,IAAM4M,IAAqBC,EAC1B,OAGD,MAAM3L,EAAcznE,EAAKynE,YAKzB,GAAKA,EAAYp1B,cAAgBk0B,EAAcsB,WAAWpC,QAASgC,EAAa/0D,EAAIxT,MACnF,OAID,UAAYxJ,KAAS+xE,EACpB,IAAMlB,EAAcsB,WAAWpC,QAAS/vE,EAAMyH,KAAMuV,EAAIxT,MACvD,OAIF,MAAMslE,EAAS+B,EAAc/B,OACvB8M,EAAa/K,EAActjC,OAGjCquC,EAAW1uE,OAAQ4hE,EAAOD,eAAgBkD,EAAY95C,OAASwlD,GAC/D5M,EAAc/B,OAAOd,oBAAqByP,EAAkBnzE,EAAKsjE,YAG3DmE,EAAYp1B,cACjBi/B,EAAW1uE,OAAQ4hE,EAAOD,eAAgBkD,EAAYx+B,KAAOmqC,GAC7D7M,EAAc/B,OAAOd,oBAAqB0P,EAAgBpzE,EAAKsjE,aAGhE5wD,EAAInJ,MAAM,CAEZ,CA2EA,SAASmpE,GACRzuD,EACAovD,EACA9M,EACAvmE,EACAyyE,GAEA,MAAM7P,EAAgByQ,EAAUpvD,EAAM0J,MAAQ1J,EAAMglB,IAC9CqqC,EAAe1Q,EAAcrxB,WAAaqxB,EAAcrxB,UAAU9lC,GAAI,WAAcm3D,EAAcrxB,UAAY,KAC9GgiC,EAAgB3Q,EAAcpxB,YAAcoxB,EAAcpxB,WAAW/lC,GAAI,WAAcm3D,EAAcpxB,WAAa,KAExH,GAAK8hC,GAAgBC,EAAgB,CACpC,IAAIpQ,EACAl+B,EAGCouC,GAAWC,IAAiBD,IAAYE,GAG5CpQ,EAAemQ,EACfruC,GAAW,IAIXk+B,EAAeoQ,EACftuC,GAAW,GAGZ,MAAMoZ,EAAckoB,EAAc/B,OAAOf,cAAeN,GAIxD,GAAK9kB,EAGJ,YAYH,SACCA,EACAg1B,EACApuC,EACAshC,EACAvmE,EACAyyE,GAEA,MAAMvkC,EAAgB,QAASukC,EAAetxB,SAAWkyB,EAAU,QAAU,SAAWpuC,EAAW,SAAW,UAExG++B,EAAc3lB,EAAY9Q,aAAcW,GAAkBmQ,EAAYzmB,aAAcsW,GAAiBj0C,MAAO,KAAQ,GAG1H+pE,EAAY1nE,QAASm2E,EAAevzE,MAEpCqnE,EAActjC,OAAOtgC,aAAcurC,EAAe81B,EAAY5pE,KAAM,KAAOikD,GAC3EkoB,EAAc/B,OAAOd,oBAAqBrlB,EAAar+C,EAAKsjE,WAC7D,CA/BGkQ,CAAyBn1B,EAAag1B,EAASpuC,EAAUshC,EAAevmE,EAAMyyE,EAIhF,EAgCD,SACC9tD,EACA0uD,EACA9M,EACAvmE,EACAyyE,GAEA,MAAM5N,EAAkB,GAAI4N,EAAetxB,SAAWkyB,EAAU,QAAU,QAEpEtmC,EAAQ0lC,EAAevzE,KAAO,CAAE,KAAQuzE,EAAevzE,MAAS,KAChEm/C,EAAckoB,EAActjC,OAAOoY,gBAAiBwpB,EAAiB93B,GAE3Ew5B,EAActjC,OAAOrgC,OAAQ+hB,EAAU05B,GACvCkoB,EAAc/B,OAAOd,oBAAqBrlB,EAAar+C,EAAKsjE,WAC7D,CA1CCmQ,CAFqBlN,EAAc/B,OAAOD,eAAgB3B,GAErByQ,EAAS9M,EAAevmE,EAAMyyE,EACpE,CAozBA,SAASpD,GAA6B/5E,GASrC,MAJqB,iBAATA,IACXA,EAAQ,CAAE4J,KAAM5J,IAGV,CACN4J,KAAM5J,EAAM4J,KACZuD,WAAYnN,EAAMmN,WAAawqB,GAAS33B,EAAMmN,YAAe,GAC7D2S,WAAY9f,EAAM8f,SAEpB,CAwBA,SAASk6D,GACRz6C,EACA6+C,GAEA,MAAoB,mBAAR7+C,EAEJA,EAGC,CAAE8+C,EAAoBpN,IAOhC,SACCqN,EACArN,EACAmN,GAEqC,iBAAzBE,IAEXA,EAAwB,CAAE10E,KAAM00E,IAGjC,IAAI3/D,EACJ,MAAMq9D,EAAa/K,EAActjC,OAC3BxgC,EAAavO,OAAOsyB,OAAQ,CAAC,EAAGotD,EAAsBnxE,YAE5D,GAAwB,aAAnBixE,EACJz/D,EAAUq9D,EAAWv2B,uBAAwB64B,EAAsB10E,KAAMuD,QACnE,GAAwB,aAAnBixE,EAAiC,CAC5C,MAAMjyE,EAAU,CACfyI,SAAU0pE,EAAsB1pE,UAAY,GAAqB2pE,kBAGlE5/D,EAAUq9D,EAAW12B,uBAAwBg5B,EAAsB10E,KAAMuD,EAAYhB,EACtF,MAECwS,EAAUq9D,EAAWj2B,gBAAiBu4B,EAAsB10E,KAAMuD,GAGnE,GAAKmxE,EAAsBp7C,OAAS,CACnC,MAAMrkC,EAAOD,OAAOC,KAAMy/E,EAAsBp7C,QAEhD,UAAYvkC,KAAOE,EAClBm9E,EAAW51B,SAAUznD,EAAK2/E,EAAsBp7C,OAAQvkC,GAAOggB,EAEjE,CAEA,GAAK2/D,EAAsB3sC,QAAU,CACpC,MAAMA,EAAU2sC,EAAsB3sC,QAEtC,GAAuB,iBAAXA,EACXqqC,EAAWltC,SAAU6C,EAAShzB,QAE9B,UAAYw5B,KAAaxG,EACxBqqC,EAAWltC,SAAUqJ,EAAWx5B,EAGnC,CAEA,OAAOA,CACR,CAtDE6/D,CAAiCj/C,EAAM0xC,EAAemN,EACxD,CAuDA,SAAS1C,GAA+FnpD,GACvG,OAAKA,EAAOvyB,MAAMgT,OACR,CAAEyrE,EAA0BxN,EAAsCvmE,KAC1E,MAAM60B,EAAOhN,EAAOgN,KAAMk/C,GAE1B,OAAKl/C,EACGA,EAAMk/C,EAAqBxN,EAAevmE,GAG3C,IAAI,EAGL6nB,EAAOgN,IAEhB,CAQA,SAASs8C,GAA4Bt8C,GACpC,MAAoB,iBAARA,EACJk/C,IAAA,CAA2B9/E,IAAK4gC,EAAMn/B,MAAOq+E,IAC1B,iBAARl/C,EAEbA,EAAKn/B,MACF,IAAMm/B,EAINk/C,IAAA,CAA2B9/E,IAAK4gC,EAAK5gC,IAAKyB,MAAOq+E,IAIlDl/C,CAET,CAKA,SAASi9C,GACRF,EACA5xE,EAIAumE,GAGA,MAAMsL,EAA2C,mBAAvBD,EACzBA,EAAqB5xE,EAAMumE,GAC3BqL,EAED,OAAMC,GAKAA,EAAW3nE,WAChB2nE,EAAW3nE,SAAW,IAIjB2nE,EAAW90E,KAChB80E,EAAW90E,GAAKiD,EAAKsjE,YAGfuO,GAbC,IAcT,CAuCA,SAASnC,GAAqBp6E,GAC7B,MAAM0+E,EA9BP,SAAsC1+E,GACrC,MAAO,CAAE+G,EAAiB2mC,KACzB,IAAM3mC,EAAKoP,GAAI,UAAWnW,EAAM4J,MAC/B,OAAO,EAGR,GAAoB,aAAf8jC,EAAO36B,MACX,GAAK/S,EAAMmN,WAAW4sB,SAAU2T,EAAOuoB,cACtC,OAAO,OAIR,GAAKj2D,EAAM8f,SACV,OAAO,EAIT,OAAO,CAAK,CAEd,CAWuB6+D,CAA6B3+E,GAEnD,MAAO,CACNod,EACA1S,KAEA,MAAMk0E,EAAqD,GAErDl0E,EAAKm0E,sBACVn0E,EAAKm0E,oBAAsB,IAAIljE,KAGhC,UAAY+xB,KAAUhjC,EAAKgnE,QAAU,CAGpC,MAAM3qE,EAAsB,aAAf2mC,EAAO36B,KAAsB26B,EAAO/e,MAAM0J,MAAM4jB,UAAYvO,EAAOre,SAAS7oB,OAEzF,GAAMO,GAAS23E,EAAe33E,EAAM2mC,IAOpC,IAAMhjC,EAAKm0E,oBAAoBhpE,IAAK9O,GAAS,CAC5C2D,EAAKm0E,oBAAoB/oE,IAAK/O,GAE9B,MAAMsoB,EAAW,GAAcysB,cAAe/0C,GAC9C,IAAI+3E,EAAcF,EAAe1+E,OAKjC,QAAUkC,EAAIw8E,EAAe1+E,OAAS,EAAGkC,GAAK,EAAGA,IAAM,CACtD,MAAMsrC,EAASkxC,EAAgBx8E,GAEzB28E,GADgC,aAAfrxC,EAAO36B,KAAsB26B,EAAO/e,MAAM0J,MAAQqV,EAAOre,UACxCqtB,YAAartB,GAErD,GAAyB,UAApB0vD,GAA+C,UAAfrxC,EAAO36B,MAAwC,QAApBgsE,EAC/D,MAGDD,EAAc18E,CACf,CAEAw8E,EAAexvE,OAAQ0vE,EAAa,EAAG,CACtC/rE,KAAM,SACNnJ,KAAQ7C,EAAuB6C,KAC/BylB,WACAnvB,OAAQ,GACC,CACT6S,KAAM,WACNnJ,KAAQ7C,EAAuB6C,KAC/BylB,WACAnvB,OAAQ,GAEV,OAtCC0+E,EAAep3E,KAAMkmC,EAuCvB,CAEAhjC,EAAKgnE,QAAUkN,CAAc,CAE/B,CAUA,SAAS1E,GAAgBl6E,GACxB,MAAO,CAAE+G,EAAMwrE,EAAYpmE,EAAU,CAAC,KACrC,MAAMiN,EAAS,CAAE,UAGjB,UAAYw/B,KAAiB54C,EAAMmN,WAC7BpG,EAAKkxC,aAAcW,IACvBx/B,EAAO5R,KAAM,aAAcoxC,KAI7B,QAAMx/B,EAAOkF,OAAOhH,GAASi7D,EAAW1oE,KAAM9C,EAAMuQ,OAI9CnL,EAAQuuE,WACbthE,EAAO5T,SAAS8R,GAASi7D,EAAWpC,QAASppE,EAAMuQ,MAG7C,EAAI,CAEb,CAsHA,SAAS+jE,GACRtyB,EACAi2B,EACA/N,EACA9kE,GAGA,UAAY8yE,KAAkBD,EAEvBE,GAAcn2B,EAAY7qD,KAAM+gF,EAAgBhO,EAAe9kE,IAEpE8kE,EAAc0C,YAAasL,EAG9B,CAOA,SAASC,GACR5Y,EACA6Y,EACAlO,EACA9kE,GAEA,MAAM,OAAEwhC,EAAM,OAAEuhC,GAAW+B,EAG3B,IAAM9kE,EAAQknE,aACb,OAAO,EAGR,MAAM+L,EAAgBlQ,EAAOf,cAAegR,GAG5C,SAAMC,GAAiBA,EAAclhF,MAAQooE,OAKvC2K,EAAc6C,aAAcsL,KAKlCzxC,EAAOoZ,KACNpZ,EAAO2b,cAAe81B,GACtBlQ,EAAOD,eAAgB,GAAcnzB,cAAeqjC,MAG9C,GACR,CASA,SAASxB,GACR91E,EACA0qE,GACA,UAAEmI,GAAuC,CAAC,GAE1C,OAAKA,EACGnI,EAAW1oE,KAAMhC,EAAM,UAEvB0qE,EAAWpC,QAAStoE,EAAM,SAEnC,CClsFO,SAASw3E,GAAyB1xC,GACxC,MAAM,OAAEzL,EAAM,SAAE92B,GAAauiC,EAAO3tC,MAEpC,UAAY9B,KAAQkN,EAASk0E,WAC5B,GAAKphF,EAAKg2C,UAAYhS,EAAOq4C,WAAYr8E,EAAM,UAEzCgkC,EAAOq4C,WAAYr8E,EAAM,aAM7B,OALAyvC,EAAOssC,cAAe,YAAa/7E,IAK5B,EAKV,OAAO,CACR,CAUO,SAASqhF,GACflwD,EACAmwD,EACAt9C,GAEA,MAAM3sB,EAAU2sB,EAAOu9C,cAAepwD,GAGtC,QAAM6S,EAAOq4C,WAAYhlE,EAAS,gBAK5B2sB,EAAOq4C,WAAYhlE,EAAQ/N,KAAM,aAAeg4E,EAKvD,CAUO,SAASE,GAAiBrwD,EAAoBse,GACpD,MAAMgyC,EAAYhyC,EAAOzgC,cAAe,aAIxC,OAFAygC,EAAOrgC,OAAQqyE,EAAWtwD,GAEnBse,EAAOub,iBAAkBy2B,EAAW,EAC5C,CC9Ce,MAAMC,WAAsBnG,GAsDnC,gBAAAK,CAAkBvnD,GAKxB,OAAO3qB,KAAKkO,IAAK+pE,GAAwBttD,GAC1C,CAuFO,kBAAAutD,CAAoBvtD,GAQ1B,OAAO3qB,KAAKkO,IAscd,SAAmCyc,GAQlCA,EAAS,GAAWA,GAEpBwtD,GAA+BxtD,GAE/B,MAAMytD,EAAYC,GAA6B1tD,GAAe,GAExD4jC,EAAc+pB,GAA8B3tD,EAAOgN,MACnDhmB,EAAY48C,EAAc,WAAYA,IAA0B,UAEtE,OAAS+a,IACRA,EAAW75D,GAAwBkC,EAAWymE,EAAW,CAAEprE,SAAU2d,EAAO4nD,mBAAqB,OAAS,CAE5G,CA1dmBgG,CAA0B5tD,GAC5C,CA8HO,oBAAAqpD,CAAsBrpD,GAkB5B,OAAO3qB,KAAKkO,IA4Vd,SAAqCyc,GAepCA,EAAS,GAAWA,GAEpB,IAAI6tD,EAAyB,MAEF,iBAAf7tD,EAAOgN,MAAoBhN,EAAOgN,KAAK5gC,OAClDyhF,EA4QF,SAA+C7tD,GACnB,iBAAfA,EAAOgN,OAClBhN,EAAOgN,KAAO,CAAE5gC,IAAK4zB,EAAOgN,OAG7B,MAAM5gC,EAAc4zB,EAAOgN,KAAK5gC,IAC1ByB,OAAoC,IAArBmyB,EAAOgN,KAAKn/B,MAAuB,UAAYmyB,EAAOgN,KAAKn/B,MAChF,IAAIigF,EAEJ,GAAY,SAAP1hF,GAAyB,SAAPA,EAAiB,CACvC,MAAM2hF,EAAiB,SAAP3hF,EAAiB,UAAY,SAE7C0hF,EAAa,CACZ,CAAEC,GAAWlgF,EAEf,MACCigF,EAAa,CACZlzE,WAAY,CACX,CAAExO,GAAOyB,IAKPmyB,EAAOgN,KAAK31B,OAChBy2E,EAAWz2E,KAAO2oB,EAAOgN,KAAK31B,MAK/B,OAFA2oB,EAAOgN,KAAO8gD,EAEP1hF,CACR,CA1SY4hF,CAAsChuD,IAGjDwtD,GAA+BxtD,EAAQ6tD,GAEvC,MAAMJ,EAAYC,GAA6B1tD,GAAe,GAE9D,OAAS2+C,IACRA,EAAW75D,GAAwB,UAAW2oE,EAAW,CAAEprE,SAAU2d,EAAO4nD,mBAAqB,OAAS,CAE5G,CA1XmBqG,CAA4BjuD,GAC9C,CAqDO,eAAAkuD,CAAiBluD,GAKvB,OAAO3qB,KAAKkO,IA6Ud,SAAgCyc,GAK/B,MAAMvyB,EA4bP,SAA8CA,GAC7C,MAAO,CAAE+oD,EAAakoB,KACrB,MAAMjD,EAA6B,iBAAThuE,EAAoBA,EAAQA,EAAO+oD,EAAakoB,GAE1E,OAAOA,EAActjC,OAAOzgC,cAAe,UAAW,CAAE,YAAa8gE,GAAc,CAErF,CAlce0S,CAAqCnuD,EAAOvyB,OAE1D,OAAO6/E,GAAwB,IAAKttD,EAAQvyB,SAC7C,CArVmB2gF,CAAuBpuD,GACzC,CAyEO,YAAAquD,CAAcruD,GAKpB,OAAO3qB,KAAKkO,IA+Qd,SAA6Byc,GAK5BA,EAAS,GAAWA,GAGdA,EAAOvyB,QACZuyB,EAAOvyB,MAAQ4J,GACPA,EAAO2oB,EAAOgN,KAAO,IAAM31B,EAAO2oB,EAAOgN,MAIlD,MAAMshD,EAAmB,CACxBthD,KAAMhN,EAAOgN,KACbv/B,MAAOuyB,EAAOvyB,OAGT8gF,EAAiBC,GAA2BC,GAA6BH,EAAkB,UAC3FI,EAAeF,GAA2BC,GAA6BH,EAAkB,QAE/F,OAAS3P,IACRA,EAAW75D,GACV,WAAYkb,EAAOgN,aACnBuhD,EACA,CAAElsE,SAAU2d,EAAO4nD,mBAAqB,WAEzCjJ,EAAW75D,GACV,WAAYkb,EAAOgN,WACnB0hD,EACA,CAAErsE,SAAU2d,EAAO4nD,mBAAqB,WAezC,MAAM+G,EAAe,EAAWlsE,IAC1BmsE,EAAc,EAAWrsE,QACzBssE,EAAiB,EAAWpxE,IAAKuiB,EAAO4nD,mBAAsBgH,EAEpEjQ,EAAW75D,GACV,UAgBH,SAAkCkb,GAIjC,MAAO,CACNnV,EACA1S,EACAumE,KAEA,MAAM7uC,EAAW,QAAS7P,EAAOgN,OAqCjC,SAAS8hD,EAAmBhyD,EAAyBiyD,GACpD,UAAYC,KAAkBD,EAAkB,CAC/C,MAAMtT,EAAaz7C,EAAOvyB,MAAOuhF,EAAgBtQ,GAC3CtyD,EAAUsyD,EAActjC,OAAOzgC,cAAe,UAAW,CAAE,YAAa8gE,IAE9EiD,EAActjC,OAAOrgC,OAAQqR,EAAS0Q,GAEjC3kB,EAAK82E,YAAYv0D,QAASoC,GAC9B3kB,EAAK82E,YAAc92E,EAAK82E,YAAYnlC,aAAc,GAElD3xC,EAAK82E,YAAc92E,EAAK82E,YAAYhX,2BAA4Bn7C,EAAU,GAG3E3kB,EAAKskE,WAAatkE,EAAKskE,WAAYxE,2BAA4Bn7C,EAAU,GAAK,EAC/E,CACD,EA/CE4hD,EAAcsB,WAAW1oE,KAAMa,EAAK+2E,SAAU,CAAEt0E,WAAYi1B,EAAW,gBACvE6uC,EAAcsB,WAAW1oE,KAAMa,EAAK+2E,SAAU,CAAEt0E,WAAYi1B,EAAW,kBACvE6uC,EAAcsB,WAAW1oE,KAAMa,EAAK+2E,SAAU,CAAEt0E,WAAYi1B,EAAW,iBACvE6uC,EAAcsB,WAAW1oE,KAAMa,EAAK+2E,SAAU,CAAEt0E,WAAYi1B,EAAW,qBASnE13B,EAAKskE,YACVpwE,OAAOsyB,OAAQxmB,EAAMumE,EAAc2C,gBAAiBlpE,EAAK+2E,SAAU/2E,EAAK82E,cAGpEvQ,EAAcsB,WAAWpC,QAASzlE,EAAK+2E,SAAU,CAAEt0E,WAAYi1B,EAAW,gBAC9Ei/C,EAAmB32E,EAAKskE,WAAYr7B,IAAKjpC,EAAK+2E,SAASn/C,aAAcF,EAAW,cAAgBz9B,MAAO,MAGnGssE,EAAcsB,WAAWpC,QAASzlE,EAAK+2E,SAAU,CAAEt0E,WAAYi1B,EAAW,kBAC9Ei/C,EAAmB32E,EAAKskE,WAAYr7B,IAAKjpC,EAAK+2E,SAASn/C,aAAcF,EAAW,gBAAkBz9B,MAAO,MAGrGssE,EAAcsB,WAAWpC,QAASzlE,EAAK+2E,SAAU,CAAEt0E,WAAYi1B,EAAW,iBAC9Ei/C,EAAmB32E,EAAKskE,WAAY32C,MAAO3tB,EAAK+2E,SAASn/C,aAAcF,EAAW,eAAiBz9B,MAAO,MAGtGssE,EAAcsB,WAAWpC,QAASzlE,EAAK+2E,SAAU,CAAEt0E,WAAYi1B,EAAW,mBAC9Ei/C,EAAmB32E,EAAKskE,WAAY32C,MAAO3tB,EAAK+2E,SAASn/C,aAAcF,EAAW,iBAAmBz9B,MAAO,MAkB7G,CAEF,CA9EG+8E,CAAyBb,GACzB,CAAEjsE,SAAUssE,EAAeE,GAC3B,CAEH,CAvUmBO,CAAoBpvD,GACtC,EA4ID,SAASstD,GAAwBttD,GAOhC,MAAMytD,EAAYe,GAFlBxuD,EAAS,GAAWA,IAId4jC,EAAc+pB,GAA8B3tD,EAAOgN,MACnDhmB,EAAY48C,EAAc,WAAYA,IAA0B,UAEtE,OAAS+a,IACRA,EAAW75D,GAAwBkC,EAAWymE,EAAW,CAAEprE,SAAU2d,EAAO4nD,mBAAqB,UAAY,CAE/G,CA8PA,SAAS+F,GAA8B0B,GACtC,MAA0B,iBAAdA,EACJA,EAGkB,iBAAdA,GAAoD,iBAAnBA,EAAWh4E,KAChDg4E,EAAWh4E,KAGZ,IACR,CAQA,SAASm3E,GAA2BxuD,GAInC,MAAMgmB,EAAU,IAAIzH,GAASve,EAAOgN,MAEpC,MAAO,CACNniB,EACA1S,EACAumE,KAEA,MAAM4Q,EAAgBtpC,EAAQ9zC,MAAOiG,EAAK+2E,UAE1C,IAAMI,EACL,OAGD,MAAMp9E,EAAQo9E,EAAcp9E,MAK5B,GAFAA,EAAMmF,MAAO,GAEPqnE,EAAcsB,WAAW1oE,KAAMa,EAAK+2E,SAAUh9E,GACnD,OAGD,MAAMopE,EAwBR,SACC7tE,EACA8kB,EACAmsD,GAEA,OAAKjxE,aAAiBqf,SACdrf,EAAO8kB,EAAOmsD,GAEdA,EAActjC,OAAOzgC,cAAelN,EAE7C,CAlCuB8hF,CAAiBvvD,EAAOvyB,MAAO0K,EAAK+2E,SAAUxQ,GAE7DpD,GAIAoD,EAAc8Q,WAAYlU,EAAcnjE,EAAK82E,eAInDvQ,EAAcsB,WAAWpC,QAASzlE,EAAK+2E,SAAUh9E,GACjDwsE,EAAc2C,gBAAiBlpE,EAAK+2E,SAAU5T,GAC9CoD,EAAc+Q,uBAAwBnU,EAAcnjE,GAAM,CAE5D,CAuEA,SAASq1E,GAA+BxtD,EAAa0vD,EAAwC,MAC5F,MAAMC,EAA+C,OAA3BD,GACzB,CAAEl5B,GAA8BA,EAAYzmB,aAAc2/C,IAErDtjF,EAA6B,iBAAhB4zB,EAAOvyB,MAAoBuyB,EAAOvyB,MAAQuyB,EAAOvyB,MAAMrB,IACpEyB,EAA+B,iBAAhBmyB,EAAOvyB,YAAkD,IAAtBuyB,EAAOvyB,MAAMI,MAAuB8hF,EAAoB3vD,EAAOvyB,MAAMI,MAE7HmyB,EAAOvyB,MAAQ,CAAErB,MAAKyB,QACvB,CAUA,SAAS6/E,GACR1tD,EAOAkoB,GAEA,MAAMlC,EAAU,IAAIzH,GAASve,EAAOgN,MAEpC,MAAO,CACNniB,EACA1S,EACAumE,KAKA,IAAMvmE,EAAKskE,YAAcv0B,EACxB,OAGD,MAAMh2C,EAAQ8zC,EAAQ9zC,MAAOiG,EAAK+2E,UAGlC,IAAMh9E,EACL,OAYD,IA6CF,SAAgCm9E,EAAiBH,GAEhD,MAAMU,EAAoC,mBAAdP,EAA2BA,EAAYH,GAAaG,EAEhF,GAA4B,iBAAhBO,IAA6BjC,GAA8BiC,GACtE,OAAO,EAGR,OAAQA,EAAaxwC,UAAYwwC,EAAah1E,aAAeg1E,EAAaj/C,MAC3E,CA/DOk/C,CAAuB7vD,EAAOgN,KAAM70B,EAAK+2E,iBAKtCh9E,EAAMA,MAAMmF,KAJnBnF,EAAMA,MAAMmF,MAAO,GAQdqnE,EAAcsB,WAAW1oE,KAAMa,EAAK+2E,SAAUh9E,EAAMA,OACzD,OAGD,MAAM49E,EAAW9vD,EAAOvyB,MAAMrB,IACxB88E,EAAmD,mBAAtBlpD,EAAOvyB,MAAMI,MAC/CmyB,EAAOvyB,MAAMI,MAAOsK,EAAK+2E,SAAUxQ,GAAkB1+C,EAAOvyB,MAAMI,MAGnE,GAAoB,OAAfq7E,EACJ,OAKK/wE,EAAKskE,YAEVpwE,OAAOsyB,OAAQxmB,EAAMumE,EAAc2C,gBAAiBlpE,EAAK+2E,SAAU/2E,EAAK82E,cAIzE,MAAMc,EAgDR,SACCtT,EACAuT,EAIA9nC,EACAw2B,GAEA,IAAIlrE,GAAS,EAGb,UAAYgB,KAAQwB,MAAMrB,KAAM8nE,EAAW/wB,SAAU,CAAExD,aAEhDw2B,EAAc/uC,OAAOo3C,eAAgBvyE,EAAMw7E,EAAe5jF,OAMhEoH,GAAS,EAGJgB,EAAKkxC,aAAcsqC,EAAe5jF,MAIvCsyE,EAActjC,OAAOtgC,aAAck1E,EAAe5jF,IAAK4jF,EAAeniF,MAAO2G,IAG9E,OAAOhB,CACR,CA/E0By8E,CAAgB93E,EAAKskE,WAAa,CAAErwE,IAAK0jF,EAAUjiF,MAAOq7E,GAAchhC,EAASw2B,GAIpGqR,IAMCrR,EAAcsB,WAAW1oE,KAAMa,EAAK+2E,SAAU,CAAE73E,MAAM,MAC1DnF,EAAMA,MAAMmF,MAAO,GAGpBqnE,EAAcsB,WAAWpC,QAASzlE,EAAK+2E,SAAUh9E,EAAMA,OACxD,CAEF,CAgFA,SAASu8E,GACRzuD,EAIAxf,GASA,MAAO,CAENwsB,KAAM,GAAIhN,EAAOgN,QAAUxsB,IAC3B/S,MAVsD,CAAE+oD,EAAakoB,KACrE,MAAM/U,EAAWnT,EAAYzmB,aAAc,QACrC0rC,EAAaz7C,EAAOvyB,MAAOk8D,EAAU+U,GAE3C,OAAOA,EAActjC,OAAOzgC,cAAe,UAAW,CAAE,YAAa8gE,GAAc,EAQrF,CCnnCO,SAASyU,GAA0BziF,GACzCA,EAAMoL,SAASyiC,mBAAmBF,GAMnC,SAA6BA,EAAgB3tC,GAC5C,MAAMuoC,EAAYvoC,EAAMoL,SAASm9B,UAC3BrG,EAASliC,EAAMkiC,OAEf0b,EAAS,GAEf,IAAImF,GAAW,EAEf,UAAYisB,KAAczmC,EAAU2W,YAAc,CAGjD,MAAMwjC,EAAiBC,GAAgB3T,EAAY9sC,GAS9CwgD,IAAmBA,EAAez1D,QAAS+hD,IAC/CpxB,EAAOp2C,KAAMk7E,GACb3/B,GAAW,GAEXnF,EAAOp2C,KAAMwnE,EAEf,CAGKjsB,GACJpV,EAAOwX,aA0KF,SAAkCvH,GACxC,MAAMglC,EAAgB,IAAKhlC,GACrBilC,EAAuB,IAAIlnE,IACjC,IAAImnE,EAAoB,EAExB,KAAQA,EAAoBF,EAAc1iF,QAAS,CAClD,MAAM6iF,EAAeH,EAAeE,GAC9BE,EAAiBJ,EAAcl5E,MAAO,EAAGo5E,GAE/C,UAAcG,EAAoBC,KAAmBF,EAAehiE,UACnE,IAAK6hE,EAAqBhtE,IAAKotE,GAI/B,GAAKF,EAAa91D,QAASi2D,GAC1BL,EAAqB/sE,IAAKmtE,QACpB,GAAKF,EAAallC,eAAgBqlC,GAAkB,CAC1DL,EAAqB/sE,IAAKmtE,GAC1BJ,EAAqB/sE,IAAKgtE,GAE1B,MAAMK,EAAcJ,EAAarX,UAAWwX,GAC5CN,EAAcp7E,KAAM27E,EACrB,CAGDL,GACD,CAIA,OAF8BF,EAAcj1E,QAAQ,CAAE0G,EAAG7H,KAAYq2E,EAAqBhtE,IAAKrJ,IAGhG,CAzMuB42E,CAAyBxlC,GAAU,CAAE0C,SAAU/X,EAAU0W,aAG/E,OAAO,CACR,CAxC6CokC,CAAoB11C,EAAQ3tC,IACzE,CAgDO,SAAS2iF,GAAgBh0D,EAAcuT,GAC7C,OAAKvT,EAAMouB,YAeZ,SAAkCpuB,EAAcuT,GAC/C,MAAMohD,EAAmB30D,EAAM0J,MAEzBkrD,EAAwBrhD,EAAOk3C,yBAA0BkK,GAM/D,IAAMC,EAAwB,CAC7B,MAAMC,EAAiBF,EAAiBl0C,eAAej8B,UAAUgpB,MAAQt0B,GAA2Bq6B,EAAOi3C,SAAUtxE,KAErH,OAAK27E,EACG,GAAMhlC,UAAWglC,GAGlB,IACR,CAEA,IAAMD,EAAsBxmC,YAC3B,OAAOwmC,EAGR,MAAME,EAAgBF,EAAsBlrD,MAG5C,GAAKirD,EAAiBr2D,QAASw2D,GAC9B,OAAO,KAGR,OAAO,IAAI,GAAOA,EACnB,CA7CSC,CAAyB/0D,EAAOuT,GAqDzC,SAAoCvT,EAAcuT,GACjD,MAAM,MAAE7J,EAAK,IAAEsb,GAAQhlB,EAEjBg1D,EAAuBzhD,EAAOq4C,WAAYliD,EAAO,SACjDurD,EAAqB1hD,EAAOq4C,WAAY5mC,EAAK,SAE7CkwC,EAAoB3hD,EAAO4hD,gBAAiBzrD,GAC5C0rD,EAAkB7hD,EAAO4hD,gBAAiBnwC,GAGhD,GAAKkwC,IAAsBE,EAAkB,CAI5C,GAAKJ,GAAwBC,EAC5B,OAAO,KAQR,GAiEF,SAA2CvrD,EAAiBsb,EAAezR,GAC1E,MAAM8hD,EAAmB3rD,EAAM4jB,YAAc/Z,EAAOozC,QAASj9C,EAAM4jB,YAAiB/Z,EAAOq4C,WAAYliD,EAAO,SACxG4rD,EAAiBtwC,EAAIuI,aAAeha,EAAOozC,QAAS3hC,EAAIuI,aAAkBha,EAAOq4C,WAAY5mC,EAAK,SAGxG,OAAOqwC,GAAkBC,CAC1B,CAvEOC,CAAkC7rD,EAAOsb,EAAKzR,GAAW,CAC7D,MACMiiD,EAD0B9rD,EAAM4jB,WAAa/Z,EAAOkiD,aAAc/rD,EAAM4jB,WACjC,KAAO/Z,EAAOk3C,yBAA0B/gD,EAAO,WAGtFgsD,EADuB1wC,EAAIuI,YAAcha,EAAOkiD,aAAczwC,EAAIuI,YAChC,KAAOha,EAAOk3C,yBAA0BzlC,EAAK,YAG/E4X,EAAa44B,EAAaA,EAAW9rD,MAAQA,EAC7CmzB,EAAW64B,EAAWA,EAAS1wC,IAAMA,EAE3C,OAAO,IAAI,GAAO4X,EAAYC,EAC/B,CACD,CAEA,MAAM84B,EAAiBT,IAAsBA,EAAkB1tE,GAAI,eAC7DouE,EAAeR,IAAoBA,EAAgB5tE,GAAI,eAI7D,GAAKmuE,GAAkBC,EAAe,CACrC,MAAMC,EAAqBnsD,EAAM4jB,WAAatI,EAAIuI,YAAgB7jB,EAAM4jB,UAAUz1C,SAAWmtC,EAAIuI,WAAW11C,OAEtGi+E,EAAcH,KAAqBE,IAAqBJ,GAAc/rD,EAAM4jB,UAAW/Z,IACvFwiD,EAAYH,KAAmBC,IAAqBJ,GAAczwC,EAAIuI,WAAYha,IAIxF,IAAIiiD,EAAa9rD,EACbgsD,EAAW1wC,EAUf,OARK8wC,IACJN,EAAa,GAASroC,cAAe6oC,GAA4Bd,EAAmB3hD,KAGhFwiD,IACJL,EAAW,GAAS7oC,aAAcmpC,GAA4BZ,EAAiB7hD,KAGzE,IAAI,GAAOiiD,EAAYE,EAC/B,CAGA,OAAO,IACR,CArHQO,CAA2Bj2D,EAAOuT,EAC1C,CAyHA,SAASyiD,GAA4BE,EAAoB3iD,GACxD,IAAI4iD,EAAcD,EACdr+E,EAAkCs+E,EAGtC,KAAQ5iD,EAAOozC,QAAS9uE,IAAYA,EAAOA,QAC1Cs+E,EAAct+E,EACdA,EAASA,EAAOA,OAGjB,OAAOs+E,CACR,CAuDA,SAASV,GAAcr9E,EAAYm7B,GAClC,OAAOn7B,GAAQm7B,EAAOkiD,aAAcr9E,EACrC,CCnQe,MAAMg+E,WAA0C7pE,KAI9Clb,MAKAu/B,KAKA2vC,OAKA8V,mBAQhB,WAAAr7E,CAAa3J,EAAc+3C,GAC1BtiC,QAEA7N,KAAK5H,MAAQA,EACb4H,KAAK23B,KAAO,IAAI,GAAMwY,GACtBnwC,KAAKsnE,OAAS,IAAIrC,GAElBjlE,KAAKo9E,mBAAqB,IAAIlU,GAAoB,CACjD5B,OAAQtnE,KAAKsnE,OACbhtC,OAAQliC,EAAMkiC,SAGf,MAAMriB,EAAMjY,KAAK5H,MAAMoL,SACjBm9B,EAAY1oB,EAAI0oB,UAChB8oC,EAAUzpE,KAAK5H,MAAMqxE,QA+J7B,IAA0BnC,EAAgBhtC,EAAgB3C,EAxJxD33B,KAAK4P,SAA8B5P,KAAK5H,MAAO,kBAAkB,KAChE4H,KAAK23B,KAAKgoC,mBAAmB,EAAM,GACjC,CAAE3yD,SAAU,YAEfhN,KAAK4P,SAA6B5P,KAAK5H,MAAO,iBAAiB,KAC9D4H,KAAK23B,KAAKgoC,mBAAmB,EAAO,GAClC,CAAE3yD,SAAU,WAKfhN,KAAK4P,SAA+BqI,EAAK,UAAU,KAClDjY,KAAK23B,KAAKmO,QAAQC,IACjB/lC,KAAKo9E,mBAAmB7T,eAAgBtxD,EAAIuxD,OAAQC,EAAS1jC,GAC7D/lC,KAAKo9E,mBAAmBxS,iBAAkBjqC,EAAW8oC,EAAS1jC,EAAQ,GACpE,GACD,CAAE/4B,SAAU,QAGfhN,KAAK4P,SAA4C5P,KAAK23B,KAAKn0B,SAAU,kBFychE,SAAiCpL,EAAckvE,GACrD,MAAO,CACN9xD,EACA1S,KAEA,MAAM89C,EAAgB99C,EAAKy0D,aAErBvhB,EAA4B,GAElC,UAAYua,KAAa3P,EAActJ,YACtCtB,EAAOp2C,KAAM0nE,EAAOL,aAAc1W,IAGnC,MAAM8sB,EAAiBjlF,EAAMwpD,gBAAiB5L,EAAQ,CAAE0C,SAAUkI,EAAcvJ,aAE1EgmC,EAAeh4D,QAASjtB,EAAMoL,SAASm9B,YAC5CvoC,EAAM0tC,QAAQC,IACbA,EAAOwX,aAAc8/B,EAAgB,GAEvC,CAEF,CE7dGC,CAAwBt9E,KAAK5H,MAAO4H,KAAKsnE,SAI1CtnE,KAAK4P,SAAkC5P,KAAK23B,KAAKn0B,SAAU,eAgInC8jE,EA/HNtnE,KAAKsnE,OA+HiBhtC,EA/HTt6B,KAAK5H,MAAMkiC,OA+Hc3C,EA/HN33B,KAAK23B,KAgIjD,CAAEniB,EAAK1S,KAGb,IAAK60B,EAAKn0B,SAASyjC,aAAgB,EAAIh+B,UAIvC,QAAUzO,EAAI,EAAGA,EAAIsI,EAAK06D,aAAallE,OAAQkC,IAAM,CACpD,MAAM+1D,EAAYztD,EAAK06D,aAAchjE,GAC/B4sE,EAAaE,EAAOL,aAAc1W,GAClCuqB,EAAiBC,GAAgB3T,EAAY9sC,GAE7CwgD,IAAkBA,EAAez1D,QAAS+hD,KAIhDtkE,EAAK06D,aAAchjE,GAAM8sE,EAAOH,YAAa2T,GAC9C,IAhJC,CAAE9tE,SAAU,SAIbhN,KAAKo9E,mBAAmB3tE,GAAqD,gBJisBvE,CACN+F,EACA1S,EACAumE,KAEA,IAAMA,EAAcsB,WAAWpC,QAASzlE,EAAK7C,KAAMuV,EAAIxT,MACtD,OAGD,MAAMoyE,EAAa/K,EAActjC,OAC3B4W,EAAe0sB,EAAc/B,OAAOD,eAAgBvkE,EAAKikB,MAAM0J,OAC/Dg4B,EAAW2rB,EAAW32B,WAAY36C,EAAK7C,KAAK6C,MAElDsxE,EAAW1uE,OAAQi3C,EAAc8L,EAAU,GI9sBgE,CAAEz7C,SAAU,WACvHhN,KAAKo9E,mBAAmB3tE,GAAyB,UJutB3C,CACN+F,EACA1S,EACAumE,KAEAA,EAAc4C,kBAAmBnpE,EAAK7C,MAIhC6C,EAAK2oE,eAAgB3oE,EAAK7C,KAAKsO,GAAI,YAAgBzL,EAAK7C,KAAKqsC,SAClE+8B,EAAc2C,gBAAiBlpE,EAAK7C,KACrC,GIluB0F,CAAE+M,SAAU,WACtGhN,KAAKo9E,mBAAmB3tE,GAAyB,UJ+uB3C,CACN+F,EACA1S,EACAumE,KAGA,MAAM3X,EAAY2X,EAAc/B,OAAOD,eAAgBvkE,EAAK2kB,UAEtD81D,EAAWz6E,EAAK2kB,SAASgtB,aAAc3xC,EAAKxK,QAC5Cq5D,EAAU0X,EAAc/B,OAAOD,eAAgBkW,EAAU,CAAEhW,WAAW,IAEtEhX,EAAY8Y,EAActjC,OAAO0b,YAAaiQ,EAAWC,GAGzD39B,EAAUq1C,EAActjC,OAAO9/B,OAAQsqD,EAAUjb,cAIvD,UAAYh9B,KAAS+wD,EAActjC,OAAO4b,cAAe3tB,GAAUqiB,WAClEgzB,EAAc/B,OAAOpB,kBAAmB5tD,EAAsB,CAAE+tD,OAAO,GACxE,GInwBqE,CAAEr5D,SAAU,QAGjFhN,KAAKo9E,mBAAmB3tE,GAAiC,kBJ84BnD,CACN+F,EACA1S,EACAumE,KAEA,MAAM+K,EAAa/K,EAActjC,OAC3B6a,EAAgBwzB,EAAW5wE,SAASm9B,UAE1C,UAAY5Z,KAAS65B,EAActJ,YAE7BvwB,EAAMouB,aAEHpuB,EAAMglB,IAAIntC,OAAqBioC,cACrCwiC,EAActjC,OAAOqZ,gBAAiBr4B,EAAM0J,OAK/C2jD,EAAW72B,aAAc,KAAM,II/5B/Bv9C,KAAKo9E,mBAAmB3tE,GAA4B,aJoyB9C,CACN+F,EACA1S,EACAumE,KAEA,MAAM1oC,EAAY79B,EAAK69B,UAEvB,GAAKA,EAAUwU,YACd,OAGD,IAAMk0B,EAAcsB,WAAWpC,QAAS5nC,EAAW,aAClD,OAGD,MAAM6wB,EAA+B,GAErC,UAAYzqC,KAAS4Z,EAAU2W,YAC9Bka,EAAW5xD,KAAMypE,EAAc/B,OAAOH,YAAapgD,IAGpDsiD,EAActjC,OAAOwX,aAAciU,EAAY,CAAE9Y,SAAU/X,EAAU0W,YAAc,GIzzBO,CAAErqC,SAAU,QACtGhN,KAAKo9E,mBAAmB3tE,GAA4B,aJu1B9C,CACN+F,EACA1S,EACAumE,KAEA,MAAM1oC,EAAY79B,EAAK69B,UAEvB,IAAMA,EAAUwU,YACf,OAGD,IAAMk0B,EAAcsB,WAAWpC,QAAS5nC,EAAW,aAClD,OAGD,MAAMyzC,EAAa/K,EAActjC,OAC3B2/B,EAAgB/kC,EAAUE,mBAC1B8b,EAAe0sB,EAAc/B,OAAOD,eAAgB3B,GACpD8X,EAAiBpJ,EAAWx1B,gBAAiBjC,GAEnDy3B,EAAW72B,aAAcigC,EAAgB,GI32BqD,CAAExwE,SAAU,QAK1GhN,KAAK23B,KAAKn0B,SAASs3C,MAAMzmC,OAAQrU,KAAK5H,MAAMoL,SAASs3C,OAAQjmB,OAAOv+B,IAEnE,GAAsB,cAAjBA,EAAKwqC,SACT,OAAO,KAGR,MAAM49B,EAAW,IAAIlsB,GAAqBxyC,KAAK23B,KAAKn0B,SAAUlN,EAAK0L,MAKnE,OAHA08D,EAAS59B,SAAWxqC,EAAKwqC,SACzB9gC,KAAKsnE,OAAOpf,aAAc5xD,EAAMooE,GAEzBA,CAAQ,GAYjB,CAMO,OAAAz2C,GACNjoB,KAAK23B,KAAK1P,UACVjoB,KAAK+P,eACN,CAqCO,eAAA0tE,CAAiBC,GACvB,MAAMtX,EAAoC,iBAAhBsX,EAA2BA,EAAeA,EAAa17E,KAC3E27E,EAAgB39E,KAAK5H,MAAMqxE,QAAQrhE,IAAKg+D,GAE9C,IAAMuX,EAOL,MAAM,IAAIjwE,EAAe,qDAAsD1N,KAAM,CAAEomE,eAGxFpmE,KAAK5H,MAAM0tC,QAAQ,KAClB9lC,KAAK5H,MAAMqxE,QAAQmU,SAAUD,EAAe,GAE9C,CAYO,aAAAE,CAAe59E,GACrBD,KAAK5H,MAAM0tC,QAAQ,KAClB9lC,KAAK5H,MAAMoL,SAASgmE,OAAOsU,aAAc79E,EAAM,GAEjD,EC9Mc,MAAM89E,GAOZ7vC,aAAe,IAAIx8B,IAqDpB,GAAAxD,CACN6I,EACA4xD,GAEA,IAAIqV,EAGCjnE,EAAQxI,GAAI,UAAawI,EAAQxI,GAAI,oBACzCvO,KAAKkuC,aAAat8B,IAAKmF,GAAS,IAM3B/W,KAAKkuC,aAAajgC,IAAK8I,GAI5BinE,EAAqBh+E,KAAKkuC,aAAa9lC,IAAK2O,IAH5CinE,EAAqB,IAAIC,GAAwBlnE,GACjD/W,KAAKkuC,aAAat8B,IAAKmF,EAASinE,IAKjCA,EAAmB9vE,IAAKy6D,GACzB,CAkCO,IAAA1mE,CAAM8U,EAAkC4xD,GAC9C,MAAMqV,EAAqBh+E,KAAKkuC,aAAa9lC,IAAK2O,GAElD,YAA4B,IAAvBinE,EACG,KAIHjnE,EAAQxI,GAAI,UAAawI,EAAQxI,GAAI,oBAClCyvE,EAICA,EAA+C/7E,KAAM0mE,EAC/D,CAiCO,OAAAJ,CAASxxD,EAAkC4xD,GACjD,QAAK3oE,KAAKiC,KAAM8U,EAAS4xD,KACnB5xD,EAAQxI,GAAI,UAAawI,EAAQxI,GAAI,oBAEzCvO,KAAKkuC,aAAat8B,IAAKmF,GAAS,GAG9B/W,KAAKkuC,aAAa9lC,IAAK2O,GAAsCwxD,QAASI,IAGlE,EAIT,CAiCO,MAAA5vC,CAAQhiB,EAAe4xD,GAC7B,MAAMqV,EAAqBh+E,KAAKkuC,aAAa9lC,IAAK2O,QAEtB,IAAvBinE,IACCjnE,EAAQxI,GAAI,UAAawI,EAAQxI,GAAI,oBAEzCvO,KAAKkuC,aAAat8B,IAAKmF,GAAS,GAG9BinE,EAA+CjlD,OAAQ4vC,GAG5D,CAMA,6BAAcuV,CAAwBnnE,GACrC,MAAM4xD,EAAc,CACnB5xD,UACA/U,MAAM,EACNuD,WAAY,GACZwkC,QAAS,GACTzO,OAAQ,IAGH/1B,EAAawR,EAAQ6yB,mBAE3B,UAAYrzB,KAAahR,EAEN,SAAbgR,GAAqC,SAAbA,GAI7BoyD,EAAYpjE,WAAW3F,KAAM2W,GAG9B,MAAMwzB,EAAUhzB,EAAQizB,gBAExB,UAAYuG,KAAaxG,EACxB4+B,EAAY5+B,QAAQnqC,KAAM2wC,GAG3B,MAAMjV,EAASvkB,EAAQmzB,gBAEvB,UAAY7kC,KAASi2B,EACpBqtC,EAAYrtC,OAAO17B,KAAMyF,GAG1B,OAAOsjE,CACR,CAWA,iBAAcwV,CAAY7+E,EAA+B8+E,GAKxD,GAJMA,IACLA,EAAW,IAAIL,IAGXz+E,EAAKiP,GAAI,SAGb,OAFA6vE,EAASlwE,IAAK5O,GAEP8+E,EAIH9+E,EAAKiP,GAAI,YACb6vE,EAASlwE,IAAK5O,EAAMy+E,GAAeG,uBAAwB5+E,IAGvDA,EAAKiP,GAAI,qBACb6vE,EAASlwE,IAAK5O,GAGf,UAAYgZ,KAAWhZ,EAAqCwnC,cAC3Ds3C,EAAWL,GAAeI,WAAY7lE,EAAO8lE,GAG9C,OAAOA,CACR,EA0BD,MAAMC,GAAmB,CAAE,aAAc,UAAW,UAQ7C,MAAMJ,GACIlnE,QAKRunE,gBAKSpwC,aAOjB,WAAAnsC,CAAazC,GACZU,KAAK+W,QAAUzX,EACfU,KAAKs+E,gBAAkB,KACvBt+E,KAAKkuC,aAAe,CACnB3oC,WAAY,IAAImM,IAChB4pB,OAAQ,IAAI5pB,IACZq4B,QAAS,IAAIr4B,IAEf,CA2BO,GAAAxD,CAAKy6D,GACNA,EAAY3mE,OAChBhC,KAAKs+E,iBAAkB,GAGxB,UAAYnzE,KAAQkzE,GACdlzE,KAAQw9D,GACZ3oE,KAAKsjC,KAAMn4B,EAAMw9D,EAAax9D,GAGjC,CA0BO,IAAAlJ,CAAM0mE,GAEZ,GAAKA,EAAY3mE,OAAShC,KAAKs+E,gBAC9B,OAAOt+E,KAAKs+E,gBAGb,UAAYnzE,KAAQkzE,GACnB,GAAKlzE,KAAQw9D,EAAc,CAC1B,MAAMnwE,EAAQwH,KAAKu+E,MAAOpzE,EAAMw9D,EAAax9D,IAE7C,IAAe,IAAV3S,EACJ,OAAOA,CAET,CAID,OAAO,CACR,CAwBO,OAAA+vE,CAASI,GACVA,EAAY3mE,OAChBhC,KAAKs+E,iBAAkB,GAGxB,UAAYnzE,KAAQkzE,GACdlzE,KAAQw9D,GACZ3oE,KAAKw+E,SAAUrzE,EAAMw9D,EAAax9D,GAGrC,CAuBO,MAAA4tB,CAAQ4vC,GACTA,EAAY3mE,OAChBhC,KAAKs+E,iBAAkB,GAGxB,UAAYnzE,KAAQkzE,GACdlzE,KAAQw9D,GACZ3oE,KAAKy+E,QAAStzE,EAAMw9D,EAAax9D,GAGpC,CAWQ,IAAAm4B,CAAMn4B,EAAsBlL,GACnC,MAAM2zB,EAAQ7D,GAAS9vB,GACjB0oE,EAAc3oE,KAAKkuC,aAAc/iC,GAEvC,UAAYnJ,KAAQ4xB,EAAQ,CAC3B,GAAc,eAATzoB,IAAoC,UAATnJ,GAA6B,UAATA,GAmBnD,MAAM,IAAI0L,EAAe,mCAAoC1N,MAK9D,GAFA2oE,EAAY/2D,IAAK5P,GAAM,GAET,WAATmJ,EACJ,UAAYgkC,KAAYnvC,KAAK+W,QAAQvT,SAAS2sC,gBAAgBzB,iBAAkB1sC,GAC/E2mE,EAAY/2D,IAAKu9B,GAAU,EAG9B,CACD,CAUQ,KAAAovC,CAAOpzE,EAAsBlL,GACpC,MAAM2zB,EAAQ7D,GAAS9vB,GACjB0oE,EAAc3oE,KAAKkuC,aAAc/iC,GAEvC,UAAYnJ,KAAQ4xB,EACnB,GAAc,eAATzoB,GAAoC,UAATnJ,GAA6B,UAATA,EAS7C,CACN,MAAMxJ,EAAQmwE,EAAYvgE,IAAKpG,GAE/B,QAAe,IAAVxJ,EACJ,OAAO,KAGR,IAAMA,EACL,OAAO,CAET,KAnByE,CACxE,MAAMkmF,EAAyB,SAAR18E,EAAkB,UAAY,SAG/CxJ,EAAQwH,KAAKu+E,MAAOG,EAAgB,IAAK1+E,KAAKkuC,aAAcwwC,GAAiBznF,SAEnF,IAAe,IAAVuB,EACJ,OAAOA,CAET,CAaD,OAAO,CACR,CAQQ,QAAAgmF,CAAUrzE,EAAsBlL,GACvC,MAAM2zB,EAAQ7D,GAAS9vB,GACjB0oE,EAAc3oE,KAAKkuC,aAAc/iC,GAEvC,UAAYnJ,KAAQ4xB,EACnB,GAAc,eAATzoB,GAAoC,UAATnJ,GAA6B,UAATA,GAQnD,GAFA2mE,EAAY/2D,IAAK5P,GAAM,GAEV,UAARmJ,EACJ,UAAYwzE,KAAa3+E,KAAK+W,QAAQvT,SAAS2sC,gBAAgBzB,iBAAkB1sC,GAChF2mE,EAAY/2D,IAAK+sE,GAAW,OAV0C,CACxE,MAAMD,EAAyB,SAAR18E,EAAkB,UAAY,SAGrDhC,KAAKw+E,SAAUE,EAAgB,IAAK1+E,KAAKkuC,aAAcwwC,GAAiBznF,QACzE,CAUF,CAQQ,OAAAwnF,CAAStzE,EAAsBlL,GACtC,MAAM2zB,EAAQ7D,GAAS9vB,GACjB0oE,EAAc3oE,KAAKkuC,aAAc/iC,GAEvC,UAAYnJ,KAAQ4xB,EACnB,GAAc,eAATzoB,GAAoC,UAATnJ,GAA6B,UAATA,EAK7C,EAGS,IAFD2mE,EAAYvgE,IAAKpG,IAG9B2mE,EAAY/2D,IAAK5P,GAAM,EAEzB,KAXyE,CACxE,MAAM08E,EAAyB,SAAR18E,EAAkB,UAAY,SAGrDhC,KAAKy+E,QAASC,EAAgB,IAAK1+E,KAAKkuC,aAAcwwC,GAAiBznF,QACxE,CAQF,ECxoBc,MAAM2nF,WAA+BtrE,KAClCurE,mBAAkE,CAAC,EAKnEC,qBAA4D,CAAC,EACtEC,qBAKR,WAAAh9E,GACC8L,QAEA7N,KAAKoV,SAAU,cACfpV,KAAKoV,SAAU,kBAEfpV,KAAKyP,GAAI,kBAAkB,CAAE+F,EAAKtZ,KACjCA,EAAM,GAAM,IAAI8iF,GAAe9iF,EAAM,GAAK,GACxC,CAAE8Q,SAAU,YAEfhN,KAAKyP,GAAI,cAAc,CAAE+F,EAAKtZ,KAC7BA,EAAM,GAAM,IAAI8iF,GAAe9iF,EAAM,IACrCA,EAAM,GAAM8D,KAAKi/E,cAAe/iF,EAAM,GAAK,GACzC,CAAE8Q,SAAU,WAChB,CAWO,QAAAkyE,CAAUC,EAAkBj3E,GAClC,GAAKlI,KAAK6+E,mBAAoBM,GAoB7B,MAAM,IAAIzxE,EACT,oCACA1N,KACA,CACCm/E,aAKHn/E,KAAK6+E,mBAAoBM,GAAa,CACrCnoF,OAAOsyB,OAAQ,CAAC,EAAGphB,IAGpBlI,KAAKo/E,aACN,CAyBO,MAAA1lD,CAAQylD,EAAkBj3E,GAChC,IAAMlI,KAAK6+E,mBAAoBM,GAU9B,MAAM,IAAIzxE,EAAe,oCAAqC1N,KAAM,CACnEm/E,aAIFn/E,KAAK6+E,mBAAoBM,GAAWv/E,KAAM5I,OAAOsyB,OAAQ,CAAC,EAAGphB,IAE7DlI,KAAKo/E,aACN,CAUO,cAAAC,GAKN,OAJMr/E,KAAK++E,sBACV/+E,KAAKs/E,WAGCt/E,KAAK++E,oBACb,CAUO,aAAAE,CAAeh/E,GACrB,IAAIk/E,EAYJ,OATCA,EADmB,iBAARl/E,EACAA,EACA,OAAQA,IAAUA,EAAKsO,GAAI,UAAatO,EAAKsO,GAAI,eACjD,QAIEtO,EAAc+B,KAGrBhC,KAAKq/E,iBAAkBF,EAC/B,CAWO,YAAAI,CAAct/E,GACpB,QAASD,KAAKi/E,cAAeh/E,EAC9B,CAiBO,OAAAstE,CAASttE,GACf,MAAMw4B,EAAMz4B,KAAKi/E,cAAeh/E,GAEhC,SAAWw4B,IAAOA,EAAI80C,QACvB,CAqBO,OAAAG,CAASztE,GACf,MAAMw4B,EAAMz4B,KAAKi/E,cAAeh/E,GAEhC,QAAMw4B,MAIKA,EAAIi1C,UAAWj1C,EAAI84C,SAC/B,CAqBO,QAAAA,CAAUtxE,GAChB,MAAMw4B,EAAMz4B,KAAKi/E,cAAeh/E,GAEhC,QAAMw4B,MAMKA,EAAI84C,UAAc94C,EAAIi1C,SAAWj1C,EAAI+jD,cAAgB/jD,EAAI+mD,UACrE,CAiBO,QAAA/N,CAAUxxE,GAChB,MAAMw4B,EAAMz4B,KAAKi/E,cAAeh/E,GAEhC,SAAWw4B,IAAOA,EAAIg5C,SACvB,CAmBO,YAAA+K,CAAcv8E,GACpB,MAAMw4B,EAAMz4B,KAAKi/E,cAAeh/E,GAEhC,QAAMw4B,MAIKA,EAAI+jD,eAAgB/jD,EAAI84C,SACpC,CAmBO,SAAAiO,CAAWv/E,GACjB,MAAMw4B,EAAMz4B,KAAKi/E,cAAeh/E,GAEhC,QAAMw4B,MAIKA,EAAI+mD,YAAa/mD,EAAI84C,SACjC,CAuBO,UAAAoB,CAAYhlE,EAAkC8qB,GAEpD,QAAMA,GAICz4B,KAAKy/E,mBAAoBhnD,EAAY9qB,EAC7C,CAkBO,cAAA+jE,CAAgB/jE,EAAkCqjC,GACxD,MAAMvY,EAAMz4B,KAAKi/E,cAAiBtxE,EAAiB+lB,MAEnD,QAAM+E,GAICA,EAAIinD,gBAAgBvtD,SAAU6e,EACtC,CAgBO,UAAA2uC,CAAYC,EAA2CC,GAC7D,GAAKD,aAAiC,GAAW,CAChD,MAAMtrC,EAAasrC,EAAsBtrC,WACnCD,EAAYurC,EAAsBvrC,UAExC,KAAQC,aAAsB,IAM7B,MAAM,IAAI5mC,EACT,uCACA1N,MAIF,KAAQq0C,aAAqB,IAM5B,MAAM,IAAI3mC,EACT,sCACA1N,MAIF,OAAOA,KAAK2/E,WAAYrrC,EAAYD,EACrC,CAEA,UAAY/7B,KAASunE,EAAe/4C,cACnC,IAAM9mC,KAAK2yE,WAAYiN,EAAuBtnE,GAC7C,OAAO,EAIT,OAAO,CACR,CA6CO,aAAAwnE,CAAenwE,GACrB3P,KAAKyP,GAA2B,cAAc,CAAE+F,GAAO8e,EAAK8I,MAI3D,IAAMA,EACL,OAGD,MAAM2iD,EAAWpwE,EAAU2kB,EAAK8I,GAER,kBAAZ2iD,IACXvqE,EAAInJ,OACJmJ,EAAIjJ,OAASwzE,EACd,GACE,CAAE/yE,SAAU,QAChB,CA6CO,iBAAAgzE,CAAmBrwE,GACzB3P,KAAKyP,GAA+B,kBAAkB,CAAE+F,GAAO8e,EAAK0c,MACnE,MAAM+uC,EAAWpwE,EAAU2kB,EAAK0c,GAER,kBAAZ+uC,IACXvqE,EAAInJ,OACJmJ,EAAIjJ,OAASwzE,EACd,GACE,CAAE/yE,SAAU,QAChB,CA8CO,sBAAAizE,CAAwBjvC,EAAuBv9B,GACrDzT,KAAK8+E,qBAAsB9tC,GAAkBh6C,OAAOsyB,OAAQtpB,KAAK2xE,uBAAwB3gC,GAAiBv9B,EAC3G,CAOO,sBAAAk+D,CAAwB3gC,GAC9B,OAAOhxC,KAAK8+E,qBAAsB9tC,IAAmB,CAAC,CACvD,CASO,eAAAkrC,CAAiBgE,GACvB,IAAInpE,EAEJ,GAAKmpE,aAAsC,GAC1CnpE,EAAUmpE,EAA2BthF,WAC/B,CAMNmY,GALempE,aAAsC,GACpD,CAAEA,GACFv/E,MAAMrB,KAAM4gF,EAA2B5oC,cAItC3oB,QAAwB,CAAE5X,EAASgQ,KACnC,MAAMo5D,EAAsBp5D,EAAM6gB,oBAElC,OAAM7wB,EAICA,EAAQ6wB,kBAAmBu4C,EAAgC,CAAEz4C,aAAa,IAHzEy4C,CAGiF,GACvF,KACL,CAEA,MAASngF,KAAK0tE,QAAS32D,IACjBA,EAAQnY,QACZmY,EAAUA,EAAQnY,OAMpB,OAAOmY,CACR,CAYO,yBAAAqpE,CAA2Bz/C,EAA0CpqB,GAC3E,GAAKoqB,EAAUwU,YAAc,CAC5B,MACMxnC,EAAU,IADMgzB,EAAUE,mBAEd2G,eACjB,IAAI,GAAM,GAAI7G,EAAUyP,kBAIzB,OAAOpwC,KAAK0xE,eAAgB/jE,EAAS4I,EACtC,CAAO,CACN,MAAMy/B,EAASrV,EAAU2W,YAGzB,UAAYvwB,KAASivB,EACpB,UAAYx9C,KAASuuB,EACpB,GAAK/mB,KAAK0xE,eAAgBl5E,EAAMyH,KAAMsW,GAErC,OAAO,CAIX,CAGA,OAAO,CACR,CASA,eAAQ8pE,CAAgBrqC,EAAyBz/B,GAChDy/B,EAi4CF,UAAsCA,GACrC,UAAYjvB,KAASivB,QACbjvB,EAAMi9C,sBAEf,CAr4CWsc,CAA4BtqC,GAErC,UAAYjvB,KAASivB,QACbh2C,KAAKugF,wBAAyBx5D,EAAOxQ,EAE9C,CAsBO,wBAAAi7D,CAA0B/pD,EAAoBjB,EAA6C,QACjG,GAA+B,cAA1BiB,EAASnxB,KAAKwqC,SAGlB,OAAO,KAIR,GAAK9gC,KAAK2yE,WAAYlrD,EAAU,SAC/B,OAAO,IAAI,GAAOA,GAGnB,IAAI+4D,EAAgBC,EAGpB,MAAMC,EAAiBj5D,EAAS+f,eAAmCj8B,UAAUgpB,MAAMt0B,GAAQD,KAAK0tE,QAASztE,MACxGwnB,EAASnxB,KAEQ,QAAbkwB,GAAoC,YAAbA,IAC3Bg6D,EAAiB,IAAI,GAAY,CAChC7tC,WAAY,GAAMgE,UAAW+pC,GAC7BxtC,cAAezrB,EACfjB,UAAW,cAIK,QAAbA,GAAoC,WAAbA,IAC3Bi6D,EAAgB,IAAI,GAAY,CAC/B9tC,WAAY,GAAMgE,UAAW+pC,GAC7BxtC,cAAezrB,KAIjB,UAAY3kB,KA8xCd,UAA0B41C,EAAkCioC,GAC3D,IAAIp/E,GAAO,EAEX,MAASA,GAAO,CAGf,GAFAA,GAAO,EAEFm3C,EAAW,CACf,MAAMkoC,EAAOloC,EAASp3C,OAEhBs/E,EAAKr/E,OACVA,GAAO,OACD,CACL++C,OAAQ5H,EACRlgD,MAAOooF,EAAKpoF,OAGf,CAEA,GAAKmoF,EAAU,CACd,MAAMC,EAAOD,EAAQr/E,OAEfs/E,EAAKr/E,OACVA,GAAO,OACD,CACL++C,OAAQqgC,EACRnoF,MAAOooF,EAAKpoF,OAGf,CACD,CACD,CA5zCsBqoF,CAAgBL,EAAgBC,GAAkB,CACrE,MAAMt1E,EAASrI,EAAKw9C,QAAUkgC,EAAiB,aAAe,eACxDhoF,EAAQsK,EAAKtK,MAEnB,GAAKA,EAAM2S,MAAQA,GAAQnL,KAAKuxE,SAAU/4E,EAAMyH,MAC/C,OAAO,GAAM22C,UAAWp+C,EAAMyH,MAG/B,GAAKD,KAAK2yE,WAAYn6E,EAAM47C,aAAc,SACzC,OAAO,IAAI,GAAO57C,EAAM47C,aAE1B,CAEA,OAAO,IACR,CAYO,iBAAA0sC,CAAmBr5D,EAAoBtoB,GAC7C,IAAIP,EAAS6oB,EAAS7oB,OAEtB,KAAQA,GAAS,CAChB,GAAKoB,KAAK2yE,WAAY/zE,EAAQO,GAC7B,OAAOP,EAIR,GAAKoB,KAAK0tE,QAAS9uE,GAClB,OAAO,KAGRA,EAASA,EAAOA,MACjB,CAEA,OAAO,IACR,CASO,oBAAAmiF,CACN5hF,EACAoG,EACAwgC,GAEA,MAAM3tC,EAAQ2tC,EAAO3tC,MAErB,UAAc44C,EAAesd,KAAoBt3D,OAAOoiB,QAAS7T,GAC3DnN,EAAMkiC,OAAOo3C,eAAgBvyE,EAAM6xC,IACvCjL,EAAOtgC,aAAcurC,EAAesd,EAAgBnvD,EAGvD,CAOO,0BAAA6hF,CAA4B1vC,EAAuBvL,GACzD,UAAY5mC,KAAQmyC,EAEnB,GAAKnyC,EAAKoP,GAAI,SACb0yE,GAAmCjhF,KAAMb,EAAM4mC,OAM3C,CACJ,MACMm7C,EADc,GAAMvqC,UAAWx3C,GACAm3C,eAErC,UAAY7uB,KAAYy5D,EAAmB,CAG1CD,GAAmCjhF,KAFtBynB,EAAS6sB,YAAc7sB,EAAS7oB,OAESmnC,EACvD,CACD,CAEF,CAYO,yBAAAo7C,CAA2BhiF,EAAY+U,EAAsByC,GACnE,MAAMpR,EAAsC,CAAC,EAE7C,UAAcyrC,EAAesd,KAAoBnvD,EAAKixC,gBAAkB,CACvE,MAAMgxC,EAAsBphF,KAAK2xE,uBAAwB3gC,QAEZ,IAAxCowC,EAAqBltE,UAIH,IAAlByC,GAA+BA,IAAkByqE,EAAqBltE,KAC1E3O,EAAYyrC,GAAkBsd,GAEhC,CAEA,OAAO/oD,CACR,CAKO,aAAAsyE,CAAelqE,GACrB,OAAO,IAAIqxE,GAAerxE,EAC3B,CAEQ,WAAAyxE,GACPp/E,KAAK++E,qBAAuB,IAC7B,CAEQ,QAAAO,GACP,MAAM+B,EAA4E,CAAC,EAC7EC,EAActhF,KAAK6+E,mBACnB0C,EAAYvqF,OAAOC,KAAMqqF,GAE/B,UAAYnC,KAAYoC,EACvBF,EAAqBlC,GAAaqC,GAAqBF,EAAanC,GAAYA,GAGjF,UAAYA,KAAYoC,EACvBE,GAAsBJ,EAAqBlC,GAG5C,UAAYA,KAAYoC,EACvBG,GAAuBL,EAAqBlC,GAG7C,UAAYA,KAAYoC,EACvBI,GAAmBN,EAAqBlC,GAGzC,UAAYA,KAAYoC,EACvBK,GAA0BP,EAAqBlC,GAC/C0C,GAA8BR,EAAqBlC,GAGpD,UAAYA,KAAYoC,EACvBO,GAAgBT,EAAqBlC,GACrC4C,GAAoBV,EAAqBlC,GACzC6C,GAAwBX,EAAqBlC,GAG9Cn/E,KAAK++E,qBAAuBsC,CAC7B,CAEQ,kBAAA5B,CACPhnD,EACA9qB,EACAs0E,EAA2Bt0E,EAAQrV,OAAS,GAE5C,MAAM4pF,EAAcv0E,EAAQw0E,QAASF,GAErC,GAAKxpD,EAAI2pD,QAAQjwD,SAAU+vD,EAAYlgF,MAAS,CAC/C,GAAyB,GAApBigF,EACJ,OAAO,EACD,CACN,MAAMI,EAAariF,KAAKi/E,cAAeiD,GAEvC,OAAOliF,KAAKy/E,mBAAoB4C,EAAa10E,EAASs0E,EAAmB,EAC1E,CACD,CACC,OAAO,CAET,CAYA,wBAAS1B,CAAyBx5D,EAAcxQ,GAC/C,IAAIka,EAAQ1J,EAAM0J,MACdsb,EAAMhlB,EAAM0J,MAEhB,UAAYxwB,KAAQ8mB,EAAMsvB,SAAU,CAAExD,SAAS,IACzC5yC,EAAKsO,GAAI,mBACNvO,KAAKugF,wBAAyB,GAAM5pC,UAAW12C,GAAQsW,IAGzDvW,KAAK0xE,eAAgBzxE,EAAMsW,KAC1Bka,EAAMpL,QAAS0mB,WACd,IAAI,GAAOtb,EAAOsb,IAGzBtb,EAAQ,GAASmjB,aAAc3zC,IAGhC8rC,EAAM,GAAS6H,aAAc3zC,GAGxBwwB,EAAMpL,QAAS0mB,WACd,IAAI,GAAOtb,EAAOsb,GAE1B,CAqBO,yBAAAu2C,CACN3hD,EACA4hD,GAEA,MAAMnoC,EAAkBzZ,EAAUuX,qBAElC,GAAKkC,GAAmBp6C,KAAKuxE,SAAUn3B,KAAsBp6C,KAAKyxE,SAAUr3B,GAC3E,MAAc,UAATmoC,GAA8B,SAATA,EAClB,IAAI,GAAO,GAASnvC,UAAWgH,EAAiBmoC,IAGjD,GAAM3rC,UAAWwD,GAGzB,MAAMooC,EAAa,GAAO7hD,EAAU6rC,qBAGpC,IAAMgW,EACL,OAAO,IAAI,GAAO7hD,EAAUlB,OAK7B,GAAK+iD,EAAWl2C,QACf,OAAO,IAAI,GAAO,GAAS8G,UAAWovC,EAAY,IAGnD,MAAMC,EAAgB,GAAS7uC,aAAc4uC,GAG7C,OAAK7hD,EAAUlB,MAAOuiC,WAAYygB,GAC1B,IAAI,GAAOA,GAIZ,IAAI,GAAO,GAASvuC,cAAesuC,GAC3C,EAsfM,MAAMxD,GACJnsD,OAKR,WAAA9wB,CAAa4L,GACZ,GAAKA,aAAmBqxE,GACvB,OAAOrxE,EAGR,IAAIimB,EAGHA,EADsB,iBAAXjmB,EACH,CAAEA,GACEhN,MAAMC,QAAS+M,GAKnBA,EAFAA,EAAQ65B,aAAc,CAAEE,aAAa,IAK9C1nC,KAAK6yB,OAASe,EAAM52B,IAAK0lF,GAC1B,CAKA,UAAWpqF,GACV,OAAO0H,KAAK6yB,OAAOv6B,MACpB,CAKA,QAAWo7B,GACV,OAAO1zB,KAAK6yB,OAAQ7yB,KAAK6yB,OAAOv6B,OAAS,EAC1C,CAOA,CAASwI,OAAOC,YACf,OAAOf,KAAK6yB,OAAQ/xB,OAAOC,WAC5B,CA4BO,IAAAnB,CAAMK,GACZ,MAAMq0B,EAAM,IAAI0qD,GAAe,CAAE/+E,IAIjC,OAFAq0B,EAAIzB,OAAS,IAAK7yB,KAAK6yB,UAAWyB,EAAIzB,QAE/ByB,CACR,CAKO,OAAA6tD,CAASv9E,GACf,OAAO5E,KAAK6yB,OAAQjuB,EACrB,CAKA,SAAQ+9E,SACA3iF,KAAK6yB,OAAO71B,KAAKiD,GAAQA,EAAK+B,MACtC,CAcO,QAAAysB,CAAUm0D,GAChB,OAAOjiF,MAAMrB,KAAMU,KAAK2iF,YAAazlF,KAAM,KAAMuxB,SAAUm0D,EAC5D,CAcO,UAAAp0B,CAAYo0B,GAClB,OAAOjiF,MAAMrB,KAAMU,KAAK2iF,YAAazlF,KAAM,KAAMsxD,WAAYo0B,EAC9D,EAmJD,SAASpB,GAAqBqB,EAA8C1D,GAC3E,MAAM2D,EAAW,CAChB9gF,KAAMm9E,EAENiD,QAAS,GACTW,eAAgB,GAChBC,WAAY,GAEZtD,gBAAiB,GACjBuD,kBAAmB,GAEnBC,cAAe,GAEfC,iBAAkB,IAkBnB,OAwID,SAAoBN,EAA8CC,GACjE,UAAYM,KAAkBP,EAAkB,CAC/C,MAAMQ,EAAYrsF,OAAOC,KAAMmsF,GAAiBr9E,QAAQ/D,GAAQA,EAAKwsD,WAAY,QAEjF,UAAYxsD,KAAQqhF,EACnBP,EAAU9gF,KAAWohF,EAAgBphF,EAEvC,CACD,CA/JCshF,CAAWT,EAAiBC,GAE5BS,GAAcV,EAAiBC,EAAU,WACzCS,GAAcV,EAAiBC,EAAU,kBACzCS,GAAcV,EAAiBC,EAAU,cAEzCS,GAAcV,EAAiBC,EAAU,mBACzCS,GAAcV,EAAiBC,EAAU,qBAEzCS,GAAcV,EAAiBC,EAAU,iBAEzCS,GAAcV,EAAiBC,EAAU,oBA4K1C,SAA6BD,EAA8CC,GAC1E,UAAYM,KAAkBP,EAAkB,CAC/C,MAAMW,EAAcJ,EAAeK,eAE9BD,IACJV,EAASC,eAAgBnjF,KAAM4jF,GAC/BV,EAASE,WAAYpjF,KAAM4jF,GAC3BV,EAASG,kBAAmBrjF,KAAM4jF,GAClCV,EAASK,iBAAkBvjF,KAAM4jF,GAEnC,CACD,CArLCE,CAAoBb,EAAiBC,GAE9BA,CACR,CAEA,SAASrB,GACRJ,EACAlC,GAEA,MAAMl/E,EAAOohF,EAAqBlC,GAElC,UAAYwE,KAAqB1jF,EAAKijF,cAAgB,CACrD,MAAMU,EAAkBvC,EAAqBsC,GAGvCC,GAINA,EAAgBxB,QAAQxiF,KAAMu/E,EAC/B,CAIAl/E,EAAKijF,cAAc5qF,OAAS,CAC7B,CAEA,SAASopF,GACRL,EACAlC,GAEA,UAAY0E,KAA0BxC,EAAqBlC,GAAW4D,eAErE,GAAK1B,EAAqBwC,GAA2B,CAC5BC,GAAoBzC,EAAqBwC,GAEjDjmF,SAASmmF,IACxBA,EAAY3B,QAAQxiF,KAAMu/E,EAAU,GAEtC,QAGMkC,EAAqBlC,GAAW4D,cACxC,CAEA,SAASpB,GACRN,EACAlC,GAEA,UAAY6E,KAAsB3C,EAAqBlC,GAAW6D,WAAc,CAC/E,MAAMQ,EAAcnC,EAAqB2C,GAGzC,GAAKR,EAAc,CAClB,MAAMS,EAAYT,EAAYpB,QAE9Bf,EAAqBlC,GAAWiD,QAAQxiF,QAASqkF,EAClD,CACD,QAEO5C,EAAqBlC,GAAW6D,UACxC,CAEA,SAASpB,GACRP,EACAlC,GAEA,UAAY+E,KAAwB7C,EAAqBlC,GAAW8D,kBAAqB,CACxF,MAAMO,EAAcnC,EAAqB6C,GAEzC,GAAKV,EAAc,CAClB,MAAMW,EAAoBX,EAAY9D,gBAEtC2B,EAAqBlC,GAAWO,gBAAgB9/E,QAASukF,EAC1D,CACD,QAEO9C,EAAqBlC,GAAW8D,iBACxC,CAEA,SAASpB,GACRR,EACAlC,GAEA,MAAMl/E,EAAOohF,EAAqBlC,GAElC,UAAYiF,KAA2BnkF,EAAKkjF,iBAAoB,CAC/D,MAAMK,EAAcnC,EAAqB+C,GAEzC,GAAKZ,EAAc,CAClB,MAAMH,EAAYrsF,OAAOC,KAAMusF,GAAcz9E,QAAQ/D,GAAQA,EAAKwsD,WAAY,QAE9E,UAAYxsD,KAAQqhF,EACXrhF,KAAQ/B,IACfA,EAAM+B,GAASwhF,EAAaxhF,GAG/B,CACD,QAEO/B,EAAKkjF,gBACb,CAIA,SAASrB,GACRT,EACAlC,GAEA,MAAM2D,EAAWzB,EAAqBlC,GAChCkF,EAAgBvB,EAASV,QAAQr8E,QAAQu+E,GAAejD,EAAqBiD,KAEnFxB,EAASV,QAAUzhF,MAAMrB,KAAM,IAAIyU,IAAKswE,GACzC,CAGA,SAAStC,GACRV,EACAlC,GAEA,MAAM2D,EAAWzB,EAAqBlC,GAEtC,UAAYoF,KAAyBzB,EAASV,QAAU,CAC7Bf,EAAqBkD,GAE7BrB,cAActjF,KAAMu/E,EACvC,CACD,CAEA,SAAS6C,GACRX,EACAlC,GAEA,MAAM2D,EAAWzB,EAAqBlC,GAEtC2D,EAASpD,gBAAkB/+E,MAAMrB,KAAM,IAAIyU,IAAK+uE,EAASpD,iBAC1D,CAYA,SAAS6D,GACRV,EACAC,EACA5uE,GAQA,UAAYkvE,KAAkBP,EAAkB,CAC/C,MAAMrqF,EAAQ4qF,EAAgBlvE,GAET,iBAAT1b,EACXsqF,EAAU5uE,GAAgBtU,KAAMpH,GACrBmI,MAAMC,QAASpI,IAC1BsqF,EAAU5uE,GAAgBtU,QAASpH,EAErC,CACD,CAeA,SAASsrF,GAAoBzC,EAA2ElC,GACvG,MAAM2D,EAAWzB,EAAqBlC,GAEtC,OAGmBt6E,EAHDw8E,EAIXrqF,OAAOC,KAAM4N,GAAM7H,KAAKjG,GAAO8N,EAAK9N,MAJHgP,QAAQ0yB,GAAOA,EAAI2pD,QAAQjwD,SAAU2wD,EAAS9gF,QAGvF,IAAoB6C,CAFpB,CAMA,SAAS69E,GAAgB8B,GACxB,MAAuB,iBAAXA,GAAuBA,EAAQj2E,GAAI,oBACvC,CACNvM,KAAwB,iBAAXwiF,EAAsBA,EAAU,oBAE7C,iBAAE56C,GAAoB,EAEtB,YAAAlP,GAAgB,GAGV,CAEN14B,KAAMwiF,EAAQj2E,GAAI,WAAci2E,EAAQxiF,KAAO,QAE/C,iBAAE4nC,SACM46C,EAAQ56C,kBAChB,EAEAlP,aAAc3jC,GACNytF,EAAQ9pD,aAAc3jC,GAIjC,CAwDA,SAASkqF,GAAmC3mD,EAAgBn7B,EAAY4mC,GACvE,UAAYxvB,KAAapX,EAAKyqC,mBACvBtP,EAAOo3C,eAAgBvyE,EAAMoX,IAClCwvB,EAAOr/B,gBAAiB6P,EAAWpX,EAGtC,CCh/De,MAAMslF,WAAyCj1E,KAItD65D,cAOCqb,YAAc,IAAIhzE,IAOlBizE,eAAiB,IAAIjzE,IAOrBkzE,aAAqC,KAOrCC,qBAAuB,IAAI9wE,IASnC,WAAAhS,CAAasnE,GACZx7D,QAEA7N,KAAKqpE,cAAgB,IACjBA,EACHsB,WAAY,KACZ5kC,OAAQ,KACR++C,MAAO,KACP/Y,YAAa,CAAE8N,EAAUD,IAAiB55E,KAAK+kF,aAAclL,EAAUD,GACvE5N,gBAAiB,CAAE7qB,EAAa6jC,IAAuBhlF,KAAKilF,iBAAkB9jC,EAAa6jC,GAC3F7K,WAAY,CAAE5C,EAAW9vD,IAAcznB,KAAKklF,YAAa3N,EAAW9vD,GACpE2yD,uBAAwB,CAAEnU,EAAcnjE,IAAU9C,KAAKmlF,wBAAyBlf,EAAcnjE,GAE9FsiF,qBAAsB,CAAE7N,EAAWqC,IAAiB55E,KAAKqlF,sBAAuB9N,EAAWqC,GAC3F0L,cAAerf,GAAgBjmE,KAAKulF,eAAgBtf,GACpDuf,iBAAkBvf,GAAgBjmE,KAAKylF,kBAAmBxf,GAE5D,CAeO,OAAA/uE,CACNiqD,EACApb,EACAp4B,EAAmC,CAAE,UAErC3N,KAAK4Q,KAA8B,cAAeuwC,GAIlDnhD,KAAK4kF,aA8aP,SACCc,EACA3/C,GAEA,IAAIte,EAEJ,UAAYxnB,KAAQ,IAAI++E,GAAe0G,GAAsB,CAC5D,MAAMngF,EAAsC,CAAC,EAE7C,UAAYxO,KAAOkJ,EAAK2pC,mBACvBrkC,EAAYxO,GAAQkJ,EAAKy6B,aAAc3jC,GAGxC,MAAMgI,EAAUgnC,EAAOzgC,cAAerF,EAAK+B,KAAMuD,GAE5CkiB,GACJse,EAAOrgC,OAAQ3G,EAAS0oB,GAGzBA,EAAW,GAAc2rB,UAAWr0C,EAAS,EAC9C,CAEA,OAAO0oB,CACR,CArcsBk+D,CAAmBh4E,EAASo4B,GAIhD/lC,KAAKqpE,cAActjC,OAASA,EAG5B/lC,KAAKqpE,cAAcsB,WAAaoT,GAAeI,WAAYh9B,GAG3DnhD,KAAKqpE,cAAcyb,MAAQ,CAAC,EAG5B,MAAM,WAAE1d,GAAepnE,KAAK+kF,aAAc5jC,EAAanhD,KAAK4kF,cAGtDgB,EAAmB7/C,EAAOpK,yBAGhC,GAAKyrC,EAAa,CAEjBpnE,KAAK6lF,uBAGL,UAAY5lF,KAAQU,MAAMrB,KAAMU,KAAK4kF,aAAahmF,OAAOkoC,eACxDf,EAAO0pB,OAAQxvD,EAAM2lF,GAIpBA,EAA0Bnc,QA2W/B,SAA0Cqc,EAAkC//C,GAC3E,MAAMggD,EAAiB,IAAIhyE,IACrB01D,EAAU,IAAI/3D,IAGdqV,EAAQ,GAAW4vB,UAAWmvC,GAAYzvC,WAGhD,UAAYp2C,KAAQ8mB,EAEd9mB,EAAKsO,GAAI,UAAW,YACxBw3E,EAAe73E,IAAKjO,GAKtB,UAAY+lF,KAAiBD,EAAiB,CAC7C,MAAM3f,EAAa4f,EAActrD,aAAc,aACzCurD,EAAkBlgD,EAAOyb,qBAAsBwkC,GAG/Cvc,EAAQx7D,IAAKm4D,GAIhBqD,EAAQrhE,IAAKg+D,GAAsBr6B,IAAMk6C,EAAgBjiE,QAH3DylD,EAAQ73D,IAAKw0D,EAAY,IAAI,GAAY6f,EAAgBjiE,UAO1D+hB,EAAO9/B,OAAQ+/E,EAChB,CAEA,OAAOvc,CACR,CA5YyCyc,CAAiCN,EAAkB7/C,EAC1F,CAeA,OAZA/lC,KAAK4kF,aAAe,KAGpB5kF,KAAK0kF,YAAY3yE,QACjB/R,KAAK2kF,eAAe5yE,QACpB/R,KAAK6kF,qBAAqB9yE,QAGxB/R,KAAKqpE,cAAuBtjC,OAAS,KACvC/lC,KAAKqpE,cAAcyb,MAAQ,KAGpBc,CACR,CAKQ,YAAAb,CAAclL,EAA2CD,GAIhE,MAAM92E,EAA6B,CAAE+2E,WAAUD,cAAaxS,WAAY,MAuBxE,GArBKyS,EAAStrE,GAAI,WACjBvO,KAAK4Q,KACJ,WAAYipE,EAAS73E,OACrBc,EACA9C,KAAKqpE,eAEKwQ,EAAStrE,GAAI,SACxBvO,KAAK4Q,KACJ,OACA9N,EACA9C,KAAKqpE,eAGNrpE,KAAK4Q,KACJ,mBACA9N,EACA9C,KAAKqpE,eAKFvmE,EAAKskE,cAAiBtkE,EAAKskE,sBAAsB,IAQrD,MAAM,IAAI15D,EAAe,8CAA+C1N,MAGzE,MAAO,CAAEonE,WAAYtkE,EAAKskE,WAAYwS,YAAa92E,EAAK82E,YACzD,CAKQ,gBAAAqL,CACPpL,EACAsM,GAKA,IAAIC,EAAkBD,EAAqB53E,GAAI,YAC9C43E,EAAuB,GAAc/yC,UAAW+yC,EAAsB,GAEvE,MAAM/e,EAAa,IAAI,GAAYgf,GAEnC,UAAYr+B,KAAapnD,MAAMrB,KAAMu6E,EAAS/yC,eAAkB,CAC/D,MAAM3oC,EAAS6B,KAAK+kF,aAAch9B,EAAWq+B,GAExCjoF,EAAOipE,sBAAsB,KAC/BA,EAAoBr7B,IAAM5tC,EAAOipE,WAAWr7B,IAC9Cq6C,EAAkBjoF,EAAOy7E,YAE3B,CAEA,MAAO,CAAExS,aAAYwS,YAAawM,EACnC,CAKQ,WAAAlB,CACP3N,EACA9vD,GAKA,MAAM4+D,EAAcrmF,KAAKqlF,sBAAuB9N,EAAW9vD,GAG3D,QAAM4+D,IAKNrmF,KAAKqpE,cAActjC,OAAOrgC,OAAQ6xE,EAAW8O,EAAY5+D,WAElD,EACR,CAKQ,uBAAA09D,CAAyBlf,EAA4BnjE,GAC5D,MAAMwc,EAAQtf,KAAKulF,eAAgBtf,GAE7BlgC,EAAS/lC,KAAKqpE,cAActjC,OAG5BjjC,EAAKskE,aACVtkE,EAAKskE,WAAarhC,EAAO0b,YACxB1b,EAAOyb,qBAAsBykB,GAC7BlgC,EAAOwb,oBAAqBjiC,EAAOA,EAAMhnB,OAAS,MAIpD,MAAMguF,EAAoBtmF,KAAK2kF,eAAev8E,IAAK69D,GASlDnjE,EAAK82E,YAND0M,EAMevgD,EAAOub,iBAAkBglC,EAAmB,GAI5CxjF,EAAKskE,WAAWr7B,GAErC,CAKQ,qBAAAs5C,CAAuBlmF,EAAiBy6E,GAI/C,MAAM,OAAEt/C,EAAM,OAAEyL,GAAW/lC,KAAKqpE,cAGhC,IAAIkd,EAAgBjsD,EAAOwmD,kBAAmBlH,EAAaz6E,GAE3D,GAAKonF,EAAgB,CAEpB,GAAKA,IAAkB3M,EAAYh7E,OAClC,MAAO,CAAE6oB,SAAUmyD,GAIf55E,KAAK4kF,aAAchmF,OAAO4oC,eAAerV,SAAUo0D,KACvDA,EAAgB,KAElB,CAEA,IAAMA,EAEL,OAAM5O,GAAiBiC,EAAaz6E,EAAMm7B,GAInC,CACN7S,SAAUqwD,GAAiB8B,EAAa7zC,IAJjC,KAST,MAAMsgD,EAAcrmF,KAAKqpE,cAActjC,OAAQhpC,MAAO68E,EAAa2M,GAgB7D73E,EAA6B,GAEnC,UAAY83E,KAAmBH,EAAYt/D,MAAMiuB,YAChD,GAA6B,cAAxBwxC,EAAgBr7E,KACpBuD,EAAM9O,KAAM4mF,EAAgBvmF,UACtB,CAEN,MAAMwmF,EAAe/3E,EAAM1P,MACrB0nF,EAAYF,EAAgBvmF,KAElCD,KAAK2mF,mBAAoBF,EAAeC,EACzC,CAGD,MAAME,EAAeP,EAAYt/D,MAAMglB,IAAIntC,OAG3C,OAFAoB,KAAK2kF,eAAe/yE,IAAKzS,EAAMynF,GAExB,CACNn/D,SAAU4+D,EAAY5+D,SACtBm/D,eAEF,CAOQ,kBAAAD,CAAoBF,EAA4BC,GACjD1mF,KAAK0kF,YAAYz2E,IAAKw4E,IAC3BzmF,KAAK0kF,YAAY9yE,IAAK60E,EAAc,CAAEA,IAGvC,MAAM1mF,EAAOC,KAAK0kF,YAAYt8E,IAAKq+E,GAEnCzmF,KAAK0kF,YAAY9yE,IAAK80E,EAAW3mF,GACjCA,EAAKH,KAAM8mF,EACZ,CAKQ,cAAAnB,CAAgBxuE,GACvB,IAAIuI,EAQJ,OAHCA,EAHKtf,KAAK0kF,YAAYz2E,IAAK8I,GAGnB/W,KAAK0kF,YAAYt8E,IAAK2O,GAFtB,CAAEA,GAKJuI,CACR,CAKQ,iBAAAmmE,CAAmB1uE,GAC1B/W,KAAK6kF,qBAAqB32E,IAAK6I,EAChC,CAQQ,oBAAA8uE,GACP,IAAIgB,GAAa,EAEjB,UAAY9vE,KAAW/W,KAAK0kF,YAAYztF,OAClC8f,EAAQu1B,UAAYtsC,KAAK6kF,qBAAqB52E,IAAK8I,KACvD/W,KAAKqpE,cAActjC,OAAO9/B,OAAQ8Q,GAClC/W,KAAK0kF,YAAY5yE,OAAQiF,GAEzB8vE,GAAa,GAIVA,GACJ7mF,KAAK6lF,sBAEP,EClfc,MAAMiB,GAIb,OAAAC,CAASl4B,GACf,MACMnzB,EADM,GAAOl4B,SAASqqD,eAAeC,mBAAoB,IACzCxoD,cAAe,OAIrC,OAFAo2B,EAAU/1B,YAAakpD,GAEhBnzB,EAAUxZ,SAClB,ECHc,MAAM8kE,GAIbC,UAKAprC,aAKAqrC,WAEA/zB,cAAwB,EAO/B,WAAApxD,CAAayB,GACZxD,KAAKinF,UAAY,IAAIt4B,UACrB3uD,KAAK67C,aAAe,IAAIkR,GAAcvpD,EAAU,CAAEwpD,cAAe,SACjEhtD,KAAKknF,WAAa,IAAIJ,EACvB,CAQO,MAAAK,CAAQh5B,GAEd,MAAMD,EAAcluD,KAAK67C,aAAa+M,UAAWuF,GAGjD,OAAOnuD,KAAKknF,WAAWH,QAAS74B,EACjC,CAQO,MAAAk5B,CAAQtkF,GAEd,MAAMorD,EAAcluD,KAAKqnF,OAAQvkF,GAGjC,OAAO9C,KAAK67C,aAAa2N,UAAW0E,EAAa,CAAEiF,aAAcnzD,KAAKmzD,cACvE,CAWO,yBAAAF,CAA2B7pB,GACjCppC,KAAK67C,aAAaoX,0BAA2B7pB,EAC9C,CAaO,aAAAk+C,CAAen8E,GACrBnL,KAAK67C,aAAaoR,gBAA0B,UAAR9hD,EAAmB,aAAe,MACvE,CAMU,MAAAk8E,CAAQvkF,GAIXA,EAAKjG,MAAO,4CACjBiG,EAAO,SAAUA,YAGlB,MAAMU,EAAWxD,KAAKinF,UAAUr4B,gBAAiB9rD,EAAM,aACjD+rD,EAAWrrD,EAASm4B,yBACpBmzB,EAAiBtrD,EAASyf,KAAK3c,WAErC,KAAQwoD,EAAex2D,OAAS,GAC/Bu2D,EAASlpD,YAAampD,EAAgB,IAGvC,OAAOD,CACR,ECjEc,MAAM04B,WAAuC/3E,KAI3CpX,MAOAkvE,OAKA8V,mBAKAoK,iBAKAlqB,aAKAntB,gBAKAs3C,cAMTC,UAMUC,YAQjB,WAAA5lF,CAAa3J,EAAc+3C,GAC1BtiC,QAEA7N,KAAK5H,MAAQA,EACb4H,KAAKsnE,OAAS,IAAIrC,GAElBjlE,KAAKo9E,mBAAqB,IAAIlU,GAAoB,CACjD5B,OAAQtnE,KAAKsnE,OACbhtC,OAAQliC,EAAMkiC,SAEft6B,KAAKo9E,mBAAmB3tE,GAAqD,gBVosBvE,CACN+F,EACA1S,EACAumE,KAEA,IAAMA,EAAcsB,WAAWpC,QAASzlE,EAAK7C,KAAMuV,EAAIxT,MACtD,OAGD,MAAMoyE,EAAa/K,EAActjC,OAC3B4W,EAAe0sB,EAAc/B,OAAOD,eAAgBvkE,EAAKikB,MAAM0J,OAC/Dg4B,EAAW2rB,EAAW32B,WAAY36C,EAAK7C,KAAK6C,MAElDsxE,EAAW1uE,OAAQi3C,EAAc8L,EAAU,GUjtBgE,CAAEz7C,SAAU,WACvHhN,KAAKo9E,mBAAmB3tE,GAAyB,UV0tB3C,CACN+F,EACA1S,EACAumE,KAEAA,EAAc4C,kBAAmBnpE,EAAK7C,MAIhC6C,EAAK2oE,eAAgB3oE,EAAK7C,KAAKsO,GAAI,YAAgBzL,EAAK7C,KAAKqsC,SAClE+8B,EAAc2C,gBAAiBlpE,EAAK7C,KACrC,GUruB0F,CAAE+M,SAAU,WAEtGhN,KAAKwnF,iBAAmB,IAAI/C,GAAkB,CAC7CnqD,OAAQliC,EAAMkiC,SAGft6B,KAAKs9D,aAAe,IAAI,GAAcntB,GACtCnwC,KAAKmwC,gBAAkBA,EACvBnwC,KAAKynF,cAAgB,IAAIT,GAAmBhnF,KAAKs9D,cACjDt9D,KAAK0nF,UAAY1nF,KAAKynF,cACtBznF,KAAK2nF,YAAc,IAAI,GAAoB3nF,KAAKs9D,cAOhDt9D,KAAKwnF,iBAAiB/3E,GAAqB,QR+WrC,CACN+F,EACA1S,GACEw3B,SAAQqwC,aAAY5kC,aAEtB,IAAIte,EAAW3kB,EAAK82E,YAGpB,IAAMjP,EAAW1oE,KAAMa,EAAK+2E,UAC3B,OAGD,IAAMv/C,EAAOq4C,WAAYlrD,EAAU,SAAY,CAC9C,IAAMkwD,GAAiBlwD,EAAU,QAAS6S,GACzC,OAID,GAAyC,GAApCx3B,EAAK+2E,SAAS/2E,KAAKyrB,OAAOj2B,OAC9B,OAID,MAAMg8C,EAAa7sB,EAAS6sB,WAE5B7sB,EAAWqwD,GAAiBrwD,EAAUse,GAEjCuO,GAAcA,EAAW/lC,GAAI,UAAW,aAE5Cw3B,EAAOoZ,KAAMpZ,EAAO2b,cAAepN,GAAc7sB,GACjDA,EAAWse,EAAOwb,oBAAqBjN,GAEzC,CAEAq2B,EAAWpC,QAASzlE,EAAK+2E,UAEzB,MAAMxhD,EAAO0N,EAAO0X,WAAY36C,EAAK+2E,SAAS/2E,MAE9CijC,EAAOrgC,OAAQ2yB,EAAM5Q,GAErB3kB,EAAKskE,WAAarhC,EAAO0b,YACxBh6B,EACAA,EAASgtB,aAAcpc,EAAK2Q,aAE7BlmC,EAAK82E,YAAc92E,EAAKskE,WAAWr7B,GAAG,GQ3Z4B,CAAE/+B,SAAU,WAC9EhN,KAAKwnF,iBAAiB/3E,GAAwB,WRyVxC,CACN+F,EACA1S,EACAumE,KAGA,IAAMvmE,EAAKskE,YAAciC,EAAcsB,WAAWpC,QAASzlE,EAAK+2E,SAAU,CAAE73E,MAAM,IAAW,CAC5F,MAAM,WAAEolE,EAAU,YAAEwS,GAAgBvQ,EAAc2C,gBAAiBlpE,EAAK+2E,SAAU/2E,EAAK82E,aAEvF92E,EAAKskE,WAAaA,EAClBtkE,EAAK82E,YAAcA,CACpB,IQpWmF,CAAE5sE,SAAU,WAC/FhN,KAAKwnF,iBAAiB/3E,GAAiC,oBRwVjD,CACN+F,EACA1S,EACAumE,KAGA,IAAMvmE,EAAKskE,YAAciC,EAAcsB,WAAWpC,QAASzlE,EAAK+2E,SAAU,CAAE73E,MAAM,IAAW,CAC5F,MAAM,WAAEolE,EAAU,YAAEwS,GAAgBvQ,EAAc2C,gBAAiBlpE,EAAK+2E,SAAU/2E,EAAK82E,aAEvF92E,EAAKskE,WAAaA,EAClBtkE,EAAK82E,YAAcA,CACpB,IQnWqG,CAAE5sE,SAAU,WAEjHsG,IAAkBzR,UAAUuT,SAAS/T,KAAMrB,KAAM,QACjDsT,IAAkBzR,UAAUuT,SAAS/T,KAAMrB,KAAM,OACjDsT,IAAkBzR,UAAUuT,SAAS/T,KAAMrB,KAAM,OACjDsT,IAAkBzR,UAAUuT,SAAS/T,KAAMrB,KAAM,UACjDsT,IAAkBzR,UAAUuT,SAAS/T,KAAMrB,KAAM,WAIjDA,KAAKyP,GAA6B,QAAQ,KACzCzP,KAAK4Q,KAAgC,QAAS,GAC5C,CAAE5D,SAAU,WAIfhN,KAAKyP,GAA8B,SAAS,KAC3CzP,KAAK5H,MAAM63E,cAAe,CAAE2X,YAAY,GAASnQ,GAAyB,GACxE,CAAEzqE,SAAU,UAChB,CAkBO,GAAA5E,CACN7D,EAII,CAAC,GAEL,MAAM,SAAEu8B,EAAW,YAAQvS,EAAO,SAAYhqB,EAE9C,IAAMvE,KAAK6nF,oBAAqB,CAAE/mD,IAejC,MAAM,IAAIpzB,EAAe,uCAAwC1N,MAGlE,MAAM1J,EAAO0J,KAAK5H,MAAMoL,SAASw3C,QAASla,GAc1C,OAZMxqC,EAAKuwC,cASV,EAAY,mCAAoC7mC,MAGnC,UAATuuB,GAAqBvuB,KAAK5H,MAAM0vF,WAAYxxF,EAAM,CAAEyxF,mBAAmB,IAIrE/nF,KAAK6C,UAAWvM,EAAMiO,GAHrB,EAIT,CAWO,SAAA1B,CACNmlF,EACAzjF,EAAmC,CAAC,GAGpC,MAAM0jF,EAAuBjoF,KAAKonF,OAAQY,EAAwBzjF,GAGlE,OAAOvE,KAAK0nF,UAAUP,OAAQc,EAC/B,CAcO,MAAAb,CACNY,EACAzjF,EAAmC,CAAC,GAEpC,MAAM+4D,EAAet9D,KAAKs9D,aACpB8W,EAAap0E,KAAK2nF,YAGxB3nF,KAAKsnE,OAAON,gBAGZ,MAAMI,EAAa,GAAWzwB,UAAWqxC,GACnCC,EAAuB,IAAI,GAAsB3qB,GAEvDt9D,KAAKsnE,OAAOpf,aAAc8/B,EAAwBC,GAOlD,MAAMxe,EAAUue,EAAuBz5E,GAAI,oBAC1Cy5E,EAAuBve,QAgW1B,SAAuC1yD,GACtC,MAAM5Y,EAAwC,GACxC8Z,EAAMlB,EAAQzgB,KAAKkN,SAEzB,IAAMyU,EACL,OAAO,IAAIvG,IAGZ,MAAMw2E,EAAe,GAAWvxC,UAAW5/B,GAE3C,UAAYk0D,KAAUhzD,EAAI7f,MAAMqxE,QAAU,CACzC,MAAMc,EAAcU,EAAOT,WAErB2d,EAAoB5d,EAAYp1B,YAChCizC,EAA4B7d,EAAY95C,MAAMpL,QAAS6iE,EAAaz3D,QAAW85C,EAAYx+B,IAAI1mB,QAAS6iE,EAAan8C,KAE3H,GAAKo8C,GAAqBC,EACzBjqF,EAAOyB,KAAM,CAAEqrE,EAAOjpE,KAAMuoE,QACtB,CACN,MAAM8d,EAAqBH,EAAa/jE,gBAAiBomD,GAEpD8d,GACJlqF,EAAOyB,KAAM,CAAEqrE,EAAOjpE,KAAMqmF,GAE9B,CACD,CA0CA,OA5BAlqF,EAAO0jB,MAAM,EAAIymE,EAAI37E,IAAQ47E,EAAI17E,MAChC,GAAwC,UAAnCF,EAAGo/B,IAAI+I,YAAajoC,EAAG4jB,OAE3B,OAAO,EACD,GAAwC,WAAnC9jB,EAAG8jB,MAAMqkB,YAAajoC,EAAGk/B,KAEpC,OAAQ,EAIR,OAASp/B,EAAG8jB,MAAMqkB,YAAajoC,EAAG4jB,QACjC,IAAK,SACJ,OAAO,EACR,IAAK,QACJ,OAAQ,EACT,QACC,OAAS9jB,EAAGo/B,IAAI+I,YAAajoC,EAAGk/B,MAC/B,IAAK,SACJ,OAAO,EACR,IAAK,QACJ,OAAQ,EACT,QACC,OAAOw8C,EAAGC,cAAeF,IAG9B,IAGM,IAAI52E,IAAKvT,EACjB,CAnaGsqF,CAA8BT,GAI/B,OAFAhoF,KAAKo9E,mBAAmBlmF,QAASkwE,EAAYqC,EAAS2K,EAAY7vE,GAE3D0jF,CACR,CA2BO,IAAA7lD,CAAMt/B,GACZ,GAAK9C,KAAK5H,MAAMoL,SAASuL,QAQxB,MAAM,IAAIrB,EAAe,yCAA0C1N,MAGpE,IAAI0oF,EAAsC,CAAC,EAQ3C,GANqB,iBAAT5lF,EACX4lF,EAAYC,KAAO7lF,EAEnB4lF,EAAc5lF,GAGT9C,KAAK6nF,oBAAqB7wF,OAAOC,KAAMyxF,IAe5C,MAAM,IAAIh7E,EAAe,wCAAyC1N,MAWnE,OARAA,KAAK5H,MAAM63E,cAAe,CAAE2X,YAAY,IAAS7hD,IAChD,UAAYjF,KAAY9pC,OAAOC,KAAMyxF,GAAgB,CACpD,MAAM7d,EAAY7qE,KAAK5H,MAAMoL,SAASw3C,QAASla,GAE/CiF,EAAOrgC,OAAQ1F,KAAK4oF,MAAOF,EAAa5nD,GAAY+pC,GAAaA,EAAW,EAC7E,KAGM1mC,QAAQnnB,SAChB,CAsCO,GAAApL,CACN9O,EACAyB,EAGI,CAAC,GAEL,IAAIskF,EAAkC,CAAC,EAQvC,GANqB,iBAAT/lF,EACX+lF,EAAQF,KAAO7lF,EAEf+lF,EAAU/lF,GAGL9C,KAAK6nF,oBAAqB7wF,OAAOC,KAAM4xF,IAe5C,MAAM,IAAIn7E,EAAe,uCAAwC1N,MAGlEA,KAAK5H,MAAM63E,cAAe1rE,EAAQukF,WAAa,CAAC,GAAG/iD,IAClDA,EAAOwX,aAAc,MACrBxX,EAAOgjD,yBAA0B/oF,KAAK5H,MAAMoL,SAASm9B,UAAUiJ,oBAE/D,UAAY9I,KAAY9pC,OAAOC,KAAM4xF,GAAY,CAEhD,MAAMhe,EAAY7qE,KAAK5H,MAAMoL,SAASw3C,QAASla,GAE/CiF,EAAO9/B,OAAQ8/B,EAAO4b,cAAekpB,IACrC9kC,EAAOrgC,OAAQ1F,KAAK4oF,MAAOC,EAAS/nD,GAAY+pC,GAAaA,EAAW,EACzE,IAEF,CAYO,KAAA+d,CAAO9lF,EAAc6K,EAAmC,SAE9D,MAAMs6E,EAAuBjoF,KAAK0nF,UAAUN,OAAQtkF,GAGpD,OAAO9C,KAAKjC,QAASkqF,EAAsBt6E,EAC5C,CAgBO,OAAA5P,CACN6xD,EACAjiD,EAAmC,SAEnC,OAAO3N,KAAK5H,MAAM0tC,QAAQC,GAClB/lC,KAAKwnF,iBAAiBtwF,QAAS04D,EAAuB7pB,EAAQp4B,IAEvE,CAYO,sBAAAq7E,CAAwBr5E,GAC9BA,EAAU3P,KAAKmwC,gBAChB,CAYO,yBAAA8iB,CAA2B7pB,GAE5BppC,KAAK0nF,WAAa1nF,KAAK0nF,YAAc1nF,KAAKynF,eAC9CznF,KAAK0nF,UAAUz0B,0BAA2B7pB,GAG3CppC,KAAKynF,cAAcx0B,0BAA2B7pB,EAC/C,CAKO,OAAAnhB,GACNjoB,KAAK+P,eACN,CAQQ,mBAAA83E,CAAqBoB,GAC5B,UAAYnoD,KAAYmoD,EACvB,IAAMjpF,KAAK5H,MAAMoL,SAASw3C,QAASla,GAClC,OAAO,EAIT,OAAO,CACR,EC7dc,MAAMooD,GAIHC,SAAW,IAAIz3E,IAEf03E,UACAC,QAKjB,WAAAtnF,CACCunF,EACAC,GAGAvpF,KAAKopF,UAAYr5D,GAASu5D,GAC1BtpF,KAAKwpF,yBAA0B,CAAExnF,KAAM,WAAY+vE,YAAa/xE,KAAKopF,UAAWK,YAAY,IAE5FzpF,KAAKqpF,QAAUt5D,GAASw5D,GACxBvpF,KAAKwpF,yBAA0B,CAAExnF,KAAM,SAAU+vE,YAAa/xE,KAAKqpF,QAASI,YAAY,GACzF,CA8BO,QAAAC,CACNC,EACArgB,GAEA,MAAMmgB,EAAazpF,KAAKopF,UAAUj3D,SAAUm3C,GAG5C,IAFiBtpE,KAAKqpF,QAAQl3D,SAAUm3C,KAErBmgB,EAMlB,MAAM,IAAI/7E,EACT,iDACA1N,MAIFA,KAAKwpF,yBAA0B,CAAExnF,KAAM2nF,EAAO5X,YAAa,CAAEzI,GAAcmgB,cAC5E,CAwEO,IAAKpoC,GACX,IAAMrhD,KAAKmpF,SAASl7E,IAAKozC,GAMxB,MAAM,IAAI3zC,EAAe,+BAAgC1N,MAG1D,OAAOA,KAAKmpF,SAAS/gF,IAAKi5C,EAC3B,CA0EO,gBAAA6wB,CAAkBhqE,GAOxBlI,KAAK4pF,IAAK,YAAa1X,iBAAkBhqE,GAGzC,UAAY,MAAE9P,EAAK,KAAEu/B,KAAUkyD,GAA0B3hF,GACxDlI,KAAK4pF,IAAK,UACR1X,iBAAkB,CAClB95E,QACAu/B,OACA46C,kBAAmBrqE,EAAWqqE,mBAGlC,CAiKO,kBAAAqB,CACN1rE,GAoBAlI,KAAK4pF,IAAK,YAAahW,mBAAoB1rE,GAG3C,UAAY,MAAE9P,EAAK,KAAEu/B,KAAUkyD,GAA0B3hF,GACxDlI,KAAK4pF,IAAK,UACR1R,mBAAoB,CACpBvgD,OACAv/B,QACAm6E,kBAAmBrqE,EAAWqqE,mBAGlC,CAiHO,oBAAAyB,CACN9rE,GAmBAlI,KAAK4pF,IAAK,YAAa5V,qBAAsB9rE,GAG7C,UAAY,MAAE9P,EAAK,KAAEu/B,KAAUkyD,GAA0B3hF,GACxDlI,KAAK4pF,IAAK,UACR5V,qBAAsB,CACtBr8C,OACAv/B,SAGJ,CAOQ,wBAAAoxF,EACP,KAAExnF,EAAI,YAAE+vE,EAAW,WAAE0X,IAMrB,GAAKzpF,KAAKmpF,SAASl7E,IAAKjM,GAMvB,MAAM,IAAI0L,EAAe,0BAA2B1N,MAGrD,MAAM8pF,EAAUL,EACf,IAAIxX,GAAiBF,GACrB,IAAIiG,GAAejG,GAEpB/xE,KAAKmpF,SAASv3E,IAAK5P,EAAM8nF,EAC1B,EAOD,SAAUD,GAA0B3hF,GACnC,GAAKA,EAAW9P,MAAMgT,OACrB,UAAY5S,KAAS0P,EAAW9P,MAAMgT,OAAS,CAC9C,MAAMhT,EAAQ,CAAErB,IAAKmR,EAAW9P,MAAMrB,IAAKyB,SACrCm/B,EAAOzvB,EAAWyvB,KAAMn/B,GACxBuxF,EAAa7hF,EAAW6hF,WAAa7hF,EAAW6hF,WAAYvxF,QAAU,QAErEwxF,GAAsB5xF,EAAOu/B,EAAMoyD,EAC3C,YAEOC,GAAsB9hF,EAAW9P,MAAO8P,EAAWyvB,KAAMzvB,EAAW6hF,WAE7E,CAEA,SAAUC,GAAsB5xF,EAAgBu/B,EAAeoyD,GAG9D,QAFM,CAAE3xF,QAAOu/B,QAEVoyD,EACJ,UAAYE,KAAkBl6D,GAASg6D,QAChC,CAAE3xF,QAAOu/B,KAAMsyD,EAGxB,CCvrBe,MAAeC,GAOtBC,YAKSlc,oBAMT8B,MAaP,WAAAhuE,CAAaooF,GACZnqF,KAAKmqF,YAAcA,EACnBnqF,KAAKiuE,oBAA2C,OAArBjuE,KAAKmqF,YAChCnqF,KAAK+vE,MAAQ,IACd,CA0CO,SAAAqa,GACP,CAOO,MAAA/hD,GAGN,MAAMC,EAAYtxC,OAAOsyB,OAAQ,CAAC,EAAGtpB,MAUrC,OARAsoC,EAAK+hD,YAAgBrqF,KAAK+B,YAAqBwuC,iBAGxCjI,EAAKynC,aAGLznC,EAAK2lC,oBAEL3lC,CACR,CAKA,oBAAkBiI,GACjB,MAAO,WACR,CAQA,eAAcwwB,CAAUz4B,EAAW9kC,GAClC,OAAO,IAAMxD,KAAesoC,EAAK6hD,YAClC,ECxGM,SAASz+E,GAAS+b,EAAoB6pB,GAC5C,MAAMg5C,EAAkBC,GAAiBj5C,GAGnCj1B,EAASiuE,EAAgB37D,QAAQ,CAAEC,EAAKzvB,IAAUyvB,EAAMzvB,EAAK6pC,YAAY,GACzEpqC,EAAS6oB,EAAS7oB,OAGxB4rF,GAAsB/iE,GACtB,MAAM7iB,EAAQ6iB,EAAS7iB,MAUvB,OANAhG,EAAOoxC,aAAcprC,EAAO0lF,GAG5BG,GAAoB7rF,EAAQgG,EAAQ0lF,EAAgBhyF,QACpDmyF,GAAoB7rF,EAAQgG,GAErB,IAAI,GAAO6iB,EAAUA,EAASgtB,aAAcp4B,GACpD,CAQO,SAASgY,GAAoBtN,GACnC,IAAMA,EAAMxI,OAMX,MAAM,IAAI7Q,EACT,wCACA1N,MAIF,MAAMpB,EAASmoB,EAAM0J,MAAM7xB,OAG3B4rF,GAAsBzjE,EAAM0J,OAC5B+5D,GAAsBzjE,EAAMglB,KAG5B,MAAM/X,EAAUp1B,EAAOupC,gBAAiBphB,EAAM0J,MAAM7rB,MAAOmiB,EAAMglB,IAAInnC,MAAQmiB,EAAM0J,MAAM7rB,OAMzF,OAFA6lF,GAAoB7rF,EAAQmoB,EAAM0J,MAAM7rB,OAEjCovB,CACR,CAUO,SAAS02D,GAAkBzrC,EAAoBC,GACrD,IAAMD,EAAY1gC,OAMjB,MAAM,IAAI7Q,EACT,sCACA1N,MAIF,MAAMsxC,EAAQjd,GAAS4qB,GAMvB,OAAOvzC,GAFPwzC,EAAiBA,EAAekkB,0BAA2BnkB,EAAYxuB,MAAOwuB,EAAYlT,IAAI1vB,OAAS4iC,EAAYxuB,MAAMpU,QAEzFi1B,EACjC,CA4CO,SAASi5C,GAAiBj5C,GAChC,MAAMmnC,EAA0B,IAEhC,SAASvhF,EAASo6C,GACjB,GAAqB,iBAATA,EACXmnC,EAAW74E,KAAM,IAAI,GAAM0xC,SACrB,GAAKA,aAAiB,GAC5BmnC,EAAW74E,KAAM,IAAI,GAAM0xC,EAAMxuC,KAAMwuC,EAAMlB,uBACvC,GAAKkB,aAAiB,GAC5BmnC,EAAW74E,KAAM0xC,QACX,GAAKh6B,GAAYg6B,GACvB,UAAYnyC,KAAQmyC,EACnBp6C,EAASiI,OAEJ,CAIP,CACD,CAEAjI,CAASo6C,GAGT,QAAU92C,EAAI,EAAGA,EAAIi+E,EAAWngF,OAAQkC,IAAM,CAC7C,MAAM2E,EAAOs5E,EAAYj+E,GACnB0gC,EAAOu9C,EAAYj+E,EAAI,GAExB2E,aAAgB,IAAQ+7B,aAAgB,IAAQyvD,GAAqBxrF,EAAM+7B,KAE/Eu9C,EAAWjxE,OAAQhN,EAAI,EAAG,EAAG,IAAI,GAAM0gC,EAAKp4B,KAAO3D,EAAK2D,KAAMo4B,EAAKkV,kBACnE51C,IAEF,CAEA,OAAOi+E,CACR,CAWA,SAASgS,GAAoB1zE,EAAqCnS,GACjE,MAAM0vC,EAAav9B,EAAQowB,SAAUviC,EAAQ,GACvCyvC,EAAYt9B,EAAQowB,SAAUviC,GAGpC,GAAK0vC,GAAcD,GAAaC,EAAW/lC,GAAI,UAAa8lC,EAAU9lC,GAAI,UAAao8E,GAAqBr2C,EAAYD,GAAc,CAErI,MAAMu2C,EAAa,IAAI,GAAMt2C,EAAWxxC,KAAOuxC,EAAUvxC,KAAMwxC,EAAWlE,iBAG1Er5B,EAAQoxB,gBAAiBvjC,EAAQ,EAAG,GAGpCmS,EAAQi5B,aAAcprC,EAAQ,EAAGgmF,EAClC,CACD,CAQA,SAASJ,GAAsB/iE,GAC9B,MAAMqhB,EAAWrhB,EAASqhB,SACpB/xB,EAAU0Q,EAAS7oB,OAEzB,GAAKkqC,EAAW,CACf,MAAM+hD,EAAapjE,EAASpL,OAASysB,EAASqL,YACxCvvC,EAAQkkC,EAASlkC,MAEvBmS,EAAQoxB,gBAAiBvjC,EAAO,GAEhC,MAAMkmF,EAAY,IAAI,GAAMhiD,EAAShmC,KAAKsP,OAAQ,EAAGy4E,GAAc/hD,EAASsH,iBACtE26C,EAAa,IAAI,GAAMjiD,EAAShmC,KAAKsP,OAAQy4E,GAAc/hD,EAASsH,iBAE1Er5B,EAAQi5B,aAAcprC,EAAO,CAAEkmF,EAAWC,GAC3C,CACD,CASA,SAASJ,GAAqBK,EAAaC,GAC1C,MAAMC,EAAYF,EAAM56C,gBAClB+6C,EAAYF,EAAM76C,gBAExB,UAAY4Y,KAAQkiC,EAAY,CAC/B,GAAKliC,EAAM,KAAQiiC,EAAMvwD,aAAcsuB,EAAM,IAC5C,OAAO,EAGRmiC,EAAU7pF,MACX,CAEA,OAAO6pF,EAAU7pF,OAAOC,IACzB,CCjPe,MAAM6pF,WAAsBlB,GAInCpnB,eAKAz3D,QAKA6zC,eAYP,WAAAn9C,CAAa+gE,EAA0Bz3D,EAAiB6zC,EAA0BirC,GACjFt8E,MAAOs8E,GAEPnqF,KAAK8iE,eAAiBA,EAAe9+C,QAErChkB,KAAK8iE,eAAe1B,WAAa,SAEjCphE,KAAKqL,QAAUA,EAEfrL,KAAKk/C,eAAiBA,EAAel7B,QACrChkB,KAAKk/C,eAAekiB,WAAa,QAClC,CAKA,QAAWj2D,GACV,MAA0C,cAArCnL,KAAKk/C,eAAe5oD,KAAKwqC,SACtB,SACyC,cAArC9gC,KAAK8iE,eAAexsE,KAAKwqC,SAC7B,WAGD,MACR,CAKA,sBAAWuqD,GACV,MAAO,CACN,GAAM30C,4BAA6B12C,KAAK8iE,eAAgB9iE,KAAKqL,SAC7D,GAAMqrC,4BAA6B12C,KAAKk/C,eAAgB,GAE1D,CAKO,KAAAl7B,GACN,OAAO,IAAIonE,GAAeprF,KAAK8iE,eAAgB9iE,KAAKqL,QAASrL,KAAKk/C,eAAgBl/C,KAAKmqF,YACxF,CAgBO,kBAAAmB,GACN,OAAOtrF,KAAKk/C,eAAekkB,0BAA2BpjE,KAAK8iE,eAAgB9iE,KAAKqL,QACjF,CAKO,WAAAkgF,GACN,MAAMC,EAAoBxrF,KAAK8iE,eAAeF,2BAA4B5iE,KAAKk/C,eAAgBl/C,KAAKqL,SAEpG,OAAO,IAAI+/E,GAAeprF,KAAKsrF,qBAAsBtrF,KAAKqL,QAASmgF,EAAmBxrF,KAAKmqF,YAAe,EAC3G,CAMgB,SAAAC,GACf,MAAMqB,EAAgBzrF,KAAK8iE,eAAelkE,OACpC8sF,EAAgB1rF,KAAKk/C,eAAetgD,OACpC+sF,EAAe3rF,KAAK8iE,eAAezmD,OACnCuvE,EAAe5rF,KAAKk/C,eAAe7iC,OAKzC,GAAKsvE,EAAe3rF,KAAKqL,QAAUogF,EAActrB,UAMhD,MAAM,IAAIzyD,EACT,oCAAqC1N,MAEhC,GAAKyrF,IAAkBC,GAAiBC,EAAeC,GAAgBA,EAAeD,EAAe3rF,KAAKqL,QAMhH,MAAM,IAAIqC,EACT,mCAAoC1N,MAE/B,GAAKA,KAAK8iE,eAAexsE,MAAQ0J,KAAKk/C,eAAe5oD,MACuC,UAA7F+gB,GAAerX,KAAK8iE,eAAejB,gBAAiB7hE,KAAKk/C,eAAe2iB,iBAAgC,CAC5G,MAAMrnE,EAAIwF,KAAK8iE,eAAerjE,KAAKnH,OAAS,EAE5C,GAAK0H,KAAKk/C,eAAez/C,KAAMjF,IAAOmxF,GAAgB3rF,KAAKk/C,eAAez/C,KAAMjF,GAAMmxF,EAAe3rF,KAAKqL,QAMzG,MAAM,IAAIqC,EACT,kCAAmC1N,KAGtC,CAEF,CAMO,QAAA6rF,GACNnB,GAAO,GAAMh0C,4BAA6B12C,KAAK8iE,eAAgB9iE,KAAKqL,SAAWrL,KAAKk/C,eACrF,CAKgB,MAAA7W,GACf,MAAMC,EAAYz6B,MAAMw6B,SAKxB,OAHAC,EAAKw6B,eAAiB9iE,KAAK8iE,eAAez6B,SAC1CC,EAAK4W,eAAiBl/C,KAAKk/C,eAAe7W,SAEnCC,CACR,CAKA,oBAA2BiI,GAC1B,MAAO,eACR,CAQA,eAAuBwwB,CAAUz4B,EAAW9kC,GAC3C,MAAMs/D,EAAiB,GAAS/B,SAAUz4B,EAAKw6B,eAAgBt/D,GACzD07C,EAAiB,GAAS6hB,SAAUz4B,EAAK4W,eAAgB17C,GAE/D,OAAO,IAAIxD,KAAM8iE,EAAgBx6B,EAAKj9B,QAAS6zC,EAAgB5W,EAAK6hD,YACrE,ECvLc,MAAM2B,WAAwB5B,GAMrCziE,SAOA6pB,MAOAy6C,wBAUP,WAAAhqF,CAAa0lB,EAAoB6pB,EAAgB64C,GAChDt8E,MAAOs8E,GAEPnqF,KAAKynB,SAAWA,EAASzD,QACzBhkB,KAAKynB,SAAS25C,WAAa,SAC3BphE,KAAKsxC,MAAQ,IAAI2uB,GAAUsqB,GAAiBj5C,IAC5CtxC,KAAK+rF,yBAA0B,CAChC,CAKA,QAAW5gF,GACV,MAAO,QACR,CAKA,WAAWE,GACV,OAAOrL,KAAKsxC,MAAM6uB,SACnB,CAKA,sBAAWkrB,GACV,OAAOrrF,KAAKynB,SAASzD,OACtB,CAKO,KAAAA,GACN,MAAMstB,EAAQ,IAAI2uB,GAAU,IAAKjgE,KAAKsxC,OAAQt0C,KAAKmC,GAAQA,EAAKypC,QAAQ,MAClEljC,EAAS,IAAIomF,GAAiB9rF,KAAKynB,SAAU6pB,EAAOtxC,KAAKmqF,aAI/D,OAFAzkF,EAAOqmF,wBAA0B/rF,KAAK+rF,wBAE/BrmF,CACR,CAKO,WAAA6lF,GACN,MAAM7nB,EAAY1jE,KAAKynB,SAASnxB,KAAKkN,SAAUkgE,UACzCsoB,EAAa,IAAI,GAAUtoB,EAAW,CAAE,IAE9C,OAAO,IAAI0nB,GAAeprF,KAAKynB,SAAUznB,KAAKsxC,MAAM6uB,UAAW6rB,EAAYhsF,KAAKmqF,YAAe,EAChG,CAMgB,SAAAC,GACf,MAAMsB,EAAgB1rF,KAAKynB,SAAS7oB,OAEpC,IAAM8sF,GAAiBA,EAAcvrB,UAAYngE,KAAKynB,SAASpL,OAM9D,MAAM,IAAI3O,EACT,oCACA1N,KAGH,CAMO,QAAA6rF,GAKN,MAAMI,EAAgBjsF,KAAKsxC,MAC3BtxC,KAAKsxC,MAAQ,IAAI2uB,GAAU,IAAKgsB,GAAgBjvF,KAAKmC,GAAQA,EAAKypC,QAAQ,MAE1El9B,GAAS1L,KAAKynB,SAAUwkE,EACzB,CAKgB,MAAA5jD,GACf,MAAMC,EAAYz6B,MAAMw6B,SAKxB,OAHAC,EAAK7gB,SAAWznB,KAAKynB,SAAS4gB,SAC9BC,EAAKgJ,MAAQtxC,KAAKsxC,MAAMjJ,SAEjBC,CACR,CAKA,oBAA2BiI,GAC1B,MAAO,iBACR,CAQA,eAAuBwwB,CAAUz4B,EAAW9kC,GAC3C,MAAM0U,EAAW,GAEjB,UAAYI,KAASgwB,EAAKgJ,MACpBh5B,EAAMtW,KAEVkW,EAAStY,KAAM,GAAQmhE,SAAUzoD,IAGjCJ,EAAStY,KAAM,GAAKmhE,SAAUzoD,IAIhC,MAAM5S,EAAS,IAAIomF,GAAiB,GAAS/qB,SAAUz4B,EAAK7gB,SAAUjkB,GAAY0U,EAAUowB,EAAK6hD,aAGjG,OAFAzkF,EAAOqmF,wBAA0BzjD,EAAKyjD,wBAE/BrmF,CACR,EC/Jc,MAAMwmF,WAAuBhC,GAIpCjnB,cAKA53D,QAKA62C,kBAQAihB,kBAaP,WAAAphE,CACCkhE,EACA53D,EACA62C,EACAihB,EACAgnB,GAEAt8E,MAAOs8E,GAEPnqF,KAAKijE,cAAgBA,EAAcj/C,QAGnChkB,KAAKijE,cAAc7B,WAAa,SAEhCphE,KAAKqL,QAAUA,EACfrL,KAAKkiD,kBAAoBA,EACzBliD,KAAKmjE,kBAAoBA,EAAoBA,EAAkBn/C,QAAU,KAEpEhkB,KAAKmjE,oBACTnjE,KAAKmjE,kBAAkB/B,WAAa,SAEtC,CAKA,QAAWj2D,GACV,MAAO,OACR,CAOA,sBAAW+3D,GACV,MAAMzjE,EAAOO,KAAKkiD,kBAAkBziD,KAAKqC,QAGzC,OAFArC,EAAKG,KAAM,GAEJ,IAAI,GAAUI,KAAKkiD,kBAAkB5rD,KAAMmJ,EACnD,CAMA,cAAWsjE,GACV,MAAMh3B,EAAM/rC,KAAKijE,cAAcxuB,aAAcptB,OAAOC,mBAEpD,OAAO,IAAI,GAAOtnB,KAAKijE,cAAel3B,EACvC,CAKA,sBAAWs/C,GAEV,MAAMr1C,EAAS,CACd,GAAMU,4BAA6B12C,KAAKijE,cAAe,GACvD,GAAMvsB,4BAA6B12C,KAAKkiD,kBAAmB,IAO5D,OAJKliD,KAAKmjE,mBACTntB,EAAOp2C,KAAM,GAAM82C,4BAA6B12C,KAAKmjE,kBAAmB,IAGlEntB,CACR,CAOO,KAAAhyB,GACN,OAAO,IAAIkoE,GAAgBlsF,KAAKijE,cAAejjE,KAAKqL,QAASrL,KAAKkiD,kBAAmBliD,KAAKmjE,kBAAmBnjE,KAAKmqF,YACnH,CAKO,WAAAoB,GACN,MAAM7nB,EAAY1jE,KAAKijE,cAAc3sE,KAAKkN,SAAUkgE,UAC9CP,EAAoB,IAAI,GAAUO,EAAW,CAAE,IAErD,OAAO,IAAIyoB,GAAgBnsF,KAAKkjE,mBAAoBljE,KAAKqL,QAASrL,KAAKijE,cAAeE,EAAmBnjE,KAAKmqF,YAAe,EAC9H,CAMgB,SAAAC,GACf,MAAMrzE,EAAU/W,KAAKijE,cAAcrkE,OAC7Byd,EAASrc,KAAKijE,cAAc5mD,OAGlC,IAAMtF,GAAWA,EAAQopD,UAAY9jD,EAMpC,MAAM,IAAI3O,EAAe,mCAAoC1N,MACvD,IAAM+W,EAAQnY,OAMpB,MAAM,IAAI8O,EAAe,gCAAiC1N,MACpD,GAAKA,KAAKqL,SAAW0L,EAAQopD,UAAYngE,KAAKijE,cAAc5mD,OAMlE,MAAM,IAAI3O,EAAe,mCAAoC1N,MACvD,GAAKA,KAAKmjE,oBAAsBnjE,KAAKmjE,kBAAkB9uB,UAM7D,MAAM,IAAI3mC,EAAe,6CAA8C1N,KAEzE,CAMO,QAAA6rF,GACN,MAAMO,EAAepsF,KAAKijE,cAAcrkE,OAExC,GAAKoB,KAAKmjE,kBACTunB,GAAO,GAAMh0C,4BAA6B12C,KAAKmjE,kBAAmB,GAAKnjE,KAAKkiD,uBACtE,CACN,MAAMlrC,EAAeo1E,EAAsBxjD,SAE3Cl9B,GAAS1L,KAAKkiD,kBAAmBlrC,EAClC,CAOA0zE,GALoB,IAAI,GACvB,GAASt3C,UAAWg5C,EAAcpsF,KAAKijE,cAAc5mD,QACrD,GAAS+2B,UAAWg5C,EAAcA,EAAajsB,YAG5BngE,KAAKkjE,mBAC1B,CAKgB,MAAA76B,GACf,MAAMC,EAAYz6B,MAAMw6B,SASxB,OAPAC,EAAK26B,cAAgBjjE,KAAKijE,cAAc56B,SACxCC,EAAK4Z,kBAAoBliD,KAAKkiD,kBAAkB7Z,SAE3CroC,KAAKmjE,oBACT76B,EAAK66B,kBAAoBnjE,KAAKmjE,kBAAkB96B,UAG1CC,CACR,CAKA,oBAA2BiI,GAC1B,MAAO,gBACR,CAMA,2BAAc87C,CAAsBppB,GACnC,MAAMxjE,EAAOwjE,EAAcxjE,KAAKqC,MAAO,GAAI,GAG3C,OAFArC,EAAMA,EAAKnH,OAAS,KAEb,IAAI,GAAU2qE,EAAc3sE,KAAMmJ,EAAM,aAChD,CAQA,eAAuBshE,CAAUz4B,EAAW9kC,GAC3C,MAAMy/D,EAAgB,GAASlC,SAAUz4B,EAAK26B,cAAez/D,GACvD0+C,EAAoB,GAAS6e,SAAUz4B,EAAK4Z,kBAAmB1+C,GAC/D2/D,EAAoB76B,EAAK66B,kBAAoB,GAASpC,SAAUz4B,EAAK66B,kBAAmB3/D,GAAa,KAE3G,OAAO,IAAIxD,KAAMijE,EAAe36B,EAAKj9B,QAAS62C,EAAmBihB,EAAmB76B,EAAK6hD,YAC1F,ECpOc,MAAMgC,WAAuBjC,GAIpCpnB,eAKAz3D,QAKA6zC,eAKAikB,kBAaP,WAAAphE,CACC+gE,EACAz3D,EACA6zC,EACAikB,EACAgnB,GAEAt8E,MAAOs8E,GAEPnqF,KAAK8iE,eAAiBA,EAAe9+C,QAErChkB,KAAK8iE,eAAe1B,WAAa,aAEjCphE,KAAKqL,QAAUA,EACfrL,KAAKk/C,eAAiBA,EAAel7B,QAIrChkB,KAAKk/C,eAAekiB,WAAa,SACjCphE,KAAKmjE,kBAAoBA,EAAkBn/C,OAC5C,CAKA,QAAW7Y,GACV,MAAO,OACR,CAKA,oBAAWk4D,GACV,OAAO,IAAI,GAAUrjE,KAAK8iE,eAAexsE,KAAM0J,KAAK8iE,eAAerjE,KAAKqC,MAAO,GAAI,GACpF,CAMA,cAAWihE,GACV,MAAMh3B,EAAM/rC,KAAK8iE,eAAeruB,aAAcptB,OAAOC,mBAErD,OAAO,IAAI,GAAOtnB,KAAK8iE,eAAgB/2B,EACxC,CAKA,sBAAWs/C,GACV,MAAMiB,EAAgBtsF,KAAK8iE,eAAelkE,OAE1C,MAAO,CACN,GAAMg4C,UAAW01C,GAGjB,GAAM51C,4BAA6B12C,KAAKk/C,eAAgB,GACxD,GAAMxI,4BAA6B12C,KAAKmjE,kBAAmB,GAE7D,CAKO,KAAAn/C,GACN,OAAO,IAAImoE,GAAgBnsF,KAAK8iE,eAAgB9iE,KAAKqL,QAASrL,KAAKk/C,eAAgBl/C,KAAKmjE,kBAAmBnjE,KAAKmqF,YACjH,CAKO,WAAAoB,GAIN,MAAMrsC,EAAiBl/C,KAAKk/C,eAAeyjB,gCAAiC3iE,MAEtEP,EAAOO,KAAK8iE,eAAerjE,KAAKqC,MAAO,GAAI,GAC3CogD,EAAoB,IAAI,GAAUliD,KAAK8iE,eAAexsE,KAAMmJ,GAAOkjE,gCAAiC3iE,MAE1G,OAAO,IAAIksF,GAAgBhtC,EAAgBl/C,KAAKqL,QAAS62C,EAAmBliD,KAAKmjE,kBAAmBnjE,KAAKmqF,YAAe,EACzH,CAMgB,SAAAC,GACf,MAAMqB,EAAgBzrF,KAAK8iE,eAAelkE,OACpC8sF,EAAgB1rF,KAAKk/C,eAAetgD,OAG1C,IAAM6sF,EAAc7sF,OAMnB,MAAM,IAAI8O,EAAe,0CAA2C1N,MAC9D,IAAM0rF,EAAc9sF,OAM1B,MAAM,IAAI8O,EAAe,0CAA2C1N,MAC9D,GAAKA,KAAKqL,SAAWogF,EAActrB,UAMzC,MAAM,IAAIzyD,EAAe,mCAAoC1N,KAE/D,CAMO,QAAA6rF,GACN,MAAMS,EAAgBtsF,KAAK8iE,eAAelkE,OAG1C8rF,GAFoB,GAAM/zC,UAAW21C,GAEjBtsF,KAAKk/C,gBACzBwrC,GAAO,GAAM9zC,UAAW01C,GAAiBtsF,KAAKmjE,kBAC/C,CAKgB,MAAA96B,GACf,MAAMC,EAAYz6B,MAAMw6B,SAMxB,OAJAC,EAAKw6B,eAAiBx6B,EAAKw6B,eAAez6B,SAC1CC,EAAK4W,eAAiB5W,EAAK4W,eAAe7W,SAC1CC,EAAK66B,kBAAoB76B,EAAK66B,kBAAkB96B,SAEzCC,CACR,CAKA,oBAA2BiI,GAC1B,MAAO,gBACR,CAQA,eAAuBwwB,CAAUz4B,EAAW9kC,GAC3C,MAAMs/D,EAAiB,GAAS/B,SAAUz4B,EAAKw6B,eAAgBt/D,GACzD07C,EAAiB,GAAS6hB,SAAUz4B,EAAK4W,eAAgB17C,GACzD2/D,EAAoB,GAASpC,SAAUz4B,EAAK66B,kBAAmB3/D,GAErE,OAAO,IAAIxD,KAAM8iE,EAAgBx6B,EAAKj9B,QAAS6zC,EAAgBikB,EAAmB76B,EAAK6hD,YACxF,EC7Mc,MAAMoC,WAAwBrC,GAMrCloF,KAOAoqE,SAOArrB,SAQArgB,YAKU8rD,SAYjB,WAAAzqF,CACCC,EACAoqE,EACArrB,EACA0oB,EACA/oC,EACAypD,GAEAt8E,MAAOs8E,GAEPnqF,KAAKgC,KAAOA,EACZhC,KAAKosE,SAAWA,EAAWA,EAASpoD,QAAU,KAC9ChkB,KAAK+gD,SAAWA,EAAWA,EAAS/8B,QAAU,KAC9ChkB,KAAK0gC,YAAcA,EAEnB1gC,KAAKwsF,SAAW/iB,CACjB,CAKA,QAAWt+D,GACV,MAAO,QACR,CAKA,sBAAWkgF,GACV,MAAMr1C,EAAS,GAcf,OAZKh2C,KAAKosE,UACTp2B,EAAOp2C,KAAMI,KAAKosE,SAASpoD,SAGvBhkB,KAAK+gD,WACJ/gD,KAAKosE,SACTp2B,EAAOp2C,QAASI,KAAK+gD,SAAShL,cAAe/1C,KAAKosE,WAElDp2B,EAAOp2C,KAAMI,KAAK+gD,SAAS/8B,UAItBgyB,CACR,CAKO,KAAAhyB,GACN,OAAO,IAAIuoE,GAAiBvsF,KAAKgC,KAAMhC,KAAKosE,SAAUpsE,KAAK+gD,SAAU/gD,KAAKwsF,SAAUxsF,KAAK0gC,YAAa1gC,KAAKmqF,YAC5G,CAKO,WAAAoB,GACN,OAAO,IAAIgB,GAAiBvsF,KAAKgC,KAAMhC,KAAK+gD,SAAU/gD,KAAKosE,SAAUpsE,KAAKwsF,SAAUxsF,KAAK0gC,YAAa1gC,KAAKmqF,YAAe,EAC3H,CAMO,QAAA0B,GACD7rF,KAAK+gD,SACT/gD,KAAKwsF,SAASC,KAAMzsF,KAAKgC,KAAMhC,KAAK+gD,UAAU,EAAM/gD,KAAK0gC,aAEzD1gC,KAAKwsF,SAASn4D,QAASr0B,KAAKgC,KAE9B,CAMgB,MAAAqmC,GACf,MAAMC,EAAYz6B,MAAMw6B,SAYxB,OAVKroC,KAAKosE,WACT9jC,EAAK8jC,SAAWpsE,KAAKosE,SAAS/jC,UAG1BroC,KAAK+gD,WACTzY,EAAKyY,SAAW/gD,KAAK+gD,SAAS1Y,iBAGxBC,EAAKkkD,SAELlkD,CACR,CAKA,oBAA2BiI,GAC1B,MAAO,iBACR,CAQA,eAAuBwwB,CAAUz4B,EAAW9kC,GAC3C,OAAO,IAAI+oF,GACVjkD,EAAKtmC,KACLsmC,EAAK8jC,SAAW,GAAMrL,SAAUz4B,EAAK8jC,SAAU5oE,GAAa,KAC5D8kC,EAAKyY,SAAW,GAAMggB,SAAUz4B,EAAKyY,SAAUv9C,GAAa,KAC5DA,EAASpL,MAAMqxE,QACfnhC,EAAK5H,YACL4H,EAAK6hD,YAEP,EC7ID,SAJA,SAAiB3xF,EAAOygB,GACtB,OAAO,GAAYzgB,EAAOygB,EAC5B,ECRe,MAAMyzE,WAA2BxC,GAMxCnjE,MAOAhwB,IAOA4c,SAOAC,SAqBP,WAAA7R,CAAaglB,EAAchwB,EAAa4c,EAAmBC,EAAmBu2E,GAC7Et8E,MAAOs8E,GAEPnqF,KAAK+mB,MAAQA,EAAM/C,QACnBhkB,KAAKjJ,IAAMA,EACXiJ,KAAK2T,cAAwB,IAAbA,EAAyB,KAAOA,EAChD3T,KAAK4T,cAAwB,IAAbA,EAAyB,KAAOA,CACjD,CAKA,QAAWzI,GACV,OAAuB,OAAlBnL,KAAK2T,SACF,eACsB,OAAlB3T,KAAK4T,SACT,kBAEA,iBAET,CAKA,sBAAWy3E,GACV,OAAOrrF,KAAK+mB,MAAM/C,OACnB,CAKO,KAAAA,GACN,OAAO,IAAI0oE,GAAoB1sF,KAAK+mB,MAAO/mB,KAAKjJ,IAAKiJ,KAAK2T,SAAU3T,KAAK4T,SAAU5T,KAAKmqF,YACzF,CAKO,WAAAoB,GACN,OAAO,IAAImB,GAAoB1sF,KAAK+mB,MAAO/mB,KAAKjJ,IAAKiJ,KAAK4T,SAAU5T,KAAK2T,SAAU3T,KAAKmqF,YAAe,EACxG,CAKgB,MAAA9hD,GACf,MAAMC,EAAYz6B,MAAMw6B,SAIxB,OAFAC,EAAKvhB,MAAQ/mB,KAAK+mB,MAAMshB,SAEjBC,CACR,CAMgB,SAAA8hD,GACf,IAAMpqF,KAAK+mB,MAAMxI,OAMhB,MAAM,IAAI7Q,EAAe,qCAAsC1N,MAGhE,UAAYC,KAAQD,KAAK+mB,MAAMsvB,SAAU,CAAExD,SAAS,IAAW,CAC9D,GAAuB,OAAlB7yC,KAAK2T,WAAsB,GAAS1T,EAAKy6B,aAAc16B,KAAKjJ,KAAOiJ,KAAK2T,UAS5E,MAAM,IAAIjG,EACT,sCACA1N,KACA,CAAEC,OAAMlJ,IAAKiJ,KAAKjJ,IAAKyB,MAAOwH,KAAK2T,WAIrC,GAAuB,OAAlB3T,KAAK2T,UAAuC,OAAlB3T,KAAK4T,UAAqB3T,EAAKowC,aAAcrwC,KAAKjJ,KAQhF,MAAM,IAAI2W,EACT,uCACA1N,KACA,CAAEb,KAAMc,EAAMlJ,IAAKiJ,KAAKjJ,KAG3B,CACD,CAMO,QAAA80F,GAEA,GAAS7rF,KAAK2T,SAAU3T,KAAK4T,WPvD9B,SAAwBmT,EAAchwB,EAAayB,GAEzDgyF,GAAsBzjE,EAAM0J,OAC5B+5D,GAAsBzjE,EAAMglB,KAG5B,UAAY9rC,KAAQ8mB,EAAMsvB,SAAU,CAAExD,SAAS,IAAW,CAIzD,MAAM1zC,EAAOc,EAAKsO,GAAI,cAAiBtO,EAAK6oC,SAAW7oC,EAExC,OAAVzH,EACJ2G,EAAKoyC,cAAex6C,EAAKyB,GAEzB2G,EAAKsyC,iBAAkB16C,GAIxB0zF,GAAoBtrF,EAAKP,OAASO,EAAKyF,MACxC,CAGA6lF,GAAoB1jE,EAAMglB,IAAIntC,OAAQmoB,EAAMglB,IAAInnC,MACjD,COiCG2sC,CAAevxC,KAAK+mB,MAAO/mB,KAAKjJ,IAAKiJ,KAAK4T,SAE5C,CAKA,oBAA2B28B,GAC1B,MAAO,oBACR,CAQA,eAAuBwwB,CAAUz4B,EAAW9kC,GAC3C,OAAO,IAAIkpF,GAAoB,GAAM3rB,SAAUz4B,EAAKvhB,MAAOvjB,GAAY8kC,EAAKvxC,IAAKuxC,EAAK30B,SAAU20B,EAAK10B,SAAU00B,EAAK6hD,YACrH,ECrLc,MAAMwC,WAAoBzC,GACxC,QAAW/+E,GACV,MAAO,MACR,CAKA,sBAAWkgF,GACV,OAAO,IACR,CAKO,KAAArnE,GACN,OAAO,IAAI2oE,GAAa3sF,KAAKmqF,YAC9B,CAKO,WAAAoB,GACN,OAAO,IAAIoB,GAAa3sF,KAAKmqF,YAAe,EAC7C,CAGO,QAAA0B,GACP,CAKA,oBAA2Bt7C,GAC1B,MAAO,aACR,EChCc,MAAMq8C,WAAwB1C,GAIrCziE,SAKAolE,QAKA3rC,QAWP,WAAAn/C,CAAa0lB,EAAoBolE,EAAiB3rC,EAAiBipC,GAClEt8E,MAAOs8E,GAEPnqF,KAAKynB,SAAWA,EAEhBznB,KAAKynB,SAAS25C,WAAa,SAE3BphE,KAAK6sF,QAAUA,EACf7sF,KAAKkhD,QAAUA,CAChB,CAKA,QAAW/1C,GACV,MAAO,QACR,CAKA,sBAAWkgF,GACV,OAAOrrF,KAAKynB,SAAS4sB,SACtB,CAOO,KAAArwB,GACN,OAAO,IAAI4oE,GAAiB5sF,KAAKynB,SAASzD,QAAShkB,KAAK6sF,QAAS7sF,KAAKkhD,QAASlhD,KAAKmqF,YACrF,CAKO,WAAAoB,GACN,OAAO,IAAIqB,GAAiB5sF,KAAKynB,SAASzD,QAAShkB,KAAKkhD,QAASlhD,KAAK6sF,QAAS7sF,KAAKmqF,YAAe,EACpG,CAMgB,SAAAC,GACf,MAAMrzE,EAAU/W,KAAKynB,SAAS4sB,UAE9B,KAAQt9B,aAAmB,IAM1B,MAAM,IAAIrJ,EACT,kCACA1N,MAEK,GAAK+W,EAAQ/U,OAAShC,KAAK6sF,QAMjC,MAAM,IAAIn/E,EACT,8BACA1N,KAGH,CAMO,QAAA6rF,GACU7rF,KAAKynB,SAAS4sB,UAEXryC,KAAOhC,KAAKkhD,OAChC,CAKgB,MAAA7Y,GACf,MAAMC,EAAYz6B,MAAMw6B,SAIxB,OAFAC,EAAK7gB,SAAWznB,KAAKynB,SAAS4gB,SAEvBC,CACR,CAKA,oBAA2BiI,GAC1B,MAAO,iBACR,CAQA,eAAuBwwB,CAAUz4B,EAAW9kC,GAC3C,OAAO,IAAIopF,GAAiB,GAAS7rB,SAAUz4B,EAAK7gB,SAAUjkB,GAAY8kC,EAAKukD,QAASvkD,EAAK4Y,QAAS5Y,EAAK6hD,YAC5G,EChIc,MAAM2C,WAA+B5C,GAInC5zF,KAKAS,IAOT4c,SAOAC,SAaP,WAAA7R,CACCzL,EACAS,EACA4c,EACAC,EACAu2E,GAEAt8E,MAAOs8E,GAEPnqF,KAAK1J,KAAOA,EACZ0J,KAAKjJ,IAAMA,EACXiJ,KAAK2T,cAAwB,IAAbA,EAAyB,KAAOA,EAChD3T,KAAK4T,cAAwB,IAAbA,EAAyB,KAAOA,CACjD,CAKA,QAAWzI,GACV,OAAuB,OAAlBnL,KAAK2T,SACF,mBACsB,OAAlB3T,KAAK4T,SACT,sBAEA,qBAET,CAKA,sBAAWy3E,GACV,OAAOrrF,KAAK1J,IACb,CAOO,KAAA0tB,GACN,OAAO,IAAI8oE,GAAwB9sF,KAAK1J,KAAM0J,KAAKjJ,IAAKiJ,KAAK2T,SAAU3T,KAAK4T,SAAU5T,KAAKmqF,YAC5F,CAKO,WAAAoB,GACN,OAAO,IAAIuB,GAAwB9sF,KAAK1J,KAAM0J,KAAKjJ,IAAKiJ,KAAK4T,SAAU5T,KAAK2T,SAAU3T,KAAKmqF,YAAe,EAC3G,CAMgB,SAAAC,GACf,GAAKpqF,KAAK1J,MAAQ0J,KAAK1J,KAAKA,MAAQ0J,KAAK1J,KAAKiY,GAAI,oBASjD,MAAM,IAAIb,EACT,qCACA1N,KACA,CAAE1J,KAAM0J,KAAK1J,KAAMS,IAAKiJ,KAAKjJ,MAI/B,GAAuB,OAAlBiJ,KAAK2T,UAAqB3T,KAAK1J,KAAKokC,aAAc16B,KAAKjJ,OAAUiJ,KAAK2T,SAS1E,MAAM,IAAIjG,EACT,0CACA1N,KACA,CAAE1J,KAAM0J,KAAK1J,KAAMS,IAAKiJ,KAAKjJ,MAI/B,GAAuB,OAAlBiJ,KAAK2T,UAAuC,OAAlB3T,KAAK4T,UAAqB5T,KAAK1J,KAAK+5C,aAAcrwC,KAAKjJ,KAQrF,MAAM,IAAI2W,EACT,2CACA1N,KACA,CAAE1J,KAAM0J,KAAK1J,KAAMS,IAAKiJ,KAAKjJ,KAGhC,CAMgB,QAAA80F,GACQ,OAAlB7rF,KAAK4T,SACT5T,KAAK1J,KAAKi7C,cAAevxC,KAAKjJ,IAAKiJ,KAAK4T,UAExC5T,KAAK1J,KAAKm7C,iBAAkBzxC,KAAKjJ,IAEnC,CAKgB,MAAAsxC,GACf,MAAMC,EAAYz6B,MAAMw6B,SAIxB,OAFAC,EAAKhyC,KAAO0J,KAAK1J,KAAK+xC,SAEfC,CACR,CAKA,oBAA2BiI,GAC1B,MAAO,wBACR,CAQA,eAAuBwwB,CAAUz4B,EAAW9kC,GAC3C,IAAMA,EAASw3C,QAAS1S,EAAKhyC,MAO5B,MAAM,IAAIoX,EAAe,2CAA4C1N,KAAM,CAAE8gC,SAAUwH,EAAKhyC,OAG7F,OAAO,IAAIw2F,GAAwBtpF,EAASw3C,QAAS1S,EAAKhyC,MAASgyC,EAAKvxC,IAAKuxC,EAAK30B,SAAU20B,EAAK10B,SAAU00B,EAAK6hD,YACjH,ECtMc,MAAM4C,WAAsB7C,GAI1BppD,SAKAytB,YAKAy+B,MAKC1d,UAWjB,WAAAvtE,CACC++B,EACAytB,EACAy+B,EACAxpF,EACA2mF,GAaA,GAXAt8E,MAAOs8E,GAEPnqF,KAAK8gC,SAAWA,EAChB9gC,KAAKuuD,YAAcA,EACnBvuD,KAAKgtF,MAAQA,EACbhtF,KAAKsvE,UAAY9rE,GAMXxD,KAAKsvE,UAAUt0B,QAASh7C,KAAK8gC,UAAa,CAClC9gC,KAAKsvE,UAAU2d,WAAYjtF,KAAKuuD,YAAavuD,KAAK8gC,UAE1DosD,aAAc,CACpB,CACD,CAKA,QAAoB/hF,GACnB,OAAOnL,KAAKgtF,MAAQ,UAAY,YACjC,CAKA,sBAAW3B,GACV,OAAOrrF,KAAKsvE,UAAUt0B,QAASh7C,KAAK8gC,SACrC,CAKgB,KAAA9c,GACf,OAAO,IAAI+oE,GAAe/sF,KAAK8gC,SAAU9gC,KAAKuuD,YAAavuD,KAAKgtF,MAAOhtF,KAAKsvE,UAAWtvE,KAAKmqF,YAC7F,CAKgB,WAAAoB,GACf,OAAO,IAAIwB,GAAe/sF,KAAK8gC,SAAU9gC,KAAKuuD,aAAcvuD,KAAKgtF,MAAOhtF,KAAKsvE,UAAWtvE,KAAKmqF,YAAe,EAC7G,CAKgB,QAAA0B,GACf7rF,KAAKsvE,UAAUt0B,QAASh7C,KAAK8gC,UAAYosD,YAAcltF,KAAKgtF,KAC7D,CAKgB,MAAA3kD,GACf,MAAMC,EAAYz6B,MAAMw6B,SAIxB,cAFOC,EAAKgnC,UAELhnC,CACR,CAKA,oBAA2BiI,GAC1B,MAAO,eACR,CAQA,eAAuBwwB,CAAUz4B,EAAW9kC,GAC3C,OAAO,IAAIupF,GAAezkD,EAAKxH,SAAUwH,EAAKimB,YAAajmB,EAAK0kD,MAAOxpF,EAAU8kC,EAAK6hD,YACvF,EC9GD,MAAMhmB,GAIF,CAAC,EAELA,GAAYuoB,GAAmBn8C,WAAcm8C,GAC7CvoB,GAAY2nB,GAAgBv7C,WAAcu7C,GAC1C3nB,GAAYooB,GAAgBh8C,WAAcg8C,GAC1CpoB,GAAYinB,GAAc76C,WAAc66C,GACxCjnB,GAAYwoB,GAAYp8C,WAAco8C,GACtCxoB,GAAY+lB,GAAU35C,WAAc25C,GACpC/lB,GAAYyoB,GAAgBr8C,WAAcq8C,GAC1CzoB,GAAY2oB,GAAuBv8C,WAAcu8C,GACjD3oB,GAAY4oB,GAAcx8C,WAAcw8C,GACxC5oB,GAAY+nB,GAAe37C,WAAc27C,GACzC/nB,GAAYgoB,GAAe57C,WAAc47C,GAK1B,MAAegB,GAO7B,eAAcpsB,CAAUz4B,EAAW9kC,GAClC,OAAO2gE,GAAY77B,EAAK+hD,aAActpB,SAAUz4B,EAAM9kC,EACvD,ECvBD,MAAM4pF,GAAkB,IAAI17E,IAiB5B,SAAS27E,GAIRC,EACAC,EACAC,GAEA,IAAIC,EAASL,GAAgBhlF,IAAKklF,GAE5BG,IACLA,EAAS,IAAI/7E,IACb07E,GAAgBx7E,IAAK07E,EAAYG,IAGlCA,EAAO77E,IAAK27E,EAAYC,EACzB,CAwBA,SAASE,GAAwB/xF,GAChC,MAAO,CAAEA,EACV,CAUO,SAAS,GAAWA,EAAchD,EAAcgV,EAAiC,CAAC,GACxF,MAAM6/E,EA1BP,SAA4BF,EAAsBC,GACjD,MAAME,EAASL,GAAgBhlF,IAAKklF,GAEpC,OAAKG,GAAUA,EAAOx/E,IAAKs/E,GACnBE,EAAOrlF,IAAKmlF,GAGbG,EACR,CAkBgCC,CAAmBhyF,EAAEoG,YAAapJ,EAAEoJ,aAGnE,IAGC,OAAOyrF,EAFP7xF,EAAIA,EAAEqoB,QAE4BrrB,EAAGgV,EACtC,CAAE,MAAQzJ,GAUT,MAAMA,CACP,CAED,CAoCO,SAAS0pF,GACfC,EACAC,EACAvpF,GASAspF,EAAcA,EAAY/rF,QAC1BgsF,EAAcA,EAAYhsF,QAE1B,MAAMisF,EAAiB,IAAIC,GAAgBzpF,EAAQf,SAAUe,EAAQ0pF,aAAc1pF,EAAQ2pF,iBAC3FH,EAAeI,sBAAuBN,GACtCE,EAAeI,sBAAuBL,GAEtC,MAAMM,EAAqBL,EAAeK,mBAG1C,GAA2B,GAAtBP,EAAYv1F,QAAqC,GAAtBw1F,EAAYx1F,OAC3C,MAAO,CAAEu1F,cAAaC,cAAaM,sBAqIpC,MAAMC,EAAqB,IAAI96D,QAG/B,UAAY+6D,KAAMT,EACjBQ,EAAmBz8E,IAAK08E,EAAI,GAI7B,MAAMxrF,EAAO,CACZyrF,iBAAkBV,EAAaA,EAAYv1F,OAAS,GAAI6xF,YAAe,EACvEqE,iBAAkBV,EAAaA,EAAYx1F,OAAS,GAAI6xF,YAAe,EACvEsE,yBAA0BZ,EAAYv1F,OACtCo2F,yBAA0BZ,EAAYx1F,QAIvC,IAAIkC,EAAI,EAGR,KAAQA,EAAIqzF,EAAYv1F,QAAS,CAEhC,MAAMq2F,EAAMd,EAAarzF,GAGnBo0F,EAASP,EAAmBjmF,IAAKumF,GAGvC,GAAKC,GAAUd,EAAYx1F,OAAS,CACnCkC,IACA,QACD,CAEA,MAAMq0F,EAAMf,EAAac,GAGnBE,EAAU,GAAWH,EAAKE,EAAKd,EAAegB,WAAYJ,EAAKE,GAAK,IACpEG,EAAU,GAAWH,EAAKF,EAAKZ,EAAegB,WAAYF,EAAKF,GAAK,IAI1EZ,EAAekB,eAAgBN,EAAKE,GAEpCd,EAAeI,sBAAuBW,EAASH,GAC/CZ,EAAeI,sBAAuBa,EAASH,GAM/C,UAAYK,KAAUJ,EAMrBT,EAAmBz8E,IAAKs9E,EAAQN,EAASI,EAAQ12F,QAIlDu1F,EAAYrmF,OAAQhN,EAAG,KAAMs0F,GAC7BhB,EAAYtmF,OAAQonF,EAAQ,KAAMI,EACnC,CAEA,GAAKzqF,EAAQ4qF,aAAe,CAE3B,MAAMC,EAAyBvB,EAAYv1F,OAASwK,EAAK2rF,yBACnDY,EAAyBvB,EAAYx1F,OAASwK,EAAK4rF,yBAMzDS,GAActB,EAAawB,EAAyBD,GACpDD,GAAcrB,EAAasB,EAAyBC,EACrD,CAMA,OAHAC,GAAoBzB,EAAa/qF,EAAK0rF,kBACtCc,GAAoBxB,EAAahrF,EAAKyrF,kBAE/B,CAAEV,cAAaC,cAAaM,qBACpC,CA4BA,MAAMJ,GACWI,mBAECmB,SACAC,cACAC,iBACAC,WAWjB,WAAA3tF,CAAayB,EAAoByqF,EAAmCC,GAAkB,GAMrFluF,KAAKouF,mBAAqB,IAAI18E,IAG9B1R,KAAKuvF,SAAW/rF,EAASmsF,QAGzB3vF,KAAKwvF,cAAgBvB,EAErBjuF,KAAKyvF,mBAAqBvB,EAK1BluF,KAAK0vF,WAAa,IAAIh+E,GACvB,CAmBO,qBAAAy8E,CAAuBhqB,EAA8ByrB,EAA6B,MACxF,MAAMC,EAAoBD,EAAW5vF,KAAKouF,mBAAmBhmF,IAAKwnF,GAAa,KAE/E,UAAYrtB,KAAa4B,EACxBnkE,KAAKouF,mBAAmBx8E,IAAK2wD,EAAWstB,GAAqBttB,EAE/D,CAOO,cAAA0sB,CAAgBN,EAAgBE,GAQtC,GAAKF,aAAevD,GACdyD,aAAe1C,GACdwC,EAAIzvC,eAAe75B,QAASwpE,EAAI/rB,iBAAoB+rB,EAAI9rB,WAAWrtB,iBAAkBi5C,EAAIzvC,gBAC7Fl/C,KAAK8vF,aAAcnB,EAAKE,EAAK,kBAClBF,EAAIzvC,eAAe75B,QAASwpE,EAAIxrB,kBAC3CrjE,KAAK8vF,aAAcnB,EAAKE,EAAK,iBAClBF,EAAIzvC,eAAehX,QAAS2mD,EAAI/rB,iBAC3C9iE,KAAK8vF,aAAcnB,EAAKE,EAAK,mBAEnBA,aAAezD,KACrBuD,EAAIzvC,eAAe75B,QAASwpE,EAAI/rB,iBAAoB6rB,EAAIzvC,eAAenX,SAAU8mD,EAAI/rB,gBACzF9iE,KAAK8vF,aAAcnB,EAAKE,EAAK,gBAE7B7uF,KAAK8vF,aAAcnB,EAAKE,EAAK,qBAGzB,GAAKF,aAAezC,IAC1B,GAAK2C,aAAe1C,GACdwC,EAAI1rB,cAAcl7B,SAAU8mD,EAAI/rB,iBACpC9iE,KAAK8vF,aAAcnB,EAAKE,EAAK,oBAExB,GAAKA,aAAezD,GAC1B,GAAKuD,EAAI1rB,cAAc59C,QAASwpE,EAAI/rB,iBAAoB6rB,EAAI1rB,cAAcl7B,SAAU8mD,EAAI/rB,gBACvF9iE,KAAK8vF,aAAcnB,EAAKE,EAAK,mBACvB,CACN,MAAM9nE,EAAQ,GAAM2vB,4BAA6Bm4C,EAAI/rB,eAAgB+rB,EAAIxjF,SAEzE,GAAKsjF,EAAI1rB,cAAcZ,gBAAiBwsB,EAAI/rB,iBAAoB/7C,EAAM2uB,iBAAkBi5C,EAAI1rB,eAAkB,CAC7G,MAAM53D,EAAU0b,EAAMglB,IAAI1vB,OAASsyE,EAAI1rB,cAAc5mD,OAC/CA,EAASsyE,EAAI1rB,cAAc5mD,OAAS0K,EAAM0J,MAAMpU,OAEtDrc,KAAK8vF,aAAcnB,EAAKE,EAAK,CAAExjF,UAASgR,UACzC,CACD,OAEK,GAAKsyE,aAAexC,GACrB0C,aAAe1C,IACbwC,EAAIzvC,eAAe75B,QAASwpE,EAAI/rB,iBACrC9iE,KAAK8vF,aAAcnB,EAAKE,EAAK,uBAGzBF,EAAI7rB,eAAez9C,QAASwpE,EAAI3vC,iBACpCl/C,KAAK8vF,aAAcnB,EAAKE,EAAK,uBAGzBF,EAAI7rB,eAAez9C,QAASwpE,EAAI/rB,iBACpC9iE,KAAK8vF,aAAcnB,EAAKE,EAAK,qBAEnBA,aAAe3C,GACrByC,EAAI7rB,eAAez9C,QAASwpE,EAAI5rB,gBACpCjjE,KAAK8vF,aAAcnB,EAAKE,EAAK,iBAEnBA,aAAezD,IAAiByD,EAAIxjF,QAAU,IACpDsjF,EAAI7rB,eAAez9C,QAASwpE,EAAI/rB,eAAeruB,aAAco6C,EAAIxjF,WACrErL,KAAK8vF,aAAcnB,EAAKE,EAAK,uBAGzBF,EAAIzvC,eAAe75B,QAASwpE,EAAI/rB,iBACpC9iE,KAAK8vF,aAAcnB,EAAKE,EAAK,8BAGzB,GAAKF,aAAepC,GAAkB,CAC5C,MAAMhiB,EAAcokB,EAAI5tC,SAExB,IAAMwpB,EACL,OAGD,GAAKskB,aAAezD,GAAgB,CACnC,MAAMroB,EAAa,GAAMrsB,4BAA6Bm4C,EAAI/rB,eAAgB+rB,EAAIxjF,SAExE0kF,EAAehtB,EAAWrtB,iBAAkB60B,EAAY95C,QAC7DsyC,EAAWtyC,MAAMpL,QAASklD,EAAY95C,OAEjCu/D,EAAgBjtB,EAAWrtB,iBAAkB60B,EAAYx+B,MAC9Dg3B,EAAWh3B,IAAI1mB,QAASklD,EAAYx+B,MAE9BgkD,IAAgBC,GAAoBjtB,EAAWptB,cAAe40B,IACpEvqE,KAAK8vF,aAAcnB,EAAKE,EAAK,CAC5BoB,KAAMF,EAAe,OAAS,QAC9BtwF,KAAMswF,EAAexlB,EAAY95C,MAAMhxB,KAAKqC,QAAUyoE,EAAYx+B,IAAItsC,KAAKqC,SAG9E,MAAO,GAAK+sF,aAAe1C,GAAiB,CAC3C,MAAM+D,EAAmB3lB,EAAY95C,MAAMpL,QAASwpE,EAAI3vC,gBAClDixC,EAA8B5lB,EAAY95C,MAAMpL,QAASwpE,EAAIxrB,kBAC7D+sB,EAA4B7lB,EAAYx+B,IAAI1mB,QAASwpE,EAAIxrB,kBACzDgtB,EAAoB9lB,EAAYx+B,IAAI1mB,QAASwpE,EAAI/rB,iBAElDotB,GAAoBC,GAA+BC,GAA6BC,IACpFrwF,KAAK8vF,aAAcnB,EAAKE,EAAK,CAC5BqB,mBACAC,8BACAC,4BACAC,qBAGH,CACD,CACD,CAKO,UAAAtB,CAAYJ,EAAgBE,EAAgByB,GAClD,MAAO,CACNA,YACAC,WAAYvwF,KAAKwwF,WAAY7B,GAC7B8B,WAAYzwF,KAAKwwF,WAAY3B,GAC7B6B,WAAY1wF,KAAKwvF,cAAgBxvF,KAAK2wF,aAAchC,EAAKE,GAAQ,KACjE+B,WAAY5wF,KAAKwvF,cAAgBxvF,KAAK2wF,aAAc9B,EAAKF,GAAQ,KACjET,gBAAiBluF,KAAKyvF,iBAExB,CAOO,UAAAe,CAAYlC,GAIlB,MAAMuC,EAAa7wF,KAAKouF,mBAAmBhmF,IAAKkmF,GAGhD,OAASuC,EAAoBC,WAAa9wF,KAAKuvF,SAASwB,kBAAmBF,EAC5E,CAwBO,YAAAF,CAAchC,EAAgBE,GAEpC,MAAMmC,EAAQhxF,KAAKouF,mBAAmBhmF,IAAKymF,GACrCoC,EAAUjxF,KAAKuvF,SAAS2B,mBAAoBF,GAGlD,IAAMC,EACL,OAAO,KAGR,MAAME,EAAQnxF,KAAKouF,mBAAmBhmF,IAAKumF,GACrCyC,EAAapxF,KAAK0vF,WAAWtnF,IAAK+oF,GAGxC,OAAKC,GACGA,EAAWhpF,IAAK6oF,IAGjB,IACR,CAKQ,YAAAnB,CAAcnB,EAAgBE,EAAgBwC,GAErD,MAAMF,EAAQnxF,KAAKouF,mBAAmBhmF,IAAKumF,GACrCqC,EAAQhxF,KAAKouF,mBAAmBhmF,IAAKymF,GAE3C,IAAIuC,EAAapxF,KAAK0vF,WAAWtnF,IAAK+oF,GAEhCC,IACLA,EAAa,IAAI1/E,IACjB1R,KAAK0vF,WAAW99E,IAAKu/E,EAAOC,IAG7BA,EAAWx/E,IAAKo/E,EAAOK,EACxB,EAgDD,SAAS/B,GAAoBnrB,EAAsCgmB,GAClE,UAAY5nB,KAAa4B,EACxB5B,EAAU4nB,YAAcA,GAE1B,CAKA,SAASgF,GAAchrB,EAA8B94D,GACpD,QAAU7Q,EAAI,EAAGA,EAAI6Q,EAAS7Q,IAC7B2pE,EAAWvkE,KAAM,IAAI+sF,GAAa,GAEpC,CA2HA,SAAS2E,GAAsCC,EAAkCx6F,EAAa6c,GAC7F,MAGM49E,EAHQD,EAAgBjgD,MAGJ8uB,QAAS,GAAK1lC,aAAc3jC,GAEtD,GAAKy6F,GAAe59E,EACnB,OAAO,KAGR,MAAMmT,EAAQ,IAAI,GAAOwqE,EAAgB9pE,SAAU8pE,EAAgB9pE,SAASgtB,aAAc88C,EAAgBlmF,UAE1G,OAAO,IAAIqhF,GAAoB3lE,EAAOhwB,EAAKy6F,EAAa59E,EAAU,EACnE,CA4+CA,SAAS69E,GAA2B91F,EAAkBhD,GACrD,OAAqF,OAA9EgD,EAAEujD,eAAekkB,0BAA2BzqE,EAAEmqE,eAAgBnqE,EAAE0S,QACxE,CAYA,SAASqmF,GAA+B17C,EAAsBkJ,GAU7D,MAAMilB,EAAa,GAGnB,QAAU3pE,EAAI,EAAGA,EAAIw7C,EAAO19C,OAAQkC,IAAM,CAEzC,MAAMusB,EAAQivB,EAAQx7C,GAChB8zF,EAAK,IAAIlD,GACdrkE,EAAM0J,MACN1J,EAAMglB,IAAI1vB,OAAS0K,EAAM0J,MAAMpU,OAC/B6iC,EACA,GAGDilB,EAAWvkE,KAAM0uF,GAGjB,QAAUlqB,EAAI5pE,EAAI,EAAG4pE,EAAIpuB,EAAO19C,OAAQ8rE,IAOvCpuB,EAAQouB,GAAMpuB,EAAQouB,GAAIvB,sBAAuByrB,EAAGxrB,eAAgBwrB,EAAGpvC,eAAgBovC,EAAGjjF,SAAW,GAGtG6zC,EAAiBA,EAAe2jB,sBAAuByrB,EAAGxrB,eAAgBwrB,EAAGpvC,eAAgBovC,EAAGjjF,QACjG,CAEA,OAAO84D,CACR,CAtqDAkpB,GAAmBX,GAAoBA,IAAoB,CAAE/wF,EAAGhD,EAAGgV,KAQlE,GAAKhS,EAAE5E,MAAQ4B,EAAE5B,KAAO4E,EAAEorB,MAAM0J,MAAM4xC,gBAAiB1pE,EAAEouB,MAAM0J,OAAU,CAExE,MAAM0zC,EAAaxoE,EAAEorB,MAAMgvB,cAAep9C,EAAEouB,OAAQ/pB,KAAK+pB,GACjD,IAAI2lE,GAAoB3lE,EAAOprB,EAAE5E,IAAK4E,EAAEgY,SAAUhY,EAAEiY,SAAU,KAIhE8wD,EAAS/oE,EAAEorB,MAAM5C,gBAAiBxrB,EAAEouB,OAW1C,OATK29C,GAIC/2D,EAAQ2iF,WACZnsB,EAAWvkE,KAAM,IAAI8sF,GAAoBhoB,EAAQ/rE,EAAE5B,IAAK4B,EAAEib,SAAUjY,EAAEiY,SAAU,IAIxD,GAArBuwD,EAAW7rE,OACR,CAAE,IAAIq0F,GAAa,IAGpBxoB,CACR,CAEC,MAAO,CAAExoE,EACV,IAGD0xF,GAAmBX,GAAoBZ,IAAiB,CAAEnwF,EAAGhD,KAO5D,GAAKgD,EAAEorB,MAAM0J,MAAM4xC,gBAAiB1pE,EAAE8uB,WAAc9rB,EAAEorB,MAAM2uB,iBAAkB/8C,EAAE8uB,UAAa,CAG5F,MACMtpB,EADQxC,EAAEorB,MAAM67C,2BAA4BjqE,EAAE8uB,SAAU9uB,EAAE0S,SAAU1S,EAAEozF,yBACvD/uF,KAAKvE,GAClB,IAAIi0F,GAAoBj0F,EAAGkD,EAAE5E,IAAK4E,EAAEgY,SAAUhY,EAAEiY,SAAUjY,EAAEwuF,eAGpE,GAAKxxF,EAAEozF,wBAA0B,CA4ChC,MAAMuC,EAAKgD,GAAsC34F,EAAGgD,EAAE5E,IAAK4E,EAAEgY,UAExD26E,GACJnwF,EAAOiB,QAASkvF,EAElB,CAGA,OAAOnwF,CACR,CAKA,OAFAxC,EAAEorB,MAAQprB,EAAEorB,MAAM67C,2BAA4BjqE,EAAE8uB,SAAU9uB,EAAE0S,SAAS,GAAS,GAEvE,CAAE1P,EAAG,IAwBb0xF,GAAmBX,GAAoBP,IAAgB,CAAExwF,EAAGhD,KAC3D,MAAMq9C,EAAS,GAOVr6C,EAAEorB,MAAM0J,MAAM4xC,gBAAiB1pE,EAAE0qE,oBAChC1nE,EAAEorB,MAAM2uB,iBAAkB/8C,EAAE0qE,mBAAsB1nE,EAAEorB,MAAM0J,MAAMpL,QAAS1sB,EAAE0qE,oBAC/ErtB,EAAOp2C,KAAM,GAAM82C,4BAA6B/9C,EAAEwqE,kBAAmB,IAIvE,MAAMp8C,EAAQprB,EAAEorB,MAAM47C,gCAAiChqE,GAQvD,OALMouB,EAAMouB,aACXa,EAAOp2C,KAAMmnB,GAIPivB,EAAOh5C,KAAK+pB,GACX,IAAI2lE,GAAoB3lE,EAAOprB,EAAE5E,IAAK4E,EAAEgY,SAAUhY,EAAEiY,SAAUjY,EAAEwuF,cACrE,IAGJkD,GAAmBX,GAAoBtB,IAAe,CAAEzvF,EAAGhD,KAC1D,MAAMq9C,EAiBP,SAAqCjvB,EAAc4qE,GAClD,MAAMptB,EAAY,GAAM7tB,4BAA6Bi7C,EAAO7uB,eAAgB6uB,EAAOtmF,SAInF,IAAIq5D,EAAS,KACTD,EAA2B,GAG1BF,EAAU5uB,cAAe5uB,GAAO,GAEpC29C,EAAS39C,EACEA,EAAM0J,MAAM4xC,gBAAiBkC,EAAU9zC,QAGlDg0C,EAAa19C,EAAMgvB,cAAewuB,GAClCG,EAAS39C,EAAM5C,gBAAiBogD,IAOhCE,EAAa,CAAE19C,GAGhB,MAAM5oB,EAAuB,GAI7B,QAAU5E,KAAQkrE,EAAa,CAG9BlrE,EAAOA,EAAK6pE,0BAA2BuuB,EAAO7uB,eAAgB6uB,EAAOtmF,SAGrE,MAAM6zC,EAAiByyC,EAAOrG,qBAGxBjnB,EAAS9qE,EAAKk3B,MAAM4xC,gBAAiBnjB,GAGrC0yC,EAAQr4F,EAAKqpE,2BAA4B1jB,EAAgByyC,EAAOtmF,QAASg5D,GAE/ElmE,EAAOyB,QAASgyF,EACjB,CAIKltB,GACJvmE,EAAOyB,KACN8kE,EAAO7B,sBAAuB8uB,EAAO7uB,eAAgB6uB,EAAOzyC,eAAgByyC,EAAOtmF,SAAS,GAAS,IAIvG,OAAOlN,CACR,CAzEgB0zF,CAA4Bl2F,EAAEorB,MAAOpuB,GAGpD,OAAOq9C,EAAOh5C,KAAK+pB,GAAS,IAAI2lE,GAAoB3lE,EAAOprB,EAAE5E,IAAK4E,EAAEgY,SAAUhY,EAAEiY,SAAUjY,EAAEwuF,cAAe,IAwE5GkD,GAAmBX,GAAoBR,IAAgB,CAAEvwF,EAAGhD,KAe3D,GAAKgD,EAAEorB,MAAMglB,IAAI1mB,QAAS1sB,EAAEupD,mBAK3B,OAJMvpD,EAAEwqE,mBACPxnE,EAAEorB,MAAMglB,IAAI1vB,SAGN,CAAE1gB,GAiBV,GAAKA,EAAEorB,MAAM0J,MAAM4xC,gBAAiB1pE,EAAEsqE,gBAAmBtnE,EAAEorB,MAAM2uB,iBAAkB/8C,EAAEsqE,eAAkB,CACtG,MAAM8nB,EAAapvF,EAAEqoB,QAUrB,OARA+mE,EAAWhkE,MAAQ,IAAI,GACtBpuB,EAAEuqE,mBAAmBl/C,QACrBroB,EAAEorB,MAAMglB,IAAIi3B,aAAcrqE,EAAEsqE,cAAetqE,EAAEuqE,qBAG5CvnE,EAAEorB,MAAeglB,IAAMpzC,EAAEsqE,cAAcj/C,QACzCroB,EAAEorB,MAAMglB,IAAIq1B,WAAa,aAElB,CAAEzlE,EAAGovF,EACb,CAMA,OAFApvF,EAAEorB,MAAQprB,EAAEorB,MAAM27C,gCAAiC/pE,GAE5C,CAAEgD,EAAG,IAGb0xF,GAAmBvB,GAAiBY,IAAoB,CAAE/wF,EAAGhD,KAC5D,MAAMwF,EAA2B,CAAExC,GAYnC,GAAKA,EAAEowF,yBAA2BpwF,EAAE8rB,SAAS46C,gBAAiB1pE,EAAEouB,MAAM0J,QAAW93B,EAAEouB,MAAM2uB,iBAAkB/5C,EAAE8rB,UAAa,CACzH,MAAM6mE,EAAKgD,GAAsC31F,EAAGhD,EAAE5B,IAAK4B,EAAEib,UAExD06E,GACJnwF,EAAOyB,KAAM0uF,EAEf,CAKA,OAAOnwF,CAAM,IAGdkvF,GAAmBvB,GAAiBA,IAAiB,CAAEnwF,EAAGhD,EAAGgV,KAUvDhS,EAAE8rB,SAASpC,QAAS1sB,EAAE8uB,WAAc9Z,EAAQ2iF,YAMjD30F,EAAE8rB,SAAW9rB,EAAE8rB,SAAS+6C,iCAAkC7pE,IALlD,CAAEgD,MAUX0xF,GAAmBvB,GAAiBV,IAAe,CAAEzvF,EAAGhD,KAGvDgD,EAAE8rB,SAAW9rB,EAAE8rB,SAASg7C,+BAAgC9pE,GAEjD,CAAEgD,MAGV0xF,GAAmBvB,GAAiBI,IAAgB,CAAEvwF,EAAGhD,KAGxDgD,EAAE8rB,SAAW9rB,EAAE8rB,SAASi7C,gCAAiC/pE,GAElD,CAAEgD,MAGV0xF,GAAmBvB,GAAiBK,IAAgB,CAAExwF,EAAGhD,KACxDgD,EAAE8rB,SAAW9rB,EAAE8rB,SAASk7C,gCAAiChqE,GAElD,CAAEgD,MAKV0xF,GAAmBd,GAAiBT,IAAiB,CAAEnwF,EAAGhD,KACpDgD,EAAEywE,WACNzwE,EAAEywE,SAAWzwE,EAAEywE,SAAS5J,iCAAkC7pE,GAAK,IAG3DgD,EAAEolD,WACNplD,EAAEolD,SAAWplD,EAAEolD,SAASyhB,iCAAkC7pE,GAAK,IAGzD,CAAEgD,MAGV0xF,GAAmBd,GAAiBA,IAAiB,CAAE5wF,EAAGhD,EAAGgV,KAC5D,GAAKhS,EAAEqG,MAAQrJ,EAAEqJ,KAAO,CACvB,IAAK2L,EAAQ2iF,UAGZ,MAAO,CAAE,IAAI3D,GAAa,IAF1BhxF,EAAEywE,SAAWzzE,EAAEooD,SAAWpoD,EAAEooD,SAAS/8B,QAAU,IAIjD,CAEA,MAAO,CAAEroB,EAAG,IAGb0xF,GAAmBd,GAAiBJ,IAAgB,CAAExwF,EAAGhD,KACnDgD,EAAEywE,WACNzwE,EAAEywE,SAAWzwE,EAAEywE,SAASzJ,gCAAiChqE,IAGrDgD,EAAEolD,WACNplD,EAAEolD,SAAWplD,EAAEolD,SAAS4hB,gCAAiChqE,IAGnD,CAAEgD,MAGV0xF,GAAmBd,GAAiBnB,IAAe,CAAEzvF,EAAGhD,EAAGgV,KAK1D,GAJKhS,EAAEywE,WACNzwE,EAAEywE,SAAW,GAAMtH,kBAAmBnpE,EAAEywE,SAAS3J,+BAAgC9pE,KAG7EgD,EAAEolD,SAAW,CACjB,GAAKpzC,EAAQ+iF,WAAa,CACzB,MAAMoB,EAAY,GAAMhtB,kBAAmBnpE,EAAEolD,SAAS0hB,+BAAgC9pE,IAEtF,GAAgC,QAA3BgV,EAAQ+iF,WAAWT,MAAkBt3F,EAAEumD,eAAe75B,QAAS1pB,EAAEolD,SAAStwB,OAI9E,OAHE90B,EAAEolD,SAAkBhV,IAAM+lD,EAAU/lD,IACpCpwC,EAAEolD,SAAStwB,MAAehxB,KAAOkO,EAAQ+iF,WAAWjxF,KAE/C,CAAE9D,GACH,GAAgC,SAA3BgS,EAAQ+iF,WAAWT,MAAmBt3F,EAAEumD,eAAe75B,QAAS1pB,EAAEolD,SAAShV,KAItF,OAHEpwC,EAAEolD,SAAkBtwB,MAAQqhE,EAAUrhE,MACtC90B,EAAEolD,SAAShV,IAAatsC,KAAOkO,EAAQ+iF,WAAWjxF,KAE7C,CAAE9D,EAEX,CAEAA,EAAEolD,SAAW,GAAM+jB,kBAAmBnpE,EAAEolD,SAAS0hB,+BAAgC9pE,GAClF,CAEA,MAAO,CAAEgD,EAAG,IAGb0xF,GAAmBd,GAAiBL,IAAgB,CAAEvwF,EAAGhD,EAAGgV,KAK3D,GAJKhS,EAAEywE,WACNzwE,EAAEywE,SAAWzwE,EAAEywE,SAAS1J,gCAAiC/pE,IAGrDgD,EAAEolD,SAAW,CACjB,GAAKpzC,EAAQ+iF,WAAa,CACzB,MAAMoB,EAAYn2F,EAAEolD,SAAS2hB,gCAAiC/pE,GAgB9D,OAdKgD,EAAEolD,SAAStwB,MAAMpL,QAAS1sB,EAAEsqE,gBAAmBt1D,EAAQ+iF,WAAWP,4BACpEx0F,EAAEolD,SAAkBtwB,MAAQ,GAAS2iB,UAAWz6C,EAAEupD,mBACzCvmD,EAAEolD,SAAStwB,MAAMpL,QAAS1sB,EAAEsqE,iBAAoBt1D,EAAQ+iF,WAAWR,mBAC5Ev0F,EAAEolD,SAAkBtwB,MAAQ,GAAS2iB,UAAWz6C,EAAEuqE,qBAGhDvnE,EAAEolD,SAAShV,IAAI1mB,QAAS1sB,EAAEsqE,gBAAmBt1D,EAAQ+iF,WAAWL,kBAClE10F,EAAEolD,SAAkBhV,IAAM,GAASqH,UAAWz6C,EAAEuqE,oBACvCvnE,EAAEolD,SAAShV,IAAI1mB,QAAS1sB,EAAEsqE,gBAAmBt1D,EAAQ+iF,WAAWN,0BACzEz0F,EAAEolD,SAAkBhV,IAAM,GAASqH,UAAWz6C,EAAEupD,mBAEhDvmD,EAAEolD,SAAkBhV,IAAM+lD,EAAU/lD,IAGhC,CAAEpwC,EACV,CAEAA,EAAEolD,SAAWplD,EAAEolD,SAAS2hB,gCAAiC/pE,EAC1D,CAEA,MAAO,CAAEgD,EAAG,IAKb0xF,GAAmBlB,GAAgBL,IAAiB,CAAEnwF,EAAGhD,KACnDgD,EAAEmnE,eAAeT,gBAAiB1pE,EAAE8uB,YACxC9rB,EAAE0P,SAAW1S,EAAE0S,SAGhB1P,EAAEmnE,eAAiBnnE,EAAEmnE,eAAeN,iCAAkC7pE,GACtEgD,EAAEujD,eAAiBvjD,EAAEujD,eAAesjB,iCAAkC7pE,GAE/D,CAAEgD,MAGV0xF,GAAmBlB,GAAgBA,IAAgB,CAAExwF,EAAGhD,EAAGgV,KAQ1D,GAAKhS,EAAEmnE,eAAez9C,QAAS1sB,EAAEmqE,iBAAoBnnE,EAAEujD,eAAe75B,QAAS1sB,EAAEumD,gBAAmB,CAYnG,GAAMvxC,EAAQ8iF,WAEP,CACN,MAAMhxF,EAAO9G,EAAEwqE,kBAAkB1jE,KAAKqC,QAMtC,OALArC,EAAKG,KAAM,GAEXjE,EAAEmnE,eAAiB,IAAI,GAAUnqE,EAAEwqE,kBAAkB7sE,KAAMmJ,GAC3D9D,EAAE0P,QAAU,EAEL,CAAE1P,EACV,CATC,MAAO,CAAE,IAAIgxF,GAAa,GAU5B,CA6BA,GACChxF,EAAEmnE,eAAez9C,QAAS1sB,EAAEmqE,kBAAqBnnE,EAAEujD,eAAe75B,QAAS1sB,EAAEumD,kBAC5EvxC,EAAQ8iF,YAAoC,iBAAtB9iF,EAAQ+iF,WAC9B,CACD,MAAMqB,EAAiD,cAAlCp2F,EAAEujD,eAAe5oD,KAAKwqC,SACrCkxD,EAAiD,cAAlCr5F,EAAEumD,eAAe5oD,KAAKwqC,SAW3C,GALgBkxD,IAAiBD,KAHjBA,IAAiBC,IAMUrkF,EAAQ2iF,UAElC,CAChB,MAAMxtB,EAAiBnqE,EAAEumD,eAAeyjB,gCAAiChqE,GACnEumD,EAAiBvjD,EAAEujD,eAAeyjB,gCAAiChqE,GAEzE,MAAO,CAAE,IAAIyyF,GAAetoB,EAAgBnnE,EAAE0P,QAAS6zC,EAAgB,GACxE,CACC,MAAO,CAAE,IAAIytC,GAAa,GAE5B,CAiBA,OAbKhxF,EAAEmnE,eAAeT,gBAAiB1pE,EAAEumD,kBACxCvjD,EAAE0P,SAAW1S,EAAE0S,SAGhB1P,EAAEmnE,eAAiBnnE,EAAEmnE,eAAeH,gCAAiChqE,GACrEgD,EAAEujD,eAAiBvjD,EAAEujD,eAAeyjB,gCAAiChqE,GAI/DgD,EAAEwnE,kBAAkB99C,QAAS1sB,EAAEwqE,oBAAwBx1D,EAAQ2iF,YACpE30F,EAAEwnE,kBAAoBxnE,EAAEwnE,kBAAkBR,gCAAiChqE,IAGrE,CAAEgD,EAAG,IAGb0xF,GAAmBlB,GAAgBf,IAAe,CAAEzvF,EAAGhD,EAAGgV,KAYzD,MAAMskF,EAAe,GAAMv7C,4BAA6B/9C,EAAEmqE,eAAgBnqE,EAAE0S,SAE5E,MAAe,UAAV1S,EAAEwS,OAAqBwC,EAAQ8iF,aAAe9iF,EAAQugF,iBACrDvyF,EAAE0nE,iBAAiBhB,gBAAiB1pE,EAAEmqE,iBAAoBmvB,EAAav8C,iBAAkB/5C,EAAEmnE,gBACxF,CAAE,IAAI6pB,GAAa,KAuBvBh0F,EAAEmqE,eAAeruB,aAAc97C,EAAE0S,SAAUga,QAAS1pB,EAAEmnE,gBAC1DnnE,EAAEmnE,eAAe1B,WAAa,SAQrBzoE,EAAEumD,eAAe75B,QAAS1pB,EAAEmnE,iBAA0C,uBAAtBn1D,EAAQ+iF,WACjE/0F,EAAEmnE,eAAe1B,WAAa,SAQrBzoE,EAAEmqE,eAAez9C,QAAS1pB,EAAEujD,iBACrCvjD,EAAEujD,eAAekiB,WAAa,SAC9BzlE,EAAE0P,SAAW1S,EAAE0S,SAQN1S,EAAEumD,eAAe75B,QAAS1pB,EAAEujD,iBAA0C,wBAAtBvxC,EAAQ+iF,YACjE/0F,EAAEujD,eAAekiB,WAAa,aAC9BzlE,EAAE0P,SAAW1S,EAAE0S,UAKV1P,EAAEmnE,eAAeT,gBAAiB1pE,EAAEumD,kBACxCvjD,EAAE0P,SAAW1S,EAAE0S,SAGX1P,EAAEmnE,eAAeT,gBAAiB1pE,EAAEmqE,kBACxCnnE,EAAE0P,SAAW1S,EAAE0S,UAIjB1P,EAAEmnE,eAAiBnnE,EAAEmnE,eAAeL,+BAAgC9pE,GACpEgD,EAAEujD,eAAiBvjD,EAAEujD,eAAeujB,+BAAgC9pE,GAGpEgD,EAAEmnE,eAAe1B,WAAa,aAC9BzlE,EAAEujD,eAAekiB,WAAa,SAMxBzlE,EAAEwnE,kBAAkB99C,QAAS1sB,EAAEumD,kBACpCvjD,EAAEwnE,kBAAoBxnE,EAAEwnE,kBAAkBV,+BAAgC9pE,IAGpE,CAAEgD,GAAG,IAGb0xF,GAAmBlB,GAAgBD,IAAgB,CAAEvwF,EAAGhD,EAAGgV,KAyE1D,GAxEKhV,EAAEwqE,oBAGNxnE,EAAEwnE,kBAAoBxnE,EAAEwnE,kBAAkBC,0BAA2BzqE,EAAEwqE,kBAAmB,GAYrFxnE,EAAE0nE,iBAAiBh+C,QAAS1sB,EAAEwqE,qBAClCxnE,EAAE0P,QAAU1S,EAAE0S,UAwDX1P,EAAEujD,eAAe75B,QAAS1sB,EAAEsqE,eAAkB,CAClD,MAAMivB,EAA2B,GAAbv5F,EAAE0S,QAChB8mF,EAAwBx5F,EAAEwqE,mBAAqBxnE,EAAE0nE,iBAAiBh+C,QAAS1sB,EAAEwqE,mBAEnF,GAAK+uB,GAAeC,GAA+C,uBAAtBxkF,EAAQ+iF,WAGpD,OAFA/0F,EAAEmnE,eAAiBnnE,EAAEmnE,eAAeJ,gCAAiC/pE,GAE9D,CAAEgD,EAEX,CAQA,GAAKA,EAAEmnE,eAAez9C,QAAS1sB,EAAEsqE,eAAkB,CAIlD,GAA2B,uBAAtBt1D,EAAQ+iF,WAIZ,OAHA/0F,EAAE0P,QAAU,EACZ1P,EAAEujD,eAAiBvjD,EAAEujD,eAAewjB,gCAAiC/pE,GAE9D,CAAEgD,GAUV,GAA2B,oBAAtBgS,EAAQ+iF,YAAoC/0F,EAAEmnE,eAAezmD,OAAS,EAI1E,OAHA1gB,EAAEmnE,eAAiBnqE,EAAEuqE,mBAAmBl/C,QACxCroB,EAAEujD,eAAiBvjD,EAAEujD,eAAewjB,gCAAiC/pE,GAE9D,CAAEgD,EAEX,CAWA,OAPKA,EAAEmnE,eAAeT,gBAAiB1pE,EAAEsqE,iBACxCtnE,EAAE0P,QAAU1S,EAAEsqE,cAAc5mD,QAG7B1gB,EAAEmnE,eAAiBnnE,EAAEmnE,eAAeJ,gCAAiC/pE,GACrEgD,EAAEujD,eAAiBvjD,EAAEujD,eAAewjB,gCAAiC/pE,GAE9D,CAAEgD,EAAG,IAKb0xF,GAAmBjC,GAAeU,IAAiB,CAAEnwF,EAAGhD,KACvD,MACM4qE,EADY,GAAM7sB,4BAA6B/6C,EAAEmnE,eAAgBnnE,EAAE0P,SAC3Cm3D,iCAAkC7pE,GAAG,GAAS,GAe5E,OAbAgD,EAAEmnE,eAAiBS,EAAY9yC,MAC/B90B,EAAE0P,QAAUk4D,EAAYx3B,IAAI1vB,OAASknD,EAAY9yC,MAAMpU,OAQjD1gB,EAAEujD,eAAe75B,QAAS1sB,EAAE8uB,YACjC9rB,EAAEujD,eAAiBvjD,EAAEujD,eAAesjB,iCAAkC7pE,IAGhE,CAAEgD,EAAG,IAGb0xF,GAAmBjC,GAAeA,IAAe,CAAEzvF,EAAGhD,EAAGgV,KAKxD,MAAMqqC,EAAS,GAAMtB,4BAA6B/6C,EAAEmnE,eAAgBnnE,EAAE0P,SAChE4sC,EAAS,GAAMvB,4BAA6B/9C,EAAEmqE,eAAgBnqE,EAAE0S,SAItE,IAcImgF,EAdA8E,EAAY3iF,EAAQ2iF,UAIpB9pF,GAAgBmH,EAAQ2iF,UA+B5B,GA5B2B,gBAAtB3iF,EAAQ+iF,YAAsD,eAAtB/iF,EAAQijF,WACpDpqF,GAAe,EACkB,eAAtBmH,EAAQ+iF,YAAqD,gBAAtB/iF,EAAQijF,aAC1DpqF,GAAe,GAOfglF,EADI7vF,EAAEujD,eAAe75B,QAAS1sB,EAAEumD,iBAAoB14C,EAChC7K,EAAEujD,eAAekkB,0BACpCzqE,EAAEmqE,eACFnqE,EAAE0S,SAGiB1P,EAAEujD,eAAe2jB,sBACpClqE,EAAEmqE,eACFnqE,EAAEumD,eACFvmD,EAAE0S,SAUComF,GAA2B91F,EAAGhD,IAAO84F,GAA2B94F,EAAGgD,GAGvE,MAAO,CAAEhD,EAAE4yF,eAcZ,GAJoBvzC,EAAOtC,iBAAkB/8C,EAAEumD,iBAI3BlH,EAAOrC,cAAesC,GAAQ,GAMjD,OAHED,EAAgBvnB,MAAQunB,EAAOvnB,MAAMoyC,sBAAuBlqE,EAAEmqE,eAAgBnqE,EAAEumD,eAAgBvmD,EAAE0S,SAClG2sC,EAAgBjM,IAAMiM,EAAOjM,IAAI82B,sBAAuBlqE,EAAEmqE,eAAgBnqE,EAAEumD,eAAgBvmD,EAAE0S,SAEzFqmF,GAA+B,CAAE15C,GAAUwzC,GAQnD,GAFoBvzC,EAAOvC,iBAAkB/5C,EAAEujD,iBAE3BjH,EAAOtC,cAAeqC,GAAQ,GAMjD,OAHEA,EAAgBvnB,MAAQunB,EAAOvnB,MAAMuyC,aAAcrqE,EAAEmqE,eAAgBnqE,EAAE2yF,sBACvEtzC,EAAgBjM,IAAMiM,EAAOjM,IAAIi3B,aAAcrqE,EAAEmqE,eAAgBnqE,EAAE2yF,sBAE9DoG,GAA+B,CAAE15C,GAAUwzC,GAanD,MAAM4G,EAAS/6E,GAAe1b,EAAEmnE,eAAejB,gBAAiBlpE,EAAEmqE,eAAejB,iBAEjF,GAAe,UAAVuwB,GAAgC,aAAVA,EAO1B,OAHEp6C,EAAgBvnB,MAAQunB,EAAOvnB,MAAMoyC,sBAAuBlqE,EAAEmqE,eAAgBnqE,EAAEumD,eAAgBvmD,EAAE0S,SAClG2sC,EAAgBjM,IAAMiM,EAAOjM,IAAI82B,sBAAuBlqE,EAAEmqE,eAAgBnqE,EAAEumD,eAAgBvmD,EAAE0S,SAEzFqmF,GAA+B,CAAE15C,GAAUwzC,GAcpC,UAAV7vF,EAAEwP,MAA8B,UAAVxS,EAAEwS,MAAqBwC,EAAQ4iF,YAAe5iF,EAAQugF,gBAE3D,UAAVvyF,EAAEwP,MAA8B,UAAVxS,EAAEwS,MAAqBwC,EAAQ8iF,YAAe9iF,EAAQugF,kBACvFoC,GAAY,GAFZA,GAAY,EAOb,MAAMt6C,EAAS,GAITyuB,EAAazsB,EAAOjC,cAAekC,GAEzC,UAAYlxB,KAAS09C,EAAa,CAE/B19C,EAAe0J,MAAQ1J,EAAM0J,MAAM2yC,0BAA2BzqE,EAAEmqE,eAAgBnqE,EAAE0S,SAClF0b,EAAeglB,IAAMhlB,EAAMglB,IAAIq3B,0BAA2BzqE,EAAEmqE,eAAgBnqE,EAAE0S,SAGhF,MAAMgnF,EAAuG,QAAxFh7E,GAAe0P,EAAM0J,MAAMoxC,gBAAiBlpE,EAAE2yF,qBAAqBzpB,iBAClF/oB,EAAY/xB,EAAM67C,2BAA4BjqE,EAAE2yF,qBAAsB3yF,EAAE0S,QAASgnF,GAEvFr8C,EAAOp2C,QAASk5C,EACjB,CAGA,MAAM4rB,EAAS1sB,EAAO7zB,gBAAiB8zB,GA+BvC,OA7BgB,OAAXysB,GAAmB4rB,IAErB5rB,EAAgBj0C,MAAQi0C,EAAOj0C,MAAMuyC,aAAcrqE,EAAEmqE,eAAgBnqE,EAAE2yF,sBACvE5mB,EAAgB34B,IAAM24B,EAAO34B,IAAIi3B,aAAcrqE,EAAEmqE,eAAgBnqE,EAAE2yF,sBAQ9C,IAAlBt1C,EAAO19C,OACX09C,EAAOp2C,KAAM8kE,GAGa,GAAjB1uB,EAAO19C,OACX2/C,EAAOxnB,MAAMsX,SAAUiQ,EAAOvnB,QAAWwnB,EAAOxnB,MAAMpL,QAAS2yB,EAAOvnB,OAC1EulB,EAAO52C,QAASslE,GAEhB1uB,EAAOp2C,KAAM8kE,GAMd1uB,EAAOxuC,OAAQ,EAAG,EAAGk9D,IAIA,IAAlB1uB,EAAO19C,OAGJ,CAAE,IAAIq0F,GAAahxF,EAAEwuF,cAGtBuH,GAA+B17C,EAAQw1C,EAAoB,IAGnE6B,GAAmBjC,GAAec,IAAgB,CAAEvwF,EAAGhD,EAAGgV,KACzD,IAAI69E,EAAoB7vF,EAAEujD,eAAel7B,QAKnCroB,EAAEujD,eAAe75B,QAAS1sB,EAAEupD,oBAAwBvpD,EAAEwqE,mBAA2C,mBAAtBx1D,EAAQ+iF,aACxFlF,EAAoB7vF,EAAEujD,eAAewjB,gCAAiC/pE,IAUvE,MAAM4rE,EAAY,GAAM7tB,4BAA6B/6C,EAAEmnE,eAAgBnnE,EAAE0P,SAEzE,GAAKk5D,EAAUx4B,IAAI1mB,QAAS1sB,EAAEupD,mBAS7B,OANMvpD,EAAEwqE,mBACPxnE,EAAE0P,UAGH1P,EAAEujD,eAAiBssC,EAEZ,CAAE7vF,GAmBV,GAAK4oE,EAAU9zC,MAAM4xC,gBAAiB1pE,EAAEsqE,gBAAmBsB,EAAU7uB,iBAAkB/8C,EAAEsqE,eAAkB,CAC1G,IAAIqvB,EAAa,IAAI,GAAO35F,EAAEsqE,cAAesB,EAAUx4B,KACvDumD,EAAaA,EAAW5vB,gCAAiC/pE,GAOzD,OAAO+4F,GALQ,CACd,IAAI,GAAOntB,EAAU9zC,MAAO93B,EAAEsqE,eAC9BqvB,GAG6C9G,EAC/C,CAOK7vF,EAAEujD,eAAe75B,QAAS1sB,EAAEsqE,gBAAyC,kBAAtBt1D,EAAQ+iF,aAC3DlF,EAAoB7yF,EAAEuqE,oBAwBlBvnE,EAAEujD,eAAe75B,QAAS1sB,EAAEupD,oBAA6C,iBAAtBv0C,EAAQ+iF,aAC/DlF,EAAoB7vF,EAAEujD,gBAKvB,MACMlJ,EAAS,CADKuuB,EAAU7B,gCAAiC/pE,IAO/D,GAAKA,EAAEwqE,kBAAoB,CAC1B,MAAMovB,EAAwBhuB,EAAU9zC,MAAMpL,QAAS1sB,EAAEwqE,oBAAuBoB,EAAU7uB,iBAAkB/8C,EAAEwqE,mBAEzGxnE,EAAE0P,QAAU,GAAKknF,IAA0B5kF,EAAQ4iF,YACvDv6C,EAAOp2C,KAAM,GAAM82C,4BAA6B/9C,EAAEupD,kBAAmB,GAEvE,CAEA,OAAOwvC,GAA+B17C,EAAQw1C,EAAmB,IAGlE6B,GAAmBjC,GAAee,IAAgB,CAAExwF,EAAGhD,EAAGgV,KACzD,MAAMo1D,EAAa,GAAMrsB,4BAA6B/6C,EAAEmnE,eAAgBnnE,EAAE0P,SAE1E,GAAK1S,EAAE0qE,iBAAiBhB,gBAAiB1mE,EAAEmnE,iBAAoBC,EAAWrtB,iBAAkB/8C,EAAEmqE,gBAC7F,GAAe,UAAVnnE,EAAEwP,MAAqBwC,EAAQugF,iBA6CnC,GAAkB,GAAbvyF,EAAE0P,QACN,OAAMsC,EAAQ8iF,YAGb90F,EAAEmnE,eAAiBnqE,EAAEwqE,kBAAkBn/C,QACvCroB,EAAEujD,eAAiBvjD,EAAEujD,eAAeyjB,gCAAiChqE,GAE9D,CAAEgD,IALF,CAAE,IAAIgxF,GAAa,SArC5B,IAAMh/E,EAAQ4iF,WAAa,CAC1B,MAAMhnD,EAAU,GAEhB,IAAIipD,EAAe75F,EAAEwqE,kBAAkBn/C,QACnCyuE,EAAuB95F,EAAEumD,eAAeyjB,gCAAiChqE,GAExEgD,EAAE0P,QAAU,IAChBk+B,EAAQ3pC,KAAM,IAAIwrF,GAAezvF,EAAEmnE,eAAgBnnE,EAAE0P,QAAU,EAAG1P,EAAEujD,eAAgB,IAEpFszC,EAAeA,EAAa3vB,sBAAuBlnE,EAAEmnE,eAAgBnnE,EAAEujD,eAAgBvjD,EAAE0P,QAAU,GACnGonF,EAAuBA,EAAqB5vB,sBAAuBlnE,EAAEmnE,eAAgBnnE,EAAEujD,eAAgBvjD,EAAE0P,QAAU,IAGpH,MAAMqnF,EAAe/5F,EAAE0qE,iBAAiBL,aAAcrnE,EAAEmnE,eAAgBnnE,EAAEujD,gBACpEyzC,EAAS,IAAIvH,GAAeoH,EAAc,EAAGE,EAAc,GAE3DE,EAA2BD,EAAOrH,qBAAqB7rF,KAAKqC,QAClE8wF,EAAyBhzF,KAAM,GAE/B,MAAMizF,EAAuB,IAAI,GAAUF,EAAOzzC,eAAe5oD,KAAMs8F,GACvEH,EAAuBA,EAAqB5vB,sBAAuB2vB,EAAcE,EAAc,GAC/F,MAAMI,EAAiB,IAAI1H,GAAeqH,EAAsB95F,EAAE0S,QAASwnF,EAAsB,GAKjG,OAHAtpD,EAAQ3pC,KAAM+yF,GACdppD,EAAQ3pC,KAAMkzF,GAEPvpD,CACR,CAuBF,MACMg6B,EADY,GAAM7sB,4BAA6B/6C,EAAEmnE,eAAgBnnE,EAAE0P,SAC3Cs3D,gCAAiChqE,GAM/D,OAJAgD,EAAEmnE,eAAiBS,EAAY9yC,MAC/B90B,EAAE0P,QAAUk4D,EAAYx3B,IAAI1vB,OAASknD,EAAY9yC,MAAMpU,OACvD1gB,EAAEujD,eAAiBvjD,EAAEujD,eAAeyjB,gCAAiChqE,GAE9D,CAAEgD,EAAG,IAKb0xF,GAAmBT,GAAiBd,IAAiB,CAAEnwF,EAAGhD,KACzDgD,EAAE8rB,SAAW9rB,EAAE8rB,SAAS+6C,iCAAkC7pE,GAEnD,CAAEgD,MAGV0xF,GAAmBT,GAAiBT,IAAgB,CAAExwF,EAAGhD,IAKnDgD,EAAE8rB,SAASpC,QAAS1sB,EAAE0qE,mBAC1B1nE,EAAE8rB,SAAW9uB,EAAEwqE,kBAAkBn/C,QACjCroB,EAAE8rB,SAAS25C,WAAa,SAEjB,CAAEzlE,KAGVA,EAAE8rB,SAAW9rB,EAAE8rB,SAASk7C,gCAAiChqE,GAElD,CAAEgD,MAGV0xF,GAAmBT,GAAiBxB,IAAe,CAAEzvF,EAAGhD,KACvDgD,EAAE8rB,SAAW9rB,EAAE8rB,SAASg7C,+BAAgC9pE,GAEjD,CAAEgD,MAGV0xF,GAAmBT,GAAiBA,IAAiB,CAAEjxF,EAAGhD,EAAGgV,KAC5D,GAAKhS,EAAE8rB,SAASpC,QAAS1sB,EAAE8uB,UAAa,CACvC,IAAK9Z,EAAQ2iF,UAGZ,MAAO,CAAE,IAAI3D,GAAa,IAF1BhxF,EAAEkxF,QAAUl0F,EAAEuoD,OAIhB,CAEA,MAAO,CAAEvlD,EAAG,IAGb0xF,GAAmBT,GAAiBV,IAAgB,CAAEvwF,EAAGhD,KAiBxD,GAA+C,QAA1C0e,GAHc1b,EAAE8rB,SAAShoB,KACZ9G,EAAEsqE,cAAcpB,mBAEwBlpE,EAAEwqE,kBAAoB,CAC/E,MAAM4vB,EAAc,IAAInG,GAAiBjxF,EAAE8rB,SAASgtB,aAAc,GAAK94C,EAAEkxF,QAASlxF,EAAEulD,QAAS,GAE7F,MAAO,CAAEvlD,EAAGo3F,EACb,CAMA,OAFAp3F,EAAE8rB,SAAW9rB,EAAE8rB,SAASi7C,gCAAiC/pE,GAElD,CAAEgD,EAAG,IAKb0xF,GAAmBP,GAAwBA,IAAwB,CAAEnxF,EAAGhD,EAAGgV,KAC1E,GAAKhS,EAAErF,OAASqC,EAAErC,MAAQqF,EAAE5E,MAAQ4B,EAAE5B,IAAM,CAC3C,IAAM4W,EAAQ2iF,WAAa30F,EAAEiY,WAAajb,EAAEib,SAC3C,MAAO,CAAE,IAAI+4E,GAAa,IAE1BhxF,EAAEgY,SAAWhb,EAAEib,QAEjB,CAEA,MAAO,CAAEjY,EAAG,IAKb0xF,GAAmBN,GAAeA,IAAe,CAAEpxF,EAAGhD,IAChDgD,EAAEmlC,WAAanoC,EAAEmoC,UAAYnlC,EAAEqxF,QAAUr0F,EAAEq0F,MACxC,CAAE,IAAIL,GAAa,IAGpB,CAAEhxF,KAKV0xF,GAAmBnB,GAAgBJ,IAAiB,CAAEnwF,EAAGhD,KAGnDgD,EAAEsnE,cAAcZ,gBAAiB1pE,EAAE8uB,WAAc9rB,EAAEsnE,cAAc5mD,OAAS1jB,EAAE8uB,SAASpL,SACzF1gB,EAAE0P,SAAW1S,EAAE0S,SAGhB1P,EAAEsnE,cAAgBtnE,EAAEsnE,cAAcT,iCAAkC7pE,GACpEgD,EAAEumD,kBAAoBvmD,EAAEumD,kBAAkBsgB,iCAAkC7pE,GAErE,CAAEgD,MAGV0xF,GAAmBnB,GAAgBC,IAAgB,CAAExwF,EAAGhD,EAAGgV,KAqD1D,IAAMhS,EAAEwnE,oBAAsBx1D,EAAQ8iF,YAAc90F,EAAEsnE,cAAcZ,gBAAiB1pE,EAAEmqE,gBAAmB,CACzG,MAAMkwB,EAAYr6F,EAAEwqE,kBAAkB1jE,KAAKqC,QAC3CkxF,EAAUpzF,KAAM,GAEhB,MAAMqjE,EAAgB,IAAI,GAAUtqE,EAAEwqE,kBAAkB7sE,KAAM08F,GACxD9wC,EAAoBgqC,GAAeG,qBAAsB,IAAI,GAAU1zF,EAAEwqE,kBAAkB7sE,KAAM08F,IAEjGC,EAAkB,IAAI/G,GAAgBjpB,EAAe,EAAG/gB,EAAmB,KAAM,GAOvF,OALAvmD,EAAEsnE,cAAgBtnE,EAAEsnE,cAAcN,gCAAiChqE,GACnEgD,EAAEumD,kBAAoBgqC,GAAeG,qBAAsB1wF,EAAEsnE,eAC7DtnE,EAAEwnE,kBAAoB8vB,EAAgB/wC,kBAAkBl+B,QACxDroB,EAAEwnE,kBAAkB/B,WAAa,SAE1B,CAAE6xB,EAAiBt3F,EAC3B,CAmBA,OAfKA,EAAEsnE,cAAcZ,gBAAiB1pE,EAAE0qE,oBAAuB1nE,EAAEsnE,cAAc/6B,QAASvvC,EAAE0qE,mBACzF1nE,EAAE0P,UAGE1P,EAAEsnE,cAAcZ,gBAAiB1pE,EAAEumD,kBACvCvjD,EAAE0P,SAAW1S,EAAE0S,SAGhB1P,EAAEsnE,cAAgBtnE,EAAEsnE,cAAcN,gCAAiChqE,GACnEgD,EAAEumD,kBAAoBgqC,GAAeG,qBAAsB1wF,EAAEsnE,eAExDtnE,EAAEwnE,oBACNxnE,EAAEwnE,kBAAoBxnE,EAAEwnE,kBAAkBR,gCAAiChqE,IAGrE,CAAEgD,EAAG,IAGb0xF,GAAmBnB,GAAgBd,IAAe,CAAEzvF,EAAGhD,EAAGgV,KACzD,MAAMulF,EAAc,GAAMx8C,4BAA6B/9C,EAAEmqE,eAAgBnqE,EAAE0S,SAE3E,GAAK1P,EAAEwnE,kBAAoB,CAO1B,MAAMgwB,EAAiBD,EAAYziE,MAAMpL,QAAS1pB,EAAEwnE,oBAAuB+vB,EAAYx9C,iBAAkB/5C,EAAEwnE,mBAE3G,IAAMx1D,EAAQ8iF,YAAc0C,EAAiB,CAC5C,MAAMrwB,EAAiBnnE,EAAEsnE,cAAcR,+BAAgC9pE,GAEjEy6F,EAAoBz3F,EAAEwnE,kBAAkBV,+BAAgC9pE,GACxE06F,EAAgBD,EAAkB3zF,KAAKqC,QAC7CuxF,EAAczzF,KAAM,GAEpB,MAAM4rF,EAAoB,IAAI,GAAU4H,EAAkB98F,KAAM+8F,GAGhE,MAAO,CAFQ,IAAIjI,GAAetoB,EAAgBnnE,EAAE0P,QAASmgF,EAAmB,GAGjF,CAEA7vF,EAAEwnE,kBAAoBxnE,EAAEwnE,kBAAkBV,+BAAgC9pE,EAC3E,CASA,MAAM26F,EAAgB33F,EAAEsnE,cAAc59C,QAAS1sB,EAAEumD,gBAEjD,GAAKo0C,IAAyC,kBAAtB3lF,EAAQijF,YAAwD,eAAtBjjF,EAAQ+iF,YAKzE,OAJA/0F,EAAE0P,SAAW1S,EAAE0S,QACf1P,EAAEsnE,cAAgBtnE,EAAEsnE,cAAcG,0BAA2BzqE,EAAEmqE,eAAgBnqE,EAAE0S,SACjF1P,EAAEumD,kBAAoBgqC,GAAeG,qBAAsB1wF,EAAEsnE,eAEtD,CAAEtnE,GAGV,GAAK23F,GAAiB3lF,EAAQ+iF,YAAc/iF,EAAQ+iF,WAAWrlF,QAAU,CACxE,MAAM,QAAEA,EAAO,OAAEgR,GAAW1O,EAAQ+iF,WAKpC,OAHA/0F,EAAE0P,SAAWA,EACb1P,EAAEsnE,cAAgBtnE,EAAEsnE,cAAcxuB,aAAcp4B,GAEzC,CAAE1gB,EACV,CAmBA,GAAKA,EAAEsnE,cAAcZ,gBAAiB1pE,EAAEmqE,iBAAoBowB,EAAYx9C,iBAAkB/5C,EAAEsnE,eAAkB,CAC7G,MAAMswB,EAAiB56F,EAAE0S,SAAY1P,EAAEsnE,cAAc5mD,OAAS1jB,EAAEmqE,eAAezmD,QAU/E,OATA1gB,EAAE0P,SAAWkoF,EAER53F,EAAEsnE,cAAcZ,gBAAiB1pE,EAAEumD,iBAAoBvjD,EAAEsnE,cAAc5mD,OAAS1jB,EAAEumD,eAAe7iC,SACrG1gB,EAAE0P,SAAW1S,EAAE0S,SAGhB1P,EAAEsnE,cAAgBtqE,EAAEmqE,eAAe9+C,QACnCroB,EAAEumD,kBAAoBgqC,GAAeG,qBAAsB1wF,EAAEsnE,eAEtD,CAAEtnE,EACV,CA0BA,OArBMhD,EAAEmqE,eAAez9C,QAAS1sB,EAAEumD,kBAC5BvjD,EAAEsnE,cAAcZ,gBAAiB1pE,EAAEmqE,iBAAoBnnE,EAAEsnE,cAAc5mD,QAAU1jB,EAAEmqE,eAAezmD,SACtG1gB,EAAE0P,SAAW1S,EAAE0S,SAGX1P,EAAEsnE,cAAcZ,gBAAiB1pE,EAAEumD,iBAAoBvjD,EAAEsnE,cAAc5mD,OAAS1jB,EAAEumD,eAAe7iC,SACrG1gB,EAAE0P,SAAW1S,EAAE0S,UAKjB1P,EAAEsnE,cAAc7B,WAAa,SAC7BzlE,EAAEsnE,cAAgBtnE,EAAEsnE,cAAcR,+BAAgC9pE,GAClEgD,EAAEsnE,cAAc7B,WAAa,SAExBzlE,EAAEwnE,kBACNxnE,EAAEumD,kBAAoBvmD,EAAEumD,kBAAkBugB,+BAAgC9pE,GAE1EgD,EAAEumD,kBAAoBgqC,GAAeG,qBAAsB1wF,EAAEsnE,eAGvD,CAAEtnE,EAAG,IAGb0xF,GAAmBnB,GAAgBA,IAAgB,CAAEvwF,EAAGhD,EAAGgV,KAiB1D,GAAKhS,EAAEsnE,cAAc59C,QAAS1sB,EAAEsqE,eAAkB,CACjD,IAAMtnE,EAAEwnE,oBAAsBxqE,EAAEwqE,kBAC/B,MAAO,CAAE,IAAIwpB,GAAa,IAG3B,GAAKhxF,EAAEwnE,mBAAqBxqE,EAAEwqE,mBAAqBxnE,EAAEwnE,kBAAkB99C,QAAS1sB,EAAEwqE,mBACjF,MAAO,CAAE,IAAIwpB,GAAa,IAK3B,GAA2B,eAAtBh/E,EAAQ+iF,WASZ,OAPA/0F,EAAE0P,QAAU,EAKZ1P,EAAEwnE,kBAAoBxnE,EAAEwnE,kBAAmBT,gCAAiC/pE,GAErE,CAAEgD,EAEX,CAcA,GAAKA,EAAEwnE,mBAAqBxqE,EAAEwqE,mBAAqBxnE,EAAEwnE,kBAAkB99C,QAAS1sB,EAAEwqE,mBAAsB,CACvG,MAAMqwB,EAAgD,cAAjC73F,EAAEsnE,cAAc3sE,KAAKwqC,SACpC2yD,EAAgD,cAAjC96F,EAAEsqE,cAAc3sE,KAAKwqC,SAW1C,GALgB2yD,IAAiBD,KAHjBA,IAAiBC,IAMU9lF,EAAQ2iF,UAElC,CAChB,MAAMnyF,EAAS,GAcf,OAVKxF,EAAE0S,SACNlN,EAAOyB,KAAM,IAAIwrF,GAAezyF,EAAEuqE,mBAAoBvqE,EAAE0S,QAAS1S,EAAEsqE,cAAe,IAK9EtnE,EAAE0P,SACNlN,EAAOyB,KAAM,IAAIwrF,GAAezvF,EAAEsnE,cAAetnE,EAAE0P,QAAS1P,EAAEunE,mBAAoB,IAG5E/kE,CACR,CACC,MAAO,CAAE,IAAIwuF,GAAa,GAE5B,CAWA,GATKhxF,EAAEwnE,oBACNxnE,EAAEwnE,kBAAoBxnE,EAAEwnE,kBAAkBT,gCAAiC/pE,IAQvEgD,EAAEsnE,cAAc59C,QAAS1sB,EAAEupD,oBAA6C,eAAtBv0C,EAAQ+iF,WAG9D,OAFA/0F,EAAE0P,UAEK,CAAE1P,GAOV,GAAKhD,EAAEsqE,cAAc59C,QAAS1pB,EAAEumD,oBAA6C,eAAtBv0C,EAAQijF,WAA8B,CAC5F,MAAM8C,EAAkB/6F,EAAEupD,kBAAkBziD,KAAKqC,QACjD4xF,EAAgB9zF,KAAM,GAEtB,MAAM8/C,EAAc,IAAI,GAAU/mD,EAAEupD,kBAAkB5rD,KAAMo9F,GAG5D,MAAO,CAAE/3F,EAFM,IAAIyvF,GAAezvF,EAAEumD,kBAAmB,EAAGxC,EAAa,GAGxE,CAWA,OAPK/jD,EAAEsnE,cAAcZ,gBAAiB1pE,EAAEsqE,gBAAmBtnE,EAAEsnE,cAAc5mD,OAAS1jB,EAAEsqE,cAAc5mD,SACnG1gB,EAAE0P,SAAW1S,EAAE0S,SAGhB1P,EAAEsnE,cAAgBtnE,EAAEsnE,cAAcP,gCAAiC/pE,GACnEgD,EAAEumD,kBAAoBgqC,GAAeG,qBAAsB1wF,EAAEsnE,eAEtD,CAAEtnE,EAAG,IC1zEE,MAAMg4F,WAAqCnkF,EAAc,KAWvE,WAAAzN,CAAazL,EAAmBmJ,EAAqB2hE,EAAiC,UAGrF,GAFAvzD,MAAOvX,EAAMmJ,EAAM2hE,IAEbphE,KAAK1J,KAAKiY,GAAI,eAMnB,MAAM,IAAIb,EAAe,0CAA2CpX,GAGrE,GAAiB+K,KAAMrB,KACxB,CAOO,MAAAwhB,GACNxhB,KAAK+P,eACN,CAKO,UAAA6jF,GACN,OAAO,IAAI,GAAU5zF,KAAK1J,KAAM0J,KAAKP,KAAKqC,QAAS9B,KAAKohE,WACzD,CAKA,mBAAcyyB,CAAcpsE,EAAoB25C,GAC/C,OAAO,IAAIphE,KAAMynB,EAASnxB,KAAqBmxB,EAAShoB,KAAKqC,QAASs/D,GAA0B35C,EAAS25C,WAC1G,EAqCD,SAAS,KACRphE,KAAK4P,SACJ5P,KAAK1J,KAAKkN,SAAUpL,MACpB,kBACA,CAAEsX,EAAOxT,KACR,MAAMqmE,EAAYrmE,EAAM,GAElBqmE,EAAU0L,qBAIhB,GAAU5sE,KAAMrB,KAAMuiE,EAAW,GAElC,CAAEv1D,SAAU,OAEd,CAKA,SAAS,GAA+Bu1D,GACvC,MAAMpkE,EAAS6B,KAAKsiE,0BAA2BC,GAE/C,IAAMviE,KAAKqlB,QAASlnB,GAAW,CAC9B,MAAM21F,EAAc9zF,KAAK4zF,aAEvB5zF,KAAcP,KAAOtB,EAAOsB,KAC5BO,KAAc1J,KAAO6H,EAAO7H,KAE9B0J,KAAK4Q,KAA+B,SAAUkjF,EAC/C,CACD,CAzCAH,GAAa9xF,UAAU0M,GAAK,SAAUpD,GACrC,MAAgB,iBAATA,GAAoC,uBAATA,GAEzB,YAARA,GAA+B,mBAATA,CACxB,ECpFe,MAAM4oF,GAIJ5vB,WAKAyjB,WAKAoM,QAKAC,OAKAC,SAUhB,WAAAnyF,CAAaoJ,EAAkB,CAAC,GACV,iBAATA,IACXA,EAAgB,gBAATA,EAAyB,CAAEy8E,YAAY,GAAU,CAAC,EASzD,EAAY,6CAGb,MAAM,WAAEA,GAAa,EAAI,QAAEoM,GAAU,EAAI,OAAEC,GAAS,EAAK,SAAEC,GAAW,GAAU/oF,EAEhFnL,KAAKmkE,WAAa,GAClBnkE,KAAK4nF,WAAaA,EAClB5nF,KAAKg0F,QAAUA,EACfh0F,KAAKi0F,OAASA,EACdj0F,KAAKk0F,SAAWA,CACjB,CAcA,QAAW/oF,GASV,OAFA,EAAY,yBAEL,SACR,CAMA,eAAWg/E,GACV,UAAYmE,KAAMtuF,KAAKmkE,WACtB,GAAwB,OAAnBmqB,EAAGnE,YACP,OAAOmE,EAAGnE,YAIZ,OAAO,IACR,CAQO,YAAAgK,CAAc5xB,GAIpB,OAHAA,EAAUwN,MAAQ/vE,KAClBA,KAAKmkE,WAAWvkE,KAAM2iE,GAEfA,CACR,EChGc,MAAM6xB,GAIHC,kBAQAC,kBAAwE,IAAI5iF,IAO5E6iF,kBAA4E,IAAI7iF,IAUhF8iF,gBAAyF,IAAI9iF,IAO7F+iF,cAA2C,IAAI/iF,IAMxDgjF,aAAuB,EASvBC,eAAyC,KASzCC,4BAAsD,KAKtDC,gBAA6B,IAAI9gF,IAOzC,WAAAhS,CAAa+yF,GACZ90F,KAAKq0F,kBAAoBS,CAC1B,CAKA,WAAWxoD,GACV,OAAsC,GAA/BtsC,KAAKs0F,kBAAkBtgF,MAA0C,GAA7BhU,KAAKw0F,gBAAgBxgF,MAAwC,GAA3BhU,KAAKy0F,cAAczgF,IACjG,CAOO,eAAA+gF,CAAiBC,GAKvB,MAAMzyB,EAAYyyB,EAclB,OAASzyB,EAAUp3D,MAClB,IAAK,SACJ,GAAKnL,KAAKi1F,qBAAsB1yB,EAAU96C,SAAS7oB,QAClD,OAGDoB,KAAKk1F,YAAa3yB,EAAU96C,SAAS7oB,OAAQ2jE,EAAU96C,SAASpL,OAAQkmD,EAAUjxB,MAAM6uB,WAExF,MAED,IAAK,eACL,IAAK,kBACL,IAAK,kBACJ,UAAYlgE,KAAQsiE,EAAUx7C,MAAMsvB,SAAU,CAAExD,SAAS,IACnD7yC,KAAKi1F,qBAAsBh1F,EAAKrB,SAIrCoB,KAAKm1F,eAAgBl1F,GAGtB,MAED,IAAK,SACL,IAAK,OACL,IAAK,WAAY,CAGhB,GACCsiE,EAAUO,eAAez9C,QAASk9C,EAAUrjB,iBAC5CqjB,EAAUO,eAAeruB,aAAc8tB,EAAUl3D,SAAUga,QAASk9C,EAAUrjB,gBAE9E,OAGD,MAAMk2C,EAAuBp1F,KAAKi1F,qBAAsB1yB,EAAUO,eAAelkE,QAC3Ey2F,EAAuBr1F,KAAKi1F,qBAAsB1yB,EAAUrjB,eAAetgD,QAE3Ew2F,GACLp1F,KAAKs1F,YAAa/yB,EAAUO,eAAelkE,OAAQ2jE,EAAUO,eAAezmD,OAAQkmD,EAAUl3D,SAGzFgqF,GACLr1F,KAAKk1F,YAAa3yB,EAAUrjB,eAAetgD,OAAQ2jE,EAAU+oB,qBAAqBjvE,OAAQkmD,EAAUl3D,SAGrG,KACD,CACA,IAAK,SAAU,CACd,GAAKrL,KAAKi1F,qBAAsB1yB,EAAU96C,SAAS7oB,QAClD,OAGDoB,KAAKs1F,YAAa/yB,EAAU96C,SAAS7oB,OAAQ2jE,EAAU96C,SAASpL,OAAQ,GACxErc,KAAKk1F,YAAa3yB,EAAU96C,SAAS7oB,OAAQ2jE,EAAU96C,SAASpL,OAAQ,GAExE,MAAM0K,EAAQ,GAAM2vB,4BAA6B6rB,EAAU96C,SAAU,GAErE,UAAYwjD,KAAUjrE,KAAKq0F,kBAAkBkB,4BAA6BxuE,GAAU,CACnF,MAAMyuE,EAAavqB,EAAOxO,UAE1Bz8D,KAAKy1F,mBAAoBxqB,EAAOjpE,KAAMwzF,EAAYA,EACnD,CAEA,KACD,CACA,IAAK,QAAS,CACb,MAAMpJ,EAAe7pB,EAAUU,cAAcrkE,OAGvCoB,KAAKi1F,qBAAsB7I,IAChCpsF,KAAKs1F,YAAalJ,EAAc7pB,EAAUU,cAAc5mD,OAAQkmD,EAAUl3D,SAIrErL,KAAKi1F,qBAAsB1yB,EAAUrgB,kBAAkBtjD,SAC5DoB,KAAKk1F,YAAa3yB,EAAUrgB,kBAAkBtjD,OAAQ2jE,EAAUrgB,kBAAkB7lC,OAAQ,GAItFkmD,EAAUY,mBACdnjE,KAAKs1F,YAAa/yB,EAAUY,kBAAkBvkE,OAAQ2jE,EAAUY,kBAAkB9mD,OAAQ,GAG3F,KACD,CACA,IAAK,QAAS,CAEb,MAAMiwE,EAAgB/pB,EAAUO,eAAelkE,OAEzCoB,KAAKi1F,qBAAsB3I,EAAc1tF,SAC9CoB,KAAKs1F,YAAahJ,EAAc1tF,OAAW0tF,EAAuBn4C,YAAa,GAIhF,MAAMuhD,EAAkBnzB,EAAUY,kBAAkBvkE,OAEpDoB,KAAKk1F,YAAaQ,EAAiBnzB,EAAUY,kBAAkB9mD,OAAQ,GAGvE,MAAMs5E,EAAoBpzB,EAAUrjB,eAAetgD,OAE7CoB,KAAKi1F,qBAAsBU,IAChC31F,KAAKk1F,YAAaS,EAAmBpzB,EAAUrjB,eAAe7iC,OAAQiwE,EAAcnsB,WAGrF,KACD,CACA,IAAK,aACL,IAAK,UAAW,CACf,MAAM7pE,EAAOisE,EAAU8oB,mBAEvB,IAAM/0F,EAAKs/F,UACV,OAID,GAAKt/F,EAAKuwC,cAAgB07B,EAAUyqB,MACnC,OAGDhtF,KAAK61F,uBAAwBtzB,EAAUzhC,SAAUyhC,EAAUyqB,OAE3D,KACD,CACA,IAAK,mBACL,IAAK,sBACL,IAAK,sBAAuB,CAC3B,IAAMzqB,EAAUjsE,KAAKs/F,UACpB,OAGD,MAAM90D,EAAWyhC,EAAUjsE,KAAKwqC,SAEhC9gC,KAAK81F,2BAA4Bh1D,EAAUyhC,EAAUxrE,IAAKwrE,EAAU5uD,SAAU4uD,EAAU3uD,UAExF,KACD,EAID5T,KAAK20F,eAAiB,IACvB,CASO,kBAAAc,CAAoBrvB,EAAoB2vB,EAA2BC,GACpED,EAAchvE,OAASgvE,EAAchvE,MAAMzwB,KAAKiY,GAAI,iBAAoBwnF,EAAchvE,MAAMzwB,KAAKs/F,YACrGG,EAAchvE,MAAQ,MAGlBivE,EAAcjvE,OAASivE,EAAcjvE,MAAMzwB,KAAKiY,GAAI,iBAAoBynF,EAAcjvE,MAAMzwB,KAAKs/F,YACrGI,EAAcjvE,MAAQ,MAGvB,IAAIkvE,EAAWj2F,KAAKw0F,gBAAgBpsF,IAAKg+D,GAEnC6vB,EAKLA,EAASD,cAAgBA,GAJzBC,EAAW,CAAED,gBAAeD,iBAE5B/1F,KAAKw0F,gBAAgB5iF,IAAKw0D,EAAY6vB,IAKF,MAAhCA,EAASF,cAAchvE,OAAwC,MAAvBivE,EAAcjvE,OAG1D/mB,KAAKw0F,gBAAgB1iF,OAAQs0D,EAE/B,CAOO,kBAAAwD,GACN,MAAMzrE,EAAS,GAEf,UAAc6D,EAAM8jC,KAAY9lC,KAAKw0F,gBACD,MAA9B1uD,EAAOiwD,cAAchvE,OACzB5oB,EAAOyB,KAAM,CAAEoC,OAAM+kB,MAAO+e,EAAOiwD,cAAchvE,QAInD,OAAO5oB,CACR,CAOO,eAAAusE,GACN,MAAMvsE,EAAS,GAEf,UAAc6D,EAAM8jC,KAAY9lC,KAAKw0F,gBACD,MAA9B1uD,EAAOkwD,cAAcjvE,OACzB5oB,EAAOyB,KAAM,CAAEoC,OAAM+kB,MAAO+e,EAAOkwD,cAAcjvE,QAInD,OAAO5oB,CACR,CAKO,iBAAA+3F,GAON,OAAOv1F,MAAMrB,KAAMU,KAAKw0F,iBAAkBx3F,KAAK,EAAIgF,EAAM8jC,MAAO,CAE9D9jC,OACAc,KAAM,CACLspE,SAAUtmC,EAAOiwD,cAAchvE,MAC/Bg6B,SAAUjb,EAAOkwD,cAAcjvE,UAInC,CAaO,cAAAovE,GACN,GAAKn2F,KAAKgqE,aAAa1xE,OACtB,OAAO,EAGR,GAAK0H,KAAKy0F,cAAczgF,KAAO,EAC9B,OAAO,EAGR,UAAY,cAAEgiF,EAAa,cAAED,KAAmB/1F,KAAKw0F,gBAAgBppF,SAAW,CAC/E,GAAK4qF,EAAct1D,cAAgBq1D,EAAcr1D,YAChD,OAAO,EAGR,GAAKs1D,EAAct1D,YAAc,CAChC,MAAM01D,EAAcJ,EAAcjvE,QAAUgvE,EAAchvE,MACpDsvE,GAAiBL,EAAcjvE,OAASgvE,EAAchvE,MACtDuvE,EAAgBN,EAAcjvE,OAASgvE,EAAchvE,QAAUivE,EAAcjvE,MAAM1B,QAAS0wE,EAAchvE,OAEhH,GAAKqvE,GAAeC,GAAiBC,EACpC,OAAO,CAET,CACD,CAEA,OAAO,CACR,CAoBO,UAAAtsB,CAAYzlE,EAAmD,CAAC,GAEtE,GAAKvE,KAAK20F,eACT,OAAKpwF,EAAQgyF,0BACLv2F,KAAK40F,4BAA6B9yF,QAElC9B,KAAK20F,eAAe7yF,QAK7B,IAAI00F,EAA8C,GAGlD,UAAYz/E,KAAW/W,KAAKs0F,kBAAkBr9F,OAAS,CAEtD,MAAM6yE,EAAU9pE,KAAKs0F,kBAAkBlsF,IAAK2O,GAAW8K,MAAM,CAAElmB,EAAGhD,IAC5DgD,EAAE0gB,SAAW1jB,EAAE0jB,OACd1gB,EAAEwP,MAAQxS,EAAEwS,KAIC,UAAVxP,EAAEwP,MAAoB,EAAI,EAG3B,EAGDxP,EAAE0gB,OAAS1jB,EAAE0jB,QAAU,EAAI,IAI7Bo6E,EAAmBz2F,KAAKu0F,kBAAkBnsF,IAAK2O,GAE/C2/E,EAAkBC,GAAsB5/E,EAAQ+vB,eAGhDygB,EAAUqvC,GAA6BH,EAAiBn+F,OAAQwxE,GAEtE,IAAItvE,EAAI,EACJ4pE,EAAI,EAGR,UAAYxc,KAAUL,EACrB,GAAgB,MAAXK,EAEJ4uC,EAAQ52F,KAAMI,KAAK62F,eAAgB9/E,EAASvc,EAAGk8F,EAAiBl8F,KAEhEA,SACM,GAAgB,MAAXotD,EAEX4uC,EAAQ52F,KAAMI,KAAK82F,eAAgB//E,EAASvc,EAAGi8F,EAAkBryB,KAEjEA,SACM,GAAgB,MAAXxc,EAAiB,CAE5B,MAAMmvC,EAAoBL,EAAiBl8F,GAAI+K,WACzCyxF,EAAqBP,EAAkBryB,GAAI7+D,WACjD,IAAIwhB,EAEJ,GAAkC,SAA7B2vE,EAAiBl8F,GAAIwH,KACzB+kB,EAAQ,IAAI,GAAO,GAASqsB,UAAWr8B,EAASvc,GAAK,GAAS44C,UAAWr8B,EAASvc,EAAI,QAChF,CACN,MAAMoK,EAAQmS,EAAQypD,cAAehmE,GACrCusB,EAAQ,IAAI,GAAO,GAASqsB,UAAWr8B,EAASvc,GAAK,GAAS44C,UAAWr8B,EAAQowB,SAAUviC,GAAU,GACtG,CAIA4xF,EAAQ52F,QAASI,KAAKi3F,mBAAoBlwE,EAAOiwE,EAAoBD,IAErEv8F,IACA4pE,GACD,MAEC5pE,IACA4pE,GAGH,CAGAoyB,EAAQ30E,MAAM,CAAElmB,EAAGhD,IAIbgD,EAAE8rB,SAAUnxB,MAAQqC,EAAE8uB,SAAUnxB,KAC7BqF,EAAE8rB,SAAUnxB,KAAKwqC,SAAYnoC,EAAE8uB,SAAUnxB,KAAKwqC,UAAa,EAAI,EAIlEnlC,EAAE8rB,SAAUpC,QAAS1sB,EAAE8uB,UAEpB9rB,EAAEu7F,YAAev+F,EAAEu+F,YAIpBv7F,EAAE8rB,SAAUsgB,SAAUpvC,EAAE8uB,WAAe,EAAI,IAInD,QAAUjtB,EAAI,EAAG28F,EAAY,EAAG38F,EAAIg8F,EAAQl+F,OAAQkC,IAAM,CACzD,MAAM48F,EAAWZ,EAASW,GACpBE,EAAWb,EAASh8F,GAGpB88F,EACY,UAAjBF,EAASjsF,MAAqC,UAAjBksF,EAASlsF,MACrB,SAAjBisF,EAASp1F,MAAoC,SAAjBq1F,EAASr1F,MACrCo1F,EAAS3vE,SAASpC,QAASgyE,EAAS5vE,UAG/B8vE,EACY,UAAjBH,EAASjsF,MAAqC,UAAjBksF,EAASlsF,MACrB,SAAjBisF,EAASp1F,MAAoC,SAAjBq1F,EAASr1F,MACrCo1F,EAAS3vE,SAAS7oB,QAAUy4F,EAAS5vE,SAAS7oB,QAC9Cw4F,EAAS3vE,SAASpL,OAAS+6E,EAAS9+F,QAAU++F,EAAS5vE,SAASpL,OAG3Dm7E,EACY,aAAjBJ,EAASjsF,MAAwC,aAAjBksF,EAASlsF,MACzCisF,EAAS3vE,SAAU7oB,QAAUy4F,EAAS5vE,SAAU7oB,QAChDw4F,EAASrwE,MAAMxI,QAAU84E,EAAStwE,MAAMxI,QACtC64E,EAAS3vE,SAAUpL,OAAS+6E,EAAS9+F,QAAa++F,EAAS5vE,SAAUpL,QACvE+6E,EAAS/oC,cAAgBgpC,EAAShpC,cAClC+oC,EAAS/sB,mBAAqBgtB,EAAShtB,mBACvC+sB,EAAS9sB,mBAAqB+sB,EAAS/sB,kBAEnCgtB,GAA2BC,GAAwBC,GACvDJ,EAAS9+F,SAEJk/F,IACFJ,EAASrwE,MAAeglB,IAAMqrD,EAASrwE,MAAMglB,IAAI0I,aAAc,IAGlE+hD,EAASh8F,GAAM,MAEf28F,EAAY38F,CAEd,CAEAg8F,EAAUA,EAAQzwF,QAAQzM,GAAKA,IAG/B,UAAY2G,KAAQu2F,SACZv2F,EAAKi3F,YAEM,aAAbj3F,EAAKkL,cACFlL,EAAKwnB,gBACLxnB,EAAK3H,QAUd,OANA0H,KAAK00F,aAAe,EAGpB10F,KAAK40F,4BAA8B4B,EACnCx2F,KAAK20F,eAAiB6B,EAAQzwF,OAAQ0xF,IAEjClzF,EAAQgyF,0BACLv2F,KAAK40F,4BAA4B9yF,QAEjC9B,KAAK20F,eAAe7yF,OAE7B,CAOO,eAAA41F,GACN,OAAO/2F,MAAMrB,KAAMU,KAAKy0F,cAAcrpF,UAAWpO,KAAK26F,IACrD,MAAMt+E,EAAQ,IAAKs+E,GAanB,YAXqB,IAAhBt+E,EAAMu+E,cAQHv+E,EAAM9T,WAGP8T,CAAK,GAEd,CAKO,iBAAAswD,GACN,OAAO,IAAI51D,IAAK/T,KAAK60F,gBACtB,CAKO,KAAAgD,GACN73F,KAAKs0F,kBAAkBviF,QACvB/R,KAAKu0F,kBAAkBxiF,QACvB/R,KAAKw0F,gBAAgBziF,QACrB/R,KAAKy0F,cAAc1iF,QACnB/R,KAAK60F,gBAAkB,IAAI9gF,IAC3B/T,KAAK20F,eAAiB,IACvB,CAKQ,sBAAAkB,CAAwB/0D,EAAkB+F,GACjD,IAAM7mC,KAAKy0F,cAAcxmF,IAAK6yB,GAG7B,YAFA9gC,KAAKy0F,cAAc7iF,IAAKkvB,EAAU,CAAE9+B,KAAM8+B,EAAU82D,MAAO/wD,EAAa,WAAa,aAKtF,MAAM8wD,EAAW33F,KAAKy0F,cAAcrsF,IAAK04B,QAEjB,IAAnB62D,EAASC,cAIND,EAASC,WAEa,IAAxBD,EAASpyF,YAEbvF,KAAKy0F,cAAc3iF,OAAQgvB,IAG5B62D,EAASC,MAAQ/wD,EAAa,WAAa,UAE7C,CAKQ,0BAAAivD,CAA4Bh1D,EAAkB/pC,EAAa4c,EAAmBC,GACrF,MAAM+jF,EAAyB33F,KAAKy0F,cAAcrsF,IAAK04B,IAAc,CAAE9+B,KAAM8+B,GACvE+O,EAAkE8nD,EAASpyF,YAAc,CAAC,EAEhG,GAAKsqC,EAAO94C,GAAQ,CAEnB,MAAM+gG,EAAYjoD,EAAO94C,GAEpB6c,IAAakkF,EAAUnkF,gBAEpBk8B,EAAO94C,GAGd+gG,EAAUlkF,SAAWA,CAEvB,MAECi8B,EAAO94C,GAAQ,CAAE4c,WAAUC,YAGY,IAAnC5c,OAAOoiB,QAASy2B,GAAQv3C,eAErBq/F,EAASpyF,gBAEQ,IAAnBoyF,EAASC,OAEb53F,KAAKy0F,cAAc3iF,OAAQgvB,KAI5B62D,EAASpyF,WAAasqC,EAEtB7vC,KAAKy0F,cAAc7iF,IAAKkvB,EAAU62D,GAEpC,CASO,YAAA7Z,CAAc79E,GACpB,GAAKD,KAAKi1F,qBAAsBh1F,EAAKrB,QACpC,OAGDoB,KAAKs1F,YAAar1F,EAAKrB,OAASqB,EAAKk0C,YAAcl0C,EAAK+oC,YACxDhpC,KAAKk1F,YAAaj1F,EAAKrB,OAASqB,EAAKk0C,YAAcl0C,EAAK+oC,YAExDhpC,KAAK60F,gBAAgB3mF,IAAKjO,GAE1B,MAAM8mB,EAAQ,GAAM6vB,UAAW32C,GAE/B,UAAYgrE,KAAUjrE,KAAKq0F,kBAAkBkB,4BAA6BxuE,GAAU,CACnF,MAAMyuE,EAAavqB,EAAOxO,UAE1Bz8D,KAAKy1F,mBAAoBxqB,EAAOjpE,KAAMwzF,EAAYA,EACnD,CAGAx1F,KAAK20F,eAAiB,IACvB,CAcO,eAAAoD,CAAiBzhG,GACvB,GAAMA,EAAKuwC,aAAX,CAIA7mC,KAAK61F,uBAAwBv/F,EAAKwqC,UAAU,GAC5C9gC,KAAKk1F,YAAa5+F,EAAM,EAAGA,EAAK6pE,WAMhC,UAAYppE,KAAOT,EAAKszC,mBACvB5pC,KAAK81F,2BAA4Bx/F,EAAKwqC,SAAU/pC,EAAK,KAAMT,EAAKokC,aAAc3jC,IAG/E,UAAYk0E,KAAUjrE,KAAKq0F,kBAC1B,GAAKppB,EAAOT,WAAWl0E,MAAQA,EAAO,CACrC,MAAMk/F,EAAavqB,EAAOxO,UAE1Bz8D,KAAKy1F,mBAAoBxqB,EAAOjpE,KAAM,IAAKwzF,EAAYzuE,MAAO,MAAQyuE,EACvE,CAlBD,CAoBD,CAKQ,WAAAN,CAAat2F,EAAoCyd,EAAgBhR,GACxE,GAAKzM,EAAOtI,KAAKiY,GAAI,iBAAoB3P,EAAOtI,KAAKs/F,UACpD,OAGD,MAAMoC,EAAa,CAAE7sF,KAAM,SAAUkR,SAAQhR,UAAS1G,MAAO3E,KAAK00F,gBAElE10F,KAAKi4F,YAAar5F,EAAQo5F,EAC3B,CAKQ,WAAA1C,CAAa12F,EAAoCyd,EAAgBhR,GACxE,GAAKzM,EAAOtI,KAAKiY,GAAI,iBAAoB3P,EAAOtI,KAAKs/F,UACpD,OAGD,MAAMoC,EAAa,CAAE7sF,KAAM,SAAUkR,SAAQhR,UAAS1G,MAAO3E,KAAK00F,gBAElE10F,KAAKi4F,YAAar5F,EAAQo5F,GAE1Bh4F,KAAKk4F,wBAAyBt5F,EAAQyd,EAAQhR,EAC/C,CAKQ,cAAA8pF,CAAgBl1F,GACvB,GAAKA,EAAK3J,KAAKiY,GAAI,iBAAoBtO,EAAK3J,KAAKs/F,UAChD,OAGD,MAAMoC,EAAa,CAAE7sF,KAAM,YAAakR,OAAQpc,EAAKk0C,YAAc9oC,QAASpL,EAAK+oC,WAAYrkC,MAAO3E,KAAK00F,gBAEzG10F,KAAKi4F,YAAah4F,EAAKrB,OAAmBo5F,EAC3C,CAKQ,WAAAC,CAAar5F,EAAoCo5F,GAExDh4F,KAAKm4F,cAAev5F,GAGpB,MAAMkrE,EAAU9pE,KAAKo4F,sBAAuBx5F,GAG5CoB,KAAKq4F,cAAeL,EAAYluB,GAGhCA,EAAQlqE,KAAMo4F,GAId,QAAUx9F,EAAI,EAAGA,EAAIsvE,EAAQxxE,OAAQkC,IAC/BsvE,EAAStvE,GAAI6Q,QAAU,IAC3By+D,EAAQtiE,OAAQhN,EAAG,GAEnBA,IAGH,CAKQ,qBAAA49F,CAAuBrhF,GAC9B,IAAI+yD,EAUJ,OARK9pE,KAAKs0F,kBAAkBrmF,IAAK8I,GAChC+yD,EAAU9pE,KAAKs0F,kBAAkBlsF,IAAK2O,IAEtC+yD,EAAU,GAEV9pE,KAAKs0F,kBAAkB1iF,IAAKmF,EAAS+yD,IAG/BA,CACR,CAKQ,aAAAquB,CAAephF,GAChB/W,KAAKu0F,kBAAkBtmF,IAAK8I,IACjC/W,KAAKu0F,kBAAkB3iF,IAAKmF,EAAS4/E,GAAsB5/E,EAAQ+vB,eAErE,CASQ,aAAAuxD,CAAeC,EAAiBxuB,GAiBvCwuB,EAAIC,cAAgBD,EAAIjtF,QAExB,UAAYmtF,KAAO1uB,EAAU,CAC5B,MAAM2uB,EAASH,EAAIj8E,OAASi8E,EAAIjtF,QAC1BqtF,EAASF,EAAIn8E,OAASm8E,EAAIntF,QAEhC,GAAiB,UAAZitF,EAAIntF,OACS,UAAZqtF,EAAIrtF,OACHmtF,EAAIj8E,QAAUm8E,EAAIn8E,OACtBm8E,EAAIn8E,QAAUi8E,EAAIjtF,QACPitF,EAAIj8E,OAASq8E,IACxBF,EAAIntF,SAAWitF,EAAIC,cACnBD,EAAIC,cAAgB,IAIL,UAAZC,EAAIrtF,MACHmtF,EAAIj8E,OAASm8E,EAAIn8E,SACrBm8E,EAAIn8E,QAAUi8E,EAAIjtF,SAIH,aAAZmtF,EAAIrtF,MACR,GAAKmtF,EAAIj8E,QAAUm8E,EAAIn8E,OACtBm8E,EAAIn8E,QAAUi8E,EAAIjtF,aACZ,GAAKitF,EAAIj8E,OAASq8E,EAAS,CAWjC,MAAMrtF,EAAUmtF,EAAIntF,QAEpBmtF,EAAIntF,QAAUitF,EAAIj8E,OAASm8E,EAAIn8E,OAI/BytD,EAAQ1qE,QAAS,CAChB+L,KAAM,YACNkR,OAAQo8E,EACRptF,QAASA,EAAUmtF,EAAIntF,QACvB1G,MAAO3E,KAAK00F,gBAEd,CAIF,GAAiB,UAAZ4D,EAAIntF,KAAmB,CAC3B,GAAiB,UAAZqtF,EAAIrtF,KACR,GAAKstF,GAAUD,EAAIn8E,OAClBm8E,EAAIn8E,QAAUi8E,EAAIjtF,aACZ,GAAKotF,GAAUC,EACrB,GAAKJ,EAAIj8E,OAASm8E,EAAIn8E,OAAS,CAC9B,MAAMs8E,EAAqBF,EAASD,EAAIn8E,OAExCm8E,EAAIn8E,OAASi8E,EAAIj8E,OAEjBm8E,EAAIntF,SAAWstF,EACfL,EAAIC,eAAiBI,CACtB,MACCH,EAAIntF,SAAWitF,EAAIC,cACnBD,EAAIC,cAAgB,OAGrB,GAAKD,EAAIj8E,QAAUm8E,EAAIn8E,OACtBi8E,EAAIC,eAAiBC,EAAIntF,QACzBmtF,EAAIntF,QAAU,OACR,GAAKitF,EAAIj8E,OAASq8E,EAAS,CACjC,MAAMC,EAAqBD,EAASJ,EAAIj8E,OAExCm8E,EAAIntF,SAAWstF,EACfL,EAAIC,eAAiBI,CACtB,CAaF,GATiB,UAAZH,EAAIrtF,OACHstF,GAAUD,EAAIn8E,OAClBm8E,EAAIn8E,QAAUi8E,EAAIjtF,QACPitF,EAAIj8E,OAASm8E,EAAIn8E,SAC5Bi8E,EAAIC,eAAiBC,EAAIntF,QACzBmtF,EAAIntF,QAAU,IAIC,aAAZmtF,EAAIrtF,KACR,GAAKstF,GAAUD,EAAIn8E,OAClBm8E,EAAIn8E,QAAUi8E,EAAIjtF,aACZ,GAAKitF,EAAIj8E,OAASm8E,EAAIn8E,OAAS,CACrC,MAAMs8E,EAAqBF,EAASD,EAAIn8E,OAExCm8E,EAAIn8E,OAASi8E,EAAIj8E,OACjBm8E,EAAIntF,SAAWstF,CAChB,MAAO,GAAKL,EAAIj8E,OAASq8E,EACxB,GAAKD,GAAUC,EAAS,CAMvB,MAAMrtF,EAAUmtF,EAAIntF,QAEpBmtF,EAAIntF,QAAUitF,EAAIj8E,OAASm8E,EAAIn8E,OAE/B,MAAMu8E,EAAevtF,EAAUmtF,EAAIntF,QAAUitF,EAAIC,cAIjDzuB,EAAQ1qE,QAAS,CAChB+L,KAAM,YACNkR,OAAQi8E,EAAIj8E,OACZhR,QAASutF,EACTj0F,MAAO3E,KAAK00F,gBAEd,MACC8D,EAAIntF,SAAWqtF,EAASJ,EAAIj8E,MAIhC,CAEA,GAAiB,aAAZi8E,EAAIntF,KAAsB,CAE9B,GAAiB,UAAZqtF,EAAIrtF,KACR,GAAKmtF,EAAIj8E,OAASm8E,EAAIn8E,QAAUo8E,EAASD,EAAIn8E,OAAS,CACrD,GAAKo8E,EAASC,EAAS,CAOtB,MAAMG,EAAgB,CACrB1tF,KAAM,YACNkR,OAAQq8E,EACRrtF,QAASotF,EAASC,EAClB/zF,MAAO3E,KAAK00F,gBAGb10F,KAAKq4F,cAAeQ,EAAe/uB,GAEnCA,EAAQlqE,KAAMi5F,EACf,CAEAP,EAAIC,cAAgBC,EAAIn8E,OAASi8E,EAAIj8E,OACrCi8E,EAAIjtF,QAAUitF,EAAIC,aACnB,MAAYD,EAAIj8E,QAAUm8E,EAAIn8E,QAAUi8E,EAAIj8E,OAASq8E,IAC/CD,EAASC,GACbJ,EAAIC,cAAgBE,EAASC,EAC7BJ,EAAIj8E,OAASq8E,GAEbJ,EAAIC,cAAgB,GAKvB,GAAiB,UAAZC,EAAIrtF,MAGHmtF,EAAIj8E,OAASm8E,EAAIn8E,QAAUo8E,EAASD,EAAIn8E,OAAS,CACrD,MAAMw8E,EAAgB,CACrB1tF,KAAM,YACNkR,OAAQm8E,EAAIn8E,OACZhR,QAASotF,EAASD,EAAIn8E,OACtB1X,MAAO3E,KAAK00F,gBAGb10F,KAAKq4F,cAAeQ,EAAe/uB,GAEnCA,EAAQlqE,KAAMi5F,GAEdP,EAAIC,cAAgBC,EAAIn8E,OAASi8E,EAAIj8E,OACrCi8E,EAAIjtF,QAAUitF,EAAIC,aACnB,CAGgB,aAAZC,EAAIrtF,OAEHmtF,EAAIj8E,QAAUm8E,EAAIn8E,QAAUo8E,GAAUC,GAE1CJ,EAAIC,cAAgB,EACpBD,EAAIjtF,QAAU,EACditF,EAAIj8E,OAAS,GACFi8E,EAAIj8E,QAAUm8E,EAAIn8E,QAAUo8E,GAAUC,IAEjDF,EAAIntF,QAAU,GAGjB,CACD,CAEAitF,EAAIjtF,QAAUitF,EAAIC,qBACXD,EAAIC,aACZ,CAUQ,cAAA1B,CACPj4F,EACAyd,EACAy8E,GAEA,MAAO,CACN3tF,KAAM,SACNsc,SAAU,GAAS2rB,UAAWx0C,EAAQyd,GACtCra,KAAM82F,EAAgB92F,KACtBuD,WAAY,IAAImM,IAAKonF,EAAgBvzF,YACrCjN,OAAQ,EACR4+F,YAAal3F,KAAK00F,eAClB/sE,SAAUmxE,EAAgB/hF,QAE5B,CAUQ,cAAA+/E,CACPl4F,EACAyd,EACAy8E,GAEA,MAAO,CACN3tF,KAAM,SACNsc,SAAU,GAAS2rB,UAAWx0C,EAAQyd,GACtCra,KAAM82F,EAAgB92F,KACtBuD,WAAY,IAAImM,IAAKonF,EAAgBvzF,YACrCjN,OAAQ,EACR4+F,YAAal3F,KAAK00F,eAClB/sE,SAAUmxE,EAAgB/hF,QAE5B,CAUQ,kBAAAkgF,CACPlwE,EACAmqD,EACAF,GAGA,MAAM4gB,EAAqD,GAG3D5gB,EAAgB,IAAIt/D,IAAKs/D,GAGzB,UAAcj6E,EAAK4c,KAAcu9D,EAAgB,CAEhD,MAAMt9D,EAAWo9D,EAAc/iE,IAAKlX,GAAQi6E,EAAc5oE,IAAKrR,GAAQ,KAGlE6c,IAAaD,GAEjBi+E,EAAMhyF,KAAM,CACXuL,KAAM,YACNsc,SAAUV,EAAM0J,MAChB1J,MAAOA,EAAM/C,QACb1rB,OAAQ,EACR+1D,aAAct3D,EACdszE,kBAAmB12D,EACnB22D,kBAAmB12D,EACnBsjF,YAAal3F,KAAK00F,iBAKpB1jB,EAAcl/D,OAAQ/a,EACvB,CAGA,UAAcA,EAAK6c,KAAco9D,EAEhC4gB,EAAMhyF,KAAM,CACXuL,KAAM,YACNsc,SAAUV,EAAM0J,MAChB1J,MAAOA,EAAM/C,QACb1rB,OAAQ,EACR+1D,aAAct3D,EACdszE,kBAAmB,KACnBC,kBAAmB12D,EACnBsjF,YAAal3F,KAAK00F,iBAIpB,OAAO9C,CACR,CAKQ,oBAAAqD,CAAsBl+E,GAC7B,MAAMnY,EAASmY,EAAQnY,OAEvB,IAAMA,EACL,OAAO,EAGR,MAAMkrE,EAAU9pE,KAAKs0F,kBAAkBlsF,IAAKxJ,GACtCyd,EAAStF,EAAQo9B,YAEvB,GAAK21B,EACJ,UAAYhkC,KAAUgkC,EACrB,GAAoB,UAAfhkC,EAAO36B,MAAoBkR,GAAWypB,EAAOzpB,QAAUA,EAAUypB,EAAOzpB,OAASypB,EAAOz6B,QAC5F,OAAO,EAKV,OAAOrL,KAAKi1F,qBAAsBr2F,EACnC,CAMQ,uBAAAs5F,CAAyBt5F,EAAoCyd,EAAgBhR,GACpF,MAAM0b,EAAQ,IAAI,GAAO,GAASqsB,UAAWx0C,EAAQyd,GAAU,GAAS+2B,UAAWx0C,EAAQyd,EAAShR,IAEpG,UAAYpL,KAAQ8mB,EAAMsvB,SAAU,CAAExD,SAAS,IACzC5yC,EAAKsO,GAAI,aACbvO,KAAKu0F,kBAAkBziF,OAAQ7R,GAC/BD,KAAKs0F,kBAAkBxiF,OAAQ7R,GAE/BD,KAAKk4F,wBAAyBj4F,EAAM,EAAGA,EAAKkgE,WAG/C,EAeD,SAASw2B,GAAsBz+E,GAC9B,MAAM6gF,EAAkC,GAExC,UAAYzgF,KAASJ,EACpB,GAAKI,EAAM/J,GAAI,SACd,QAAU/T,EAAI,EAAGA,EAAI8d,EAAMxV,KAAKxK,OAAQkC,IACvCu+F,EAASn5F,KAAM,CACdoC,KAAM,QACNuD,WAAY,IAAImM,IAAK4G,EAAM83B,wBAI7B2oD,EAASn5F,KAAM,CACdoC,KAAQsW,EAAmBtW,KAC3BuD,WAAY,IAAImM,IAAK4G,EAAM83B,iBAC3Br5B,QAASuB,IAKZ,OAAOygF,CACR,CAiDA,SAASnC,GAA6BoC,EAA2BlvB,GAChE,MAAMviB,EAAyB,GAE/B,IAAIlrC,EAAS,EACT48E,EAAqB,EAGzB,UAAYnzD,KAAUgkC,EAAU,CAE/B,GAAKhkC,EAAOzpB,OAASA,EAAS,CAC7B,QAAU7hB,EAAI,EAAGA,EAAIsrC,EAAOzpB,OAASA,EAAQ7hB,IAC5C+sD,EAAQ3nD,KAAM,KAGfq5F,GAAsBnzD,EAAOzpB,OAASA,CACvC,CAGA,GAAoB,UAAfypB,EAAO36B,KAAmB,CAC9B,QAAU3Q,EAAI,EAAGA,EAAIsrC,EAAOz6B,QAAS7Q,IACpC+sD,EAAQ3nD,KAAM,KAIfyc,EAASypB,EAAOzpB,OAASypB,EAAOz6B,OACjC,MAAO,GAAoB,UAAfy6B,EAAO36B,KAAmB,CACrC,QAAU3Q,EAAI,EAAGA,EAAIsrC,EAAOz6B,QAAS7Q,IACpC+sD,EAAQ3nD,KAAM,KAIfyc,EAASypB,EAAOzpB,OAEhB48E,GAAsBnzD,EAAOz6B,OAC9B,MACCk8C,EAAQ3nD,QAAS,IAAIslD,OAAQpf,EAAOz6B,SAAUtO,MAAO,KAGrDsf,EAASypB,EAAOzpB,OAASypB,EAAOz6B,QAEhC4tF,GAAsBnzD,EAAOz6B,OAE/B,CAIA,GAAK4tF,EAAqBD,EACzB,QAAUx+F,EAAI,EAAGA,EAAIw+F,EAAoBC,EAAqB58E,EAAQ7hB,IACrE+sD,EAAQ3nD,KAAM,KAIhB,OAAO2nD,CACR,CAKA,SAASkwC,GAA2Bp+E,GACnC,MAAM6/E,EAAU,aAAc7/E,GAA0C,cAAjCA,EAAMoO,SAAUnxB,KAAKwqC,SACtDq4D,EAAY,UAAW9/E,GAAsC,cAA7BA,EAAM0N,MAAMzwB,KAAKwqC,SAEvD,OAAQo4D,IAAYC,CACrB,CC31Ce,MAAMC,GAIZC,YAAgC,GAShCC,WAAwC,IAAI5nF,IAK5C6nF,kBAAoC,IAAIxlF,IAKxCylF,6BAAoD,IAAI9nF,IAKxD+nF,SAAmB,EAQnBC,MAA6B,IAAIhoF,IAUzC,WAAW3C,GACV,OAAO/O,KAAKy5F,QACb,CAEA,WAAW1qF,CAASA,GAGd/O,KAAKq5F,YAAY/gG,QAAUyW,EAAU/O,KAAKy5F,SAAW,GACzDz5F,KAAK05F,MAAM9nF,IAAK5R,KAAKy5F,SAAU1qF,GAGhC/O,KAAKy5F,SAAW1qF,CACjB,CAKA,iBAAW4qF,GACV,OAAO35F,KAAKq5F,YAAar5F,KAAKq5F,YAAY/gG,OAAS,EACpD,CAOO,YAAA67F,CAAc5xB,GACpB,GAAKA,EAAU4nB,cAAgBnqF,KAAK+O,QAOnC,MAAM,IAAIrB,EAAe,wDAAyD1N,KAAM,CACvFuiE,YACAq3B,eAAgB55F,KAAK+O,UAIvB/O,KAAKq5F,YAAYz5F,KAAM2iE,GACvBviE,KAAKy5F,WAELz5F,KAAKw5F,6BAA6B5nF,IAAK2wD,EAAU4nB,YAAanqF,KAAKq5F,YAAY/gG,OAAS,EACzF,CAWO,aAAAuhG,CAAeC,EAA0BC,EAAwB/5F,KAAK+O,SAG5E,IAAM/O,KAAKq5F,YAAY/gG,OACtB,MAAO,GAGR,MAAM0hG,EAAiBh6F,KAAKq5F,YAAa,QAEhB,IAApBS,IACJA,EAAkBE,EAAe7P,aAKlC,IAAI8P,EAAcF,EAAgB,EAKlC,UAAcG,EAASC,KAAWn6F,KAAK05F,MACjCI,EAAkBI,GAAWJ,EAAkBK,IACnDL,EAAkBK,GAGdF,EAAcC,GAAWD,EAAcE,IAC3CF,EAAcC,EAAU,GAK1B,GAAKD,EAAcD,EAAe7P,aAAgB2P,EAAkB95F,KAAK25F,cAAexP,YACvF,MAAO,GAGR,IAAIiQ,EAAYp6F,KAAKw5F,6BAA6BpxF,IAAK0xF,QAGpC,IAAdM,IACJA,EAAY,GAGb,IAAIC,EAAUr6F,KAAKw5F,6BAA6BpxF,IAAK6xF,GAQrD,YALiB,IAAZI,IACJA,EAAUr6F,KAAKq5F,YAAY/gG,OAAS,GAI9B0H,KAAKq5F,YAAYv3F,MACvBs4F,EAGAC,EAAU,EAEZ,CAQO,YAAAC,CAAcnQ,GACpB,MAAMoQ,EAAiBv6F,KAAKw5F,6BAA6BpxF,IAAK+hF,GAE9D,QAAwB,IAAnBoQ,EAIL,OAAOv6F,KAAKq5F,YAAakB,EAC1B,CASO,oBAAAC,CAAsBC,EAA4BC,GACxD16F,KAAKs5F,WAAW1nF,IAAK8oF,EAAkBD,GACvCz6F,KAAKu5F,kBAAkBrrF,IAAKusF,EAC7B,CAQO,kBAAAE,CAAoBp4B,GAC1B,OAAOviE,KAAKs5F,WAAWrrF,IAAKs0D,EAC7B,CAQO,iBAAAwuB,CAAmBxuB,GACzB,OAAOviE,KAAKu5F,kBAAkBtrF,IAAKs0D,EACpC,CAQO,kBAAA2uB,CAAoBwJ,GAC1B,OAAO16F,KAAKs5F,WAAWlxF,IAAKsyF,EAC7B,CAKO,KAAA7C,GACN73F,KAAKy5F,SAAW,EAChBz5F,KAAKs5F,WAAa,IAAI5nF,IACtB1R,KAAKq5F,YAAc,GACnBr5F,KAAKu5F,kBAAoB,IAAIxlF,IAC7B/T,KAAK05F,MAAQ,IAAIhoF,IACjB1R,KAAKw5F,6BAA+B,IAAI9nF,GACzC,ECnOc,MAAMkpF,WAAoB,GAIf95D,SAKRwuC,UAKV4d,aAAc,EAOd0I,WAAY,EASnB,WAAA7zF,CAAayB,EAAoBxB,EAAc8+B,EAAmB,QACjEjzB,MAAO7L,GAEPhC,KAAKsvE,UAAY9rE,EACjBxD,KAAK8gC,SAAWA,CACjB,CAKA,YAAoBt9B,GACnB,OAAOxD,KAAKsvE,SACb,CAWgB,UAAAzoC,GACf,OAAO7mC,KAAKktF,WACb,CAOgB,MAAA7kD,GACf,OAAOroC,KAAK8gC,QACb,EAaD85D,GAAY/4F,UAAU0M,GAAK,SAAUpD,EAAcnJ,GAClD,OAAMA,EAOCA,IAAShC,KAAKgC,OACX,gBAATmJ,GAAmC,sBAATA,GAEjB,YAATA,GAA+B,kBAATA,GATN,gBAATA,GAAmC,sBAATA,GAEvB,YAATA,GAA+B,kBAATA,GACb,SAATA,GAA4B,eAATA,CAQtB,ECxEA,MAAM0vF,GAAgB,aAkBP,MAAM,WAAiCrrF,KAIrCpX,MAKAu3F,QAKAhvD,UAMAma,MAKA0uB,OASTxoC,WAKU+Z,YAKT+/C,2CAMR,WAAA/4F,CAAa3J,GACZyV,QAEA7N,KAAK5H,MAAQA,EACb4H,KAAK2vF,QAAU,IAAIyJ,GACnBp5F,KAAK2gC,UAAY,IAAI,GAAmB3gC,MACxCA,KAAK86C,MAAQ,IAAIloB,GAAY,CAAEU,WAAY,aAC3CtzB,KAAKwpE,OAAS,IAAI4qB,GAAQh8F,EAAMqxE,SAChCzpE,KAAKghC,YAAa,EAElBhhC,KAAK+6C,YAAc,IAAIhnC,IACvB/T,KAAK86F,4CAA6C,EAGlD96F,KAAKitF,WAAY,QAAS4N,IAG1B76F,KAAK4P,SAAoCxX,EAAO,kBAAkB,CAAEod,EAAKtZ,KACxE,MAAMqmE,EAAYrmE,EAAM,GAEnBqmE,EAAU0L,qBACdjuE,KAAKwpE,OAAOurB,gBAAiBxyB,EAC9B,GACE,CAAEv1D,SAAU,SAGfhN,KAAK4P,SAAoCxX,EAAO,kBAAkB,CAAEod,EAAKtZ,KACxE,MAAMqmE,EAAYrmE,EAAM,GAEnBqmE,EAAU0L,qBACdjuE,KAAK2vF,QAAQwE,aAAc5xB,EAC5B,GACE,CAAEv1D,SAAU,QAGfhN,KAAK4P,SAAgC5P,KAAK2gC,UAAW,UAAU,KAC9D3gC,KAAK86F,4CAA6C,CAAI,IAMvD96F,KAAK4P,SAAuCxX,EAAMqxE,QAAS,UAAU,CAAEj0D,EAAKy1D,EAAQmB,EAAUrrB,EAAUg1C,KAEvG,MAAMC,EAAgB,IAAK/qB,EAAOxO,UAAW11C,MAAOg6B,GAGpD/gD,KAAKwpE,OAAOisB,mBAAoBxqB,EAAOjpE,KAAM+zF,EAAeC,GAE1C,OAAb5pB,GAEJnB,EAAOx7D,GAAuB,UAAU,CAAE+F,EAAK42D,KAC9C,MAAMopB,EAAavqB,EAAOxO,UAE1Bz8D,KAAKwpE,OAAOisB,mBACXxqB,EAAOjpE,KACP,IAAKwzF,EAAYzuE,MAAOqlD,GACxBopB,EACA,GAEH,IAcDx1F,KAAKimC,mBAAmBF,IACvB,IAAI5nC,GAAS,EAEb,UAAY7H,KAAQ0J,KAAK86C,MAClBxkD,EAAKuwC,cAAiBvwC,EAAKg2C,UAChCvG,EAAO9/B,OAAQ8/B,EAAO4b,cAAerrD,IAErC6H,GAAS,GAIX,UAAY8sE,KAAUjrE,KAAK5H,MAAMqxE,QAC1BwB,EAAOT,WAAWl0E,KAAKuwC,eAC5Bd,EAAOg1D,aAAc9vB,GAErB9sE,GAAS,GAIX,OAAOA,CAAM,GAEf,CAWA,WAAW4Q,GACV,OAAO/O,KAAK2vF,QAAQ5gF,OACrB,CAEA,WAAWA,CAASA,GACnB/O,KAAK2vF,QAAQ5gF,QAAUA,CACxB,CAKA,aAAW20D,GACV,OAAO1jE,KAAKg7C,QAAS6/C,GACtB,CAaO,UAAA5N,CAAY1+B,EAAsB,QAASztB,EAAmB,QACpE,GAAK9gC,KAAK86C,MAAM1yC,IAAK04B,GAMpB,MAAM,IAAIpzB,EAAe,wCAAyC1N,KAAM,CAAEgC,KAAM8+B,IAGjF,MAAMxqC,EAAO,IAAIskG,GAAa56F,KAAMuuD,EAAaztB,GAGjD,OAFA9gC,KAAK86C,MAAM5sC,IAAK5X,GAETA,CACR,CAKO,OAAA2xB,GACNjoB,KAAK2gC,UAAU1Y,UACfjoB,KAAK+P,eACN,CAWO,OAAAirC,CAASh5C,EAAe,QAC9B,OAAOhC,KAAK86C,MAAM1yC,IAAKpG,EACxB,CAUO,YAAAg5F,CAAcC,GAAkB,GACtC,OAAOj7F,KAAK03E,SAAUujB,GAAkBj+F,KAAK1G,GAAQA,EAAKwqC,UAC3D,CAUO,QAAA42C,CAAUujB,GAAkB,GAClC,OAAOj7F,KAAK86C,MAAM/0C,QAAQzP,GAAQA,GAAQ0J,KAAK0jE,YAAeu3B,GAAmB3kG,EAAKuwC,eAAkBvwC,EAAKs/F,WAC9G,CAuCO,iBAAA3vD,CAAmBgV,GACzBj7C,KAAK+6C,YAAY7sC,IAAK+sC,EACvB,CAOO,MAAA5S,GACN,MAAMC,EAAY,GAAOtoC,MAMzB,OAHAsoC,EAAK3H,UAAY,mCACjB2H,EAAKlwC,MAAQ,uBAENkwC,CACR,CAYO,kBAAA4yD,CAAoBn1D,GACrB/lC,KAAKm7F,8CACTn7F,KAAKk7C,gBAAiBnV,GAGtB/lC,KAAK2gC,UAAUF,UAEVzgC,KAAKwpE,OAAO2sB,iBAChBn2F,KAAK4Q,KAA2B,cAAem1B,EAAOgqC,OAEtD/vE,KAAK4Q,KAA2B,SAAUm1B,EAAOgqC,OAKlD/vE,KAAK2gC,UAAUF,UAEfzgC,KAAKwpE,OAAOquB,SAGb73F,KAAK86F,4CAA6C,CACnD,CASU,yCAAAK,GACT,OAAQn7F,KAAKwpE,OAAOl9B,SAAWtsC,KAAK86F,0CACrC,CAQU,eAAAM,GACT,MAAMtgD,EAAQ96C,KAAK03E,WAEnB,OAAO58B,EAAMxiD,OAASwiD,EAAO,GAAM96C,KAAK0jE,SACzC,CAQO,gBAAA0M,GACN,MAAMirB,EAAcr7F,KAAKo7F,kBACnBhjG,EAAQ4H,KAAK5H,MACbkiC,EAASliC,EAAMkiC,OAGf7S,EAAWrvB,EAAMkjG,uBAAwBD,EAAa,CAAE,IAI9D,OAHqB/gE,EAAOk3C,yBAA0B/pD,IAG/BrvB,EAAMqpD,YAAah6B,EAC3C,CAUO,uBAAA+oD,CAAyBzpD,GAC/B,OAAOw0E,GAA0Bx0E,EAAM0J,QAAW8qE,GAA0Bx0E,EAAMglB,IACnF,CAOQ,eAAAmP,CAAiBnV,GACxB,IAAIoV,GAAW,EAEf,GACC,UAAYxrC,KAAY3P,KAAK+6C,YAW5B,GAJA/6C,KAAK2gC,UAAUF,UAEf0a,EAAWxrC,EAAUo2B,GAEhBoV,EACJ,YAGOA,EACX,EAsDD,SAASogD,GAA0BC,GAClC,MAAM1yD,EAAW0yD,EAAc1yD,SAE/B,GAAKA,EAAW,CACf,MAAMhmC,EAAOgmC,EAAShmC,KAChBuZ,EAASm/E,EAAcn/E,OAASysB,EAASqL,YAE/C,OAAQtd,GAAuB/zB,EAAMuZ,KAAa2a,GAAwBl0B,EAAMuZ,EACjF,CAEA,OAAO,CACR,CC7ee,MAAMo/E,WAAyCjsF,KAIrDg9E,SAAgC,IAAI96E,IAO5C,CAAS5Q,OAAOC,YACf,OAAOf,KAAKwsF,SAASphF,QACtB,CAQO,GAAA6C,CAAKyvE,GACX,MAAMtX,EAAasX,aAAwBge,GAAShe,EAAa17E,KAAO07E,EAExE,OAAO19E,KAAKwsF,SAASv+E,IAAKm4D,EAC3B,CASO,GAAAh+D,CAAKg+D,GACX,OAAOpmE,KAAKwsF,SAASpkF,IAAKg+D,IAAgB,IAC3C,CAoBO,IAAAqmB,CACN/O,EACA32D,EACA40E,GAAkC,EAClCj7D,GAAuB,GAEvB,MAAM0lC,EAAasX,aAAwBge,GAAShe,EAAa17E,KAAO07E,EAExE,GAAKtX,EAAWj0C,SAAU,KAMzB,MAAM,IAAIzkB,EAAe,yCAA0C1N,MAGpE,MAAM47F,EAAY57F,KAAKwsF,SAASpkF,IAAKg+D,GAErC,GAAKw1B,EAAY,CAChB,MAAM7F,EAAgB6F,EAAUn/B,UAE1B2P,EAAWwvB,EAAUpxB,WAC3B,IAAIqxB,GAAa,EAqBjB,OAnBMzvB,EAAS/mD,QAAS0B,KACvB60E,EAAUE,iBAAkBjuB,GAAUG,UAAWjnD,IACjD80E,GAAa,GAGTF,GAA0BC,EAAUD,yBACxCC,EAAUG,wBAA0BJ,EACpCE,GAAa,GAGc,kBAAhBn7D,GAA6BA,GAAek7D,EAAUl7D,cACjEk7D,EAAUp7D,aAAeE,EACzBm7D,GAAa,GAGTA,GACJ77F,KAAK4Q,KAAmC,UAAWw1D,IAAew1B,EAAWxvB,EAAUrlD,EAAOgvE,GAGxF6F,CACR,CAEA,MAAMtrB,EAAYzC,GAAUG,UAAWjnD,GACjCkkD,EAAS,IAAIywB,GAAQt1B,EAAYkK,EAAWqrB,EAAwBj7D,GAK1E,OAHA1gC,KAAKwsF,SAAS56E,IAAKw0D,EAAY6E,GAC/BjrE,KAAK4Q,KAAmC,UAAWw1D,IAAe6E,EAAQ,KAAMlkD,EAAO,IAAKkkD,EAAOxO,UAAW11C,MAAO,OAE9GkkD,CACR,CAUO,OAAA52C,CAASqpD,GACf,MAAMtX,EAAasX,aAAwBge,GAAShe,EAAa17E,KAAO07E,EAClEke,EAAY57F,KAAKwsF,SAASpkF,IAAKg+D,GAErC,QAAKw1B,IACJ57F,KAAKwsF,SAAS16E,OAAQs0D,GACtBpmE,KAAK4Q,KAAmC,UAAWw1D,IAAew1B,EAAWA,EAAUpxB,WAAY,KAAMoxB,EAAUn/B,WAEnHz8D,KAAKg8F,eAAgBJ,IAEd,EAIT,CAWO,QAAAhe,CAAUF,GAChB,MAAMtX,EAAasX,aAAwBge,GAAShe,EAAa17E,KAAO07E,EAClEzS,EAASjrE,KAAKwsF,SAASpkF,IAAKg+D,GAElC,IAAM6E,EAML,MAAM,IAAIv9D,EAAe,6CAA8C1N,MAGxE,MAAM+mB,EAAQkkD,EAAOT,WAErBxqE,KAAK4Q,KAAmC,UAAWw1D,IAAe6E,EAAQlkD,EAAOA,EAAOkkD,EAAOxO,UAChG,CAKA,qBAAQsO,CAAsBtjD,GAC7B,UAAYwjD,KAAUjrE,KAChBirE,EAAOT,WAAW90B,iBAAkBjuB,WAClCwjD,EAGT,CAKA,4BAAQsqB,CAA6BxuE,GACpC,UAAYkkD,KAAUjrE,KAC+B,OAA/CirE,EAAOT,WAAWrmD,gBAAiB4C,WACjCkkD,EAGT,CAKO,OAAAhjD,GACN,UAAYgjD,KAAUjrE,KAAKwsF,SAASphF,SACnCpL,KAAKg8F,eAAgB/wB,GAGtBjrE,KAAKwsF,SAAW,KAEhBxsF,KAAK+P,eACN,CAcA,gBAAQksF,CAAiBC,GACxB,UAAYjxB,KAAUjrE,KAAKwsF,SAASphF,SAC9B6/D,EAAOjpE,KAAKwsD,WAAY0tC,EAAS,aAC/BjxB,EAGT,CAKQ,cAAA+wB,CAAgB/wB,GACvBA,EAAOl7D,gBACPk7D,EAAOkxB,kBACR,EA0FD,MAAMT,WAA+BlsF,EAAc,KAIlCxN,KAOT+5F,wBAQAv7D,aAKC47D,WAUR,WAAAr6F,CACCC,EACAsuE,EACAqrB,EACAj7D,GAEA7yB,QAEA7N,KAAKgC,KAAOA,EACZhC,KAAKo8F,WAAap8F,KAAK87F,iBAAkBxrB,GACzCtwE,KAAK+7F,wBAA0BJ,EAC/B37F,KAAKwgC,aAAeE,CACrB,CAOA,0BAAWi7D,GACV,IAAM37F,KAAKo8F,WACV,MAAM,IAAI1uF,EAAe,mBAAoB1N,MAG9C,OAAOA,KAAK+7F,uBACb,CAKA,eAAWr7D,GACV,IAAM1gC,KAAKo8F,WACV,MAAM,IAAI1uF,EAAe,mBAAoB1N,MAG9C,OAAOA,KAAKwgC,YACb,CAKO,OAAAi8B,GACN,MAAO,CACN11C,MAAO/mB,KAAKwqE,WACZ9pC,YAAa1gC,KAAK0gC,YAClBi7D,uBAAwB37F,KAAK27F,uBAE/B,CAKO,QAAAU,GACN,IAAMr8F,KAAKo8F,WACV,MAAM,IAAI1uF,EAAe,mBAAoB1N,MAG9C,OAAOA,KAAKo8F,WAAW3rE,MAAMzM,OAC9B,CAKO,MAAAs4E,GACN,IAAMt8F,KAAKo8F,WACV,MAAM,IAAI1uF,EAAe,mBAAoB1N,MAG9C,OAAOA,KAAKo8F,WAAWrwD,IAAI/nB,OAC5B,CAYO,QAAAwmD,GACN,IAAMxqE,KAAKo8F,WACV,MAAM,IAAI1uF,EAAe,mBAAoB1N,MAG9C,OAAOA,KAAKo8F,WAAWruB,SACxB,CASO,gBAAA+tB,CAAkBxrB,GAWxB,OAVKtwE,KAAKo8F,YACTp8F,KAAKm8F,mBAIN7rB,EAAU/+D,SAAU,gBAAiBhS,GAAIS,MACzCswE,EAAU/+D,SAAU,kBAAmBhS,GAAIS,MAE3CA,KAAKo8F,WAAa9rB,EAEXA,CACR,CAOO,gBAAA6rB,GACNn8F,KAAKo8F,WAAYvqF,eAAgB,eAAgB7R,MACjDA,KAAKo8F,WAAYvqF,eAAgB,iBAAkB7R,MACnDA,KAAKo8F,WAAY56E,SACjBxhB,KAAKo8F,WAAa,IACnB,EAKDV,GAAO75F,UAAU0M,GAAK,SAAUpD,GAC/B,MAAgB,WAATA,GAA8B,iBAATA,CAC7B,ECtee,MAAMoxF,WAAwBrS,GAIrCpnB,eAKAz3D,QAaP,WAAAtJ,CAAa+gE,EAA0Bz3D,GACtCwC,MAAO,MAEP7N,KAAK8iE,eAAiBA,EAAe9+C,QACrChkB,KAAKqL,QAAUA,CAChB,CAKA,QAAWF,GACV,MAAO,QACR,CAKA,sBAAWkgF,GACV,OAAO,IACR,CAKgB,MAAAhjD,GACf,MAAMC,EAAYz6B,MAAMw6B,SAIxB,OAFAC,EAAKw6B,eAAiB9iE,KAAK8iE,eAAez6B,SAEnCC,CACR,CAMgB,SAAA8hD,GACf,GAAKpqF,KAAK8iE,eAAexsE,KAAKkN,SAM7B,MAAM,IAAIkK,EAAe,oCAAqC1N,KAEhE,CAMO,QAAA6rF,GACNx3D,GAAS,GAAMqiB,4BAA6B12C,KAAK8iE,eAAgB9iE,KAAKqL,SACvE,CAKA,oBAA2BklC,GAC1B,MAAO,iBACR,EC3Ec,MAAM,WAAyB,GAM7Bk5B,QAA8B,IAAI/3D,IAejCg+B,UAAsB,IAAIuwB,GAW3C,WAAAl+D,CAAamW,GACZrK,QAEKqK,GACJlY,KAAKgwC,aAAc,EAAG93B,EAExB,CAKA,CAASpX,OAAOC,YACf,OAAOf,KAAK8mC,aACb,CAKA,cAAWF,GACV,OAAO5mC,KAAK0vC,UAAUp3C,MACvB,CAKA,aAAW6nE,GACV,OAAOngE,KAAK0vC,UAAUywB,SACvB,CAKA,WAAW7zB,GACV,OAA2B,IAApBtsC,KAAK4mC,UACb,CAKA,eAAW1vB,GACV,OAAO,IACR,CAKA,mBAAWuR,GACV,OAAO,IACR,CAKA,QAAWnyB,GACV,OAAO0J,IACR,CAKA,UAAWpB,GACV,OAAO,IACR,CAKA,YAAW4E,GACV,OAAO,IACR,CAKO,UAAAqjC,GACN,OAAO,CACR,CAKO,YAAAW,GACN,MAAO,EACR,CAQO,QAAAL,CAAUviC,GAChB,OAAO5E,KAAK0vC,UAAU0wB,QAASx7D,EAChC,CAKO,WAAAkiC,GACN,OAAO9mC,KAAK0vC,UAAW5uC,OAAOC,WAC/B,CAQO,aAAAumC,CAAenoC,GACrB,OAAOa,KAAK0vC,UAAU2wB,aAAclhE,EACrC,CAUO,mBAAA0gE,CAAqB1gE,GAC3B,OAAOa,KAAK0vC,UAAU4wB,mBAAoBnhE,EAC3C,CAKO,OAAAooC,GACN,MAAO,EACR,CAcO,aAAAy5B,CAAeC,GAErB,IAAI9hE,EAAgCa,KAEpC,UAAY4E,KAASq8D,EACpB9hE,EAASA,EAAqCgoC,SAAYhoC,EAAqCqhE,cAAe57D,IAG/G,OAAOzF,CACR,CAuBO,aAAAqhE,CAAenkD,GACrB,OAAOrc,KAAK0vC,UAAU8wB,cAAenkD,EACtC,CAQO,MAAAgsB,GACN,MAAMC,EAAO,GAEb,UAAYnpC,KAAQa,KAAK0vC,UACxBpH,EAAK1oC,KAAMT,EAAKkpC,UAGjB,OAAOC,CACR,CASA,eAAcy4B,CAAUz4B,GACvB,MAAMpwB,EAAW,GAEjB,UAAYI,KAASgwB,EACfhwB,EAAMtW,KAEVkW,EAAStY,KAAM,GAAQmhE,SAAUzoD,IAGjCJ,EAAStY,KAAM,GAAKmhE,SAAUzoD,IAIhC,OAAO,IAAI,GAAkBJ,EAC9B,CAQO,YAAAm5B,CAAczd,GACpB5zB,KAAKgwC,aAAchwC,KAAK4mC,WAAYhT,EACrC,CAUO,YAAAoc,CAAcprC,EAAegvB,GACnC,MAAM0d,EAiFR,SAAoBA,GAEnB,GAAqB,iBAATA,EACX,MAAO,CAAE,IAAI,GAAMA,IAGdh6B,GAAYg6B,KACjBA,EAAQ,CAAEA,IAIX,OAAO3wC,MAAMrB,KAAMgyC,GACjBt0C,KAAKmC,GACe,iBAARA,EACJ,IAAI,GAAMA,GAGbA,aAAgB,GACb,IAAI,GAAMA,EAAK2D,KAAM3D,EAAKixC,iBAG3BjxC,GAEV,CAxGgB,CAAWy0B,GAEzB,UAAYz0B,KAAQmyC,EAEE,OAAhBnyC,EAAKP,QACTO,EAAKk1B,UAGJl1B,EAAcP,OAASoB,KAG1BA,KAAK0vC,UAAUqQ,aAAcn7C,EAAO0sC,EACrC,CAWO,eAAAnJ,CAAiBvjC,EAAeyG,EAAkB,GACxD,MAAMimC,EAAQtxC,KAAK0vC,UAAUmxB,aAAcj8D,EAAOyG,GAElD,UAAYlM,KAAQmyC,EACjBnyC,EAAcP,OAAS,KAG1B,OAAO0yC,CACR,EA2CD,GAAiBzvC,UAAU0M,GAAK,SAAUpD,GACzC,MAAgB,qBAATA,GAAwC,2BAATA,CACvC,EC5Te,MAAMqxF,GAIJpkG,MAKA23E,MAUhB,WAAAhuE,CAAa3J,EAAc23E,GAC1B/vE,KAAK5H,MAAQA,EACb4H,KAAK+vE,MAAQA,CACd,CAcO,UAAAtyB,CACN36C,EACAyC,GAEA,OAAO,IAAI,GAAMzC,EAAMyC,EACxB,CAcO,aAAAD,CACNtD,EACAuD,GAEA,OAAO,IAAI,GAASvD,EAAMuD,EAC3B,CAOO,sBAAAo2B,GACN,OAAO,IAAI,EACZ,CAUO,YAAA8gE,CAAc1lF,EAAkBk6B,GAAgB,GACtD,OAAOl6B,EAAQ6xB,OAAQqI,EACxB,CA+CO,MAAAvrC,CACNzF,EACAg1C,EACA54B,EAAyB,GAIzB,GAFArc,KAAK08F,6BAEAz8F,aAAgB,IAAqB,IAAbA,EAAK6C,KACjC,OAGD,MAAM2kB,EAAW,GAAS2rB,UAAW6B,EAAgB54B,GAGrD,GAAKpc,EAAKrB,OAAS,CAElB,GAAK+9F,GAAY18F,EAAK3J,KAAMmxB,EAASnxB,MAIpC,YAFA0J,KAAKm/C,KAAM,GAAMvI,UAAW32C,GAAQwnB,GAMpC,GAAKxnB,EAAK3J,KAAKkN,SAOd,MAAM,IAAIkK,EACT,qCACA1N,MAKDA,KAAKiG,OAAQhG,EAGhB,CAEA,MAAM8O,EAAU0Y,EAASnxB,KAAKkN,SAAWikB,EAASnxB,KAAKkN,SAASuL,QAAU,KAEpErJ,EAAS,IAAIomF,GAAiBrkE,EAAUxnB,EAAM8O,GAUpD,GARK9O,aAAgB,KACpByF,EAAOqmF,yBAA0B,GAGlC/rF,KAAK+vE,MAAMokB,aAAczuF,GACzB1F,KAAK5H,MAAMwkG,eAAgBl3F,GAGtBzF,aAAgB,GACpB,UAAcmmE,EAAYmE,KAAiBtqE,EAAKwpE,QAAU,CAEzD,MAAMozB,EAAoB,GAASzpD,UAAWm3B,EAAYj0E,KAAM,GAM1DiO,EAAU,CAAEwiB,MALJ,IAAI,GACjBwjD,EAAY95C,MAAMuyC,aAAc65B,EAAmBp1E,GACnD8iD,EAAYx+B,IAAIi3B,aAAc65B,EAAmBp1E,IAGzBq1E,gBAAgB,EAAMp8D,aAAa,GAEvD1gC,KAAK5H,MAAMqxE,QAAQx7D,IAAKm4D,GAC5BpmE,KAAK+8F,aAAc32B,EAAY7hE,GAE/BvE,KAAKg9F,UAAW52B,EAAY7hE,EAE9B,CAEF,CAkEO,UAAA04F,CACN5kE,EACA9yB,EACA0vC,EACA54B,GAEK9W,aAAsB,IAAoBA,aAAsB,IAAWA,aAAsB,GACrGvF,KAAK0F,OAAQ1F,KAAKy9C,WAAYplB,GAAQ9yB,EAAY0vC,GAElDj1C,KAAK0F,OAAQ1F,KAAKy9C,WAAYplB,EAAM9yB,GAAc0vC,EAAgB54B,EAEpE,CAkEO,aAAAg2D,CACNrwE,EACAuD,EACA23F,EACA7gF,GAEK9W,aAAsB,IAAoBA,aAAsB,IAAWA,aAAsB,GACrGvF,KAAK0F,OAAQ1F,KAAKsF,cAAetD,GAAQuD,EAAY23F,GAErDl9F,KAAK0F,OAAQ1F,KAAKsF,cAAetD,EAAMuD,GAAc23F,EAAwB7gF,EAE/E,CAiBO,MAAAozC,CAAQxvD,EAA+BrB,GAC7CoB,KAAK0F,OAAQzF,EAAMrB,EAAQ,MAC5B,CAkCO,UAAAu+F,CACN9kE,EACA9yB,EACA3G,GAEK2G,aAAsB,IAAoBA,aAAsB,GACpEvF,KAAK0F,OAAQ1F,KAAKy9C,WAAYplB,GAAQ9yB,EAAY,OAElDvF,KAAK0F,OAAQ1F,KAAKy9C,WAAYplB,EAAM9yB,GAAc3G,EAAS,MAE7D,CAkCO,aAAAw+F,CACNp7F,EACAuD,EACA3G,GAEK2G,aAAsB,IAAoBA,aAAsB,GACpEvF,KAAK0F,OAAQ1F,KAAKsF,cAAetD,GAAQuD,EAAY,OAErDvF,KAAK0F,OAAQ1F,KAAKsF,cAAetD,EAAMuD,GAAc3G,EAAS,MAEhE,CAUO,YAAA6G,CAAc1O,EAAayB,EAAgB6kG,GAGjD,GAFAr9F,KAAK08F,6BAEAW,aAAuB,GAAQ,CACnC,MAAMrnD,EAASqnD,EAAYr5B,uBAE3B,UAAYj9C,KAASivB,EACpBsnD,GAAqBt9F,KAAMjJ,EAAKyB,EAAOuuB,EAEzC,MACCw2E,GAAoBv9F,KAAMjJ,EAAKyB,EAAO6kG,EAExC,CAgBO,aAAAG,CACNj4F,EACA83F,GAEA,UAActmG,EAAKuD,KAASg8B,GAAO/wB,GAClCvF,KAAKyF,aAAc1O,EAAKuD,EAAK+iG,EAE/B,CASO,eAAA32F,CAAiB3P,EAAasmG,GAGpC,GAFAr9F,KAAK08F,6BAEAW,aAAuB,GAAQ,CACnC,MAAMrnD,EAASqnD,EAAYr5B,uBAE3B,UAAYj9C,KAASivB,EACpBsnD,GAAqBt9F,KAAMjJ,EAAK,KAAMgwB,EAExC,MACCw2E,GAAoBv9F,KAAMjJ,EAAK,KAAMsmG,EAEvC,CAOO,eAAAI,CAAiBJ,GACvBr9F,KAAK08F,6BAEL,MAAMgB,EAA6Bz9F,IAClC,UAAYsW,KAAatW,EAAK2pC,mBAC7B5pC,KAAK0G,gBAAiB6P,EAAWtW,EAClC,EAGD,GAAQo9F,aAAuB,GAG9B,UAAYp9F,KAAQo9F,EAAYhnD,WAC/BqnD,EAA0Bz9F,QAH3By9F,EAA0BL,EAM5B,CA+BO,IAAAl+C,CACNp4B,EACAkuB,EACA54B,GAIA,GAFArc,KAAK08F,+BAEG31E,aAAiB,IAMxB,MAAM,IAAIrZ,EAAe,4BAA6B1N,MAGvD,IAAM+mB,EAAMxI,OAMX,MAAM,IAAI7Q,EAAe,6BAA8B1N,MAGxD,MAAMynB,EAAW,GAAS2rB,UAAW6B,EAAgB54B,GAGrD,GAAKoL,EAASpC,QAAS0B,EAAM0J,OAC5B,OAMD,GAFAzwB,KAAK29F,gCAAiC,OAAQ52E,IAExC41E,GAAY51E,EAAMzwB,KAAMmxB,EAASnxB,MAOtC,MAAM,IAAIoX,EAAe,iCAAkC1N,MAG5D,MAAM+O,EAAUgY,EAAMzwB,KAAKkN,SAAWujB,EAAMzwB,KAAKkN,SAASuL,QAAU,KAC9DwzD,EAAY,IAAI6oB,GAAerkE,EAAM0J,MAAO1J,EAAMglB,IAAI1vB,OAAS0K,EAAM0J,MAAMpU,OAAQoL,EAAU1Y,GAEnG/O,KAAK+vE,MAAMokB,aAAc5xB,GACzBviE,KAAK5H,MAAMwkG,eAAgBr6B,EAC5B,CAOO,MAAAt8D,CAAQo3F,GACdr9F,KAAK08F,6BAEL,MACM1mD,GADgBqnD,aAAuB,GAAQA,EAAc,GAAMzmD,UAAWymD,IACvDr5B,uBAAuBz4D,UAEpD,UAAY4nE,KAAQn9B,EAEnBh2C,KAAK29F,gCAAiC,OAAQxqB,GAE9CyqB,GAAsBzqB,EAAK1iD,MAAO0iD,EAAKpnC,IAAI1vB,OAAS82D,EAAK1iD,MAAMpU,OAAQrc,KAAK+vE,MAAO/vE,KAAK5H,MAE1F,CAUO,KAAAylG,CAAOp2E,GACbznB,KAAK08F,6BAEL,MAAMpoD,EAAa7sB,EAAS6sB,WACtBD,EAAY5sB,EAAS4sB,UAK3B,GAFAr0C,KAAK29F,gCAAiC,QAASl2E,KAEvC6sB,aAAsB,IAM7B,MAAM,IAAI5mC,EAAe,iCAAkC1N,MAG5D,KAAQq0C,aAAqB,IAM5B,MAAM,IAAI3mC,EAAe,gCAAiC1N,MAGrDynB,EAASnxB,KAAKkN,SAGnBxD,KAAK89F,OAAQr2E,GAFbznB,KAAK+9F,eAAgBt2E,EAIvB,CASO,sBAAA6zE,CACNhlG,EACAmJ,EACA2hE,GAEA,OAAOphE,KAAK5H,MAAMkjG,uBAAwBhlG,EAAMmJ,EAAM2hE,EACvD,CAOO,gBAAA9f,CACNrM,EACA54B,GAEA,OAAOrc,KAAK5H,MAAMkpD,iBAAkBrM,EAAgB54B,EACrD,CAOO,mBAAAklC,CAAqBthD,GAC3B,OAAOD,KAAK5H,MAAMmpD,oBAAqBthD,EACxC,CAOO,oBAAAuhD,CAAsBvhD,GAC5B,OAAOD,KAAK5H,MAAMopD,qBAAsBvhD,EACzC,CAQO,WAAAwhD,CAAahxB,EAAiBsb,GACpC,OAAO/rC,KAAK5H,MAAMqpD,YAAahxB,EAAOsb,EACvC,CAOO,aAAA4V,CAAe5qC,GACrB,OAAO/W,KAAK5H,MAAMupD,cAAe5qC,EAClC,CAOO,aAAA2qC,CAAe3qC,GACrB,OAAO/W,KAAK5H,MAAMspD,cAAe3qC,EAClC,CAgBO,eAAA6qC,IAAoB1lD,GAC1B,OAAO8D,KAAK5H,MAAMwpD,mBAAoB1lD,EACvC,CAOQ,cAAA6hG,CAAgBt2E,GACvB,MAAM6sB,EAAa7sB,EAAS6sB,WACtBD,EAAY5sB,EAAS4sB,UAE3Br0C,KAAKm/C,KAAM,GAAMxI,UAAWtC,GAAoB,GAASjB,UAAWkB,EAAa,QACjFt0C,KAAKiG,OAAQouC,EACd,CAOQ,MAAAypD,CAAQr2E,GACf,MAAMy3B,EAAiB,GAAS9L,UAAW3rB,EAAS6sB,WAAa,OAC3DwuB,EAAiB,GAAS1vB,UAAW3rB,EAAS4sB,UAAY,GAE1DqvB,EAAYj8C,EAASnxB,KAAKkN,SAAUkgE,UACpCP,EAAoB,IAAI,GAAUO,EAAW,CAAE,IAE/C30D,EAAU0Y,EAASnxB,KAAKkN,SAAUuL,QAElC8uF,EAAQ,IAAI1R,GACjBrpB,EACEr7C,EAAS4sB,UAAmB8rB,UAC9BjhB,EACAikB,EACAp0D,GAGD/O,KAAK+vE,MAAMokB,aAAc0J,GACzB79F,KAAK5H,MAAMwkG,eAAgBiB,EAC5B,CAQO,MAAA58C,CAAQlqC,EAAqCmqC,GAGnD,GAFAlhD,KAAK08F,+BAEG3lF,aAAmB,IAM1B,MAAM,IAAIrJ,EACT,qCACA1N,MAIF,MAAM+O,EAAUgI,EAAQzgB,KAAKkN,SAAWuT,EAAQzgB,KAAKkN,SAASuL,QAAU,KAClEivF,EAAkB,IAAIpR,GAAiB,GAAS14C,cAAen9B,GAAWA,EAAQ/U,KAAMk/C,EAASnyC,GAEvG/O,KAAK+vE,MAAMokB,aAAc6J,GACzBh+F,KAAK5H,MAAMwkG,eAAgBoB,EAC5B,CAeO,KAAAjhG,CAAO0qB,EAAoBi5D,GACjC1gF,KAAK08F,6BAEL,IA4BIuB,EACAC,EA7BA9R,EAAe3kE,EAAS7oB,OAE5B,IAAMwtF,EAAaxtF,OAMlB,MAAM,IAAI8O,EAAe,iCAAkC1N,MAQ5D,GAJM0gF,IACLA,EAAe0L,EAAaxtF,SAGvB6oB,EAAS7oB,OAAO4oC,aAAc,CAAEE,aAAa,IAASvV,SAAUuuD,GAMrE,MAAM,IAAIhzE,EAAe,qCAAsC1N,MAShE,EAAG,CACF,MAAM+O,EAAUq9E,EAAa91F,KAAKkN,SAAW4oF,EAAa91F,KAAKkN,SAASuL,QAAU,KAC5E1D,EAAU+gF,EAAajsB,UAAY14C,EAASpL,OAE5C6lC,EAAoBgqC,GAAeG,qBAAsB5kE,GACzD1qB,EAAQ,IAAImvF,GAAgBzkE,EAAUpc,EAAS62C,EAAmB,KAAMnzC,GAE9E/O,KAAK+vE,MAAMokB,aAAcp3F,GACzBiD,KAAK5H,MAAMwkG,eAAgB7/F,GAGrBkhG,GAAsBC,IAC3BD,EAAoB7R,EACpB8R,EAAmBz2E,EAAS7oB,OAAOsY,aAIpCk1E,GADA3kE,EAAWznB,KAAKuhD,oBAAqB95B,EAAS7oB,SACtBA,MACzB,OAAUwtF,IAAiB1L,GAE3B,MAAO,CACNj5D,WACAV,MAAO,IAAI,GAAO,GAASqsB,UAAW6qD,EAAoB,OAAS,GAAS7qD,UAAW8qD,EAAmB,IAE5G,CAWO,IAAAx9C,CAAM35B,EAAco3E,GAG1B,GAFAn+F,KAAK08F,8BAEC31E,EAAMxI,OAMX,MAAM,IAAI7Q,EAAe,6BAA8B1N,MAGxD,MAAM+W,EAAUonF,aAA2B,GAAUA,EAAkB,IAAI,GAASA,GAEpF,GAAKpnF,EAAQ6vB,WAAa,EAMzB,MAAM,IAAIl5B,EAAe,gCAAiC1N,MAG3D,GAAwB,OAAnB+W,EAAQnY,OAMZ,MAAM,IAAI8O,EAAe,+BAAgC1N,MAG1DA,KAAK0F,OAAQqR,EAASgQ,EAAM0J,OAG5B,MAAM2tE,EAAe,IAAI,GAAOr3E,EAAM0J,MAAMgkB,aAAc,GAAK1tB,EAAMglB,IAAI0I,aAAc,IAEvFz0C,KAAKm/C,KAAMi/C,EAAc,GAAShrD,UAAWr8B,EAAS,GACvD,CAQO,MAAA+pC,CAAQ/pC,GAGd,GAFA/W,KAAK08F,6BAEmB,OAAnB3lF,EAAQnY,OAMZ,MAAM,IAAI8O,EAAe,kCAAmC1N,MAG7DA,KAAKm/C,KAAM,GAAMxI,UAAW5/B,GAAW/W,KAAKuhD,oBAAqBxqC,IACjE/W,KAAKiG,OAAQ8Q,EACd,CA8CO,SAAAimF,CACNh7F,EACAuC,GAQA,GAFAvE,KAAK08F,8BAECn4F,GAA4C,kBAA1BA,EAAQu4F,eAM/B,MAAM,IAAIpvF,EAAe,qCAAsC1N,MAGhE,MAAM88F,EAAiBv4F,EAAQu4F,eACzB/1E,EAAQxiB,EAAQwiB,MAChB2Z,OAAsC,IAAxBn8B,EAAQm8B,aAAoCn8B,EAAQm8B,YAExE,GAAK1gC,KAAK5H,MAAMqxE,QAAQx7D,IAAKjM,GAM5B,MAAM,IAAI0L,EAAe,iCAAkC1N,MAG5D,IAAM+mB,EAML,MAAM,IAAIrZ,EAAe,4BAA6B1N,MAGvD,OAAM88F,GAINuB,GAAsBr+F,KAAMgC,EAAM,KAAM+kB,EAAO2Z,GAExC1gC,KAAK5H,MAAMqxE,QAAQrhE,IAAKpG,IALvBhC,KAAK5H,MAAMqxE,QAAQgjB,KAAMzqF,EAAM+kB,EAAO+1E,EAAgBp8D,EAM/D,CAyDO,YAAAq8D,CACNrf,EACAn5E,GAMAvE,KAAK08F,6BAEL,MAAMt2B,EAAoC,iBAAhBsX,EAA2BA,EAAeA,EAAa17E,KAC3E27E,EAAgB39E,KAAK5H,MAAMqxE,QAAQrhE,IAAKg+D,GAE9C,IAAMuX,EAML,MAAM,IAAIjwE,EAAe,wCAAyC1N,MAGnE,IAAMuE,EAeL,OAJA,EAAY,wDAAyD,CAAE6hE,oBAEvEpmE,KAAK5H,MAAMqxE,QAAQmU,SAAUD,GAK9B,MAAM2gB,EAA4D,kBAA1B/5F,EAAQu4F,eAC1CyB,EAAmD,kBAAvBh6F,EAAQm8B,YAGpCA,EAAc69D,EAAqBh6F,EAAQm8B,YAAci9C,EAAcj9C,YAE7E,IAAM49D,IAA6B/5F,EAAQwiB,QAAUw3E,EAMpD,MAAM,IAAI7wF,EAAe,oCAAqC1N,MAG/D,MAAMm7E,EAAewC,EAAcnT,WAC7Bg0B,EAAej6F,EAAQwiB,MAAQxiB,EAAQwiB,MAAQo0D,EAEhDmjB,GAA4B/5F,EAAQu4F,iBAAmBnf,EAAcge,uBAEpEp3F,EAAQu4F,eAGZuB,GAAsBr+F,KAAMomE,EAAY,KAAMo4B,EAAc99D,IAI5D29D,GAAsBr+F,KAAMomE,EAAY+U,EAAc,KAAMz6C,GAG5D1gC,KAAK5H,MAAMqxE,QAAQgjB,KAAMrmB,EAAYo4B,OAAc,EAAW99D,IAO3Di9C,EAAcge,uBAClB0C,GAAsBr+F,KAAMomE,EAAY+U,EAAcqjB,EAAc99D,GAEpE1gC,KAAK5H,MAAMqxE,QAAQgjB,KAAMrmB,EAAYo4B,OAAc,EAAW99D,EAEhE,CASO,YAAAq6D,CAAcrd,GACpB19E,KAAK08F,6BAEL,MAAM16F,EAA8B,iBAAhB07E,EAA2BA,EAAeA,EAAa17E,KAE3E,IAAMhC,KAAK5H,MAAMqxE,QAAQx7D,IAAKjM,GAM7B,MAAM,IAAI0L,EAAe,gCAAiC1N,MAG3D,MAAMirE,EAASjrE,KAAK5H,MAAMqxE,QAAQrhE,IAAKpG,GAEvC,IAAMipE,EAAO0wB,uBAGZ,YAFA37F,KAAK5H,MAAMqxE,QAAQp1C,QAASryB,GAO7Bq8F,GAAsBr+F,KAAMgC,EAFXipE,EAAOT,WAEoB,KAAMS,EAAOvqC,YAC1D,CAYO,OAAA+9D,CAAS39D,EAAkBytB,EAAc,SAC/CvuD,KAAK08F,6BAEL,MAAMpmG,EAAO0J,KAAK5H,MAAMoL,SAASw3C,QAASla,GAE1C,GAAKxqC,GAAQA,EAAKuwC,aAMjB,MAAM,IAAIn5B,EAAe,6BAA8B1N,MAGxD,MAAMwD,EAAWxD,KAAK5H,MAAMoL,SACtB++D,EAAY,IAAIwqB,GAAejsD,EAAUytB,GAAa,EAAM/qD,EAAUA,EAASuL,SAKrF,OAHA/O,KAAK+vE,MAAMokB,aAAc5xB,GACzBviE,KAAK5H,MAAMwkG,eAAgBr6B,GAEpBviE,KAAK5H,MAAMoL,SAASw3C,QAASla,EACrC,CAiBO,UAAA49D,CAAYC,GAClB3+F,KAAK08F,6BAEL,MAAMpmG,EAA4B,iBAAdqoG,EAAyB3+F,KAAK5H,MAAMoL,SAASw3C,QAAS2jD,GAAeA,EAEzF,IAAMroG,IAASA,EAAKuwC,aAMnB,MAAM,IAAIn5B,EAAe,4BAA6B1N,MAKvD,UAAYirE,KAAUjrE,KAAK5H,MAAMqxE,QAC3BwB,EAAOT,WAAWl0E,OAASA,GAC/B0J,KAAK+6F,aAAc9vB,GAKrB,UAAYl0E,KAAOT,EAAKszC,mBACvB5pC,KAAK0G,gBAAiB3P,EAAKT,GAI5B0J,KAAKiG,OAAQjG,KAAK2hD,cAAerrD,IAGjC,MAAMkN,EAAWxD,KAAK5H,MAAMoL,SACtB++D,EAAY,IAAIwqB,GAAez2F,EAAKwqC,SAAUxqC,EAAK0L,MAAM,EAAOwB,EAAUA,EAASuL,SAEzF/O,KAAK+vE,MAAMokB,aAAc5xB,GACzBviE,KAAK5H,MAAMwkG,eAAgBr6B,EAC5B,CAmFO,YAAAhlB,IAAiBrhD,GACvB8D,KAAK08F,6BAEL18F,KAAK5H,MAAMoL,SAASm9B,UAAU0Y,UAAWn9C,EAC1C,CAWO,iBAAAshD,CACNvI,EACA54B,GAEArc,KAAK08F,6BAEL18F,KAAK5H,MAAMoL,SAASm9B,UAAU2Y,UAAWrE,EAAgB54B,EAC1D,CAmCO,qBAAAuiF,CACNC,EACArmG,GAIA,GAFAwH,KAAK08F,6BAEiC,iBAA1BmC,EACX7+F,KAAK8+F,uBAAwBD,EAAuBrmG,QAEpD,UAAczB,EAAKyB,KAAW89B,GAAOuoE,GACpC7+F,KAAK8+F,uBAAwB/nG,EAAKyB,EAGrC,CAmBO,wBAAAuwF,CAA0BgW,GAGhC,GAFA/+F,KAAK08F,6BAE+B,iBAAxBqC,EACX/+F,KAAKg/F,0BAA2BD,QAEhC,UAAYhoG,KAAOgoG,EAClB/+F,KAAKg/F,0BAA2BjoG,EAGnC,CAwBO,wBAAAkoG,GACN,OAAOj/F,KAAK5H,MAAMoL,SAASm9B,UAAUouC,kBACtC,CAWO,uBAAAmwB,CAAyBxyF,GAC/B1M,KAAK5H,MAAMoL,SAASm9B,UAAUsuC,gBAAiBviE,EAChD,CAMQ,sBAAAoyF,CAAwB/nG,EAAayB,GAC5C,MAAMmoC,EAAY3gC,KAAK5H,MAAMoL,SAASm9B,UAGtC,GAAKA,EAAUwU,aAAexU,EAAUqG,OAAQpoC,OAAO0tC,QAAU,CAChE,MAAM6yD,EAAW,GAAkBhwB,sBAAuBp4E,GAE1DiJ,KAAKyF,aAAc05F,EAAU3mG,EAAOmoC,EAAUqG,OAAQpoC,OACvD,CAEA+hC,EAAU4Q,cAAex6C,EAAKyB,EAC/B,CAKQ,yBAAAwmG,CAA2BjoG,GAClC,MAAM4pC,EAAY3gC,KAAK5H,MAAMoL,SAASm9B,UAGtC,GAAKA,EAAUwU,aAAexU,EAAUqG,OAAQpoC,OAAO0tC,QAAU,CAChE,MAAM6yD,EAAW,GAAkBhwB,sBAAuBp4E,GAE1DiJ,KAAK0G,gBAAiBy4F,EAAUx+D,EAAUqG,OAAQpoC,OACnD,CAEA+hC,EAAU8Q,iBAAkB16C,EAC7B,CAKQ,0BAAA2lG,GAUP,GAAO18F,KAAK5H,MAAegnG,iBAAmBp/F,KAC7C,MAAM,IAAI0N,EAAe,uBAAwB1N,KAEnD,CAUQ,+BAAA29F,CACPxyF,EACA0zC,GAEA,UAAYosB,KAAUjrE,KAAK5H,MAAMqxE,QAAU,CAC1C,IAAMwB,EAAO0wB,uBACZ,SAGD,MAAMpxB,EAAcU,EAAOT,WAC3B,IAAI60B,GAAa,EAEjB,GAAc,SAATl0F,EAAkB,CACtB,MAAM4b,EAAQ83B,EACdwgD,EACCt4E,EAAM2uB,iBAAkB60B,EAAY95C,QACpC1J,EAAM0J,MAAMpL,QAASklD,EAAY95C,QACjC1J,EAAM2uB,iBAAkB60B,EAAYx+B,MACpChlB,EAAMglB,IAAI1mB,QAASklD,EAAYx+B,IACjC,KAAO,CAEN,MAAMtkB,EAAWo3B,EACXw3B,EAAgB5uD,EAAS6sB,WACzB8hC,EAAe3uD,EAAS4sB,UAMxBirD,EAAwB/0B,EAAY95C,MAAM7xB,QAAUy3E,GAAiB9L,EAAY95C,MAAMkjB,QAMvF4rD,EAAyBh1B,EAAYx+B,IAAIntC,QAAUw3E,GAA0C,GAA1B7L,EAAYx+B,IAAI1vB,OAMnFmjF,EAA2Bj1B,EAAYx+B,IAAIsI,WAAa+hC,EAMxDqpB,EAA6Bl1B,EAAY95C,MAAM4jB,WAAa+hC,EAElEipB,EAAaC,GAAyBC,GAA0BC,GAA4BC,CAC7F,CAEKJ,GACJr/F,KAAK+8F,aAAc9xB,EAAOjpE,KAAM,CAAE+kB,MAAOwjD,GAE3C,CACD,EAWD,SAAS+yB,GAAqBv3D,EAAgBhvC,EAAayB,EAAgBuuB,GAC1E,MAAM3uB,EAAQ2tC,EAAO3tC,MACf6f,EAAM7f,EAAMoL,SAGlB,IAIIikB,EAGAi4E,EAGAC,EAVAC,EAAoB74E,EAAM0J,MAY9B,UAAYn2B,KAAOysB,EAAMiuB,UAAW,CAAEnC,SAAS,IAC9C8sD,EAAarlG,EAAI2F,KAAKy6B,aAAc3jC,GAI/B0wB,GAAYi4E,GAAeC,IAE1BD,GAAelnG,GACnB27F,IAGDyL,EAAoBn4E,GAGrBA,EAAWntB,EAAI85C,aACfsrD,EAAcC,EASf,SAASxL,IACR,MAAMptE,EAAQ,IAAI,GAAO64E,EAAmBn4E,GACtC1Y,EAAUgY,EAAMzwB,KAAKkN,SAAWyU,EAAIlJ,QAAU,KAC9CwzD,EAAY,IAAImqB,GAAoB3lE,EAAOhwB,EAAK2oG,EAAalnG,EAAOuW,GAE1Eg3B,EAAOgqC,MAAMokB,aAAc5xB,GAC3BnqE,EAAMwkG,eAAgBr6B,EACvB,CAXK96C,aAAoB,IAAYA,GAAYm4E,GAAqBF,GAAelnG,GACpF27F,GAWF,CAKA,SAASoJ,GAAoBx3D,EAAgBhvC,EAAayB,EAAgByH,GACzE,MAAM7H,EAAQ2tC,EAAO3tC,MACf6f,EAAM7f,EAAMoL,SACZq8F,EAAgB5/F,EAAKy6B,aAAc3jC,GACzC,IAAIgwB,EAAOw7C,EAEX,GAAKs9B,GAAiBrnG,EAAQ,CAG7B,GAFsByH,EAAK3J,OAAS2J,EAEf,CAEpB,MAAM8O,EAAU9O,EAAKuD,SAAWyU,EAAIlJ,QAAU,KAE9CwzD,EAAY,IAAIuqB,GAAwB7sF,EAAalJ,EAAK8oG,EAAernG,EAAOuW,EACjF,KAAO,CACNgY,EAAQ,IAAI,GAAO,GAASmtB,cAAej0C,GAAQ8lC,EAAOwb,oBAAqBthD,IAE/E,MAAM8O,EAAUgY,EAAMzwB,KAAKkN,SAAWyU,EAAIlJ,QAAU,KAEpDwzD,EAAY,IAAImqB,GAAoB3lE,EAAOhwB,EAAK8oG,EAAernG,EAAOuW,EACvE,CAEAg3B,EAAOgqC,MAAMokB,aAAc5xB,GAC3BnqE,EAAMwkG,eAAgBr6B,EACvB,CACD,CAKA,SAAS87B,GACRt4D,EACA/jC,EACAoqE,EACArrB,EACArgB,GAEA,MAAMtoC,EAAQ2tC,EAAO3tC,MACf6f,EAAM7f,EAAMoL,SAEZ++D,EAAY,IAAIgqB,GAAiBvqF,EAAMoqE,EAAUrrB,EAAU3oD,EAAMqxE,UAAW/oC,EAAazoB,EAAIlJ,SAEnGg3B,EAAOgqC,MAAMokB,aAAc5xB,GAC3BnqE,EAAMwkG,eAAgBr6B,EACvB,CAWA,SAASq7B,GAAsBn2E,EAAoBpc,EAAiB0kE,EAAc33E,GACjF,IAAImqE,EAEJ,GAAK96C,EAASnxB,KAAKkN,SAAW,CAC7B,MAAMyU,EAAM7f,EAAMoL,SACZ2/D,EAAoB,IAAI,GAAUlrD,EAAIyrD,UAAW,CAAE,IAEzDnB,EAAY,IAAI6oB,GAAe3jE,EAAUpc,EAAS83D,EAAmBlrD,EAAIlJ,QAC1E,MACCwzD,EAAY,IAAIg6B,GAAiB90E,EAAUpc,GAG5C0kE,EAAMokB,aAAc5xB,GACpBnqE,EAAMwkG,eAAgBr6B,EACvB,CAWA,SAASo6B,GAAYmD,EAAgCC,GAEpD,OAAKD,IAAUC,GAKVD,aAAiBlF,IAAemF,aAAiBnF,EAKvD,CC/yDe,SAASoF,GACvB5nG,EACAuoC,EACAp8B,EAII,CAAC,GAEL,GAAKo8B,EAAUwU,YACd,OAGD,MAAM8qD,EAAWt/D,EAAU4W,gBAG3B,GAA+B,cAA1B0oD,EAAS3pG,KAAKwqC,SAClB,OAGD,MAAMxG,EAASliC,EAAMkiC,OAErBliC,EAAM0tC,QAAQC,IAGb,IAAMxhC,EAAQ27F,yBAuehB,SAAqD5lE,EAAgBqG,GACpE,MAAM+/C,EAAepmD,EAAO4hD,gBAAiBv7C,GAE7C,IAAMA,EAAUssC,sBAAuByT,GACtC,OAAO,EAGR,MAAM35D,EAAQ4Z,EAAU4W,gBAExB,GAAKxwB,EAAM0J,MAAM7xB,QAAUmoB,EAAMglB,IAAIntC,OACpC,OAAO,EAGR,OAAO07B,EAAOq4C,WAAY+N,EAAc,YACzC,CArf2Cyf,CAA4C7lE,EAAQqG,GAG5F,YAudH,SAA4CoF,EAAgBpF,GAC3D,MAAM+/C,EAAe36C,EAAO3tC,MAAMkiC,OAAO4hD,gBAAiBv7C,GAE1DoF,EAAO9/B,OAAQ8/B,EAAO4b,cAAe++B,IACrC0f,GAAiBr6D,EAAQA,EAAOub,iBAAkBo/B,EAAc,GAAK//C,EACtE,CA9dG0/D,CAAmCt6D,EAAQpF,GAM5C,MAAM2/D,EAA6B,CAAC,EAEpC,IAAM/7F,EAAQg8F,mBAAqB,CAClC,MAAMnmD,EAAkBzZ,EAAUuX,qBAE7BkC,GACJpjD,OAAOsyB,OAAQg3E,EAA4BhmE,EAAO6mD,0BAA2B/mC,EAAiB,iBAAiB,GAEjH,CAGA,MAAQlH,EAAeoP,GAoDzB,SAA4Cv7B,GAC3C,MAAM3uB,EAAQ2uB,EAAMzwB,KAAKkN,SAAUpL,MAE7B86C,EAAgBnsB,EAAM0J,MAC5B,IAAI6xB,EAAcv7B,EAAMglB,IAIxB,GAAK3zC,EAAM0vF,WAAY/gE,EAAO,CAAEy5E,eAAe,IAAW,CACzD,MAAMzzB,EAqCR,SAAyBtlD,GACxB,MAAM1Q,EAAU0Q,EAAS7oB,OACnB07B,EAASvjB,EAAQzgB,KAAKkN,SAAUpL,MAAMkiC,OACtCmN,EAAY1wB,EAAQywB,aAAc,CAAEG,aAAa,EAAMD,aAAa,IAE1E,UAAY3wB,KAAW0wB,EAAY,CAClC,GAAKnN,EAAOozC,QAAS32D,GACpB,OAAO,KAGR,GAAKujB,EAAOizC,QAASx2D,GACpB,OAAOA,CAET,CACD,CAnDmB,CAAgBurC,GAEjC,GAAKyqB,GAAYzqB,EAAY0f,WAAY5pE,EAAMkpD,iBAAkByrB,EAAU,IAAQ,CAElF,MAAMpsC,EAAYvoC,EAAMwpD,gBAAiB76B,GAIzC3uB,EAAMqoG,gBAAiB9/D,EAAW,CAAEna,UAAW,aAE/C,MAAMk6E,EAAiB//D,EAAU+W,kBAS3BipD,EAAevoG,EAAMqpD,YAAai/C,EAAgBp+C,GAElDlqD,EAAM0vF,WAAY6Y,EAAc,CAAEH,eAAe,MACtDl+C,EAAco+C,EAEhB,CACD,CAEA,MAAO,CACN/M,GAAaE,aAAc3gD,EAAe,cAC1CygD,GAAaE,aAAcvxC,EAAa,UAE1C,CA5FyCs+C,CAAmCX,GAGpE/sD,EAAc8uB,WAAY1f,IAC/Bvc,EAAO9/B,OAAQ8/B,EAAO0b,YAAavO,EAAeoP,IAW7C/9C,EAAQs8F,iBAuGhB,SAAwB96D,EAAgBmN,EAAyBoP,GAChE,MAAMlqD,EAAQ2tC,EAAO3tC,MAGrB,IAAM0oG,GAAkB/6D,EAAO3tC,MAAMkiC,OAAQ4Y,EAAeoP,GAC3D,OA4BD,MAAQy+C,EAAeC,GA0PxB,SAA8CC,EAAqBC,GAClE,MAAMr5D,EAAao5D,EAAUz5D,eACvBM,EAAao5D,EAAU15D,eAE7B,IAAIhtC,EAAI,EAER,KAAQqtC,EAAYrtC,IAAOqtC,EAAYrtC,IAAOstC,EAAYttC,IACzDA,IAGD,MAAO,CAAEqtC,EAAYrtC,GAAKstC,EAAYttC,GACvC,CArQwC2mG,CAAqCjuD,EAAeoP,GAU3F,IAAMy+C,IAAkBC,EACvB,QAGK5oG,EAAM0vF,WAAYiZ,EAAe,CAAEP,eAAe,KAAYpoG,EAAM0vF,WAAYkZ,EAAa,CAAER,eAAe,IACnHY,GAAoBr7D,EAAQmN,EAAeoP,EAAay+C,EAAcniG,QAEtEyiG,GAAmBt7D,EAAQmN,EAAeoP,EAAay+C,EAAcniG,OAEvE,CA1JG0iG,CAAev7D,EAAQmN,EAAeoP,GAQtChoB,EAAO0mD,2BAA4B9tC,EAAct0C,OAAOkoC,cAAef,IAGxEw7D,GAAqBx7D,EAAQpF,EAAWuS,IAKlC3uC,EAAQg8F,oBA8XhB,SAA8BjmE,EAAgB7S,GAC7C,MAAM+5E,EAAgBlnE,EAAOq4C,WAAYlrD,EAAU,SAC7Cg6E,EAAqBnnE,EAAOq4C,WAAYlrD,EAAU,aAExD,OAAQ+5E,GAAiBC,CAC1B,CAnYsCC,CAAqBpnE,EAAQ4Y,IAChEktD,GAAiBr6D,EAAQmN,EAAevS,EAAW2/D,GAGpDptD,EAAc1xB,SACd8gC,EAAY9gC,QAAQ,GAEtB,CAyJA,SAAS6/E,GACRt7D,EACAmN,EACAoP,EACAq/C,GAEA,MAAMnrD,EAAetD,EAAct0C,OAC7B63C,EAAa6L,EAAY1jD,OAG/B,GAAK43C,GAAgBmrD,GAAkBlrD,GAAckrD,EAArD,CA4CA,IAvCAzuD,EAAgBnN,EAAOwb,oBAAqB/K,IAC5C8L,EAAcvc,EAAOyb,qBAAsB/K,IAGzBpxB,QAAS6tB,IAS1BnN,EAAOrgC,OAAQ+wC,EAAYvD,GAe5BnN,EAAO83D,MAAO3qD,GAWNoP,EAAY1jD,OAAO0tC,SAAU,CACpC,MAAMs1D,EAAiBt/C,EAAY1jD,OAEnC0jD,EAAcvc,EAAOyb,qBAAsBogD,GAE3C77D,EAAO9/B,OAAQ27F,EAChB,CAGMd,GAAkB/6D,EAAO3tC,MAAMkiC,OAAQ4Y,EAAeoP,IAK5D++C,GAAmBt7D,EAAQmN,EAAeoP,EAAaq/C,EAxDvD,CAyDD,CAsBA,SAASP,GACRr7D,EACAmN,EACAoP,EACAq/C,GAEA,MAAMnrD,EAAetD,EAAct0C,OAC7B63C,EAAa6L,EAAY1jD,OAG/B,GAAK43C,GAAgBmrD,GAAkBlrD,GAAckrD,EAArD,CA8BA,IAzBAzuD,EAAgBnN,EAAOwb,oBAAqB/K,IAC5C8L,EAAcvc,EAAOyb,qBAAsB/K,IAGzBpxB,QAAS6tB,IAS1BnN,EAAOrgC,OAAQ8wC,EAAc8L,GAYtBpP,EAAct0C,OAAO0tC,SAAU,CACtC,MAAMs1D,EAAiB1uD,EAAct0C,OAErCs0C,EAAgBnN,EAAOyb,qBAAsBogD,GAE7C77D,EAAO9/B,OAAQ27F,EAChB,CAGAt/C,EAAcvc,EAAOyb,qBAAsB/K,GA2B5C,SAAqB1Q,EAAgBte,GACpC,MAAM+uB,EAAoB/uB,EAAS6sB,WAC7BmC,EAAkBhvB,EAAS4sB,UAE5BmC,EAAax0C,MAAQy0C,EAAWz0C,MACpC+jC,EAAOkb,OAAQzK,EAAcC,EAAWz0C,MAGzC+jC,EAAO03D,gBAAiBjnD,GACxBzQ,EAAOy3D,cAAexmG,OAAO62B,YAAa4oB,EAAWrG,iBAAmBoG,GAExEzQ,EAAO83D,MAAOp2E,EACf,CA1BCo6E,CAAY97D,EAAQuc,GAGdw+C,GAAkB/6D,EAAO3tC,MAAMkiC,OAAQ4Y,EAAeoP,IAK5D8+C,GAAoBr7D,EAAQmN,EAAeoP,EAAaq/C,EA1DxD,CA2DD,CAuBA,SAASb,GAAkBxmE,EAAgB4Y,EAAyBoP,GACnE,MAAM9L,EAAetD,EAAct0C,OAC7B63C,EAAa6L,EAAY1jD,OAI/B,OAAK43C,GAAgBC,KAKhBnc,EAAOozC,QAASl3B,KAAkBlc,EAAOozC,QAASj3B,IAyCxD,SAAiCqrD,EAAmBC,EAAoBznE,GACvE,MAAM0nE,EAAe,IAAI,GAAOF,EAASC,GAEzC,UAAYvpG,KAASwpG,EAAahtD,YACjC,GAAK1a,EAAOozC,QAASl1E,EAAMyH,MAC1B,OAAO,EAIT,OAAO,CACR,CA5CQgiG,CAAwB/uD,EAAeoP,EAAahoB,GAC5D,CA6CA,SAAS8lE,GACRr6D,EACAte,EACAkZ,EACAp7B,EAAa,CAAC,GAEd,MAAMwyE,EAAYhyC,EAAOzgC,cAAe,aAExCygC,EAAO3tC,MAAMkiC,OAAOymD,qBAAsBhJ,EAAWxyE,EAAYwgC,GAEjEA,EAAOrgC,OAAQqyE,EAAWtwD,GAE1B85E,GAAqBx7D,EAAQpF,EAAWoF,EAAOub,iBAAkBy2B,EAAW,GAC7E,CAmCA,SAASwpB,GACRx7D,EACApF,EACAke,GAEKle,aAAqB,GACzBoF,EAAOwX,aAAcsB,GAErBle,EAAU4L,MAAOsS,EAEnB,CCveA,SAASqjD,GAAoBn7E,EAAcgf,GAC1C,MAAMo8D,EAAoD,GAE1DxhG,MAAMrB,KAAMynB,EAAMsvB,SAAU,CAAE7vB,UAAW,cAGvCxpB,KAAKiD,GAAQ8lC,EAAO2b,cAAezhD,KAKnC8F,QAAQq8F,IAGLA,EAAU3xE,MAAMyX,QAASnhB,EAAM0J,QAAW2xE,EAAU3xE,MAAMpL,QAAS0B,EAAM0J,UACzE2xE,EAAUr2D,IAAIhE,SAAUhhB,EAAMglB,MAASq2D,EAAUr2D,IAAI1mB,QAAS0B,EAAMglB,QAIvEnuC,SAASwkG,IACTD,EAAeviG,KAAMwiG,EAAU3xE,MAAM7xB,QAErCmnC,EAAO9/B,OAAQm8F,EAAW,IAK5BD,EAAevkG,SAASykG,IACvB,IAAIzjG,EAASyjG,EAEb,KAAQzjG,EAAOA,QAAUA,EAAO0tC,SAAU,CACzC,MAAMg2D,EAAcv8D,EAAO2b,cAAe9iD,GAE1CA,EAASA,EAAOA,OAEhBmnC,EAAO9/B,OAAQq8F,EAChB,IAEF,CCyEA,MAAMC,GAIWnqG,MAKA2tC,OAKTte,SAYS+6E,aAKAloE,OAKCmoE,kBAKTC,0BAKAC,WAA0B,KAK1BC,UAAyB,KAKzBC,mBAAqC,KAKrCC,oBAAmC,GAKnCC,eAAsC,KAKtCC,aAAoC,KAEpCC,cAA6B,KAErC,WAAAlhG,CAAa3J,EAAc2tC,EAAgBte,GAC1CznB,KAAK5H,MAAQA,EACb4H,KAAK+lC,OAASA,EACd/lC,KAAKynB,SAAWA,EAChBznB,KAAKwiG,aAAe,IAAIzuF,IAAK,CAAE/T,KAAKynB,SAAS7oB,SAC7CoB,KAAKs6B,OAASliC,EAAMkiC,OAEpBt6B,KAAKyiG,kBAAoB18D,EAAOpK,yBAChC37B,KAAK0iG,0BAA4B38D,EAAOub,iBAAkBthD,KAAKyiG,kBAAmB,EACnF,CAOO,WAAAS,CAAa5xD,GACnB,UAAYnyC,KAAQwB,MAAMrB,KAAMgyC,GAC/BtxC,KAAKmjG,YAAahkG,GAInBa,KAAKojG,yBAGApjG,KAAK6iG,oBACT7iG,KAAKqjG,iCAAkCrjG,KAAK6iG,oBAK7C7iG,KAAKsjG,gBAGLtjG,KAAKs6B,OAAO0mD,2BAA4BhhF,KAAK8iG,oBAAqB9iG,KAAK+lC,QACvE/lC,KAAK8iG,oBAAsB,EAC5B,CAOQ,gCAAAO,CAAkClkG,GACzC,MAAMokG,EAAwBvjG,KAAK+lC,OAAOwb,oBAAqBvhD,KAAK4iG,WAC9DY,EAAoBxjG,KAAK+lC,OAAOwb,oBAAqBpiD,GAG3D,GAAKqkG,EAAkBt7D,QAASq7D,GAA0B,CAIzD,GAHAvjG,KAAK4iG,UAAYzjG,EAGZa,KAAKynB,SAAS7oB,QAAUO,IAASa,KAAKynB,SAASksB,QAInD,MAAM,IAAIjmC,EAAe,2CAA4C1N,MAGtEA,KAAKynB,SAAW+7E,EAChBxjG,KAAKyjG,uBAAwBzjG,KAAKynB,SACnC,CACD,CAMO,iBAAAi8E,GACN,OAAK1jG,KAAKijG,cACF,GAAMrsD,UAAW52C,KAAKijG,eAGvBjjG,KAAK5H,MAAMkiC,OAAOk3C,yBAA0BxxE,KAAKynB,SACzD,CAMO,gBAAAk8E,GACN,OAAM3jG,KAAK+iG,eAIJ,IAAI,GAAO/iG,KAAK+iG,eAAgB/iG,KAAKgjG,cAHpC,IAIT,CAKO,OAAA/6E,GACDjoB,KAAK+iG,gBACT/iG,KAAK+iG,eAAevhF,SAGhBxhB,KAAKgjG,cACThjG,KAAKgjG,aAAaxhF,QAEpB,CAKQ,WAAA2hF,CAAahkG,GAIpB,GAAKa,KAAKs6B,OAAOi3C,SAAUpyE,GAG1B,YAFAa,KAAK4jG,cAAezkG,GASrB,IAAI0kG,EAAY7jG,KAAK8jG,wCAAyC3kG,GAExD0kG,IAGLA,EAAY7jG,KAAK+jG,gCAAiC5kG,GAE5C0kG,IAQP7jG,KAAKgkG,kBAAmB7kG,GAGlBa,KAAK2iG,aACV3iG,KAAK2iG,WAAaxjG,GAGnBa,KAAK4iG,UAAYzjG,GAdfa,KAAKikG,sBAAuB9kG,EAe/B,CAKQ,sBAAAikG,GACP,GAAKpjG,KAAKyiG,kBAAkBn2D,QAC3B,OAGD,MAAM43D,EAAevQ,GAAaE,aAAc7zF,KAAKynB,SAAU,UAE/DznB,KAAKyjG,uBAAwBzjG,KAAKynB,UAK7BznB,KAAKyiG,kBAAkBt7D,SAAU,IAAOnnC,KAAK2iG,aACjD3iG,KAAK+lC,OAAOrgC,OAAQ1F,KAAK2iG,WAAa3iG,KAAKynB,UAI3CznB,KAAKmkG,eAELnkG,KAAKynB,SAAWy8E,EAAatQ,cAIxB5zF,KAAKyiG,kBAAkBn2D,SAC5BtsC,KAAK+lC,OAAOrgC,OAAQ1F,KAAKyiG,kBAAmBziG,KAAKynB,UAGlDznB,KAAK0iG,0BAA4B1iG,KAAK+lC,OAAOub,iBAAkBthD,KAAKyiG,kBAAmB,GAEvFziG,KAAKynB,SAAWy8E,EAAatQ,aAC7BsQ,EAAa1iF,QACd,CAKQ,aAAAoiF,CAAezkG,GAEjBa,KAAK+jG,gCAAiC5kG,GAC1Ca,KAAKgkG,kBAAmB7kG,GAIxBa,KAAKokG,qBAAsBjlG,EAE7B,CAKQ,qBAAA8kG,CAAuB9kG,GAEzBA,EAAKoP,GAAI,WACbvO,KAAKkjG,YAAa/jG,EAAK2nC,eAIvB9mC,KAAKokG,qBAAsBjlG,EAE7B,CAOQ,iBAAA6kG,CAAmB7kG,GAE1B,IAAMa,KAAKs6B,OAAOq4C,WAAY3yE,KAAKynB,SAAUtoB,GAW5C,MAAM,IAAIuO,EACT,+BACA1N,KACA,CAAEb,OAAMsoB,SAAUznB,KAAKynB,WAIzBznB,KAAK+lC,OAAOrgC,OAAQvG,EAAMa,KAAK0iG,2BAC/B1iG,KAAK0iG,0BAA4B1iG,KAAK0iG,0BAA0BjuD,aAAct1C,EAAK6pC,YAG9EhpC,KAAKs6B,OAAOi3C,SAAUpyE,KAAWa,KAAKs6B,OAAOq4C,WAAY3yE,KAAKynB,SAAU,SAC5EznB,KAAKijG,cAAgB9jG,EAErBa,KAAKijG,cAAgB,KAGtBjjG,KAAK8iG,oBAAoBljG,KAAMT,EAChC,CASQ,sBAAAskG,CAAwBh8E,GAIzBznB,KAAK+iG,iBACV/iG,KAAK+iG,eAAiBpP,GAAaE,aAAcpsE,EAAU,eAOtDznB,KAAKgjG,eAAgBhjG,KAAKgjG,aAAaj7D,SAAUtgB,KACjDznB,KAAKgjG,cACThjG,KAAKgjG,aAAaxhF,SAGnBxhB,KAAKgjG,aAAerP,GAAaE,aAAcpsE,EAAU,UAE3D,CAQQ,YAAA08E,GACP,MAAMhlG,EAAOa,KAAK2iG,WAElB,KAAQxjG,aAAgB,IACvB,OAGD,IAAMa,KAAKqkG,cAAellG,GACzB,OAGD,MAAMmlG,EAAe3Q,GAAaz/C,cAAe/0C,GACjDmlG,EAAaljC,WAAa,SAE1B,MAAM8iC,EAAevQ,GAAaE,aAAc7zF,KAAKynB,SAAU,UAc1DznB,KAAK+iG,eAAgB19E,QAASi/E,KAClCtkG,KAAK+iG,eAAgBvhF,SACrBxhB,KAAK+iG,eAAiBpP,GAAavgD,UAAWkxD,EAAahwD,WAAa,MAAO,eAY3Et0C,KAAK2iG,aAAe3iG,KAAK4iG,YAC7B5iG,KAAK2iG,WAAa2B,EAAahwD,WAC/Bt0C,KAAK4iG,UAAY0B,EAAahwD,YAG/Bt0C,KAAK+lC,OAAO83D,MAAOyG,GAUdA,EAAaj/E,QAASrlB,KAAKgjG,eAAmBhjG,KAAK2iG,aAAe3iG,KAAK4iG,YAC3E5iG,KAAKgjG,aAAcxhF,SACnBxhB,KAAKgjG,aAAerP,GAAavgD,UAAWkxD,EAAahwD,WAAa,MAAO,WAG9Et0C,KAAKynB,SAAWy8E,EAAatQ,aAC7BsQ,EAAa1iF,SAIbxhB,KAAK8iG,oBAAoBljG,KAAMI,KAAKynB,SAAS7oB,QAE7C0lG,EAAa9iF,QACd,CAQQ,aAAA8hF,GACP,MAAMnkG,EAAOa,KAAK4iG,UAElB,KAAQzjG,aAAgB,IACvB,OAGD,IAAMa,KAAKukG,eAAgBplG,GAC1B,OAGD,MAAMqlG,EAAgB7Q,GAAa//C,aAAcz0C,GAIjD,GAHAqlG,EAAcpjC,WAAa,UAGrBphE,KAAKynB,SAASpC,QAASm/E,GAa5B,MAAM,IAAI92F,EAAe,2CAA4C1N,MAKtEA,KAAKynB,SAAW,GAAS2rB,UAAWoxD,EAAclwD,WAAa,OAK/D,MAAM4vD,EAAevQ,GAAaE,aAAc7zF,KAAKynB,SAAU,cAG1DznB,KAAKgjG,aAAc39E,QAASm/E,KAChCxkG,KAAKgjG,aAAcxhF,SACnBxhB,KAAKgjG,aAAerP,GAAavgD,UAAWoxD,EAAclwD,WAAa,MAAO,WAY1Et0C,KAAK2iG,aAAe3iG,KAAK4iG,YAC7B5iG,KAAK2iG,WAAa6B,EAAclwD,WAChCt0C,KAAK4iG,UAAY4B,EAAclwD,YAGhCt0C,KAAK+lC,OAAO83D,MAAO2G,GAGdA,EAAc/vD,cAAe,GAAIpvB,QAASrlB,KAAK+iG,iBAAqB/iG,KAAK2iG,aAAe3iG,KAAK4iG,YACjG5iG,KAAK+iG,eAAgBvhF,SACrBxhB,KAAK+iG,eAAiBpP,GAAavgD,UAAWoxD,EAAclwD,WAAa,EAAG,eAG7Et0C,KAAKynB,SAAWy8E,EAAatQ,aAC7BsQ,EAAa1iF,SAIbxhB,KAAK8iG,oBAAoBljG,KAAMI,KAAKynB,SAAS7oB,QAE7C4lG,EAAchjF,QACf,CAOQ,aAAA6iF,CAAellG,GACtB,MAAMspB,EAAkBtpB,EAAKspB,gBAE7B,OAASA,aAA2B,IACnCzoB,KAAKwiG,aAAav0F,IAAKwa,IACvBzoB,KAAK5H,MAAMkiC,OAAOqlD,WAAYl3D,EAAiBtpB,EACjD,CAOQ,cAAAolG,CAAgBplG,GACvB,MAAM+X,EAAc/X,EAAK+X,YAEzB,OAASA,aAAuB,IAC/BlX,KAAKwiG,aAAav0F,IAAKiJ,IACvBlX,KAAK5H,MAAMkiC,OAAOqlD,WAAYxgF,EAAM+X,EACtC,CAOQ,oBAAAktF,CAAsBjlG,GAC7B,MAAM44E,EAAY/3E,KAAK+lC,OAAOzgC,cAAe,aAKxCtF,KAAKykG,cAAezkG,KAAKynB,SAAS7oB,OAAem5E,IAAe/3E,KAAKs6B,OAAOq4C,WAAYoF,EAAW54E,KACvG44E,EAAU1mC,aAAclyC,GACxBa,KAAKmjG,YAAaprB,GAEpB,CASQ,uCAAA+rB,CAAyC3kG,GAChD,GAAKa,KAAKs6B,OAAOq4C,WAAY3yE,KAAKynB,SAAS7oB,OAAeO,GACzD,OAAO,EAMR,IAAMa,KAAKs6B,OAAOq4C,WAAY3yE,KAAKynB,SAAS7oB,OAAe,eAAkBoB,KAAKs6B,OAAOq4C,WAAY,YAAaxzE,GACjH,OAAO,EAIRa,KAAKojG,yBAGL,MAAMrrB,EAAY/3E,KAAK+lC,OAAOzgC,cAAe,aAQ7C,OANAtF,KAAK+lC,OAAOrgC,OAAQqyE,EAAW/3E,KAAKynB,UACpCznB,KAAKyjG,uBAAwBzjG,KAAKynB,UAElCznB,KAAK6iG,mBAAqB9qB,EAC1B/3E,KAAKynB,SAAWznB,KAAK+lC,OAAOub,iBAAkBy2B,EAAW,IAElD,CACR,CAMQ,+BAAAgsB,CAAiC5kG,GACxC,MAAM8kF,EAAYjkF,KAAKykG,cAAezkG,KAAKynB,SAAS7oB,OAAeO,GAEnE,IAAM8kF,EACL,OAAO,EAQR,IAJKA,GAAajkF,KAAKynB,SAAS7oB,QAC/BoB,KAAKojG,yBAGEnf,GAAajkF,KAAKynB,SAAS7oB,QAClC,GAAKoB,KAAKynB,SAASwsB,UAAY,CAG9B,MAAMr1C,EAAkBoB,KAAKynB,SAAS7oB,OAEtCoB,KAAKynB,SAAWznB,KAAK+lC,OAAOyb,qBAAsB5iD,GAW7CA,EAAO0tC,SAAW1tC,EAAOA,SAAWqlF,GACxCjkF,KAAK+lC,OAAO9/B,OAAQrH,EAEtB,MAAO,GAAKoB,KAAKynB,SAASksB,QAGzB3zC,KAAKynB,SAAWznB,KAAK+lC,OAAOwb,oBAAqBvhD,KAAKynB,SAAS7oB,YACzD,CACN,MAAM8lG,EAAU1kG,KAAK+lC,OAAOwb,oBAAqBvhD,KAAKynB,SAAS7oB,QAE/DoB,KAAKyjG,uBAAwBzjG,KAAKynB,UAClCznB,KAAK+lC,OAAOhpC,MAAOiD,KAAKynB,UAExBznB,KAAKynB,SAAWi9E,EAEhB1kG,KAAKwiG,aAAat0F,IAAKlO,KAAKynB,SAAS4sB,UACtC,CAGD,OAAO,CACR,CAQQ,aAAAowD,CAAelmE,EAAyBomE,GAC/C,OAAK3kG,KAAKs6B,OAAOq4C,WAAYp0C,EAAgBomE,GACrCpmE,EAQHv+B,KAAKs6B,OAAOozC,QAASnvC,GAClB,KAGDv+B,KAAKykG,cAAelmE,EAAe3/B,OAAe+lG,EAC1D,EC30Bc,SAASC,GACvBxsG,EACAmd,EACA4iC,EACA5zC,EAGI,CAAC,GAEL,IAAMnM,EAAMkiC,OAAOi3C,SAAUh8D,GAS5B,MAAM,IAAI7H,EAAe,qCAAsCtV,EAAO,CAAEmd,WAIzE,MAAMsvF,EAAmD1sD,GAA0B//C,EAAMoL,SAASm9B,UAGlG,IAAImkE,EAAqBD,EAEpBtgG,EAAQwgG,qBAAuB3sG,EAAMkiC,OAAOizC,QAASh4D,KACzDuvF,EAAqB1sG,EAAMwpD,gBAC1BxpD,EAAMkiC,OAAOgoD,0BAA2BuiB,EAAmBtgG,EAAQwgG,uBAKrE,MAAMC,EAAqB,GAAOH,EAAkBr4B,qBAC9Cy4B,EAAmB,CAAC,EAM1B,OAJKD,GACJhuG,OAAOsyB,OAAQ27E,EAAkB7sG,EAAMkiC,OAAO6mD,0BAA2B6jB,EAAoB,iBAAiB,IAGxG5sG,EAAM0tC,QAAQC,IAGd++D,EAAmB3vD,aACxB/8C,EAAM4nG,cAAe8E,EAAoB,CAAEvE,oBAAoB,IAGhE,IAAI2E,EAAkB3vF,EACtB,MAAM4vF,EAA0BL,EAAmB99D,OAAQpoC,QAIzDxG,EAAMkiC,OAAOq4C,WAAYwyB,EAAgC5vF,IAC1Dnd,EAAMkiC,OAAOq4C,WAAYwyB,EAAgC,cACzD/sG,EAAMkiC,OAAOq4C,WAAY,YAAap9D,KAEtC2vF,EAAkBn/D,EAAOzgC,cAAe,aAExCygC,EAAOrgC,OAAQ6P,EAAQ2vF,IAIxB9sG,EAAMkiC,OAAOymD,qBAAsBmkB,EAAiBD,EAAkBl/D,GAGtE,MAAMq/D,EAAgBhtG,EAAMitG,cAAeH,EAAiBJ,GAG5D,OAAKM,EAAcjwD,aAId5wC,EAAQg5C,cAkBf,SACCxX,EACAxH,EACAgkD,EACA+iB,GAEA,MAAMltG,EAAQ2tC,EAAO3tC,MAErB,GAAc,MAATmqF,EAGJ,YAFAx8C,EAAOwX,aAAchf,EAAgB,MAKtC,GAAc,SAATgkD,EASJ,MAAM,IAAI70E,EAAe,6CAA8CtV,GAGxE,IAAImtG,EAAchnE,EAAernB,YAEjC,GAAK9e,EAAMkiC,OAAOm3C,SAAUlzC,GAG3B,YAFAwH,EAAOwX,aAAchf,EAAgB,SAMtC,MAAMinE,EAAkBD,GAAentG,EAAMkiC,OAAOq4C,WAAY4yB,EAAa,UAGvEC,GAAmBptG,EAAMkiC,OAAOq4C,WAAYp0C,EAAe3/B,OAAe,eAC/E2mG,EAAcx/D,EAAOzgC,cAAe,aAEpClN,EAAMkiC,OAAOymD,qBAAsBwkB,EAAaD,EAAqBv/D,GACrE3tC,EAAMitG,cAAeE,EAAax/D,EAAOwb,oBAAqBhjB,KAI1DgnE,GACJx/D,EAAOwX,aAAcgoD,EAAa,EAEpC,CAlEGE,CAAiB1/D,EAAQxwB,EAAQhR,EAAQg5C,aAAc0nD,GAJhDG,CAOY,GAEtB,CC3GA,MAAMM,GAAyB,cAqF/B,SAASC,GACR7iG,EAOAtK,GAEA,MAAM,UAAEotG,EAAS,OAAEtlD,EAAM,KAAE93B,EAAI,OAAE8R,EAAM,uBAAEurE,GAA2B/iG,GAC9D,KAAEqI,EAAI,KAAElL,EAAI,aAAEm0C,GAAiB57C,EAIrC,GAAa,QAAR2S,EACJ,MAAmB,SAAdrI,EAAK0lB,KAqEZ,SAAsC83B,EAAoBslD,GACzD,IAAI98D,EAAwBwX,EAAO74B,SAASqhB,SAEtCA,IACLA,EAAW88D,EAAYtlD,EAAO74B,SAAS4sB,UAAYiM,EAAO74B,SAAS6sB,YAGpE,KAAQxL,GAAYA,EAASv6B,GAAI,UAAY,CAC5C,MAAM8N,EAASikC,EAAO74B,SAASpL,OAASysB,EAASqL,YAKjD,GAAK2xD,GAAkBh9D,EAAUzsB,EAAQupF,GACxC98D,EAAW88D,EAAYtlD,EAAO74B,SAAS4sB,UAAYiM,EAAO74B,SAAS6sB,eACpE,IAEUyxD,GAAkBj9D,EAAShmC,KAAMuZ,EAAQupF,GAClD,MAIAtlD,EAAOh/C,MACR,CACD,CAEA,OAAOg/C,EAAO74B,QACf,CA/FUu+E,CAA6B1lD,EAAQslD,GAuC/C,SACCtlD,EACA93B,EACAq9E,GAEA,MAAM/8D,EAAWwX,EAAO74B,SAASqhB,SAEjC,GAAKA,EAAW,CACf,MAAMhmC,EAAOgmC,EAAShmC,KACtB,IAAIuZ,EAASikC,EAAO74B,SAASpL,OAASysB,EAASqL,YAE/C,KACCtd,GAAuB/zB,EAAMuZ,IACnB,aAARmM,GAAuBwO,GAAwBl0B,EAAMuZ,IACrDwpF,GAA0B1uE,GAAuBr0B,EAAMuZ,IAEzDikC,EAAOh/C,OAEP+a,EAASikC,EAAO74B,SAASpL,OAASysB,EAASqL,WAE7C,CAEA,OAAOmM,EAAO74B,QACf,CA3DSw+E,CAAoB3lD,EAAQ93B,EAAMq9E,GAI1C,GAAK16F,IAAUy6F,EAAY,eAAiB,cAAiB,CAE5D,GAAKtrE,EAAOkiD,aAAcv8E,GACzB,OAAO,GAASmzC,UAAWnzC,EAAM2lG,EAAY,QAAU,UAIxD,GAAKtrE,EAAOq4C,WAAYv+B,EAAc,SACrC,OAAOA,CAET,KAEK,CAEJ,GAAK9Z,EAAOozC,QAASztE,GAIpB,YAFAqgD,EAAOjN,MAAM,KAAM,IAMpB,GAAK/Y,EAAOq4C,WAAYv+B,EAAc,SACrC,OAAOA,CAET,CACD,CAgEA,SAAS8xD,GAAgBz1E,EAAiBm1E,GACzC,MAAMtvG,EAAOm6B,EAAMn6B,KACb6vG,EAAY,GAAS/yD,UAAW98C,EAAMsvG,EAAY,MAAQ,GAEhE,OAAKA,EACG,IAAI,GAAOn1E,EAAO01E,GAElB,IAAI,GAAOA,EAAW11E,EAE/B,CAKA,SAASs1E,GAAkBjjG,EAAcuZ,EAAgBupF,GAExD,MAAMQ,EAAgB/pF,GAAWupF,EAAY,GAAK,GAElD,OAAOF,GAAuBvzE,SAAUrvB,EAAKkrB,OAAQo4E,GACtD,CAKA,SAASN,GAAkBh9D,EAAgBzsB,EAAgBupF,GAC1D,OAAOvpF,KAAaupF,EAAY98D,EAASE,WAAa,EACvD,CCxMe,MAAMq9D,WAA8B/yF,KAIlCm2D,QAKAjmE,SAKA82B,OAMCgsE,gBAKTlH,eAKR,WAAAr9F,GACC8L,QAEA7N,KAAKypE,QAAU,IAAIgyB,GACnBz7F,KAAKwD,SAAW,IAAI,GAAUxD,MAC9BA,KAAKs6B,OAAS,IAAIskD,GAElB5+E,KAAKsmG,gBAAkB,GACvBtmG,KAAKo/F,eAAiB,KAEpB,CAAE,gBAAiB,kBAAmB,qBAAsB,kBAC5DxhG,SAASyX,GAAcrV,KAAKoV,SAAUC,KAIxCrV,KAAKyP,GAA8B,kBAAkB,CAAE+F,EAAKtZ,KACzCA,EAAM,GAEdkuF,WAAW,GACnB,CAAEp9E,SAAU,YAGfhN,KAAKs6B,OAAO4kD,SAAU,QAAS,CAC9BxR,SAAS,IAGV1tE,KAAKs6B,OAAO4kD,SAAU,aAAc,CACnCkD,QAAS,CAAE,QAAS,gBAGrBpiF,KAAKs6B,OAAO4kD,SAAU,SAAU,CAC/BkD,QAAS,CAAE,QAAS,cACpB7U,SAAS,IAGVvtE,KAAKs6B,OAAO4kD,SAAU,eAAgB,CACrC8D,WAAY,SACZzV,SAAS,EACTgE,UAAU,IAGXvxE,KAAKs6B,OAAO4kD,SAAU,gBAAiB,CACtC8D,WAAY,QACZC,kBAAmB,QACnBxR,UAAU,EACVF,UAAU,IAGXvxE,KAAKs6B,OAAO4kD,SAAU,QAAS,CAC9BkD,QAAS,SACT3Q,UAAU,EACV+N,WAAW,IAGZx/E,KAAKs6B,OAAO4kD,SAAU,mBAAoB,CACzC6D,eAAgB,QAChBG,cAAe,QACfxV,SAAS,IAGV1tE,KAAKs6B,OAAO4kD,SAAU,oBAAqB,CAC1C6D,eAAgB,QAChBG,cAAe,QACfxV,SAAS,IAOV1tE,KAAKs6B,OAAO4kD,SAAU,WACtBl/E,KAAKs6B,OAAOwlD,eAAe,CAAEnyE,EAAS44F,KACrC,GAA8B,YAAzBA,EAAgBvkG,KACpB,OAAO,CACR,IAGD64E,GAA0B76E,MAG1BA,KAAKwD,SAASyiC,kBAAmBwxC,IAGjCz3E,KAAKyP,GAA6B,iBAAiB,CAAE+F,GAAOtV,EAASi4C,MACpE3iC,EAAIjJ,OHvGQ,SACdnU,EACA8H,EACAi4C,GAEA,OAAO//C,EAAM0tC,QAAQC,IACpB,MAAMpF,EAA2CwX,GAA0B//C,EAAMoL,SAASm9B,UAEpFA,EAAUwU,aACf/8C,EAAM4nG,cAAer/D,EAAW,CAAE4/D,oBAAoB,IAGvD,MAAMiG,EAAY,IAAIjE,GAAWnqG,EAAO2tC,EAAQpF,EAAUqG,QACpDy/D,EAAqB,GAE3B,IAAIC,EAEJ,GAAKxmG,EAAQqO,GAAI,oBAAuB,CAEvC,GAAKrO,EAAQupE,QAAQz1D,KAAO,CAC3B,MAAM2yF,EAAkB,GAExB,UAAc3kG,EAAM+kB,KAAW7mB,EAAQupE,QAAU,CAChD,MAAM,MAAEh5C,EAAK,IAAEsb,GAAQhlB,EACjBouB,EAAc1kB,EAAMpL,QAAS0mB,GAEnC46D,EAAgB/mG,KACf,CAAE6nB,SAAUgJ,EAAOzuB,OAAMmzC,eACzB,CAAE1tB,SAAUskB,EAAK/pC,OAAMmzC,eAEzB,CAIAwxD,EAAgB9kF,MAAM,EAAI4F,SAAUm/E,IAAUn/E,SAAUo/E,KAAYD,EAAK7+D,SAAU8+D,GAAS,GAAK,IAEjG,UAAY,SAAEp/E,EAAQ,KAAEzlB,EAAI,YAAEmzC,KAAiBwxD,EAAkB,CAChE,IAAIvjD,EAAc,KACd9G,EAAY,KAChB,MAAMwqD,EAAgBr/E,EAAS7oB,SAAWsB,GAAWunB,EAASwsB,UACxDN,EAAUlsB,EAAS7oB,SAAWsB,GAAWunB,EAASksB,QAWlDmzD,GAAkBnzD,EAGZwB,IAGXmH,EAAYwqD,EAAgB,QAAmB,QAL/C1jD,EAAcrd,EAAOzgC,cAAe,WACpCygC,EAAOrgC,OAAQ09C,EAAa37B,IAO7Bg/E,EAAmB7mG,KAAM,CACxBoC,OACA+U,QAASqsC,EACT9G,aAEF,CACD,CAEAoqD,EAAgBxmG,EAAQ4mC,aACzB,MACC4/D,EAAgB,CAAExmG,GAGnBsmG,EAAUtD,YAAawD,GAEvB,IAAI3lD,EAAWylD,EAAU9C,oBAEzB,GAAKxjG,EAAQqO,GAAI,qBAAwBk4F,EAAmBnuG,OAAS,CAIpE,MAAMyuG,EAAqBhmD,EAAW8sB,GAAUG,UAAWjtB,GAAa,KAGlEimD,EAA+C,CAAC,EAKtD,QAAUxsG,EAAIisG,EAAmBnuG,OAAS,EAAGkC,GAAK,EAAGA,IAAM,CAC1D,MAAM,KAAEwH,EAAI,QAAE+U,EAAO,UAAEulC,GAAcmqD,EAAoBjsG,GACnDysG,GAAmBD,EAAahlG,GAMtC,GAJKilG,IACJD,EAAahlG,GAAS,IAGlB+U,EAAU,CAEd,MAAMmwF,EAAkBnhE,EAAOub,iBAAkBvqC,EAAS,UAE1DiwF,EAAahlG,GAAOpC,KAAMsnG,GAE1BnhE,EAAO9/B,OAAQ8Q,EAChB,KAAO,CAEN,MAAMowF,EAAmBX,EAAU7C,mBAEnC,IAAMwD,EAAmB,CAInB7qD,GACJ0qD,EAAahlG,GAAOpC,KAAM4mG,EAAU/+E,UAGrC,QACD,CAEK60B,EAGJ0qD,EAAahlG,GAAOpC,KAAMunG,EAAkB7qD,IAE5C0qD,EAAahlG,GAAOpC,KAAMqnG,EAAkBE,EAAiB12E,MAAQ02E,EAAiBp7D,IAExF,CACD,CAEA,UAAc/pC,GAAQyuB,EAAOsb,MAAW/0C,OAAOoiB,QAAS4tF,GAGlDv2E,GAASsb,GAAOtb,EAAMn6B,OAASy1C,EAAIz1C,MAAQm6B,EAAMn6B,KAAKkN,WAAauiC,EAAO3tC,MAAMqxE,QAAQx7D,IAAKjM,IACjG+jC,EAAOi3D,UAAWh7F,EAAM,CACvB86F,gBAAgB,EAChBp8D,aAAa,EACb3Z,MAAO,IAAI,GAAO0J,EAAOsb,KAKvBg7D,IACJhmD,EAAWgmD,EAAmBh5B,UAC9Bg5B,EAAmBvlF,SAErB,CAGKu/B,IACCpgB,aAAqB,GACzBoF,EAAOwX,aAAcwD,GAErBpgB,EAAU4L,MAAOwU,IASnB,MAAMqkD,EAAgBoB,EAAU7C,oBAAsBvrG,EAAMqpD,YAAa9gB,EAAUqG,QAInF,OAFAw/D,EAAUv+E,UAEHm9E,CAAa,GAEtB,CGhEgBC,CAAerlG,KAAME,EAASi4C,EAAY,IAIxDn4C,KAAKyP,GAA4B,gBAAgB,CAAE+F,GAAOuB,EAAS4pB,EAAWp8B,MAC7EiR,EAAIjJ,OAASq4F,GAAc5kG,KAAM+W,EAAS4pB,EAAWp8B,EAAS,IAI/DvE,KAAKyP,GAAyB,aAAa+F,IAC1C,MAAMurB,GAAa/gC,KAAKwD,SAASw9B,WAEjCxrB,EAAIjJ,OAASw0B,EAEPA,GAELvrB,EAAInJ,MACL,GAUF,CA2CO,MAAAy5B,CAAiBn2B,GACvB,IACC,OAAqC,IAAhC3P,KAAKsmG,gBAAgBhuG,QAEzB0H,KAAKsmG,gBAAgB1mG,KAAM,CAAEmwE,MAAO,IAAIgkB,GAASpkF,aAE1C3P,KAAKonG,qBAAsB,IAG3Bz3F,EAAU3P,KAAKo/F,eAExB,CAAE,MAAQ59F,GAGTkM,EAAcc,uBAAwBhN,EAAKxB,KAC5C,CACD,CAwFO,aAAAiwE,CACNo3B,EACA13F,GAEA,IACO03F,EAE6B,mBAAhBA,GAClB13F,EAAW03F,EACXA,EAAc,IAAItT,IACJsT,aAAuBtT,KACrCsT,EAAc,IAAItT,GAAOsT,IALzBA,EAAc,IAAItT,GAQnB/zF,KAAKsmG,gBAAgB1mG,KAAM,CAAEmwE,MAAOs3B,EAAa13F,aAEb,GAA/B3P,KAAKsmG,gBAAgBhuG,QACzB0H,KAAKonG,oBAEP,CAAE,MAAQ5lG,GAGTkM,EAAcc,uBAAwBhN,EAAKxB,KAC5C,CACD,CAaO,cAAA48F,CAAgBr6B,GAMtBA,EAAUspB,UACX,CA4JO,aAAAwZ,CACNnlG,EACAi4C,EACAC,KACG1T,GAEH,MAAM/D,EAAY2mE,GAAqBnvD,EAAYC,GAGnD,OAAOp4C,KAAK4Q,KAA+B,gBAAiB,CAAE1Q,EAASygC,EAAWyX,KAAkB1T,GACrG,CAqFO,YAAAkgE,CACN7tF,EACAohC,EACAC,EACA7zC,KAIGmgC,GAEH,MAAM/D,EAAY2mE,GAAqBnvD,EAAYC,GAInD,OAAOp4C,KAAK4Q,KAA8B,eAAgB,CAAEmG,EAAS4pB,EAAWp8B,EAASA,KAAYmgC,GACtG,CAiDO,aAAAs7D,CACNr/D,EACAp8B,GAQAy7F,GAAehgG,KAAM2gC,EAAWp8B,EACjC,CA8BO,eAAAk8F,CACN9/D,EACAp8B,IDxqBa,SACdnM,EACAuoC,EACAp8B,EAII,CAAC,GAEL,MAAM+1B,EAASliC,EAAMkiC,OACfsrE,EAAiC,YAArBrhG,EAAQiiB,UACpBgC,EAAOjkB,EAAQikB,KAAOjkB,EAAQikB,KAAO,YACrCq9E,IAA2BthG,EAAQshG,uBAEnCpmE,EAAQkB,EAAUlB,MAElB6gB,EAAS,IAAI,GAAY,CAC9B3N,WAAYuzD,GAAgBzmE,EAAOmmE,GACnChzD,kBAAkB,EAClBpsB,UAAWo/E,EAAY,UAAY,aAG9B9iG,EAAO,CAAEw9C,SAAQhmB,SAAQsrE,YAAWp9E,OAAMq9E,0BAEhD,IAAIvkG,EAEJ,KAAUA,EAAOg/C,EAAOh/C,QAAW,CAClC,GAAKA,EAAKC,KACT,OAGD,MAAMkmB,EAAWk+E,GAAgB7iG,EAAMxB,EAAK9I,OAE5C,GAAKivB,EASJ,YARKkZ,aAAqB,GACzBvoC,EAAM0tC,QAAQC,IACbA,EAAOyX,kBAAmB/1B,EAAU,IAGrCkZ,EAAUgY,SAAUlxB,GAKvB,CACD,CCioBEg5E,CAAiBzgG,KAAM2gC,EAAWp8B,EACnC,CA6BO,kBAAAgjG,CAAoB5mE,GAC1B,OJnuBa,SACdvoC,EACAuoC,GAEA,OAAOvoC,EAAM0tC,QAAQC,IACpB,MAAMyhE,EAAOzhE,EAAOpK,yBACd5U,EAAQ4Z,EAAU4W,gBAExB,IAAMxwB,GAASA,EAAMouB,YACpB,OAAOqyD,EAGR,MAAMlxG,EAAOywB,EAAM0J,MAAMn6B,KACnBmxG,EAAa1gF,EAAM0J,MAAMqxC,cAAe/6C,EAAMglB,KAC9C27D,EAAepxG,EAAK0qE,cAAeymC,GAezC,IAAIE,EAIHA,EAFI5gF,EAAM0J,MAAM7xB,QAAUmoB,EAAMglB,IAAIntC,OAEjBmoB,EAEAgf,EAAO0b,YACzB1b,EAAOub,iBAAkBomD,EAAc3gF,EAAM0J,MAAMhxB,KAAMgoG,EAAWnvG,SACpEytC,EAAOub,iBAAkBomD,EAAc3gF,EAAMglB,IAAItsC,KAAMgoG,EAAWnvG,QAAW,IAI/E,MAAM+S,EAAUs8F,EAAiB57D,IAAI1vB,OAASsrF,EAAiBl3E,MAAMpU,OAGrE,UAAYpc,KAAQ0nG,EAAiBtxD,SAAU,CAAExD,SAAS,IACpD5yC,EAAKsO,GAAI,cACbw3B,EAAOo3D,WAAYl9F,EAAK6C,KAAM7C,EAAKmwC,gBAAiBo3D,GAEpDzhE,EAAO0pB,OAAQ1pB,EAAO02D,aAAcx8F,GAAiB,GAAQunG,GAmB/D,GAAKG,GAAoB5gF,EAAQ,CAEhC,MAAMg6B,EAAWh6B,EAAM87C,sBAAuB8kC,EAAiBl3E,MAAOsV,EAAOub,iBAAkBkmD,EAAM,GAAKn8F,GAAW,GAE/Gu8F,EAAkB7hE,EAAO0b,YAAa1b,EAAOub,iBAAkBkmD,EAAM,GAAKzmD,EAAStwB,OAGzFyxE,GAFyBn8D,EAAO0b,YAAaV,EAAShV,IAAKhG,EAAOub,iBAAkBkmD,EAAM,QAEpDzhE,GACtCm8D,GAAoB0F,EAAiB7hE,EACtC,CAEA,OAAOyhE,CAAI,GAEb,CImpBSD,CAAoBvnG,KAAM2gC,EAClC,CAsBO,UAAAmnD,CACN+f,EACAtjG,EAGI,CAAC,GAEL,MAAMwiB,EAAQ8gF,aAA0B,GAAaA,EAAiB,GAAWlxD,UAAWkxD,GAE5F,GAAK9gF,EAAMouB,YACV,OAAO,EAGR,MAAM,kBAAE4yC,GAAoB,EAAK,cAAEyY,GAAgB,GAAUj8F,EAG7D,IAAMi8F,EACL,UAAYsH,KAAsB9nG,KAAKypE,QAAQ8rB,4BAA6BxuE,GAC3E,GAAK+gF,EAAmBpnE,YACvB,OAAO,EAKV,UAAYzgC,KAAQ8mB,EAAMsvB,WACzB,GAAKr2C,KAAKs6B,OAAOklD,UAAWv/E,GAAS,CACpC,IAAKA,EAAKsO,GAAI,cAOb,OAAO,EANP,IAAMw5E,EACL,OAAO,EACD,IAAmC,IAA9B9nF,EAAK6C,KAAK8G,OAAQ,MAC7B,OAAO,CAKV,CAGD,OAAO,CACR,CAeO,SAAAm3B,CAAWoX,GACjB,MAAMxX,EAAY2mE,GAAqBnvD,GAEvC,OAAOn4C,KAAK4Q,KAA2B,YAAa,CAAE+vB,GACvD,CAYO,sBAAA26D,CACNhlG,EACAmJ,EACA2hE,GAEA,OAAO,IAAI,GAAe9qE,EAAMmJ,EAAM2hE,EACvC,CAsBO,gBAAA9f,CACNrM,EACA54B,GAEA,OAAO,GAAc+2B,UAAW6B,EAAgB54B,EACjD,CAUO,mBAAAklC,CAAqBthD,GAC3B,OAAO,GAAc2zC,aAAc3zC,EACpC,CAUO,oBAAAuhD,CAAsBvhD,GAC5B,OAAO,GAAci0C,cAAej0C,EACrC,CAiBO,WAAAwhD,CAAahxB,EAAsBsb,GACzC,OAAO,IAAI,GAAYtb,EAAOsb,EAC/B,CAiBO,aAAA4V,CAAe5qC,GACrB,OAAO,GAAW4/B,UAAW5/B,EAC9B,CAgBO,aAAA2qC,CAAezhD,GACrB,OAAO,GAAW22C,UAAW32C,EAC9B,CA+EO,eAAA2hD,IAAoB1lD,GAC1B,OAAO,IAAI,MAAmBA,EAC/B,CAYO,WAAA6rG,CAAa58F,GACnB,OAAO,IAAI4oF,GAAO5oF,EACnB,CASO,uBAAA68F,CAAyB1/D,GAC/B,OAAO6kD,GAAiBpsB,SAAUz4B,EAAMtoC,KAAKwD,SAC9C,CAKO,OAAAykB,GACNjoB,KAAKwD,SAASykB,UACdjoB,KAAK+P,eACN,CAMQ,kBAAAq3F,GACP,MAAMa,EAAM,GAEZjoG,KAAK4Q,KAAM,kBAEX,IACC,KAAQ5Q,KAAKsmG,gBAAgBhuG,QAAS,CAErC,MAAM4vG,EAAeloG,KAAKsmG,gBAAiB,GAAIv2B,MAC/C/vE,KAAKo/F,eAAiB,IAAI5C,GAAQx8F,KAAMkoG,GAGxC,MAAMC,EAAsBnoG,KAAKsmG,gBAAiB,GAAI32F,SAAU3P,KAAKo/F,gBACrE6I,EAAIroG,KAAMuoG,GAEVnoG,KAAKwD,SAAS03F,mBAAoBl7F,KAAKo/F,gBAEvCp/F,KAAKsmG,gBAAgB/4E,QACrBvtB,KAAKo/F,eAAiB,IACvB,CACD,CAAE,QACDp/F,KAAKsmG,gBAAgBhuG,OAAS,EAC9B0H,KAAKo/F,eAAiB,KAEtBp/F,KAAK4Q,KAAM,gBACZ,CAEA,OAAOq3F,CACR,EAMD,SAASX,GACRnvD,EACAC,GAEA,GAAMD,EAIN,OAAKA,aAAsB,IAAkBA,aAAsB,GAC3DA,EAGHA,aAAsB,GACrBC,GAAmC,IAAlBA,EACd,IAAI,GAAgBD,EAAYC,GAC5BD,EAAW5pC,GAAI,eACnB,IAAI,GAAgB4pC,EAAY,MAEhC,IAAI,GAAgBA,EAAY,MAIlC,IAAI,GAAgBA,EAC5B,CCnnCe,MAAMiwD,WAAsB,GAI1BlzC,aAAe,CAAE,YAAa,UAAW,YAAa,YAK/D,UAAAC,CAAYH,GAClBh1D,KAAK4Q,KAAMokD,EAAS7pD,KAAM6pD,EAC3B,ECiBc,MAAMqzC,GAIJ7kG,SAKhB,WAAAzB,CAAayB,GACZxD,KAAKwD,SAAWA,CACjB,CAQO,sBAAAm4B,CAAwBzjB,GAC9B,OAAO,IAAIklC,GAAkBp9C,KAAKwD,SAAU0U,EAC7C,CAkBO,aAAA5S,CACNtD,EACA6tC,EACA33B,GAEA,OAAO,IAAIq3B,GAASvvC,KAAKwD,SAAUxB,EAAM6tC,EAAO33B,EACjD,CAQO,UAAAulC,CAAY36C,GAClB,OAAO,IAAIylC,GAAMvoC,KAAKwD,SAAUV,EACjC,CAWO,KAAAkhB,CAAOjN,EAAkBk6B,GAAgB,GAC/C,OAAOl6B,EAAQ6xB,OAAQqI,EACxB,CAWO,WAAAtrC,CAAaiuB,EAAgD7c,GACnE,OAAOA,EAAQs6B,aAAczd,EAC9B,CAYO,WAAA00E,CAAa1jG,EAAegvB,EAA8B7c,GAChE,OAAOA,EAAQi5B,aAAcprC,EAAOgvB,EACrC,CAWO,cAAA20E,CAAgB3jG,EAAeyG,EAAiB0L,GACtD,OAAOA,EAAQoxB,gBAAiBvjC,EAAOyG,EACxC,CAQO,MAAApF,CAAQ8Q,GACd,MAAMnY,EAASmY,EAAQnY,OAEvB,OAAKA,EACGoB,KAAKuoG,eAAgB3pG,EAAO0oC,cAAevwB,GAAW,EAAGnY,GAG1D,EACR,CASO,OAAAkY,CAAS0xF,EAAqBxxF,GACpC,MAAMpY,EAAS4pG,EAAW5pG,OAE1B,GAAKA,EAAS,CACb,MAAMgG,EAAQhG,EAAO0oC,cAAekhE,GAKpC,OAHAxoG,KAAKuoG,eAAgB3jG,EAAO,EAAGhG,GAC/BoB,KAAKsoG,YAAa1jG,EAAOoS,EAAYpY,IAE9B,CACR,CAEA,OAAO,CACR,CAQO,aAAAmkD,CAAehsC,GACrB,MAAMnY,EAASmY,EAAQnY,OAEvB,GAAKA,EAAS,CACb,MAAMgG,EAAQhG,EAAO0oC,cAAevwB,GAEpC/W,KAAKiG,OAAQ8Q,GACb/W,KAAKsoG,YAAa1jG,EAAOmS,EAAQ+vB,cAAeloC,EACjD,CACD,CAYO,MAAAqiD,CAAQC,EAAiBnqC,GAC/B,MAAMC,EAAa,IAAIu4B,GAASvvC,KAAKwD,SAAU09C,EAASnqC,EAAQq5B,gBAAiBr5B,EAAQ+vB,eAEzF,OAAO9mC,KAAK8W,QAASC,EAASC,GAAeA,EAAa,IAC3D,CAcO,YAAAvR,CAAc1O,EAAayB,EAAgBue,GACjDA,EAAQw6B,cAAex6C,EAAKyB,EAC7B,CAaO,eAAAkO,CAAiB3P,EAAaggB,GACpCA,EAAQ06B,iBAAkB16C,EAC3B,CAcO,QAAAmwC,CAAUqJ,EAAmCx5B,GACnDA,EAAQ26B,UAAWnB,EACpB,CAcO,WAAAjK,CAAaiK,EAAmCx5B,GACtDA,EAAQ46B,aAAcpB,EACvB,CA0CO,QAAAiO,CAAUjrC,EAA2Ck1F,EAAkC1xF,GACxF,GAAexD,SAA0B,IAAZwD,EAC/B0xF,EAA4B72D,UAAWr+B,GAEzCwD,EAAS66B,UAAWr+B,EAAoBk1F,EAE1C,CAkBO,WAAAhqD,CAAalrC,EAAkCwD,GACrDA,EAAQ86B,aAAct+B,EACvB,CAWO,iBAAAmrC,CAAmB3nD,EAAsByB,EAAgBue,GAC/DA,EAAQ+6B,mBAAoB/6C,EAAKyB,EAClC,CAUO,oBAAAmmD,CAAsB5nD,EAAsBggB,GAClD,OAAOA,EAAQg7B,sBAAuBh7C,EACvC,CAiBO,gBAAAuqD,CAAkBrM,EAAiC54B,GACzD,OAAO82B,GAASC,UAAW6B,EAAgB54B,EAC5C,CAOO,mBAAAklC,CAAqBthD,GAC3B,OAAOkzC,GAASS,aAAc3zC,EAC/B,CAOO,oBAAAuhD,CAAsBvhD,GAC5B,OAAOkzC,GAASe,cAAej0C,EAChC,CAUO,WAAAwhD,CAAahxB,EAAiBsb,GACpC,OAAO,IAAImJ,GAAOzkB,EAAOsb,EAC1B,CAKO,aAAA2V,CAAezhD,GACrB,OAAOi1C,GAAM0B,UAAW32C,EACzB,CAQO,aAAA0hD,CAAe5qC,GACrB,OAAOm+B,GAAMyB,UAAW5/B,EACzB,CAgGO,eAAA6qC,IAAoB1lD,GAC1B,OAAO,IAAI26C,MAAc36C,EAC1B,ECthBD,MAAMwsG,GAAmB,8CACnBC,GAAmB,2DACnBC,GAAoB,oEACpBC,GAAmB,uEACnBC,GAAoB,sEAIpBC,GAA6B,qCAE7BC,GAAc,IAAIj1F,IAAK,CAE5B,QAAS,SAAU,OAAQ,QAAS,SAAU,MAAO,SAAU,UAC/D,QAAS,OAAQ,QAAS,SAAU,OAAQ,OAAQ,OAAQ,OAE5D,SAEA,YAAa,eAAgB,aAAc,QAAS,QAAS,SAAU,iBAAkB,aAAc,QACvG,YAAa,YAAa,aAAc,YAAa,QAAS,iBAAkB,WAAY,UAAW,OACvG,WAAY,WAAY,gBAAiB,WAAY,YAAa,WAAY,YAAa,cAC3F,iBAAkB,aAAc,aAAc,UAAW,aAAc,eAAgB,gBACvF,gBAAiB,gBAAiB,gBAAiB,aAAc,WAAY,cAAe,UAAW,UACvG,aAAc,YAAa,cAAe,cAAe,YAAa,aAAc,OAAQ,YAC5F,cAAe,OAAQ,WAAY,UAAW,YAAa,SAAU,QAAS,QAAS,WAAY,gBACnG,YAAa,eAAgB,YAAa,aAAc,YAAa,uBAAwB,YAC7F,aAAc,YAAa,YAAa,cAAe,gBAAiB,eAAgB,iBACxF,iBAAkB,iBAAkB,cAAe,YAAa,QAAS,UAAW,mBACpF,aAAc,eAAgB,eAAgB,iBAAkB,kBAAmB,oBACnF,kBAAmB,kBAAmB,eAAgB,YAAa,YAAa,WAAY,cAC5F,UAAW,YAAa,YAAa,SAAU,gBAAiB,YAAa,gBAAiB,gBAC9F,aAAc,YAAa,OAAQ,OAAQ,OAAQ,aAAc,YAAa,YAAa,cAAe,SAC1G,aAAc,WAAY,WAAY,SAAU,UAAW,YAAa,YAAa,YAAa,OAClG,cAAe,YAAa,MAAO,UAAW,SAAU,YAAa,SAAU,QAAS,aAAc,cAEtG,eAAgB,gBAAiB,eAAgB,aAAc,aAAc,kBAAmB,eAChG,aAAc,cAAe,WAAY,YAAa,gBAAiB,iBAAkB,kBACzF,sBAAuB,iBAAkB,WAAY,OAAQ,WAAY,YAAa,mBACtF,aAAc,kBAAmB,oBAAqB,eAAgB,SAAU,cAAe,aAE/F,gBAEA,eAAgB,gBAgBV,SAASk1F,GAASxsG,GAExB,OAAKA,EAAO+xD,WAAY,KAChBk6C,GAAiBzmG,KAAMxF,GAG1BA,EAAO+xD,WAAY,OAChBm6C,GAAiB1mG,KAAMxF,IAAYmsG,GAAkB3mG,KAAMxF,GAG9DA,EAAO+xD,WAAY,OAChBq6C,GAAiB5mG,KAAMxF,IAAYqsG,GAAkB7mG,KAAMxF,GAI5DusG,GAAY/6F,IAAKxR,EAAOkM,cAChC,CAEA,MAAMugG,GAAkB,CAAE,OAAQ,SAAU,SAAU,SAAU,QAAS,SAAU,SAAU,QAAS,QAAS,UAKxG,SAASC,GAAa1sG,GAC5B,OAAOysG,GAAgB/2E,SAAU11B,EAClC,CAEA,MAAM2sG,GAAe,gFAKd,SAAS,GAAU3sG,GACzB,OAAO2sG,GAAannG,KAAMxF,EAC3B,CAEA,MAAM4sG,GAA0B,6BAKzB,SAASC,GAAc7sG,GAC7B,OAAO4sG,GAAwBpnG,KAAMxF,EACtC,CAEA,MAAM8sG,GAAe,CAAE,WAAY,WAAY,SAAU,QAAS,QAAS,aAKpE,SAASC,GAAU/sG,GACzB,OAAO8sG,GAAap3E,SAAU11B,EAC/B,CAEA,MAAMgtG,GAAiB,CAAE,SAAU,MAAO,SAAU,OAAQ,SAKrD,SAASC,GAAYjtG,GAC3B,OAAOgtG,GAAet3E,SAAU11B,EACjC,CAEA,MAAMktG,GAAmB,CAAE,QAAS,SAAU,SAKvC,SAASC,GAAcntG,GAC7B,OAAOktG,GAAiBx3E,SAAU11B,EACnC,CAEA,MAAMotG,GAAY,SAKX,SAASC,GAAOrtG,GACtB,OAAOotG,GAAU5nG,KAAMxF,EACxB,CAKO,SAASstG,GAAmBvxG,EAAgB,IAClD,GAAe,KAAVA,EACJ,MAAO,CAAE6pB,SAAK,EAAWE,WAAO,EAAWE,YAAQ,EAAWE,UAAM,GAGrE,MAAMvX,EAAS4+F,GAAoBxxG,GAE7B6pB,EAAMjX,EAAQ,GACdqX,EAASrX,EAAQ,IAAOiX,EACxBE,EAAQnX,EAAQ,IAAOiX,EAG7B,MAAO,CAAEA,MAAKI,SAAQF,QAAOI,KAFhBvX,EAAQ,IAAOmX,EAG7B,CAUO,SAAS,GAAyB0nF,GACxC,OAASzxG,IACR,MAAM,IAAE6pB,EAAG,MAAEE,EAAK,OAAEE,EAAM,KAAEE,GAASnqB,EAE/B0xG,EAAqC,GAsB3C,MApBM,CAAE7nF,EAAKE,EAAOI,EAAMF,GAAS/L,OAAOle,KAAWA,IAiBpD0xG,EAAQtqG,KAAM,CAAEqqG,EAAgBE,GAA2B3xG,MAhBtD6pB,GACJ6nF,EAAQtqG,KAAM,CAAEqqG,EAAiB,OAAQ5nF,IAGrCE,GACJ2nF,EAAQtqG,KAAM,CAAEqqG,EAAiB,SAAU1nF,IAGvCE,GACJynF,EAAQtqG,KAAM,CAAEqqG,EAAiB,UAAWxnF,IAGxCE,GACJunF,EAAQtqG,KAAM,CAAEqqG,EAAiB,QAAStnF,KAMrCunF,CAAO,CAEhB,CAWO,SAASC,IAA2B,IAAE9nF,EAAG,MAAEE,EAAK,OAAEE,EAAM,KAAEE,IAChE,MAAMynF,EAAM,GAYZ,OAVKznF,IAASJ,EACb6nF,EAAIxqG,KAAMyiB,EAAKE,EAAOE,EAAQE,GACnBF,IAAWJ,EACtB+nF,EAAIxqG,KAAMyiB,EAAKE,EAAOE,GACXF,IAAUF,EACrB+nF,EAAIxqG,KAAMyiB,EAAKE,GAEf6nF,EAAIxqG,KAAMyiB,GAGJ+nF,EAAIltG,KAAM,IAClB,CA0BO,SAAS8sG,GAAoBvtG,GACnC,MAAM6M,EAAU7M,EAAO26B,SAAU2xE,IAEjC,OAAOpoG,MAAMrB,KAAMgK,GAAUtM,KAAKxC,GAAKA,EAAG,IAC3C,CC9NO,SAAS,GAAoB21C,GACnCA,EAAgBxB,cAAe,cAQxBn2C,IACN,MAAM6xG,EAMF,CAAC,EAEC/qF,EAAQ0qF,GAAoBxxG,GAElC,UAAY+mB,KAAQD,EACdkqF,GAAUjqF,IACd8qF,EAAWnlD,OAASmlD,EAAWnlD,QAAU,GAEzCmlD,EAAWnlD,OAAOtlD,KAAM2f,IACbmqF,GAAYnqF,IACvB8qF,EAAW5iF,SAAW4iF,EAAW5iF,UAAY,GAE7C4iF,EAAW5iF,SAAS7nB,KAAM2f,IACfqqF,GAAcrqF,GACzB8qF,EAAWC,WAAa/qF,EACb0pF,GAAS1pF,GACpB8qF,EAAW/tG,MAAQijB,EACRuqF,GAAOvqF,KAClB8qF,EAAWvtC,MAAQv9C,GAIrB,MAAO,CACN9f,KAAM,aACNjH,MAAO6xG,EACP,IAvCFl6D,EAAgBxB,cAAe,oBA4CxBn2C,IAAA,CAAaiH,KAAM,mBAAoBjH,YA3C9C23C,EAAgBrB,WAAY,cA+CrBt2C,IACN,MAAMyvG,EAAiC,GAIvC,OAFAA,EAAIroG,KAAM,CAAE,mBAAsBpH,EAAkB8D,QAE7C2rG,CAAG,IAlDX93D,EAAgBpB,iBAAkB,aAAc,CAAE,oBACnD,CCIO,SAAS,GAAgBoB,GAC/BA,EAAgBxB,cAAe,UAoFxBn2C,IACN,MAAM,MAAE8D,EAAK,MAAE+I,EAAK,MAAE8d,GAAUonF,GAA0B/xG,GAE1D,MAAO,CACNiH,KAAM,SACNjH,MAAO,CACN8D,MAAOytG,GAAmBztG,GAC1B+I,MAAO0kG,GAAmB1kG,GAC1B8d,MAAO4mF,GAAmB5mF,IAE3B,IA3FFgtB,EAAgBxB,cAAe,aAAc67D,GAA6B,QAC1Er6D,EAAgBxB,cAAe,eAAgB67D,GAA6B,UAC5Er6D,EAAgBxB,cAAe,gBAAiB67D,GAA6B,WAC7Er6D,EAAgBxB,cAAe,cAAe67D,GAA6B,SAG3Er6D,EAAgBxB,cAAe,eAAgB87D,GAA6B,UAC5Et6D,EAAgBxB,cAAe,eAAgB87D,GAA6B,UAC5Et6D,EAAgBxB,cAAe,eAAgB87D,GAA6B,UAG5Et6D,EAAgBxB,cAAe,mBAAoB+7D,GAAqC,QAAS,QACjGv6D,EAAgBxB,cAAe,mBAAoB+7D,GAAqC,QAAS,QACjGv6D,EAAgBxB,cAAe,mBAAoB+7D,GAAqC,QAAS,QAEjGv6D,EAAgBxB,cAAe,qBAAsB+7D,GAAqC,QAAS,UACnGv6D,EAAgBxB,cAAe,qBAAsB+7D,GAAqC,QAAS,UACnGv6D,EAAgBxB,cAAe,qBAAsB+7D,GAAqC,QAAS,UAEnGv6D,EAAgBxB,cAAe,sBAAuB+7D,GAAqC,QAAS,WACpGv6D,EAAgBxB,cAAe,sBAAuB+7D,GAAqC,QAAS,WACpGv6D,EAAgBxB,cAAe,sBAAuB+7D,GAAqC,QAAS,WAEpGv6D,EAAgBxB,cAAe,oBAAqB+7D,GAAqC,QAAS,SAClGv6D,EAAgBxB,cAAe,oBAAqB+7D,GAAqC,QAAS,SAClGv6D,EAAgBxB,cAAe,oBAAqB+7D,GAAqC,QAAS,SAElGv6D,EAAgBvB,aAAc,aAAc+7D,GAA4B,QACxEx6D,EAAgBvB,aAAc,eAAgB+7D,GAA4B,UAC1Ex6D,EAAgBvB,aAAc,gBAAiB+7D,GAA4B,WAC3Ex6D,EAAgBvB,aAAc,cAAe+7D,GAA4B,SAEzEx6D,EAAgBvB,aAAc,mBAAoB,oBAClDuB,EAAgBvB,aAAc,qBAAsB,sBACpDuB,EAAgBvB,aAAc,sBAAuB,uBACrDuB,EAAgBvB,aAAc,oBAAqB,qBAEnDuB,EAAgBvB,aAAc,mBAAoB,oBAClDuB,EAAgBvB,aAAc,qBAAsB,sBACpDuB,EAAgBvB,aAAc,sBAAuB,uBACrDuB,EAAgBvB,aAAc,oBAAqB,qBAEnDuB,EAAgBvB,aAAc,mBAAoB,oBAClDuB,EAAgBvB,aAAc,qBAAsB,sBACpDuB,EAAgBvB,aAAc,sBAAuB,uBACrDuB,EAAgBvB,aAAc,oBAAqB,qBAEnDuB,EAAgBrB,WAAY,eAAgB,GAAyB,iBACrEqB,EAAgBrB,WAAY,eAAgB,GAAyB,iBACrEqB,EAAgBrB,WAAY,eAAgB,GAAyB,iBACrEqB,EAAgBrB,WAAY,aAAc87D,GAA0B,QACpEz6D,EAAgBrB,WAAY,eAAgB87D,GAA0B,UACtEz6D,EAAgBrB,WAAY,gBAAiB87D,GAA0B,WACvEz6D,EAAgBrB,WAAY,cAAe87D,GAA0B,SACrEz6D,EAAgBrB,WAAY,SA8K7B,WACC,OAAOt2C,IACN,MAAMqyG,EAAYC,GAAuBtyG,EAAO,OAC1CuyG,EAAcD,GAAuBtyG,EAAO,SAC5CwyG,EAAeF,GAAuBtyG,EAAO,UAC7CyyG,EAAaH,GAAuBtyG,EAAO,QAE3C0yG,EAAe,CAAEL,EAAWE,EAAaC,EAAcC,GAEvDE,EAAqB,CAC1BhoF,MAAOioF,EAA6BF,EAAc,SAClD7lG,MAAO+lG,EAA6BF,EAAc,SAClD5uG,MAAO8uG,EAA6BF,EAAc,UAI7CG,EAAqBC,GAAsBH,EAAoB,OAErE,GAAKE,EAAmB/yG,OACvB,OAAO+yG,EAgBR,MAAO,IAZmBr0G,OAAOoiB,QAAS+xF,GAAqBx8E,QAAQ,CAAE48E,GAAqBpgG,EAAM3S,MAC9FA,IACJ+yG,EAAkB3rG,KAAM,CAAE,UAAWuL,IAAS3S,IAG9C0yG,EAAattG,SAASyH,UAAgBA,EAAO8F,MAGvCogG,IACL,OAKCD,GAAsBT,EAAW,UACjCS,GAAsBP,EAAa,YACnCO,GAAsBN,EAAc,aACpCM,GAAsBL,EAAY,QACrC,EAMF,SAASG,EAA6B9vE,EAAuBnwB,GAC5D,OAAOmwB,EACLt+B,KAAKqI,GAASA,EAAO8F,KACrBwjB,QAAQ,CAAExwB,EAAQkH,IAAWlH,GAAUkH,EAAQlH,EAAS,MAC3D,CACD,CAlOuCqtG,IAEtCr7D,EAAgBpB,iBAAkB,SAAU,CAC3C,eAAgB,eAAgB,eAChC,aAAc,eAAgB,gBAAiB,cAC/C,mBAAoB,qBAAsB,sBAAuB,oBACjE,mBAAoB,qBAAsB,sBAAuB,oBACjE,mBAAoB,qBAAsB,sBAAuB,sBAGlEoB,EAAgBpB,iBAAkB,eAAgB,CACjD,mBAAoB,qBAAsB,sBAAuB,sBAElEoB,EAAgBpB,iBAAkB,eAAgB,CACjD,mBAAoB,qBAAsB,sBAAuB,sBAElEoB,EAAgBpB,iBAAkB,eAAgB,CACjD,mBAAoB,qBAAsB,sBAAuB,sBAGlEoB,EAAgBpB,iBAAkB,aAAc,CAAE,mBAAoB,mBAAoB,qBAC1FoB,EAAgBpB,iBAAkB,eAAgB,CAAE,qBAAsB,qBAAsB,uBAChGoB,EAAgBpB,iBAAkB,gBAAiB,CAAE,sBAAuB,sBAAuB,wBACnGoB,EAAgBpB,iBAAkB,cAAe,CAAE,oBAAqB,oBAAqB,qBAC9F,CAiBA,SAASy7D,GAA6Bva,GACrC,OAAOz3F,IACN,MAAM,MAAE8D,EAAK,MAAE+I,EAAK,MAAE8d,GAAUonF,GAA0B/xG,GAEpDizG,EAAqC,CAAC,EAc5C,YAZe,IAAVnvG,IACJmvG,EAAOnvG,MAAQ,CAAE,CAAE2zF,GAAQ3zF,SAGb,IAAV+I,IACJomG,EAAOpmG,MAAQ,CAAE,CAAE4qF,GAAQ5qF,SAGb,IAAV8d,IACJsoF,EAAOtoF,MAAQ,CAAE,CAAE8sE,GAAQ9sE,IAGrB,CACN1jB,KAAM,SACNjH,MAAOizG,EACP,CAEH,CAEA,SAAShB,GAA6Bv2F,GACrC,OAAO1b,IACC,CACNiH,KAAM,SACNjH,MAAOkzG,GAA2BlzG,EAAO0b,IAG5C,CAEA,SAASw3F,GAA2BlzG,EAAe+a,GAClD,MAAO,CACN,CAAEA,GAAYw2F,GAAmBvxG,GAEnC,CAEA,SAASkyG,GAAqCn3F,EAAkB08E,GAC/D,OAAOz3F,IACC,CACNiH,KAAM,SACNjH,MAAO,CACN,CAAE+a,GAAY,CACb,CAAE08E,GAAQz3F,KAKf,CAEA,SAASmyG,GAA4BgB,GACpC,MAAO,CAAE3pG,EAAMs5B,KACd,GAAKA,EAAOmwE,OACX,OAAOX,GAAuBxvE,EAAOmwE,OAAQE,EAC9C,CAEF,CAEA,SAASb,GAAuBW,EAAaE,GAC5C,MAAMnzG,EAAoB,CAAC,EAc3B,OAZKizG,EAAOtoF,OAASsoF,EAAOtoF,MAAOwoF,KAClCnzG,EAAM2qB,MAAQsoF,EAAOtoF,MAAOwoF,IAGxBF,EAAOpmG,OAASomG,EAAOpmG,MAAOsmG,KAClCnzG,EAAM6M,MAAQomG,EAAOpmG,MAAOsmG,IAGxBF,EAAOnvG,OAASmvG,EAAOnvG,MAAOqvG,KAClCnzG,EAAM8D,MAAQmvG,EAAOnvG,MAAOqvG,IAGtBnzG,CACR,CAEA,SAAS+xG,GAA0B9tG,GAClC,MAAM0B,EAIF,CAAC,EAECmhB,EAAQ0qF,GAAoBvtG,GAElC,UAAY8iB,KAAQD,EACd,GAAUC,IAAU,oBAAoBtd,KAAMsd,GAClDphB,EAAOglB,MAAQ5D,EACJ4pF,GAAa5pF,GACxBphB,EAAOkH,MAAQka,EAEfphB,EAAO7B,MAAQijB,EAIjB,OAAOphB,CACR,CAwFA,SAASysG,GAA0Be,GAClC,OAAOnzG,GAAS8yG,GAAsB9yG,EAAOmzG,EAC9C,CAaA,SAASL,GAAsB9yG,EAAYmzG,GAC1C,MAAMC,EAAc,GAcpB,GAZKpzG,GAAWA,EAAM2qB,OACrByoF,EAAYhsG,KAAM,SAGdpH,GAAWA,EAAM6M,OACrBumG,EAAYhsG,KAAM,SAGdpH,GAAWA,EAAM8D,OACrBsvG,EAAYhsG,KAAM,SAGQ,GAAtBgsG,EAAYtzG,OAAc,CAC9B,MAAMuzG,EAAcD,EAAY5uG,KAAKiD,GAAQzH,EAAOyH,KAAS/C,KAAM,KAEnE,MAAO,CACG,OAATyuG,EAAiB,CAAE,SAAUE,GAAgB,CAAE,UAAWF,IAAUE,GAEtE,CAGA,MAAc,OAATF,EACG,GAGDC,EAAY5uG,KAAKmO,GAChB,CAAE,UAAWwgG,KAAWxgG,IAAS3S,EAAO2S,KAEjD,CC3We,MAAM2gG,GAIZC,UAKR,WAAAhqG,GACC/B,KAAK+rG,UAAY,IAAIr6F,GACtB,CAOO,GAAAxD,CACNo3B,EACAlE,GAEAphC,KAAK+rG,UAAUn6F,IAAK0zB,EAAalE,EAClC,CAOO,GAAAh5B,CAA2Bk9B,GACjC,OAAOtlC,KAAK+rG,UAAU3jG,IAAKk9B,EAC5B,CASO,OAAArE,CACNqE,KACG0mE,GAEH,MAAM5qE,EAAUphC,KAAKoI,IAAKk9B,GAE1B,IAAMlE,EAOL,MAAM,IAAI1zB,EAAe,sCAAuC1N,KAAM,CAAEslC,gBAGzE,OAAOlE,EAAQH,WAAY+qE,EAC5B,CAKA,MAAQ5sF,SACApf,KAAK+rG,UAAU90G,MACvB,CAKA,SAAQg1G,SACAjsG,KAAK+rG,UAAU3gG,QACvB,CAOA,CAAStK,OAAOC,YACf,OAAOf,KAAK+rG,UAAWjrG,OAAOC,WAC/B,CAKO,OAAAknB,GACN,UAAYmZ,KAAWphC,KAAKisG,WAC3B7qE,EAAQnZ,SAEV,EC7FD,MAAMikF,GAAsB,iBACfC,GAAmB,SAWjB,MAAMC,GAkBJC,eAAiC,IAAI36F,IAKpC46F,QAKjB,WAAAvqG,CAAag+B,GACZ//B,KAAKssG,QAAUvsE,EACf,MAAMwsE,EAAmBxsE,EAAOpV,OAAOviB,IAAK,qBAEtCpN,EAAI+kC,EAAOxC,OAAOviC,EAExBgF,KAAKwsG,yBAA0B,CAC9B3sG,GAAIqsG,GACJzzD,MAAOz9C,EAAG,8BACV8tE,YAAa9tE,EAAG,kFAGjB,MAAMyxG,EAAuB,CAC5B,CACCh0D,MAAOz9C,EAAG,qDACVszB,UAAW,OAEZ,CACCmqB,MAAOz9C,EAAG,sCACVszB,UAAW,SAEZ,CACCmqB,MAAOz9C,EAAG,0DACVszB,UAAW,CAAE,CAAE,OAAS,CAAE,eAE3B,CACCmqB,MAAOz9C,EAAG,wDACVszB,UAAW,UACXo+E,cAAc,GAEf,CACCj0D,MAAOz9C,EAAG,4CACVszB,UAAW,CAAE,CAAE,WAAa,CAAE,cAAgB,CAAE,aAAe,CAAE,eAElE,CAECmqB,MAAOz9C,EAAG,sIACVszB,UAAW,CAAE,CAAE,SAAW,CAAE,YAIzBi+E,GACJE,EAAqB7sG,KACpB,CACC64C,MAAOz9C,EAAG,0DACVszB,UAAW,SACXo+E,cAAc,IAKjB1sG,KAAKwsG,yBAA0B,CAC9B3sG,GAAI,aACJ44C,MAAOz9C,EAAG,oDACV8tE,YAAa9tE,EAAG,gGAChB6kD,OAAQ,CACP,CACChgD,GAAI,SACJ8sG,WAAYF,KAIhB,CAmDO,wBAAAD,EAA0B,GAAE3sG,EAAE,MAAE44C,EAAK,YAAEqwB,EAAW,OAAEjpB,IAC1D7/C,KAAKqsG,eAAez6F,IAAK/R,EAAI,CAC5BA,KACA44C,QACAqwB,cACAjpB,OAAQ,IAAInuC,MAGb1R,KAAK4sG,sBAAuB,CAC3BC,WAAYhtG,EACZA,GAAIssG,KAGAtsD,GACJA,EAAOjiD,SAASqmD,IACfjkD,KAAK4sG,sBAAuB,CAC3BC,WAAYhtG,KACTokD,GACD,GAGN,CAwCO,qBAAA2oD,EAAuB,WAC7BC,EAAaX,GAAmB,GAChCrsG,EAAE,MACF44C,EAAK,WACLk0D,IAEA,MAAMG,EAAW9sG,KAAKqsG,eAAejkG,IAAKykG,GAE1C,IAAMC,EACL,MAAM,IAAIp/F,EAAe,gDAAiD1N,KAAKssG,QAAS,CAAES,QAASltG,EAAIgtG,eAGxGC,EAASjtD,OAAOjuC,IAAK/R,EAAI,CACxBA,KACA44C,QACAk0D,WAAYA,GAAc,IAE5B,CAiFO,iBAAAK,EAAmB,WACzBH,EAAaX,GAAmB,QAChCa,EAAUZ,GAAgB,WAC1BQ,IAEA,IAAM3sG,KAAKqsG,eAAep+F,IAAK4+F,GAU9B,MAAM,IAAIn/F,EAAe,gDAAiD1N,KAAKssG,QAAS,CAAEO,aAAYF,eAGvG,MAAMG,EAAW9sG,KAAKqsG,eAAejkG,IAAKykG,GAE1C,IAAMC,EAASjtD,OAAO5xC,IAAK8+F,GAY1B,MAAM,IAAIr/F,EAAe,6CAA8C1N,KAAKssG,QAAS,CAAES,UAASF,aAAYF,eAG7GG,EAASjtD,OAAOz3C,IAAK2kG,GAAWJ,WAAW/sG,QAAS+sG,EACrD,ECjTc,MAAeM,WAA+B35F,KAI5C45F,cAeAjB,SAUAthF,OAOAtsB,WAMAyE,KAMAqqG,QAKA5vE,OAOAnlC,MASAiqC,QA0BAsqE,WAOA3xG,EAgDhB,qBAgDA,sBAWmB0mC,SAKA0rE,eASnB,WAAArrG,CAAa4oB,EAAuB,CAAC,GACpC9c,QAEA,MAAM9L,EAAc/B,KAAK+B,aAIjBsvB,aAAcg8E,KAAwB1oE,GAAkB5iC,EAAY4iC,eAAiB,CAAC,GACxF,aAAEtT,EAAeg8E,KAAwB3oE,GAAS/Z,EAGlDwG,EAAWxG,EAAOwG,UAAYwT,EAAcxT,SAElDnxB,KAAK0hC,SAAW/W,EAAOhd,SAAW,IAAI42B,GAAS,CAAEpT,WAAUE,iBAC3DrxB,KAAK0hC,SAASsD,WAAYhlC,MAAO2qB,EAAOhd,SAIxC,MAAMm0B,EAAmBnhC,MAAMrB,KAAMyC,EAAY6iC,gBAAkB,IAEnE5kC,KAAK2qB,OAAS,IAAI/L,GAAsB8lB,EAAMC,GAC9C3kC,KAAK2qB,OAAOj0B,OAAQ,UAAWorC,GAC/B9hC,KAAK2qB,OAAOj0B,OAAQsJ,KAAK0hC,SAASyD,oBAElCnlC,KAAKqiC,QAAU,IAAIZ,GAA0BzhC,KAAM8hC,EAAkB9hC,KAAK0hC,SAASW,SAEnFriC,KAAKu9B,OAASv9B,KAAK0hC,SAASnE,OAC5Bv9B,KAAKhF,EAAIgF,KAAKu9B,OAAOviC,EAErBgF,KAAKotG,eAAiB,IAAIr5F,IAE1B/T,KAAKisG,SAAW,IAAIH,GAEpB9rG,KAAK4R,IAAK,QAAS,gBACnB5R,KAAK6P,KAAwB,SAAS,IAAQ7P,KAAK43F,MAAQ,SAAW,CAAE5qF,SAAU,SAClFhN,KAAK6P,KAA0B,WAAW,IAAQ7P,KAAK43F,MAAQ,aAAe,CAAE5qF,SAAU,SAE1FhN,KAAK5H,MAAQ,IAAIiuG,GAEjBrmG,KAAKyP,GAAI,qBAAqB,KAC7BzP,KAAK5H,MAAMoL,SAASw9B,WAAahhC,KAAKghC,UAAU,IAGjD,MAAMmP,EAAkB,IAAIrC,GAE5B9tC,KAAK8C,KAAO,IAAIykF,GAAgBvnF,KAAK5H,MAAO+3C,GAE5CnwC,KAAKmtG,QAAU,IAAIhwB,GAAmBn9E,KAAK5H,MAAO+3C,GAClDnwC,KAAKmtG,QAAQx1E,KAAKn0B,SAASwD,KAAM,cAAezH,GAAIS,MAEpDA,KAAK3B,WAAa,IAAI6qF,GAAY,CAAElpF,KAAKmtG,QAAQ/vB,mBAAoBp9E,KAAK8C,KAAKs6E,oBAAsBp9E,KAAK8C,KAAK0kF,kBAC/GxnF,KAAK3B,WAAWqrF,SAAU,eAAgB1pF,KAAK8C,KAAKs6E,oBACpDp9E,KAAK3B,WAAWqrF,SAAU,kBAAmB1pF,KAAKmtG,QAAQ/vB,oBAE1Dp9E,KAAK2sG,WAAa,IAAItnE,GAAyBrlC,MAC/CA,KAAK2sG,WAAW/8F,SAAU5P,KAAKmtG,QAAQx1E,KAAKn0B,UAE5CxD,KAAKktG,cAAgB,IAAId,GAAepsG,KACzC,CAuBA,cAAWghC,GACV,OAAOhhC,KAAKotG,eAAep5F,KAAO,CACnC,CAEA,cAAWgtB,CAAYxoC,GAsBtB,MAAM,IAAIkV,EAAe,kCAC1B,CA8CO,kBAAA4/F,CAAoBC,GAC1B,GAAuB,iBAAXA,GAAyC,iBAAXA,EAMzC,MAAM,IAAI7/F,EAAe,mCAAoC,KAAM,CAAE6/F,WAGjEvtG,KAAKotG,eAAen/F,IAAKs/F,KAI9BvtG,KAAKotG,eAAel/F,IAAKq/F,GAES,IAA7BvtG,KAAKotG,eAAep5F,MAExBhU,KAAK4Q,KAAsC,oBAAqB,cAAc,GAAM,GAEtF,CASO,mBAAA48F,CAAqBD,GAC3B,GAAuB,iBAAXA,GAAyC,iBAAXA,EACzC,MAAM,IAAI7/F,EAAe,mCAAoC,KAAM,CAAE6/F,WAGhEvtG,KAAKotG,eAAen/F,IAAKs/F,KAI/BvtG,KAAKotG,eAAet7F,OAAQy7F,GAEM,IAA7BvtG,KAAKotG,eAAep5F,MAExBhU,KAAK4Q,KAAsC,oBAAqB,cAAc,GAAO,GAEvF,CAyBO,OAAA8rD,CAAS55D,GACf9C,KAAK8C,KAAK8O,IAAK9O,EAChB,CA6BO,OAAA25D,CAASl4D,GAKf,OAAOvE,KAAK8C,KAAKsF,IAAK7D,EACvB,CAOO,WAAAg/B,GACN,MAAM5Y,EAAS3qB,KAAK2qB,OACd0X,EAAU1X,EAAOviB,IAAK,WACtBqlG,EAAgB9iF,EAAOviB,IAAK,kBAAqB,GACjDslG,EAAe/iF,EAAOviB,IAAK,iBAAoB,GAC/Cg7B,EAAoBzY,EAAOviB,IAAK,sBAAyB,GAE/D,OAAOpI,KAAKqiC,QAAQD,KAAMC,EAAQliC,OAAQutG,GAAgBD,EAAerqE,EAC1E,CAWO,OAAAnb,GACN,IAAI0lF,EAAiCxpE,QAAQnnB,UAM7C,MAJmB,gBAAdhd,KAAK43F,QACT+V,EAAe,IAAIxpE,SAASnnB,GAAWhd,KAAK6P,KAAwB,QAASmN,MAGvE2wF,EACLnqE,MAAM,KACNxjC,KAAK4Q,KAA0B,WAC/B5Q,KAAK+P,gBACL/P,KAAKisG,SAAShkF,SAAS,IAEvBub,MAAM,IAAMxjC,KAAKqiC,QAAQpa,YACzBub,MAAM,KACNxjC,KAAK5H,MAAM6vB,UACXjoB,KAAK8C,KAAKmlB,UACVjoB,KAAKmtG,QAAQllF,UACbjoB,KAAK2sG,WAAW1kF,SAAS,IAIzBub,MAAM,IAAMxjC,KAAK0hC,SAASwD,cAAellC,OAC5C,CAeO,OAAAihC,CACNqE,KACG0mE,GAEH,IACC,OAAOhsG,KAAKisG,SAAShrE,QAASqE,KAAgB0mE,EAC/C,CAAE,MAAQxqG,GAGTkM,EAAcc,uBAAwBhN,EAAKxB,KAC5C,CACD,CAWO,KAAAy/B,GACNz/B,KAAKmtG,QAAQx1E,KAAK8H,OACnB,CAeA,aAAc1hB,IAAW7hB,GACxB,MAAM,IAAI7D,MAAO,8BAClB,EC3mBc,SAASu1G,GAAc7tE,GACrC,IAAM,GAAYA,EAAO8tE,qBAOxB,MAAM,IAAIngG,EACT,4CACAqyB,GAIF,MAAM0rD,EAAgB1rD,EAAO0rD,cAG7B,GA+BD,SAAqBA,GACpB,QAASA,GAAyD,aAAxCA,EAAcngC,QAAQ3iD,aACjD,CAjCMmlG,CAAYriB,IAAmBA,EAAcsiB,KAAO,CACxD,IAAIC,EACJ,MAAMD,EAAOtiB,EAAcsiB,KACrBE,EAAW,IAAMluE,EAAO8tE,sBAIzB,GAAYE,EAAKG,UACrBF,EAAiBD,EAAKG,OAEtBH,EAAKG,OAAS,KACbD,IACAD,EAAe/8F,MAAO88F,EAAM,GAK9BA,EAAKr9F,iBAAkB,SAAUu9F,GAIjCluE,EAAOtwB,GAAwB,WAAW,KACzCs+F,EAAKp9F,oBAAqB,SAAUs9F,GAE/BD,IACJD,EAAKG,OAASF,EACf,GAEF,CACD,CCjDe,SAASG,GAAmDzpG,GAuC1E,OAtCA,cAA6BA,EACrB+mF,cAEA,mBAAAoiB,CAAqB/qG,GAC3B,IAAM9C,KAAKyrF,cASV,MAAM,IAAI/9E,EACT,+BACA1N,MAIF,MAAMouG,EAA4BpuG,KAAK2qB,OAAOviB,IAAK,gCAC7CimG,EAA0BruG,KAAKyrF,yBAAyBxpE,oBAM9D,IAAMmsF,IAA8BC,EAGnC,YAFA/lF,GAAkBtoB,KAAKyrF,cAAe,IAKvC,MAAM6iB,EAA4B,iBAATxrG,EAAoBA,EAAO9C,KAAK8C,KAAKsF,MAE9DkgB,GAAkBtoB,KAAKyrF,cAAe6iB,EACvC,EAIF,CAGEH,GAAyBN,oBAAwBM,GAA0Bn3G,QAAS6K,UAAUgsG,oBCiFtF/sG,OAAOC,SCjJjB,MC0Ha,GAAQ,CACpBwtG,KC3HD,suBD4HC33E,OD5HD,wRC6HC43E,QE7HD,sVF8HCC,MG9HD,8OH+HCC,II/HD,ymBJgICC,aKhID,igBLiICC,OMjID,qVNkICjf,QOlID,gfPmIC7yB,MQnID,yYRoIC+xC,YSpID,q7BTqICC,kBUrID,8rBVsICC,SWtID,6uCXuICC,UYvID,6lDZwICC,gBaxID,qyBbyICC,MczID,2Md0ICC,ce1ID,yNf2ICC,UgB3ID,2NhB4ICC,aiB5ID,wkBjB6ICt3B,UkB7ID,yMlB8ICu3B,KmB9ID,+KnB+ICj3E,KoB/ID,qXpBiJCk3E,YqBjJD,4TrBkJCC,YsBlJD,qiBtBmJCC,SuBnJD,+TvBoJCC,UwBpJD,8XxBqJCC,YyBrJD,oYzBsJCC,W0BtJD,iY1BuJCC,a2BvJD,6X3ByJCC,W4BzJD,4S5B0JCC,a6B1JD,sP7B2JCC,Y8B3JD,6R9B4JCC,gB+B5JD,8O/B6JCC,agC7JD,0QhC8JCC,gBiC9JD,sPjC+JCC,iBkC/JD,sPlCiKCC,iBmCjKD,mzBnCkKCC,eoClKD,kzBpCmKCC,gBqCnKD,iuBrCoKCC,gBsCpKD,+tBtCqKCC,iBuCrKD,+tBvCuKCC,OwCvKD,ifxCwKCC,QyCxKD,+LzCyKChlE,M0CzKD,mZ1C0KCilE,kB2C1KD,gL3C2KCC,c4C3KD,gZ5C6KCC,K6C7KD,6U7C8KCC,K8C9KD,6U9CgLCC,a+ChLD,gc/CiLCC,agDjLD,6ZhDkLCC,SiDlLD,6mBjDoLCC,UkDpLD,ivBlDsLCC,YmDtLD,6cnDwLCC,SoDxLD,kQpDyLCC,SqDzLD,+uBrD0LCC,SsD1LD,u7BtD2LCC,SuD3LD,gWvD4LCC,SwD5LD,0pBxD6LCC,SyD7LD,03BzD+LCC,e0D/LD,6F1DiMCjjD,K2DjMD,kpB3DmMCkjD,O4DnMD,wY5DoMCC,Q6DpMD,sY7DsMCC,M8DtMD,sU,eCGI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQx0E,OCQR,MAAMy0E,WAAiB10E,GA+DrC,oCAA6D,CAC5D,qBAAsB,iBAAkB,YAAa,YAAa,QAAS,sBAC3E,8BAA+B,kBAAmB,SAAU,YAAa,UAAW,oBAAqB,OAAQ,eACjH,YAAa,SAAU,cAAe,gBAAiB,cAAe,YAAa,mBAAoB,eAAgB,aACvH,eAAgB,cAAe,kBAAmB,iBAAkB,iBAAkB,aAAc,aAAc,eAClH,OAAQ,UAAW,WAAY,cAAe,iBAAkB,kBAAmB,aAAc,eAAgB,SACjH,mBAAoB,oBAAqB,iBAAkB,kBAAmB,oBAAqB,iBAAkB,eACrH,cAAe,kBAAmB,gBAAiB,iBAAkB,YAAa,eAAgB,gBAClG,aAAc,cAAe,eAAgB,gBAM9C,WAAAt7B,GACC8L,QAEA,MAAM7G,EAAOhH,KAAK69B,aAElB79B,KAAK4R,IAAK,UAAW,IACrB5R,KAAK4R,IAAK,UAAW,aACrB5R,KAAK4R,IAAK,YAAa,IACvB5R,KAAK4R,IAAK,oBAAoB,GAC9B5R,KAAK4R,IAAK,aAAa,GAEvB5R,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLqgB,GAAI,6BACJ7yB,WAAY,CACXs5B,MAAO,CACN,KACA,UACA73B,EAAKuyB,GAAI,YAAa,aAAa/gC,IAAUA,IAI7C,wBAIAwO,EAAKuyB,GAAI,mBAAoB,0BAE9By4E,QAAShrG,EAAKzH,GAAI,aAGrB,CAKgB,MAAA24B,GACfrqB,MAAMqqB,SAENl4B,KAAKiyG,oBACLjyG,KAAKkyG,kBAILlyG,KAAKyP,GAA2B,kBAAkB,KACjDzP,KAAKiyG,oBACLjyG,KAAKkyG,iBAAiB,IAGvBlyG,KAAKyP,GAA2B,oBAAoB,KACnDzP,KAAKkyG,iBAAiB,GAExB,CAKQ,iBAAAD,GACP,GAAKjyG,KAAKE,QAAU,CACnB,MACMiyG,GADS,IAAIxjD,WAAYC,gBAAiB5uD,KAAKE,QAAQquB,OAAQ,iBAClDzqB,cAAe,OAC5BkuG,EAAUG,EAAIz3E,aAAc,WAE7Bs3E,IACJhyG,KAAKgyG,QAAUA,GAKhB,UAAY,KAAEhwG,EAAI,MAAExJ,KAAWmI,MAAMrB,KAAM6yG,EAAI5sG,YACzCwsG,GAASK,6BAA6BjgF,SAAUnwB,IACpDhC,KAAK+W,QAAStR,aAAczD,EAAMxJ,GAIpC,KAAQwH,KAAK+W,QAASpQ,YACrB3G,KAAK+W,QAASxQ,YAAavG,KAAK+W,QAASpQ,YAG1C,KAAQwrG,EAAI7rG,WAAWhO,OAAS,GAC/B0H,KAAK+W,QAASpR,YAAawsG,EAAI7rG,WAAY,GAE7C,CACD,CAKQ,eAAA4rG,GACFlyG,KAAKqyG,WACTryG,KAAK+W,QAASu7F,iBAAkB,kBAAmB10G,SAAS6B,IACzDA,EAAsB4F,MAAM2F,KAAOhL,KAAKqyG,SAAS,GAGtD,EC/Kc,MAAME,WAAwBl1E,GAmB5C,WAAAt7B,GACC8L,QAEA7N,KAAK4R,IAAK,CACTvM,WAAO,EACPgzB,UAAM,EACNx4B,QAAI,IAGL,MAAMmH,EAAOhH,KAAK69B,aAElB79B,KAAKi+B,YAAa,CACjBlmB,IAAK,OAELxS,WAAY,CACXs5B,MAAO,CACN,KACA,oBAEDx5B,MAAO2B,EAAKzH,GAAI,SAChBM,GAAImH,EAAKzH,GAAI,OAGd2Y,SAAU,CACT,CACCmgB,KAAMrxB,EAAKzH,GAAI,WAInB,E,eC7DG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ+9B,OCmCR,MAAM,WAAmBD,GAIvBnlB,SAQAs6F,UAMAC,SAOAC,cA8GRC,cAAgD,KASxD,WAAA5wG,CAAaw7B,EAAiBi1E,EAAyB,IAAID,IAC1D1kG,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aACZ+0E,EAAelmG,IAGrB1M,KAAK4R,IAAK,iBAAa,GACvB5R,KAAK4R,IAAK,iBAAkB,yBAA0BghG,KACtD5yG,KAAK4R,IAAK,aAAS,GACnB5R,KAAK4R,IAAK,kBAAc,GACxB5R,KAAK4R,IAAK,YAAQ,GAClB5R,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,QAAQ,GAClB5R,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,gBAAgB,GAC1B5R,KAAK4R,IAAK,iBAAa,GACvB5R,KAAK4R,IAAK,aAAS,GACnB5R,KAAK4R,IAAK,YAAQ,GAClB5R,KAAK4R,IAAK,YAAa,GACvB5R,KAAK4R,IAAK,WAAW,GACrB5R,KAAK4R,IAAK,kBAAmB,KAC7B5R,KAAK4R,IAAK,OAAQ,UAClB5R,KAAK4R,IAAK,YAAY,GACtB5R,KAAK4R,IAAK,iBAAiB,GAE3B5R,KAAKkY,SAAWlY,KAAK29B,mBACrB39B,KAAKwyG,UAAYxyG,KAAK6yG,gBAAiBL,GAEvCxyG,KAAKyyG,SAAW,IAAIV,GACpB/xG,KAAKyyG,SAAS74E,eAAgB,CAC7Br0B,WAAY,CACXs5B,MAAO,qBAIT7+B,KAAK0yG,cAAgB1yG,KAAK8yG,uBAE1B9yG,KAAKgH,KAAM,kBAAmBzH,GAC7BS,KAAM,UACNA,KAAM,QACNA,KAAM,YACNA,KAAK+yG,kBAAkB/rG,KAAMhH,OAG9B,MAAM25B,EAAgD,CACrD5hB,IAAK,SAELxS,WAAY,CACXs5B,MAAO,CACN,KACA,YACA73B,EAAKzH,GAAI,SACTyH,EAAKuyB,GAAI,YAAa,eAAe/gC,IAAUA,IAC/CwO,EAAKuyB,GAAI,YAAa,aAAa/gC,IAAUA,IAC7CwO,EAAKzH,GAAI,QAAQ/G,GAASA,EAAQ,QAAU,WAC5CwO,EAAKuyB,GAAI,WAAY,uBACrBvyB,EAAKuyB,GAAI,gBAAiB,6BAE3By5E,KAAMhsG,EAAKzH,GAAI,QACf4L,KAAMnE,EAAKzH,GAAI,QAAQ/G,GAASA,GAAgB,WAChDy6G,SAAUjsG,EAAKzH,GAAI,YACnB,eAAgByH,EAAKzH,GAAI,eACzB,aAAcyH,EAAKzH,GAAI,aACvB,kBAAmByH,EAAKzH,GAAI,kBAC5B,gBAAiByH,EAAKuyB,GAAI,aAAa,GAAM/gC,IAAUA,IACvD,eAAgBwO,EAAKzH,GAAI,QAAQ/G,KAASwH,KAAKkzG,cAAex3F,SAAUljB,KACxE,wBAAyBwO,EAAKzH,GAAI,kBAClC,4BAA6ByH,EAAKzH,GAAI,oBAGvC2Y,SAAUlY,KAAKkY,SAEfzI,GAAI,CACH0jG,MAAOnsG,EAAKzH,IAAIiW,IAGVxV,KAAKmgC,UACTngC,KAAK4Q,KAA0B,WAI/B4E,EAAI2gB,gBACL,MAOE,EAAIptB,WACF/I,KAAK2yG,gBACV3yG,KAAK2yG,cAAgBn8E,IAAO,IAAMx2B,KAAKy/B,SAAS,IAGjD9F,EAASlqB,GAAG2jG,UAAYpsG,EAAKzH,IAAI,KAChCS,KAAK2yG,eAAgB,IAGtBh5E,EAASlqB,GAAG4jG,QAAUrsG,EAAKzH,IAAI,KAC9BS,KAAK2yG,cAAe/7E,QAAQ,KAI9B52B,KAAKi+B,YAAatE,EACnB,CAKgB,MAAAzB,GACfrqB,MAAMqqB,SAEDl4B,KAAKszG,OACTtzG,KAAKyyG,SAASzrG,KAAM,WAAYzH,GAAIS,KAAM,QAC1CA,KAAKkY,SAAShK,IAAKlO,KAAKyyG,WAGzBzyG,KAAKkY,SAAShK,IAAKlO,KAAKwyG,WAEnBxyG,KAAKuzG,eAAiBvzG,KAAKsuB,WAC/BtuB,KAAKkY,SAAShK,IAAKlO,KAAK0yG,cAE1B,CAKO,KAAAjzE,GACNz/B,KAAK+W,QAAS0oB,OACf,CAKgB,OAAAxX,GACVjoB,KAAK2yG,eACT3yG,KAAK2yG,cAAc/7E,SAGpB/oB,MAAMoa,SACP,CAKQ,eAAA4qF,CAAiBL,GAGxB,OAFAA,EAAUxrG,KAAM,OAAQ,QAAS,MAAOzH,GAAIS,KAAM,QAAS,aAAc,kBAElEwyG,CACR,CAMQ,oBAAAM,GACP,MAAMJ,EAAgB,IAAIr1E,GAmB1B,OAjBAq1E,EAAcz0E,YAAa,CAC1BlmB,IAAK,OAELxS,WAAY,CACXs5B,MAAO,CACN,KACA,yBAIF3mB,SAAU,CACT,CACCmgB,KAAMr4B,KAAK69B,aAAat+B,GAAI,aAAa84B,GAAQxJ,GAAqBwJ,SAKlEq6E,CACR,CAYQ,iBAAAK,CACPS,EACA/6D,EACAnqB,GAEA,OAAKklF,EACmB,iBAAXA,EACJA,GAEFllF,IACJA,EAAYO,GAAqBP,IAG7BklF,aAAmB/7F,SAChB+7F,EAAS/6D,EAAQnqB,GAEjB,GAAImqB,IAAUnqB,EAAY,KAAMA,KAAgB,MAKnD,EACR,E,eC/YG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQgP,OCkBR,MAAMm2E,WAAuBp2E,GAI3BnlB,SAmBAu6F,SAShB,WAAA1wG,CACCw7B,EACAh5B,EAII,CAAC,GAELsJ,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAElB79B,KAAK4R,IAAK,QAASrN,EAAQk0C,OAAS,IACpCz4C,KAAK4R,IAAK,QAASrN,EAAQs6B,OAAS,MAEpC7+B,KAAKkY,SAAWlY,KAAK29B,mBAErB39B,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,kBACA73B,EAAKzH,GAAI,WAGX2Y,SAAUlY,KAAKkY,WAGX3T,EAAQ+uG,OACZtzG,KAAKyyG,SAAW,IAAIV,GACpB/xG,KAAKyyG,SAASvyG,QAAUqE,EAAQ+uG,KAEhCtzG,KAAKkY,SAAShK,IAAKlO,KAAKyyG,WAGzB,MAAMh6D,EAAQ,IAAIpb,GAAME,GAExBkb,EAAMxa,YAAa,CAClBlmB,IAAK,KACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,0BAEDm0E,KAAM,gBAEP96F,SAAU,CACT,CAAEmgB,KAAMrxB,EAAKzH,GAAI,aAInBS,KAAKkY,SAAShK,IAAKuqC,EACpB,EC3Cc,MAAMi7D,WAAoClkG,KAIxCmkG,WAMA10E,aAMAD,iBAkBAuoB,QAOhB,WAAAxlD,CAAawC,GAaZ,GAPAsJ,QAEA7N,KAAK2zG,WAAapvG,EAAQovG,WAC1B3zG,KAAKi/B,aAAe16B,EAAQ06B,aAC5Bj/B,KAAKg/B,iBAAmBz6B,EAAQy6B,iBAChCh/B,KAAKunD,QAAUhjD,EAAQgjD,QAElBhjD,EAAQgjD,SAAWhjD,EAAQy6B,iBAC/B,UAAY3pB,KAAc9Q,EAAQgjD,QAAU,CAC3C,IAAIA,EAAUhjD,EAAQgjD,QAASlyC,GAER,iBAAXkyC,IACXA,EAAU,CAAEA,IAGb,UAAYj5B,KAAai5B,EACxBhjD,EAAQy6B,iBAAiBptB,IAAK0c,GAAW,CAAExrB,EAAM8zB,KAChD52B,KAAMqV,KACNuhB,GAAQ,GAGX,CAGD52B,KAAKyP,GAAkC,gBAAgB,IAAMzP,KAAK4zG,cAAc,CAAE5mG,SAAU,QAC5FhN,KAAKyP,GAAmC,iBAAiB,IAAMzP,KAAK6zG,aAAa,CAAE7mG,SAAU,OAC9F,CAQA,SAAWymB,GACV,OAASzzB,KAAK2zG,WAAWp/E,KAAMu/E,KAAoB,IACpD,CAQA,QAAWpgF,GACV,OAAS1zB,KAAK2zG,WAAW5tG,OAAQ+tG,IAAiBhyG,OAAQ,GAAK,IAAO,IACvE,CAQA,QAAWR,GACV,OAAOtB,KAAK+zG,qBAAsB,EACnC,CAQA,YAAWC,GACV,OAAOh0G,KAAK+zG,sBAAuB,EACpC,CAMA,WAAWh1G,GACV,IAAI6F,EAAuB,KAG3B,OAA0C,OAArC5E,KAAKi/B,aAAarJ,eACf,MAGR51B,KAAK2zG,WAAWp/E,MAAM,CAAEoD,EAAMs8E,KAC7B,MAAMC,EAAUv8E,EAAK5gB,UAAY/W,KAAKi/B,aAAarJ,eAMnD,OAJKs+E,IACJtvG,EAAQqvG,GAGFC,CAAO,IAGRtvG,EACR,CAOO,UAAAgvG,GACN5zG,KAAK01B,OAAQ11B,KAAKyzB,MAAO,EAC1B,CAOO,SAAAogF,GACN7zG,KAAK01B,OAAQ11B,KAAK0zB,MAAO,EAC1B,CAOO,SAAAygF,GACN,MAAM7yG,EAAOtB,KAAKsB,KAMbA,GAAQtB,KAAK2zG,WAAWx/E,SAAU7yB,KAAWtB,KAAKjB,SAMlDuC,IAAStB,KAAKyzB,MALlBzzB,KAAK4Q,KAAoC,gBAQzC5Q,KAAK01B,OAAQp0B,EAAM,EAErB,CAOO,aAAA8yG,GACN,MAAMJ,EAAWh0G,KAAKg0G,SAEjBA,GAAYh0G,KAAK2zG,WAAWx/E,SAAU6/E,KAAeh0G,KAAKjB,SAM1Di1G,IAAah0G,KAAK0zB,KALtB1zB,KAAK4Q,KAAqC,iBAQ1C5Q,KAAK01B,OAAQs+E,GAAW,EAE1B,CASQ,MAAAt+E,CAAQiC,EAA4BnR,GAKtCmR,GAAQ33B,KAAKi/B,aAAarJ,iBAAmB+B,EAAK5gB,SACtD4gB,EAAK8H,MAAOjZ,EAEd,CAQQ,oBAAAutF,CAAsBnzB,GAE7B,MAAMhhD,EAAmB5/B,KAAK2zG,WAAWr7G,OAEzC,IAAMsnC,EACL,OAAO,KAGR,MAAM7gC,EAAUiB,KAAKjB,QAIrB,GAAiB,OAAZA,EACJ,OAAOiB,KAAe,IAAT4gF,EAAa,QAAU,QAIrC,IAAIyzB,EAAgBr0G,KAAK2zG,WAAWvrG,IAAKrJ,GAGrC6F,GAAU7F,EAAU6gC,EAAmBghD,GAAShhD,EAEpD,EAAG,CACF,MAAM00E,EAAyBt0G,KAAK2zG,WAAWvrG,IAAKxD,GAEpD,GAAKkvG,GAAgBQ,GAA2B,CAC/CD,EAAgBC,EAChB,KACD,CAGA1vG,GAAUA,EAAQg7B,EAAmBghD,GAAShhD,CAC/C,OAAUh7B,IAAU7F,GAEpB,OAAOs1G,CACR,EAgED,SAASP,GAAgBn8E,GACxB,OAAO48E,GAAa58E,IAAU5O,GAAW4O,EAAK5gB,QAC/C,CAOO,SAASw9F,GAAa58E,GAC5B,UAAW,UAAWA,IAA6B,mBAAdA,EAAK8H,MAC3C,CC3Xe,SAAS+0E,GAAoD78E,GAwJ3E,OAvJA,cAAsCA,EAW7B88E,aAAez0G,KAAK00G,QAAQ1tG,KAAMhH,MAKlC20G,gBAAkB30G,KAAK40G,WAAW5tG,KAAMhH,MAKxC60G,yBAAqD,CAAE36G,EAAG,EAAGD,EAAG,GAKxE,WAAA8H,IAAgB7F,GACf2R,SAAU3R,GAEV8D,KAAKyP,GAAI,UAAU,KAClBzP,KAAK80G,kBAAkB,IAGxB90G,KAAK4R,IAAK,cAAc,EACzB,CAKQ,gBAAAkjG,GACP90G,KAAK4P,SAAU5P,KAAK+W,QAAU,YAAa/W,KAAK+0G,aAAa/tG,KAAMhH,OACnEA,KAAK4P,SAAU5P,KAAK+W,QAAU,aAAc/W,KAAK+0G,aAAa/tG,KAAMhH,MACrE,CAKQ,oBAAAg1G,GACPh1G,KAAK4P,SAAU,GAAOpM,SAAU,UAAWxD,KAAK20G,iBAChD30G,KAAK4P,SAAU,GAAOpM,SAAU,WAAYxD,KAAK20G,iBACjD30G,KAAK4P,SAAU,GAAOpM,SAAU,YAAaxD,KAAKy0G,cAClDz0G,KAAK4P,SAAU,GAAOpM,SAAU,YAAaxD,KAAKy0G,aACnD,CAKQ,oBAAAQ,GACPj1G,KAAK+P,cAAe,GAAOvM,SAAU,UAAWxD,KAAK20G,iBACrD30G,KAAK+P,cAAe,GAAOvM,SAAU,WAAYxD,KAAK20G,iBACtD30G,KAAK+P,cAAe,GAAOvM,SAAU,YAAaxD,KAAKy0G,cACvDz0G,KAAK+P,cAAe,GAAOvM,SAAU,YAAaxD,KAAKy0G,aACxD,CAKQ,YAAAM,CAAcv/F,EAAgBkM,GACrC,IAAM1hB,KAAKk1G,wBAAyBxzF,GACnC,OAGD1hB,KAAKg1G,uBAEL,IAAI96G,EAAI,EACJD,EAAI,EAIHynB,aAAkByzF,YACtBj7G,EAAIwnB,EAAO0zF,QACXn7G,EAAIynB,EAAO2zF,UAEXn7G,EAAIwnB,EAAO4zF,QAAS,GAAIF,QACxBn7G,EAAIynB,EAAO4zF,QAAS,GAAID,SAGzBr1G,KAAK60G,yBAA2B,CAAE36G,IAAGD,KAErC+F,KAAKu1G,YAAa,CACnB,CAKQ,OAAAb,CAASl/F,EAAgBkM,GAEhC,IAAM1hB,KAAKu1G,WAGV,YAFAv1G,KAAKi1G,uBAKN,IAAIO,EAAO,EACPC,EAAO,EAIN/zF,aAAkByzF,YACtBK,EAAO9zF,EAAO0zF,QACdK,EAAO/zF,EAAO2zF,UAEdG,EAAO9zF,EAAO4zF,QAAS,GAAIF,QAC3BK,EAAO/zF,EAAO4zF,QAAS,GAAID,SAI5B3zF,EAAOyU,iBAEPn2B,KAAK4Q,KAA8B,OAAQ,CAC1C8kG,OAAQ78G,KAAKuD,MAAOo5G,EAAOx1G,KAAK60G,yBAAyB36G,GACzDy7G,OAAQ98G,KAAKuD,MAAOq5G,EAAOz1G,KAAK60G,yBAAyB56G,KAG1D+F,KAAK60G,yBAA2B,CAAE36G,EAAGs7G,EAAMv7G,EAAGw7G,EAC/C,CAKQ,UAAAb,GACP50G,KAAKi1G,uBAELj1G,KAAKu1G,YAAa,CACnB,CAKQ,uBAAAL,CAAyBxzF,GAChC,QAAM1hB,KAAK41G,oBAIJ51G,KAAK41G,oBAAsBl0F,EAAO9d,QACtC8d,EAAO9d,kBAAkBmhB,aAAe/kB,KAAK41G,kBAAkBtwF,SAAU5D,EAAO9d,QACpF,EAMF,C,eCpLI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ05B,OCaR,MAAMu4E,WAA0Bx4E,GAI9BnlB,SAKAy0F,WAKAmJ,YAKCC,cAKAC,YAKjB,WAAAj0G,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAKkY,SAAWlY,KAAK29B,mBACrB39B,KAAK2sG,WAAa,IAAI32E,GACtBh2B,KAAK+1G,cAAgB,IAAIxgF,GACzBv1B,KAAKg2G,YAAc,IAAIx+E,GACvBx3B,KAAK81G,YAAc,IAAIpC,GAAa,CACnCC,WAAY3zG,KAAKg2G,YACjB/2E,aAAcj/B,KAAK+1G,cACnB/2E,iBAAkBh/B,KAAK2sG,WACvBplD,QAAS,CAER6sD,cAAe,cAGfD,UAAW,SAIbn0G,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,uBAGF3mB,SAAUlY,KAAKkY,UAEjB,CAKgB,MAAAggB,GACfrqB,MAAMqqB,SAENl4B,KAAK2sG,WAAW/8F,SAAU5P,KAAK+W,QAChC,CAMO,UAAAk/F,CAAYC,GAClB,UAAYhuG,KAAcguG,EAAc,CACvC,MAAMC,EAAS,IAAI,GAAYn2G,KAAKu9B,QAEpC,IAAIhqB,EAOJ,IAAMA,KANN4iG,EAAO1mG,GAAwB,WAAW,IAAMvH,EAAWkuG,cAEtDluG,EAAWmuG,UACfnuG,EAAWmuG,SAAUF,GAGJjuG,EACA,aAAZqL,GAAuC,YAAZA,GAC/B4iG,EAAOvkG,IAAK2B,EAAUrL,EAAYqL,IAIpCvT,KAAKkY,SAAShK,IAAKioG,EACpB,CAEAn2G,KAAKs2G,2BACN,CAKO,KAAA72E,CAAOjZ,IACO,IAAfA,EACJxmB,KAAK81G,YAAYjC,YAEjB7zG,KAAK81G,YAAYlC,YAEnB,CAMQ,yBAAA0C,GACP31G,MAAMrB,KAAMU,KAAKkY,UAAWta,SAAStE,IACpC0G,KAAKg2G,YAAY9nG,IAAK5U,GACtB0G,KAAK+1G,cAAc7nG,IAAK5U,EAAEyd,QAAU,GAEtC,EC7Hc,MAAMw/F,WAA0Bl5E,GAI9BnlB,SAKhB,WAAAnW,CACCw7B,GAEA1vB,MAAO0vB,GAEPv9B,KAAKkY,SAAWlY,KAAK29B,mBAErB39B,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CAAE,KAAM,uBAEhB3mB,SAAUlY,KAAKkY,UAEjB,CAKO,KAAA2/E,GACN,KAAQ73F,KAAKkY,SAAS5f,QACrB0H,KAAKkY,SAASjS,OAAQ,EAExB,E,eC9CG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQq3B,OAAvB,MC2Cak5E,GACG,gBADHA,GAEG,gBAFHA,GAGK,kBAHLA,GAIO,oBAJPA,GAKU,uBALVA,GAMS,sBANTA,GAOS,sBAGhBC,GAAuBluF,GAAQ,MAKtB,MAAMmuF,WAAmClC,GAAoBn3E,KAK3D/d,MAKTq3F,WAKAC,gBAKAC,YAKP,qBAAsC,GAK/BC,YAKSnK,WAKA1tE,aAMT83E,UAAoB,EAqEnBC,mBAKAC,mBAKSjB,YAKAkB,aAKjB,WAAAn1G,CAAaw7B,GACZ,kBACC45E,EAAiB,kBACjBC,IAMDvpG,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aACZ7iC,EAAIuiC,EAAOviC,EAEjBgF,KAAK4R,IAAK,YAAa,IACvB5R,KAAK4R,IAAK,YAAa5W,EAAG,kBAC1BgF,KAAK4R,IAAK,WAAW,GACrB5R,KAAK4R,IAAK,WAAY4kG,IACtBx2G,KAAK4R,IAAK,cAAc,GACxB5R,KAAK4R,IAAK,kBAAkB,GAC5B5R,KAAK4R,IAAK,OAAQ,GAClB5R,KAAK4R,IAAK,QAAS,GACnB5R,KAAKg3G,mBAAqBG,EAC1Bn3G,KAAKi3G,mBAAqBG,EAE1Bp3G,KAAKoV,SAAU,UAEfpV,KAAKsf,MAAQtf,KAAK29B,mBAElB39B,KAAK2sG,WAAa,IAAI32E,GACtBh2B,KAAKi/B,aAAe,IAAI1J,GACxBv1B,KAAKg2G,YAAc,IAAIx+E,GACvBx3B,KAAKk3G,aAAe,IAAIxD,GAAa,CACpCC,WAAY3zG,KAAKg2G,YACjB/2E,aAAcj/B,KAAKi/B,aACnBD,iBAAkBh/B,KAAK2sG,WACvBplD,QAAS,CAER6sD,cAAe,cAGfD,UAAW,SAIbn0G,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,oBACA73B,EAAKuyB,GAAI,UAAW,kCAAkC89E,IAAYA,IAClErwG,EAAKuyB,GAAI,aAAc,aAAa/gC,IAAUA,KAG/Cy6G,SAAU,MAEX/6F,SAAU,CACT,CACCH,IAAK,MACLxS,WAAY,CACX0tG,SAAU,KACVp0E,MAAO,CACN,KACA,YACA73B,EAAKzH,GAAI,cAEVyzG,KAAM,SACN,aAAchsG,EAAKzH,GAAI,aACvB8F,MAAO,CACNgd,IAAKrb,EAAKzH,GAAI,QAAQ8iB,GAAOo0F,GAAMp0F,KACnCM,KAAM3b,EAAKzH,GAAI,SAASojB,GAAQ8zF,GAAM9zF,KACtC20F,WAAYtwG,EAAKuyB,GAAI,iBAAkB,YAGzCrhB,SAAUlY,KAAKsf,SAInB,CAKgB,MAAA4Y,GACfrqB,MAAMqqB,SAENl4B,KAAK2sG,WAAW/6F,IAAK,OAAO,CAAE9O,EAAM8zB,KACnC52B,KAAK4Q,KAA4B,QAAS,CAAE1N,OAAQ,gBACpD0zB,GAAQ,IAIT52B,KAAKyP,GAA4B,QAAQ,CAAE+F,GAAkBkgG,SAAQC,aACpE31G,KAAK+2G,UAAW,EAChB/2G,KAAKkkB,OAAQwxF,EAAQC,EAAQ,IAI9B31G,KAAK4P,SAAU,GAAOrM,OAAQ,UAAU,KAClCvD,KAAKu3G,aAAev3G,KAAK+2G,UAC7B/2G,KAAKw3G,gBACN,IAIDx3G,KAAK4P,SAAU,GAAOpM,SAAU,UAAU,KACpCxD,KAAKu3G,aAAev3G,KAAK+2G,UAC7B/2G,KAAKw3G,gBACN,IAGDx3G,KAAKyP,GAAI,qBAAqB,CAAE+F,EAAKxT,EAAM+mB,KACrCA,IAIJ/oB,KAAKy3G,gBAAiB,EAGtB1hF,YAAY,KACX/1B,KAAKw3G,iBAELx3G,KAAKy3G,gBAAiB,EAItBz3G,KAAKy/B,OAAO,GACV,IACJ,IAGDz/B,KAAK2sG,WAAW/8F,SAAU5P,KAAK+W,QAChC,CAKA,qBAAoB6+F,GACnB,OAAK51G,KAAK22G,WACF32G,KAAK22G,WAAW5/F,QAEhB,IAET,CASO,UAAA2gG,EAAY,KAAEpE,EAAI,MAAEqE,EAAK,eAAEC,GAAiB,EAAI,QAAE13G,EAAO,cAAE23G,IAO5DF,IACJ33G,KAAK22G,WAAa,IAAIlD,GAAgBzzG,KAAKu9B,OAAQ,CAAE+1E,SAEhDsE,IACJ53G,KAAK42G,gBAAkB52G,KAAK83G,qBAC5B93G,KAAK22G,WAAWz+F,SAAShK,IAAKlO,KAAK42G,kBAGpC52G,KAAK22G,WAAWl+D,MAAQk/D,EACxB33G,KAAK+3G,UAAYJ,EACjB33G,KAAKsf,MAAMpR,IAAKlO,KAAK22G,WAAY,IAG7Bz2G,IAECA,aAAmBm9B,KACvBn9B,EAAU,CAAEA,IAGbF,KAAK82G,YAAc,IAAIP,GAAmBv2G,KAAKu9B,QAC/Cv9B,KAAK82G,YAAY5+F,SAASyb,QAASzzB,GACnCF,KAAKsf,MAAMpR,IAAKlO,KAAK82G,cAGjBe,IACJ73G,KAAK62G,YAAc,IAAIhB,GAAmB71G,KAAKu9B,QAC/Cv9B,KAAK62G,YAAYZ,WAAY4B,GAC7B73G,KAAKsf,MAAMpR,IAAKlO,KAAK62G,cAGtB72G,KAAKs2G,2BACN,CAKO,KAAA72E,GACNz/B,KAAKk3G,aAAatD,YACnB,CAQO,MAAA3vF,CAAQtB,EAAcN,GAC5B,MAAMkH,EAAevpB,KAAKg4G,mBACpBC,EAAaj4G,KAAKk4G,iBAGnBv1F,EAAOs1F,EAAW90F,MAAQoG,EAAahH,QAC3CI,EAAO4G,EAAahH,MAAQ01F,EAAW90F,OAInCR,EAAO4G,EAAa5G,OACxBA,EAAO4G,EAAa5G,MAIhBN,EAAMkH,EAAalH,MACvBA,EAAMkH,EAAalH,KAMpBriB,KAAKm4G,QAASx1F,EAAMN,EACrB,CAKQ,OAAA81F,CAASx1F,EAAcN,GAC9BriB,KAAKo4G,MAAQz1F,EACb3iB,KAAKq4G,KAAOh2F,CACb,CAOO,MAAA6B,CAAQvB,EAAcN,GAC5BriB,KAAKikB,OAAQjkB,KAAKo4G,MAAQz1F,EAAM3iB,KAAKq4G,KAAOh2F,EAC7C,CAMQ,cAAAi2F,GACPt4G,KAAKm4G,SAAU,MAAO,KACvB,CAMO,cAAAX,GACN,IAAMx3G,KAAK+W,UAAY/W,KAAK+W,QAAQ9P,WACnC,OAGD,MAAMsiB,EAAevpB,KAAKg4G,mBAG1B,IACIO,EADAC,EAAqBx4G,KAAKynB,SAGxBznB,KAAKg3G,qBAGVuB,EAAcv4G,KAAKy4G,uBAAwBlvF,GAF3CivF,EAAqBhC,GAKtB,MAAMkC,EAAgBhC,GAAWgC,cAC3BT,EAAaj4G,KAAKk4G,iBAKxB,OAASM,GACR,KAAKhC,GAKJ,GAAK+B,EAAc,CAClB,MAAMI,EAA2D,QAA1C34G,KAAKu9B,OAAQtO,yBACnCspF,EAAYh2F,MAAQ01F,EAAW90F,MAAQu1F,EACvCH,EAAY51F,KAAO+1F,EAEpB14G,KAAKikB,OAAQ00F,EAAgBJ,EAAYl2F,IAAMq2F,EAChD,MACC14G,KAAKs4G,iBAGN,MAED,KAAK9B,GACC+B,EACJv4G,KAAKikB,OACJprB,KAAKuD,MAAOm8G,EAAY51F,KAAO41F,EAAYp1F,MAAQ,EAAI80F,EAAW90F,MAAQ,GAC1EtqB,KAAKuD,MAAOm8G,EAAYl2F,IAAMk2F,EAAYn1F,OAAS,EAAI60F,EAAW70F,OAAS,IAG5EpjB,KAAKs4G,iBAGN,MAED,KAAK9B,GACJx2G,KAAKikB,OACJprB,KAAKuD,OAASmtB,EAAapG,MAAQ80F,EAAW90F,OAAU,GACxDtqB,KAAKuD,OAASmtB,EAAanG,OAAS60F,EAAW70F,QAAW,IAG3D,MAED,KAAKozF,GAKC+B,EACJv4G,KAAKikB,OACJprB,KAAKuD,MAAOm8G,EAAY51F,KAAO41F,EAAYp1F,MAAQ,EAAI80F,EAAW90F,MAAQ,GAC1Eo1F,EAAYl2F,IAAMq2F,GAGnB14G,KAAKs4G,iBAGN,MAED,KAAK9B,GAKC+B,EACJv4G,KAAKikB,OACJprB,KAAKuD,MAAOm8G,EAAY51F,KAAO41F,EAAYp1F,MAAQ,EAAI80F,EAAW90F,MAAQ,GAC1Eo1F,EAAY91F,OAASw1F,EAAW70F,OAASs1F,GAG1C14G,KAAKs4G,iBAGN,MAED,KAAK9B,GAKC+B,EACJv4G,KAAKikB,OACJprB,KAAKuD,MAAOm8G,EAAY51F,KAAO41F,EAAYp1F,MAAQ,EAAI80F,EAAW90F,MAAQ,GAC1Eo1F,EAAYl2F,IAAM41F,EAAW70F,OAASs1F,GAGvC14G,KAAKs4G,iBAGN,MAED,KAAK9B,GAKC+B,EACJv4G,KAAKikB,OACJprB,KAAKuD,MAAOm8G,EAAY51F,KAAO41F,EAAYp1F,MAAQ,EAAI80F,EAAW90F,MAAQ,GAC1Eo1F,EAAY91F,OAASi2F,GAGtB14G,KAAKs4G,iBAMT,CAKQ,sBAAAG,CAAwBlvF,GAC/B,IAAIqvF,EAAqB,IAAI,GAAM54G,KAAKg3G,sBAAuBvyF,aAE/D,OAAMm0F,GAGLA,EAAqBrvF,EAAapF,gBAAiBy0F,GAE7CA,GACE,MALD,IAUT,CAKQ,cAAAV,GACP,OAAO,IAAI,GAAMl4G,KAAK+W,QAAS8hG,kBAChC,CAKQ,gBAAAb,GACP,OA0FF,SAAqC3sF,GACpCA,EAAiBr0B,OAAOsyB,OAAQ,CAAEjH,IAAK,EAAGI,OAAQ,EAAGE,KAAM,EAAGJ,MAAO,GAAK8I,GAE1E,MAAM9B,EAAe,IAAI,GAAM,GAAOhmB,QAUtC,OARAgmB,EAAalH,KAAOgJ,EAAehJ,IACnCkH,EAAanG,QAAUiI,EAAehJ,IACtCkH,EAAa9G,QAAU4I,EAAe5I,OACtC8G,EAAanG,QAAUiI,EAAe5I,OACtC8G,EAAa5G,MAAQ0I,EAAe1I,KACpC4G,EAAahH,OAAS8I,EAAe9I,MACrCgH,EAAapG,OAASkI,EAAe1I,KAAQ0I,EAAe9I,MAErDgH,CACR,CAxGS,CAA4BvpB,KAAKi3G,qBACzC,CAMQ,yBAAAX,GACP,MAAM3C,EAAmC,GAEzC,GAAK3zG,KAAK82G,YACT,UAAYx+F,KAAStY,KAAK82G,YAAY5+F,SAChCq8F,GAAaj8F,IACjBq7F,EAAW/zG,KAAM0Y,GAKftY,KAAK62G,aACTlD,EAAW/zG,KAAMI,KAAK62G,aAGlB72G,KAAK42G,iBACTjD,EAAW/zG,KAAMI,KAAK42G,iBAGvBjD,EAAW/1G,SAASk7G,INzOf,IAAgCnhF,EM0OpC33B,KAAKg2G,YAAY9nG,IAAK4qG,GACtB94G,KAAKi/B,aAAa/wB,IAAK4qG,EAAU/hG,SN1O5Bw9F,GAD+B58E,EM6ORmhF,IN5OA,gBAAiBnhF,GAAQA,EAAKm+E,uBAAuBpC,KM6OhF1zG,KAAK4P,SAAwCkpG,EAAUhD,YAAa,gBAAgBtgG,IACnFxV,KAAKk3G,aAAa/C,YAGbn0G,KAAKk3G,aAAa51G,OAAStB,KAAKk3G,aAAavD,WAAWvrG,IAAKpI,KAAKk3G,aAAan4G,UACnFyW,EAAInJ,MACL,IAGDrM,KAAK4P,SAAyCkpG,EAAUhD,YAAa,iBAAiBtgG,IACrFxV,KAAKk3G,aAAa9C,gBAGbp0G,KAAKk3G,aAAalD,WAAah0G,KAAKk3G,aAAavD,WAAWvrG,IAAKpI,KAAKk3G,aAAan4G,UACvFyW,EAAInJ,MACL,IAEF,GAEF,CAKQ,kBAAAyrG,GACP,MAAMiB,EAAa,IAAI,GAAY/4G,KAAKu9B,QAClCviC,EAAIgF,KAAKu9B,OAAQviC,EAUvB,OARA+9G,EAAWnnG,IAAK,CACf6mC,MAAOz9C,EAAG,SACVw4G,SAAS,EACTF,KAAM,GAAM18E,SAGbmiF,EAAWtpG,GAAwB,WAAW,IAAMzP,KAAK4Q,KAA4B,QAAS,CAAE1N,OAAQ,kBAEjG61G,CACR,ECjqBc,MAAMC,WAAe,GAW5BrhF,KAWP,4BAYQshF,QAKR,qBAAkBh3E,GACjB,MAAO,QACR,CAKA,WAAAlgC,CAAag+B,GACZlyB,MAAOkyB,GAEP,MAAM/kC,EAAI+kC,EAAO/kC,EAEjBgF,KAAKk5G,yBACLl5G,KAAKm5G,oBACLn5G,KAAKo5G,4BAELp5G,KAAK4R,IAAK,KAAM,MAGhBmuB,EAAOmtE,cAAcF,kBAAmB,CACvCH,WAAY,aACZF,WAAY,CAAE,CACbl0D,MAAOz9C,EAAG,oDACVszB,UAAW,UACXo+E,cAAc,KAGjB,CAWQ,sBAAAwM,GACPl5G,KAAKyP,GAAqB,QAAQ,CAAE+F,EAAKtZ,KACxC8D,KAAKq5G,MAAOn9G,EAAM,IAInB8D,KAAKyP,GAAqB,QAAQ,CAAE+F,EAAKtZ,KACnCA,EAAKo9G,QACTp9G,EAAKo9G,OAAQt5G,KACd,GACE,CAAEgN,SAAU,QAEfhN,KAAKyP,GAAqB,QAAQ,KAC5BupG,GAAOO,sBACXP,GAAOO,qBAAqBC,OAC7B,IAIDx5G,KAAKyP,GAAqB,QAAQ,KAC5BzP,KAAKi5G,UACTj5G,KAAKi5G,QAASj5G,MACdA,KAAKi5G,aAAU,EAChB,GACE,CAAEjsG,SAAU,OAChB,CAKQ,iBAAAmsG,GACP,MAAMp5E,EAAS//B,KAAK+/B,OAEpBA,EAAO4sE,WAAW/6F,IAAK,WAAW,CAAE9O,EAAM8zB,KACnC52B,KAAKy5G,SAAUz5G,KAAK23B,KAAM0/E,UAI3Br3G,KAAK23B,KAAMsH,aAAanJ,UAC5BiK,EAAOotE,QAAQx1E,KAAK8H,QAEpBz/B,KAAK23B,KAAM8H,QAGZ7I,IAAQ,GAEV,CAKQ,yBAAAwiF,GACP,MAAMhhH,EAAQ4H,KAAK+/B,OAAO3nC,MAE1BA,EAAMoL,SAASiM,GAAyB,eAAe,KACtD,IAAMzP,KAAK23B,KACV,OAGD,MAAM+hF,EAAethH,EAAMoL,SAASgmE,OAAOkuB,kBAE3C,UAAY5tB,KAAW4vC,EACjB5vC,EAAQ8tB,OACZ53F,KAAK23B,KAAK6/E,gBAEZ,GAEF,CAqFO,IAAAmC,CAAMC,GACZ55G,KAAK65G,OAEL75G,KAAK4Q,KAAuB,QAASgpG,EAAiB/5G,KAAO+5G,EAC9D,CAKQ,KAAAP,EAAO,GACdx5G,EAAE,KACFyzG,EAAI,MACJqE,EAAK,eACLC,GAAiB,EAAI,QACrB13G,EAAO,cACP23G,EAAa,UACbtnE,EAAS,QACT8mE,EAAO,SACP5vF,EAAQ,OACRqyF,IAEA,MAAM/5E,EAAS//B,KAAK+/B,OAEpB//B,KAAK23B,KAAO,IAAI++E,GAAY32E,EAAOxC,OAAQ,CAC1C45E,kBAAmB,IACXp3E,EAAOotE,QAAQx1E,KAAKonC,WAAYh/B,EAAO3nC,MAAMoL,SAASm9B,UAAUqG,OAAQ1wC,KAAKwqC,UAErFs2E,kBAAmB,IACXr3E,EAAO+E,GAAGzZ,iBAInB,MAAMsM,EAAO33B,KAAK23B,KAElBA,EAAKloB,GAA0B,SAAS,KACvCzP,KAAK65G,MAAM,IAGZ95E,EAAO+E,GAAGnN,KAAK1U,KAAK/U,IAAKypB,GACzBoI,EAAO+E,GAAG7F,aAAa/wB,IAAKypB,EAAK5gB,SACjCgpB,EAAO4sE,WAAW/8F,SAAU+nB,EAAK5gB,SAI3B0Q,IACLA,EAAW4vF,EAAUb,GAAmCA,IAGzD7+E,EAAK/lB,IAAK,CACT6V,WACA8vF,YAAY,EACZhnE,YACA8mE,YAGD1/E,EAAK+/E,WAAY,CAChBpE,OACAqE,QACAC,iBACA13G,UACA23G,kBAGD73G,KAAKH,GAAKA,EAELi6G,IACJ95G,KAAKi5G,QAAUa,GAGhB95G,KAAKy5G,QAAS,EACdT,GAAOO,qBAAuBv5G,IAC/B,CAOO,IAAA65G,GACDb,GAAOO,sBACXP,GAAOO,qBAAqB3oG,KAAuB,QAASooG,GAAOO,qBAAqB15G,KAE1F,CAKQ,KAAA25G,GACP,IAAMx5G,KAAK23B,KACV,OAGD,MAAMoI,EAAS//B,KAAK+/B,OACdpI,EAAO33B,KAAK23B,KAMbA,EAAKm/E,aACTn/E,EAAKm/E,YAAYjf,QAGlB93D,EAAO+E,GAAGnN,KAAK1U,KAAKhd,OAAQ0xB,GAC5BoI,EAAO+E,GAAG7F,aAAah5B,OAAQ0xB,EAAK5gB,SACpCgpB,EAAO4sE,WAAW58F,cAAe4nB,EAAK5gB,SAEtC4gB,EAAK1P,UACL8X,EAAOotE,QAAQx1E,KAAK8H,QAEpBz/B,KAAKH,GAAK,KACVG,KAAKy5G,QAAS,EACdT,GAAOO,qBAAuB,IAC/B,E,cCrWG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQj8E,OCKR,MAAM,WAAsC,GAM1D,WAAAv7B,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAK4R,IAAK,CACTmoG,UAAU,EACVxG,eAAe,EACfC,SAAS,EACTR,KAAM,aAGPhzG,KAAK45B,eAAgB,CACpBr0B,WAAY,CACXs5B,MAAO,CAAE,qCAGZ,E,eCnCG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQvB,OCMR,MAAM08E,WAAkB38E,GAKtBx9B,GAmBhB,WAAAkC,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAK4R,IAAK,YAAQ,GAClB5R,KAAK4R,IAAK,WAAO,GAEjB5R,KAAKH,GAAK,oBAAqB6M,MAE/B,MAAM1F,EAAOhH,KAAK69B,aAElB79B,KAAKi+B,YAAa,CACjBlmB,IAAK,QACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,YAEDh/B,GAAIG,KAAKH,GACT+pF,IAAK5iF,EAAKzH,GAAI,QAEf2Y,SAAU,CACT,CACCmgB,KAAMrxB,EAAKzH,GAAI,WAInB,ECxCc,MAAM06G,WAAqC58E,GAIzD,WAAAt7B,CAAaw7B,EAAgBovE,GAC5B9+F,MAAO0vB,GAEP,MAAMviC,EAAIuiC,EAAOviC,EACXk/G,EAAY,IAAIF,GAEtBE,EAAU7hF,KAAOr9B,EAAG,kDAEpBgF,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CAAE,KAAM,yCACf,kBAAmBq7E,EAAUr6G,GAC7BmzG,KAAM,WACNC,UAAW,GAEZ/6F,SAAU,CACT,GAAe1U,SAAU,IAAK,CAAC,EAAGxI,EAAG,wFAClCgF,KAAKm6G,kBAAmBx5G,MAAMrB,KAAMqtG,EAAWvhG,WAClD8uG,IAGH,CAKO,KAAAz6E,GACNz/B,KAAK+W,QAAS0oB,OACf,CAKQ,iBAAA06E,CAAmBC,GAC1B,OAAOA,EAAWp9G,KAAKq9G,IACtB,MAAM5zC,EAA+B,CAEpC,GAAejjE,SAAU,KAAM,CAAC,EAAG62G,EAAmB5hE,UAGnD93C,MAAMrB,KAAM+6G,EAAmBx6D,OAAOz0C,UACvCpO,KAAKs9G,GAAmBt6G,KAAKu6G,aAAcD,KAC3CnnC,QAQH,OAJKknC,EAAmBvxC,aACvBrC,EAASj/D,OAAQ,EAAG,EAAG,GAAehE,SAAU,IAAK,CAAC,EAAG62G,EAAmBvxC,cAGtE,GAAetlE,SAAU,UAAW,CAAC,EAAGijE,EAAU,GAE3D,CAKQ,YAAA8zC,CAAcD,GACrB,MAAME,EAAmCF,EAAgB3N,WACvD9qF,MAAM,CAAElmB,EAAGhD,IAAOgD,EAAE88C,MAAM+vC,cAAe7vF,EAAE8/C,SAC3Cz7C,KAAKy9G,GAAuBz6G,KAAK06G,gBAAiBD,KAClDtnC,OAEI1M,EAA+B,CACpC,GAAejjE,SAAU,KAAM,CAAC,EAAGg3G,IAOpC,OAJKF,EAAgB7hE,OACpBguB,EAASrnE,QAAS,GAAeoE,SAAU,KAAM,CAAC,EAAG82G,EAAgB7hE,QAG/DguB,CACR,CAKQ,eAAAi0C,CAAiBD,GACxB,MAAMz/G,EAAIgF,KAAKu9B,OAAQviC,EACjB2/G,EAAK,GAAen3G,SAAU,MAC9Bo3G,EAAK,GAAep3G,SAAU,MAC9Bq3G,EAsBR,SAAuC3yG,GACtC,GAA2B,iBAAfA,EACX,MAAO,CAAE,CAAEA,IAGZ,GAAgC,iBAApBA,EAAY,GACvB,MAAO,CAAEA,GAGV,OAAOA,CACR,CAhCwC4yG,CAA8BL,EAAoBnsF,WAClFysF,EAA4B,GAElC,UAAYC,KAAwBH,EACnCE,EAA0Bn7G,KAAMo7G,EAAqBh+G,IAAKi+G,IAAoB/9G,KAAM,KAOrF,OAJAy9G,EAAGz4F,UAAYu4F,EAAoBhiE,MACnCmiE,EAAG14F,UAAY64F,EAA0B79G,KAAM,OAC5Cu9G,EAAoB/N,cAAgB,EAAI9jG,MAAQ,IAAK5N,EAAG,iCAAqC,IAEzF,CAAE2/G,EAAIC,EACd,EAGD,SAASK,GAAmB3sF,GAC3B,OAAOO,GAAqBP,GAC1BvxB,MAAO,KACPC,KAAKuiB,GAAQ,QAASA,YACtBriB,KAAM,IACT,CCtIA,6oB,eCGI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQogC,OCkBR,MAAM49E,WAA0B,GAKvCpE,YAAmD,KAK1D,mBAAkBl0E,GACjB,MAAO,CAAEo2E,GACV,CAKA,qBAAkB/2E,GACjB,MAAO,mBACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAOxC,OAAOviC,EAExB+kC,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,qBAAqB,KACpD,MAAMioG,EAASn2G,KAAKo7G,cAAe,IAQnC,OANAjF,EAAOvkG,IAAK,CACX4hG,SAAS,EACTuG,UAAU,EACVthE,MAAOz9C,EAAG,wBAGJm7G,CAAM,IAGdp2E,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,6BAA6B,KAC5D,MAAMioG,EAASn2G,KAAKo7G,cAAe,IAInC,OAFAjF,EAAO19D,MAAQz9C,EAAG,iBAEXm7G,CAAM,IAGdp2E,EAAO4sE,WAAW/6F,IAAK,SAAS,CAAE4D,EAAKohB,KACtC52B,KAAKq7G,cACLzkF,GAAQ,IAGT52B,KAAKs7G,kBACN,CAKQ,aAAAF,CAAmFG,GAC1F,MAEM5jF,EAAO,IAAI4jF,EAFFv7G,KAAK+/B,OACExC,QAUtB,OAPA5F,EAAK/lB,IAAK,CACT0c,UAAW,QACXglF,KAAMpG,KAGPv1E,EAAKloB,GAAI,WAAW,IAAMzP,KAAKq7G,gBAExB1jF,CACR,CAMQ,gBAAA2jF,GACP,MAAMv7E,EAAS//B,KAAK+/B,OACdy7E,EAAcz7E,EAAOotE,QAAQx1E,KAC7B38B,EAAI+kC,EAAO/kC,EAgBjB,SAASygH,EAAwB11E,EAAwB24B,GACxD,MACMg9C,EAAe,GADIh9C,EAAShkC,aAAc,kBACA1/B,EAAG,qBAAsB,CAAE6zB,GAAqB,aAEhGkX,EAAOtgC,aAAc,aAAci2G,EAAch9C,EAClD,CAnBA3+B,EAAO+E,GAAGr1B,GAAwB,SAAS,KAC1C+rG,EAAY11E,QAAQC,IACnB,UAAYzvC,KAAQklH,EAAYh4G,SAASs3C,MACxC2gE,EAAwB11E,EAAQzvC,EACjC,IAGDypC,EAAOtwB,GAAkB,WAAW,CAAE+F,EAAKq1D,KAC1C,MAAMnM,EAAW3+B,EAAOotE,QAAQx1E,KAAKn0B,SAASw3C,QAAS6vB,EAAU/pC,UAEjE06E,EAAY11E,QAAQC,GAAU01E,EAAwB11E,EAAQ24B,IAAY,GACxE,CAAE1xD,SAAU,OAAS,GAS1B,CAKQ,WAAAquG,GACP,MAAMt7E,EAAS//B,KAAK+/B,OACd47E,EAAS57E,EAAOsC,QAAQj6B,IAAK,UAC7BpN,EAAI+kC,EAAOxC,OAAOviC,EAElBgF,KAAK82G,cACV92G,KAAK82G,YAAc,IAAImD,GAA8Bl6E,EAAOxC,OAAQwC,EAAOmtE,cAAcb,iBAG1FsP,EAAOhC,KAAM,CACZ95G,GAAI,oBACJ0wC,UAAW,+BACXonE,MAAO38G,EAAG,sBACVs4G,KAAMpG,GACN0K,gBAAgB,EAChB13G,QAASF,KAAK82G,aAEhB,EC1Hc,MAAM8E,WAAuBpkF,GAK3B+F,OAKRs+E,yBAQR,WAAA95G,CAAaw7B,EAAgB7F,EAA+B,IAC3D7pB,MAAO6pB,GAEP13B,KAAKu9B,OAASA,CACf,CAKA,2BAAWu+E,GACV,OAAO97G,KAAK67G,wBACb,CAMO,WAAAE,GACN/7G,KAAK67G,yBAA2B,IAAI1jF,GAAU,CAC7CpgB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,eACA,UACA,sBAED5yB,IAAKjM,KAAKu9B,OAAOjL,qBAElBpa,SAAUlY,OACPk4B,SAEJ,IAAIorB,EAAU9/C,SAASM,cAAe,oBAEhCw/C,IACLA,EAAU,GAAe9/C,SAAU,MAAO,CAAEq7B,MAAO,oBACnDr7B,SAASyf,KAAKtd,YAAa29C,IAG5BA,EAAQ39C,YAAa3F,KAAK67G,yBAC3B,CAMO,aAAAG,GACNnuG,MAAMoa,UAEDjoB,KAAK67G,0BACT77G,KAAK67G,yBAAyB51G,SAG/B,MAAMq9C,EAAU9/C,SAASM,cAAe,oBAEnCw/C,GAAwC,GAA7BA,EAAQ24D,mBACvB34D,EAAQr9C,QAEV,E,eC1GG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQq3B,OCoBR,MAAM4+E,WAAyB,GAI7BC,iBAKhB,WAAAp6G,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAKkzG,cAAe,EACpBlzG,KAAKm8G,iBAAmBn8G,KAAKo8G,oBAE7Bp8G,KAAK45B,eAAgB,CACpBr0B,WAAY,CACXs5B,MAAO,oBAGV,CAKgB,MAAA3G,GACfrqB,MAAMqqB,SAENl4B,KAAKkY,SAAShK,IAAKlO,KAAKm8G,iBACzB,CAKQ,iBAAAC,GACP,MAAMD,EAAmB,IAAI9+E,GA0B7B,OAxBA8+E,EAAiBl+E,YAAa,CAC7BlmB,IAAK,OAELxS,WAAY,CACXs5B,MAAO,CACN,KACA,sBAIF3mB,SAAU,CACT,CACCH,IAAK,OAELxS,WAAY,CACXs5B,MAAO,CACN,KACA,iCAOEs9E,CACR,ECvDc,MAAM,WAA6B,GAM1CpD,WAKCsD,eAsBR,WAAAt6G,CAAaw7B,GACZ1vB,MAAO0vB,GAGPv9B,KAAK+4G,WAAa/4G,KAElBA,KAAKq8G,eAAiB,IAAIC,GAAe/+E,GACzCv9B,KAAKq8G,eAAer1G,KAAM,gBAAiBzH,GAAIS,MAC/CA,KAAKq8G,eAAer1G,KAAM,sBAAuBzH,GAAIS,MAErDA,KAAKq8G,eAAe9qG,SAAU,QAAShS,GAAIS,MAE3CA,KAAKyP,GAAwB,WAAW,KACvCzP,KAAKq8G,eAAeE,MAAM,IAG3Bv8G,KAAK45B,eAAgB,CACpBr0B,WAAY,CACXs5B,MAAO,0BAGV,CAKgB,MAAA3G,GACfrqB,MAAMqqB,SAENl4B,KAAKkY,SAAShK,IAAKlO,KAAKq8G,eACzB,EAMD,MAAMC,WAAsBj/E,GAqB3B,WAAAt7B,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAK4R,IAAK,oBAAgB,GAC1B5R,KAAK4R,IAAK,sBAAsB,GAEhC,MAAM5K,EAAOhH,KAAK69B,aAElB79B,KAAKi+B,YAAa,CACjBlmB,IAAK,QAELxS,WAAY,CACXs5B,MAAO,CACN,aAED1zB,KAAM,OACN8nG,SAAU,KACVuJ,OAAQx1G,EAAKzH,GAAI,gBACjBk9G,SAAUz1G,EAAKzH,GAAI,uBAGpBkQ,GAAI,CAEHq2B,OAAQ9+B,EAAKzH,IAA4C,KACnDS,KAAK+W,SAAW/W,KAAK+W,QAAQylD,OAASx8D,KAAK+W,QAAQylD,MAAMlkE,QAC7D0H,KAAK4Q,KAA8B,OAAQ5Q,KAAK+W,QAAQylD,OAGzDx8D,KAAK+W,QAASve,MAAQ,QAI1B,CAKO,IAAA+jH,GACNv8G,KAAK+W,QAASo8F,OACf,ECxKD,2N,aCGI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ71E,OCcR,MAAM,WAAwBD,GA6B5B07E,WAKA7gG,SAQhB,WAAAnW,CAAaw7B,EAAgBm/E,GAC5B7uG,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAElB79B,KAAK4R,IAAK,eAAe,GACzB5R,KAAK4R,IAAK,QAAS,IAEnB5R,KAAK+4G,WAAa/4G,KAAK28G,oBACvB38G,KAAKkY,SAAWlY,KAAK29B,mBAErB39B,KAAK4R,IAAK,gCAA4B,GAEjC8qG,GACJ18G,KAAKkY,SAASyb,QAAS+oF,GAGxB18G,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,iBACA73B,EAAKuyB,GAAI,cAAe,8BAG1BrhB,SAAU,CACTlY,KAAK+4G,WACL,CACChhG,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,4BAEDm0E,KAAM,SACN4J,OAAQ51G,EAAKuyB,GAAI,cAAe,UAChC,kBAAmBvyB,EAAKzH,GAAI,6BAE7B2Y,SAAUlY,KAAKkY,YAInB,CAKgB,MAAAggB,GACfrqB,MAAMqqB,SAENl4B,KAAK68G,yBAA2B78G,KAAK+4G,WAAWvG,UAAUz7F,QAASlX,EACpE,CAKO,KAAA4/B,GACNz/B,KAAK+4G,WAAWt5E,OACjB,CAKQ,iBAAAk9E,GACP,MAAM5D,EAAa,IAAI,GAAY/4G,KAAKu9B,QAClCv2B,EAAO+xG,EAAWl7E,aAoBxB,OAlBAk7E,EAAWnnG,IAAK,CACfmoG,UAAU,EACVzG,KAAM,KAGPyF,EAAWn/E,eAAgB,CAC1Br0B,WAAY,CACX,gBAAiByB,EAAKzH,GAAI,QAAQ/G,GAASkjB,OAAQljB,QAIrDugH,EAAW/xG,KAAM,SAAUzH,GAAIS,MAC/B+4G,EAAW/xG,KAAM,QAASzH,GAAIS,KAAM,eAAem1C,IAAgBA,IAEnE4jE,EAAWtpG,GAAI,WAAW,KACzBzP,KAAKm1C,aAAen1C,KAAKm1C,WAAW,IAG9B4jE,CACR,ECpHM,SAAS+D,GACfv/E,EACAh5B,GAEA,MAAMvJ,EAAIuiC,EAAOviC,EACX+hH,EAA0D,CAC/DC,MAAOhiH,EAAG,SACV,WAAYA,EAAG,YACfiiH,KAAMjiH,EAAG,QACT,aAAcA,EAAG,cACjBkiH,MAAOliH,EAAG,SACVmiH,IAAKniH,EAAG,OACRoiH,OAAQpiH,EAAG,UACXqiH,OAAQriH,EAAG,UACX,cAAeA,EAAG,eAClBsiH,MAAOtiH,EAAG,SACVuiH,WAAYviH,EAAG,cACfwiH,UAAWxiH,EAAG,aACd,aAAcA,EAAG,cACjByiH,KAAMziH,EAAG,QACT0iH,OAAQ1iH,EAAG,WAGZ,OAAOuJ,EAAQvH,KAAK2gH,IACnB,MAAMllE,EAAQskE,EAAqBY,EAAYllE,OAM/C,OAJKA,GAASA,GAASklE,EAAYllE,QAClCklE,EAAYllE,MAAQA,GAGdklE,CAAW,GAEpB,CAMO,SAASC,GAAuBr5G,GACtC,OAAOA,EACLvH,IAAK6gH,IACL93G,QAAQ6b,KAAYA,GACvB,CAQO,SAASi8F,GAAgCvhH,GAC/C,MAAsB,iBAAVA,EACJ,CACNlE,MAAOkE,EACPm8C,MAAOn8C,EACPwhH,WAAW,EACXnmF,KAAM,CACL31B,KAAM,OACNs5B,OAAQ,CACPh/B,WAKI,CACNlE,MAAOkE,EAAMA,MACbm8C,MAAOn8C,EAAMm8C,OAASn8C,EAAMA,MAC5BwhH,eAA+B,IAApBxhH,EAAMwhH,WAAkCxhH,EAAMwhH,UACzDnmF,KAAM,CACL31B,KAAM,OACNs5B,OAAQ,CACPh/B,MAAO,GAAIA,EAAMA,UAKtB,CCjGe,MAAMyhH,WAAsB,GAY1C,WAAAh8G,CAAaw7B,GACZ1vB,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAElB79B,KAAK4R,IAAK,aAAS,GACnB5R,KAAK4R,IAAK,aAAa,GAEvB5R,KAAKszG,KCtCP,iaDwCEtzG,KAAK45B,eAAgB,CACpBr0B,WAAY,CACXF,MAAO,CAEN24G,gBAAiBh3G,EAAKzH,GAAI,SAASjD,GAAS,EAAI6M,oBAAsB,KAAO7M,KAE9EuiC,MAAO,CACN,KACA,sBACA73B,EAAKuyB,GAAI,YAAa,6CAI1B,CAKgB,MAAArB,GACfrqB,MAAMqqB,SAENl4B,KAAKyyG,SAASJ,UAAY,kBAC3B,E,eE3DG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ/0E,OCmBR,MAAM2gF,WAAsB5gF,GAI1B6gF,QAKAtqF,MAKAqL,aAKA0tE,WAmBhB,WAAA5qG,CACCw7B,EACAh5B,GAKAsJ,MAAO0vB,GAEP,MAAM4gF,EAAmB55G,GAAWA,EAAQ45G,iBAAmB55G,EAAQ45G,iBAAmB,GAE1Fn+G,KAAKk+G,QAAU35G,GAAWA,EAAQ25G,QAAU35G,EAAQ25G,QAAU,EAE9D,MAAME,EAAqB,CAC1BC,oBAAqB,WAAYr+G,KAAKk+G,iBAGvCl+G,KAAK4R,IAAK,qBAAiB,GAE3B5R,KAAK4zB,MAAQ5zB,KAAK29B,mBAClB39B,KAAKi/B,aAAe,IAAI1J,GACxBv1B,KAAK2sG,WAAa,IAAI32E,GAEtBh2B,KAAK4zB,MAAMnkB,GAAuC,OAAO,CAAE+F,EAAK8oG,KAC/DA,EAAUC,KAAOD,EAAUhiH,QAAU0D,KAAKw+G,aAAa,IAGxDL,EAAiBvgH,SAAStB,IACzB,MAAMgiH,EAAY,IAAIP,GAEtBO,EAAU1sG,IAAK,CACdtV,MAAOA,EAAMA,MACbm8C,MAAOn8C,EAAMm8C,MACb+6D,SAAS,EACTsK,UAAWxhH,EAAMiI,QAAQu5G,YAG1BQ,EAAU7uG,GAAwB,WAAW,KAC5CzP,KAAK4Q,KAAiC,UAAW,CAChDpY,MAAO8D,EAAMA,MACbwhH,UAAWxhH,EAAMiI,QAAQu5G,UACzBrlE,MAAOn8C,EAAMm8C,OACX,IAGJz4C,KAAK4zB,MAAM1lB,IAAKowG,EAAW,IAG5Bt+G,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLG,SAAUlY,KAAK4zB,MACfruB,WAAY,CACXs5B,MAAO,CACN,KACA,iBAEDx5B,MAAO+4G,KAITp+G,KAAKyP,GAA+C,wBAAwB,CAAE+F,EAAKxT,EAAMw8G,KACxF,UAAYv+G,KAAQD,KAAK4zB,MACxB3zB,EAAKs+G,KAAOt+G,EAAK3D,QAAUkiH,CAC5B,GAEF,CAKO,KAAA/+E,GACDz/B,KAAK4zB,MAAMt7B,QACf0H,KAAK4zB,MAAMH,MAAOgM,OAEpB,CAKO,SAAAo0E,GACD7zG,KAAK4zB,MAAMt7B,QACf0H,KAAK4zB,MAAMF,KAAM+L,OAEnB,CAKgB,MAAAvH,GACfrqB,MAAMqqB,SAGN,UAAYj4B,KAAQD,KAAK4zB,MACxB5zB,KAAKi/B,aAAa/wB,IAAKjO,EAAK8W,SAG7B/W,KAAK4zB,MAAMnkB,GAAuC,OAAO,CAAE+F,EAAKvV,KAC/DD,KAAKi/B,aAAa/wB,IAAKjO,EAAK8W,QAAU,IAGvC/W,KAAK4zB,MAAMnkB,GAA0C,UAAU,CAAE+F,EAAKvV,KACrED,KAAKi/B,aAAah5B,OAAQhG,EAAK8W,QAAU,IAI1C/W,KAAK2sG,WAAW/8F,SAAU5P,KAAK+W,SAE/BgoB,GAA4B,CAC3BC,iBAAkBh/B,KAAK2sG,WACvB1tE,aAAcj/B,KAAKi/B,aACnBC,UAAWl/B,KAAK4zB,MAChBuL,gBAAiBn/B,KAAKk+G,QACtB5rF,oBAAqBtyB,KAAKu9B,QAAUv9B,KAAKu9B,OAAOjL,qBAElD,CAKgB,OAAArK,GACfpa,MAAMoa,UAENjoB,KAAKi/B,aAAahX,UAClBjoB,KAAK2sG,WAAW1kF,SACjB,E,eC5LD,SAqBA,SAAgBw2F,GACf,IAAIljH,EAA0Bo0B,EAAvBrQ,EAAQ,GAAIo/F,EAAQ,EAE3B,GAAoB,iBAATD,EAEV,GAAI,GAAMA,GACTn/F,EAAQ,GAAMm/F,GAAM38G,QACpB6tB,EAAQ,WAIJ,GAAa,gBAAT8uF,EACRC,EAAQ,EACR/uF,EAAQ,MACRrQ,EAAQ,CAAC,EAAE,EAAE,QAIT,GAAI,kBAAkBrd,KAAKw8G,GAAO,CACtC,IAAI/5G,EAAO+5G,EAAK38G,MAAM,GAGtB48G,EAAQ,GAFJ1qG,EAAOtP,EAAKpM,SACM,GAIrBgnB,EAAQ,CACPliB,SAASsH,EAAK,GAAKA,EAAK,GAAI,IAC5BtH,SAASsH,EAAK,GAAKA,EAAK,GAAI,IAC5BtH,SAASsH,EAAK,GAAKA,EAAK,GAAI,KAEhB,IAATsP,IACH0qG,EAAQthH,SAASsH,EAAK,GAAKA,EAAK,GAAI,IAAM,OAI3C4a,EAAQ,CACPliB,SAASsH,EAAK,GAAKA,EAAK,GAAI,IAC5BtH,SAASsH,EAAK,GAAKA,EAAK,GAAI,IAC5BtH,SAASsH,EAAK,GAAKA,EAAK,GAAI,KAEhB,IAATsP,IACH0qG,EAAQthH,SAASsH,EAAK,GAAKA,EAAK,GAAI,IAAM,MAIvC4a,EAAM,KAAIA,EAAM,GAAK,GACrBA,EAAM,KAAIA,EAAM,GAAK,GACrBA,EAAM,KAAIA,EAAM,GAAK,GAE1BqQ,EAAQ,KACT,MAGK,GAAIp0B,EAAI,mFAAmFge,KAAKklG,GAAO,CAC3G,IAAIz8G,EAAOzG,EAAE,GACTojH,EAAiB,QAAT38G,EAEZ2tB,EADIjrB,EAAO1C,EAAK8U,QAAQ,KAAM,IAE9B,IAAI9C,EAAgB,SAATtP,EAAkB,EAAa,SAATA,EAAkB,EAAI,EACvD4a,EAAQ/jB,EAAE,GAAGgzB,OACXxxB,MAAM,mBACNC,KAAI,SAAU9C,EAAGM,GAEjB,GAAI,KAAKyH,KAAK/H,GAEb,OAAIM,IAAMwZ,EAAa4qG,WAAW1kH,GAAK,IAE1B,QAATwK,EAAuC,IAAhBk6G,WAAW1kH,GAAW,IAC1C0kH,WAAW1kH,GAGd,GAAgB,MAAZwK,EAAKlK,GAAY,CAEzB,GAAI,OAAOyH,KAAK/H,GACf,OAAO0kH,WAAW1kH,GAGd,QAAoB2N,IAAhBg3G,GAAS3kH,GACjB,OAAO2kH,GAAS3kH,EAElB,CACA,OAAO0kH,WAAW1kH,EACnB,IAEG8H,IAAS0C,GAAM4a,EAAM1f,KAAK,GAC9B8+G,EAAQ,QAA+B72G,IAAhByX,EAAMtL,GAAX,EAAsCsL,EAAMtL,GAC9DsL,EAAQA,EAAMxd,MAAM,EAAGkS,EACxB,MAGSyqG,EAAKnmH,OAAS,IAAM,iBAAiB2J,KAAKw8G,KAClDn/F,EAAQm/F,EAAK5hH,MAAM,aAAaG,KAAI,SAAUxE,GAC7C,OAAOomH,WAAWpmH,EACnB,IAEAm3B,EAAQ8uF,EAAK5hH,MAAM,aAAaK,KAAK,IAAIyL,oBAKjCm2G,MAAML,GAMP99G,MAAMC,QAAQ69G,IAASA,EAAKnmH,QACpCgnB,EAAQ,CAACm/F,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAChC9uF,EAAQ,MACR+uF,EAAwB,IAAhBD,EAAKnmH,OAAemmH,EAAK,GAAK,GAI9BA,aAAgBznH,SACV,MAAVynH,EAAKhmH,GAAyB,MAAZgmH,EAAKM,KAAyB,MAAVN,EAAKO,GAC9CrvF,EAAQ,MACRrQ,EAAQ,CACPm/F,EAAKhmH,GAAKgmH,EAAKM,KAAON,EAAKO,GAAK,EAChCP,EAAK/lH,GAAK+lH,EAAKQ,OAASR,EAAKS,GAAK,EAClCT,EAAK9lH,GAAK8lH,EAAKU,MAAQV,EAAKW,GAAK,KAIlCzvF,EAAQ,MACRrQ,EAAQ,CACPm/F,EAAKzlH,GAAKylH,EAAKlhH,KAAOkhH,EAAKY,GAAK,EAChCZ,EAAKxlH,GAAKwlH,EAAKtiH,YAAcsiH,EAAKa,GAAK,EACvCb,EAAKvlH,GAAKulH,EAAKc,WAAad,EAAKe,GAAKf,EAAK9lH,GAAK8lH,EAAKgB,aAIvDf,EAAQD,EAAK9iH,GAAK8iH,EAAKC,OAASD,EAAKiB,SAAW,EAE5B,MAAhBjB,EAAKiB,UAAiBhB,GAAS,OAhCnC/uF,EAAQ,MACRrQ,EAAQ,CAACm/F,IAAS,IAAY,MAAPA,KAAqB,EAAU,IAAPA,IAkChD,MAAO,CACN9uF,MAAOA,EACPvkB,OAAQkU,EACRo/F,MAAOA,EAET,EA3JA,IAAIG,GAAW,CACdE,IAAK,EACLY,OAAQ,GACRC,OAAQ,IACRX,MAAO,IACPE,KAAM,IACNU,OAAQ,K,eCmCF,SAASC,GAAcxjH,EAAeyjH,GAC5C,IAAMzjH,EACL,MAAO,GAGR,MAAM0jH,EAAcC,GAAkB3jH,GAEtC,IAAM0jH,EACL,MAAO,GAGR,GAAKA,EAAYrwF,QAAUowF,EAC1B,OAAOzjH,EAGR,GAkH+B4jH,EAlHFF,GAmHtBhpH,OAAOC,KAAM,IAAUk7B,SAAU+tF,EAAYvwF,OAlHnD,MAAO,GAiHT,IAAgCuwF,EA9G/B,MACMC,EADmB,GAAyBH,EAAYrwF,OACzBowF,GAErC,IAAMI,EACL,MAAO,GAKR,OA4CD,SAA4B/0G,EAA0Bg1G,GACrD,OAASA,GACR,IAAK,MAAO,MAAO,IAAKh1G,IACxB,IAAK,MAAO,MAAO,QAASA,EAAQ,OAAUA,EAAQ,OAAUA,EAAQ,OACxE,IAAK,MAAO,MAAO,QAASA,EAAQ,OAAUA,EAAQ,QAAWA,EAAQ,QACzE,IAAK,MAAO,MAAO,QAASA,EAAQ,OAAUA,EAAQ,OAAUA,EAAQ,OACxE,IAAK,MAAO,MAAO,QAASA,EAAQ,OAAUA,EAAQ,MAASA,EAAQ,OACvE,IAAK,MAAO,MAAO,QAASA,EAAQ,OAAUA,EAAQ,MAASA,EAAQ,OAEvE,QAAS,MAAO,GAElB,CAvDQi1G,CAFwBF,EAAoC,QAAtBH,EAAYrwF,MAAkBqwF,EAAYM,SAAWN,EAAY50G,QAE5D20G,EACnD,CA6EA,SAASE,GAAkBnjH,GAG1B,GAAKA,EAAY0xD,WAAY,KAAQ,CACpC,MAAM+xD,EAAY,GAAOzjH,GAEzB,MAAO,CACN6yB,MAAO,MACPvkB,OAAQm1G,EAAUn1G,OAClBk1G,SAAUxjH,EACV4hH,MAAO6B,EAAU7B,MAEnB,CAEA,MAAM/oG,EAAS,GAAO7Y,GAEtB,OAAM6Y,EAAOga,MAINha,EAHC,IAIT,C,eCjLI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ2nB,OC6CR,MAAMkjF,WAA2EnjF,GAI/EojF,UAKAjO,UAMAkO,WAQAC,qBAqGhB,WAAA5+G,CACCw7B,EACA+3C,GAEAznE,MAAO0vB,GAEP,MAAMqjF,EAAU,yBAA0Bl0G,MACpCm0G,EAAY,gCAAiCn0G,MAEnD1M,KAAKygH,UAAYnrC,EAAat1E,KAAM4gH,EAASC,GAE7C7gH,KAAK4R,IAAK,aAAS,GACnB5R,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,WAAW,GACrB5R,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,YAAa,MACvB5R,KAAK4R,IAAK,WAAY,MACtB5R,KAAK4R,IAAK,aAAS,GACnB5R,KAAK4R,IAAK,mBAAe,GAEzB5R,KAAKwyG,UAAYxyG,KAAK8gH,iBAAkBF,GACxC5gH,KAAK0gH,WAAa1gH,KAAK+gH,kBAAmBF,GAC1C7gH,KAAK2gH,qBAAuB3gH,KAAK29B,iBAAkB,CAAE39B,KAAKygH,UAAWzgH,KAAKwyG,YAE1ExyG,KAAKgH,KAAM,eAAgBzH,GAC1BS,KAAM,YACNA,KAAM,YACN,CAAEghH,EAAWC,IAAcD,GAAaC,IAGzC,MAAMj6G,EAAOhH,KAAK69B,aAElB79B,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,wBACA73B,EAAKzH,GAAI,SACTyH,EAAKuyB,GAAI,YAAa,eAAe/gC,IAAUA,IAC/CwO,EAAKuyB,GAAI,UAAW,+BACpBvyB,EAAKuyB,GAAI,YAAa,iCACtBvyB,EAAKuyB,GAAI,cAAe,qCACxBvyB,EAAKuyB,GAAI,YAAa,cAGxBrhB,SAAU,CACT,CACCH,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,yCAGF3mB,SAAUlY,KAAK2gH,sBAEhB3gH,KAAK0gH,aAGR,CAOQ,gBAAAI,CAAkBjhH,GACzB,MAAM2yG,EAAY,IAAIwH,GAAWh6G,KAAKu9B,QAKtC,OAHAi1E,EAAU5oB,IAAM/pF,EAChB2yG,EAAUxrG,KAAM,QAASzH,GAAIS,KAAM,SAE5BwyG,CACR,CASQ,iBAAAuO,CAAmBF,GAC1B,MAAMH,EAAa,IAAIrjF,GAAMr9B,KAAKu9B,QAC5Bv2B,EAAOhH,KAAK69B,aAqBlB,OAnBA6iF,EAAWziF,YAAa,CACvBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,gCACA73B,EAAKuyB,GAAI,YAAa,uCACtBvyB,EAAKuyB,GAAI,cAAe,aAAa/gC,IAAUA,KAEhDqH,GAAIghH,EACJ7N,KAAMhsG,EAAKuyB,GAAI,YAAa,UAE7BrhB,SAAU,CACT,CACCmgB,KAAMrxB,EAAKzH,GAAI,mBAKXmhH,CACR,CAKO,KAAAjhF,CAAOjZ,GACbxmB,KAAKygH,UAAUhhF,MAAOjZ,EACvB,ECnRc,MAAe06F,WAA8F7jF,GAK3G4B,aAmFhB,WAAAl9B,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAK4R,IAAK,aAAS,GACnB5R,KAAK4R,IAAK,UAAM,GAChB5R,KAAK4R,IAAK,mBAAe,GACzB5R,KAAK4R,IAAK,gBAAY,GACtB5R,KAAK4R,IAAK,cAAc,GACxB5R,KAAK4R,IAAK,YAAY,GACtB5R,KAAK4R,IAAK,yBAAqB,GAC/B5R,KAAK4R,IAAK,iBAAa,GAEvB5R,KAAKi/B,aAAe,IAAI1J,GAExBv1B,KAAKgH,KAAM,aAAczH,GAAIS,KAAKi/B,cAClCj/B,KAAK4R,IAAK,WAAW,GAErB,MAAM5K,EAAOhH,KAAK69B,aAElB79B,KAAKi+B,YAAa,CACjBlmB,IAAK,QACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,WACA73B,EAAKuyB,GAAI,YAAa,oBACtBvyB,EAAKuyB,GAAI,UAAW,uBACpBvyB,EAAKuyB,GAAI,WAAY,aAEtB15B,GAAImH,EAAKzH,GAAI,MACb4mC,YAAan/B,EAAKzH,GAAI,eACtB0zG,SAAUjsG,EAAKzH,GAAI,YACnB4hH,SAAUn6G,EAAKzH,GAAI,cACnB,eAAgByH,EAAKuyB,GAAI,YAAY,GACrC,mBAAoBvyB,EAAKzH,GAAI,qBAC7B,aAAcyH,EAAKzH,GAAI,cAExBkQ,GAAI,CACHyN,MAAOlW,EAAKzH,IAAI,IAAKrD,KACpB8D,KAAK4Q,KAAM,WAAY1U,GACvB8D,KAAKohH,gBAAgB,IAEtBt7E,OAAQ9+B,EAAKzH,GAAIS,KAAKohH,eAAep6G,KAAMhH,SAG9C,CAKgB,MAAAk4B,GACfrqB,MAAMqqB,SAENl4B,KAAKi/B,aAAa/wB,IAAKlO,KAAK+W,SAE5B/W,KAAKqhH,oBAAqBrhH,KAAKxH,OAC/BwH,KAAKohH,iBAILphH,KAAKyP,GAA2B,gBAAgB,CAAE+F,EAAKxT,EAAMxJ,KAC5DwH,KAAKqhH,oBAAqB7oH,GAC1BwH,KAAKohH,gBAAgB,GAEvB,CAKgB,OAAAn5F,GACfpa,MAAMoa,UAENjoB,KAAKi/B,aAAahX,SACnB,CAKO,MAAAq5F,GACNthH,KAAK+W,QAASuqG,QACf,CAKO,KAAA7hF,GACNz/B,KAAK+W,QAAS0oB,OACf,CAKO,KAAAo4D,GACN73F,KAAKxH,MAAQwH,KAAK+W,QAASve,MAAQ,GACnCwH,KAAKohH,gBACN,CAKU,cAAAA,GACTphH,KAAKssC,SAA+BtsC,KAAK+W,QAYvBve,KAXnB,CAKQ,mBAAA6oH,CAAqB7oH,GAC5BwH,KAAK+W,QAASve,MAAWA,GAAmB,IAAVA,EAAqBA,EAAL,EACnD,E,cCtNG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ8kC,OCKR,MAAMikF,WAAkBL,GAYtC,WAAAn/G,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAK4R,IAAK,YAAa,QAEvB,MAAM5K,EAAOhH,KAAK69B,aAElB79B,KAAK45B,eAAgB,CACpBr0B,WAAY,CACXi8G,UAAWx6G,EAAKzH,GAAI,eAGvB,ECzBc,MAAMkiH,WAAsBF,GAI1C,WAAAx/G,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAK45B,eAAgB,CACpBr0B,WAAY,CACX4F,KAAM,OACN0zB,MAAO,CACN,mBAIJ,ECfc,MAAM6iF,WAAwBH,GAkC5C,WAAAx/G,CACCw7B,GACA,IAAE3kC,EAAG,IAAEE,EAAG,KAAE8nF,GAIR,CAAC,GAEL/yE,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAElB79B,KAAK4R,IAAK,MAAOhZ,GACjBoH,KAAK4R,IAAK,MAAO9Y,GACjBkH,KAAK4R,IAAK,OAAQgvE,GAElB5gF,KAAK45B,eAAgB,CACpBr0B,WAAY,CACX4F,KAAM,SACN0zB,MAAO,CACN,mBAEDjmC,IAAKoO,EAAKzH,GAAI,OACdzG,IAAKkO,EAAKzH,GAAI,OACdqhF,KAAM55E,EAAKzH,GAAI,UAGlB,E,eC1EG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ+9B,OCQR,MAAMqkF,WAA0BtkF,GAQ9BnlB,SAuBhB,WAAAnW,CAAaw7B,GACZ1vB,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAElB79B,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,WAAY,MAEtB5R,KAAKkY,SAAWlY,KAAK29B,mBAErB39B,KAAKi+B,YAAa,CACjBlmB,IAAK,MAELxS,WAAY,CACXs5B,MAAO,CACN,KACA,WACA,qBACA73B,EAAKzH,GAAI,YAAY/G,GAAS,sBAAuBA,MACrDwO,EAAKuyB,GAAI,YAAa,+BAEvB05E,SAAU,MAGX/6F,SAAUlY,KAAKkY,SAEfzI,GAAI,CAGHmyG,YAAa56G,EAAKzH,IAAIiW,IAC8C,UAA5DA,EAAI5R,OAAwB0nD,QAAQu2D,qBAI3CrsG,EAAI2gB,gBAAgB,MAIxB,CAOO,KAAAsJ,GACN,GAAKz/B,KAAKkY,SAAS5f,OAAS,CAC3B,MAAMqO,EAAkB3G,KAAKkY,SAASub,MAEL,mBAArB9sB,EAAW84B,MACtB94B,EAAW84B,QAiBX,EAAY,8CAA+C,CAAE0wB,UAAWnwD,KAAKkY,SAASub,MAAOquF,cAAe9hH,MAE9G,CACD,CAOO,SAAA6zG,GACN,GAAK7zG,KAAKkY,SAAS5f,OAAS,CAC3B,MAAM85C,EAAiBpyC,KAAKkY,SAASwb,KAED,mBAAxB0e,EAAUyhE,UACrBzhE,EAAUyhE,YAEVzhE,EAAU3S,OAEZ,CACD,E,eCvIG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQnC,OCoER,MAAMykF,WAAqB1kF,GAIzB07E,WAeAiJ,UAKA/iF,aASA0tE,WAQTsV,SAQAC,YAgEP,WAAAngH,CACCw7B,EACAw7E,EACAiJ,GAEAn0G,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAElB79B,KAAK+4G,WAAaA,EAClB/4G,KAAKgiH,UAAYA,EAEjBhiH,KAAK4R,IAAK,UAAU,GACpB5R,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,aAAS,GACnB5R,KAAK4R,IAAK,UAAM,GAChB5R,KAAK4R,IAAK,gBAAiB,QAG3B5R,KAAKgiH,UAAUh7G,KAAM,aAAczH,GAAIS,KAAM,UAE7CA,KAAK2sG,WAAa,IAAI32E,GACtBh2B,KAAKi/B,aAAe,IAAI1J,GAExBv1B,KAAKi+B,YAAa,CACjBlmB,IAAK,MAELxS,WAAY,CACXs5B,MAAO,CACN,KACA,cACA73B,EAAKzH,GAAI,SACTyH,EAAKuyB,GAAI,YAAa,eAAe/gC,IAAUA,KAEhDqH,GAAImH,EAAKzH,GAAI,MACb,mBAAoByH,EAAKzH,GAAI,sBAG9B2Y,SAAU,CACT6gG,EACAiJ,KAIFjJ,EAAWn/E,eAAgB,CAC1Br0B,WAAY,CACXs5B,MAAO,CACN,uBAED,4BAA6B73B,EAAKzH,GAAI,YAGzC,CAKgB,MAAA24B,GACfrqB,MAAMqqB,SAENl4B,KAAKi/B,aAAa/wB,IAAKlO,KAAK+4G,WAAWhiG,SACvC/W,KAAKi/B,aAAa/wB,IAAKlO,KAAKgiH,UAAUjrG,SAGtC/W,KAAK4P,SAAmC5P,KAAK+4G,WAAY,QAAQ,KAChE/4G,KAAKy5G,QAAUz5G,KAAKy5G,MAAM,IAK3Bz5G,KAAKyP,GAAoC,iBAAiB,CAAE+F,EAAKxT,EAAMy3G,KACtE,GAAMA,EAMN,GAA4B,SAAvBz5G,KAAKmiH,cAA2B,CACpC,MAAMC,EAAuBL,GAAaM,oBAAqB,CAC9DtrG,QAAS/W,KAAKgiH,UAAUjrG,QACxBnT,OAAQ5D,KAAK+4G,WAAWhiG,QACxBoS,eAAe,EACfF,UAAWjpB,KAAKsiH,kBAGjBtiH,KAAKgiH,UAAUv6F,SACd26F,EAAuBA,EAAqBpgH,KAAOhC,KAAKsiH,gBAAiB,GAAItgH,IAE/E,MACChC,KAAKgiH,UAAUv6F,SAAWznB,KAAKmiH,aAChC,IAIDniH,KAAK2sG,WAAW/8F,SAAU5P,KAAK+W,SAE/B,MAAMwrG,EAAgB,CAAEz/G,EAAe8zB,KACjC52B,KAAKy5G,SACTz5G,KAAKy5G,QAAS,EACd7iF,IACD,EAID52B,KAAK2sG,WAAW/6F,IAAK,aAAa,CAAE9O,EAAM8zB,KAEpC52B,KAAK+4G,WAAW54E,YAAcngC,KAAKy5G,SACvCz5G,KAAKy5G,QAAS,EACd7iF,IACD,IAID52B,KAAK2sG,WAAW/6F,IAAK,cAAc,CAAE9O,EAAM8zB,KACrC52B,KAAKy5G,QACT7iF,GACD,IAID52B,KAAK2sG,WAAW/6F,IAAK,YAAa2wG,GAClCviH,KAAK2sG,WAAW/6F,IAAK,MAAO2wG,EAC7B,CAKO,KAAA9iF,GACNz/B,KAAK+4G,WAAWt5E,OACjB,CAOA,mBAAY6iF,GACX,MAAM,MACLE,EAAK,MAAEC,EAAK,UACZC,EAAS,UAAEC,EAAS,UACpBC,EAAS,UAAEC,EAAS,gBACpBC,EAAe,gBAAEC,EAAe,gBAChCC,EAAe,gBAAEC,GACdlB,GAAamB,sBAEjB,MAA0C,QAArCljH,KAAKu9B,OAAQjL,oBACV,CACNowF,EAAWC,EAAWG,EAAiBC,EAAiBP,EACxDI,EAAWC,EAAWG,EAAiBC,EAAiBR,GAGlD,CACNE,EAAWD,EAAWK,EAAiBD,EAAiBN,EACxDK,EAAWD,EAAWK,EAAiBD,EAAiBP,EAG3D,CA8GA,6BAA2E,CAC1ED,MAAO,CAAEW,EAAYC,KACb,CACN/gG,IAAK8gG,EAAW1gG,OAChBE,KAAMwgG,EAAWxgG,MAASygG,EAAUjgG,MAAQggG,EAAWhgG,OAAU,EACjEnhB,KAAM,MAGR0gH,UAAWS,IACH,CACN9gG,IAAK8gG,EAAW1gG,OAChBE,KAAMwgG,EAAWxgG,KACjB3gB,KAAM,OAGR2gH,UAAW,CAAEQ,EAAYC,KACjB,CACN/gG,IAAK8gG,EAAW1gG,OAChBE,KAAMwgG,EAAWxgG,KAAOygG,EAAUjgG,MAAQggG,EAAWhgG,MACrDnhB,KAAM,OAGR8gH,gBAAiB,CAAEK,EAAYC,KACvB,CACN/gG,IAAK8gG,EAAW1gG,OAChBE,KAAMwgG,EAAWxgG,MAASygG,EAAUjgG,MAAQggG,EAAWhgG,OAAU,EACjEnhB,KAAM,QAGR+gH,gBAAiB,CAAEI,EAAYC,KACvB,CACN/gG,IAAK8gG,EAAW1gG,OAChBE,KAAMwgG,EAAWxgG,KAAgD,GAAvCygG,EAAUjgG,MAAQggG,EAAWhgG,OAAc,EACrEnhB,KAAM,QAGRygH,MAAO,CAAEU,EAAYC,KACb,CACN/gG,IAAK8gG,EAAW9gG,IAAM+gG,EAAUhgG,OAChCT,KAAMwgG,EAAWxgG,MAASygG,EAAUjgG,MAAQggG,EAAWhgG,OAAU,EACjEnhB,KAAM,MAGR4gH,UAAW,CAAEO,EAAYC,KACjB,CACN/gG,IAAK8gG,EAAW9gG,IAAM+gG,EAAUhgG,OAChCT,KAAMwgG,EAAWxgG,KACjB3gB,KAAM,OAGR6gH,UAAW,CAAEM,EAAYC,KACjB,CACN/gG,IAAK8gG,EAAW9gG,IAAM+gG,EAAUhgG,OAChCT,KAAMwgG,EAAWxgG,KAAOygG,EAAUjgG,MAAQggG,EAAWhgG,MACrDnhB,KAAM,OAGRghH,gBAAiB,CAAEG,EAAYC,KACvB,CACN/gG,IAAK8gG,EAAW9gG,IAAM+gG,EAAUhgG,OAChCT,KAAMwgG,EAAWxgG,MAASygG,EAAUjgG,MAAQggG,EAAWhgG,OAAU,EACjEnhB,KAAM,QAGRihH,gBAAiB,CAAEE,EAAYC,KACvB,CACN/gG,IAAK8gG,EAAW9gG,IAAM+gG,EAAUhgG,OAChCT,KAAMwgG,EAAWxgG,KAAgD,GAAvCygG,EAAUjgG,MAAQggG,EAAWhgG,OAAc,EACrEnhB,KAAM,SAQT,2BAAqCgnB,GCnfvB,MAAM,WAA2B,GAI/Bq6F,UAKhB,WAAAthH,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAKqjH,UAAYrjH,KAAKsjH,mBAEtBtjH,KAAK45B,eAAgB,CACpBr0B,WAAY,CACX,iBAAiB,EACjB,gBAAiBvF,KAAK69B,aAAat+B,GAAI,QAAQ/G,GAASkjB,OAAQljB,QAKlEwH,KAAKuR,SAAU,WAAYhS,GAAIS,KAAM,OACtC,CAKgB,MAAAk4B,GACfrqB,MAAMqqB,SAENl4B,KAAKkY,SAAShK,IAAKlO,KAAKqjH,UACzB,CAKQ,gBAAAC,GACP,MAAMD,EAAY,IAAItR,GAUtB,OARAsR,EAAUnjH,QAAU,GAEpBmjH,EAAUzpF,eAAgB,CACzBr0B,WAAY,CACXs5B,MAAO,wBAIFwkF,CACR,ECrEc,MAAME,WAA6BlmF,GAIjD,WAAAt7B,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAKi+B,YAAa,CACjBlmB,IAAK,OACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,2BAIJ,EChBc,MAAM2kF,WAA6BnmF,GAIjD,WAAAt7B,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAKi+B,YAAa,CACjBlmB,IAAK,OACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,4BAIJ,ECKc,SAAS4kF,GACvB94F,GAOA,GAAKhqB,MAAMC,QAAS+pB,GACnB,MAAO,CACNiJ,MAAOjJ,EACP+4F,YAAa,IAIf,MAAMC,EAA0B,CAC/B/vF,MAAO,GACP8vF,YAAa,IAGd,OAAM/4F,EAIC,IACHg5F,KACAh5F,GALIg5F,CAOT,C,eC9DI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQrmF,OAAvB,MCmCasmF,GAA2D,CACvElU,UAAW,GAAMA,UACjBnB,KAAM,GAAMA,KACZc,aAAc,GAAMA,aACpBt3B,UAAW,GAAMA,UACjBu3B,KAAM,GAAMA,KACZj3E,KAAM,GAAMA,KACZu4E,kBAAmB,GAAMA,kBACzBD,QAAS,GAAMA,QACfE,cAAe,GAAMA,eAMP,MAAMgT,WAAoBxmF,GAIxB94B,QAKAqvB,MAKAqL,aAMA0tE,WAKAmX,UAgBA5rG,SAQAy7F,WAoDCuD,aAOA6M,UAUjB,WAAAhiH,CAAaw7B,EAAgBh5B,GAC5BsJ,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aACZ7iC,EAAIgF,KAAKhF,EAEfgF,KAAKuE,QAAUA,GAAW,CAAC,EAE3BvE,KAAK4R,IAAK,YAAa5W,EAAG,mBAC1BgF,KAAK4R,IAAK,WAAY,QAEtB5R,KAAK4zB,MAAQ5zB,KAAK29B,mBAClB39B,KAAKi/B,aAAe,IAAI1J,GACxBv1B,KAAK2sG,WAAa,IAAI32E,GAEtBh2B,KAAK4R,IAAK,aAAS,GACnB5R,KAAK4R,IAAK,aAAa,GAEvB5R,KAAK8jH,UAAY,IAAIE,GAAWzmF,GAChCv9B,KAAKkY,SAAWlY,KAAK29B,mBACrB39B,KAAKkY,SAAShK,IAAKlO,KAAK8jH,WACxB9jH,KAAK2zG,WAAa3zG,KAAK29B,mBAEvB,MAAMsmF,EAAuC,QAA/B1mF,EAAOjL,oBAErBtyB,KAAKk3G,aAAe,IAAIxD,GAAa,CACpCC,WAAY3zG,KAAK2zG,WACjB10E,aAAcj/B,KAAKi/B,aACnBD,iBAAkBh/B,KAAK2sG,WACvBplD,QAAS,CAER6sD,cAAe,CAAE6P,EAAQ,aAAe,YAAa,WAGrD9P,UAAW,CAAE8P,EAAQ,YAAc,aAAc,gBAInD,MAAMl6E,EAAU,CACf,KACA,aACA/iC,EAAKzH,GAAI,SACTyH,EAAKuyB,GAAI,YAAa,uBC3LV,IAAyB5B,ED8LjC33B,KAAKuE,QAAQ2/G,qBAAuBlkH,KAAKuE,QAAQ4/G,YACrDp6E,EAAQnqC,KAAM,uBAGfI,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAOkL,EACPipE,KAAM,UACN,aAAchsG,EAAKzH,GAAI,aACvB8F,MAAO,CACN++G,SAAUp9G,EAAKzH,GAAI,aAEpB0zG,UAAW,GAGZ/6F,SAAUlY,KAAKkY,SAEfzI,GAAI,CAEH2jG,WClNoCz7E,EDkNT33B,KCjNvB23B,EAAKkG,aAAat+B,IAAIiW,IACvBA,EAAI5R,SAAW+zB,EAAK5gB,SACxBvB,EAAI2gB,gBACL,QDkNAn2B,KAAK+jH,UAAY/jH,KAAKuE,QAAQ2/G,oBAAsB,IAAIG,GAAiBrkH,MAAS,IAAIskH,GAActkH,KACrG,CAKgB,MAAAk4B,GACfrqB,MAAMqqB,SAENl4B,KAAKi/B,aAAa/wB,IAAKlO,KAAK+W,SAG5B,UAAY9W,KAAQD,KAAK4zB,MACxB5zB,KAAKi/B,aAAa/wB,IAAKjO,EAAK8W,SAG7B/W,KAAK4zB,MAAMnkB,GAA8B,OAAO,CAAE+F,EAAKvV,KACtDD,KAAKi/B,aAAa/wB,IAAKjO,EAAK8W,QAAU,IAGvC/W,KAAK4zB,MAAMnkB,GAAiC,UAAU,CAAE+F,EAAKvV,KAC5DD,KAAKi/B,aAAah5B,OAAQhG,EAAK8W,QAAU,IAI1C/W,KAAK2sG,WAAW/8F,SAAU5P,KAAK+W,SAE/B/W,KAAK+jH,UAAU7rF,OAAQl4B,KACxB,CAKgB,OAAAioB,GAKf,OAJAjoB,KAAK+jH,UAAU97F,UACfjoB,KAAKi/B,aAAahX,UAClBjoB,KAAK2sG,WAAW1kF,UAETpa,MAAMoa,SACd,CAKO,KAAAwX,GACNz/B,KAAKk3G,aAAatD,YACnB,CAKO,SAAAC,GACN7zG,KAAKk3G,aAAarD,WACnB,CAWO,cAAA0Q,CACNC,EACAjuH,EACAmtH,GAEA1jH,KAAK4zB,MAAMD,QAAS3zB,KAAKykH,sBAAuBD,EAAejuH,EAASmtH,GACzE,CAUQ,qBAAAe,CACPD,EACAjuH,EACAmtH,GAEA,MAAM/4F,EAAS84F,GAAwBe,GACjCE,EAAwBhB,GAAe/4F,EAAO+4F,YAepD,OAdmB1jH,KAAK2kH,yBAA0Bh6F,EAAOiJ,MAAOr9B,EAASmuH,GACvE1nH,KAAKiD,GACA,EAAUA,GACPD,KAAK4kH,6BAA8B3kH,EAAM1J,EAASmuH,GACrC,MAATzkH,EACJ,IAAIsjH,GACS,MAATtjH,EACJ,IAAIujH,GAGLjtH,EAAQwnB,OAAQ9d,KAEvB8F,QAAU9F,KAA0BA,GAGvC,CAWQ,wBAAA0kH,CACP/wF,EACAr9B,EACAmtH,GAEA,MAAMmB,EAAgBjxF,EACpB7tB,QAAQ,CAAE9F,EAAM0jE,EAAK/vC,IACP,MAAT3zB,IAKwC,IAAxCyjH,EAAYj6G,QAASxJ,KAIZ,MAATA,GAGCD,KAAKuE,QAAQ2/G,sBAmBjB,EAAY,qDAAsDtwF,IAE3D,MAOH,EAAU3zB,KAAW1J,EAAQ0X,IAAKhO,MAqBvC,EAAY,+BAAgC,CAAEA,UAEvC,MAMV,OAAOD,KAAK8kH,8BAA+BD,EAC5C,CAOQ,6BAAAC,CAA+BlxF,GACtC,MAAMmxF,EAA0B9kH,GAAwC,MAATA,GAAyB,MAATA,EACzE0E,EAAQivB,EAAMt7B,OAGd0sH,EAAwBpxF,EAAMqxF,UAAWF,GAG/C,IAAgC,IAA3BC,EACJ,MAAO,GAIR,MAAME,EAAuBvgH,EAAQivB,EACnC9xB,QACAyJ,UACA05G,UAAWF,GAEb,OAAOnxF,EAEL9xB,MAAOkjH,EAAuBE,GAE9Bn/G,QAAQ,CAAE/D,EAAM2hE,EAAK/vC,KAErB,GAAKmxF,EAAuB/iH,GAC3B,OAAO,EAIR,QAFqB2hE,EAAM,GAAK/vC,EAAO+vC,EAAM,KAAQ3hE,EAEjC,GAEvB,CAgBQ,4BAAA4iH,CACP18G,EACAizG,EACAuI,GAEA,IAAI,MAAEjrE,EAAK,KAAE66D,EAAI,MAAE1/E,EAAK,QAAE4/E,GAAU,EAAI,SAAEuG,GAAW,GAAU7xG,EAK/D,GAHA0rB,EAAQ5zB,KAAK2kH,yBAA0B/wF,EAAOunF,EAAkBuI,IAG1D9vF,EAAMt7B,OACX,OAAO,KAGR,MACM6sH,EAAeC,GADNplH,KAAKu9B,QA8CpB,OA3CMkb,GAmBL,EAAY,oDAAqDvwC,GAGlEi9G,EAAatmF,MAAQ,sCACrBsmF,EAAapM,WAAWnnG,IAAK,CAC5B6mC,QACA+6D,UACAuG,WAAYA,KAIC,IAATzG,EAEJ6R,EAAapM,WAAWzF,KAAOsQ,GAAsBtQ,IAAWA,GAAQ,GAAM1C,kBAI9EuU,EAAapM,WAAWgB,UAAW,EAGpCsL,GAAsBF,GAAc,IACnCA,EAAajD,YAAauC,sBAAuB7wF,EAAOunF,EAAkBuI,KAGpEyB,CACR,EAwBD,MAAMnB,WAAkB3mF,GAIPnlB,SAKhB,WAAAnW,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAKkY,SAAWlY,KAAK29B,mBAErB39B,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,sBAGF3mB,SAAUlY,KAAKkY,UAEjB,EAQD,MAAMosG,GAOL,WAAAviH,CAAa41B,GACZ,MAAM3wB,EAAO2wB,EAAKkG,aAGlBlG,EAAK/lB,IAAK,cAAc,GAGxB+lB,EAAKmsF,UAAU5rG,SAAS7D,OAAQsjB,EAAK/D,OAAQiB,OAAO50B,GAAQA,IAG5D03B,EAAKg8E,WAAWt/F,OAAQsjB,EAAK/D,OAAQiB,OAAO50B,GAAQs0G,GAAat0G,GAASA,EAAO,OAEjF03B,EAAKiC,eAAgB,CACpBr0B,WAAY,CACXs5B,MAAO,CAEN73B,EAAKuyB,GAAI,aAAc,0BAI3B,CAKO,MAAArB,GAAgB,CAKhB,OAAAjQ,GAAiB,EAqBzB,MAAMo8F,GAIW1sF,KAKA2iC,aAKAgrD,eAKAC,cAKAC,iBAKAC,WAWAC,eAUAC,aAQAC,qBAUTC,eAAwC,KAUxCC,cAA+B,KAQ/BC,kCAA4C,EAO5C5kE,YAQP,WAAAp/C,CAAa41B,GACZ33B,KAAK23B,KAAOA,EAEZ33B,KAAKs6D,aAAe3iC,EAAKzf,SACzBlY,KAAKslH,eAAiB3tF,EAAKg8E,WAC3B3zG,KAAKulH,cAAgB5tF,EAAKmsF,UAC1B9jH,KAAKwlH,iBAAmB7tF,EAAKsH,aAC7Bj/B,KAAKylH,WAAa9tF,EAAK4F,OAEvBv9B,KAAK0lH,eAAiB/tF,EAAKgG,mBAC3B39B,KAAK2lH,aAAehuF,EAAKgG,mBACzB39B,KAAK4lH,qBAAuB5lH,KAAKgmH,8BAGjCruF,EAAKmsF,UAAU5rG,SAAS7D,OAAQrU,KAAK0lH,gBAAiB7wF,OAAO50B,GAAQA,IAGrED,KAAK0lH,eAAej2G,GAA2B,SAAUzP,KAAKs2G,0BAA0BtvG,KAAMhH,OAG9F23B,EAAKzf,SAASzI,GAA2B,SAAUzP,KAAKs2G,0BAA0BtvG,KAAMhH,OAMxF23B,EAAK/D,MAAMnkB,GAAiC,UAAU,CAAE+F,EAAKywG,KAC5D,MAAMrhH,EAAQqhH,EAAWrhH,MACnBmvB,EAAQpzB,MAAMrB,KAAM2mH,EAAWlyF,OAGrC,UAAYmyF,KAAeD,EAAWjyF,QAChCpvB,GAAS5E,KAAK0lH,eAAeptH,OACjC0H,KAAK2lH,aAAa1/G,OAAQigH,GAE1BlmH,KAAK0lH,eAAez/G,OAAQigH,GAK9B,QAAUC,EAAevhH,EAAOuhH,EAAevhH,EAAQmvB,EAAMz7B,OAAQ6tH,IAAiB,CACrF,MAAMC,EAAYryF,EAAOoyF,EAAevhH,GAEnCuhH,EAAenmH,KAAK0lH,eAAeptH,OACvC0H,KAAK2lH,aAAaz3G,IAAKk4G,EAAWD,EAAenmH,KAAK0lH,eAAeptH,QAErE0H,KAAK0lH,eAAex3G,IAAKk4G,EAAWD,EAEtC,CAMAnmH,KAAKqmH,iBAAiB,IAGvB1uF,EAAKiC,eAAgB,CACpBr0B,WAAY,CACXs5B,MAAO,CAEN,yBAIJ,CAOO,MAAA3G,CAAQP,GACd33B,KAAKmhD,YAAcxpB,EAAK5gB,QAExB/W,KAAKsmH,0BACLtmH,KAAKumH,gCAAiC5uF,EACvC,CAKO,OAAA1P,GAGNjoB,KAAK4lH,qBAAqB39F,UAE1BjoB,KAAK6lH,eAAgB59F,SACtB,CAUQ,eAAAo+F,GAMP,IAAMrmH,KAAKmhD,YAAathC,cAAcoD,KAAKqC,SAAUtlB,KAAKmhD,aACzD,OAQD,IAAMp4B,GAAW/oB,KAAKmhD,aAGrB,YAFAnhD,KAAK+lH,kCAAmC,GAOzC,MAAMS,EAA2BxmH,KAAK2lH,aAAartH,OACnD,IAAImuH,EAKJ,KAAQzmH,KAAK0mH,sBACZ1mH,KAAK2mH,iBAELF,GAAmB,EAMpB,IAAMA,GAAoBzmH,KAAK2lH,aAAartH,OAAS,CAEpD,KAAQ0H,KAAK2lH,aAAartH,SAAW0H,KAAK0mH,sBACzC1mH,KAAK4mH,oBAOD5mH,KAAK0mH,sBACT1mH,KAAK2mH,gBAEP,CAEK3mH,KAAK2lH,aAAartH,SAAWkuH,GACjCxmH,KAAK23B,KAAK/mB,KAA0C,qBAEtD,CAMA,wBAAY81G,GAEX,IAAM1mH,KAAK0lH,eAAeptH,OACzB,OAAO,EAGR,MAAMye,EAAU/W,KAAKmhD,YACf7uB,EAAsBtyB,KAAKylH,WAAWnzF,oBACtCu0F,EAAgB,IAAI,GAAM9vG,EAASq7B,WACnC00E,EAAc,IAAI,GAAM/vG,GAE9B,IAAM/W,KAAK8lH,cAAgB,CAC1B,MAAMiB,EAAgB,GAAOxjH,OAAO6e,iBAAkBrL,GAChDiwG,EAA0C,QAAxB10F,EAAgC,eAAiB,cAKzEtyB,KAAK8lH,cAAgBz+F,OAAOjqB,SAAU2pH,EAAeC,GACtD,CAEA,MAA6B,QAAxB10F,EACGu0F,EAActkG,MAAQukG,EAAYvkG,MAAQviB,KAAK8lH,cAE/Ce,EAAclkG,KAAOmkG,EAAYnkG,KAAO3iB,KAAK8lH,aAEtD,CAYQ,uBAAAQ,GACP,IAAIW,EAGJjnH,KAAK6lH,eAAiB,IAAIn+F,GAAgB1nB,KAAKmhD,aAAc9nC,IACtD4tG,GAAiBA,IAAkB5tG,EAAM6tG,YAAY/jG,QAASnjB,KAAK+lH,mCACxE/lH,KAAK+lH,kCAAmC,EAExC/lH,KAAKqmH,kBAELY,EAAgB5tG,EAAM6tG,YAAY/jG,MACnC,IAGDnjB,KAAKqmH,iBACN,CAMQ,+BAAAE,CAAiC5uF,GACxCA,EAAKloB,GAA2B,mBAAmB,KAClDzP,KAAKqmH,iBAAiB,GAExB,CAQQ,cAAAM,GACD3mH,KAAK2lH,aAAartH,SACvB0H,KAAKs6D,aAAapsD,IAAK,IAAIq1G,IAC3BvjH,KAAKs6D,aAAapsD,IAAKlO,KAAK4lH,sBAC5B5lH,KAAKwlH,iBAAiBt3G,IAAKlO,KAAK4lH,qBAAqB7uG,UAGtD/W,KAAK2lH,aAAaz3G,IAAKlO,KAAK0lH,eAAez/G,OAAQjG,KAAK0lH,eAAehyF,MAAS,EACjF,CAQQ,iBAAAkzF,GACP5mH,KAAK0lH,eAAex3G,IAAKlO,KAAK2lH,aAAa1/G,OAAQjG,KAAK2lH,aAAalyF,QAE/DzzB,KAAK2lH,aAAartH,SACvB0H,KAAKs6D,aAAar0D,OAAQjG,KAAK4lH,sBAC/B5lH,KAAKs6D,aAAar0D,OAAQjG,KAAKs6D,aAAa5mC,MAC5C1zB,KAAKwlH,iBAAiBv/G,OAAQjG,KAAK4lH,qBAAqB7uG,SAE1D,CAMQ,2BAAAivG,GACP,MAAMzoF,EAASv9B,KAAKylH,WACdzqH,EAAIuiC,EAAOviC,EACXmsH,EAAW/B,GAAgB7nF,GAiBjC,OAfA4pF,EAAStoF,MAAQ,+BAIjBsoF,EAAShF,cAA+C,QAA/B5kF,EAAOjL,oBAAgC,KAAO,KAEvE+yF,GAAsB8B,EAAUnnH,KAAK2lH,cAErCwB,EAASpO,WAAWnnG,IAAK,CACxB6mC,MAAOz9C,EAAG,mBACVw4G,SAAS,EACT4T,gBAAgD,QAA/B7pF,EAAOjL,oBAAgC,KAAO,KAC/DghF,KAAM,GAAM1C,oBAGNuW,CACR,CAYQ,yBAAA7Q,GACPt2G,KAAKslH,eAAevzG,QAEpB/R,KAAK0lH,eAAe1oH,KAAKiD,IACnBs0G,GAAat0G,IACjBD,KAAKslH,eAAep3G,IAAKjO,EAC1B,IAGID,KAAK2lH,aAAartH,QACtB0H,KAAKslH,eAAep3G,IAAKlO,KAAK4lH,qBAEhC,EEhiCc,MAAMyB,WAAqBhqF,GAIzBnlB,SAchB,WAAAnW,CAAaw7B,GACZ1vB,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAElB79B,KAAK4R,IAAK,aAAa,GAEvB5R,KAAKkY,SAAWlY,KAAK29B,mBAErB39B,KAAKi+B,YAAa,CACjBlmB,IAAK,KAELxS,WAAY,CACXs5B,MAAO,CACN,KACA,gBACA73B,EAAKuyB,GAAI,YAAa,aAAa/gC,IAAUA,KAE9Cw6G,KAAM,gBAGP96F,SAAUlY,KAAKkY,UAEjB,CAKO,KAAAunB,GACDz/B,KAAKkY,SAASub,OAClBzzB,KAAKkY,SAASub,MAAMgM,OAEtB,ECrDc,MAAM6nF,WAA0BjqF,GAI9C,WAAAt7B,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAKi+B,YAAa,CACjBlmB,IAAK,KACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,wBAIJ,ECXc,MAAM0oF,WAA0BlqF,GAe9Bm1E,UAKA5+E,MAKA1b,SAkBhB,WAAAnW,CAAaw7B,EAAiBi1E,EAAuB,IAAIwH,IACxDnsG,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aACZ2pF,EAAa,IAAIC,GAAUlqF,GAEjCv9B,KAAK4R,IAAK,CACT6mC,MAAO,GACP1vB,WAAW,IAGZ/oB,KAAKwyG,UAAYA,EACjBxyG,KAAKwyG,UAAUxrG,KAAM,QAASzH,GAAIS,KAAM,SAExCA,KAAKkY,SAAWlY,KAAK29B,mBACrB39B,KAAKkY,SAASyb,QAAS,CAAE3zB,KAAKwyG,UAAWgV,IAEzCA,EAAW51G,IAAK,CACfohG,KAAM,QACN0U,eAAgBlV,EAAU3yG,KAI3B2nH,EAAWvoF,aAAahX,UACxBu/F,EAAW7a,WAAW1kF,UAEtBjoB,KAAK4zB,MAAQ4zF,EAAW5zF,MAExB5zB,KAAKi+B,YAAa,CACjBlmB,IAAK,KAELxS,WAAY,CACXytG,KAAM,eACNn0E,MAAO,CACN,KACA,iBACA73B,EAAKuyB,GAAI,YAAa,aAAa/gC,IAAUA,MAI/C0f,SAAUlY,KAAKkY,UAEjB,CAKO,KAAAunB,GACN,GAAKz/B,KAAK4zB,MAAQ,CACjB,MAAM+zF,EAAgB3nH,KAAK4zB,MAAMW,MAAMt0B,KAAWA,aAAgBqnH,MAC7DK,GACJA,EAAcloF,OAEhB,CACD,E,eCnHG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQnC,OCmBR,MAAMmqF,WAAiBpqF,GAMrBs2E,WAKA//E,MAKAqL,aAKA0tE,WA0BCuK,aAMA0Q,gCAAiG,IAAIr0F,QAKtH,WAAAxxB,CAAaw7B,GACZ1vB,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAElB79B,KAAK2zG,WAAa,IAAIn8E,GACtBx3B,KAAK4zB,MAAQ5zB,KAAK29B,mBAClB39B,KAAKi/B,aAAe,IAAI1J,GACxBv1B,KAAK2sG,WAAa,IAAI32E,GAEtBh2B,KAAKk3G,aAAe,IAAIxD,GAAa,CACpCC,WAAY3zG,KAAK2zG,WACjB10E,aAAcj/B,KAAKi/B,aACnBD,iBAAkBh/B,KAAK2sG,WACvBplD,QAAS,CAER6sD,cAAe,UAGfD,UAAW,eAIbn0G,KAAK4R,IAAK,iBAAa,GACvB5R,KAAK4R,IAAK,sBAAkB,GAC5B5R,KAAK4R,IAAK,YAAQ,GAElB5R,KAAKi+B,YAAa,CACjBlmB,IAAK,KAELxS,WAAY,CACXs5B,MAAO,CACN,KACA,WACA,WAEDm0E,KAAMhsG,EAAKzH,GAAI,QACf,aAAcyH,EAAKzH,GAAI,aACvB,kBAAmByH,EAAKzH,GAAI,mBAG7B2Y,SAAUlY,KAAK4zB,OAEjB,CAKgB,MAAAsE,GACfrqB,MAAMqqB,SAGN,UAAYj4B,KAAQD,KAAK4zB,MACnB3zB,aAAgBsnH,GACpBvnH,KAAK6nH,6BAA8B5nH,GACxBA,aAAgBonH,IAC3BrnH,KAAK8nH,2BAA4B7nH,GAInCD,KAAK4zB,MAAMnkB,GAA0B,UAAU,CAAE+F,EAAK1S,KACrD,UAAYkxB,KAAWlxB,EAAKkxB,QACtBA,aAAmBuzF,GACvBvnH,KAAK+nH,+BAAgC/zF,GAC1BA,aAAmBqzF,IAC9BrnH,KAAKgoH,6BAA8Bh0F,GAIrC,UAAYD,KAASpzB,MAAMrB,KAAMwD,EAAKixB,OAAQxoB,UACxCwoB,aAAiBwzF,GACrBvnH,KAAK6nH,6BAA8B9zF,EAAOjxB,EAAK8B,OAE/C5E,KAAK8nH,2BAA4B/zF,EAAOjxB,EAAK8B,MAE/C,IAID5E,KAAK2sG,WAAW/8F,SAAU5P,KAAK+W,QAChC,CAKgB,OAAAkR,GACfpa,MAAMoa,UAENjoB,KAAKi/B,aAAahX,UAClBjoB,KAAK2sG,WAAW1kF,SACjB,CAKO,KAAAwX,GACNz/B,KAAKk3G,aAAatD,YACnB,CAKO,UAAAA,GACN5zG,KAAKk3G,aAAatD,YACnB,CAKO,SAAAC,GACN7zG,KAAKk3G,aAAarD,WACnB,CAQQ,0BAAAiU,CAA4B7nH,EAAoB2E,GACvD5E,KAAKi/B,aAAa/wB,IAAKjO,EAAK8W,SAC5B/W,KAAK2zG,WAAWzlG,IAAKjO,EAAM2E,EAC5B,CAOQ,4BAAAojH,CAA8B/nH,GACrCD,KAAKi/B,aAAah5B,OAAQhG,EAAK8W,SAC/B/W,KAAK2zG,WAAW1tG,OAAQhG,EACzB,CASQ,8BAAAgoH,CAAgCC,GACvC,MAAO,CAAE1yG,EAAK1S,KACb,UAAYkxB,KAAWlxB,EAAKkxB,QAC3Bh0B,KAAKgoH,6BAA8Bh0F,GAGpC,UAAYD,KAASpzB,MAAMrB,KAAMwD,EAAKixB,OAAQxoB,UAC7CvL,KAAK8nH,2BAA4B/zF,EAAO/zB,KAAK4zB,MAAMO,SAAU+zF,GAAcplH,EAAK8B,MACjF,CAEF,CAQQ,4BAAAijH,CAA8BK,EAA8BC,GACnExnH,MAAMrB,KAAM4oH,EAAUt0F,OAAQh2B,SAAS,CAAE0a,EAAOsjB,KAC/C,MAAMwsF,OAA6C,IAAfD,EAA6BA,EAAavsF,OAAa,EAE3F57B,KAAK8nH,2BAA4BxvG,EAAuB8vG,EAAsB,IAG/E,MAAMC,EAA2BroH,KAAKioH,+BAAgCC,GAGtEloH,KAAK4nH,gCAAgCh2G,IAAKs2G,EAAWG,GAErDH,EAAUt0F,MAAMnkB,GAA0B,SAAU44G,EACrD,CAOQ,8BAAAN,CAAgCG,GACvC,UAAY5vG,KAAS4vG,EAAUt0F,MAC9B5zB,KAAKgoH,6BAA8B1vG,GAGpC4vG,EAAUt0F,MAAMtnB,IAAK,SAAUtM,KAAK4nH,gCAAgCx/G,IAAK8/G,IACzEloH,KAAK4nH,gCAAgC91G,OAAQo2G,EAC9C,E,eChRG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ5qF,OCiCR,MAAMgrF,WAAwBjrF,GAI5BnlB,SAKAqwG,WAKAlF,UASA1W,WAKA1tE,aAoGhB,WAAAl9B,CAAaw7B,EAAiBirF,GAC7B36G,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAGlB79B,KAAK4R,IAAK,aAAS,GACnB5R,KAAK4R,IAAK,kBAAc,GACxB5R,KAAK4R,IAAK,YAAQ,GAClB5R,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,QAAQ,GAClB5R,KAAK4R,IAAK,gBAAgB,GAC1B5R,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,iBAAa,GACvB5R,KAAK4R,IAAK,iBAAiB,GAC3B5R,KAAK4R,IAAK,aAAS,GACnB5R,KAAK4R,IAAK,YAAa,GACvB5R,KAAK4R,IAAK,WAAW,GACrB5R,KAAK4R,IAAK,kBAAmB,KAC7B5R,KAAK4R,IAAK,OAAQ,UAClB5R,KAAK4R,IAAK,YAAY,GAEtB5R,KAAKkY,SAAWlY,KAAK29B,mBACrB39B,KAAKuoH,WAAavoH,KAAKyoH,kBAAmBD,GAC1CxoH,KAAKqjH,UAAYrjH,KAAKsjH,mBACtBtjH,KAAK2sG,WAAa,IAAI32E,GACtBh2B,KAAKi/B,aAAe,IAAI1J,GAExBv1B,KAAKi+B,YAAa,CACjBlmB,IAAK,MAELxS,WAAY,CACXs5B,MAAO,CACN,KACA,iBACA73B,EAAKzH,GAAI,SACTyH,EAAKuyB,GAAI,YAAa,aAAa/gC,IAAUA,IAC7CwH,KAAKqjH,UAAUxlF,aAAatE,GAAI,OAAQ,yBAI1CrhB,SAAUlY,KAAKkY,UAEjB,CAKgB,MAAAggB,GACfrqB,MAAMqqB,SAENl4B,KAAKkY,SAAShK,IAAKlO,KAAKuoH,YACxBvoH,KAAKkY,SAAShK,IAAKlO,KAAKqjH,WAExBrjH,KAAKi/B,aAAa/wB,IAAKlO,KAAKuoH,WAAWxxG,SACvC/W,KAAKi/B,aAAa/wB,IAAKlO,KAAKqjH,UAAUtsG,SAEtC/W,KAAK2sG,WAAW/8F,SAAU5P,KAAK+W,SAG/B/W,KAAK2sG,WAAW/6F,IAAK,cAAc,CAAE4D,EAAKohB,KACpC52B,KAAKi/B,aAAarJ,iBAAmB51B,KAAKuoH,WAAWxxG,UACzD/W,KAAKqjH,UAAU5jF,QAEf7I,IACD,IAID52B,KAAK2sG,WAAW/6F,IAAK,aAAa,CAAE4D,EAAKohB,KACnC52B,KAAKi/B,aAAarJ,iBAAmB51B,KAAKqjH,UAAUtsG,UACxD/W,KAAKuoH,WAAW9oF,QAEhB7I,IACD,GAEF,CAKgB,OAAA3O,GACfpa,MAAMoa,UAENjoB,KAAKi/B,aAAahX,UAClBjoB,KAAK2sG,WAAW1kF,SACjB,CAKO,KAAAwX,GACNz/B,KAAKuoH,WAAW9oF,OACjB,CAMQ,iBAAAgpF,CAAmBD,GAC1B,MAAMD,EAAaC,GAAgB,IAAI,GA0BvC,OAxBMA,GACLD,EAAWvhH,KACV,OACA,YACA,OACA,eACA,YACA,QACA,WACA,UACA,kBACA,OACA,YACCzH,GAAIS,MAGPuoH,EAAW3uF,eAAgB,CAC1Br0B,WAAY,CACXs5B,MAAO,4BAIT0pF,EAAWh3G,SAAU,WAAYhS,GAAIS,MAE9BuoH,CACR,CAMQ,gBAAAjF,GACP,MAAMD,EAAY,IAAI,GAChBr8G,EAAOq8G,EAAUxlF,aAqBvB,OAnBAwlF,EAAU/P,KAAO,GAEjB+P,EAAUzpF,eAAgB,CACzBr0B,WAAY,CACXs5B,MAAO,CACN,yBAED,4BAA6B73B,EAAKzH,GAAI,QACtC,iBAAiB,EACjB,gBAAiByH,EAAKzH,GAAI,QAAQ/G,GAASkjB,OAAQljB,QAIrD6qH,EAAUr8G,KAAM,aAAczH,GAAIS,MAClCqjH,EAAUr8G,KAAM,SAAUzH,GAAIS,MAC9BqjH,EAAUr8G,KAAM,WAAYzH,GAAIS,MAEhCqjH,EAAU9xG,SAAU,WAAYhS,GAAIS,KAAM,QAEnCqjH,CACR,E,eCvUG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ/lF,O,eCTnB,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQA,OCmGhB,SAAS8nF,GACf7nF,EACAmrF,EACkG,IAElG,MAAM3P,EAA6C,mBAAzB2P,EAAsC,IAAIA,EAAuBnrF,GAAWmrF,EAEhG1G,EAAY,IAAIL,GAAmBpkF,GACnC4nF,EAAe,IAAIpD,GAAcxkF,EAAQw7E,EAAYiJ,GAY3D,OAVAjJ,EAAW/xG,KAAM,aAAczH,GAAI4lH,GAE9BpM,aAAsBuP,GAC1BvP,EAAWsK,UAAUr8G,KAAM,QAASzH,GAAI4lH,EAAc,UAEtDpM,EAAW/xG,KAAM,QAASzH,GAAI4lH,EAAc,UA+R9C,SAA6BA,IAY7B,SAAsCA,GACrCA,EAAa11G,GAAuB,UAAU,KAC7CyuB,GAAqB,CACpBluB,QAASm1G,EACThnF,UAAW,IAAMgnF,EAAa1L,OAC9B9pG,SAAU,KACTw1G,EAAa1L,QAAS,CAAK,EAE5Br7E,gBAAiB,IAAM,CACtB+mF,EAAapuG,WACRouG,EAAalmF,aAAazJ,YAE9B,GAEL,EAzBCmzF,CAA6BxD,GA8B9B,SAAiCA,GAEhCA,EAAa11G,GAAwB,WAAW+F,IAE1CA,EAAItS,kBAAkBg5G,KAI3BiJ,EAAa1L,QAAS,EAAK,GAE7B,CAvCCmP,CAAwBzD,GA4CzB,SAA8BA,GAC7BA,EAAalmF,aAAaxvB,GAAoC,oBAAoB,CAAE+F,EAAKxT,EAAM8zB,KACzFqvF,EAAa1L,SAAW3jF,IAC5BqvF,EAAa1L,QAAS,EACvB,GAEF,CAjDCoP,CAAqB1D,GAsDtB,SAAwCA,GAEvCA,EAAaxY,WAAW/6F,IAAK,aAAa,CAAE9O,EAAM8zB,KAC5CuuF,EAAa1L,SACjB0L,EAAanD,UAAUviF,QACvB7I,IACD,IAIDuuF,EAAaxY,WAAW/6F,IAAK,WAAW,CAAE9O,EAAM8zB,KAC1CuuF,EAAa1L,SACjB0L,EAAanD,UAAUnO,YACvBj9E,IACD,GAEF,CArECkyF,CAA+B3D,GA2EhC,SAAqCA,GACpCA,EAAa11G,GAAoC,iBAAiB,CAAE+F,EAAKxT,EAAMy3G,KAC9E,GAAKA,EACJ,OAGD,MAAM1iG,EAAUouG,EAAanD,UAAUjrG,QAKlCA,GAAWA,EAAQuO,SAAU,GAAO9hB,SAASqoD,gBACjDs5D,EAAapM,WAAWt5E,OACzB,GAEF,CAzFCspF,CAA4B5D,GA8F7B,SAAmCA,GAClCA,EAAa11G,GAAoC,iBAAiB,CAAE+F,EAAKxT,EAAMy3G,KACxEA,GAKN0L,EAAanD,UAAUviF,OAAO,GAK5B,CAAEzyB,SAAU,OAChB,CA1GCg8G,CAA0B7D,EAC3B,CAnSC8D,CAAoB9D,GAEbA,CACR,CA8CO,SAASE,GACfF,EACA+D,EACA3kH,EAOI,CAAC,GAEL4gH,EAAavrF,eAAgB,CAC5Br0B,WAAY,CACXs5B,MAAO,CAAE,0BAINsmF,EAAa1L,OACjB0P,GAA0BhE,EAAc+D,EAAmB3kH,GAE3D4gH,EAAat1G,KACZ,iBACA,IAAMs5G,GAA0BhE,EAAc+D,EAAmB3kH,IACjE,CAAEyI,SAAU,YAITzI,EAAQ6kH,qCAEZC,GAA0BlE,GAAc,IAAMA,EAAajD,YAAatuF,MAAMW,MAAQt0B,GAAeA,EAAKs+G,QAE5G,CAKA,SAAS4K,GACRhE,EACA+D,EACA3kH,GAQA,MAAMg5B,EAAS4nF,EAAa5nF,OACtBviC,EAAIuiC,EAAOviC,EAEXknH,EAAciD,EAAajD,YAAc,IAAI2B,GAAatmF,GAC1D+rF,EAAsC,mBAArBJ,EAAkCA,IAAsBA,EAE/EhH,EAAYnK,UAAYxzG,EAAQwzG,WAAa/8G,EAAG,oBAE3CuJ,EAAQ6/G,WACZlC,EAAYkC,SAAW7/G,EAAQ6/G,UAG3B7/G,EAAQs6B,QACZqjF,EAAYrjF,MAAQt6B,EAAQs6B,OAGxBt6B,EAAQglH,YACZrH,EAAYqH,UAAYhlH,EAAQglH,WAG5BhlH,EAAQilH,aACZtH,EAAYsH,YAAa,GAGrBF,aAAmB9xF,GACvB0qF,EAAYtuF,MAAMvf,OAAQi1G,GAAUz0F,OAAO50B,GAAQA,IAEnDiiH,EAAYtuF,MAAMD,QAAS21F,GAG5BnE,EAAanD,UAAU9pG,SAAShK,IAAKg0G,GACrCA,EAAYtuF,MAAMriB,SAAU,WAAYhS,GAAI4lH,EAC7C,CAoDO,SAASsE,GACftE,EACAuE,EACAnlH,EAGI,CAAC,GAEA4gH,EAAa1L,OACjBkQ,GAAuBxE,EAAcuE,EAAiBnlH,GAEtD4gH,EAAat1G,KACZ,iBACA,IAAM85G,GAAuBxE,EAAcuE,EAAiBnlH,IAC5D,CAAEyI,SAAU,YAKdq8G,GAA0BlE,GAAc,IAAMA,EAAalD,SAAUruF,MAAMW,MAAMt0B,GAC3EA,aAAgBonH,IACXpnH,EAAKiY,SAASub,MAAe8qF,QAKzC,CAKA,SAASoL,GACRxE,EACAuE,EACAnlH,GAKA,MAAMg5B,EAAS4nF,EAAa5nF,OACtB0kF,EAAWkD,EAAalD,SAAW,IAAIwF,GAAUlqF,GACjD3J,EAAkC,mBAAnB81F,EAAgCA,IAAoBA,EAEzEzH,EAASlK,UAAYxzG,EAAQwzG,UAC7BkK,EAASjP,KAAOzuG,EAAQyuG,KAExB4W,GAAsCzE,EAAclD,EAASruF,MAAOA,EAAO2J,GAE3E4nF,EAAanD,UAAU9pG,SAAShK,IAAK+zG,GAErCA,EAASruF,MAAMriB,SAAU,WAAYhS,GAAI4lH,EAC1C,CAYO,SAASkE,GACflE,EACA0E,GAEA1E,EAAa11G,GAA2B,iBAAiB,KACxD,IAAM01G,EAAa1L,OAClB,OAGD,MAAMqQ,EAA+DD,IAE/DC,IAI6B,mBAAvBA,EAAarqF,MACxBqqF,EAAarqF,QAab,EAAY,sDAAuD,CAAE9H,KAAMmyF,IAC5E,GAIE,CAAE98G,SAAU,EAAWI,IAAM,IACjC,CAiIA,SAASw8G,GACRzE,EACA4E,EACA7T,EACA34E,GAEAwsF,EAAU11G,OAAQ6hG,GAAcrhF,OAAO4D,IACtC,GAAkB,cAAbA,EAAIttB,KACR,OAAO,IAAIm8G,GAAmB/pF,GACxB,GAAkB,UAAb9E,EAAIttB,KAAmB,CAClC,MAAM+8G,EAAY,IAAIX,GAAmBhqF,GAQzC,OANA2qF,EAAUt2G,IAAK,CAAE6mC,MAAOhgB,EAAIggB,QAE5BmxE,GAAsCzE,EAAc+C,EAAUt0F,MAAO6E,EAAI7E,MAAO2J,GAEhF2qF,EAAUt0F,MAAMriB,SAAU,WAAYhS,GAAI4lH,GAEnC+C,CACR,CAAO,GAAkB,WAAbzvF,EAAIttB,MAAkC,iBAAbstB,EAAIttB,KAA0B,CAClE,MAAM6+G,EAAe,IAAI3C,GAAc9pF,GACvC,IAAIw7E,EAeJ,MAbkB,WAAbtgF,EAAIttB,MACR4tG,EAAa,IAAI,GAAYx7E,GAC7Bw7E,EAAW/xG,KAAM,eAAgBzH,GAAIw5G,EAAY,SAEjDA,EAAa,IAAImD,GAAkB3+E,GAIpCw7E,EAAW/xG,QAAShQ,OAAOC,KAAMwhC,EAAIrgC,QAAqCmH,GAAIk5B,EAAIrgC,OAClF2gH,EAAWxnG,SAAU,WAAYhS,GAAIyqH,GAErCA,EAAa9xG,SAAShK,IAAK6qG,GAEpBiR,CACR,CAEA,OAAO,IAAI,GAEb,CCrhBA,MAAMC,GAAiE,CAAEC,EAAkBtJ,EAASC,KACnG,MAAMsJ,EAAY,IAAI1I,GAAeyI,EAAiB3sF,QAkBtD,OAhBA4sF,EAAUv4G,IAAK,CACd/R,GAAI+gH,EACJwJ,kBAAmBvJ,IAGpBsJ,EAAUnjH,KAAM,cAAezH,GAAI2qH,EAAkB,aAAa1xH,IAAUA,IAC5E2xH,EAAUnjH,KAAM,YAAazH,GAAI2qH,EAAkB,aAAa1xH,KAAWA,IAE3E2xH,EAAU16G,GAAyB,SAAS,KAG3Cy6G,EAAiBlJ,UAAY,IAAI,IAGlCkJ,EAAiBljH,KAAM,UAAW,YAAa,eAAgBzH,GAAI4qH,GAE5DA,CAAS,EA8BXE,GAAqE,CAAEH,EAAkBtJ,EAASC,KACvG,MAAMsJ,EAAY,IAAIzI,GAAiBwI,EAAiB3sF,QAmBxD,OAjBA4sF,EAAUv4G,IAAK,CACd/R,GAAI+gH,EACJwJ,kBAAmBvJ,EACnByJ,UAAW,YAGZH,EAAUnjH,KAAM,cAAezH,GAAI2qH,EAAkB,aAAa1xH,IAAUA,IAC5E2xH,EAAUnjH,KAAM,YAAazH,GAAI2qH,EAAkB,aAAa1xH,KAAWA,IAE3E2xH,EAAU16G,GAAyB,SAAS,KAG3Cy6G,EAAiBlJ,UAAY,IAAI,IAGlCkJ,EAAiBljH,KAAM,UAAW,YAAa,eAAgBzH,GAAI4qH,GAE5DA,CAAS,EA6EXI,GAA+D,CAAEL,EAAkBtJ,EAASC,KACjG,MAAMsE,EAAeC,GAAgB8E,EAAiB3sF,QAStD,OAPA4nF,EAAavzG,IAAK,CACjB/R,GAAI+gH,EACJwJ,kBAAmBvJ,IAGpBsE,EAAan+G,KAAM,aAAczH,GAAI2qH,GAE9B/E,CAAY,ECtMPqF,GAAQ,CAAC9+E,EAAQ9yC,EAAM,EAAGE,EAAM,IAClC4yC,EAAS5yC,EAAMA,EAAM4yC,EAAS9yC,EAAMA,EAAM8yC,EAExC,GAAQ,CAACA,EAAQ++E,EAAS,EAAG/lH,EAAO7L,KAAK6xH,IAAI,GAAID,KACnD5xH,KAAKuD,MAAMsI,EAAOgnC,GAAUhnC,ECI1BimH,IAHG9xH,KAAKgD,GAGKhE,IACP,MAAXA,EAAI,KACJA,EAAMA,EAAI+E,UAAU,IACpB/E,EAAIS,OAAS,EACN,CACHG,EAAG2E,SAASvF,EAAI,GAAKA,EAAI,GAAI,IAC7Ba,EAAG0E,SAASvF,EAAI,GAAKA,EAAI,GAAI,IAC7Bc,EAAGyE,SAASvF,EAAI,GAAKA,EAAI,GAAI,IAC7B8D,EAAkB,IAAf9D,EAAIS,OAAe,GAAM8E,SAASvF,EAAI,GAAKA,EAAI,GAAI,IAAM,IAAK,GAAK,GAGvE,CACHY,EAAG2E,SAASvF,EAAI+E,UAAU,EAAG,GAAI,IACjClE,EAAG0E,SAASvF,EAAI+E,UAAU,EAAG,GAAI,IACjCjE,EAAGyE,SAASvF,EAAI+E,UAAU,EAAG,GAAI,IACjCjB,EAAkB,IAAf9D,EAAIS,OAAe,GAAM8E,SAASvF,EAAI+E,UAAU,EAAG,GAAI,IAAM,IAAK,GAAK,KA6BrEguH,GAAa,EAAG5xH,IAAGC,IAAGK,IAAGqC,QAClC,MAAMkvH,GAAO,IAAM5xH,GAAKK,EAAK,IAC7B,MAAO,CACHN,EAAG,GAAMA,GACTC,EAAG,GAAM4xH,EAAK,GAAKA,EAAK,IAAQ5xH,EAAIK,EAAK,KAAOuxH,GAAM,IAAMA,EAAK,IAAMA,GAAO,IAAM,GACpF3xH,EAAG,GAAM2xH,EAAK,GACdlvH,EAAG,GAAMA,EAAG,GACf,EAUQmvH,GAAmBC,IAC5B,MAAM,EAAE/xH,EAAC,EAAEC,EAAC,EAAEC,GAAM0xH,GAAWG,GAC/B,MAAO,OAAO/xH,MAAMC,OAAOC,KAAK,EAMvB8xH,GAAa,EAAGhyH,IAAGC,IAAGK,IAAGqC,QAClC3C,EAAKA,EAAI,IAAO,EAChBC,GAAQ,IACRK,GAAQ,IACR,MAAMuxH,EAAKhyH,KAAK+B,MAAM5B,GAAIL,EAAIW,GAAK,EAAIL,GAAIQ,EAAIH,GAAK,GAAKN,EAAI6xH,GAAM5xH,GAAIgP,EAAI3O,GAAK,GAAK,EAAIN,EAAI6xH,GAAM5xH,GAAIxC,EAASo0H,EAAK,EACrH,MAAO,CACHpyH,EAAG,GAAmC,IAA7B,CAACa,EAAGG,EAAGd,EAAGA,EAAGsP,EAAG3O,GAAG7C,IAC5BiC,EAAG,GAAmC,IAA7B,CAACuP,EAAG3O,EAAGA,EAAGG,EAAGd,EAAGA,GAAGlC,IAC5BkC,EAAG,GAAmC,IAA7B,CAACA,EAAGA,EAAGsP,EAAG3O,EAAGA,EAAGG,GAAGhD,IAC5BkF,EAAG,GAAMA,EAAG,GACf,EAoCCykH,GAAU10E,IACZ,MAAM7zC,EAAM6zC,EAAOhvC,SAAS,IAC5B,OAAO7E,EAAIS,OAAS,EAAI,IAAMT,EAAMA,CAAG,EAE9BozH,GAAY,EAAGxyH,IAAGC,IAAGC,IAAGgD,QACjC,MAAMuvH,EAAWvvH,EAAI,EAAIykH,GAAO,GAAU,IAAJzkH,IAAY,GAClD,MAAO,IAAMykH,GAAO3nH,GAAK2nH,GAAO1nH,GAAK0nH,GAAOznH,GAAKuyH,CAAQ,EAEhDC,GAAa,EAAG1yH,IAAGC,IAAGC,IAAGgD,QAClC,MAAM7C,EAAMD,KAAKC,IAAIL,EAAGC,EAAGC,GACrBI,EAAQD,EAAMD,KAAKD,IAAIH,EAAGC,EAAGC,GAE7BkyH,EAAK9xH,EACLD,IAAQL,GACHC,EAAIC,GAAKI,EACVD,IAAQJ,EACJ,GAAKC,EAAIF,GAAKM,EACd,GAAKN,EAAIC,GAAKK,EACtB,EACN,MAAO,CACHC,EAAG,GAAM,IAAM6xH,EAAK,EAAIA,EAAK,EAAIA,IACjC5xH,EAAG,GAAMH,EAAOC,EAAQD,EAAO,IAAM,GACrCQ,EAAG,GAAOR,EAAM,IAAO,KACvB6C,IACH,ECrJQyvH,GAAoB,CAAC33F,EAAO43F,KACrC,GAAI53F,IAAU43F,EACV,OAAO,EACX,IAAK,MAAMhjH,KAAQorB,EAMf,GAAIA,EAAMprB,KACNgjH,EAAOhjH,GACP,OAAO,EAEf,OAAO,CAAI,ECdT+iC,GAAQ,CAAC,EACFkgF,GAAO58D,IAChB,IAAI/0B,EAAWyR,GAAMsjB,GAMrB,OALK/0B,IACDA,EAAWn2B,SAAS8B,cAAc,YAClCq0B,EAASzX,UAAYwsC,EACrBtjB,GAAMsjB,GAAQ/0B,GAEXA,CAAQ,EAEN/oB,GAAO,CAAChN,EAAQuH,EAAMogH,KAC/B3nH,EAAO4nH,cAAc,IAAIC,YAAYtgH,EAAM,CACvCugH,SAAS,EACTH,WACD,ECZP,IAAII,IAAa,EAEjB,MAAMC,GAAW1nH,GAAM,YAAaA,EAU9B2nH,GAAc,CAACjoH,EAAQ8L,KACzB,MAAMo8G,EAAUF,GAAQl8G,GAASA,EAAM4lG,QAAQ,GAAK5lG,EAC9C2U,EAAOzgB,EAAOoe,GAAG6B,wBACvBjT,GAAKhN,EAAOoe,GAAI,OAAQpe,EAAOmoH,QAAQ,CACnC7xH,EAAGswH,IAAOsB,EAAQE,OAAS3nG,EAAK1B,KAAOpf,OAAO0oH,cAAgB5nG,EAAKlB,OACnElpB,EAAGuwH,IAAOsB,EAAQI,OAAS7nG,EAAKhC,IAAM9e,OAAO4oH,cAAgB9nG,EAAKjB,UACnE,EAgCA,MAAMgpG,GACT,WAAArqH,CAAYzL,EAAMipB,EAAM8sG,EAAMC,GAC1B,MAAM3yF,EAAW2xF,GAAI,yCAAyC/rG,MAAS8sG,gBAAmB9sG,2BAC1FjpB,EAAKqP,YAAYg0B,EAASz5B,QAAQqsH,WAAU,IAC5C,MAAMvqG,EAAK1rB,EAAKwN,cAAc,SAASyb,MACvCyC,EAAGtR,iBAAiB,YAAa1Q,MACjCgiB,EAAGtR,iBAAiB,aAAc1Q,MAClCgiB,EAAGtR,iBAAiB,UAAW1Q,MAC/BA,KAAKgiB,GAAKA,EACVhiB,KAAKssH,GAAKA,EACVtsH,KAAKsxC,MAAQ,CAACtvB,EAAGrb,WAAYqb,EACjC,CACA,YAAIwqG,CAAS50B,GACT,MAAM60B,EAAc70B,EAAQp0F,SAASkN,iBAAmBlN,SAASmN,oBACjE87G,EAAYd,GAAa,YAAc,YAAa3rH,MACpDysH,EAAYd,GAAa,WAAa,UAAW3rH,KACrD,CACA,WAAA0sH,CAAYh9G,GACR,OAAQA,EAAMvE,MACV,IAAK,YACL,IAAK,aAGD,GAFAuE,EAAMymB,kBAlEN,CAACzmB,KACTi8G,KAAeC,GAAQl8G,KAEtBi8G,KACDA,GAAaC,GAAQl8G,IAClB,IA+DUi9G,CAAQj9G,KAAYi8G,IAA8B,GAAhBj8G,EAAMymG,OACzC,OACJn2G,KAAKgiB,GAAGyd,QACRosF,GAAY7rH,KAAM0P,GAClB1P,KAAKwsH,UAAW,EAChB,MACJ,IAAK,YACL,IAAK,YACD98G,EAAMymB,iBACN01F,GAAY7rH,KAAM0P,GAClB,MACJ,IAAK,UACL,IAAK,WACD1P,KAAKwsH,UAAW,EAChB,MACJ,IAAK,UApED,EAAC5oH,EAAQ8L,KAErB,MAAMue,EAAUve,EAAMue,QAElBA,EAAU,IAAOrqB,EAAO0oH,IAAMr+F,EAAU,IAAOA,EAAU,KAG7Dve,EAAMymB,iBAENvlB,GAAKhN,EAAOoe,GAAI,OAAQpe,EAAOmoH,QAAQ,CACnC7xH,EAAe,KAAZ+zB,EACG,IACY,KAAZA,GACK,IACW,KAAZA,EACI,IACY,KAAZA,GACK,IACW,KAAZA,EACI,EACY,KAAZA,GACK,EACD,EAC1Bh0B,EAAe,KAAZg0B,EACG,IACY,KAAZA,GACK,IACD,IACX,IAAM,EAyCG2+F,CAAQ5sH,KAAM0P,GAG1B,CACA,KAAArK,CAAMi2B,GACFA,EAAO19B,SAAQ,CAACyH,EAAO7K,KACnB,IAAK,MAAMM,KAAKuK,EACZrF,KAAKsxC,MAAM92C,GAAG6K,MAAMwnH,YAAY/xH,EAAGuK,EAAMvK,GAC7C,GAER,EClGG,MAAMgyH,WAAYV,GACrB,WAAArqH,CAAYzL,GACRuX,MAAMvX,EAAM,MAAO,0DAA0D,EACjF,CACA,MAAAwQ,EAAO,EAAE9N,IACLgH,KAAKhH,EAAIA,EACTgH,KAAKqF,MAAM,CACP,CACIsd,KAAU3pB,EAAI,IAAO,IAAf,IACNsD,MAAOwuH,GAAgB,CAAE9xH,IAAGC,EAAG,IAAKK,EAAG,IAAKqC,EAAG,OAGvDqE,KAAKgiB,GAAGvc,aAAa,gBAAiB,GAAG,GAAMzM,KACnD,CACA,OAAA+yH,CAAQ1vG,EAAQtlB,GAEZ,MAAO,CAAEiC,EAAGjC,EAAMyzH,GAAMxqH,KAAKhH,EAAe,IAAXqjB,EAAOniB,EAAS,EAAG,KAAO,IAAMmiB,EAAOniB,EAC5E,ECjBG,MAAM6yH,WAAmBX,GAC5B,WAAArqH,CAAYzL,GACRuX,MAAMvX,EAAM,aAAc,sBAAsB,EACpD,CACA,MAAAwQ,CAAOikH,GACH/qH,KAAK+qH,KAAOA,EACZ/qH,KAAKqF,MAAM,CACP,CACIgd,IAAQ,IAAM0oG,EAAKzxH,EAAd,IACLqpB,KAAM,GAAGooG,EAAK9xH,KACdqD,MAAOwuH,GAAgBC,IAE3B,CACI,mBAAoBD,GAAgB,CAAE9xH,EAAG+xH,EAAK/xH,EAAGC,EAAG,IAAKK,EAAG,IAAKqC,EAAG,OAG5EqE,KAAKgiB,GAAGvc,aAAa,iBAAkB,cAAc,GAAMslH,EAAK9xH,mBAAmB,GAAM8xH,EAAKzxH,MAClG,CACA,OAAAyyH,CAAQ1vG,EAAQtlB,GAEZ,MAAO,CACHkC,EAAGlC,EAAMyzH,GAAMxqH,KAAK+qH,KAAK9xH,EAAe,IAAXojB,EAAOniB,EAAS,EAAG,KAAkB,IAAXmiB,EAAOniB,EAC9DZ,EAAGvC,EAAMyzH,GAAMxqH,KAAK+qH,KAAKzxH,EAAe,IAAX+iB,EAAOpiB,EAAS,EAAG,KAAOpB,KAAKuD,MAAM,IAAiB,IAAXigB,EAAOpiB,GAEvF,EC3BJ,MCOM+yH,GAAUlsH,OAAO,QACjBmsH,GAASnsH,OAAO,SAChBosH,GAAQpsH,OAAO,QACfqsH,GAAUrsH,OAAO,UACjBssH,GAAStsH,OAAO,SACTusH,GAAOvsH,OAAO,OACdwsH,GAAWxsH,OAAO,WACxB,MAAMysH,WAAoBxoG,YAC7B,6BAAWyoG,GACP,MAAO,CAAC,QACZ,CACA,IAAKH,MACD,MAAO,CDnBA,8wBEAA,kKCAA,8SFoBX,CACA,IAAKC,MACD,MAAO,CAACP,GAAYD,GACxB,CACA,SAAIxwH,GACA,OAAO0D,KAAKitH,GAChB,CACA,SAAI3wH,CAAMmxH,GACN,IAAKztH,KAAKgtH,IAASS,GAAW,CAC1B,MAAMC,EAAU1tH,KAAK2tH,WAAWC,OAAOH,GACvCztH,KAAKmtH,IAASO,GACd1tH,KAAKitH,IAAUQ,CACnB,CACJ,CACA,WAAA1rH,GACI8L,QACA,MAAM8rB,EAAW2xF,GAAI,UAAUtrH,KAAKqtH,IAAMnwH,KAAK,eACzC5G,EAAO0J,KAAK6tH,aAAa,CAAEC,KAAM,SACvCx3H,EAAKqP,YAAYg0B,EAASz5B,QAAQqsH,WAAU,IAC5Cj2H,EAAKoa,iBAAiB,OAAQ1Q,MAC9BA,KAAKotH,IAAUptH,KAAKstH,IAAUtwH,KAAK+wH,GAAW,IAAIA,EAAOz3H,IAC7D,CACA,iBAAA03H,GAII,GAAIhuH,KAAKsI,eAAe,SAAU,CAC9B,MAAM9P,EAAQwH,KAAK1D,aACZ0D,KAAY,MACnBA,KAAK1D,MAAQ9D,CACjB,MACUwH,KAAK1D,QACX0D,KAAK1D,MAAQ0D,KAAK2tH,WAAWM,aAErC,CACA,wBAAAC,CAAyBC,EAAOC,EAASC,GACrC,MAAM/xH,EAAQ0D,KAAK2tH,WAAWW,SAASD,GAClCruH,KAAKgtH,IAAS1wH,KACf0D,KAAK1D,MAAQA,EAErB,CACA,WAAAowH,CAAYh9G,GAER,MAAM6+G,EAAUvuH,KAAKktH,IACfQ,EAAU,IAAKa,KAAY7+G,EAAM67G,QAEvC,IAAIkC,EADJztH,KAAKmtH,IAASO,GAETtC,GAAkBsC,EAASa,IAC3BvuH,KAAKgtH,IAAUS,EAAWztH,KAAK2tH,WAAWa,SAASd,MACpD1tH,KAAKitH,IAAUQ,EACf78G,GAAK5Q,KAAM,gBAAiB,CAAExH,MAAOi1H,IAE7C,CACA,CAACT,IAAS1wH,GACN,OAAO0D,KAAK1D,OAAS0D,KAAK2tH,WAAWhmE,MAAMrrD,EAAO0D,KAAK1D,MAC3D,CACA,CAAC6wH,IAASpC,GACN/qH,KAAKktH,IAASnC,EACd/qH,KAAKotH,IAAQxvH,SAAS2hB,GAASA,EAAKzY,OAAOikH,IAC/C,EG5EJ,MAAM4C,GAAa,CACfM,aAAc,OACdL,OVKsB/1H,GAAQszH,GAAWR,GAAU9yH,IUJnD22H,SAAU,EAAGx1H,IAAGC,IAAGK,OVgDY2xH,GAAUD,GUhDJ,CAAEhyH,IAAGC,IAAGK,IAAGqC,EAAG,KACnDgsD,MTYoB,CAACl0B,EAAO43F,IACxB53F,EAAM9qB,gBAAkB0iH,EAAO1iH,eAG5ByiH,GAAkBT,GAAUl3F,GAAQk3F,GAAUU,ISfrDiD,SAAWhyH,GAAUA,GAElB,MAAMmyH,WAAgBlB,GACzB,cAAII,GACA,OAAOA,EACX,E,eCVA,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQrwF,OCuBR,MAAMoxF,WAAwBrxF,GAUrCsxF,YAiCCC,0BAOA/vG,QAQR,WAAA9c,CAAaw7B,EAA4B5S,EAAgC,CAAC,GACzE9c,MAAO0vB,GAEPv9B,KAAK4R,IAAK,CACTtV,MAAO,GACPuyH,UAAW,KAGZ7uH,KAAK2uH,YAAc3uH,KAAK8uH,kBACxB,MAAM52G,EAAWlY,KAAK29B,mBAEhBhT,EAAOokG,WACZ72G,EAAShK,IAAKlO,KAAK2uH,aAGpB3uH,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CAAE,KAAM,mBACfo0E,UAAW,GAEZ/6F,aAGDlY,KAAK6e,QAAU8L,EAEf3qB,KAAK4uH,0BAA4B,IAAYtyH,IAE5C0D,KAAK4R,IAAK,QAAStV,GAGnB0D,KAAK4Q,KAAqC,gBAAiB,CAAEtU,MAAO0D,KAAK1D,OAAS,GA9FjE,IA+FF,CACf+5D,SAAS,IAKVr2D,KAAKyP,GAAI,aAAa,CAAE+F,EAAKtB,EAAcN,KAC1C4B,EAAIjJ,OAASuzG,GAAclsG,EAAU5T,KAAK6e,QAAQuhG,QAAU,MAAO,IAIpEpgH,KAAKyP,GAAI,gBAAgB,KACxBzP,KAAK6uH,UAAYG,GAA+BhvH,KAAK1D,MAAO,IAG7D0D,KAAKyP,GAAI,oBAAoB,KAGvBjM,SAASqoD,gBAAkB7rD,KAAKivH,QACpCjvH,KAAKivH,OAAOxpH,aAAc,QAASzF,KAAK6uH,WAKpCG,GAA+BhvH,KAAK1D,QAAW0yH,GAA+BhvH,KAAK6uH,aACvF7uH,KAAK1D,MAAQ0D,KAAK6uH,UACnB,GAEF,CAKgB,MAAA32F,G3C9CV,IAAgCq2B,EAAqBxsD,E2C0D1D,GAXA8L,MAAMqqB,S3C/C+Bq2B,E2CkDd,mB3ClDmCxsD,E2CkDf0sH,Q3CjDD,IAAtCS,eAAe9mH,IAAKmmD,IACxB2gE,eAAex4H,OAAQ63D,EAAaxsD,G2CkDpC/B,KAAKivH,OAAS,GAAOzrH,SAAS8B,cAAe,oBAC7CtF,KAAKivH,OAAOxpH,aAAc,QAAS,oBACnCzF,KAAKivH,OAAOxpH,aAAc,WAAY,MAEtCzF,KAAKmvH,qBAEAnvH,KAAK+W,QAAU,CACd/W,KAAK2uH,YAAY53G,QACrB/W,KAAK+W,QAAQvQ,aAAcxG,KAAKivH,OAAQjvH,KAAK2uH,YAAY53G,SAEzD/W,KAAK+W,QAAQpR,YAAa3F,KAAKivH,QAIhC,MAAMG,EAAkC5rH,SAAS8B,cAAe,SAEhE8pH,EAAgCj1F,YAAc,+IAK9Cn6B,KAAKivH,OAAOI,WAAY1pH,YAAaypH,EACtC,CAEApvH,KAAKivH,OAAOv+G,iBAAkB,iBAAiBhB,IAC9C,MAAMpT,EAAQoT,EAAM67G,OAAO/yH,MAC3BwH,KAAK4uH,0BAA2BtyH,EAAO,GAEzC,CAMO,KAAAmjC,GASN,IAAMz/B,KAAK6e,QAAQkwG,YAAe,EAAIjmH,SAAW,EAAIE,OAAS,EAAID,UAAa,CAC/B/I,KAAK2uH,YAAaz2G,SAAS9P,IAAK,GAEzEq3B,OACP,CAEoBz/B,KAAKsvH,YAAY77F,MAEzBgM,OACb,CAOQ,kBAAA0vF,GACP,MAGMG,EAHuB,IAAKtvH,KAAKivH,OAAOI,WAAYn3G,UACrBnS,QAAQ9F,GAAwC,WAAhCA,EAAKy6B,aAAc,UAE5C19B,KAAK+wH,GACnB,IAAIwB,GAAYxB,KAK9B/tH,KAAKsvH,YAActvH,KAAK29B,mBAExB2xF,EAAY1xH,SAASqC,IACpBD,KAAKsvH,YAAYphH,IAAKjO,EAAM,GAE9B,CAOQ,eAAA6uH,GACP,MAAMU,EAAaxvH,KAAKyvH,oBAExB,OAAO,IAAIC,GAAyB1vH,KAAKu9B,OAASiyF,EACnD,CAOQ,iBAAAC,GACP,MAAME,EAAe,IAAInP,GAAkBxgH,KAAKu9B,OAAQ0sF,KAClD,EAAEjvH,GAAMgF,KAAKu9B,OAgCnB,OA9BAoyF,EAAa/9G,IAAK,CACjB6mC,MAAOz9C,EAAG,OACV6jC,MAAO,2BAGR8wF,EAAalP,UAAUz5G,KAAM,SAAUzH,GAAIS,KAAM,aAAa4vH,GACxDD,EAAa75F,UAGV65F,EAAalP,UAAUjoH,MAEvBo3H,EAAYphE,WAAY,KAAQohE,EAAYhzH,UAAW,GAAMgzH,IAKtED,EAAalP,UAAUhxG,GAAI,SAAS,KACnC,MAAMogH,EAAaF,EAAalP,UAAU1pG,QAASve,MAEnD,GAAKq3H,EAAa,CACjB,MAAMC,EAAgBC,GAAkBF,GAEnCC,GAGJ9vH,KAAK4uH,0BAA2BkB,EAElC,KAGMH,CACR,CAKO,OAAAhD,GACN,MAAM,GAAQ3sH,KAAKu9B,OAKnB,OAHAv9B,KAAKgwH,0BAGChwH,KAAK2uH,YAAYsB,mBAEtBjwH,KAAK2uH,YAAYxE,UAAUnJ,UAAYhmH,EAAG,gDAEnC,EAIT,CAQO,qBAAAg1H,GACNhwH,KAAK2uH,YAAYxE,UAAUnJ,UAAY,IACxC,EAOD,SAASgO,GAA+BkB,GACvC,IAAIjoB,E3C9OE,SAAuB3rG,GAC7B,IAAMA,EACL,MAAO,GAGR,MAAM0jH,EAAcC,GAAkB3jH,GAEtC,OAAM0jH,EAIqB,QAAtBA,EAAYrwF,MACTqwF,EAAYM,SAGbR,GAAcxjH,EAAO,OAPpB,MAQT,C2C8NW6zH,CAAcD,GAWxB,OATMjoB,IACLA,EAAM,QAGa,IAAfA,EAAI3vG,SAER2vG,EAAM,IAAM,CAAEA,EAAK,GAAKA,EAAK,GAAKA,EAAK,GAAKA,EAAK,GAAKA,EAAK,GAAKA,EAAK,IAAM/qG,KAAM,KAG3E+qG,EAAIt/F,aACZ,CAGA,MAAM4mH,WAAmBlyF,GAIxB,WAAAt7B,CAAagV,GACZlJ,QACA7N,KAAK+W,QAAUA,CAChB,CAKO,KAAA0oB,GACNz/B,KAAK+W,QAAS0oB,OACf,EAID,MAAM2wF,WAAiB/yF,GACtB,WAAAt7B,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,+BAGF3mB,SAAU,KAEZ,EAQD,MAAMw3G,WAAgCryF,GAIrBnlB,SAKAiyG,UAQhB,WAAApoH,CAAaw7B,EAAgB4sF,GAC5Bt8G,MAAO0vB,GAEPv9B,KAAKmqH,UAAYA,EACjBnqH,KAAKkY,SAAWlY,KAAK29B,iBAAkB,CACtC,IAAIyyF,GACJpwH,KAAKmqH,YAGNnqH,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,yBAGF3mB,SAAUlY,KAAKkY,UAEjB,CAKO,cAAA+3G,GACN,OAAOF,GAAkB/vH,KAAKmqH,UAAU1J,UAAU1pG,QAASve,MAC5D,EA2BM,SAASu3H,GAAoCzzH,GACnD,IAAMA,EACL,OAAO,KAGR,MAAM+zH,EAAgB/zH,EAAMiyB,OAAOzX,QAAS,KAAM,IAGlD,MAAM,CAAE,EAAG,EAAG,EAAG,GAAIqb,SAAUk+F,EAAc/3H,SAKvC,+CAA+C2J,KAAMouH,GAIpD,IAAKA,IARJ,IAST,CClce,MAAMC,WAAgDh9G,EAAiBsf,KAQrF,WAAA7wB,CAAawC,GACZsJ,MAAOtJ,GAEPvE,KAAK4R,IAAK,WAAW,GAErB5R,KAAKyP,GAAI,UAAU,KAClBzP,KAAK4R,IAAK,UAA2B,IAAhB5R,KAAK1H,OAAc,GAE1C,CAcgB,GAAA4V,CAAKjO,EAAuB2E,GAC3C,OAAK5E,KAAKu0B,MAAMxd,GAAWA,EAAQza,QAAU2D,EAAK3D,QAE1C0D,KAGD6N,MAAMK,IAAKjO,EAAM2E,EACzB,CAKO,QAAA2rH,CAAUj0H,GAChB,QAAS0D,KAAKu0B,MAAMt0B,GAAQA,EAAK3D,QAAUA,GAC5C,ECxCD,MAAQsyG,OAAQ4hB,GAAkB7hB,aAAc8hB,IAAqB,GActD,MAAMC,WAA+BrzF,GAInCzJ,MAKTuqF,iBAKSl/E,aAKTi/E,QAQAyS,eAQAC,oBAeAC,iBAUAC,mBAKAC,sBAKAC,sBAYGhb,YAOFib,qBAKAC,mBAKAC,kBAeR,WAAApvH,CACCw7B,GACA,OACC6zF,EAAM,QAAElT,EAAO,kBAAEmT,EAAiB,oBAAEC,EAAmB,oBAAEV,EAAmB,iBAC5EW,EAAgB,aAAEtyF,EAAY,WAAE00E,IAYjC9lG,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAElB79B,KAAK4R,IAAK,aAAa,GAEvB5R,KAAKi/B,aAAeA,EACpBj/B,KAAK4zB,MAAQ5zB,KAAK29B,mBAClB39B,KAAKm+G,iBAAmBiT,EACxBpxH,KAAKk+G,QAAUA,EACfl+G,KAAK2wH,eAAiB,IAAIL,GAC1BtwH,KAAK4wH,oBAAsBA,EAE3B5wH,KAAKg2G,YAAcrC,EACnB3zG,KAAKkxH,mBAAqBG,EAC1BrxH,KAAKmxH,kBAAoBI,EACzBvxH,KAAKixH,qBAAuBK,EAE5BtxH,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,0BACA73B,EAAKuyB,GAAI,YAAa,aAAa/gC,IAAUA,MAG/C0f,SAAUlY,KAAK4zB,QAGhB5zB,KAAKgxH,sBAAwBhxH,KAAKwxH,2BAElCxxH,KAAK4zB,MAAM1lB,IAAKlO,KAAKgxH,sBACtB,CAWO,oBAAAS,CAAsBr5H,EAAc44C,GAC1C,MAAMxtC,EAAWpL,EAAMoL,SACjBkuH,EAAW1xH,KAAK4wH,oBAEtB5wH,KAAK2wH,eAAe5+G,QAEpB,UAAYzb,KAAQkN,EAASk0E,WAAa,CACzC,MAAM3wD,EAAQ3uB,EAAMupD,cAAerrD,GAEnC,UAAY6I,KAAQ4nB,EAAMsvB,WACzB,GAAKl3C,EAAKoP,GAAI,eAAkBpP,EAAKkxC,aAAcW,KAClDhxC,KAAK2xH,0BAA2BxyH,EAAKu7B,aAAcsW,IAE9ChxC,KAAK2wH,eAAer4H,QAAUo5H,GAClC,MAIJ,CACD,CAOO,oBAAAE,GACN,MAAMd,EAAqB9wH,KAAK8wH,mBAC1BD,EAAmB7wH,KAAK6wH,iBACxBrS,EAAgBx+G,KAAKw+G,cAE3BqS,EAAiBrS,cAAgBA,EAE5BsS,IACJA,EAAmBtS,cAAgBA,EAErC,CAKgB,MAAAtmF,GAOf,GANArqB,MAAMqqB,SAENl4B,KAAK6wH,iBAAmB7wH,KAAK6xH,0BAE7B7xH,KAAK4zB,MAAM1lB,IAAKlO,KAAK6wH,kBAEhB7wH,KAAK4wH,oBAAsB,CAE/B,MAAM5pH,EAAOmxB,GAASnxB,KAAMhH,KAAK2wH,eAAgB3wH,KAAK2wH,gBAChDl4E,EAAQ,IAAIuhE,GAAWh6G,KAAKu9B,QAClCkb,EAAMpgB,KAAOr4B,KAAKixH,qBAClBx4E,EAAM7e,eAAgB,CACrBr0B,WAAY,CACXs5B,MAAO,CACN,KACA,uBACA73B,EAAKuyB,GAAI,UAAW,iBAIvBv5B,KAAK4zB,MAAM1lB,IAAKuqC,GAChBz4C,KAAK8wH,mBAAqB9wH,KAAK8xH,4BAE/B9xH,KAAK4zB,MAAM1lB,IAAKlO,KAAK8wH,mBACtB,CACA9wH,KAAK+xH,2BAEL/xH,KAAKgyH,yCACN,CAKO,KAAAvyF,GACNz/B,KAAKgxH,sBAAsBvxF,OAC5B,CAKgB,OAAAxX,GACfpa,MAAMoa,SACP,CAKO,oBAAAgqG,GACDjyH,KAAK+wH,wBACT/wH,KAAK4zB,MAAM1lB,IAAKlO,KAAK+wH,uBACrB/wH,KAAKi/B,aAAa/wB,IAAKlO,KAAK+wH,sBAAsBh6G,SAClD/W,KAAKg2G,YAAY9nG,IAAKlO,KAAK+wH,uBAE7B,CAKQ,uCAAAiB,GACPhyH,KAAKi/B,aAAa/wB,IAAKlO,KAAKgxH,sBAAsBj6G,SAClD/W,KAAKg2G,YAAY9nG,IAAKlO,KAAKgxH,uBAEtBhxH,KAAK6wH,mBACT7wH,KAAKi/B,aAAa/wB,IAAKlO,KAAK6wH,iBAAiB95G,SAC7C/W,KAAKg2G,YAAY9nG,IAAKlO,KAAK6wH,mBAGvB7wH,KAAK8wH,qBACT9wH,KAAKi/B,aAAa/wB,IAAKlO,KAAK8wH,mBAAmB/5G,SAC/C/W,KAAKg2G,YAAY9nG,IAAKlO,KAAK8wH,oBAE7B,CAKQ,wBAAAiB,GACP/xH,KAAK+wH,sBAAwB,IAAI,GAEjC/wH,KAAK+wH,sBAAsBn/G,IAAK,CAC/B6mC,MAAOz4C,KAAKmxH,kBACZpX,UAAU,EACVzG,KAAMmd,GACN5xF,MAAO,oCAGR7+B,KAAK+wH,sBAAsBthH,GAAI,WAAW,KACzCzP,KAAK4Q,KAAyC,mBAAoB,GAEpE,CAKQ,wBAAA4gH,GACP,MAAMzY,EAAa,IAAI,GAkBvB,OAhBAA,EAAWnnG,IAAK,CACfmoG,UAAU,EACVzG,KAAMkd,GACN/3E,MAAOz4C,KAAKkxH,qBAGbnY,EAAWl6E,MAAQ,kCACnBk6E,EAAWtpG,GAAI,WAAW,KACzBzP,KAAK4Q,KAAM,UAAW,CACrBpY,MAAO,KACP0K,OAAQ,qBACN,IAGJ61G,EAAW7gF,SAEJ6gF,CACR,CAKQ,uBAAA8Y,GACP,MAAMK,EAAY,IAAIjU,GAAej+G,KAAKu9B,OAAQ,CACjD4gF,iBAAkBn+G,KAAKm+G,iBACvBD,QAASl+G,KAAKk+G,UAUf,OAPAgU,EAAUziH,GAAI,WAAW,CAAE+F,EAAK1S,KAC/B9C,KAAK4Q,KAAiC,UAAW,CAChDpY,MAAOsK,EAAKtK,MACZ0K,OAAQ,oBACN,IAGGgvH,CACR,CAKQ,yBAAAJ,GACP,MAAM9qH,EAAOmxB,GAASnxB,KAAMhH,KAAK2wH,eAAgB3wH,KAAK2wH,gBAChDG,EAAqB,IAAI7S,GAAej+G,KAAKu9B,OAAQ,CAC1D2gF,QAASl+G,KAAKk+G,UA2Cf,OAxCA4S,EAAmBl3F,eAAgB,CAClCr0B,WAAY,CACXs5B,MAAO73B,EAAKuyB,GAAI,UAAW,gBAI7Bu3F,EAAmBl9F,MAAMvf,OAAQrU,KAAK2wH,gBAAiB97F,OACtDs9F,IACC,MAAM7T,EAAY,IAAIP,GAqBtB,OAnBAO,EAAU1sG,IAAK,CACdtV,MAAO61H,EAAS71H,MAChBwhH,UAAWqU,EAAS5tH,SAAW4tH,EAAS5tH,QAAQu5G,YAG5CqU,EAAS15E,OACb6lE,EAAU1sG,IAAK,CACd6mC,MAAO05E,EAAS15E,MAChB+6D,SAAS,IAIX8K,EAAU7uG,GAAI,WAAW,KACxBzP,KAAK4Q,KAAiC,UAAW,CAChDpY,MAAO25H,EAAS71H,MAChB4G,OAAQ,sBACN,IAGGo7G,CAAS,IAKlBt+G,KAAK2wH,eAAelhH,GAAI,kBAAkB,CAAE+F,EAAKxT,EAAM1H,KACjDA,IACJw2H,EAAmBtS,cAAgB,KACpC,IAGMsS,CACR,CAQQ,yBAAAa,CAA2Br1H,GAClC,MAAM81H,EAAkBpyH,KAAKm+G,iBAC3B5pF,MAAMrsB,GAAcA,EAAW5L,QAAUA,IAErC81H,EASLpyH,KAAK2wH,eAAeziH,IAAKlX,OAAOsyB,OAAQ,CAAC,EAAG8oG,IAR5CpyH,KAAK2wH,eAAeziH,IAAK,CACxB5R,QACAm8C,MAAOn8C,EACPiI,QAAS,CACRu5G,WAAW,IAMf,ECzac,MAAMuU,WAAgCh1F,GAIpCzJ,MAKT0+F,gBAKAC,eAKAC,iBAKAC,cAKSxzF,aAKA0tE,WAiBNqJ,YAQF0c,uBAYR,WAAA3wH,CACCw7B,GACA,aACC0B,EAAY,WACZ00E,EAAU,WACVhH,EAAU,sBACVgmB,IASD9kH,MAAO0vB,GAEPv9B,KAAK4zB,MAAQ5zB,KAAK29B,mBAClB39B,KAAKi/B,aAAeA,EACpBj/B,KAAK2sG,WAAaA,EAElB3sG,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,qBAAiB,GAE3B5R,KAAKg2G,YAAcrC,EACnB3zG,KAAK0yH,uBAAyBC,EAE9B,MAAM3rH,EAAOhH,KAAK69B,cACZ,eAAE00F,EAAc,iBAAEC,GAAqBxyH,KAAK4yH,uBAElD5yH,KAAKuyH,eAAiBA,EACtBvyH,KAAKwyH,iBAAmBA,EACxBxyH,KAAKyyH,cAAgBzyH,KAAK6yH,qBAAsB,CAAEN,iBAAgBC,qBAElExyH,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,2BACA73B,EAAKuyB,GAAI,YAAa,aAAa/gC,IAAUA,MAG/C0f,SAAUlY,KAAK4zB,OAEjB,CAKgB,MAAAsE,GACfrqB,MAAMqqB,SAEN,MAAMo6F,EAAkB,IAAI5D,GAAiB1uH,KAAKu9B,OAAQ,IACtDv9B,KAAK0yH,yBAGT1yH,KAAKsyH,gBAAkBA,EACvBtyH,KAAKsyH,gBAAgBp6F,SAEhBl4B,KAAKw+G,gBACT8T,EAAgBh2H,MAAQ0D,KAAKw+G,eAG9Bx+G,KAAK4P,SAAU5P,KAAM,wBAAwB,CAAEwV,EAAKxT,EAAMxJ,KACzD85H,EAAgBh2H,MAAQ9D,CAAK,IAG9BwH,KAAK4zB,MAAM1lB,IAAKlO,KAAKsyH,iBACrBtyH,KAAK4zB,MAAM1lB,IAAKlO,KAAKyyH,eAErBzyH,KAAK8yH,yCACL9yH,KAAK+yH,+BACL/yH,KAAKgzH,uBACLhzH,KAAKizH,yBACN,CAKgB,OAAAhrG,GACfpa,MAAMoa,SACP,CAKO,KAAAwX,GACNz/B,KAAKsyH,gBAAiB7yF,OACvB,CAKO,qBAAAuwF,GACNhwH,KAAKsyH,gBAAiBtC,uBACvB,CAKQ,oBAAAgD,GACPhzH,KAAK2sG,WAAW/6F,IAAK,SAAS4D,IACxBxV,KAAK+oB,WAAa/oB,KAAKi/B,aAAarJ,iBAAmB51B,KAAKwyH,iBAAiBz7G,SAAW/W,KAAKsyH,gBAAiB3F,YAClH3sH,KAAK4Q,KAAM,UAAW,CACrBpY,MAAOwH,KAAKw+G,gBAGbhpG,EAAI4gB,kBACJ5gB,EAAI2gB,iBACL,GAEF,CAKQ,4BAAA48F,GACP,MAAM38F,EAAoBtzB,GAAyBA,EAAKszB,kBAExDp2B,KAAK2sG,WAAW/6F,IAAK,aAAcwkB,GACnCp2B,KAAK2sG,WAAW/6F,IAAK,YAAawkB,GAClCp2B,KAAK2sG,WAAW/6F,IAAK,UAAWwkB,GAChCp2B,KAAK2sG,WAAW/6F,IAAK,YAAawkB,EACnC,CAKQ,sCAAA08F,GACP,UAAY/E,KAAU/tH,KAAKsyH,gBAAiBhD,YAC3CtvH,KAAKi/B,aAAa/wB,IAAK6/G,EAAOh3G,SAC9B/W,KAAKg2G,YAAY9nG,IAAK6/G,GAGvB,MAAM7wG,EAAQld,KAAKsyH,gBAAiB3D,YAAYz2G,SAAS9P,IAAK,GAEzD8U,EAAMnG,UACV/W,KAAKi/B,aAAa/wB,IAAKgP,EAAMnG,SAC7B/W,KAAKg2G,YAAY9nG,IAAKgP,IAGvBld,KAAKi/B,aAAa/wB,IAAKlO,KAAKuyH,eAAex7G,SAC3C/W,KAAKg2G,YAAY9nG,IAAKlO,KAAKuyH,gBAE3BvyH,KAAKi/B,aAAa/wB,IAAKlO,KAAKwyH,iBAAiBz7G,SAC7C/W,KAAKg2G,YAAY9nG,IAAKlO,KAAKwyH,iBAC5B,CAKQ,oBAAAK,EAAsB,eAAEN,EAAc,iBAAEC,IAI/C,MAAMU,EAAe,IAAI71F,GACnBnlB,EAAWlY,KAAK29B,mBAgBtB,OAdAzlB,EAAShK,IAAKqkH,GACdr6G,EAAShK,IAAKskH,GAEdU,EAAaj1F,YAAa,CACzBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,iCAGF3mB,aAGMg7G,CACR,CAKQ,oBAAAN,GACP,MAAMr1F,EAASv9B,KAAKu9B,OACdviC,EAAIuiC,EAAQviC,EACZu3H,EAAiB,IAAI,GAAYh1F,GACjCi1F,EAAmB,IAAI,GAAYj1F,GA+BzC,OA7BAg1F,EAAe3gH,IAAK,CACnB0hG,KAAM,GAAM7E,MACZ5vE,MAAO,iBACP1zB,KAAM,SACN4uG,UAAU,EACVthE,MAAOz9C,EAAG,YAGXw3H,EAAiB5gH,IAAK,CACrB0hG,KAAM,GAAM18E,OACZiI,MAAO,mBACP1zB,KAAM,SACN4uG,UAAU,EACVthE,MAAOz9C,EAAG,YAGXu3H,EAAe9iH,GAAI,WAAW,KACxBzP,KAAKsyH,gBAAiB3F,WAC1B3sH,KAAK4Q,KAAiC,UAAW,CAChD1N,OAAQ,wBACR1K,MAAOwH,KAAKw+G,eAEd,IAGDgU,EAAiB/iH,GAAI,WAAW,KAC/BzP,KAAK4Q,KAA2C,qBAAsB,IAGhE,CACN2hH,iBAAgBC,mBAElB,CAMQ,uBAAAS,GACPjzH,KAAKsyH,gBAAiB7iH,GAAmC,iBAAiB,CAAE+F,EAAK1S,KAChF9C,KAAK4Q,KAAiC,UAAW,CAChDpY,MAAOsK,EAAKxG,MACZ4G,OAAQ,gBAETlD,KAAK4R,IAAK,gBAAiB9O,EAAKxG,MAAO,GAEzC,E,eC/UG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQghC,OC2DR,MAAM61F,WAA0B91F,GAI9B4B,aAKA0tE,WAKA/4E,MAKAw/F,uBAKAC,wBA0BNnc,aAOAlB,YAKF0c,uBAcR,WAAA3wH,CACCw7B,GACA,OACC6zF,EAAM,QACNlT,EAAO,kBACPmT,EAAiB,oBACjBC,EAAmB,oBACnBV,EAAmB,iBACnBW,EAAgB,sBAChBoB,IAWD9kH,MAAO0vB,GACPv9B,KAAK4zB,MAAQ5zB,KAAK29B,mBAElB39B,KAAKi/B,aAAe,IAAI1J,GACxBv1B,KAAK2sG,WAAa,IAAI32E,GAEtBh2B,KAAKg2G,YAAc,IAAIx+E,GACvBx3B,KAAK0yH,uBAAyBC,EAC9B3yH,KAAKk3G,aAAe,IAAIxD,GAAa,CACpCC,WAAY3zG,KAAKg2G,YACjB/2E,aAAcj/B,KAAKi/B,aACnBD,iBAAkBh/B,KAAK2sG,WACvBplD,QAAS,CAER6sD,cAAe,cAGfD,UAAW,SAIbn0G,KAAKozH,uBAAyB,IAAI1C,GAAwBnzF,EAAQ,CACjE6zF,SAAQlT,UAASmT,oBAAmBC,sBAAqBV,sBAAqBW,mBAC9EtyF,aAAcj/B,KAAKi/B,aACnB00E,WAAY3zG,KAAKg2G,cAGlBh2G,KAAKqzH,wBAA0B,IAAIhB,GAAyB90F,EAAQ,CACnEo2E,WAAY3zG,KAAKg2G,YACjB/2E,aAAcj/B,KAAKi/B,aACnB0tE,WAAY3sG,KAAK2sG,WACjBgmB,0BAGD3yH,KAAK4R,IAAK,gCAAgC,GAC1C5R,KAAK4R,IAAK,iCAAiC,GAE3C5R,KAAK4R,IAAK,qBAAiB,GAE3B5R,KAAKozH,uBAAuBpsH,KAAM,aAAczH,GAAIS,KAAM,gCAC1DA,KAAKqzH,wBAAwBrsH,KAAM,aAAczH,GAAIS,KAAM,iCAM3DA,KAAKyP,GAAI,wBAAwB,CAAE+F,EAAKwiB,EAASl1B,KAChD9C,KAAKozH,uBAAuBxhH,IAAK,gBAAiB9O,GAClD9C,KAAKqzH,wBAAwBzhH,IAAK,gBAAiB9O,EAAM,IAG1D9C,KAAKozH,uBAAuB3jH,GAAI,wBAAwB,CAAE+F,EAAKwiB,EAASl1B,KACvE9C,KAAK4R,IAAK,gBAAiB9O,EAAM,IAGlC9C,KAAKqzH,wBAAwB5jH,GAAI,wBAAwB,CAAE+F,EAAKwiB,EAASl1B,KACxE9C,KAAK4R,IAAK,gBAAiB9O,EAAM,IAGlC9C,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,sBAGF3mB,SAAUlY,KAAK4zB,OAEjB,CAKgB,MAAAsE,GACfrqB,MAAMqqB,SAGNl4B,KAAK2sG,WAAW/8F,SAAU5P,KAAK+W,QAChC,CAKgB,OAAAkR,GACfpa,MAAMoa,UAENjoB,KAAKi/B,aAAahX,UAClBjoB,KAAK2sG,WAAW1kF,SACjB,CAWO,QAAAqrG,GACNtzH,KAAKuzH,4BAEAvzH,KAAK0yH,wBACT1yH,KAAKwzH,4BAEP,CASO,uBAAAC,GACAzzH,KAAKqzH,wBAAwBf,kBAAmBtyH,KAAK0zH,gCAI3D1zH,KAAK0zH,+BAAgC,EACrC1zH,KAAKqzH,wBAAwB5zF,QAC7Bz/B,KAAKqzH,wBAAwBrD,wBAC7BhwH,KAAK2zH,8BAA+B,EACrC,CASO,sBAAAC,GACD5zH,KAAK2zH,+BAIV3zH,KAAK2zH,8BAA+B,EACpC3zH,KAAKozH,uBAAuB3zF,QAC5Bz/B,KAAK0zH,+BAAgC,EACtC,CAKO,KAAAj0F,GACNz/B,KAAKk3G,aAAatD,YACnB,CAKO,SAAAC,GACN7zG,KAAKk3G,aAAarD,WACnB,CAWO,oBAAA4d,CAAsBr5H,EAAc44C,GAC1ChxC,KAAKozH,uBAAuB3B,qBAAsBr5H,EAAO44C,EAC1D,CAOO,oBAAA4gF,GACN5xH,KAAKozH,uBAAuBxB,sBAC7B,CAKQ,yBAAA2B,GACFvzH,KAAK4zB,MAAMt7B,SAIhB0H,KAAK4zB,MAAM1lB,IAAKlO,KAAKozH,wBACrBpzH,KAAKozH,uBAAuB7hH,SAAU,WAAYhS,GAAIS,MACtDA,KAAKozH,uBAAuB7hH,SAAU,oBAAqBhS,GAAIS,MAChE,CAKQ,0BAAAwzH,GACoB,IAAtBxzH,KAAK4zB,MAAMt7B,SAIhB0H,KAAK4zB,MAAM1lB,IAAKlO,KAAKqzH,yBAEhBrzH,KAAKozH,uBAAuBrC,uBAChC/wH,KAAKozH,uBAAuBrC,sBAAsBthH,GAAI,WAAW,KAChEzP,KAAKyzH,yBAAyB,IAIhCzzH,KAAKozH,uBAAuBnB,uBAC5BjyH,KAAKqzH,wBAAwB9hH,SAAU,WAAYhS,GAAIS,MACvDA,KAAKqzH,wBAAwB9hH,SAAU,sBAAuBhS,GAAIS,MACnE,ECpVc,MAAM6zH,GAIJ9zF,OAKC+zF,YAAc,IAAIpiH,IAOnC,WAAA3P,CAAag+B,GACZ//B,KAAK+/B,OAASA,CACf,CAKA,MAAQ3gB,GACP,UAAY5mB,KAASwH,KAAK8zH,YAAY1oH,eAC/B5S,EAAMu7H,YAEd,CAWO,GAAA7lH,CAAKlM,EAAc2N,GACzB3P,KAAK8zH,YAAYliH,IAAK27B,GAAevrC,GAAQ,CAAE2N,WAAUokH,aAAc/xH,GACxE,CAYO,MAAA+b,CAAQ/b,GACd,IAAMhC,KAAKiO,IAAKjM,GASf,MAAM,IAAI0L,EACT,gCACA1N,KACA,CAAEgC,SAIJ,OAAOhC,KAAK8zH,YAAY1rH,IAAKmlC,GAAevrC,IAAU2N,SAAU3P,KAAK+/B,OAAOxC,OAC7E,CAOO,GAAAtvB,CAAKjM,GACX,OAAOhC,KAAK8zH,YAAY7lH,IAAKs/B,GAAevrC,GAC7C,EAMD,SAASurC,GAAevrC,GACvB,OAAO0Z,OAAQ1Z,GAAO2G,aACvB,C,eC1HI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ20B,OAAvB,MCgBM,GAAuB/U,GAAQ,MAU/ByrG,GAAgC,CACrC3xG,KAAM,MACNM,MAAO,MACP3gB,KAAM,YACN2oB,OAAQ,CACPspG,WAAW,IA2CE,MAAMC,WAAyB72F,GAI7Bn9B,QAgERi0H,0BAKR,WAAApyH,CAAaw7B,GACZ1vB,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAElB79B,KAAK4R,IAAK,MAAO,GACjB5R,KAAK4R,IAAK,OAAQ,GAClB5R,KAAK4R,IAAK,WAAY,YACtB5R,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,aAAS,GAEnB5R,KAAKm0H,0BAA4B,KACjCn0H,KAAKE,QAAUF,KAAK29B,mBAEpB39B,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,mBACA73B,EAAKzH,GAAI,YAAY/G,GAAS,oBAAqBA,MACnDwO,EAAKuyB,GAAI,YAAa,4BACtBvyB,EAAKuyB,GAAI,YAAa,+BACtBvyB,EAAKzH,GAAI,UAGV8F,MAAO,CACNgd,IAAKrb,EAAKzH,GAAI,MAAO,IACrBojB,KAAM3b,EAAKzH,GAAI,OAAQ,MAIzB2Y,SAAUlY,KAAKE,SAEjB,CAOO,IAAAy5G,GACN35G,KAAK+oB,WAAY,CAClB,CAOO,IAAA8wF,GACN75G,KAAK+oB,WAAY,CAClB,CAkCO,QAAAqrG,CAAU7vH,GAChBvE,KAAK25G,OAEL,MAAM0a,EAAmBH,GAAiBG,iBACpCxqG,EAAkB7yB,OAAOsyB,OAAQ,CAAC,EAAG,CAC1CvS,QAAS/W,KAAK+W,QACdkS,UAAW,CACVorG,EAAiBC,gBACjBD,EAAiBE,0BACjBF,EAAiBG,0BACjBH,EAAiBI,oBACjBJ,EAAiBK,oBACjBL,EAAiBM,gBACjBN,EAAiBO,0BACjBP,EAAiBQ,0BACjBR,EAAiBS,oBACjBT,EAAiBU,oBACjBV,EAAiBW,qBAElB9rG,QAAS,GAAO1lB,SAASyf,KACzBkG,eAAe,GACb5kB,GAEG0wH,EAAkBf,GAAiB7R,oBAAqBx4F,IAAqBmqG,GAI7ErxG,EAAOvlB,SAAU63H,EAAgBtyG,MACjCN,EAAMjlB,SAAU63H,EAAgB5yG,KAEhCoF,EAAWwtG,EAAgBjzH,KAC3B2oB,EAAkCsqG,EAAgBtqG,QAAU,CAAC,GAC7D,UAAEspG,GAAY,GAAStpG,EAE7B3qB,KAAKqiB,IAAMA,EACXriB,KAAK2iB,KAAOA,EACZ3iB,KAAKynB,SAAWA,EAChBznB,KAAKi0H,UAAYA,CAClB,CAoCO,GAAAiB,CAAK3wH,GACXvE,KAAKm1H,QAELn1H,KAAKm0H,0BAA4B,KAC3Bn0H,KAAK+oB,UACT/oB,KAAKo1H,cAAe7wH,GAEpBvE,KAAKq1H,cACN,EAGDr1H,KAAKo1H,cAAe7wH,GAKpBvE,KAAK4P,SAAiC5P,KAAM,mBAAoBA,KAAKm0H,0BACtE,CAKO,KAAAgB,GACDn1H,KAAKm0H,4BAETn0H,KAAKq1H,eAILr1H,KAAK+P,cAAe/P,KAAM,mBAAoBA,KAAKm0H,2BAEnDn0H,KAAKm0H,0BAA4B,KAEjCn0H,KAAK65G,OAEP,CAOQ,aAAAub,CAAe7wH,GACtBvE,KAAKo0H,SAAU7vH,GAEf,MAAMmnF,EAAgB4pC,GAAe/wH,EAAQX,QACvCwoB,EAAiB7nB,EAAQ2kB,QAAUosG,GAAe/wH,EAAQ2kB,SAAY,GAAO1lB,SAASyf,KAG5FjjB,KAAK4P,SAAU,GAAOpM,SAAU,UAAU,CAAEgS,EAAKkM,KAChD,MAAM6zG,EAAe7zG,EAAO9d,OAGtB4xH,EAAuB9pC,GAAiB6pC,EAAajwG,SAAUomE,GAG/D+pC,EAA8BrpG,GAAkBmpG,EAAajwG,SAAU8G,IAIxEopG,IAAwBC,GAAgC/pC,GAAkBt/D,GAC9EpsB,KAAKo0H,SAAU7vH,EAChB,GACE,CAAE6b,YAAY,IAGjBpgB,KAAK4P,SAAU,GAAOrM,OAAQ,UAAU,KACvCvD,KAAKo0H,SAAU7vH,EAAS,GAE1B,CAKQ,YAAA8wH,GACPr1H,KAAK+P,cAAe,GAAOvM,SAAU,UACrCxD,KAAK+P,cAAe,GAAOxM,OAAQ,SACpC,CAsBA,wBAAcmyH,CAAmBnxH,EAK7B,CAAC,GACJ,MAAM,WACLoxH,EAAazB,GAAiB0B,gBAAe,aAC7CC,EAAe3B,GAAiB4B,kBAAiB,qBACjDC,EAAuB7B,GAAiB6B,qBAAoB,OAC5DprG,GACGpmB,EAEJ,MAAO,CAGNyxH,wBAAyB,CAAElsG,EAAYmsG,KAAA,CACtC5zG,IAAK6zG,EAAapsG,EAAYmsG,GAC9BtzG,KAAMmH,EAAWnH,KAAOgzG,EACxB3zH,KAAM,cACD2oB,GAAU,CAAEA,YAGlBwrG,8BAA+B,CAAErsG,EAAYmsG,KAAA,CAC5C5zG,IAAK6zG,EAAapsG,EAAYmsG,GAC9BtzG,KAAMmH,EAAWnH,KAA6B,IAApBszG,EAAY9yG,MAAgBwyG,EACtD3zH,KAAM,eACD2oB,GAAU,CAAEA,YAGlByrG,oBAAqB,CAAEtsG,EAAYmsG,KAAA,CAClC5zG,IAAK6zG,EAAapsG,EAAYmsG,GAC9BtzG,KAAMmH,EAAWnH,KAAOszG,EAAY9yG,MAAQ,EAC5CnhB,KAAM,aACD2oB,GAAU,CAAEA,YAGlB0rG,8BAA+B,CAAEvsG,EAAYmsG,KAAA,CAC5C5zG,IAAK6zG,EAAapsG,EAAYmsG,GAC9BtzG,KAAMmH,EAAWnH,KAA6B,IAApBszG,EAAY9yG,MAAgBwyG,EACtD3zH,KAAM,eACD2oB,GAAU,CAAEA,YAGlB2rG,wBAAyB,CAAExsG,EAAYmsG,KAAA,CACtC5zG,IAAK6zG,EAAapsG,EAAYmsG,GAC9BtzG,KAAMmH,EAAWnH,KAAOszG,EAAY9yG,MAAQwyG,EAC5C3zH,KAAM,cACD2oB,GAAU,CAAEA,YAKlBmqG,oBAAqB,CAAEhrG,EAAYmsG,KAAA,CAClC5zG,IAAK6zG,EAAapsG,EAAYmsG,GAC9BtzG,KAAMmH,EAAWnH,KAAOmH,EAAW3G,MAAQ,EAAIwyG,EAC/C3zH,KAAM,cACD2oB,GAAU,CAAEA,YAGlBiqG,0BAA2B,CAAE9qG,EAAYmsG,KAAA,CACxC5zG,IAAK6zG,EAAapsG,EAAYmsG,GAC9BtzG,KAAMmH,EAAWnH,KAAOmH,EAAW3G,MAAQ,EAA0B,IAApB8yG,EAAY9yG,MAAgBwyG,EAC7E3zH,KAAM,eACD2oB,GAAU,CAAEA,YAGlBgqG,gBAAiB,CAAE7qG,EAAYmsG,KAAA,CAC9B5zG,IAAK6zG,EAAapsG,EAAYmsG,GAC9BtzG,KAAMmH,EAAWnH,KAAOmH,EAAW3G,MAAQ,EAAI8yG,EAAY9yG,MAAQ,EACnEnhB,KAAM,aACD2oB,GAAU,CAAEA,YAGlBkqG,0BAA2B,CAAE/qG,EAAYmsG,KAAA,CACxC5zG,IAAK6zG,EAAapsG,EAAYmsG,GAC9BtzG,KAAMmH,EAAWnH,KAAOmH,EAAW3G,MAAQ,EAA0B,IAApB8yG,EAAY9yG,MAAgBwyG,EAC7E3zH,KAAM,eACD2oB,GAAU,CAAEA,YAGlBoqG,oBAAqB,CAAEjrG,EAAYmsG,KAAA,CAClC5zG,IAAK6zG,EAAapsG,EAAYmsG,GAC9BtzG,KAAMmH,EAAWnH,KAAOmH,EAAW3G,MAAQ,EAAI8yG,EAAY9yG,MAAQwyG,EACnE3zH,KAAM,cACD2oB,GAAU,CAAEA,YAKlB4rG,wBAAyB,CAAEzsG,EAAYmsG,KAAA,CACtC5zG,IAAK6zG,EAAapsG,EAAYmsG,GAC9BtzG,KAAMmH,EAAWvH,MAAQozG,EACzB3zH,KAAM,cACD2oB,GAAU,CAAEA,YAGlB6rG,8BAA+B,CAAE1sG,EAAYmsG,KAAA,CAC5C5zG,IAAK6zG,EAAapsG,EAAYmsG,GAC9BtzG,KAAMmH,EAAWvH,MAA8B,IAApB0zG,EAAY9yG,MAAgBwyG,EACvD3zH,KAAM,eACD2oB,GAAU,CAAEA,YAGlB8rG,oBAAqB,CAAE3sG,EAAYmsG,KAAA,CAClC5zG,IAAK6zG,EAAapsG,EAAYmsG,GAC9BtzG,KAAMmH,EAAWvH,MAAQ0zG,EAAY9yG,MAAQ,EAC7CnhB,KAAM,aACD2oB,GAAU,CAAEA,YAGlB+rG,8BAA+B,CAAE5sG,EAAYmsG,KAAA,CAC5C5zG,IAAK6zG,EAAapsG,EAAYmsG,GAC9BtzG,KAAMmH,EAAWvH,MAA8B,IAApB0zG,EAAY9yG,MAAgBwyG,EACvD3zH,KAAM,eACD2oB,GAAU,CAAEA,YAGlBgsG,wBAAyB,CAAE7sG,EAAYmsG,KAAA,CACtC5zG,IAAK6zG,EAAapsG,EAAYmsG,GAC9BtzG,KAAMmH,EAAWvH,MAAQ0zG,EAAY9yG,MAAQwyG,EAC7C3zH,KAAM,cACD2oB,GAAU,CAAEA,YAKlBisG,wBAAyB9sG,IAAA,CACxBzH,IAAKw0G,EAAa/sG,GAClBnH,KAAMmH,EAAWnH,KAAOgzG,EACxB3zH,KAAM,cACD2oB,GAAU,CAAEA,YAGlBmsG,8BAA+B,CAAEhtG,EAAYmsG,KAAA,CAC5C5zG,IAAKw0G,EAAa/sG,GAClBnH,KAAMmH,EAAWnH,KAA6B,IAApBszG,EAAY9yG,MAAgBwyG,EACtD3zH,KAAM,eACD2oB,GAAU,CAAEA,YAGlBosG,oBAAqB,CAAEjtG,EAAYmsG,KAAA,CAClC5zG,IAAKw0G,EAAa/sG,GAClBnH,KAAMmH,EAAWnH,KAAOszG,EAAY9yG,MAAQ,EAC5CnhB,KAAM,aACD2oB,GAAU,CAAEA,YAGlBqsG,8BAA+B,CAAEltG,EAAYmsG,KAAA,CAC5C5zG,IAAKw0G,EAAa/sG,GAClBnH,KAAMmH,EAAWnH,KAA6B,IAApBszG,EAAY9yG,MAAgBwyG,EACtD3zH,KAAM,eACD2oB,GAAU,CAAEA,YAGlBssG,wBAAyB,CAAEntG,EAAYmsG,KAAA,CACtC5zG,IAAKw0G,EAAa/sG,GAClBnH,KAAMmH,EAAWnH,KAAOszG,EAAY9yG,MAAQwyG,EAC5C3zH,KAAM,cACD2oB,GAAU,CAAEA,YAKlB8pG,oBAAqB3qG,IAAA,CACpBzH,IAAKw0G,EAAa/sG,GAClBnH,KAAMmH,EAAWnH,KAAOmH,EAAW3G,MAAQ,EAAIwyG,EAC/C3zH,KAAM,cACD2oB,GAAU,CAAEA,YAGlB4pG,0BAA2B,CAAEzqG,EAAYmsG,KAAA,CACxC5zG,IAAKw0G,EAAa/sG,GAClBnH,KAAMmH,EAAWnH,KAAOmH,EAAW3G,MAAQ,EAA0B,IAApB8yG,EAAY9yG,MAAiBwyG,EAC9E3zH,KAAM,eACD2oB,GAAU,CAAEA,YAGlB2pG,gBAAiB,CAAExqG,EAAYmsG,KAAA,CAC9B5zG,IAAKw0G,EAAa/sG,GAClBnH,KAAMmH,EAAWnH,KAAOmH,EAAW3G,MAAQ,EAAI8yG,EAAY9yG,MAAQ,EACnEnhB,KAAM,aACD2oB,GAAU,CAAEA,YAGlB6pG,0BAA2B,CAAE1qG,EAAYmsG,KAAA,CACxC5zG,IAAKw0G,EAAa/sG,GAClBnH,KAAMmH,EAAWnH,KAAOmH,EAAW3G,MAAQ,EAA0B,IAApB8yG,EAAY9yG,MAAiBwyG,EAC9E3zH,KAAM,eACD2oB,GAAU,CAAEA,YAGlB+pG,oBAAqB,CAAE5qG,EAAYmsG,KAAA,CAClC5zG,IAAKw0G,EAAa/sG,GAClBnH,KAAMmH,EAAWnH,KAAOmH,EAAW3G,MAAQ,EAAI8yG,EAAY9yG,MAAQwyG,EACnE3zH,KAAM,cACD2oB,GAAU,CAAEA,YAKlBusG,wBAAyBptG,IAAA,CACxBzH,IAAKw0G,EAAa/sG,GAClBnH,KAAMmH,EAAWvH,MAAQozG,EACzB3zH,KAAM,cACD2oB,GAAU,CAAEA,YAGlBwsG,8BAA+B,CAAErtG,EAAYmsG,KAAA,CAC5C5zG,IAAKw0G,EAAa/sG,GAClBnH,KAAMmH,EAAWvH,MAA8B,IAApB0zG,EAAY9yG,MAAgBwyG,EACvD3zH,KAAM,eACD2oB,GAAU,CAAEA,YAGlBysG,oBAAqB,CAAEttG,EAAYmsG,KAAA,CAClC5zG,IAAKw0G,EAAa/sG,GAClBnH,KAAMmH,EAAWvH,MAAQ0zG,EAAY9yG,MAAQ,EAC7CnhB,KAAM,aACD2oB,GAAU,CAAEA,YAGlB0sG,8BAA+B,CAAEvtG,EAAYmsG,KAAA,CAC5C5zG,IAAKw0G,EAAa/sG,GAClBnH,KAAMmH,EAAWvH,MAA8B,IAApB0zG,EAAY9yG,MAAgBwyG,EACvD3zH,KAAM,eACD2oB,GAAU,CAAEA,YAGlB2sG,wBAAyB,CAAExtG,EAAYmsG,KAAA,CACtC5zG,IAAKw0G,EAAa/sG,GAClBnH,KAAMmH,EAAWvH,MAAQ0zG,EAAY9yG,MAAQwyG,EAC7C3zH,KAAM,cACD2oB,GAAU,CAAEA,YAKlB4sG,cAAe,CAAEztG,EAAYmsG,KAAA,CAC5B5zG,IAAKyH,EAAWzH,IAAMyH,EAAW1G,OAAS,EAAI6yG,EAAY7yG,OAAS,EACnET,KAAMmH,EAAWnH,KAAOszG,EAAY9yG,MAAQ0yG,EAC5C7zH,KAAM,aACD2oB,GAAU,CAAEA,YAKlB6sG,cAAe,CAAE1tG,EAAYmsG,KAAA,CAC5B5zG,IAAKyH,EAAWzH,IAAMyH,EAAW1G,OAAS,EAAI6yG,EAAY7yG,OAAS,EACnET,KAAMmH,EAAWvH,MAAQszG,EACzB7zH,KAAM,aACD2oB,GAAU,CAAEA,YAKlBqqG,oBAAqB,CAAElrG,EAAYmsG,EAAa1sG,EAAcS,KAC7D,MAAMytG,EAAeztG,GAAeT,EAEpC,OAAMO,EAAW3F,gBAAiBszG,GAM7BA,EAAar0G,OAAS0G,EAAW1G,OAAS2yG,EACvC,KAGD,CACN1zG,IAAKo1G,EAAap1G,IAAM0zG,EACxBpzG,KAAMmH,EAAWnH,KAAOmH,EAAW3G,MAAQ,EAAI8yG,EAAY9yG,MAAQ,EACnEnhB,KAAM,YACN2oB,OAAQ,CACPspG,WAAW,KACRtpG,IAfG,IAiBP,GAUH,SAASurG,EAAapsG,EAAkBmsG,GACvC,OAAOnsG,EAAWzH,IAAM4zG,EAAY7yG,OAASyyG,CAC9C,CAOA,SAASgB,EAAa/sG,GACrB,OAAOA,EAAWrH,OAASozG,CAC5B,CACD,CAoBA,uBAAgC,GAgChC,yBAAkC,GAyBlC,4BAAqC,GAKrC,2BAAqC7sG,GAmXrC,wBAAiDkrG,GAAiBwB,oBAOnE,SAASJ,GAAe//G,GACvB,OAAK,GAAWA,GACRA,EAGHuN,GAASvN,GACNA,EAAOsP,wBAGO,mBAAVtP,EACJ+/G,GAAe//G,KAGhB,IACR,C,eCrqCI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ+nB,OAAvB,MCiBMo6F,GAAgB,aAwDP,MAAMC,WAAuC13G,MAI3C23G,gBAKAC,iBAMhB,+BAAwD3D,GAAiBwB,kBAAmB,CAC3FG,aAAc,EACdF,WAAY,KAOLmC,2BAAiD,KAKjDC,wBAAkD,KAQlDC,gBAAyC,KAKzCx+D,kBAAoD,KAMpDy+D,qBAKAC,uBAESC,kBAMjB,gBAA0B,IAAIpkH,IAM9B,iBAAkD,KAKlD,WAAAhS,CAAag+B,GAOZ,GANAlyB,QAEA8pH,GAAeS,SAASlqH,IAAK6xB,GAIxB43F,GAAeU,UACnB,OAAOV,GAAeU,UAGvBV,GAAeU,UAAYr4H,KAE3BA,KAAK43H,gBAAkB,IAAIv6F,GAAM0C,EAAOxC,QACxCv9B,KAAK43H,gBAAgBhmH,IAAK,OAAQ,IAClC5R,KAAK43H,gBAAgB35F,YAAa,CACjClmB,IAAK,OACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,qBAGF3mB,SAAU,CACT,CACCmgB,KAAMr4B,KAAK43H,gBAAgB/5F,aAAat+B,GAAI,YAK/CS,KAAK63H,iBAAmB,IAAI3D,GAAkBn0F,EAAOxC,QACrDv9B,KAAK63H,iBAAiBh5F,MAAQ64F,GAC9B13H,KAAK63H,iBAAiB33H,QAAQgO,IAAKlO,KAAK43H,iBAExC53H,KAAKw5D,kBAsUP,SAAiC7pD,GAChC,MAAMwrD,EAAmB,IAAIvB,kBAAkB,KAC9CjqD,GAAU,IAGX,MAAO,CACN,MAAA0R,CAAQtK,GACPokD,EAAiBnzC,QAASjR,EAAS,CAClCxR,YAAY,EACZ+yH,gBAAiB,CAAE,wBAAyB,8BAE9C,EAEA,MAAA92G,GACC25C,EAAiBpB,YAClB,EAEF,CAvV2Bw+D,EAAwB,KAChDv4H,KAAKw4H,wBAAwB,IAG9Bx4H,KAAKi4H,qBAAuB,GAAUj4H,KAAKy4H,YAAa,KACxDz4H,KAAKk4H,uBAAyB,GAAUl4H,KAAK04H,cAAe,KAE5D14H,KAAK4P,SAAU,GAAOpM,SAAU,UAAWxD,KAAK24H,WAAW3xH,KAAMhH,MAAQ,CAAEogB,YAAY,IACvFpgB,KAAK4P,SAAU,GAAOpM,SAAU,aAAcxD,KAAK44H,gBAAgB5xH,KAAMhH,MAAQ,CAAEogB,YAAY,IAC/FpgB,KAAK4P,SAAU,GAAOpM,SAAU,aAAcxD,KAAK64H,eAAe7xH,KAAMhH,MAAQ,CAAEogB,YAAY,IAE9FpgB,KAAK4P,SAAU,GAAOpM,SAAU,QAASxD,KAAK44H,gBAAgB5xH,KAAMhH,MAAQ,CAAEogB,YAAY,IAC1FpgB,KAAK4P,SAAU,GAAOpM,SAAU,OAAQxD,KAAK64H,eAAe7xH,KAAMhH,MAAQ,CAAEogB,YAAY,IAExFpgB,KAAK4P,SAAU,GAAOpM,SAAU,SAAUxD,KAAK84H,UAAU9xH,KAAMhH,MAAQ,CAAEogB,YAAY,IAOrFpgB,KAAKm4H,mBAAoB,CAC1B,CASO,OAAAlwG,CAAS8X,GACf,MAAMg5F,EAA2Bh5F,EAAO+E,GAAGnN,MAAQoI,EAAO+E,GAAGnN,KAAK1U,KAElE00G,GAAeS,SAAStmH,OAAQiuB,GAChC//B,KAAK+P,cAAegwB,EAAO+E,IAItBi0F,GAA4BA,EAAyB9qH,IAAKjO,KAAK63H,mBACnEkB,EAAyB9yH,OAAQjG,KAAK63H,kBAGjCF,GAAeS,SAASpkH,OAC7BhU,KAAK04H,gBACL14H,KAAK63H,iBAAiB5vG,UACtBjoB,KAAK+P,gBAEL4nH,GAAeU,UAAY,KAE7B,CASA,8BAAcW,CAAyBvxG,GACtC,MAAM4sG,EAAmBsD,GAAesB,wBAExC,MAAO,CAENhgI,EAAG,CACFo7H,EAAiBC,gBACjBD,EAAiBK,oBACjBL,EAAiBI,qBAElBn5H,EAAG,CAAE+4H,EAAiBM,iBACtBzwH,EAAG,CAAEmwH,EAAiBmD,eACtB99H,EAAG,CAAE26H,EAAiBkD,eACtB2B,GAAI,CAAE7E,EAAiBK,qBACvByE,GAAI,CAAE9E,EAAiBI,sBACrBhtG,EACJ,CAQQ,UAAAkxG,CAAYnjH,EAAgBw/C,GACb,WAAjBA,EAASj+D,KAAoBiJ,KAAK83H,6BACtC93H,KAAK04H,gBACL1jE,EAAS5+B,kBAEX,CAQQ,eAAAwiG,CAAiBpjH,GAAgB,OAAE5R,IAC1C,MAAMw1H,EAA8BC,GAA0Bz1H,GAGxDw1H,EAaDA,IAAgCp5H,KAAK83H,6BAI1C93H,KAAK04H,gBAEa,UAAbljH,EAAIxT,KACRhC,KAAKy4H,YAAaW,EAA6BE,GAAgBF,IAE/Dp5H,KAAKi4H,qBAAsBmB,EAA6BE,GAAgBF,KAnBtD,UAAb5jH,EAAIxT,MACRhC,KAAK04H,eAoBR,CAQQ,cAAAG,CAAgBrjH,GAAgB,OAAE5R,EAAM,cAAE46D,IACjD,GAAkB,eAAbhpD,EAAIxT,KAAwB,CAEhC,IAAM,GAAW4B,GAChB,OAGD,MAAM21H,EAAiBv5H,KAAK63H,iBAAiB9gH,QACvCyiH,EAAoBD,IAAoBA,IAAmB/6D,GAAiB+6D,EAAej0G,SAAUk5C,IACrGi7D,GAAoBD,GAAqB51H,IAAW21H,EAG1D,GAAKC,EAEJ,YADAx5H,KAAKk4H,uBAAuBthG,SAQ7B,IAAM6iG,GAAoBz5H,KAAK83H,4BAA8Bl0H,IAAW5D,KAAK83H,2BAC5E,OAGD,MAAM4B,EAAwBL,GAA0Bz1H,GAClD+1H,EAA+BN,GAA0B76D,IAK1Di7D,GAAsBC,GAAyBA,IAA0BC,IAC7E35H,KAAKk4H,wBAEP,KAAO,CAGN,GAAKl4H,KAAK83H,4BAA8Bl0H,IAAW5D,KAAK83H,2BACvD,OAKD93H,KAAKk4H,wBACN,CACD,CAQQ,SAAAY,CAAWtjH,GAAc,OAAE5R,IAE5B5D,KAAK83H,6BAONl0H,EAAO0hB,SAAUtlB,KAAK63H,iBAAiB9gH,UAAanT,EAAO0hB,SAAUtlB,KAAK83H,6BAI/E93H,KAAK04H,gBACN,CASQ,WAAAD,CACPmB,GACA,KAAEvhG,EAAI,SAAE5Q,EAAQ,SAAEoyG,IAElB75H,KAAK04H,gBAGL,MAAMoB,EAAqB,GAAOnC,GAAeS,SAAShtH,UAAY05B,GAAGnN,KAAK1U,KAExE62G,EAAmB7rH,IAAKjO,KAAK63H,mBAClCiC,EAAmB5rH,IAAKlO,KAAK63H,kBAG9B73H,KAAK43H,gBAAgBv/F,KAAOA,EAE5Br4B,KAAK63H,iBAAiB3C,IAAK,CAC1BtxH,OAAQg2H,EACR3wG,UAAW0uG,GAAeqB,wBAAyBvxG,KAGpDznB,KAAKg4H,gBAAkB,IAAItwG,GAAgBkyG,GAAkB,KAGtD7wG,GAAW6wG,IAChB55H,KAAK04H,eACN,IAGD14H,KAAKw5D,kBAAmBn4C,OAAQu4G,GAEhC55H,KAAK63H,iBAAiBh5F,MAAQ,CAAE64F,GAAemC,GAC7C9zH,QAAQwqC,GAAaA,IACrBrzC,KAAM,KAKR,UAAY6iC,KAAU43F,GAAeS,SACpCp4H,KAAK4P,SAA+BmwB,EAAO+E,GAAI,SAAU9kC,KAAKw4H,uBAAuBxxH,KAAMhH,MAAQ,CAAEgN,SAAU,QAGhHhN,KAAK83H,2BAA6B8B,EAClC55H,KAAK+3H,wBAA0BtwG,CAChC,CAKQ,aAAAixG,GACP14H,KAAKk4H,uBAAuBthG,SAC5B52B,KAAKi4H,qBAAqBrhG,SAE1B52B,KAAK63H,iBAAiB1C,QAEtB,UAAYp1F,KAAU43F,GAAeS,SACpCp4H,KAAK+P,cAAegwB,EAAO+E,GAAI,UAGhC9kC,KAAK83H,2BAA6B,KAClC93H,KAAK+3H,wBAA0B,KAC/B/3H,KAAK43H,gBAAgBv/F,KAAO,GAEvBr4B,KAAKg4H,iBACTh4H,KAAKg4H,gBAAgB/vG,UAGtBjoB,KAAKw5D,kBAAmBh4C,QACzB,CAOQ,sBAAAg3G,GACP,MAAMuB,EAAcT,GAAgBt5H,KAAK83H,4BAInC/uG,GAAW/oB,KAAK83H,6BAAiCiC,EAAY1hG,KAMnEr4B,KAAK63H,iBAAiB3C,IAAK,CAC1BtxH,OAAQ5D,KAAK83H,2BACb7uG,UAAW0uG,GAAeqB,wBAAyBe,EAAYtyG,YAP/DznB,KAAK04H,eASP,EAKD,SAASW,GAA0BtiH,GAClC,OAAM,GAAWA,GAIVA,EAAQijH,QAAS,4DAHhB,IAIT,CAQA,SAASV,GAAgBviH,GACxB,MAAO,CACNshB,KAAMthB,EAAQ4tC,QAAQs1E,eACtBxyG,SAAY1Q,EAAQ4tC,QAAQu1E,oBAAsB,IAClDL,SAAU9iH,EAAQ4tC,QAAQw1E,iBAAmB,GAE/C,CC7bA,SAlBA,SAAkB5hH,EAAMke,EAAMlyB,GAC5B,IAAI8xD,GAAU,EACVE,GAAW,EAEf,GAAmB,mBAARh+C,EACT,MAAM,IAAIpW,UAnDQ,uBAyDpB,OAJI,EAASoC,KACX8xD,EAAU,YAAa9xD,IAAYA,EAAQ8xD,QAAUA,EACrDE,EAAW,aAAchyD,IAAYA,EAAQgyD,SAAWA,GAEnD,GAASh+C,EAAMke,EAAM,CAC1B,QAAW4/B,EACX,QAAW5/B,EACX,SAAY8/B,GAEhB,ECtCM6jE,GAA+B,GAC/BC,GAA8B,IAC9BC,GAAgB,aAUP,MAAMC,WAAkCt6G,MAIrC8f,OAKTy6F,aAKAC,sBAOAC,4BAQR,WAAA34H,CAAag+B,GACZlyB,QAEA7N,KAAK+/B,OAASA,EACd//B,KAAKw6H,aAAe,KACpBx6H,KAAK06H,4BAA8B,KACnC16H,KAAKy6H,sBAAwB,GAAUz6H,KAAK26H,aAAa3zH,KAAMhH,MAAQ,GAAI,CAAEq2D,SAAS,IAEtFt2B,EAAOtwB,GAAI,QAASzP,KAAK46H,mBAAmB5zH,KAAMhH,MACnD,CAKO,OAAAioB,GACN,MAAM4yG,EAAU76H,KAAKw6H,aAEhBK,IAGJA,EAAQ1F,QACRn1H,KAAKw6H,aAAe,MAGrBx6H,KAAKy6H,sBAAsB7jG,SAC3B52B,KAAK+P,eACN,CAKQ,kBAAA6qH,GACP,MAAM76F,EAAS//B,KAAK+/B,UACGA,EAAOpV,OAAOviB,IAAK,8BAGmC,UCnFhE,SAAwB0yH,GAYtC,SAASC,EAAeD,GACvB,OAAKA,EAAMxiI,QAAU,IAAMwiI,EAAMxiI,QAAU,IACnC,QAEA,SAET,CAIA,IAAMwiI,EACL,MAAO,UAGR,IAAIE,EAAgB,GAEpB,IACCA,EAAgBt3H,KAAMo3H,EACvB,CAAE,MAAQ52H,GACT,MAAO,SACR,CAEA,MAAM+2H,EAAwBD,EAAcj+H,MAAO,KAE7Cm+H,EAAeD,EAAuB,GACtCE,EAAgBF,EAAuB,GAE7C,IAAME,EACL,OAAOJ,EAAeD,GAGvB,IACCp3H,KAAMy3H,EACP,CAAE,MAAQj3H,GACT,IAGC,GAFAR,KAAMw3H,IAEAx3H,KAAMw3H,GAAe5iI,OAC1B,OAAOyiI,EAAeD,EAExB,CAAE,MAAQ52H,GACT,OAAO62H,EAAeD,EACvB,CACD,CAEA,GAAKI,EAAa5iI,OAAS,IAAM4iI,EAAa5iI,OAAS,IACtD,MAAO,UAGR,IAAI8iI,EAAyB,GAE7B,IACC13H,KAAMw3H,GACNE,EAAyB13H,KAAMy3H,EAChC,CAAE,MAAQj3H,GACT,MAAO,SACR,CAEA,GAAuC,IAAlCk3H,EAAuB9iI,OAC3B,MAAO,UAGR,MAAM+iI,EAAOh0G,OAAQ+zG,EAAuBx+H,UAAW,EAAG,IACpD0+H,EAAaj0G,OAAQ+zG,EAAuBx+H,UAAW,EAAG,IAAQ,EAClE2+H,EAAMl0G,OAAQ+zG,EAAuBx+H,UAAW,EAAG,IAEnD4+H,EAAO,IAAIvsH,KAAMosH,EAAMC,EAAYC,GAEzC,OAAKC,EAAOxsH,GAAe8vG,MAAOz3F,OAAQm0G,IAClC,UAGD,OACR,CDFwBC,CAAe17F,EAAOpV,OAAOviB,IAAK,iBAKlD23B,EAAO+E,GAAGnN,OAIhBoI,EAAO+E,GAAG7F,aAAaxvB,GAAI,oBAAoB,CAAE+F,EAAK1S,EAAMgzB,KAC3D91B,KAAK07H,oCAEA5lG,EACJ91B,KAAK26H,eAEL36H,KAAK27H,cACN,IAGD57F,EAAO+E,GAAG7F,aAAaxvB,GAAI,yBAAyB,CAAE+F,EAAK1S,EAAM8yB,KAChE51B,KAAK07H,oCAEA9lG,GACJ51B,KAAK26H,cACN,IAGD56F,EAAO+E,GAAGr1B,GAAI,UAAU,KACvBzP,KAAKy6H,uBAAuB,IAE9B,CAMQ,kBAAAmB,GACP,MAAM77F,EAAS//B,KAAK+/B,OACd86F,EAAU76H,KAAKw6H,aAAe,IAAItG,GAClC2H,EAAkBC,GAAqB/7F,GACvCpI,EAAO,IAAIokG,GAAeh8F,EAAOxC,OAAQs+F,EAAgBpjF,OAE/DoiF,EAAQ36H,QAAQgO,IAAKypB,GACrBkjG,EAAQjpH,IAAK,CACZitB,MAAO,0BAGRkB,EAAO+E,GAAGnN,KAAK1U,KAAK/U,IAAK2sH,GACzB96F,EAAO+E,GAAG7F,aAAa/wB,IAAK2sH,EAAQ9jH,SAEpC/W,KAAKw6H,aAAeK,CACrB,CAKQ,YAAAF,GACP,IAAM36H,KAAK06H,4BACV,OAGD,MAAMsB,EAkHR,SAAkCj8F,EAAgBk8F,GACjD,MAAMJ,EAAkBC,GAAqB/7F,GACvC5V,EAA+C,UAAzB0xG,EAAgB5rC,KAU7C,SAAsCgsC,EAAqCtxG,GAC1E,OAAOuxG,GAAwBD,EAAwBtxG,GAAQ,CAAEwxG,EAAUlG,IACnEkG,EAASx5G,KAAOw5G,EAASh5G,MAAQ8yG,EAAY9yG,MAAQwH,EAAOyxG,kBAErE,CAbEC,CAA6BJ,EAAwBJ,GAevD,SAAqCI,EAAqCtxG,GACzE,OAAOuxG,GAAwBD,EAAwBtxG,GAAQwxG,GAAYA,EAASx5G,KAAOgI,EAAOyxG,kBACnG,CAhBEE,CAA4BL,EAAwBJ,GAErD,MAAO,CACNj4H,OAAQq4H,EACRhzG,UAAW,CAAEkB,GAEf,CA5HwBoyG,CAAyBv8H,KAAK+/B,OAAQ//B,KAAK06H,6BAE5DsB,IACEh8H,KAAKw6H,cACVx6H,KAAK47H,qBAGN57H,KAAKw6H,aAActF,IAAK8G,GAE1B,CAKQ,YAAAL,GACF37H,KAAKw6H,cACTx6H,KAAKw6H,aAAcrF,OAErB,CAKQ,iCAAAuG,GACP,MAAM37F,EAAS//B,KAAK+/B,OACdjK,EAAYiK,EAAO+E,GAAG7F,aAAanJ,UACnCF,EAAiBmK,EAAO+E,GAAG7F,aAAarJ,eAE9C,IAAME,IAAcF,EAGnB,YAFA51B,KAAK06H,4BAA8B,MAKpC,MAAM8B,EAAyB77H,MAAMrB,KAAMygC,EAAO+E,GAAG23F,4BAA6Bz/H,KAAKgF,GAC/E+9B,EAAO+E,GAAG43F,mBAAoB16H,KAGjCw6H,EAAuBrqG,SAAUyD,GACrC51B,KAAK06H,4BAA8B9kG,EAInC51B,KAAK06H,4BAA8B8B,EAAwB,EAE7D,EAMD,MAAMT,WAAsB1+F,GAO3B,WAAAt7B,CAAaw7B,EAAgBkb,GAC5B5qC,MAAO0vB,GAEP,MAAMk1E,EAAW,IAAIV,GACf/qG,EAAOhH,KAAK69B,aAElB40E,EAAS7gG,IAAK,CACb1R,QEvOH,80LFwOGy8H,kBAAkB,IAGnBlqB,EAAS74E,eAAgB,CACxBr0B,WAAY,CACXF,MAAO,CACN8d,MAAOy5G,OACPx5G,OAAQy5G,WAKX78H,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CAAE,KAAM,iBACf,eAAe,GAEhB3mB,SAAU,CACT,CACCH,IAAK,IACLxS,WAAY,CACXu3H,KAAM,yHAENl5H,OAAQ,SACRqvG,SAAU,MAEX/6F,SAAU,IACNugC,EAAQ,CACV,CACC1gC,IAAK,OACLxS,WAAY,CACXs5B,MAAO,CAAE,KAAM,yBAEhB3mB,SAAU,CAAEugC,KAEV,GACJg6D,GAEDhjG,GAAI,CACHstH,UAAW/1H,EAAKzH,IAAIiW,GAAOA,EAAI2gB,uBAKpC,EAyBD,SAAS+lG,GACRD,EACAtxG,EACAqyG,GAEA,MAAO,CAAEC,EAAkChH,KAC1C,MAAMiH,EAAsB,IAAI,GAAMjB,GAEtC,GAAKiB,EAAoB/5G,MAAQk3G,IAA+B6C,EAAoB95G,OAASg3G,GAC5F,OAAO,KAGR,IAAI+C,EAGHA,EADwB,WAApBxyG,EAAOlD,SACEy1G,EAAoBz6G,OAASwzG,EAAY7yG,OAGzC85G,EAAoBz6G,OAASwzG,EAAY7yG,OAAS,EAGhE+5G,GAAcxyG,EAAOyyG,eAErB,MAAMC,EAAcL,EAAgBE,EAAqBjH,GAUnDqH,EALyBL,EAC7Bj5G,QACAC,OAAQo5G,EAAaF,GACrBh5G,gBAAiB8xG,EAAYjyG,QAAQC,OAAQo5G,EAAaF,IAEC14G,aAE7D,OAAM64G,GAAiCA,EAA8B94G,UAAYyxG,EAAYzxG,UACrF,KAGD,CACNnC,IAAK86G,EACLx6G,KAAM06G,EACNr7H,KAAM,YAAa2oB,EAAOlD,iBAAmBkD,EAAOslE,OACpDtlE,OAAQ,CACPspG,WAAW,GAEZ,CAEH,CAEA,SAAS6H,GAAqB/7F,GAC7B,MAAMw9F,EAAax9F,EAAOpV,OAAOviB,IAAK,gBAChCqf,EAAW81G,GAAcA,EAAW91G,UAAY,SAEtD,MAAO,CACNA,WACAgxB,MAAO6hF,GACP8C,eAA6B,WAAb31G,EAAwB,EAAI,EAC5C20G,iBAAkB,EAElBnsC,KAAiD,QAA3ClwD,EAAOxC,OAAOtO,yBAAqC,QAAU,UAChEsuG,EAEL,C,eG1WI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQjgG,OAAvB,MCcakgG,GAA8B,CAC1CC,OAAQ,SACRC,UAAW,aAgBG,MAAMC,GAIJ59F,OAKTpI,KAKP,WAAA51B,CAAag+B,GACZ//B,KAAK+/B,OAASA,EAOdA,EAAOlwB,KAAM,SAAS,KACrB,UAAY+tH,KAAc5mI,OAAOoU,OAAQoyH,IACxCx9H,KAAK69H,SAAU,GAAID,EACpB,GAEF,CAeO,QAAAC,CACNC,EACAv4H,EAAwEi4H,GAA4BC,QAEpG,MAAM19F,EAAS//B,KAAK+/B,OAEpB,IAAMA,EAAO+E,GAAGnN,KACf,OAGK33B,KAAK23B,OACV33B,KAAK23B,KAAO,IAAIomG,GAAuBh+F,EAAOxC,QAC9CwC,EAAO+E,GAAGnN,KAAK1U,KAAK/U,IAAKlO,KAAK23B,OAG/B,MAAM,WAAEimG,EAAU,aAAEI,GAA+D,iBAAfz4H,EAA0B,CAC7Fq4H,WAAYr4H,GACTA,EAEJ,IAAI04H,EAAuBj+H,KAAK23B,KAAKumG,YAAY3pG,MAAMoD,GAAQA,EAAKimG,aAAeA,IAE7EK,IACLA,EAAuB,IAAIE,GAA6Bp+F,EAAQ69F,GAChE59H,KAAK23B,KAAKumG,YAAYhwH,IAAK+vH,IAG5BA,EAAqBJ,SAAU,CAC9BC,eACAE,gBAEF,EAMM,MAAMD,WAA8B1gG,GAI1B6gG,YAEhB,WAAAn8H,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAKk+H,YAAcl+H,KAAK29B,mBAExB39B,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,2BAGF3mB,SAAUlY,KAAKk+H,aAEjB,EAMM,MAAMC,WAAoC9gG,GAIhCugG,WAKRQ,cAKAC,4BAER,WAAAt8H,CAAag+B,EAAgB69F,GAC5B/vH,MAAOkyB,EAAOxC,QAEdv9B,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXytG,KAAM,SACN,YAAa4qB,EACb,gBAAiB,aAElB1lH,SAAU,CACT,CACCH,IAAK,KACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,iCAOLkB,EAAOtwB,GAAI,WAAW,KACqB,OAArCzP,KAAKq+H,8BACTviE,cAAe97D,KAAKq+H,6BACpBr+H,KAAKq+H,4BAA8B,KACpC,IAGDr+H,KAAK49H,WAAaA,EAClB59H,KAAKo+H,cAAgBr+F,EAAOj9B,KAAK2kF,cAAc5rC,aAC/C77C,KAAKq+H,4BAA8B3iE,aAAa,KAC1C17D,KAAK+W,SAAW/W,KAAKs+H,aAAc33H,YACvC3G,KAAKs+H,aAAc33H,WAAYV,QAChC,GACE,IACJ,CAKO,QAAA43H,EAAU,aAAEC,EAAY,aAAEE,IAChC,IAAMF,EAAavvG,OAAOj2B,OACzB,OAGD,MAAMimI,EAAkB/6H,SAAS8B,cAAe,MAE3C04H,EACJh+H,KAAKo+H,cAAc3vE,aAAc8vE,EAAiBT,GAElDS,EAAgB15E,UAAYi5E,EAG7B99H,KAAKs+H,aAAc34H,YAAa44H,EACjC,CAKA,gBAAYD,GACX,OAAOt+H,KAAK+W,QAASjT,cAAe,KACrC,ECnMc,MAAe06H,WAAiClrH,KAI9CysB,OAMAo7E,iBAMAl8E,aAKAw/F,eAKAC,UAMAC,kBAQTC,SAAmB,EA4ClBC,qBAAuB,IAAIntH,IAK3BotH,6BAAkE,GAO1E,WAAA/8H,CAAag+B,GACZlyB,QAEA,MAAM2tG,EAAcz7E,EAAOotE,QAAQx1E,KAEnC33B,KAAK+/B,OAASA,EACd//B,KAAKm7G,iBAAmB,IAAI0Y,GAAkB9zF,GAC9C//B,KAAKi/B,aAAe,IAAI1J,GACxBv1B,KAAKy+H,eAAiB,IAAI9G,GAAgB53F,GAC1C//B,KAAK0+H,UAAY,IAAInE,GAAWx6F,GAChC//B,KAAK2+H,kBAAoB,IAAIhB,GAAmB59F,GAEhD//B,KAAK4R,IAAK,iBAAkB5R,KAAK++H,iCAEjC/+H,KAAK6P,KAA0B,SAAS,KACvC7P,KAAK4+H,SAAU,CAAI,IAIpB5+H,KAAK4P,SAA0C4rG,EAAYh4G,SAAU,gBAAiBxD,KAAK8G,OAAOE,KAAMhH,OACxGA,KAAK4P,SAAyC4rG,EAAa,uBAAwBx7G,KAAKg/H,4BAA4Bh4H,KAAMhH,OAE1HA,KAAKi/H,oBACN,CAcA,WAAWloH,GACV,OAAO,IACR,CAQO,MAAAjQ,GACN9G,KAAK4Q,KAA2B,SACjC,CAKO,OAAAqX,GACNjoB,KAAK+P,gBAEL/P,KAAKi/B,aAAahX,UAClBjoB,KAAKy+H,eAAex2G,QAASjoB,KAAK+/B,QAClC//B,KAAK0+H,UAAUz2G,UAGf,UAAY8zB,KAAc/7C,KAAK6+H,qBAAqBzzH,SACjD2wC,EAAoBmjF,iBAAmB,KACzCl/H,KAAK+/B,OAAO4sE,WAAW58F,cAAegsC,GAGvC/7C,KAAK6+H,qBAAuB,IAAIntH,IAChC1R,KAAK8+H,6BAA+B,EACrC,CAWO,kBAAAK,CAAoBr+F,EAAkBib,GAC5C/7C,KAAK6+H,qBAAqBjtH,IAAKkvB,EAAUib,GAMjCA,EAAoBmjF,mBACzBnjF,EAAoBmjF,iBAAmBl/H,KAAK+/B,QAI/C//B,KAAKi/B,aAAa/wB,IAAK6tC,GAEvB,MAAMqjF,EAAwB,KAGxBp/H,KAAK+/B,OAAOotE,QAAQx1E,KAAKonC,WAAYj+B,IAI1C9gC,KAAK+/B,OAAO4sE,WAAW/8F,SAAUmsC,EAAY,EAIzC/7C,KAAK4+H,QACTQ,IAIAp/H,KAAK6P,KAA0B,QAASuvH,EAE1C,CAOO,qBAAAC,CAAuBv+F,GAC7B,MAAMib,EAAa/7C,KAAK6+H,qBAAqBz2H,IAAK04B,GAE5Cib,IAIN/7C,KAAK6+H,qBAAqB/sH,OAAQgvB,GAElC9gC,KAAK+/B,OAAO4sE,WAAW58F,cAAegsC,GACtC/7C,KAAKi/B,aAAah5B,OAAQ81C,GAExBA,EAAoBmjF,iBAAmB,KAC1C,CAOO,kBAAAxC,CAAoB57F,EAAmB,QAC7C,OAAO9gC,KAAK6+H,qBAAqBz2H,IAAK04B,EACvC,CAKO,wBAAA27F,GACN,OAAOz8H,KAAK6+H,qBAAqB5nI,MAClC,CAUO,UAAAqoI,CAAYpd,EAA0B39G,EAAmC,CAAC,GAC3E29G,EAAYjqF,YAChBj4B,KAAKi/B,aAAa/wB,IAAKg0G,EAAYnrG,SACnC/W,KAAK+/B,OAAO4sE,WAAW/8F,SAAUsyG,EAAYnrG,UAE7CmrG,EAAYryG,KAAyB,UAAU,KAC9C7P,KAAKi/B,aAAa/wB,IAAKg0G,EAAYnrG,SACnC/W,KAAK+/B,OAAO4sE,WAAW/8F,SAAUsyG,EAAYnrG,QAAU,IAIzD/W,KAAK8+H,6BAA6Bl/H,KAAM,CAAEsiH,cAAa39G,WACxD,CAOA,qBAAcg7H,GAeb,OALA5wH,QAAQC,KACP,8IAEA,CAAE4wH,SAAUx/H,OAENA,KAAK6+H,oBACb,CAgBQ,6BAAAE,GACP,MAAMh/F,EAAS//B,KAAK+/B,OACd3W,EAAuB2W,EAAOpV,OAAOviB,IAAK,qBAEhD,GAAKghB,EACJ,OAAOA,EAIR,MAAMq2G,EAAqB1/F,EAAOpV,OAAOviB,IAAK,6BAG9C,OAAKq3H,GAQJ9wH,QAAQC,KACP,0MAKM,CAAEyT,IAAKo9G,IAIR,CAAEp9G,IAAK,EACf,CAOQ,kBAAA48G,GACP,MAAMl/F,EAAS//B,KAAK+/B,OACdy7E,EAAcz7E,EAAOotE,QAAQx1E,KAEnC,IAAI+nG,EACAC,EAGJ5/F,EAAO4sE,WAAW/6F,IAAK,WAAW,CAAE9O,EAAM8zB,KACzC,MAAMhB,EAAiB51B,KAAKi/B,aAAarJ,eAMxCj1B,MAAMrB,KAAMU,KAAK6+H,qBAAqBzzH,UAAW+mB,SAAUyD,KAC1Dj1B,MAAMrB,KAAMk8G,EAAY19C,SAAS1yD,UAAW+mB,SAAUyD,KAEvD8pG,EAA4B9pG,GAG7B,MAAMgqG,EAAkC5/H,KAAK6/H,sCAOvCD,GAAoCD,IACzCA,EAAuB3/H,KAAK8/H,4CAK7B,QAAUtlI,EAAI,EAAGA,EAAImlI,EAAqBrnI,OAAQkC,IAAM,CACvD,MAAMulI,EAAsBJ,EAAqBpyG,QAQjD,GAJAoyG,EAAqB//H,KAAMmgI,GAK1BA,IAAwBH,GACxB5/H,KAAKggI,gCAAiCD,GACrC,CAEIH,GAAmCA,EAAgCr7H,QAAQ07H,WAC/EL,EAAgCr7H,QAAQ07H,YAGzC,KACD,CACD,CAEArpG,GAAQ,IAITmJ,EAAO4sE,WAAW/6F,IAAK,OAAO,CAAE9O,EAAM8zB,KACrC,MAAMspG,EAAoBlgI,KAAK6/H,sCAEzBK,IAMDR,GACJA,EAA0BjgG,QAC1BigG,EAA4B,MAO5B3/F,EAAOotE,QAAQx1E,KAAK8H,QAIhBygG,EAAkB37H,QAAQ07H,WAC9BC,EAAkB37H,QAAQ07H,YAG3BrpG,IAAQ,GAEV,CAaQ,wCAAAkpG,GACP,MAAM5pB,EAAiD,GAEvD,UAAYiqB,KAAcngI,KAAK8+H,6BAA+B,CAC7D,MAAM,YAAE5c,EAAW,QAAE39G,GAAY47H,GAE5Bp3G,GAAWm5F,EAAYnrG,UAAaxS,EAAQ67H,cAChDlqB,EAAYt2G,KAAMugI,EAEpB,CAMA,OAFAjqB,EAAYr0F,MAAM,CAAEw+G,EAAMC,IAAUC,GAA4BF,GAASE,GAA4BD,KAE9FpqB,CACR,CAOQ,mCAAA2pB,GACP,UAAY33H,KAAclI,KAAK8+H,6BAC9B,GAAK52H,EAAWg6G,YAAYnrG,SAAW7O,EAAWg6G,YAAYnrG,QAAQuO,SAAUtlB,KAAKi/B,aAAarJ,gBACjG,OAAO1tB,EAIT,OAAO,IACR,CAQQ,+BAAA83H,CAAiCQ,GACxC,MAAM,YAAEte,EAAa39G,SAAS,YAAE67H,IAAkBI,EAOlD,OALKJ,GACJA,MAIKr3G,GAAWm5F,EAAYnrG,WAI7BmrG,EAAYziF,SAEL,EACR,CASQ,2BAAAu/F,CACPxpH,EACA1S,GAEA,MAAM29H,EAA2B,CAChCp+G,IAAK,EACLI,OAAQ,EACRE,KAAM,EACNJ,MAAO,KACJviB,KAAKqrB,gBAGTvoB,EAAKuoB,eAAehJ,KAAOo+G,EAAyBp+G,IACpDvf,EAAKuoB,eAAe5I,QAAUg+G,EAAyBh+G,OACvD3f,EAAKuoB,eAAe1I,MAAQ89G,EAAyB99G,KACrD7f,EAAKuoB,eAAe9I,OAASk+G,EAAyBl+G,KACvD,EA+ED,SAASg+G,GAA4BJ,GACpC,MAAM,YAAEje,EAAW,QAAE39G,GAAY47H,EACjC,IAAIO,EAAS,GAYb,OATK33G,GAAWm5F,EAAYnrG,UAC3B2pH,IAIIn8H,EAAQo8H,cACZD,IAGMA,CACR,C,eCvoBI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQpjG,OCQR,MAAesjG,WAAqBvjG,GAKlCpa,KAYhB,WAAAlhB,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAKijB,KAAO,IAAI24F,GAAgBr+E,EACjC,CAKgB,MAAArF,GACfrqB,MAAMqqB,SAENl4B,KAAKijB,KAAK84F,aACX,CAKgB,OAAA9zF,GAGf,OAFAjoB,KAAKijB,KAAK+4F,gBAEHnuG,MAAMoa,SACd,ECxCc,MAAe44G,WAA0BD,GAKvCv+G,IAMAsmE,KAKCm4C,gBAOjB,WAAA/+H,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAKqiB,IAAMriB,KAAK29B,mBAChB39B,KAAK2oF,KAAO3oF,KAAK29B,mBACjB39B,KAAK8gI,gBAAkB9gI,KAAK+gI,oBAE5B/gI,KAAKi+B,YAAa,CACjBlmB,IAAK,MAELxS,WAAY,CACXs5B,MAAO,CACN,KACA,WACA,YACA,sBAEDm0E,KAAM,cACN/mG,IAAKsxB,EAAOjL,oBACZ0uG,KAAMzjG,EAAOlL,WACb,kBAAmBryB,KAAK8gI,gBAAgBjhI,IAGzCqY,SAAU,CACTlY,KAAK8gI,gBACL,CACC/oH,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,iBACA,gBAEDm0E,KAAM,gBAEP96F,SAAUlY,KAAKqiB,KAEhB,CACCtK,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,mBAEDm0E,KAAM,gBAEP96F,SAAUlY,KAAK2oF,QAInB,CAKQ,iBAAAo4C,GACP,MAAM/lI,EAAIgF,KAAKhF,EACTimI,EAAa,IAAIjnB,GAUvB,OARAinB,EAAW5oG,KAAOr9B,EAAG,oBAErBimI,EAAWrnG,eAAgB,CAC1Br0B,WAAY,CACXs5B,MAAO,oBAIFoiG,CACR,EC7Fc,MAAMC,WAAuB7jG,GAIpCr7B,KAAsB,KAiBnBm/H,aAKFC,iBAMAC,oBAUR,WAAAt/H,CACCw7B,EACAi+E,EACAlpE,GAEAzkC,MAAO0vB,GAEPv9B,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,aACA,sBACA,sBAEDmiG,KAAMzjG,EAAOhL,gBACbtmB,IAAKsxB,EAAOtO,4BAIdjvB,KAAK4R,IAAK,aAAa,GAEvB5R,KAAKohI,iBAAmB9uF,EACxBtyC,KAAKqhI,sBAAwBrhI,KAAKohI,iBAClCphI,KAAKmhI,aAAe3lB,CACrB,CAOgB,MAAAtjF,GACfrqB,MAAMqqB,SAEDl4B,KAAKqhI,oBACTrhI,KAAK25B,SAAU1oB,MAAOjR,KAAK+W,QAAU/W,KAAKohI,kBAE1CphI,KAAKohI,iBAAmBphI,KAAK+W,QAG9B/W,KAAKyP,GAA2B,oBAAoB,IAAMzP,KAAKshI,4BAC/DthI,KAAKshI,yBACN,CAKgB,OAAAr5G,GACVjoB,KAAKqhI,qBACTrhI,KAAK25B,SAAUZ,OAAQ/4B,KAAKohI,kBAG7BvzH,MAAMoa,SACP,CAMA,sBAAWs5G,GACV,OAAOvhI,KAAKqhI,mBACb,CAMQ,uBAAAC,GACP,MAAM9lB,EAAcx7G,KAAKmhI,aAQzB,SAASr6H,EAAQ6wB,GAChB6jF,EAAY11E,QAAQC,IACnB,MAAM24B,EAAW88C,EAAYh4G,SAASw3C,QAASrjB,EAAK31B,MAEpD+jC,EAAOmB,SAAUvP,EAAK7B,UAAY,aAAe,aAAc4oC,GAC/D34B,EAAOO,YAAa3O,EAAK7B,UAAY,aAAe,aAAc4oC,EAAU,GAE9E,CAbK88C,EAAY/7C,sBAoBjB,SAAS+hE,EAAmB7pG,GAC3B6jF,EAAY3rG,KAAsC,gCAAgC,CAAE2F,EAAKxT,EAAMxJ,KACxFA,EAGLgpI,EAAmB7pG,GAFnB7wB,EAAQ6wB,EAGT,GAEF,CA3BC6pG,CAAmBxhI,MAEnB8G,EAAQ9G,KA0BV,EC/Ic,MAAMyhI,WAA6BP,GAKhCQ,eAejB,WAAA3/H,CACCw7B,EACAi+E,EACAlpE,EACA/tC,EAAgE,CAAC,GAEjEsJ,MAAO0vB,EAAQi+E,EAAalpE,GAE5B,MAAMt3C,EAAIuiC,EAAOviC,EAEjBgF,KAAK45B,eAAgB,CACpBr0B,WAAY,CACXytG,KAAM,UACNn0E,MAAO,gCAIT7+B,KAAK0hI,eAAiBn9H,EAAQk0C,OAAS,KAAQz9C,EAAG,0BAA2BgF,KAAKgC,MACnF,CAKgB,MAAAk2B,GACfrqB,MAAMqqB,SAEN,MAAMsjF,EAAcx7G,KAAKmhI,aAEzB3lB,EAAY11E,QAAQC,IACnB,MAAM24B,EAAW88C,EAAYh4G,SAASw3C,QAASh7C,KAAKgC,MAEpD+jC,EAAOtgC,aAAc,aAAczF,KAAK0hI,eAAgB1hI,MAAQ0+D,EAAW,GAE7E,ECvDc,MAAM,WAA8BprD,KASlD,WAAAvR,CAAawD,EAAsCkO,GAClD5F,QAGK4F,GACJ,GAAQzT,KAAMyT,GAIVlO,GACJvF,KAAK4R,IAAKrM,EAEZ,E,cCjCG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ+3B,O,eCTnB,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQA,OAAvB,MCiBM,GAAuB/U,GAAQ,MAoCtB,MAAMo5G,WAA0B,GAUvCC,gBAEAC,aA+BCC,aAAe,IAAIpwH,IAKnBqwH,WAAa,IAAIrwH,IAKjBswH,MAAiC,KAMjCC,aAAmC,KAKnCC,gBAAyC,KAKjD,qBAAkBjgG,GACjB,MAAO,mBACR,CAKA,WAAAlgC,CAAag+B,GACZlyB,MAAOkyB,GAEP//B,KAAK4hI,gBAAkB,KACtB,MAAMjqG,EAAO33B,KAAK+/B,OAAOotE,QAAQx1E,KAE3B2a,EADe3a,EAAKn0B,SACWm9B,UAAU2R,gBAE/C,OAAKA,EACG3a,EAAKkkB,aAAaqK,aAAc5T,EAAgBh8C,MAGjD,IAAI,EAGZ0J,KAAK4R,IAAK,cAAe,MACzB5R,KAAK4R,IAAK,kBAAmB,GAC7B5R,KAAK4R,IAAK,mBAAmB,EAC9B,CAKgB,OAAAqW,GACfpa,MAAMoa,UAEDjoB,KAAKgiI,OACThiI,KAAKgiI,MAAM/5G,UAGPjoB,KAAKiiI,cACTjiI,KAAKiiI,aAAah6G,UAGdjoB,KAAKkiI,iBACTliI,KAAKkiI,gBAAgBj6G,SAEvB,CAKA,QAAW0P,GAKV,OAJM33B,KAAKgiI,OACVhiI,KAAKmiI,mBAGCniI,KAAKgiI,KACb,CAKO,OAAAI,CAASzqG,GACf,OAAOh3B,MAAMrB,KAAMU,KAAK8hI,aAAa7qI,QAASk7B,SAAUwF,EACzD,CAcO,GAAAzpB,CAAKpL,GAKX,GAJM9C,KAAKgiI,OACVhiI,KAAKmiI,mBAGDniI,KAAKoiI,QAASt/H,EAAK60B,MAMvB,MAAM,IAAIjqB,EACT,mCACA,CAAE1N,KAAM8C,IAIV,MAAMu/H,EAAUv/H,EAAKu/H,SAAW,OAGhC,IAAMriI,KAAK+hI,WAAW9zH,IAAKo0H,GAS1B,OARAriI,KAAK+hI,WAAWnwH,IAAKywH,EAAS,IAAI3wH,IAAK,CAAE,CAAE5O,EAAK60B,KAAM70B,MACtD9C,KAAK8hI,aAAalwH,IAAK9O,EAAK60B,KAAM33B,KAAK+hI,WAAW35H,IAAKi6H,IACvDriI,KAAKsiI,gBAAkBtiI,KAAK+hI,WAAW/tH,UAEjChU,KAAKuiI,gBAAiBz/H,EAAK0/H,gBAChCxiI,KAAKyiI,UAAWJ,IAMlB,MAAM3zH,EAAQ1O,KAAK+hI,WAAW35H,IAAKi6H,GAE9Bv/H,EAAK0/H,gBACTxiI,KAAKyiI,UAAWJ,GAIjB3zH,EAAMkD,IAAK9O,EAAK60B,KAAM70B,GACtB9C,KAAK8hI,aAAalwH,IAAK9O,EAAK60B,KAAMjpB,GAG7BA,IAAU1O,KAAKuiI,eACnBviI,KAAK0iI,UAAW5/H,EAElB,CAUO,MAAAmD,CAAQ0xB,GACd,IAAM33B,KAAKoiI,QAASzqG,GAMnB,MAAM,IAAIjqB,EACT,0CACA,CAAE1N,KAAM23B,IAIV,MAAMjpB,EAAQ1O,KAAK8hI,aAAa15H,IAAKuvB,GAEhC33B,KAAK2iI,iBAAmB3iI,KAAK4iI,cAAgBjrG,IACjD33B,KAAK2iI,iBAAkB,GAKnB3iI,KAAK4iI,cAAgBjrG,IACL,IAAfjpB,EAAMsF,KACLhU,KAAK+hI,WAAW/tH,KAAO,EAC3BhU,KAAK6iI,kBAEL7iI,KAAK23B,KAAKkiF,OACV75G,KAAK4iI,YAAc,KACnB5iI,KAAKiiI,aAAca,YAGpB9iI,KAAK0iI,UAAW/hI,MAAMrB,KAAMoP,EAAMtD,UAAYsD,EAAMsF,KAAO,KAIzC,IAAftF,EAAMsF,MACVhU,KAAK+hI,WAAWjwH,OAAQ9R,KAAK+iI,YAAar0H,IAC1C1O,KAAKsiI,gBAAkBtiI,KAAK+hI,WAAW/tH,MAEvCtF,EAAMoD,OAAQ6lB,GAGf33B,KAAK8hI,aAAahwH,OAAQ6lB,EAC3B,CAQO,cAAA6/E,CAAgB/vF,GACjBA,IACJznB,KAAKuiI,cAAcn6H,IAAKpI,KAAK4iI,aAAgBn7G,SAAWA,GAGzDznB,KAAK23B,KAAKu9F,IAAKl1H,KAAKgjI,uBACpBhjI,KAAKkiI,gBAAiB1qB,gBACvB,CAKO,SAAAirB,CAAW5iI,GACjBG,KAAK6hI,aAAehiI,EACpB,MAAM6O,EAAQ1O,KAAK+hI,WAAW35H,IAAKvI,GAEnC,IAAM6O,EAML,MAAM,IAAIhB,EACT,8CACA1N,MAIGA,KAAKuiI,gBAAkB7zH,GAI5B1O,KAAK0iI,UAAW/hI,MAAMrB,KAAMoP,EAAMtD,UAAWpM,MAC9C,CAKQ,gBAAAmjI,GACPniI,KAAKgiI,MAAQ,IAAI9N,GAAkBl0H,KAAK+/B,OAAOxC,QAE/Cv9B,KAAK+/B,OAAO+E,GAAGnN,KAAK1U,KAAK/U,IAAKlO,KAAKgiI,OACnChiI,KAAK+/B,OAAO+E,GAAG7F,aAAa/wB,IAAKlO,KAAKgiI,MAAMjrH,SAE5C/W,KAAKiiI,aAAejiI,KAAKijI,qBACzBjjI,KAAKkiI,gBAAkBliI,KAAKkjI,uBAC7B,CAKA,iBAAYX,GACX,OAAOviI,KAAK8hI,aAAa15H,IAAKpI,KAAK4iI,YACpC,CAKQ,WAAAG,CAAar0H,GAGpB,OAFc/N,MAAMrB,KAAMU,KAAK+hI,WAAW3oH,WAAYmb,MAAMlb,GAASA,EAAO,KAAQ3K,IAEtE,EACf,CAKQ,cAAAm0H,GACP,MAAMM,EAASxiI,MAAMrB,KAAMU,KAAK+hI,WAAW32H,UAE3C,IAAI00B,EAAYqjG,EAAO15H,QAASzJ,KAAKuiI,eAAkB,EAEjDY,EAAQrjG,KACbA,EAAY,GAGb9/B,KAAKyiI,UAAWziI,KAAK+iI,YAAaI,EAAQrjG,IAC3C,CAKQ,cAAAsjG,GACP,MAAMD,EAASxiI,MAAMrB,KAAMU,KAAK+hI,WAAW32H,UAE3C,IAAI00B,EAAYqjG,EAAO15H,QAASzJ,KAAKuiI,eAAkB,EAEjDY,EAAQrjG,KACbA,EAAYqjG,EAAO7qI,OAAS,GAG7B0H,KAAKyiI,UAAWziI,KAAK+iI,YAAaI,EAAQrjG,IAC3C,CAKQ,kBAAAmjG,GACP,MAAMtrG,EAAO,IAAI0rG,GAAarjI,KAAK+/B,OAAOxC,QACpCviC,EAAIgF,KAAK+/B,OAAOxC,OAAOviC,EA2C7B,OAzCAgF,KAAK23B,KAAKz3B,QAAQgO,IAAKypB,GAGvBA,EAAK3wB,KAAM,uBAAwBzH,GAAIS,KAAM,kBAAmBA,KAAM,mBAAmB,CAAExH,EAAO8qI,KACzFA,GAAoB9qI,EAAQ,IAIrCm/B,EAAKloB,GAA2B,8BAA8B,IAAQzP,KAAKw3G,kBAAoB,CAAExqG,SAAU,QAG3G2qB,EAAK3wB,KAAM,WAAYzH,GAAIS,KAAM,cAAeA,KAAM,mBAAmB,CAAE4iI,EAAaW,KACvF,GAAKA,EAAiB,EACrB,MAAO,GAGR,MAAMxkI,EAAU4B,MAAMrB,KAAMU,KAAK+hI,WAAW32H,UAAW3B,QAASzJ,KAAKuiI,eAAkB,EAEvF,OAAOvnI,EAAG,WAAY,CAAE+D,EAASwkI,GAAkB,IAGpD5rG,EAAK6rG,eAAe/zH,GAAwB,WAAW,KAGjDkoB,EAAKsH,aAAanJ,WACtB91B,KAAK+/B,OAAOotE,QAAQx1E,KAAK8H,QAG1Bz/B,KAAK6iI,gBAAgB,IAGtBlrG,EAAK8rG,eAAeh0H,GAAwB,WAAW,KAGjDkoB,EAAKsH,aAAanJ,WACtB91B,KAAK+/B,OAAOotE,QAAQx1E,KAAK8H,QAG1Bz/B,KAAKojI,gBAAgB,IAGfzrG,CACR,CAKQ,qBAAAurG,GACP,MAAMvrG,EAAO,IAAI+rG,GAAgB1jI,KAAK+/B,OAAOxC,OAAQv9B,KAAK23B,MAa1D,OAXAA,EAAK3wB,KAAM,kBAAmBzH,GAAIS,KAAM,kBAAmBA,KAAM,mBAAmB,CAAE0rC,EAAQ43F,KACzEA,GAAoB53F,GAAU,EAE9B7yC,KAAKD,IAAK8yC,EAAS,EAAG,GAAM,IAGjD/T,EAAK/nB,SAAiC5P,KAAK23B,KAAM,cAAc,IAAMA,EAAK6/E,mBAC1E7/E,EAAK/nB,SAAiC5P,KAAK23B,KAAM,eAAe,IAAMA,EAAK6/E,mBAE3Ex3G,KAAK+/B,OAAO+E,GAAGnN,KAAK1U,KAAK/U,IAAKypB,GAEvBA,CACR,CAWQ,SAAA+qG,EAAW,KAAE/qG,EAAI,iBAAEgsG,EAAmB,aAAI1P,GAAY,EAAI,eAAEuO,GAAiB,IACpFxiI,KAAK23B,KAAKkH,MAAQ8kG,EAClB3jI,KAAK23B,KAAKs8F,UAAYA,EAEtBj0H,KAAKiiI,aAAc2B,SAAUjsG,GAC7B33B,KAAK4iI,YAAcjrG,EACnB33B,KAAK23B,KAAKu9F,IAAKl1H,KAAKgjI,uBACpBhjI,KAAKkiI,gBAAiB1qB,iBAEjBgrB,IACJxiI,KAAK2iI,iBAAkB,EAEzB,CAMQ,mBAAAK,GACP,IAAIv7G,EAAW9mB,MAAMrB,KAAMU,KAAKuiI,cAAcn3H,UAAWpM,MAAOyoB,SAiBhE,OAfKA,IAEEA,EAASyB,UAEdzB,EAAWzwB,OAAOsyB,OAAQ,CAAC,EAAG7B,EAAU,CACvCyB,QAASlpB,KAAK4hI,mBAKhBn6G,EAAWzwB,OAAOsyB,OAAQ,CAAC,EAAG7B,EAAU,CACvC2B,qBAAsBppB,KAAK+/B,OAAO+E,GAAGzZ,kBAIhC5D,CACR,EAoDM,MAAM47G,WAAoBhmG,GAIhB4B,aAKAwkG,eAKAD,eAKAtjI,QAiBhB,WAAA6B,CAAaw7B,GACZ1vB,MAAO0vB,GAEP,MAAMviC,EAAIuiC,EAAOviC,EACXgM,EAAOhH,KAAK69B,aAElB79B,KAAK4R,IAAK,uBAAuB,GAEjC5R,KAAKi/B,aAAe,IAAI1J,GACxBv1B,KAAKyjI,eAAiBzjI,KAAK28G,kBAAmB3hH,EAAG,YAAc,GAAMm0G,eACrEnvG,KAAKwjI,eAAiBxjI,KAAK28G,kBAAmB3hH,EAAG,QAAU,GAAMo0G,WACjEpvG,KAAKE,QAAUF,KAAK29B,mBAEpB39B,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,sBAED,UAAW,MAEZ3mB,SAAU,CACT,CACCH,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,iCACA73B,EAAKzH,GAAI,uBAAuB/G,GAASA,EAAQ,GAAK,gBAGxD0f,SAAU,CACTlY,KAAKyjI,eACL,CACC1rH,IAAK,OAELxS,WAAY,CACXs5B,MAAO,CACN,gCAIF3mB,SAAU,CACT,CACCmgB,KAAMrxB,EAAKzH,GAAI,cAIlBS,KAAKwjI,iBAGP,CACCzrH,IAAK,MACLxS,WAAY,CACXs5B,MAAO,+BAER3mB,SAAUlY,KAAKE,WAInB,CAKgB,MAAAg4B,GACfrqB,MAAMqqB,SAENl4B,KAAKi/B,aAAa/wB,IAAKlO,KAAK+W,QAC7B,CAKgB,OAAAkR,GACfpa,MAAMoa,UAENjoB,KAAKi/B,aAAahX,SACnB,CAOO,QAAA27G,CAAUjsG,GAChB33B,KAAK8iI,WACL9iI,KAAKE,QAAQgO,IAAKypB,EACnB,CAKO,QAAAmrG,GACN9iI,KAAKE,QAAQ6R,OACd,CAQQ,iBAAA4qG,CAAmBlkE,EAAe66D,GACzC,MAAM37E,EAAO,IAAI,GAAY33B,KAAKu9B,QAQlC,OANA5F,EAAK/lB,IAAK,CACT6mC,QACA66D,OACAE,SAAS,IAGH77E,CACR,EAMD,MAAM+rG,WAAuBrmG,GAIZn9B,QAwCC2jI,kBAKjB,WAAA9hI,CAAaw7B,EAAgBs6F,GAC5BhqH,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAElB79B,KAAK4R,IAAK,MAAO,GACjB5R,KAAK4R,IAAK,OAAQ,GAClB5R,KAAK4R,IAAK,SAAU,GACpB5R,KAAK4R,IAAK,QAAS,GACnB5R,KAAK4R,IAAK,iBAAkB,GAE5B5R,KAAKE,QAAUF,KAAK29B,mBACpB39B,KAAK6jI,kBAAoBhM,EAEzB73H,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,gBACA73B,EAAKzH,GAAI,kBAAkBmsC,GAAUA,EAAS,GAAK,eAEpDrmC,MAAO,CACNgd,IAAKrb,EAAKzH,GAAI,MAAO,IACrBojB,KAAM3b,EAAKzH,GAAI,OAAQ,IACvB4jB,MAAOnc,EAAKzH,GAAI,QAAS,IACzB6jB,OAAQpc,EAAKzH,GAAI,SAAU,MAG7B2Y,SAAUlY,KAAKE,UAGhBF,KAAKyP,GAAmC,yBAAyB,CAAE+F,EAAKxT,EAAMV,EAAM45B,KAC9E55B,EAAO45B,EACXl7B,KAAK8jI,WAAYxiI,EAAO45B,GAExBl7B,KAAK+jI,cAAe7oG,EAAO55B,GAG5BtB,KAAKw3G,gBAAgB,GAEvB,CAEQ,UAAAssB,CAAYp4F,GACnB,KAAQA,KAAW,CAClB,MAAM/T,EAAO,IAAI0F,GAEjB1F,EAAKsG,YAAa,CAAElmB,IAAK,QAEzB/X,KAAKE,QAAQgO,IAAKypB,GAClB33B,KAAK+9B,cAAepG,EACrB,CACD,CAEQ,aAAAosG,CAAer4F,GACtB,KAAQA,KAAW,CAClB,MAAM/T,EAAO33B,KAAKE,QAAQwzB,KAE1B1zB,KAAKE,QAAQ+F,OAAQ0xB,GACrB33B,KAAKg+B,gBAAiBrG,GACtBA,EAAK1P,SACN,CACD,CAKO,cAAAuvF,GACN,GAAKx3G,KAAKgkI,eAAiB,CAC1B,MAAM,IAAE3hH,EAAG,KAAEM,GAAS3iB,KAAK6jI,mBACrB,MAAE1gH,EAAK,OAAEC,GAAW,IAAI,GAAMpjB,KAAK6jI,kBAAkB9sH,SAE3D/f,OAAOsyB,OAAQtpB,KAAM,CAAEqiB,MAAKM,OAAMQ,QAAOC,UAC1C,CACD,E,eCt1BG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQka,OAAvB,MCiBM,GAAuB/U,GAAQ,MAKtB,MAAM07G,WAAwB5mG,GAI5Bn9B,QAgETgkI,oBA4CCC,yBAKR,WAAApiI,CAAaw7B,GACZ1vB,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAElB79B,KAAK4R,IAAK,YAAY,GACtB5R,KAAK4R,IAAK,YAAY,GACtB5R,KAAK4R,IAAK,iBAAkB,MAC5B5R,KAAK4R,IAAK,sBAAuB,IACjC5R,KAAK4R,IAAK,oBAAqB,GAE/B5R,KAAK4R,IAAK,cAAe,MACzB5R,KAAK4R,IAAK,iCAAiC,GAE3C5R,KAAK4R,IAAK,mBAAoB,MAC9B5R,KAAK4R,IAAK,sBAAuB,MAEjC5R,KAAKE,QAAUF,KAAK29B,mBAEpB39B,KAAKmkI,yBAA2B,IAAIhsG,GAAU,CAC7CpgB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,gCAEDx5B,MAAO,CACN4R,QAASjQ,EAAKzH,GAAI,YAAY6kI,GAAYA,EAAW,QAAU,SAC/DhhH,OAAQpc,EAAKzH,GAAI,YAAY6kI,GACrBA,EAAW,GAAMpkI,KAAKqkI,kBAAkBjhH,QAAW,WAI1D8U,SAEJl4B,KAAKkkI,oBAAsB,IAAI/rG,GAAU,CACxCpgB,IAAK,MAELxS,WAAY,CACXs5B,MAAO,CACN,KACA,2BAEA73B,EAAKuyB,GAAI,WAAY,mCACrBvyB,EAAKuyB,GAAI,gCAAiC,iDAE3Cl0B,MAAO,CACN8d,MAAOnc,EAAKzH,GAAI,YAAY6kI,GACpBA,EAAW,GAAMpkI,KAAKmkI,yBAAyBtgH,wBAAwBV,OAAU,OAGzFd,IAAKrb,EAAKzH,GAAI,oBAAoB/G,GAASA,EAAQ,GAAMA,GAAUA,IACnEiqB,OAAQzb,EAAKzH,GAAI,uBAAuB/G,GAASA,EAAQ,GAAMA,GAAUA,IAEzE8rI,WAAYt9H,EAAKzH,GAAI,iBAIvB2Y,SAAUlY,KAAKE,UACZg4B,SAEJl4B,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,oBAGF3mB,SAAU,CACTlY,KAAKmkI,yBACLnkI,KAAKkkI,sBAGR,CAKgB,MAAAhsG,GACfrqB,MAAMqqB,SAGNl4B,KAAKukI,wBAGLvkI,KAAK4P,SAAU,GAAOpM,SAAU,UAAU,KACzCxD,KAAKukI,uBAAuB,GAC1B,CAAEnkH,YAAY,IAGjBpgB,KAAK4P,SAAiC5P,KAAM,mBAAmB,KAC9DA,KAAKukI,uBAAuB,GAE9B,CAMO,qBAAAA,GAGN,IAAMvkI,KAAKosB,iBAAmBpsB,KAAKwkI,SAGlC,YAFAxkI,KAAKykI,WAKN,MAAMz6G,EAAc,IAAI,GAAMhqB,KAAKosB,gBAEnC,IAAIrC,EAAqBC,EAAYvF,aAErC,GAAKsF,EAAqB,CACzB,MAAM26G,EAAa,IAAI,GAAM,GAAOnhI,QAEpCmhI,EAAWriH,KAAOriB,KAAK2kI,kBACvBD,EAAWthH,QAAUpjB,KAAK2kI,kBAE1B56G,EAAqBA,EAAmB5F,gBAAiBugH,EAC1D,CAiBA,GAAK36G,GAAsBC,EAAY3H,IAAM0H,EAAmB1H,IAAM,CAOrE,MAAMuiH,EAAoB76G,EAAmB1H,IAG7C,GAAKuiH,EAAoB5kI,KAAKqkI,kBAAkBjhH,OAASpjB,KAAK6kI,oBAAsB96G,EAAmBtH,OAAS,CAC/G,MAAMqiH,EAAqBjsI,KAAKC,IAAKkxB,EAAYvH,OAASsH,EAAmBtH,OAAQ,GAAMziB,KAAK6kI,oBAY3F76G,EAAYvH,OAASqiH,EAAqB96G,EAAY3H,IAAMriB,KAAKqkI,kBAAkBjhH,OACvFpjB,KAAK+kI,wBAAyBD,GAE9B9kI,KAAKykI,UAEP,MACMzkI,KAAKqkI,kBAAkBjhH,OAASpjB,KAAK6kI,oBAAsB76G,EAAY5G,OAC3EpjB,KAAKglI,uBAAwBJ,GAE7B5kI,KAAKykI,UAGR,MACCzkI,KAAKykI,UAgBP,CAQQ,sBAAAO,CAAwBC,GAC/BjlI,KAAKokI,UAAW,EAChBpkI,KAAKklI,+BAAgC,EACrCllI,KAAKmlI,iBAAmBF,EACxBjlI,KAAKolI,oBAAsB,KAC3BplI,KAAKqlI,YAAc,IAAO,GAAO9hI,OAAOkiB,QACzC,CAQQ,uBAAAs/G,CAAyBD,GAChC9kI,KAAKokI,UAAW,EAChBpkI,KAAKklI,+BAAgC,EACrCllI,KAAKmlI,iBAAmB,KACxBnlI,KAAKolI,oBAAsBN,EAC3B9kI,KAAKqlI,YAAc,IAAO,GAAO9hI,OAAOkiB,QACzC,CAOQ,QAAAg/G,GACPzkI,KAAKokI,UAAW,EAChBpkI,KAAKklI,+BAAgC,EACrCllI,KAAKmlI,iBAAmB,KACxBnlI,KAAKolI,oBAAsB,KAC3BplI,KAAKqlI,YAAc,IACpB,CAOA,qBAAYhB,GACX,OAAO,IAAI,GAAMrkI,KAAKkkI,oBACvB,EChYD,IAAI,GAAe,sBACfoB,GAAkBz7H,OAAO,GAAa3G,QAwB1C,SAPA,SAAsBzG,GAEpB,OADAA,EAAS,GAASA,KACA6oI,GAAgBrjI,KAAKxF,GACnCA,EAAOqa,QAAQ,GAAc,QAC7Bra,CACN,E,eC1BI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ6gC,O,eCTnB,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQA,OCLC/nB,GCJN,CAChB,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,SDDP,IAAwBA,GEHxB,IAAIgwH,GAAkB,WACG17H,OAAO07H,GAAgBriI,Q,eCF5C,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQo6B,O,cCTnB,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQA,O,eCTnB,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQA,O,eCTnB,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQA,OCSR,MAAMkoG,WAA8B,GAIlCniB,UAOhB,WAAAthH,CAAaw7B,GACZ1vB,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAElB79B,KAAK4R,IAAK,CACTmoG,UAAU,EACV/G,KAAM,aAGPhzG,KAAKqjH,UAAYrjH,KAAKsjH,mBAEtBtjH,KAAK45B,eAAgB,CACpBr0B,WAAY,CACXs5B,MAAO,CACN,6BAED,iBAAiB,EACjB,gBAAiB7+B,KAAK69B,aAAat+B,GAAI,QAAQ/G,GAASkjB,OAAQljB,KAChE,4BAA6BwO,EAAKzH,GAAI,SAEvCkQ,GAAI,CACH,WAAczI,EAAKzH,GAAI,gBAG1B,CAKgB,MAAA24B,GACfrqB,MAAMqqB,SAENl4B,KAAKkY,SAAShK,IAAKlO,KAAKqjH,UACzB,CAKQ,gBAAAC,GACP,MAAMD,EAAY,IAAItR,GAStB,OAPAsR,EAAUnjH,QAAU,GACpBmjH,EAAUzpF,eAAgB,CACzBr0B,WAAY,CACXs5B,MAAO,sCAIFwkF,CACR,E,eC/EG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ/lF,OCSR,MAAMmoG,WAAgCpe,GAMpD,WAAAtlH,CAAaw7B,EAAgBmoG,GAC5B73H,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAElB79B,KAAK45B,eAAgB,CACpBr0B,WAAY,CACXs5B,MAAO,CACN,4BAGFpvB,GAAI,CACH,WAAczI,EAAKzH,GAAI,iBAIzBS,KAAKuR,SAAU,cAAehS,GAAImmI,EACnC,ECND,MAYaC,GAAmB,CAM/B,+BAAAC,CAAiCC,GAChCA,EAAYp2H,GAAgC,mBAAmB+F,IAE9D,GAAMqwH,EAAYpsB,OAAlB,CAIA,UAAYqsB,KAAYD,EAAYE,MAAQ,CAG3C,MAAMC,EAAWxwH,EAAI/V,KAAM,GACrBwmI,EAA2BD,aAAoBP,IAA2BO,EAAS9tH,SAASub,QAAUqyG,EAE5GA,EAASrsB,QAAWjkG,EAAI/V,KAAK0yB,SAAU2zG,IAAcG,IAA8BH,EAAS3lG,SAO7F,CAEE3qB,EAAItS,OAA0Bu8B,OAjBhC,CAiBuC,GAEzC,EAQA,uBAAAymG,CAAyBL,GACxB,MAAMM,EAA2D,QAA5CN,EAAYtoG,OAAQjL,oBAUzC,SAAS8zG,EAAoBC,EAAkCzlD,GAC9D,MAAMulC,EAAe0f,EAAY3tH,SAASic,SAAUkyG,GAC9CC,EAAwBD,EAAgB5sB,OACxC8sB,EAAaV,EAAY3tH,SAAS5f,OAClCkuI,EAAiBX,EAAY3tH,SAAS9P,KAAO+9G,EAAeogB,EAAa3lD,GAAS2lD,GAExFF,EAAgB5sB,QAAS,EAEpB6sB,IACJE,EAAe/sB,QAAS,GAGzB+sB,EAAeztB,WAAWt5E,OAC3B,CArBAomG,EAAYp2H,GAAgC,mBAAmB+F,IAC9D4wH,EAAoB5wH,EAAItS,OAA2BijI,GAAgB,EAAI,EAAG,IAG3EN,EAAYp2H,GAA+B,kBAAkB+F,IAC5D4wH,EAAoB5wH,EAAItS,OAA2BijI,EAAe,GAAK,EAAG,GAiB5E,EAMA,0BAAAM,CAA4BZ,GAC3BA,EAAYp2H,GAAoC,iBAAiB,KAC1Do2H,EAAYpsB,QACjBosB,EAAYE,MAAMnoI,SAASkoI,IAC1BA,EAASrsB,QAAS,CAAK,GAIzB,GAEF,EASA,uCAAAitB,CAAyCb,GACxCA,EAAYp2H,GAAkC,sBAAsB,CAAE+F,EAAKxT,EAAMy3G,KAC3EA,GACJosB,EAAYE,MACVhgI,QAAQ+/H,GACCtwH,EAAItS,OAAgBwiI,iBAAmBI,EAASJ,gBACxDlwH,EAAItS,SAAW4iI,GACfA,EAASrsB,SACP77G,SAASkoI,IACZA,EAASrsB,QAAS,CAAK,GAI1B,GAEF,EAKA,mBAAAktB,CAAqBd,GACpB3nG,GAAqB,CACpBluB,QAAS61H,EACT1nG,UAAW,IAAM0nG,EAAYpsB,OAC7B9pG,SAAU,IAAMk2H,EAAYe,QAC5BxoG,gBAAiB,IAAMynG,EAAY3tH,SAASlb,KAAKsb,GAASA,EAAMvB,WAElE,GAMY8vH,GAAuB,CAKnC,+BAAAC,CAAiChB,GAChCA,EAASn5B,WAAW/6F,IAAK,aAAa,CAAE9O,EAAM8zB,KACxCkvG,EAAS7mG,aAAarJ,iBAAmBkwG,EAAS/sB,WAAWhiG,UAC3D+uH,EAASrsB,SACdqsB,EAASrsB,QAAS,GAGnBqsB,EAAS9jB,UAAUviF,QACnB7I,IACD,GAEF,EAKA,mBAAAmwG,CAAqBjB,GACpB,MAAMx3G,EAAqD,QAAzCw3G,EAASvoG,OAAQjL,oBAAgC,YAAc,aAEjFwzG,EAASn5B,WAAW/6F,IAAK0c,GAAW,CAAExrB,EAAM8zB,KACtCkvG,EAAS7mG,aAAarJ,iBAAmBkwG,EAAS/sB,WAAWhiG,SAAY+uH,EAAS3lG,YAMjF2lG,EAASrsB,SACdqsB,EAASrsB,QAAS,GAGnBqsB,EAAS9jB,UAAUviF,QACnB7I,IAAQ,GAEV,EAMA,iBAAAowG,CAAmBlB,GAClBA,EAAS/sB,WAAWtpG,GAAwB,WAAW,KACtDq2H,EAASrsB,QAAS,EAClBqsB,EAAS9jB,UAAUviF,OAAO,GAE5B,EAKA,mBAAAwnG,CAAqBnB,GACpBA,EAAS/sB,WAAWtpG,GAAwB,WAAW,KACtDq2H,EAASrsB,QAAUqsB,EAASrsB,OAEvBqsB,EAASrsB,QACbqsB,EAAS9jB,UAAUviF,OACpB,GAEF,EAKA,mBAAAynG,CAAqBpB,GACpB,MAAMx3G,EAAqD,QAAzCw3G,EAASvoG,OAAQjL,oBAAgC,aAAe,YAElFwzG,EAASn5B,WAAW/6F,IAAK0c,GAAW,CAAExrB,EAAM8zB,KACtCkvG,EAASrsB,SACbqsB,EAASrsB,QAAS,EAClBqsB,EAASrmG,QACT7I,IACD,GAEF,EAKA,aAAAuwG,CAAerB,GACdA,EAASn5B,WAAW/6F,IAAK,OAAO,CAAE9O,EAAM8zB,KAClCkvG,EAASrsB,SACbqsB,EAASrsB,QAAS,EAClBqsB,EAASrmG,QACT7I,IACD,GAEF,EAKA,kBAAAwwG,CAAoBtB,GACnBA,EAASJ,eAAgBj2H,GAAoC,iBAAiB,CAAE+F,EAAKxT,EAAMy3G,KACpFA,GAAUjkG,EAAItS,SAAW4iI,EAASJ,iBAGvCI,EAASrsB,QAAS,EACnB,GAEF,GA+EY4tB,GAAgF,CAC5F3kB,UAAWS,IACH,CACN9gG,IAAK8gG,EAAW1gG,OAChBE,KAAMwgG,EAAWxgG,KACjB3gB,KAAM,OAGR2gH,UAAW,CAAEQ,EAAYC,KACjB,CACN/gG,IAAK8gG,EAAW1gG,OAChBE,KAAMwgG,EAAWxgG,KAAOygG,EAAUjgG,MAAQggG,EAAWhgG,MACrDnhB,KAAM,OAGR4gH,UAAW,CAAEO,EAAYC,KACjB,CACN/gG,IAAK8gG,EAAW9gG,IAAM+gG,EAAUhgG,OAChCT,KAAMwgG,EAAWxgG,KACjB3gB,KAAM,OAGR6gH,UAAW,CAAEM,EAAYC,KACjB,CACN/gG,IAAK8gG,EAAW9gG,IAAM+gG,EAAUhgG,OAChCT,KAAMwgG,EAAWxgG,KAAOygG,EAAUjgG,MAAQggG,EAAWhgG,MACrDnhB,KAAM,OAGRslI,UAAWnkB,IACH,CACN9gG,IAAK8gG,EAAW9gG,IAChBM,KAAMwgG,EAAW5gG,MA3VmB,EA4VpCvgB,KAAM,OAGRulI,UAAW,CAAEpkB,EAAYC,KACjB,CACN/gG,IAAK8gG,EAAW9gG,IAAM+gG,EAAUhgG,OAChCT,KAAMwgG,EAAW5gG,MAlWmB,EAmWpCvgB,KAAM,OAGRwlI,UAAW,CAAErkB,EAAYC,KACjB,CACN/gG,IAAK8gG,EAAW9gG,IAChBM,KAAMwgG,EAAWxgG,KAAOygG,EAAUjgG,MAzWE,EA0WpCnhB,KAAM,OAGRylI,UAAW,CAAEtkB,EAAYC,KACjB,CACN/gG,IAAK8gG,EAAW9gG,IAAM+gG,EAAUhgG,OAChCT,KAAMwgG,EAAWxgG,KAAOygG,EAAUjgG,MAhXE,EAiXpCnhB,KAAM,QAyQI0lI,GAAoE,CAChF,CACCC,OAAQ,OACRlvF,MAAO,OACPoH,OAAQ,CACP,CACCktD,QAAS,SACTn5E,MAAO,CACN,oBACA,uBAGF,CACCm5E,QAAS,SACTn5E,MAAO,CACN,uBAGF,CACCm5E,QAAS,kBACTn5E,MAAO,CACN,8BAKJ,CACC+zG,OAAQ,OACRlvF,MAAO,OACPoH,OAAQ,CACP,CACCktD,QAAS,OACTn5E,MAAO,CACN,eACA,iBAGF,CACCm5E,QAAS,YACTn5E,MAAO,CACN,sBAGF,CACCm5E,QAAS,iBACTn5E,MAAO,CACN,6BAKJ,CACC+zG,OAAQ,OACRlvF,MAAO,OACPoH,OAAQ,CACP,CACCktD,QAAS,gBACTn5E,MAAO,CACN,0BAGF,CACCm5E,QAAS,aACTn5E,MAAO,CACN,uBAGF,CACCm5E,QAAS,6BACTn5E,MAAO,CACN,yCAKJ,CACC+zG,OAAQ,SACRlvF,MAAO,SACPoH,OAAQ,CACP,CACCktD,QAAS,oBACTn5E,MAAO,CACN,sBACA,gBACA,mBACA,wBAGF,CACCm5E,QAAS,eACTn5E,MAAO,CACN,eACA,oBAGF,CACCm5E,QAAS,qBACTn5E,MAAO,CACN,yBACA,qBACA,oBACA,sBAGF,CACCm5E,QAAS,yBACTn5E,MAAO,CACN,yBACA,oBACA,4BAGF,CACCm5E,QAAS,oBACTn5E,MAAO,CACN,gCAKJ,CACC+zG,OAAQ,SACRlvF,MAAO,SACPoH,OAAQ,CACP,CACCktD,QAAS,cACTn5E,MAAO,CACN,CACC+zG,OAAQ,OACRlvF,MAAO,OACPoH,OAAQ,CACP,CACCktD,QAAS,cACTn5E,MAAO,CACN,eACA,iBACA,oBACA,wBACA,sBACA,oBACA,iBAGF,CACCm5E,QAAS,mBACTn5E,MAAO,CACN,+BAKJ,CACC+zG,OAAQ,OACRlvF,MAAO,OACPoH,OAAQ,CACP,CACCktD,QAAS,iBACTn5E,MAAO,CACN,mBACA,uBAGF,CACCm5E,QAAS,aACTn5E,MAAO,CACN,oBACA,gCAGF,CACCm5E,QAAS,YACTn5E,MAAO,CACN,wBAKJ,oBAGF,CACCm5E,QAAS,OACTn5E,MAAO,CACN,uBACA,uBACA,qBAGF,CACCm5E,QAAS,SACTn5E,MAAO,CACN,oBACA,iBACA,oBAGF,CACCm5E,QAAS,aACTn5E,MAAO,CACN,uBAGF,CACCm5E,QAAS,eACTn5E,MAAO,CACN,2BAKJ,CACC+zG,OAAQ,QACRlvF,MAAO,QACPoH,OAAQ,CACP,CACCktD,QAAS,UACTn5E,MAAO,CACN,sBACA,uBAGF,CACCm5E,QAAS,QACTn5E,MAAO,CACN,uBACA,8BAMJ,CACC+zG,OAAQ,OACRlvF,MAAO,OACPoH,OAAQ,CACP,CACCktD,QAAS,OACTn5E,MAAO,CACN,iCAgDE,SAASg0G,IAAsB,iBACrC3uD,EAAgB,OAChB17C,EAAM,iBACN49E,IAMA,MAAM0sB,EAAc,GAAW5uD,GAQ/B,OAQD,SACC6uD,EACAn9G,GAEA,MAAMo9G,EAAmBp9G,EAAO+4F,YAC1BskB,EAA0C,GAGhDr9G,EAAOiJ,MAAQjJ,EAAOiJ,MAAM7tB,QAAQ,EAAI4hI,aAClCI,EAAiB51G,SAAUw1G,KAC/BK,EAAyBpoI,KAAM+nI,IACxB,KAMTM,GAAiBt9G,EAAOiJ,OAAOs0G,IAE9BA,EAAeroF,OAASqoF,EAAeroF,OAAO95C,QAAQ,EAAIgnG,cACpDg7B,EAAiB51G,SAAU46E,KAC/Bi7B,EAAyBpoI,KAAMmtG,IACxB,KAOT,UAAYuN,KAAmB4tB,EAAeroF,OAC7Cy6D,EAAgB1mF,MAAQ0mF,EAAgB1mF,MAAM7tB,QAAQ9F,IACrD,MAAM4zB,EAASs0G,GAAoBloI,GAEnC,OAAK8nI,EAAiB51G,SAAU0B,KAC/Bm0G,EAAyBpoI,KAAMi0B,IACxB,EAGG,GAEb,IAGD,UAAYsrD,KAAY4oD,EACjBC,EAAyB71G,SAAUgtD,IAaxC,EAAY,qCAAsC,CACjDipD,cAAeN,EACf3oD,YAIJ,CA7ECkpD,CAAgBpvD,EAAkB4uD,GAmFnC,SACCC,EACAn9G,GAEA,MAAM29G,EAAiB39G,EAAO49G,SACxBC,EAAgD,GAEtD,UAAYC,KAAaH,EAAiB,CACzC,MAAMj3C,EAAWq3C,GAAyBD,EAAUhhH,UAC9CkhH,EAAaC,GAA2BH,EAAUhhH,UAGxD,GAAKohH,GAAuBJ,GAC3B,GAAME,EAWC,CACN,MAAMG,EAA8Bn+G,EAAOiJ,MAAMqxF,WAAWijB,GAAkBA,EAAeP,SAAWgB,IAGxG,IAAqC,GAAhCG,EACc,WAAbz3C,GACJ1mE,EAAOiJ,MAAMpsB,OAAQshI,EAA6B,EAAGL,EAAUM,MAC/DP,EAAuB5oI,KAAM6oI,IACL,UAAbp3C,IACX1mE,EAAOiJ,MAAMpsB,OAAQshI,EAA8B,EAAG,EAAGL,EAAUM,MACnEP,EAAuB5oI,KAAM6oI,QAI1B,CACaO,GAAsBr+G,EAAQ89G,EAAUM,KAAMJ,EAAYt3C,IAG1Em3C,EAAuB5oI,KAAM6oI,EAE/B,CACD,KA9BmB,UAAbp3C,GACJ1mE,EAAOiJ,MAAMx0B,QAASqpI,EAAUM,MAChCP,EAAuB5oI,KAAM6oI,IAGP,QAAbp3C,IACT1mE,EAAOiJ,MAAMh0B,KAAM6oI,EAAUM,MAC7BP,EAAuB5oI,KAAM6oI,SAwBhC,GAEUQ,GAA4BR,GACrCR,GAAiBt9G,EAAOiJ,OAAOs0G,IAC9B,GAAKA,EAAeP,SAAWgB,EAEZ,UAAbt3C,GACJ62C,EAAeroF,OAAOzgD,QAASqpI,EAAUxkF,OACzCukF,EAAuB5oI,KAAM6oI,IAGP,QAAbp3C,IACT62C,EAAeroF,OAAOjgD,KAAM6oI,EAAUxkF,OACtCukF,EAAuB5oI,KAAM6oI,QAExB,CACN,MAAMS,EAAqBhB,EAAeroF,OAAOolE,WAAWhhE,GAASA,EAAM8oD,UAAY47B,KAE1D,IAAxBO,IAEc,WAAb73C,GACJ62C,EAAeroF,OAAOr4C,OAAQ0hI,EAAoB,EAAGT,EAAUxkF,OAC/DukF,EAAuB5oI,KAAM6oI,IAGP,UAAbp3C,IACT62C,EAAeroF,OAAOr4C,OAAQ0hI,EAAqB,EAAG,EAAGT,EAAUxkF,OACnEukF,EAAuB5oI,KAAM6oI,IAGhC,SAIG,CACaO,GAAsBr+G,EAAQ89G,EAAUxoI,KAAM0oI,EAAYt3C,IAG1Em3C,EAAuB5oI,KAAM6oI,EAE/B,CACD,CAEA,UAAYU,KAAmBb,EACxBE,EAAuBr2G,SAAUg3G,IAatC,EAAY,mCAAoC,CAC/Cf,cAAeN,EACfqB,mBAIJ,CA/LCC,CAAiBnwD,EAAkB4uD,GAwPpC,SACCC,EACAn9G,EACAwwF,GAEA8sB,GAAiBt9G,EAAOiJ,OAAOs0G,IAC9B,UAAY5tB,KAAmB4tB,EAAeroF,OAC7Cy6D,EAAgB1mF,MAAQ0mF,EAAgB1mF,MAAM7tB,QAAQ9F,IACrD,MAAMopI,EAAoC,iBAATppI,IAAsBk7G,EAAiBltG,IAAKhO,GA+B7E,OAzBKopI,IAAsB1+G,EAAO2+G,sBAkBjC,EAAY,4BAA6B,CACxClB,cAAeN,EACfyB,iBAAkB,GAAWrB,GAC7BsB,cAAevpI,KAITopI,CAAiB,GAE3B,GAEF,CAlSCI,CAA4BxwD,EAAkB4uD,EAAa1sB,GAC3DuuB,GAAiBzwD,EAAkB4uD,GAoYpC,SAA6Bl9G,EAAuC4S,GACnE,MAAMviC,EAAIuiC,EAAOviC,EACX2uI,EAAkD,CAEvD,KAAQ3uI,EAAG,CACVyB,OAAQ,OACRoD,GAAI,uBAEL,KAAQ7E,EAAG,CACVyB,OAAQ,OACRoD,GAAI,uBAEL,KAAQ7E,EAAG,CACVyB,OAAQ,OACRoD,GAAI,uBAEL,OAAU7E,EAAG,CACZyB,OAAQ,SACRoD,GAAI,yBAEL,OAAU7E,EAAG,CACZyB,OAAQ,SACRoD,GAAI,yBAEL,MAAS7E,EAAG,CACXyB,OAAQ,QACRoD,GAAI,wBAEL,KAAQ7E,EAAG,CACVyB,OAAQ,OACRoD,GAAI,uBAIL,KAAQ7E,EAAG,CACVyB,OAAQ,OACRoD,GAAI,uBAEL,KAAQ7E,EAAG,CACVyB,OAAQ,OACRoD,GAAI,wBAINooI,GAAiBt9G,EAAOiJ,OAAO1rB,IACzBA,EAAWuwC,SAASkxF,IACxBzhI,EAAWuwC,MAAQkxF,EAAyBzhI,EAAWuwC,OACxD,GAEF,CApbCmxF,CAAoB/B,EAAatqG,GAE1BsqG,CACR,CA8LA,SAASmB,GACRr+G,EACAk/G,EACAlB,EACAt3C,GAEA,IAAIy4C,GAAW,EAuCf,OArCA7B,GAAiBt9G,EAAOiJ,OAAOs0G,IAC9B,UAAY,QAAEn7B,EAASn5E,MAAOm2G,KAAgB7B,EAAeroF,OAAS,CAErE,GAAKiqF,EACJ,OAGD,GAAK/8B,IAAY47B,EAEE,UAAbt3C,GACJ04C,EAAW3qI,QAASyqI,GACpBC,GAAW,GAGW,QAAbz4C,IACT04C,EAAWnqI,KAAMiqI,GACjBC,GAAW,OAEN,CAEN,MAAME,EAAoBD,EAAW9kB,WAAWglB,GACxC9B,GAAoB8B,KAAgBtB,KAGhB,IAAvBqB,IACc,WAAb34C,GACJ04C,EAAWviI,OAAQwiI,EAAmB,EAAGH,GACzCC,GAAW,GACa,UAAbz4C,IACX04C,EAAWviI,OAAQwiI,EAAoB,EAAG,EAAGH,GAC7CC,GAAW,GAGd,CACD,KAGMA,CACR,CAwDA,SAASJ,GACR5B,EACAn9G,GAEA,MAAM2+G,EAAuB3+G,EAAO2+G,qBACpC,IAAIY,GAAmB,EAGvBv/G,EAAOiJ,MAAQjJ,EAAOiJ,MAAM7tB,QAAQmiI,KAC7BA,EAAeroF,OAAOvnD,SAC3B6xI,GAAoBrC,EAAgBI,EAAgBoB,IAE7C,KAOH3+G,EAAOiJ,MAAMt7B,QAOnB2vI,GAAiBt9G,EAAOiJ,OAAOs0G,IAE9BA,EAAeroF,OAASqoF,EAAeroF,OAAO95C,QAAQu0G,KAC/CA,EAAgB1mF,MAAMt7B,SAC3B4xI,GAAmB,GACZ,KAOT,UAAY5vB,KAAmB4tB,EAAeroF,OAC7Cy6D,EAAgB1mF,MAAQ0mF,EAAgB1mF,MAAM7tB,QAAQ9F,KAEhDmqI,GAAkBnqI,KAAWA,EAAK4/C,OAAOvnD,UAC7C6xI,GAAoBrC,EAAgB7nI,EAAMqpI,GAC1CY,GAAmB,GACZ,IAKV,IAGIA,GAGJR,GAAiB5B,EAAgBn9G,IAnCjCw/G,GAAoBrC,EAAgBA,EAAgBwB,EAqCtD,CAEA,SAASa,GACRrC,EACAuC,EACAf,GAEKA,GAmBL,EAAY,sBAAuB,CAClClB,cAAeN,EACfuC,mBAEF,CA2DA,SAASpC,GACR//H,EACAyH,GAEA,GAAKhP,MAAMC,QAASsH,GACnB,UAAYoiI,KAA0BpiI,EACrCqiI,EAAMD,GAIR,SAASC,EAAMrC,GACdv4H,EAAUu4H,GAEV,UAAY5tB,KAAmB4tB,EAAeroF,OAC7C,UAAYoqF,KAAa3vB,EAAgB1mF,MACnCw2G,GAAkBH,IACtBM,EAAMN,EAIV,CACD,CAEA,SAASpB,GAAuB3gI,GAC/B,MAA6B,iBAAfA,GAA2B,SAAUA,CACpD,CAEA,SAAS+gI,GAA4B/gI,GACpC,MAA6B,iBAAfA,GAA2B,UAAWA,CACrD,CAEA,SAASwgI,GAAyBjhH,GACjC,OAAKA,EAAS+mC,WAAY,SAClB,QACI/mC,EAAS+mC,WAAY,OACzB,MACI/mC,EAAS+mC,WAAY,SACzB,QAEA,QAET,CAEA,SAASo6E,GAA2BnhH,GACnC,MAAM5qB,EAAQ4qB,EAAS5qB,MAAO,eAE9B,OAAKA,EACGA,EAAO,GAGR,IACR,CAEA,SAASsrI,GAAoBloI,GAC5B,MAAuB,iBAATA,EAAoBA,EAAOA,EAAK0nI,MAC/C,CAEA,SAASyC,GAAkBliI,GAC1B,MAA6B,iBAAfA,GAA2B,WAAYA,CACtD,CAOO,SAASsiI,GAAczqG,EAAgB8lG,GAC7C,MAAM4E,EAAqB5E,EAAY9uH,QAEvCgpB,EAAO+E,GAAG7F,aAAa/wB,IAAKu8H,GAC5B1qG,EAAO4sE,WAAW/8F,SAAU66H,GAE5B,MAAMC,EAtjBA,SAAiC//G,GACvC,IAAIggH,EA0BJ,OAVCA,EAZO,UAAWhgH,GAAaA,EAAOiJ,MAYvB,CACdA,MAAOjJ,EAAOiJ,MACd8vF,YAAa,GACb6kB,SAAU,GACVx/G,WAAW,EACXugH,sBAAsB,KACnB3+G,GAjBW,CACdiJ,MAAO,GAAW8zG,IAClBa,SAAU,GACV7kB,YAAa,GACb36F,WAAW,EACXugH,sBAAsB,KACnB3+G,GAeEggH,CACR,CA0hBiCC,CAAwB7qG,EAAOpV,OAAOviB,IAAK,YAAe,CAAC,GAE3Fy9H,EAAYthB,eAAgBmmB,EAAyB3qG,EAAO+E,GAAGq2E,kBAE/Dp7E,EAAO4sE,WAAW/6F,IAAK,OAAO,CAAE9O,EAAM8zB,KAChC6zG,EAAmBnlH,SAAUya,EAAO+E,GAAG7F,aAAarJ,kBACxDmK,EAAOotE,QAAQx1E,KAAK8H,QACpB7I,IACD,IAGDmJ,EAAO4sE,WAAW/6F,IAAK,UAAU,CAAE9O,EAAM8zB,KAClC6zG,EAAmBnlH,SAAUya,EAAO+E,GAAG7F,aAAarJ,kBACzDiwG,EAAapmG,QACb7I,IACD,GAEF,C,eC59CI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ0G,OCOR,MAAMutG,WAA6BxtG,GAIjCnlB,SAyBhB,WAAAnW,CAAaw7B,GACZ1vB,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAElB79B,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,WAAY,MAEtB5R,KAAKkY,SAAWlY,KAAK29B,mBAErB39B,KAAKi+B,YAAa,CACjBlmB,IAAK,MAELxS,WAAY,CACXs5B,MAAO,CACN,KACA,WACA,2BACA73B,EAAKzH,GAAI,YAAY/G,GAAS,qCAAsCA,MACpEwO,EAAKuyB,GAAI,YAAa,aAAa/gC,IAAUA,KAE9Cy6G,SAAU,MAGX/6F,SAAUlY,KAAKkY,SAEfzI,GAAI,CAGHmyG,YAAa56G,EAAKzH,IAAIiW,IAC8C,UAA5DA,EAAI5R,OAAwB0nD,QAAQu2D,qBAI3CrsG,EAAI2gB,gBAAgB,MAIxB,CAKO,KAAAsJ,CAAOjZ,EAAoB,GAC5BxmB,KAAKkY,SAAS5f,SACC,IAAdkuB,EACJxmB,KAAKkY,SAASub,MAAOgM,QAErBz/B,KAAKkY,SAASwb,KAAM+L,QAGvB,E,YChGG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQnC,OCoBR,MAAMwtG,WAAwBztG,GAI5B07E,WAKAiJ,UAKA/iF,aAMA0tE,WA6ChB,WAAA5qG,CAAaw7B,GACZ1vB,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAElB79B,KAAK+4G,WAAa,IAAIysB,GAAuBjoG,GAC7Cv9B,KAAK+4G,WAAWxnG,SAAU,cAAehS,GAAIS,MAC7CA,KAAK+4G,WAAW/xG,KAAM,OAAQ,aAAczH,GAAIS,KAAM,SAAU,aAEhEA,KAAKgiH,UAAY,IAAI6oB,GAAsBttG,GAC3Cv9B,KAAKgiH,UAAUh7G,KAAM,aAAczH,GAAIS,KAAM,UAE7CA,KAAK2sG,WAAa,IAAI32E,GACtBh2B,KAAKi/B,aAAe,IAAI1J,GAExBv1B,KAAK4R,IAAK,UAAU,GACpB5R,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,gBAAiB,KAC3B5R,KAAK4R,IAAK,aAAS,GACnB5R,KAAK4R,IAAK,iBAAkB,MAE5B5R,KAAKi+B,YAAa,CACjBlmB,IAAK,MAELxS,WAAY,CACXs5B,MAAO,CACN,KACA,oBACA73B,EAAKzH,GAAI,SACTyH,EAAKuyB,GAAI,YAAa,eAAe/gC,IAAUA,IAC/CwO,EAAKuyB,GAAI,iBAAkB,+BAA+B/gC,IAAUA,MAItE0f,SAAU,CACTlY,KAAK+4G,WACL/4G,KAAKgiH,YAGR,CAKgB,MAAA9pF,GACfrqB,MAAMqqB,SAENl4B,KAAKi/B,aAAa/wB,IAAKlO,KAAK+4G,WAAWhiG,SACvC/W,KAAKi/B,aAAa/wB,IAAKlO,KAAKgiH,UAAUjrG,SAGtC/W,KAAK2sG,WAAW/8F,SAAU5P,KAAK+W,SAE/B8vH,GAAqBM,cAAennI,MAEpCA,KAAK+qI,wBACN,CAWO,gBAAAC,GAEAhrI,KAAK0lI,gBAMVmB,GAAqBG,kBAAmBhnI,MACxC6mI,GAAqBE,oBAAqB/mI,MAC1C6mI,GAAqBK,oBAAqBlnI,MAC1C6mI,GAAqBO,mBAAoBpnI,QARzCA,KAAKirI,iCAELpE,GAAqBC,gCAAiC9mI,MACtD6mI,GAAqBI,oBAAqBjnI,MAO5C,CAKQ,8BAAAirI,GACPjrI,KAAK2sG,WAAW/6F,IAAK,cAAc,CAAE9O,EAAM8zB,KAC1C52B,KAAK4Q,KAAM,cACXgmB,GAAQ,IAGT52B,KAAK2sG,WAAW/6F,IAAK,aAAa,CAAE9O,EAAM8zB,KACzC52B,KAAK4Q,KAAM,aACXgmB,GAAQ,GAEV,CAMQ,sBAAAm0G,GAEP/qI,KAAKyP,GAAoC,iBAAiB,CAAE+F,EAAKxT,EAAMy3G,KACtE,IAAMA,EACL,OAGD,MAAM2I,EAAuB0oB,GAAgBzoB,oBAAqB,CACjEtrG,QAAS/W,KAAKgiH,UAAUjrG,QACxBnT,OAAQ5D,KAAK+4G,WAAWhiG,QACxBoS,eAAe,EACfF,UAAWjpB,KAAKsiH,kBAGjBtiH,KAAKgiH,UAAUv6F,SACd26F,EAAuBA,EAAqBpgH,KAAOhC,KAAKsiH,gBAAiB,GAAItgH,IAAI,GAGpF,CAKO,KAAAy9B,GACNz/B,KAAK+4G,WAAWt5E,OACjB,CAMA,mBAAW6iF,GACV,MAAM,UACLI,EAAS,UAAEC,EAAS,UAAEC,EAAS,UAAEC,EAAS,UAC1C2kB,EAAS,UAAEF,EAAS,UAAEG,EAAS,UAAEF,GAC9BF,GAEJ,MAA0C,QAArCrnI,KAAKu9B,OAAQjL,oBACZtyB,KAAK0lI,eACF,CAAE4B,EAAWC,EAAWC,EAAWC,GAEnC,CAAE/kB,EAAWC,EAAWC,EAAWC,GAGtC7iH,KAAK0lI,eACF,CAAE8B,EAAWC,EAAWH,EAAWC,GAEnC,CAAE5kB,EAAWD,EAAWG,EAAWD,EAG7C,CAOA,2BAAqC55F,GC5OvB,MAAMkiH,WAA4BzjB,GAMhD,WAAA1lH,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAKgzG,KAAO,MACb,ECVc,MAAM,WAAgD,GAMpE,WAAAjxG,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAK4R,IAAK,CACTmoG,UAAU,EACVxG,eAAe,EACfC,SAAS,EACTR,KAAM,aAGPhzG,KAAK45B,eAAgB,CACpBr0B,WAAY,CACXs5B,MAAO,CAAE,qCAGZ,E,cCrCG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQvB,OAAvB,MCqBM6tG,GAAuB,CAAE,aAAc,YAAa,aAAc,iBAQzD,MAAMC,WAAoB/tG,GAIjCnlB,SAeA6tH,MAAgC,GAOvC,WAAAhkI,CAAaw7B,GACZ1vB,MAAO0vB,GAEP,MAAMviC,EAAIuiC,EAAOviC,EAEjBgF,KAAK4R,IAAK,UAAU,GACpB5R,KAAKqrI,sBAELrrI,KAAKkY,SAAWlY,KAAK29B,mBAOrB39B,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,eAED,aAAc7jC,EAAG,mBACjBg4G,KAAM,WAEP96F,SAAUlY,KAAKkY,UAEjB,CASO,cAAAqsG,CAAgB55F,EAAuCwwF,GAC7D,MAOMmwB,EANkB1D,GAAsB,CAC7C3uD,iBAAkBtuD,EAClB4S,OAHcv9B,KAAKu9B,OAInB49E,qBAGiDvnF,MAAM52B,KAAKkrI,GAAkBloI,KAAKurI,YAAa,CAChGpwB,mBACA+sB,qBAGDloI,KAAKkY,SAASyb,QAAS23G,EACxB,CAKgB,MAAApzG,GACfrqB,MAAMqqB,SAENytG,GAAiBC,gCAAiC5lI,MAClD2lI,GAAiBc,2BAA4BzmI,MAC7C2lI,GAAiBe,wCAAyC1mI,MAC1D2lI,GAAiBO,wBAAyBlmI,MAC1C2lI,GAAiBgB,oBAAqB3mI,KACvC,CAKO,KAAAy/B,GACDz/B,KAAKkY,SAASub,OAClBzzB,KAAKkY,SAASub,MAAMgM,OAEtB,CAKO,KAAAmnG,GACN,UAAY4E,KAA4BxrI,KAAKkY,SAC5CszH,EAAyB/xB,QAAS,CAEpC,CAMO,YAAAgyB,CAAc3F,EAA2BJ,EAAyC,MACnFA,GACJI,EAASv0H,YAAa45H,IAAuB5rI,GAAImmI,GACjDI,EAASJ,eAAiBA,GAE1BI,EAASv0H,YAAa45H,IAAuB5rI,GAAIS,MAAMgC,GAAQ,QAAUA,IAG1E8jI,EAASkF,mBAEThrI,KAAK+lI,MAAMnmI,KAAMkmI,EAClB,CAKQ,WAAAyF,EAAa,iBAAEpwB,EAAgB,eAAE+sB,EAAc,eAAExC,IAKxD,MAAMnoG,EAASv9B,KAAKu9B,OACduoG,EAAW,IAAIgF,GAAiBvtG,GAkBtC,OAhBAv9B,KAAKyrI,aAAc3F,EAAUJ,GAE7BI,EAAS/sB,WAAWnnG,IAAK,CACxB6mC,MAAOyvF,EAAezvF,QAKvBqtF,EAASj2H,KAAsC,iBAAiB,KAC/D,MAAMoyG,EAAW,IAAIipB,GAAqB3tG,GAC1C0kF,EAASlK,UAAYmwB,EAAezvF,MACpCqtF,EAAS9jB,UAAU9pG,SAAShK,IAAK+zG,GAEjCA,EAASruF,MAAMD,QAAS3zB,KAAK0rI,iBAAkB,CAAExD,iBAAgBxC,eAAgBI,EAAU3qB,qBAAsB,IAG3G2qB,CACR,CAKQ,gBAAA4F,EAAkB,eAAExD,EAAc,eAAExC,EAAc,iBAAEvqB,IAK3D,MAAM59E,EAASv9B,KAAKu9B,OACd3J,EAAQ,GAEd,UAAY+3G,KAAuBzD,EAAeroF,OAAS,CAC1D,UAAY+rF,KAAkBD,EAAoB/3G,MAAQ,CACzD,MAAMi4G,EAAe,IAAIpG,GAAyBloG,EAAQmoG,GAE1D,GAAK,EAAUkG,GACdC,EAAa3zH,SAAShK,IAAKlO,KAAKurI,YAAa,CAC5CpwB,mBACA+sB,eAAgB0D,EAChBlG,wBAEK,CACN,MAAMoG,EAAgB9rI,KAAK+rI,kCAAmC,CAC7DvC,cAAeoC,EACfzwB,mBACAuqB,mBAGD,IAAMoG,EACL,SAGDD,EAAa3zH,SAAShK,IAAK49H,EAC5B,CAEAl4G,EAAMh0B,KAAMisI,EACb,CAGKF,IAAwBzD,EAAeroF,OAAQqoF,EAAeroF,OAAOvnD,OAAS,IAClFs7B,EAAMh0B,KAAM,IAAI0nH,GAAmB/pF,GAErC,CAEA,OAAO3J,CACR,CAKQ,iCAAAm4G,EAAmC,cAAEvC,EAAa,eAAE9D,EAAc,iBAAEvqB,IAK3E,MAAM2wB,EAAgB3wB,EAAiBp9F,OAAQyrH,GAE/C,OACCsC,aAAyBhB,IACzBgB,aAAyB,IACzBA,aAAyB,IAoB1B9rI,KAAKgsI,kBAAmBF,EAAepG,GAGvCoG,EAAcr8H,GAAI,WAAW,KAC5BzP,KAAK4mI,OAAO,IAGNkF,IAfN,EAAY,iCAAkC,CAC7CtC,gBACAsC,kBAGM,KAWT,CAQQ,iBAAAE,CAAmBF,EAAgEpG,GAC1F,KAAQoG,aAAyBhB,IAGhC,YAFAgB,EAAcv6H,SAAU,cAAehS,GAAImmI,GAK5C1lI,KAAKyrI,aAAcK,EAAepG,GAElC,MAAMuG,EAAmBH,EAAc9pB,UAAU9pG,SAC/CnS,QAAQuS,GAASA,aAAiB4yH,KAAuB,GAE3D,IAAMe,EAGL,YAFAH,EAAcv6H,SAAU,cAAehS,GAAImmI,GAK5C,MAAMwG,EAAoBD,EAAiBr4G,MAAM7tB,QAAQ9F,GAAQA,aAAgBonH,KAEjF,UAAYpnH,KAAQisI,EACnBlsI,KAAKgsI,kBACJ/rI,EAAKiY,SAAS9P,IAAK,GACnB0jI,EAGH,CASQ,mBAAAT,GACP,IAAIc,EAGJnsI,KAAKyP,GAAkC,sBAAsB,CAAE+F,EAAKxT,EAAMy3G,KACzE5jF,aAAcs2G,GAET1yB,EACJz5G,KAAKy5G,QAAS,EAEd0yB,EAAep2G,YAAY,KAC1B/1B,KAAKy5G,OAAS94G,MAAMrB,KAAMU,KAAKkY,UAAWmf,MAAMyuG,GAAYA,EAASrsB,QAAQ,GAC3E,EACJ,GAEF,ECxTc,MAAM2yB,WAAwB5N,GAI5B7mG,KAKC00G,eAKAC,iBAQjB,WAAAvqI,CAAag+B,EAAgBpI,GAC5B9pB,MAAOkyB,GAEP//B,KAAK23B,KAAOA,EACZ33B,KAAKqsI,eAAiB5oB,GAAwB1jF,EAAOpV,OAAOviB,IAAK,YAEjEpI,KAAKssI,iBAAmB,IAAI11H,GAE5B5W,KAAK4P,SACJmwB,EAAOotE,QAAQx1E,KAAM,uBAAwB33B,KAAKusI,2CAA2CvlI,KAAMhH,MACrG,CAKA,WAAoB+W,GACnB,OAAO/W,KAAK23B,KAAK5gB,OAClB,CAOO,IAAAqrB,CAAMoqG,GACZ,MAAMzsG,EAAS//B,KAAK+/B,OACdpI,EAAO33B,KAAK23B,KACZ6jF,EAAcz7E,EAAOotE,QAAQx1E,KAC7B6c,EAAW7c,EAAK6c,SAChBi4F,EAAcjxB,EAAYh4G,SAASw3C,UAIzCxG,EAASxyC,KAAOyqI,EAAY3rG,SAE5BnJ,EAAKO,SAIL,MAAMoa,EAAkBkC,EAASz9B,QAIjC/W,KAAKm/H,mBAAoB3qF,EAASxyC,KAAMswC,GASxC3a,EAAK6c,SAASxtC,KAAM,aAAczH,GAAIS,KAAKi/B,cAI3Cu8E,EAAY/8C,cAAensB,GAKtBk6F,GACJxsI,KAAKssI,iBAAiBx1H,QAAS01H,EAAoBxsI,KAAK+W,SAGzD/W,KAAK0sI,mBACL1sI,KAAK2sI,eAEAh1G,EAAKkuG,aACT2E,GAAczqG,EAAQpI,EAAKkuG,aAG5B7lI,KAAK4sI,+BACL5sI,KAAK4Q,KAA0B,QAChC,CAKgB,OAAAqX,GACfpa,MAAMoa,UAEN,MAAM0P,EAAO33B,KAAK23B,KACZ6jF,EAAcx7G,KAAK+/B,OAAOotE,QAAQx1E,KAExC33B,KAAKssI,iBAAiBn1H,UACtBqkG,EAAY18C,cAAennC,EAAK6c,SAASxyC,MACzC21B,EAAK1P,SACN,CAKQ,YAAA0kH,GACP,MAAMh1G,EAAO33B,KAAK23B,KAGlBA,EAAKk1G,YAAY7lI,KAAM,YAAazH,GAAIS,KAAKi/B,aAAc,aAC3DtH,EAAKk1G,YAAYzgH,eAAiBuL,EAAK5gB,QACvC4gB,EAAKk1G,YAAY7lI,KAAM,qBAAsBzH,GAAIS,KAAM,kBAAkB,EAAIqiB,SAAWA,GAAO,IAE/FsV,EAAKm1G,QAAQvoB,eAAgBvkH,KAAKqsI,eAAgBrsI,KAAKm7G,kBAGvDn7G,KAAKs/H,WAAY3nG,EAAKm1G,QACvB,CAKQ,gBAAAJ,GACP,MAAM3sG,EAAS//B,KAAK+/B,OACdy7E,EAAcz7E,EAAOotE,QAAQx1E,KAC7B80G,EAAcjxB,EAAYh4G,SAASw3C,UACnCywC,EAAkB1rD,EAAgC0rD,cAExD,IAAIshD,EACJ,MAAM5mG,EAAcpG,EAAOpV,OAAOviB,IAAK,eAElC+9B,IACJ4mG,EAAyC,iBAAhB5mG,EAA2BA,EAAcA,EAAanmC,KAAK23B,KAAK6c,SAASxyC,QAG7F+qI,GAAmBthD,GAAyD,aAAxCA,EAAcngC,QAAQ3iD,gBAC/DokI,EAAkBthD,EAAc/wD,aAAc,gBAG1CqyG,IACJN,EAAYtmG,YAAc4mG,GAG3B,GAAmB,CAClBp1G,KAAM6jF,EACNzkG,QAAS01H,EACT/mG,cAAc,EACdC,aAAa,GAEf,CAYQ,0CAAA4mG,CACP/2H,EACA1S,EACAs8D,GAEA,MAAMytE,EAAc7sI,KAAK23B,KAAKk1G,YAE9B,GAAKA,EAAYzI,SAAW,CAC3B,MAAM4I,EAAoB,IAAI,GAAMH,EAAY91H,SAAWqM,OAE3DtgB,EAAKuoB,eAAehJ,KAAO2qH,CAC5B,KAAO,CACN,MAAMC,EAAqC,KAC1CjtI,KAAK+/B,OAAOotE,QAAQx1E,KAAKwnC,qBAAsBC,EAAc,EAG9Dp/D,KAAK4P,SAAUi9H,EAAa,kBAAmBI,GAI/Cl3G,YAAY,KACX/1B,KAAK+P,cAAe88H,EAAa,kBAAmBI,EAAoC,GACtF,GACJ,CACD,CASQ,4BAAAL,GACP,IAAM5sI,KAAK+/B,OAAOsC,QAAQp0B,IAAK,UAC9B,OAGD,MAAM4+H,EAAc7sI,KAAK23B,KAAKk1G,YACxBK,EAAuBltI,KAAK+/B,OAAOsC,QAAQj6B,IAAK,UAEtD8kI,EAAaz9H,GAAI,QAAQ,KACxB,MAAM09H,EAAaD,EAAav1G,KAEhCw1G,EAAW19H,GAA2B,UAAU,CAAE+F,EAAK1S,KAEtD,IAAM+pI,EAAYzI,UAAY+I,EAAWp2B,SACxC,OAGD,MAAMq2B,EAAyB,IAAI,GAAMP,EAAY3I,qBAEhDphI,EAAM,GAAMsqI,EAAuB3qH,OAASi0F,GAAWgC,gBAC3D51G,EAAM,GAAMsqI,EAAuB3qH,OAASi0F,GAAWgC,cACxD,GACE,CAAE1rG,SAAU,QAAU,GACvB,CAAEA,SAAU,OAChB,E,eChQG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQswB,OCOR,MAAM+vG,WAA4BxM,GAKhCgM,YAKAC,QAKAjH,YAKArxF,SAYhB,WAAAzyC,CACCw7B,EACAi+E,EACAj3G,EAGI,CAAC,GAELsJ,MAAO0vB,GAEPv9B,KAAK6sI,YAAc,IAAI5I,GAAiB1mG,GAExCv9B,KAAK8sI,QAAU,IAAIjpB,GAAatmF,EAAQ,CACvC2mF,oBAAqB3/G,EAAQ+oI,6BAGzB/oI,EAAQgpI,aACZvtI,KAAK6lI,YAAc,IAAIuF,GAAa7tG,IAGrCv9B,KAAKw0C,SAAW,IAAIitF,GAAsBlkG,EAAQi+E,EACnD,CAKgB,MAAAtjF,GACfrqB,MAAMqqB,SAEDl4B,KAAK6lI,YAET7lI,KAAK6sI,YAAY3sI,QAAQyzB,QAAS,CAAE3zB,KAAK6lI,YAAa7lI,KAAK8sI,UAE3D9sI,KAAK6sI,YAAY3sI,QAAQgO,IAAKlO,KAAK8sI,SAGpC9sI,KAAKqiB,IAAInU,IAAKlO,KAAK6sI,aACnB7sI,KAAK2oF,KAAKz6E,IAAKlO,KAAKw0C,SACrB,EClEc,MAAeg5F,GAWbC,QASX,GAYE71C,MAAuB,eAKtB81C,kBAMAC,KAAO1+H,KAAK2hB,IAKZg9G,2BAKAC,mBAyBAC,WAKR,WAAA/rI,CAAa4oB,GAkBZ,GAjBA3qB,KAAKytI,QAAU,GACfztI,KAAK0tI,kBAAuD,iBAA5B/iH,EAAOojH,iBAAgCpjH,EAAOojH,iBAAmB,EACjG/tI,KAAK4tI,2BAAyE,iBAArCjjH,EAAOqjH,0BAAyCrjH,EAAOqjH,0BAA4B,IAE5HhuI,KAAK6tI,mBAAqBr4H,IAEzB,MAAM1L,EAAQ,UAAW0L,EAAMA,EAAI1L,MAAQ0L,EAAIy4H,OAI1CnkI,aAAiBzR,OACrB2H,KAAKkuI,aAAcpkI,EAAO0L,EAC3B,EAGDxV,KAAK8tI,WAAa,CAAC,GAEX9tI,KAAcmuI,SACrB,MAAM,IAAI91I,MACT,iLAIH,CAKO,OAAA4vB,GACNjoB,KAAKouI,qBAELpuI,KAAK8tI,WAAa,CAAC,CACpB,CAWO,EAAAr+H,CAA8BkC,EAAchC,GAC5C3P,KAAK8tI,WAAYn8H,KACtB3R,KAAK8tI,WAAYn8H,GAAc,IAGhC3R,KAAK8tI,WAAYn8H,GAAY/R,KAAM+P,EACpC,CAUO,GAAArD,CAAKqF,EAA2BhC,GACtC3P,KAAK8tI,WAAYn8H,GAAc3R,KAAK8tI,WAAYn8H,GAC9C5L,QAAQsoI,GAAMA,IAAO1+H,GACxB,CAOU,KAAA2+H,CAAiC38H,KAAiBzV,GAC3D,MAAMqU,EAAYvQ,KAAK8tI,WAAYn8H,IAAe,GAElD,UAAYhC,KAAYY,EACvBZ,EAASsB,MAAOjR,KAAM,CAAE,QAAS9D,GAEnC,CAKU,mBAAAqyI,GACThrI,OAAOmN,iBAAkB,QAAS1Q,KAAK6tI,oBACvCtqI,OAAOmN,iBAAkB,qBAAsB1Q,KAAK6tI,mBACrD,CAKU,kBAAAO,GACT7qI,OAAOoN,oBAAqB,QAAS3Q,KAAK6tI,oBAC1CtqI,OAAOoN,oBAAqB,qBAAsB3Q,KAAK6tI,mBACxD,CAUQ,YAAAK,CAAcpkI,EAAc0L,GAMnC,GAAKxV,KAAKwuI,oBAAqB1kI,GAAU,CACxC9J,KAAKytI,QAAQ7tI,KAAM,CAClB6O,QAAS3E,EAAM2E,QACfC,MAAO5E,EAAM4E,MAGb+/H,SAAUj5H,aAAek5H,WAAal5H,EAAIi5H,cAAW,EACrDE,OAAQn5H,aAAek5H,WAAal5H,EAAIm5H,YAAS,EACjDC,MAAOp5H,aAAek5H,WAAal5H,EAAIo5H,WAAQ,EAC/CpT,KAAMx7H,KAAK2tI,SAGZ,MAAMkB,EAAgB7uI,KAAK8uI,iBAE3B9uI,KAAK43F,MAAQ,UACb53F,KAAKsuI,MAAO,eACZtuI,KAAKsuI,MAAO,QAAS,CAAExkI,QAAO+kI,kBAEzBA,EACJ7uI,KAAKmuI,YAELnuI,KAAK43F,MAAQ,qBACb53F,KAAKsuI,MAAO,eAEd,CACD,CAOQ,mBAAAE,CAAqB1kI,GAC5B,OACGA,EAAeyE,IACfzE,EAAeyE,GAAI,uBACkB,IAArCzE,EAAyB6D,SAIY,OAArC7D,EAAyB6D,SAGZ,UAAf3N,KAAK43F,OAEL53F,KAAK+uI,2BAA4BjlI,EAEnC,CAKQ,cAAAglI,GACP,GAAK9uI,KAAKytI,QAAQn1I,QAAU0H,KAAK0tI,kBAChC,OAAO,EAQR,OALsB1tI,KAAKytI,QAASztI,KAAKytI,QAAQn1I,OAAS,GAAIkjI,KAC7Bx7H,KAAKytI,QAASztI,KAAKytI,QAAQn1I,OAAS,EAAI0H,KAAK0tI,mBAAoBlS,MAEjBx7H,KAAK0tI,kBAEnD1tI,KAAK4tI,0BACzC,EC1Qc,SAAS,GAAa3pI,EAAe+qI,EAAqB,IAAIj7H,KAC5E,MAAMu9B,EAAQ,CAAErtC,GAKVgrI,EAAW,IAAIl7H,IACrB,IAAIm7H,EAAY,EAEhB,KAAQ59F,EAAMh5C,OAAS42I,GAAY,CAElC,MAAM/vI,EAAOmyC,EAAO49F,KAEpB,IAAKD,EAAShhI,IAAK9O,IAAWgwI,GAAsBhwI,KAAU6vI,EAAmB/gI,IAAK9O,GAOtF,GAHA8vI,EAAS/gI,IAAK/O,GAGT2B,OAAOC,YAAY5B,EAEvB,IACC,UAAY7D,KAAK6D,EAChBmyC,EAAM1xC,KAAMtE,EAMd,CAAE,MAAQkG,GAIV,MAEA,UAAYzK,KAAOoI,EAIL,iBAARpI,GAILu6C,EAAM1xC,KAAMT,EAAMpI,GAOrB,CAIA,OAAOk4I,CACR,CAEA,SAASE,GAAsBhwI,GAC9B,MAAMgM,EAAOnU,OAAO6K,UAAUnF,SAAS2E,KAAMlC,GACvCiwI,SAAoBjwI,EAE1B,QACgB,WAAfiwI,GACe,YAAfA,GACe,WAAfA,GACe,WAAfA,GACe,aAAfA,GACS,kBAATjkI,GACS,oBAATA,GACS,oBAATA,GAPAikI,MASAjwI,GAOEA,EAAcg5H,mBAGhBh5H,aAAgBkwI,aAChBlwI,aAAgBmwI,MAElB,CChFe,SAASC,GAA+BC,EAAkBC,EAAkBC,EAAgB,IAAI37H,KAC9G,GAAKy7H,IAAYC,IA0DW,iBADVE,EAzDoBH,IA0DgB,OAAdG,GAzDvC,OAAO,EAwDT,IAAmBA,EAnDlB,MAAMC,EAAY,GAAaJ,EAASE,GAClCG,EAAY,GAAaJ,EAASC,GAExC,UAAYvwI,KAAQywI,EACnB,GAAKC,EAAU5hI,IAAK9O,GACnB,OAAO,EAIT,OAAO,CACR,CCCe,MAAM2wI,WAAwDtC,GAIpElhC,QAA0B,KAQ1ByjC,kBAA6C,KAM7CC,eAKAvnG,MAKAwnG,qBAKAC,eAKAC,gBAAiB,EAKjBC,WAA0C,CAAC,EAK3CvxH,QAgBAwxH,eAMR,WAAAtuI,CAAakrG,EAA6DqjC,EAAiC,CAAC,GAC3GziI,MAAOyiI,GAIPtwI,KAAKgwI,eAAiB,GACrBhwI,KAAKuwI,MAAMvpI,KAAMhH,MACsB,iBAAhCswI,EAAeE,aAA4BF,EAAeE,aAAe,KAI5EvjC,IACJjtG,KAAKywI,SAAa,CAAEC,EAAe/lH,IAAYsiF,EAAOlvF,OAAQ2yH,EAAe/lH,IAG9E3qB,KAAK2wI,YAAc5wG,GAAUA,EAAO9X,SACrC,CAKA,UAAW8X,GACV,OAAO//B,KAAKssG,OACb,CAKA,SAAWhqG,GACV,OAAOtC,KAAKssG,OACb,CAUO,UAAAskC,CAAYC,GAClB7wI,KAAKywI,SAAWI,CACjB,CAmBO,aAAAC,CAAeC,GACrB/wI,KAAK2wI,YAAcI,CACpB,CAQmB,QAAA5C,GAClB,OAAOhqG,QAAQnnB,UACbwmB,MAAM,KACNxjC,KAAK43F,MAAQ,eACb53F,KAAKsuI,MAAO,eAELtuI,KAAKgxI,cAEZC,OAAOzvI,IACPmN,QAAQ7E,MAAO,kDAAmDtI,EAAK,IAEvEgiC,MAAM,KASN,MAAM0tG,EAAwC,CAAC,EAEzCC,EAA2B,GAE3BC,EAAqDpxI,KAAK6e,QAASwyH,iBAAmB,CAAC,EAEvFA,EAAkD,CAAC,EAGzD,UAAcvwG,EAAUwwG,KAAct6I,OAAOoiB,QAASpZ,KAAKyoC,MAAOqS,OAC5Dw2F,EAASC,UACbL,EAAepwG,GAAa,GAC5BuwG,EAAiBvwG,GAAaswG,EAAoBtwG,IAAc,CAAC,GAEjEqwG,EAAUvxI,KAAMkhC,GAIlB,MAAM0wG,EAA8B,IAChCxxI,KAAK6e,QACR6uF,aAAc1tG,KAAK6e,QAAS6uF,cAAgB,GAC5CyjC,YACAE,kBACAI,qBAAsBzxI,KAAKyoC,OAS5B,cAJO+oG,EAAc9oD,YAErB8oD,EAAc9jC,aAAc9tG,KAAM8xI,IAE7B1xI,KAAKmwI,eACFnwI,KAAK+d,OAAQmzH,EAAeM,EAAeA,EAAc7jI,SAO3D,GAAW3N,KAAKkwI,gBACblwI,KAAK+d,OAAQ/d,KAAKkwI,eAAgBsB,EAAeA,EAAc7jI,SAE/D3N,KAAK+d,OAAQ/d,KAAKowI,WAAYoB,EAAeA,EAAc7jI,QAEpE,IAEA61B,MAAM,KACNxjC,KAAKsuI,MAAO,UAAW,GAE1B,CASO,MAAAvwH,CACN2yH,EAA6F1wI,KAAKkwI,eAClGvlH,EAAuB3qB,KAAK6e,QAC5BlR,GAuCA,OArCA3N,KAAK+vI,kBAAoB5rG,QAAQnnB,QAAShd,KAAK+vI,mBAC7CvsG,MAAM,KACN31B,MAAM0gI,sBAENvuI,KAAKkwI,eAAiBQ,EAItB1wI,KAAKmwI,eAAyC,iBAAjBO,GAC1B15I,OAAOC,KAAMy5I,GAAgBp4I,OAAS,GAAmD,iBAAvCtB,OAAOoU,OAAQslI,GAAiB,GAIrF1wI,KAAK6e,QAAU7e,KAAK2xI,0BAA2BhnH,IAAY,CAAC,EAE5D3qB,KAAK6e,QAASlR,QAAUA,EAEjB3N,KAAKywI,SAAUC,EAAe1wI,KAAK6e,YAE1C2kB,MAAMzD,IACN//B,KAAKssG,QAAUvsE,EAEfA,EAAO3nC,MAAMoL,SAASiM,GAAI,cAAezP,KAAKgwI,gBAE9ChwI,KAAKiwI,qBAAuBlwG,EAAO3nC,MAAMoL,SAASuL,QAClD/O,KAAKyoC,MAAQzoC,KAAK4xI,WAEZ5xI,KAAKmwI,iBACVnwI,KAAKowI,WAAapwI,KAAK6xI,iBAGxB7xI,KAAK43F,MAAQ,QACb53F,KAAKsuI,MAAO,cAAe,IACxBwD,SAAS,KACZ9xI,KAAK+vI,kBAAoB,IAAI,IAGxB/vI,KAAK+vI,iBACb,CAOgB,OAAA9nH,GAaf,OAZAjoB,KAAK+vI,kBAAoB5rG,QAAQnnB,QAAShd,KAAK+vI,mBAC7CvsG,MAAM,KACNxjC,KAAK43F,MAAQ,YACb53F,KAAKsuI,MAAO,eAEZzgI,MAAMoa,UAECjoB,KAAKgxI,cACTc,SAAS,KACZ9xI,KAAK+vI,kBAAoB,IAAI,IAGxB/vI,KAAK+vI,iBACb,CAEQ,QAAAiB,GACP,OAAO7sG,QAAQnnB,UACbwmB,MAAM,KACNxjC,KAAKouI,qBAELpuI,KAAKgwI,eAAep5G,SAEpB,MAAMmJ,EAAS//B,KAAKssG,QASpB,OAPAtsG,KAAKssG,QAAU,KAKfvsE,EAAQ3nC,MAAMoL,SAAS8I,IAAK,cAAetM,KAAKgwI,gBAEzChwI,KAAK2wI,YAAa5wG,EAAS,GAErC,CAMQ,KAAAwwG,GACP,MAAMxhI,EAAU/O,KAAKssG,QAASl0G,MAAMoL,SAASuL,QAE7C,IACC/O,KAAKyoC,MAAQzoC,KAAK4xI,WAEZ5xI,KAAKmwI,iBACVnwI,KAAKowI,WAAapwI,KAAK6xI,iBAGxB7xI,KAAKiwI,qBAAuBlhI,CAC7B,CAAE,MAAQvN,GACTmN,QAAQ7E,MACPtI,EACA,0GAGF,CACD,CAKO,sBAAAuwI,CAAwB73H,GAC9Bla,KAAKqwI,eAAiBn2H,CACvB,CAKQ,QAAA03H,GACP,MAAM7xG,EAAS//B,KAAKssG,QACdxxD,EAAQ/a,EAAO3nC,MAAMoL,SAASs3C,MAAM/0C,QAAQzP,GAAQA,EAAKuwC,cAAiC,cAAjBvwC,EAAKwqC,YAE9E,QAAEuB,GAAYtC,EAEdiyG,EAAqB3vG,EAAQp0B,IAAK,uBAA0Bo0B,EAAQj6B,IAAK,sBACzE6pI,EAAe5vG,EAAQp0B,IAAK,iBAAoBo0B,EAAQj6B,IAAK,gBAE7DtF,EAAmB,CACxBg4C,MAAO,CAAC,EACR2uB,QAAS,CAAC,EACVyoE,eAAgBtvI,KAAKC,UAAW,IAChCsvI,YAAavvI,KAAKC,UAAW,KAG9Bi4C,EAAMl9C,SAAStH,IACdwM,EAAKg4C,MAAOxkD,EAAKwqC,UAAa,CAC7B5gC,QAAS0C,KAAKC,UAAWlC,MAAMrB,KAAMhJ,EAAKwwC,gBAC1CvhC,WAAY3C,KAAKC,UAAWlC,MAAMrB,KAAMhJ,EAAK85C,kBAC7CmhG,SAAUj7I,EAAKs/F,UACf,IAGF,UAAY3qB,KAAUlrC,EAAO3nC,MAAMqxE,QAC5BwB,EAAOzqC,eAIb19B,EAAK2mE,QAASwB,EAAOjpE,MAAS,CAC7BowI,UAAWnnE,EAAOT,WAAWniC,SAC7By0D,eAAgB7xB,EAAO8wB,wBACvBr7D,YAAauqC,EAAOzqC,eAYtB,OARKwxG,IACJlvI,EAAKovI,eAAiBtvI,KAAKC,UAAWmvI,EAAmBK,kBAAmB,CAAEhqG,QAAQ,EAAMiqG,iBAAiB,MAGzGL,IACJnvI,EAAKqvI,YAAcvvI,KAAKC,UAAWovI,EAAaM,eAAgB,CAAElqG,QAAQ,EAAMiqG,iBAAiB,MAG3FxvI,CACR,CAKQ,aAAA+uI,GACP,MAAMW,EAAyC,CAAC,EAEhD,UAAY1xG,KAAY9gC,KAAK+/B,OAAQ3nC,MAAMoL,SAASw3F,eAAiB,CACpE,MAAMxmD,EAAWx0C,KAAK+/B,OAAQ+E,GAAG43F,mBAAoB57F,GAEhD0T,IACJg+F,EAAW1xG,GAAa0T,EAE1B,CAEA,OAAOg+F,CACR,CAQO,0BAAAzD,CAA4BjlI,GAClC,OAAOylI,GAA+BvvI,KAAKssG,QAASxiG,EAAM6D,QAAS3N,KAAKqwI,eACzE,CAKQ,yBAAAsB,CAA2BhnH,GAClC,OAAO,GAAeA,GAAQ,CAAEnyB,EAAOzB,IAEjC,GAAWyB,IAIH,YAARzB,EAHGyB,OAGR,GAIF,EAOD,MAAMk5I,GACE3xG,OAEC0I,MAER,WAAA1mC,CAAag+B,GACZ//B,KAAK+/B,OAASA,EAEd//B,KAAKyoC,MAAQ1I,EAAOpV,OAAOviB,IAAK,uBACjC,CAKO,IAAAg6B,GAINpiC,KAAK+/B,OAAOj9B,KAAK2M,GAAI,QAAQ+F,IAC5BA,EAAInJ,OAEJrM,KAAK+/B,OAAO3nC,MAAM63E,cAAe,CAAE2X,YAAY,IAAS7hD,IACvD/lC,KAAKyyI,4BACLzyI,KAAK0yI,mBAAoB3sG,EAAQ,IAGlC/lC,KAAK+/B,OAAOj9B,KAAK8N,KAAwB,QAAS,GAGhD,CAAE5D,SAAU,KAChB,CAKQ,WAAA2lI,CAAa5sG,EAAgB6sG,GACpC,GAAK,SAAUA,EAAW,CAEzB,MAAM77H,EAAUgvB,EAAOzgC,cAAestI,EAAS5wI,KAAM4wI,EAASrtI,YAE9D,GAAKqtI,EAAS16H,SACb,UAAYI,KAASs6H,EAAS16H,SAC7BnB,EAAQs6B,aAAcrxC,KAAK2yI,YAAa5sG,EAAQztB,IAIlD,OAAOvB,CACR,CAEC,OAAOgvB,EAAO0X,WAAYm1F,EAAS9vI,KAAM8vI,EAASrtI,WAEpD,CAKQ,kBAAAmtI,CAAoB3sG,GAC3B,MAAMhG,EAAS//B,KAAK+/B,OAEpB/oC,OAAOoiB,QAASpZ,KAAKyoC,MAAOqS,OAAQl9C,SAAS,EAAIkjC,GAAY5gC,UAASqF,kBACrE,MAAMstI,EAAqCjwI,KAAKgmF,MAAO1oF,GACjD4yI,EAA+ClwI,KAAKgmF,MAAOrjF,GAE3DwtI,EAAchzG,EAAO3nC,MAAMoL,SAASw3C,QAASla,GAEnD,UAAc/pC,EAAKyB,KAAWs6I,EAC7B/sG,EAAOtgC,aAAc1O,EAAKyB,EAAOu6I,GAGlC,UAAYz6H,KAASu6H,EAAc,CAClC,MAAM1zI,EAAOa,KAAK2yI,YAAa5sG,EAAQztB,GAEvCytB,EAAOrgC,OAAQvG,EAAM4zI,EAAa,MACnC,KAGD/7I,OAAOoiB,QAASpZ,KAAKyoC,MAAOghC,SAAU7rE,SAAS,EAAIwoE,EAAY4sE,MAC9D,MAAM,SAAExvI,GAAau8B,EAAO3nC,OAE3Bg6I,WAAW,MAAE3hH,EAAK,IAAEsb,MACjBxnC,GACAyuI,EAEE18I,EAAOkN,EAASw3C,QAASvqB,EAAMn6B,MAC/B48C,EAAgBnN,EAAOu1D,uBAAwBhlG,EAAMm6B,EAAMhxB,KAAMgxB,EAAM2wC,YACvE9e,EAAcvc,EAAOu1D,uBAAwBhlG,EAAMy1C,EAAItsC,KAAMssC,EAAIq1B,YAEjEr6C,EAAQgf,EAAO0b,YAAavO,EAAeoP,GAEjDvc,EAAOi3D,UAAW52B,EAAY,CAC7Br/C,WACGxiB,GACD,GAEL,CAKQ,yBAAAkuI,GAEP,MAAMQ,EAAmCrwI,KAAKgmF,MAAO5oF,KAAKyoC,MAAMypG,gBAC1DgB,EAAgCtwI,KAAKgmF,MAAO5oF,KAAKyoC,MAAM0pG,aAE7Dc,EAAqBr1I,SAASu1I,IAC7B,MAAMC,EAAYpzI,KAAK+/B,OAAOpV,OAAOviB,IAAK,2BACpC4pI,EAAqBhyI,KAAK+/B,OAAQsC,QAAQj6B,IAAK,sBAErD,GAAK4pI,EAAmBqB,iBAAkBF,EAAkBG,UAAa,CAClDtB,EAAmBuB,iBAAkBJ,EAAkBG,UAE/DrtI,QACf,CAEA+rI,EAAmBwB,iBAAkB,CAAEJ,eAAcD,GAAqB,IAG3ED,EAAkBt1I,SAAS61I,IAC1B,MAAMC,EAAsB1zI,KAAK+/B,OAAQsC,QAAQj6B,IAAK,uBAEtD,GAAKsrI,EAAoBC,cAAeF,EAAe5zI,IAAO,CAC1C6zI,EAAoBE,cAAeH,EAAe5zI,IAE1D0F,WAAakuI,EAAeluI,UACxC,MACCmuI,EAAoBG,kBAAmBJ,EACxC,GAEF,ECvjBD,MAAMK,GAAchzI,OAAQ,eAQb,MAAMizI,WAA4DvG,GAItEwG,WAAa,IAAItiI,IAKVuiI,gBAKTvyG,SAA4B,KAM5BwyG,cAAgB,IAAIngI,IAKpBogI,cAAgB,IAAIC,GAKpBC,eAmBD/xI,MAkBP,WAAAP,CACCwiC,EACA+rG,EAAiC,CAAC,GAElCziI,MAAOyiI,GAEPtwI,KAAKi0I,gBAAkB3D,EAGvBtwI,KAAKywI,SAAW6D,GAAiB/vG,EAAQxmB,OAAQu2H,GACjDt0I,KAAK2wI,YAAchjI,GAAWA,EAAQsa,UAEtCjoB,KAAKm0I,cAAcI,SAAS,KACP,iBAAfv0I,KAAK43F,QACT53F,KAAK43F,MAAQ,QACb53F,KAAKsuI,MAAO,eACb,GAEF,CAUO,UAAAsC,CAAYC,GAClB7wI,KAAKywI,SAAWI,CACjB,CAmBO,aAAAC,CAAeC,GACrB/wI,KAAK2wI,YAAcI,CACpB,CAMA,WAAWpjI,GACV,OAAO3N,KAAK0hC,QACb,CAcO,MAAA3jB,CAAQu2H,EAA+B,CAAC,GAC9C,OAAOt0I,KAAKm0I,cAAcK,QAASV,IAAa,KAC/C9zI,KAAKq0I,eAAiBC,EAEft0I,KAAKy0I,YAEd,CAYO,OAAAtyD,CAAStuD,GAGf,OAFiB7zB,KAAK00I,aAAc7gH,GAEpBvxB,KACjB,CAYO,YAAAqyI,CAAc9gH,GAGpB,OAFiB7zB,KAAK00I,aAAc7gH,GAEpB+jE,KACjB,CA8CO,GAAA1pF,CAAK0mI,GACX,MAAMC,EAAqB,GAASD,GAEpC,OAAOzwG,QAAQ1gC,IAAKoxI,EAAmB73I,KAAKiD,GACpCD,KAAKm0I,cAAcK,QAASv0I,EAAKJ,IAAI,KAC3C,GAAoB,cAAfG,KAAK43F,MACT,MAAM,IAAIv/F,MAAO,2CAGlB,IAAM2H,KAAK0hC,SACV,MAAM,IAAIrpC,MAAO,6FAGlB,IAAIy8I,EAEJ,GAAK90I,KAAKg0I,WAAW/lI,IAAKhO,EAAKJ,IAC9B,MAAM,IAAIxH,MAAO,6CAA8C4H,EAAKJ,QAGrE,GAAmB,WAAdI,EAAKkL,KAkCT,OAjCA2pI,EAAW,IAAIhF,GAAgB,KAAM9vI,KAAKi0I,iBAC1Ca,EAASlE,WAAY3wI,EAAK4wI,SAC1BiE,EAAS/C,uBAAwB/xI,KAAKk0I,eAEjCj0I,EAAK8wI,YACT+D,EAAShE,cAAe7wI,EAAK8wI,YAG9B/wI,KAAKg0I,WAAWpiI,IAAK3R,EAAKJ,GAAIi1I,GAI9BA,EAASrlI,GAAI,SAAS,CAAE+F,GAAO1L,QAAO+kI,oBACrC7uI,KAAKsuI,MAAO,YAAa,CAAEz6G,OAAQ5zB,EAAKJ,GAAIiK,UAGtC+kI,GAIN7uI,KAAKm0I,cAAcK,QAASv0I,EAAKJ,IAAI,IAAM,IAAIskC,SAAe4wG,IAC7D,MAAMC,EAA0B,KAC/BF,EAASxoI,IAAK,UAAW0oI,GAEzBh1I,KAAKsuI,MAAO,cAAe,CAAEz6G,OAAQ5zB,EAAKJ,KAE1Ck1I,GAAK,EAGND,EAASrlI,GAAI,UAAWulI,EAAyB,KAC7C,IAGCF,EAAS/2H,OAAQ9d,EAAKg1I,oBAAqBh1I,EAAK0qB,OAAQ3qB,KAAK0hC,UAEpE,MAAM,IAAIrpC,MAAO,6BAA8B4H,EAAKkL,SACrD,MAGH,CAiBO,MAAAlF,CAAQivI,GACd,MAAMC,EAAU,GAASD,GAEzB,OAAO/wG,QAAQ1gC,IAAK0xI,EAAQn4I,KAAK62B,GACzB7zB,KAAKm0I,cAAcK,QAAS3gH,GAAQ,KAC1C,MAAMihH,EAAW90I,KAAK00I,aAAc7gH,GAIpC,OAFA7zB,KAAKg0I,WAAWliI,OAAQ+hB,GAEjBihH,EAAS7sH,SAAS,MAG5B,CAUgB,OAAAA,GACf,OAAOjoB,KAAKm0I,cAAcK,QAASV,IAAa,KAC/C9zI,KAAK43F,MAAQ,YACb53F,KAAKsuI,MAAO,eAEZzgI,MAAMoa,UAECjoB,KAAKgxI,aAEd,CAKU,QAAA7C,GACT,OAAOnuI,KAAKm0I,cAAcK,QAASV,IAAa,KAC/C9zI,KAAK43F,MAAQ,eACb53F,KAAKsuI,MAAO,eAELtuI,KAAKgxI,WACVC,OAAOzvI,IACPmN,QAAQ7E,MAAO,4DAA6DtI,EAAK,IAEjFgiC,MAAM,IAAMxjC,KAAKy0I,YACjBjxG,MAAM,IAAMxjC,KAAKsuI,MAAO,eAE5B,CAKQ,OAAAmG,GACP,OAAOtwG,QAAQnnB,UACbwmB,MAAM,KACNxjC,KAAKuuI,sBAEEvuI,KAAKywI,SAAUzwI,KAAKq0I,mBAE3B7wG,MAAM71B,IACN3N,KAAK0hC,SAAW/zB,EAChB3N,KAAKk0I,cAAgB,GAAal0I,KAAK0hC,UAEhCyC,QAAQ1gC,IACd9C,MAAMrB,KAAMU,KAAKg0I,WAAW5oI,UAC1BpO,KAAK83I,IACLA,EAAS/C,uBAAwB/xI,KAAKk0I,eAE/BY,EAAS/2H,YAAQ,OAAW,EAAW/d,KAAK0hC,gBAIzD,CAKQ,QAAAsvG,GACP,OAAO7sG,QAAQnnB,UACbwmB,MAAM,KACNxjC,KAAKouI,qBAEL,MAAMzgI,EAAU3N,KAAK0hC,SAKrB,OAHA1hC,KAAK0hC,SAAW,KAChB1hC,KAAKk0I,cAAgB,IAAIngI,IAElBowB,QAAQ1gC,IACd9C,MAAMrB,KAAMU,KAAKg0I,WAAW5oI,UAC1BpO,KAAK83I,GAAYA,EAAS7sH,aAG3Bub,MAAM,IAAMxjC,KAAK2wI,YAAahjI,IAAW,GAE9C,CAOU,YAAA+mI,CAAc7gH,GACvB,MAAMihH,EAAW90I,KAAKg0I,WAAW5rI,IAAKyrB,GAEtC,IAAMihH,EACL,MAAM,IAAIz8I,MAAO,8CAA+Cw7B,MAGjE,OAAOihH,CACR,CAOO,0BAAA/F,CAA4BjlI,GAClC,UAAYgrI,KAAY90I,KAAKg0I,WAAW5oI,SACvC,GAAK0pI,EAAS/F,2BAA4BjlI,GACzC,OAAO,EAIT,OAAOylI,GAA+BvvI,KAAK0hC,SAAU53B,EAAM6D,QAC5D,EAwED,MAAMymI,GACEgB,kBAAuC,GACvCC,QAAU,IAAI3jI,IACd4jI,eAAiB,EAOjB,OAAAf,CAASgB,GACfv1I,KAAKo1I,kBAAkBx1I,KAAM21I,EAC9B,CAQO,OAAAf,CAASgB,EAAmC5tF,GAClD,MAAM6tF,EAAeD,IAAY1B,GAEjC9zI,KAAKs1I,iBAECt1I,KAAKq1I,QAAQjtI,IAAKotI,IACvBx1I,KAAKq1I,QAAQzjI,IAAK4jI,EAASrxG,QAAQnnB,WAMpC,MAIM04H,GAJiBD,EACtBtxG,QAAQ1gC,IAAKzD,KAAKq1I,QAAQjqI,UAC1B+4B,QAAQ1gC,IAAK,CAAEzD,KAAKq1I,QAAQjtI,IAAK0rI,IAAe9zI,KAAKq1I,QAAQjtI,IAAKotI,MAE5BhyG,KAAMokB,GAGvC+tF,EAAgBD,EAAgBzE,OAAO,SAI7C,OAFAjxI,KAAKq1I,QAAQzjI,IAAK4jI,EAASG,GAEpBD,EAAgB5D,SAAS,KAC/B9xI,KAAKs1I,iBAEAt1I,KAAKq1I,QAAQjtI,IAAKotI,KAAcG,GAAyC,IAAxB31I,KAAKs1I,gBAC1Dt1I,KAAKo1I,kBAAkBx3I,SAASywI,GAAMA,KACvC,GAEF,EASD,SAAS,GAAYuH,GACpB,OAAOj1I,MAAMC,QAASg1I,GAAmBA,EAAiB,CAAEA,EAC7D,CCniBe,MAAM,WAAsCznC,GAAiBlB,KAI3DnoE,GAaN,WAAA/iC,CAAakzI,EAA2CtqH,EAAuB,CAAC,GAEzF,IAAM,GAAWsqH,SAAgD,IAAvBtqH,EAAO+9D,YAGhD,MAAM,IAAIh7E,EAAe,6BAA8B,MAGxDG,MAAO8c,GAEP3qB,KAAK2qB,OAAOj0B,OAAQ,qBAAqB,QAEC,IAArCsJ,KAAK2qB,OAAOviB,IAAK,gBACrBpI,KAAK2qB,OAAO/Y,IAAK,cAgLpB,SAAyBqjI,GACxB,OAAO,GAAWA,GAAwBlzH,GAAoBkzH,GAAwBA,CACvF,CAlLmCY,CAAgBZ,IAG5C,GAAWA,KACfj1I,KAAKyrF,cAAgBwpD,GAGtBj1I,KAAK5H,MAAMoL,SAASypF,aAEpB,MAAMqgD,GAA8BttI,KAAK2qB,OAAOviB,IAAK,kCAE/CggI,EAAgBpoI,KAAK2qB,OAAOviB,IAAK,WAEjCuvB,EAAO,IAAI01G,GAAqBrtI,KAAKu9B,OAAQv9B,KAAKmtG,QAAQx1E,KAAM,CACrE21G,6BACAC,WAAYnF,EAAcr/G,YAG3B/oB,KAAK8kC,GAAK,IAAIsnG,GAAiBpsI,KAAM23B,GAErCi2E,GAAc5tG,KACf,CASgB,OAAAioB,GAOf,OANKjoB,KAAKyrF,eACTzrF,KAAK6tG,sBAGN7tG,KAAK8kC,GAAG7c,UAEDpa,MAAMoa,SACd,CAsGA,aAAuBlK,CAAQk3H,EAA2CtqH,EAAuB,CAAC,GACjG,OAAO,IAAIwZ,SAASnnB,IACnB,MAAM+iB,EAAS,IAAI//B,KAAMi1I,EAAqBtqH,GAE9C3N,EACC+iB,EAAOwD,cACLC,MAAM,IAAMzD,EAAO+E,GAAG1C,KAAM,GAAW6yG,GAAwBA,EAAsB,QACrFzxG,MAAM,IAAMzD,EAAOj9B,KAAKs/B,KAAMrC,EAAOpV,OAAOviB,IAAK,kBACjDo7B,MAAM,IAAMzD,EAAOnvB,KAAwB,WAC3C4yB,MAAM,IAAMzD,IACd,GAEH,CAOA,eAAwBwE,GAOxB,sBAA+BurG,GAO/B,uBAAgCiE,GAOjC,SAAS,GAAWv7I,GACnB,OAAO,GAAYA,EACpB,CCxOe,MAAMs9I,WAAuBtX,GAI3B7mG,KAKC00G,eAQjB,WAAAtqI,CAAag+B,EAAgBpI,GAC5B9pB,MAAOkyB,GAEP//B,KAAK23B,KAAOA,EACZ33B,KAAKqsI,eAAiB5oB,GAAwB1jF,EAAOpV,OAAOviB,IAAK,WAClE,CAKA,WAAoB2O,GACnB,OAAO/W,KAAK23B,KAAK6c,SAASz9B,OAC3B,CAKO,IAAAqrB,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdpI,EAAO33B,KAAK23B,KACZ6jF,EAAcz7E,EAAOotE,QAAQx1E,KAC7B6c,EAAW7c,EAAK6c,SAChBi4F,EAAcjxB,EAAYh4G,SAASw3C,UAIzCxG,EAASxyC,KAAOyqI,EAAY3rG,SAE5BnJ,EAAKO,SAIL,MAAMoa,EAAkBkC,EAASz9B,QAIjC/W,KAAKm/H,mBAAoB3qF,EAASxyC,KAAMswC,GASxCkC,EAASxtC,KAAM,aAAczH,GAAIS,KAAKi/B,cAItCu8E,EAAY/8C,cAAensB,GAE3BtyC,KAAK0sI,mBACL1sI,KAAK2sI,eACL3sI,KAAK4Q,KAA0B,QAChC,CAKgB,OAAAqX,GACfpa,MAAMoa,UAEN,MAAM0P,EAAO33B,KAAK23B,KACE33B,KAAK+/B,OAAOotE,QAAQx1E,KAE5BmnC,cAAennC,EAAK6c,SAASxyC,MACzC21B,EAAK1P,SACN,CAKQ,YAAA0kH,GACP,MAAM5sG,EAAS//B,KAAK+/B,OACdpI,EAAO33B,KAAK23B,KACZ2a,EAAkB3a,EAAK6c,SAASz9B,QAChC+1H,EAAUn1G,EAAKm1G,QAGrBn1G,EAAKo+G,MAAM/uI,KAAM,aAAczH,GAAIS,KAAKi/B,aAAc,aAEtDtH,EAAK3wB,KAAM,qBAAsBzH,GAAIS,KAAM,kBAAkB,EAAIqiB,SAAWA,GAAO,IAGnFsV,EAAK/nB,SAA+BmwB,EAAO+E,GAAI,UAAU,KAGnDnN,EAAKo+G,MAAMhtH,WACf4O,EAAKo+G,MAAM7gB,IAAK,CACftxH,OAAQ0uC,EACRrpB,UAAW0O,EAAKq+G,gBAElB,IAGDlJ,EAAQvoB,eAAgBvkH,KAAKqsI,eAAgBrsI,KAAKm7G,kBAGlDn7G,KAAKs/H,WAAYwN,EAClB,CAKQ,gBAAAJ,GACP,MAAM3sG,EAAS//B,KAAK+/B,OACdy7E,EAAcz7E,EAAOotE,QAAQx1E,KAC7B80G,EAAcjxB,EAAYh4G,SAASw3C,UACnC7U,EAAcpG,EAAOpV,OAAOviB,IAAK,eAEvC,GAAK+9B,EAAc,CAClB,MAAM4mG,EAAyC,iBAAhB5mG,EAA2BA,EAAcA,EAAasmG,EAAY3rG,UAE5FisG,IACJN,EAAYtmG,YAAc4mG,EAE5B,CAEA,GAAmB,CAClBp1G,KAAM6jF,EACNzkG,QAAS01H,EACT/mG,cAAc,EACdC,aAAa,GAEf,EClJD,MAAM,GAAuBpd,GAAQ,MAKtB,MAAM0tH,WAA2BrV,GAI/BkM,QAwBAiJ,MAkDAC,eAKAxhG,SAQRwjF,gBAcR,WAAAj2H,CACCw7B,EACAi+E,EACAlpE,EACA/tC,EAEI,CAAC,GAELsJ,MAAO0vB,GAEP,MAAMviC,EAAIuiC,EAAOviC,EAEjBgF,KAAK8sI,QAAU,IAAIjpB,GAAatmF,EAAQ,CACvC2mF,oBAAqB3/G,EAAQ+oI,2BAC7BnpB,YAAY,IAGbnkH,KAAK4R,IAAK,oBAAqB,GAE/B5R,KAAK+1I,MAAQ,IAAI7hB,GAAkB32F,GACnCv9B,KAAKg2I,eAAiBh2I,KAAKk2I,qBAE3Bl2I,KAAK+1I,MAAMn8G,eAAgB,CAC1Br0B,WAAY,CACXs5B,MAAO,0BAIT7+B,KAAKw0C,SAAW,IAAIitF,GAAsBlkG,EAAQi+E,EAAalpE,EAAiB,CAC/EmG,MAAO09F,GACCn7I,EAAG,qCAAsCm7I,EAAan0I,QAI/DhC,KAAKg4H,gBAAkB,IACxB,CAKgB,MAAA9/F,GACfrqB,MAAMqqB,SAENl4B,KAAKijB,KAAK/U,IAAKlO,KAAK+1I,OACpB/1I,KAAK+9B,cAAe/9B,KAAKw0C,UACzBx0C,KAAK+1I,MAAM71I,QAAQgO,IAAKlO,KAAK8sI,SAM7B,GAJgB9sI,KAAK8sI,QAAQvoI,QAIhB2/G,oBAAsB,CAClC,MAAM5xE,EAAkBtyC,KAAKw0C,SAASz9B,QAEtC/W,KAAKg4H,gBAAkB,IAAItwG,GAAgB4qB,GAAiB,KAC3DtyC,KAAK8sI,QAAQ1oB,SAAW,GAAM,IAAI,GAAM9xE,GAAkBnvB,MAAO,GAEnE,CACD,CAKgB,OAAA8E,GACfpa,MAAMoa,UAEDjoB,KAAKg4H,iBACTh4H,KAAKg4H,gBAAgB/vG,SAEvB,CAQQ,oBAAAmuH,CAAsBC,EAAoBjzB,GACjD,IAAI/gG,EAUJ,OAPCA,EADIg0H,EAAah0H,IAAM+gG,EAAUhgG,OAASpjB,KAAK2kI,kBACzC0R,EAAah0H,IAAM+gG,EAAUhgG,OACxBizH,EAAa5zH,OAAS2gG,EAAUhgG,OAASpjB,KAAK2kI,kBAAoB,GACvE3kI,KAAK2kI,kBAEL0R,EAAa5zH,OAGbJ,CACR,CAOQ,kBAAA6zH,GACP,MAAMjtH,EAAwC,CAC7C,CAAEotH,EAAcjzB,KACR,CACN/gG,IAAKriB,KAAKo2I,qBAAsBC,EAAcjzB,GAC9CzgG,KAAM0zH,EAAa1zH,KACnB3gB,KAAM,eACN2oB,OAAQ,CACPspG,WAAW,KAId,CAAEoiB,EAAcjzB,KACR,CACN/gG,IAAKriB,KAAKo2I,qBAAsBC,EAAcjzB,GAC9CzgG,KAAM0zH,EAAa1zH,KAAO0zH,EAAalzH,MAAQigG,EAAUjgG,MACzDnhB,KAAM,eACN2oB,OAAQ,CACPspG,WAAW,MAMf,MAAyC,QAApCj0H,KAAKu9B,OAAOjL,oBACTrJ,EAEAA,EAAU1d,SAEnB,ECjNc,MAAM,WAAqC4iG,GAAiBlB,KAI1DnoE,GAaN,WAAA/iC,CAAakzI,EAA2CtqH,EAAuB,CAAC,GAEzF,IAAM,GAAWsqH,SAAgD,IAAvBtqH,EAAO+9D,YAGhD,MAAM,IAAIh7E,EAAe,6BAA8B,MAGxDG,MAAO8c,QAEmC,IAArC3qB,KAAK2qB,OAAOviB,IAAK,gBACrBpI,KAAK2qB,OAAO/Y,IAAK,cAoLpB,SAAyBqjI,GACxB,OAAO,GAAWA,GAAwBlzH,GAAoBkzH,GAAwBA,CACvF,CAtLmC,CAAgBA,IAGjDj1I,KAAK5H,MAAMoL,SAASypF,aAEf,GAAWgoD,KACfj1I,KAAKyrF,cAAgBwpD,EC9DT,SAA8Bl1G,EAAgB0rD,GAC5D,GAAKA,EAAcyzC,iBAUlB,MAAM,IAAIxxH,EACT,qCACAqyB,GAIF0rD,EAAcyzC,iBAAmBn/F,EAEjCA,EAAOlwB,KAA0B,WAAW,YACpC47E,EAAcyzC,gBAAgB,GAEvC,CDyCGoX,CAAqBt2I,KAAMi1I,IAG5B,MAAM3H,GAA8BttI,KAAK2qB,OAAOviB,IAAK,kCAE/CuvB,EAAO,IAAIs+G,GAAoBj2I,KAAKu9B,OAAQv9B,KAAKmtG,QAAQx1E,KAAM33B,KAAKyrF,cAAe,CACxF6hD,+BAEDttI,KAAK8kC,GAAK,IAAIgxG,GAAgB91I,KAAM23B,GAEpCi2E,GAAc5tG,KACf,CASgB,OAAAioB,GAGf,MAAMnlB,EAAO9C,KAAKy8D,UAIlB,OAFAz8D,KAAK8kC,GAAG7c,UAEDpa,MAAMoa,UACXub,MAAM,KACDxjC,KAAKyrF,eACTzrF,KAAK6tG,oBAAqB/qG,EAC3B,GAEH,CAkGA,aAAuBib,CAAQk3H,EAA2CtqH,EAAuB,CAAC,GACjG,OAAO,IAAIwZ,SAASnnB,IACnB,GAAK,GAAWi4H,IAAyD,aAAhCA,EAAoB3pF,QAG5D,MAAM,IAAI59C,EAAe,uBAAwB,MAGlD,MAAMqyB,EAAS,IAAI//B,KAAMi1I,EAAqBtqH,GAE9C3N,EACC+iB,EAAOwD,cACLC,MAAM,IAAMzD,EAAO+E,GAAG1C,SACtBoB,MAAM,IAAMzD,EAAOj9B,KAAKs/B,KAAMrC,EAAOpV,OAAOviB,IAAK,kBACjDo7B,MAAM,IAAMzD,EAAOnvB,KAAwB,WAC3C4yB,MAAM,IAAMzD,IACd,GAEH,CAOA,eAAwBwE,GAOxB,sBAA+BurG,GAO/B,uBAAgCiE,GAOjC,SAAS,GAAWv7I,GACnB,OAAO,GAAYA,EACpB,CEpPO,MAAM+9I,GAAmD,CAAE,OAAQ,QAAS,SAAU,WAOtF,SAAS5sI,GAAaiY,GAC5B,OAAS20H,GAAoCpkH,SAAUvQ,EACxD,CASO,SAAS40H,GAAWC,EAAmBl5G,GAG7C,MAAwC,OAAnCA,EAAOtO,yBACU,UAAdwnH,EAEc,SAAdA,CAET,CAQO,SAASC,GAA2BC,GAC1C,MAAMC,EAAoBD,EACxB35I,KAAK4kB,IACL,IAAIzjB,EAQJ,OALCA,EADqB,iBAAVyjB,EACF,CAAE5f,KAAM4f,GAERA,EAGHzjB,CAAM,IAGb4H,QAAQ6b,IACR,MAAMi1H,EAAcN,GAAiBpkH,SAAUvQ,EAAO5f,MAatD,OAXM60I,GAQL,EAAY,uCAAwC,CAAEj1H,WAGhDi1H,CAAW,IAGdC,EAAiBF,EAAkB7wI,QAAQ6b,GAAUte,QAASse,EAAO2uB,aAAcj4C,OAGzF,GAAKw+I,GAAkBA,EAAiBF,EAAkBt+I,OAOzD,MAAM,IAAIoV,EAAe,0CAA2C,CAAEipI,sBAsCvE,OAlCAC,EAAkBh5I,SAAS,CAAEgkB,EAAQhd,EAAOmyI,KAC3C,MAAMC,EAAoBD,EAAWj1I,MAAO8C,EAAQ,GAGpD,GAF0BoyI,EAAkB3/G,MAAMp3B,GAAQA,EAAK+B,MAAQ4f,EAAO5f,OAW7E,MAAM,IAAI0L,EAAe,wCAAyC,CAAEkU,SAAQ+0H,sBAI7E,GAAK/0H,EAAO2uB,UAAY,CAGvB,GAF+BymG,EAAkB3/G,MAAMp3B,GAAQA,EAAKswC,WAAa3uB,EAAO2uB,YAWvF,MAAM,IAAI7iC,EAAe,6CAA8C,CAAEkU,SAAQ+0H,qBAEnF,KAGMC,CACR,CCtHA,MAAMK,GAAY,YAKH,MAAMC,WAAyB52G,GAY7B,OAAAG,GACf,MACMlD,EADSv9B,KAAK+/B,OACExC,OAChBilD,EAAa,GAAOxiF,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,UAAU6rC,qBAG/DxsE,KAAKmgC,UAAY78B,QAASk/E,IAAgBxiF,KAAKm3I,cAAe30D,GAEzDxiF,KAAKmgC,WAAaqiD,EAAWnyC,aAAc,aAC/CrwC,KAAKxH,MAAQgqF,EAAW9nD,aAAc,aAEtC16B,KAAKxH,MAA4C,QAApC+kC,EAAOtO,yBAAqC,QAAU,MAErE,CAWgB,OAAAgS,CAAS18B,EAAuC,CAAC,GAChE,MAAMw7B,EAAS//B,KAAK+/B,OACdxC,EAASwC,EAAOxC,OAChBnlC,EAAQ2nC,EAAO3nC,MACf6f,EAAM7f,EAAMoL,SAEZhL,EAAQ+L,EAAQ/L,MAEtBJ,EAAM0tC,QAAQC,IAEb,MAAMqxG,EAASz2I,MAAMrB,KAAM2Y,EAAI0oB,UAAU6rC,qBAAsBzmE,QAAQ8mE,GAAS7sE,KAAKm3I,cAAetqE,KAC9FwqE,EAAmBD,EAAQ,GAAI18G,aAAc,aAM3B87G,GAAWh+I,EAAO+kC,IAAY85G,IAAqB7+I,IAAUA,EAuBxF,SAAuC4+I,EAAwBrxG,GAC9D,UAAY8mC,KAASuqE,EACpBrxG,EAAOr/B,gBAAiBuwI,GAAWpqE,EAErC,CAxBIyqE,CAA8BF,EAAQrxG,GA6B1C,SAAkCqxG,EAAwBrxG,EAAgB0wG,GACzE,UAAY5pE,KAASuqE,EACpBrxG,EAAOtgC,aAAcwxI,GAAWR,EAAW5pE,EAE7C,CA/BI0qE,CAAyBH,EAAQrxG,EAAQvtC,EAC1C,GAEF,CAOQ,aAAA2+I,CAAetqE,GACtB,OAAO7sE,KAAK+/B,OAAO3nC,MAAMkiC,OAAOo3C,eAAgB7E,EAAOoqE,GACxD,ECvEc,MAAMO,WAAyB,GAI7C,qBAAkBv1G,GACjB,MAAO,kBACR,CAKA,WAAAlgC,CAAag+B,GACZlyB,MAAOkyB,GAEPA,EAAOpV,OAAOj0B,OAAQ,YAAa,CAClC6N,QAASgyI,GAAiBv5I,KAAK4kB,IAAA,CAAc5f,KAAM4f,OAErD,CAKO,IAAAwgB,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdxC,EAASwC,EAAOxC,OAChBjD,EAASyF,EAAO3nC,MAAMkiC,OAKtBm9G,EAHkCf,GAA2B32G,EAAOpV,OAAOviB,IAAK,sBAGrDrC,QAChC6b,GAAUjY,GAAaiY,EAAO5f,QAAWw0I,GAAW50H,EAAO5f,KAAMu7B,KAI5Dm6G,EAAmBD,EAAiBpgH,MAAMzV,KAAYA,EAAO2uB,YAGnEjW,EAAOZ,OAAQ,SAAU,CAAEgmD,gBAAiB,cAC5C3/C,EAAO3nC,MAAMkiC,OAAO2lD,uBAAwB,YAAa,CAAE03D,cAAc,IAEpED,EACJ33G,EAAO1hC,WAAW21E,qBAmGrB,SAA+BzvE,GAC9B,MAAMozB,EAA4C,CAAC,EAEnD,UAAY/V,KAAUrd,EACrBozB,EAAM/V,EAAO5f,MAAS,CACrBjL,IAAK,QACLyB,MAAOopB,EAAO2uB,WAIhB,MAAMroC,EAAa,CAClB9P,MAAO,CACNrB,IAAK,YACLqU,OAAQ7G,EAAQvH,KAAK4kB,GAAUA,EAAO5f,QAEvC21B,QAGD,OAAOzvB,CACR,CAtH2C0vI,CAAsBH,IAG9D13G,EAAO1hC,WAAWurF,IAAK,YAAa5V,qBAwBvC,SAAwCzvE,GACvC,MAAMozB,EAAmF,CAAC,EAE1F,UAAY,KAAE31B,KAAUuC,EACvBozB,EAAM31B,GAAS,CACdjL,IAAK,QACLyB,MAAO,CACN,aAAcwJ,IAKjB,MAAMkG,EAAa,CAClB9P,MAAO,CACNrB,IAAK,YACLqU,OAAQ7G,EAAQvH,KAAK4kB,GAAUA,EAAO5f,QAEvC21B,QAGD,OAAOzvB,CACR,CA7C6D2vI,CAA+BJ,IAG1F,MAAMK,EA+CR,SAAuCvzI,GACtC,MAAM2xG,EAAc,GAEpB,UAAY,KAAEl0G,KAAUuC,EACvB2xG,EAAYt2G,KAAM,CACjB+3B,KAAM,CACL5gC,IAAK,QACLyB,MAAO,CACN,aAAcwJ,IAGhB5J,MAAO,CACNrB,IAAK,YACLyB,MAAOwJ,KAKV,OAAOk0G,CACR,CAlEkC6hC,CAA8BN,GAG9D,UAAYvvI,KAAc4vI,EACzB/3G,EAAO1hC,WAAWurF,IAAK,UAAW5V,qBAAsB9rE,GAGzD,MAAM8vI,EAgER,SAA8CzzI,GAC7C,MAAM2xG,EAAc,GAEpB,UAAY,KAAEl0G,KAAUuC,EACvB2xG,EAAYt2G,KAAM,CACjB+3B,KAAM,CACL5gC,IAAK,QACLyB,MAAOwJ,GAER5J,MAAO,CACNrB,IAAK,YACLyB,MAAOwJ,KAKV,OAAOk0G,CACR,CAjFyC+hC,CAAqCR,GAG5E,UAAYvvI,KAAc8vI,EACzBj4G,EAAO1hC,WAAWurF,IAAK,UAAW5V,qBAAsB9rE,GAGzD63B,EAAOksE,SAAS/9F,IAAK,YAAa,IAAIgpI,GAAkBn3G,GACzD,ECzDD,MAAMm4G,GAAW,IAAIxmI,IAAK,CACzB,CAAE,OAAQ,GAAMg+F,WAChB,CAAE,QAAS,GAAME,YACjB,CAAE,SAAU,GAAMD,aAClB,CAAE,UAAW,GAAME,gBASL,MAAMsoC,WAAoB,GAcxC,yBAAWC,GACV,MAAMp9I,EAAIgF,KAAK+/B,OAAO/kC,EAEtB,MAAO,CACN,KAAQA,EAAG,cACX,MAASA,EAAG,eACZ,OAAUA,EAAG,gBACb,QAAWA,EAAG,WAEhB,CAKA,qBAAkBinC,GACjB,MAAO,aACR,CAKO,IAAAG,GACN,MACM79B,EAAUmyI,GADD12I,KAAK+/B,OAC8BpV,OAAOviB,IAAK,sBAE9D7D,EACEvH,KAAK4kB,GAAUA,EAAO5f,OACtB+D,OAAQ4D,IACR/L,SAASgkB,GAAU5hB,KAAKq4I,WAAYz2H,KAEtC5hB,KAAKs4I,oBAAqB/zI,GAC1BvE,KAAKu4I,gBAAiBh0I,EACvB,CAOQ,UAAA8zI,CAAYz2H,GACJ5hB,KAAK+/B,OAEb+E,GAAGq2E,iBAAiBjtG,IAAK,aAAc0T,KAAW2b,GAAUv9B,KAAKo7G,cAAe79E,EAAQ3b,IAChG,CASQ,aAAAw5F,CACP79E,EACA3b,EACA42H,EAA+B,CAAC,GAEhC,MAAMz4G,EAAS//B,KAAK+/B,OACdqB,EAA4BrB,EAAOksE,SAAS7jG,IAAK,aACjD2wG,EAAa,IAAI,GAAYx7E,GAoBnC,OAlBAw7E,EAAWnnG,IAAK,CACf6mC,MAAOz4C,KAAKo4I,sBAAuBx2H,GACnC0xF,KAAM4kC,GAAS9vI,IAAKwZ,GACpB4xF,SAAS,EACTN,cAAc,KACXslC,IAIJz/B,EAAW/xG,KAAM,aAAczH,GAAI6hC,GACnC23E,EAAW/xG,KAAM,QAASzH,GAAI6hC,EAAS,SAAS5oC,GAASA,IAAUopB,IAGnE5hB,KAAK4P,SAAUmpG,EAAY,WAAW,KACrCh5E,EAAOkB,QAAS,YAAa,CAAEzoC,MAAOopB,IACtCme,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAGrBs5E,CACR,CAOQ,mBAAAu/B,CAAqB/zI,GAC5B,MAAMw7B,EAAS//B,KAAK+/B,OACJA,EAAO+E,GAAGq2E,iBAElBjtG,IAAK,aAAaqvB,IACzB,MAAM4nF,EAAeC,GAAgB7nF,GAC/B6pF,EAAiD,QAA/B7pF,EAAOjL,oBAAgC,IAAM,IAC/Dt3B,EAAIuiC,EAAOviC,EAGjBqqH,GACCF,GACA,IAAM5gH,EAAQvH,KAAK4kB,GAAU5hB,KAAKo7G,cAAe79E,EAAQ3b,EAAO5f,KAAM,CAAEolH,uBACxE,CACCgC,qCAAqC,EACrCI,YAAY,EACZzR,UAAW/8G,EAAG,4BAKhBmqH,EAAapM,WAAWnnG,IAAK,CAC5B6mC,MAAOz9C,EAAG,kBACVw4G,SAAS,IAGV2R,EAAavrF,eAAgB,CAC5Br0B,WAAY,CACXs5B,MAAO,2BAKT,MAAM45G,EAAkD,QAApCl7G,EAAOtO,yBAAqCipH,GAAS9vI,IAAK,SAAY8vI,GAAS9vI,IAAK,QAClGg5B,EAA4BrB,EAAOksE,SAAS7jG,IAAK,aAcvD,OAXA+8G,EAAapM,WAAW/xG,KAAM,QAASzH,GAAI6hC,EAAS,SAAS5oC,GAAS0/I,GAAS9vI,IAAK5P,IAAWigJ,IAG/FtzB,EAAan+G,KAAM,aAAczH,GAAI6hC,EAAS,aAI9CphC,KAAK4P,SAAUu1G,EAAc,WAAW,KACvCplF,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAGrB0lF,CAAY,GAErB,CAOQ,eAAAozB,CAAiBh0I,GACxB,MAAMw7B,EAAS//B,KAAK+/B,OAEpBA,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,qBAAqBqvB,IACpD,MAAM6D,EAA4BrB,EAAOksE,SAAS7jG,IAAK,aACjDpN,EAAIuiC,EAAOviC,EACX8qI,EAAW,IAAIgF,GAAiBvtG,GAChC0kF,EAAW,IAAIipB,GAAqB3tG,GAE1CuoG,EAAS9+H,KAAM,aAAczH,GAAI6hC,GAEjC6gF,EAASrwG,IAAK,CACbmmG,UAAW/8G,EAAG,kBACdg4G,KAAM,SAGP8yB,EAAS/sB,WAAWnnG,IAAK,CACxB6mC,MAAOz9C,EAAG,oBAGX,UAAY4mB,KAAUrd,EAAU,CAC/B,MAAMylH,EAAe,IAAIyb,GAAyBloG,EAAQuoG,GACpD/sB,EAAa,IAAI,GAA+Bx7E,GAEtDw7E,EAAWn/E,eAAgB,CAC1Br0B,WAAY,CACX,eAAgBwzG,EAAWl7E,aAAat+B,GAAI,WAI9Cw5G,EAAWxnG,SAAU,WAAYhS,GAAIumI,GACrC/sB,EAAWnnG,IAAK,CACf6mC,MAAOz4C,KAAKo4I,sBAAuBx2H,EAAO5f,MAC1CsxG,KAAM4kC,GAAS9vI,IAAKwZ,EAAO5f,QAG5B+2G,EAAWtpG,GAAI,WAAW,KACzBswB,EAAOkB,QAAS,YAAa,CAAEzoC,MAAOopB,EAAO5f,OAE7C+9B,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAG5Bs5E,EAAW/xG,KAAM,QAASzH,GAAI6hC,EAAS,SAAS5oC,GAASA,IAAUopB,EAAO5f,OAC1E+2G,EAAW/xG,KAAM,aAAczH,GAAI6hC,EAAS,aAE5C4oF,EAAa9xG,SAAShK,IAAK6qG,GAC3BkJ,EAASruF,MAAM1lB,IAAK87G,EACrB,CAIA,OAFA8b,EAAS9jB,UAAU9pG,SAAShK,IAAK+zG,GAE1B6jB,CAAQ,GAEjB,ECrNc,MAAM4S,GAIJtgJ,MAKAugJ,MAKRC,UAMAC,MAKAC,OAAuB,KAKdC,gBAKAC,yBAOjB,WAAAj3I,CAAa3J,EAAcugJ,EAAgB,IAC1C34I,KAAK5H,MAAQA,EACb4H,KAAK64I,MAAQ,EACb74I,KAAK24I,MAAQA,EACb34I,KAAK44I,WAAY,EAQjB54I,KAAK+4I,gBAAkB,CAAEvjI,EAAKu6D,KACxBA,EAAMikB,SAAWjkB,EAAM6X,YAAc7X,IAAU/vE,KAAK84I,QACxD94I,KAAKi5I,QAAQ,EACd,EAGDj5I,KAAKg5I,yBAA2B,KAC/Bh5I,KAAKi5I,QAAQ,EAGdj5I,KAAK5H,MAAMoL,SAASiM,GAAyB,SAAUzP,KAAK+4I,iBAE5D/4I,KAAK5H,MAAMoL,SAASm9B,UAAUlxB,GAAkC,eAAgBzP,KAAKg5I,0BACrFh5I,KAAK5H,MAAMoL,SAASm9B,UAAUlxB,GAAkC,mBAAoBzP,KAAKg5I,yBAC1F,CAMA,SAAWjpE,GAKV,OAJM/vE,KAAK84I,SACV94I,KAAK84I,OAAS94I,KAAK5H,MAAM2vG,YAAa,CAAE7T,UAAU,KAG5Cl0F,KAAK84I,MACb,CAMA,QAAW9kI,GACV,OAAOhU,KAAK64I,KACb,CAQO,KAAA37H,CAAOg6E,GACbl3F,KAAK64I,OAAS3hD,EAETl3F,KAAK64I,OAAS74I,KAAK24I,OACvB34I,KAAKi5I,QAAQ,EAEf,CAKA,YAAWC,GACV,OAAOl5I,KAAK44I,SACb,CAKO,IAAAO,GACNn5I,KAAK44I,WAAY,CAClB,CAKO,MAAAQ,GACNp5I,KAAK44I,WAAY,CAClB,CAKO,OAAA3wH,GACNjoB,KAAK5H,MAAMoL,SAAS8I,IAAK,SAAUtM,KAAK+4I,iBACxC/4I,KAAK5H,MAAMoL,SAASm9B,UAAUr0B,IAAK,eAAgBtM,KAAKg5I,0BACxDh5I,KAAK5H,MAAMoL,SAASm9B,UAAUr0B,IAAK,mBAAoBtM,KAAKg5I,yBAC7D,CAOQ,MAAAC,CAAQI,GAAsB,GAC/Br5I,KAAKk5I,WAAYG,IACtBr5I,KAAK84I,OAAS,KACd94I,KAAK64I,MAAQ,EAEf,ECnKc,MAAMS,WAA0Bh5G,GAI7Bi5G,QAQjB,WAAAx3I,CAAag+B,EAAgBy5G,GAC5B3rI,MAAOkyB,GAEP//B,KAAKu5I,QAAU,IAAIb,GAAc34G,EAAO3nC,MAAOohJ,GAG/Cx5I,KAAKugC,4BAA6B,CACnC,CAKA,UAAW1kB,GACV,OAAO7b,KAAKu5I,OACb,CAKgB,OAAAtxH,GACfpa,MAAMoa,UAENjoB,KAAKu5I,QAAQtxH,SACd,CAUgB,OAAAgZ,CAAS18B,EAAoC,CAAC,GAC7D,MAAMnM,EAAQ4H,KAAK+/B,OAAO3nC,MACpB6f,EAAM7f,EAAMoL,SACZ60B,EAAO9zB,EAAQ8zB,MAAQ,GACvBohH,EAAiBphH,EAAK//B,OAE5B,IAAIqoC,EAA2C1oB,EAAI0oB,UASnD,GAPKp8B,EAAQo8B,UACZA,EAAYp8B,EAAQo8B,UACTp8B,EAAQwiB,QACnB4Z,EAAYvoC,EAAMwpD,gBAAiBr9C,EAAQwiB,SAItC3uB,EAAM2oC,UAAWJ,GACtB,OAGD,MAAM+4G,EAAcn1I,EAAQm1I,YAE5BthJ,EAAM63E,cAAejwE,KAAKu5I,QAAQxpE,OAAOhqC,IACxC/lC,KAAKu5I,QAAQJ,OAIb,MAAMQ,EAAsBh5I,MAAMrB,KAAM2Y,EAAI0oB,UAAUyP,iBAEtDh4C,EAAM4nG,cAAer/D,GAEhBtI,GACJjgC,EAAMitG,cAAet/D,EAAO0X,WAAYplB,EAAMshH,GAAuBh5G,GAGjE+4G,EACJ3zG,EAAOwX,aAAcm8F,GACT/4G,EAAUpyB,GAAI,sBAC1Bw3B,EAAOwX,aAAc5c,GAGtB3gC,KAAKu5I,QAAQH,SAEbp5I,KAAKu5I,QAAQr8H,MAAOu8H,EAAgB,GAEtC,ECpFD,MAAMG,GAAqB,CAO1B,aAIA,yBAMc,MAAMC,WAA2BnlF,GAK/B0G,cAKhB,WAAAr5D,CAAa41B,GACZ9pB,MAAO8pB,GAEP33B,KAAKo7D,cAAgBzjC,EAAK8jC,YAAaX,IAKlC,EAAI7xD,WACR2wI,GAAmBh6I,KAAM,yBAG1B,MAAM09D,EAAe3lC,EAAKn0B,SAE1B85D,EAAa7tD,GAA4B,eAAe,CAAE+F,EAAK1S,KAC9D,IAAM9C,KAAKmgC,UACV,OAGD,MAAQr9B,KAAMu1B,EAAI,aAAEmlC,EAAY,UAAEC,EAAS,SAAEzI,GAAalyD,EAE1D,IAAM82I,GAAmBznH,SAAUsrC,GAClC,OAKDz9D,KAAKo7D,cAAcjE,QAEnB,MAAMrmD,EAAY,IAAI1E,EAAWkxD,EAAc,cAE/CA,EAAa1sD,KAAME,EAAW,IAAIikD,GAAcp9B,EAAMq9B,EAAU,CAC/D38B,OACAsI,UAAWhJ,EAAKiqB,gBAAiB4b,MAK7B1sD,EAAUzE,KAAKF,QACnBqJ,EAAInJ,MACL,IAIDixD,EAAa7tD,GAAqC,kBAAkB,CAAE+F,GAAO1S,OAAMkyD,eAI5Eh1D,KAAKmgC,YAAa,EAAIl3B,WAKtBnG,GA0BNw6D,EAAa1sD,KAAM,aAAc,IAAImkD,GAAcp9B,EAAMq9B,EAAU,CAClE38B,KAAMv1B,EACN69B,UAAW28B,EAAa38B,YACpB,GACH,CAAE3zB,SAAU,UAChB,CAKO,OAAAgb,GAAiB,CAKjB,aAAAotC,GAAuB,EC5HhB,MAAM0kF,WAAc,GAIlC,qBAAkB73G,GACjB,MAAO,OACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACfu/B,EAAOoI,EAAOotE,QAAQx1E,KACtB0lD,EAAiBjlF,EAAMoL,SAASm9B,UAEtChJ,EAAK2mC,YAAau7E,IAGlB,MAAME,EAAoB,IAAIT,GAAmBv5G,EAAQA,EAAOpV,OAAOviB,IAAK,oBAAuB,IAGnG23B,EAAOksE,SAAS/9F,IAAK,aAAc6rI,GACnCh6G,EAAOksE,SAAS/9F,IAAK,QAAS6rI,GAE9B/5I,KAAK4P,SAAuC+nB,EAAKn0B,SAAU,cAAc,CAAEgS,EAAK1S,KAGzE60B,EAAKn0B,SAASyjC,aACnBnkC,EAAKqzB,iBAGN,MAAM,KAAEkC,EAAMsI,UAAWigB,EAAe84F,YAAaM,GAAoBl3I,EAGnEm3I,EAAct5I,MAAMrB,KAAMshD,EAActJ,aAAct6C,KAAKuzD,GACzDxwB,EAAOotE,QAAQ7lC,OAAOL,aAAc1W,KAG5C,IAAI0sC,EAAa5kE,EAIjB,GAAK,EAAIpvB,UAAY,CACpB,MAAMixI,EAAev5I,MAAMrB,KAAM26I,EAAa,GAAI5jG,YAAa1nB,QAAQ,CAAEwrH,EAAWh7I,IAC5Eg7I,GAAch7I,EAAKoP,GAAI,cAAiBpP,EAAK2D,KAAO,KACzD,IAEEo3I,IACCA,EAAa5hJ,QAAU2kG,EAAW3kG,OACjC2kG,EAAWzuC,WAAY0rF,KAC3Bj9C,EAAaA,EAAWrgG,UAAWs9I,EAAa5hJ,QAC9C2hJ,EAAa,GAAaxpH,MAAQwpH,EAAa,GAAIxpH,MAAMgkB,aAAcylG,EAAa5hJ,SAGlF4hJ,EAAa1rF,WAAYyuC,KAE3Bg9C,EAAa,GAAaxpH,MAAQwpH,EAAa,GAAIxpH,MAAMgkB,aAAcwoD,EAAW3kG,QACpF2kG,EAAa,IAIjB,CAEA,MAAMm9C,EAAyE,CAC9E/hH,KAAM4kE,EACNt8D,UAAWvoC,EAAMwpD,gBAAiBq4F,IAW9BD,IACJI,EAAsBV,YAAc35G,EAAOotE,QAAQ7lC,OAAOL,aAAc+yE,IAGzEj6G,EAAOkB,QAAS,aAAcm5G,GAE9BziH,EAAKwnC,sBAAsB,IAGvB,EAAIl2D,UAIRjJ,KAAK4P,SAAU+nB,EAAKn0B,SAAU,WAAW,CAAEgS,EAAK1S,MAC1Cu6E,EAAeloC,aAA+B,KAAhBryC,EAAKmrB,SAAmB0J,EAAKn0B,SAASyjC,aAczEozG,GAAwBjiJ,EAAO2hJ,EAAmB,IAKnD/5I,KAAK4P,SAAU+nB,EAAKn0B,SAAU,oBAAoB,KAC5C65E,EAAeloC,aAcpBklG,GAAwBjiJ,EAAO2hJ,EAAmB,GAGrD,EAGD,SAASM,GAAwBjiJ,EAAc2hJ,GAM9C,IAAMA,EAAkB55G,UACvB,OAGD,MAAMtkB,EAASk+H,EAAkBl+H,OAEjCA,EAAOs9H,OAEP/gJ,EAAM63E,cAAep0D,EAAOk0D,OAAO,KAClC33E,EAAM4nG,cAAe5nG,EAAMoL,SAASm9B,UAAW,IAGhD9kB,EAAOu9H,QACR,CCxJe,MAAMkB,WAAsBh6G,GAK1B9Z,UAKC+yH,QAQjB,WAAAx3I,CAAag+B,EAAgBvZ,GAC5B3Y,MAAOkyB,GAEP//B,KAAKwmB,UAAYA,EACjBxmB,KAAKu5I,QAAU,IAAIb,GAAc34G,EAAO3nC,MAAO2nC,EAAOpV,OAAOviB,IAAK,oBAGlEpI,KAAKugC,4BAA6B,CACnC,CAKA,UAAW1kB,GACV,OAAO7b,KAAKu5I,OACb,CAagB,OAAAt4G,CAAS18B,EAIrB,CAAC,GACJ,MAAMnM,EAAQ4H,KAAK+/B,OAAO3nC,MACpB6f,EAAM7f,EAAMoL,SAElBpL,EAAM63E,cAAejwE,KAAKu5I,QAAQxpE,OAAOhqC,IACxC/lC,KAAKu5I,QAAQJ,OAEb,MAAMx4G,EAAYoF,EAAO6b,gBAAiBr9C,EAAQo8B,WAAa1oB,EAAI0oB,WAGnE,IAAMvoC,EAAM2oC,UAAWJ,GACtB,OAGD,MAAM45G,EAAWh2I,EAAQg2I,UAAY,EAO/Br6C,EAA0Bv/D,EAAUwU,YAY1C,GATKxU,EAAUwU,aACd/8C,EAAMqoG,gBAAiB9/D,EAAW,CACjCna,UAAWxmB,KAAKwmB,UAChBgC,KAAMjkB,EAAQikB,KACdq9E,wBAAwB,IAKrB7lG,KAAKw6I,4CAA6CD,GAGtD,YAFAv6I,KAAKy6I,mCAAoC10G,GAO1C,GAAK/lC,KAAK06I,sCAAuC/5G,EAAW45G,GAG3D,YAFAv6I,KAAK+/B,OAAOkB,QAAS,YAAa,CAAEN,cAMrC,GAAKA,EAAUwU,YACd,OAGD,IAAI+hD,EAAc,EAElBv2D,EAAU4W,gBAAiBysB,uBAAuBpmE,SAASmpB,IAC1DmwE,GAAevyF,GACdoiB,EAAMiuB,UAAW,CAAEpC,kBAAkB,EAAME,kBAAkB,EAAMD,SAAS,IAC5E,IAUFz6C,EAAM4nG,cAAer/D,EAAW,CAC/Bu/D,0BACA15E,UAAWxmB,KAAKwmB,YAGjBxmB,KAAKu5I,QAAQr8H,MAAOg6E,GAEpBnxD,EAAOwX,aAAc5c,GAErB3gC,KAAKu5I,QAAQH,QAAQ,GAEvB,CAkBQ,2CAAAoB,CAA6CD,GAEpD,GAAKA,EAAW,EACf,OAAO,EAGR,MAAMniJ,EAAQ4H,KAAK+/B,OAAO3nC,MAEpBuoC,EADMvoC,EAAMoL,SACIm9B,UAChB+/C,EAAetoF,EAAMkiC,OAAO4hD,gBAAiBv7C,GAMnD,KAF4BA,EAAUwU,aAAexU,EAAUssC,sBAAuByT,IAGrF,OAAO,EAGR,IAAMtoF,EAAMkiC,OAAOq4C,WAAY+N,EAAc,aAC5C,OAAO,EAGR,MAAMi6D,EAAyBj6D,EAAav5C,SAAU,GAKtD,OAAKwzG,IAA0BA,EAAuBpsI,GAAI,UAAW,YAKtE,CAOQ,kCAAAksI,CAAoC10G,GAC3C,MAAM3tC,EAAQ4H,KAAK+/B,OAAO3nC,MAEpBuoC,EADMvoC,EAAMoL,SACIm9B,UAChB+/C,EAAetoF,EAAMkiC,OAAO4hD,gBAAiBv7C,GAC7Co3C,EAAYhyC,EAAOzgC,cAAe,aAExCygC,EAAO9/B,OAAQ8/B,EAAO4b,cAAe++B,IACrC36C,EAAOrgC,OAAQqyE,EAAW2I,GAE1B36C,EAAOwX,aAAcw6B,EAAW,EACjC,CASQ,qCAAA2iE,CAAuC/5G,EAAsB45G,GACpE,MAAMniJ,EAAQ4H,KAAK+/B,OAAO3nC,MAG1B,GAAKmiJ,EAAW,GAAuB,YAAlBv6I,KAAKwmB,UACzB,OAAO,EAGR,IAAMma,EAAUwU,YACf,OAAO,EAGR,MAAM1tB,EAAWkZ,EAAUE,mBACrB6/C,EAAetoF,EAAMkiC,OAAO4hD,gBAAiBz0D,GAC7CkzH,EAAyBj6D,EAAav5C,SAAU,GAItD,OAAK1f,EAAS7oB,QAAU+7I,MAKlBh6G,EAAUssC,sBAAuB0tE,OAKjCviJ,EAAMkiC,OAAOq4C,WAAY+N,EAAc,cAKT,aAA/Bi6D,EAAuB34I,MAK7B,ECzOD,MACM44I,GAAc,OAEdC,GAAmB,YACnBC,GAAkB,WAClBC,GAAiB,UAOjBC,GAAsD,CAI3Dh7C,cAAe,CACdx3E,KAAMqyH,GAINr0H,UAAWs0H,IAGZG,sBAAuB,CAetBzyH,KArCwB,YAsCxBhC,UAAWs0H,IAIZI,mBAAoB,CACnB1yH,KAAMoyH,GACNp0H,UAAWs0H,IAGZK,uBAAwB,CACvB3yH,KAAMqyH,GACNr0H,UAAWs0H,IAGZM,uBAAwB,CACvB5yH,KAAMqyH,GACNr0H,UAAWs0H,IAOZO,qBAAsB,CAUrB7yH,KAzEuB,YA0EvBhC,UAAWu0H,IAGZO,kBAAmB,CAClB9yH,KAAMoyH,GACNp0H,UAAWu0H,IAKZQ,sBAAuB,CACtB/yH,KAAMqyH,GACNr0H,UAAWu0H,IAIZS,sBAAuB,CACtBhzH,KAAMqyH,GACNr0H,UAAWu0H,KAOE,MAAMU,WAAuB/mF,GAI3C,WAAA3yD,CAAa41B,GACZ9pB,MAAO8pB,GAEP,MAAMn0B,EAAWm0B,EAAKn0B,SAQtB,IAAI+2I,EAAW,EAEf/2I,EAASiM,GAAI,WAAW,KACvB8qI,GAAA,IAGD/2I,EAASiM,GAAI,SAAS,KACrB8qI,EAAW,CAAC,IAGb/2I,EAASiM,GAA4B,eAAe,CAAE+F,EAAK1S,KAC1D,IAAM9C,KAAKmgC,UACV,OAGD,MAAM,aAAEq9B,EAAY,SAAExI,EAAQ,UAAEyI,GAAc36D,EACxC44I,EAAkBV,GAAoBv9E,GAE5C,IAAMi+E,EACL,OAGD,MAAMjvF,EAAuC,CAC5CjmC,UAAWk1H,EAAgBl1H,UAC3BgC,KAAMkzH,EAAgBlzH,KACtB+xH,YAGI9tF,EAAWjkC,MAAQqyH,KACvBpuF,EAAWkvF,kBAAoBhkH,EAAKiqB,gBAAiB4b,EAAc,KAKjD,0BAAdC,IAEC,EAAIx0D,YACRwjD,EAAW8tF,SAAW,GAoJ3B,SAAgC/8E,GAG/B,GAA4B,GAAvBA,EAAallE,QAAeklE,EAAc,GAAIroB,YAClD,OAAO,EAGR,MAAMmL,EAASkd,EAAc,GAAIxoB,UAAW,CAC3CxuB,UAAW,WACXosB,kBAAkB,EAClBE,kBAAkB,IAGnB,IAAInuC,EAAQ,EAEZ,UAAY,aAAEyvC,EAAY,KAAEn0C,KAAUqgD,EAAS,CAC9C,GAAKlM,EAAax1C,OAAO2P,GAAI,SAAY,CACxC,MAAMzL,EAAOsxC,EAAax1C,OAAOkE,KAC3BuZ,EAAS+3B,EAAa/3B,OAG5B,GACCwa,GAAuB/zB,EAAMuZ,IAC7B2a,GAAwBl0B,EAAMuZ,IAC9B8a,GAAuBr0B,EAAMuZ,GAE7B,SAGD1X,GACD,MAAY1E,EAAKsO,GAAI,qBAAwBtO,EAAKsO,GAAI,kBACrD5J,IAGD,GAAKA,EAAQ,EACZ,OAAO,CAET,CAEA,OAAO,CACR,CAxLSi3I,CAAuBp+E,KAC3B/Q,EAAWjkC,KAAOqyH,GAClBpuF,EAAWkvF,kBAAoBhkH,EAAKiqB,gBAAiB4b,KAIvD,MAAM1sD,EAAY,IAAIyoC,GAAmB/1C,EAAU,SAAUg6D,EAAc,IAE3Eh6D,EAASoN,KAAME,EAAW,IAAIikD,GAAcp9B,EAAMq9B,EAAUvI,IAIvD37C,EAAUzE,KAAKF,QACnBqJ,EAAInJ,MACL,IAII,EAAInD,SA0DX,SAAiC21D,GAChC,MAAMlnC,EAAOknC,EAASlnC,KAChBn0B,EAAWm0B,EAAKn0B,SAEtB,IAAIq4I,EAAgC,KAChCC,GAAsB,EAmD1B,SAASC,EAAiB9tH,GACzB,OAAOA,GAAWP,GAAS+B,WAAaxB,GAAWP,GAAS5b,MAC7D,CAEA,SAASkqI,EAAoB/tH,GAC5B,OAAOA,GAAWP,GAAS+B,UAAYqrH,GAAkBC,EAC1D,CAvDAv3I,EAASiM,GAA8B,WAAW,CAAE+F,GAAOyY,cAC1D4tH,EAAiB5tH,EACjB6tH,GAAsB,CAAK,IAG5Bt4I,EAASiM,GAA4B,SAAS,CAAE+F,GAAOyY,UAAS+mC,eAC/D,MAAMr0B,EAAYn9B,EAASm9B,UACrBs7G,EAAwBp9E,EAAS1+B,WACtClS,GAAW4tH,GACXE,EAAiB9tH,KAChB0S,EAAUwU,cACV2mG,EAIF,GAFAD,EAAiB,KAEZI,EAAwB,CAC5B,MAAMC,EAAcv7G,EAAU4W,gBACxBzmC,EAAY,IAAIyoC,GAAmB/1C,EAAU,SAAU04I,GACvDzvF,EAAuC,CAC5CjkC,KAAMqyH,GACNr0H,UAAWw1H,EAAoB/tH,GAC/B0tH,kBAAmBh7G,GAGpBn9B,EAASoN,KAAME,EAAW,IAAIikD,GAAcp9B,EAAMq9B,EAAUvI,GAC7D,KAGDjpD,EAASiM,GAA4B,eAAe,CAAE+F,GAAOioD,gBAC5D,MAAMi+E,EAAkBV,GAAoBv9E,GACds+E,EAAiBF,IAC9CH,GACAA,EAAgBl1H,WAAaw1H,EAAoBH,KAGjDC,GAAsB,EACvB,GACE,CAAE9uI,SAAU,SAEfxJ,EAASiM,GAA4B,eAAe,CAAE+F,GAAOioD,YAAW36D,WACvC+4I,GAAkBnuH,GAAS5b,QAC7C,cAAb2rD,GACQ,KAAR36D,GAGA0S,EAAInJ,MACL,GACE,CAAEW,SAAU,QAShB,CAxHGmvI,CAAwBn8I,KAE1B,CAKO,OAAAgoB,GAAiB,CAKjB,aAAAotC,GAAuB,ECvMhB,MAAMgnF,WAAe,GAI3BC,iBAKR,qBAAkBp6G,GACjB,MAAO,QACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdpI,EAAOoI,EAAOotE,QAAQx1E,KACtB2lC,EAAe3lC,EAAKn0B,SACpB84I,EAAgBv8G,EAAO3nC,MAAMoL,SAEnCm0B,EAAK2mC,YAAam9E,IAElBz7I,KAAKq8I,kBAAmB,EAExB,MAAME,EAAuB,IAAIjC,GAAev6G,EAAQ,WAGxDA,EAAOksE,SAAS/9F,IAAK,gBAAiBquI,GACtCx8G,EAAOksE,SAAS/9F,IAAK,gBAAiBquI,GAEtCx8G,EAAOksE,SAAS/9F,IAAK,SAAU,IAAIosI,GAAev6G,EAAQ,aAE1D//B,KAAK4P,SAAmC0tD,EAAc,UAAU,CAAE9nD,EAAK1S,KAGhEw6D,EAAar2B,aAClBnkC,EAAKqzB,iBAGN,MAAM,UAAE3P,EAAS,SAAE+zH,EAAQ,kBAAEoB,EAAiB,KAAEnzH,GAAS1lB,EACnDwiC,EAA4B,YAAd9e,EAA0B,gBAAkB,SAC1Dg2H,EAA2D,CAAEjC,YAEnE,GAAa,aAAR/xH,EAAsB,CAC1B,MAAMyxH,EAAct5I,MAAMrB,KAAMq8I,EAAmBrkG,aAAct6C,KAAKuzD,GAC9DxwB,EAAOotE,QAAQ7lC,OAAOL,aAAc1W,KAG5CisF,EAAY77G,UAAYZ,EAAO3nC,MAAMwpD,gBAAiBq4F,EACvD,MACCuC,EAAYh0H,KAAOA,EAGpBuX,EAAOkB,QAASqE,EAAak3G,GAE7B7kH,EAAKwnC,sBAAsB,GACzB,CAAEnyD,SAAU,QAEVhN,KAAK+/B,OAAOsC,QAAQp0B,IAAK,iBAC7BjO,KAAK4P,SAAmC0tD,EAAc,UAAU,CAAE9nD,EAAK1S,KACjE9C,KAAKq8I,kBAAsC,YAAlBv5I,EAAK0jB,WAA4C,GAAjB1jB,EAAKy3I,UAA8B,aAAbz3I,EAAK0lB,OACxFxoB,KAAKq8I,kBAAmB,EAExBt8G,EAAOkB,QAAS,QAEhBn+B,EAAKqzB,iBACL3gB,EAAInJ,OACL,GACE,CAAEsB,QAAS,aAEd3N,KAAK4P,SAAU0sI,EAAe,UAAU,KACvCt8I,KAAKq8I,kBAAmB,CAAK,IAGhC,CAOO,sBAAAI,GACDz8I,KAAK+/B,OAAOsC,QAAQp0B,IAAK,iBAC7BjO,KAAKq8I,kBAAmB,EAE1B,ECrFc,MAAMK,WAAe,GACnC,mBAAkB95G,GACjB,MAAO,CAAEk3G,GAAOsC,GACjB,CAKA,qBAAkBn6G,GACjB,MAAO,QACR,ECFc,MAAM06G,WAAoCrpI,KAIxClb,MAWTwkJ,aAKCC,UAsBR,WAAA96I,CAAa3J,EAAcwkJ,GAC1B/uI,QAEA7N,KAAK5H,MAAQA,EACb4H,KAAK48I,aAAeA,EACpB58I,KAAK68I,WAAY,EAEjB78I,KAAK4R,IAAK,aAAa,GAGvB5R,KAAKyP,GAA2B,oBAAoB,KAC9CzP,KAAKmgC,UACTngC,KAAK88I,mBAEL98I,KAAK+P,cAAe3X,EAAMoL,SAASm9B,WACnC3gC,KAAK+P,cAAe3X,EAAMoL,UAC3B,IAGDxD,KAAK88I,iBACN,CAKA,YAAWC,GACV,OAAO/8I,KAAK68I,SACb,CAKQ,eAAAC,GACP,MACMt5I,EADQxD,KAAK5H,MACIoL,SAEvBxD,KAAK4P,SAAwCpM,EAASm9B,UAAW,gBAAgB,CAAEnrB,GAAO82D,mBAEnFA,IAKA9oE,EAASm9B,UAAUwU,YASzBn1C,KAAKg9I,6BAA8B,aAR7Bh9I,KAAK+8I,WACT/8I,KAAK4Q,KAAM,aACX5Q,KAAK68I,WAAY,GAM6B,IAGjD78I,KAAK4P,SAA+BpM,EAAU,eAAe,CAAEgS,EAAKu6D,MAC9DA,EAAMkkB,QAAWlkB,EAAMikB,SAI5Bh0F,KAAKg9I,6BAA8B,OAAQ,CAAEjtE,SAAS,GAExD,CAYQ,4BAAAitE,CAA8BC,EAA8Bn6I,EAA0B,CAAC,GAC9F,MAAM1K,EAAQ4H,KAAK5H,MAEbuoC,EADWvoC,EAAMoL,SACIm9B,UAErBu8G,EAAuB9kJ,EAAMqpD,YAAarpD,EAAMkpD,iBAAkB3gB,EAAUlB,MAAO7gC,OAAQ,GAAK+hC,EAAUlB,QAE1G,KAAEpH,EAAI,MAAEtR,GChHD,SAA0BA,EAAc3uB,GACtD,IAAIq4B,EAAQ1J,EAAM0J,MAalB,MAAO,CAAE4H,KAXI13B,MAAMrB,KAAMynB,EAAMiuB,UAAW,CAAElC,kBAAkB,KAAYnkB,QAAQ,CAAEwrH,GAAal6I,UAExFA,EAAKsO,GAAI,UAAatO,EAAKsO,GAAI,cAMhC4rI,EAAYl6I,EAAK6C,MALvB2tB,EAAQr4B,EAAMmpD,oBAAqBthD,GAE5B,KAIN,IAEY8mB,MAAO3uB,EAAMqpD,YAAahxB,EAAO1J,EAAMglB,KACvD,CDiG0BoxG,CAAiBD,EAAsB9kJ,GAEzDglJ,EAAap9I,KAAK48I,aAAcvkH,GAQtC,IANM+kH,GAAcp9I,KAAK+8I,UACxB/8I,KAAK4Q,KAAiC,aAGvC5Q,KAAK68I,YAAcO,EAEdA,EAAa,CACjB,MAAMC,EAAYrmJ,OAAOsyB,OAAQxmB,EAAM,CAAEu1B,OAAMtR,UAGrB,iBAAdq2H,GACXpmJ,OAAOsyB,OAAQ+zH,EAAWD,GAG3Bp9I,KAAK4Q,KAA+B,WAAYqsI,IAAWI,EAC5D,CACD,EEnJD,MAAMC,GAAiE,CAEtEC,UAAW,CAAEj+I,KAAM,MAAOC,GAAI,KAC9Bi+I,oBAAqB,CAAEl+I,KAAM,MAAOC,GAAI,KACxCk+I,UAAW,CAAEn+I,KAAM,OAAQC,GAAI,KAG/Bm+I,QAAS,CAAEp+I,KAAM,qCAAsCC,GAAI,CAAE,KAAM,IAAK,OACxEo+I,SAAU,CAAEr+I,KAAM,qCAAsCC,GAAI,CAAE,KAAM,IAAK,OACzEq+I,UAAW,CAAEt+I,KAAM,qCAAsCC,GAAI,CAAE,KAAM,IAAK,OAC1Es+I,SAAU,CAAEv+I,KAAM,qCAAsCC,GAAI,CAAE,KAAM,IAAK,OACzEu+I,cAAe,CAAEx+I,KAAM,qCAAsCC,GAAI,CAAE,KAAM,IAAK,OAC9Ew+I,gBAAiB,CAAEz+I,KAAM,KAAMC,GAAI,KACnCy+I,mBAAoB,CAAE1+I,KAAM,KAAMC,GAAI,KACtC0+I,SAAU,CAAE3+I,KAAM,KAAMC,GAAI,KAC5B2+I,UAAW,CAAE5+I,KAAM,KAAMC,GAAI,KAC7B4+I,WAAY,CAAE7+I,KAAM,KAAMC,GAAI,KAG9B6+I,mBAAoB,CAAE9+I,KAAM,MAAOC,GAAI,KACvC8+I,OAAQ,CAAE/+I,KAAM,gBAAiBC,GAAI,CAAE,KAAM,IAAK,OAClD++I,OAAQ,CAAEh/I,KAAM,iBAAkBC,GAAI,CAAE,KAAM,IAAK,OAGnDg/I,cAAe,CAAEj/I,KAAMk/I,GAAmB,KAAOj/I,GAAI,CAAE,KAAM,IAAK,KAAM,MACxEk/I,gBAAiB,CAAEn/I,KAAMk/I,GAAmB,KAAQj/I,GAAI,CAAE,KAAM,IAAK,KAAM,MAG3Em/I,kBAAmB,CAAEp/I,KAAMk/I,GAAmB,KAAQj/I,GAAI,CAAE,KAAM,IAAK,KAAM,MAC7Eo/I,oBAAqB,CAAEr/I,KAAMk/I,GAAmB,KAAOj/I,GAAI,CAAE,KAAM,IAAK,KAAM,MAG9Eq/I,gBAAiB,CAAEt/I,KAAMk/I,GAAmB,KAAOj/I,GAAI,CAAE,KAAM,IAAK,KAAM,MAC1Es/I,kBAAmB,CAAEv/I,KAAMk/I,GAAmB,KAAQj/I,GAAI,CAAE,KAAM,IAAK,KAAM,OAIxEu/I,GAAuD,CAC5DC,QAAS,CAAE,YAAa,sBAAuB,aAC/CC,aAAc,CACb,UAAW,WAAY,YAAa,WAAY,gBAChD,kBAAmB,qBAAsB,WACzC,YAAa,cAEdC,WAAY,CAAE,qBAAsB,SAAU,UAC9CC,OAAQ,CAAE,gBAAiB,oBAItBC,GAA0B,CAC/B,UACA,eACA,aACA,UA0HD,SAASC,GAAe9/I,GACvB,MAAoB,iBAARA,EACJ,IAAIuK,OAAQ,IAAK,GAAcvK,QAIhCA,CACR,CAOA,SAAS+/I,GAAa9/I,GACrB,MAAkB,iBAANA,EACJ,IAAM,CAAEA,GACJA,aAAcoB,MAClB,IAAMpB,EAIPA,CACR,CAMA,SAAS+/I,GAAgC73H,GAGxC,OAFiBA,EAASqhB,SAAWrhB,EAASqhB,SAAWrhB,EAAS4sB,WAEjDjE,eAClB,CAOA,SAASouG,GAAmBe,GAC3B,OAAO,IAAI11I,OAAQ,WAAY01I,QAAuBA,QAAuBA,MAC9E,CC3Ke,SAASC,GACvBz/G,EACAoC,EACAiH,EACAq2G,GAEA,IAAI9vI,EACAyxB,EAA0B,KAEG,mBAArBq+G,EACX9vI,EAAW8vI,GAGXr+G,EAAUrB,EAAOksE,SAAS7jG,IAAKq3I,GAE/B9vI,EAAW,KACVowB,EAAOkB,QAASw+G,EAAmB,GAIrC1/G,EAAO3nC,MAAMoL,SAASiM,GAAyB,eAAe,CAAE+F,EAAKu6D,KACpE,GAAK3uC,IAAYA,EAAQjB,YAAcgC,EAAOhC,UAC7C,OAGD,MAAMpZ,EAAQ,GAAOgZ,EAAO3nC,MAAMoL,SAASm9B,UAAU2W,aAErD,IAAMvwB,EAAMouB,YACX,OAGD,GAAK46B,EAAMkkB,SAAWlkB,EAAMikB,QAC3B,OAGD,MAAMlqB,EAAUnpE,MAAMrB,KAAMygC,EAAO3nC,MAAMoL,SAASgmE,OAAOQ,cACnD3wD,EAAQywD,EAAS,GAGvB,GAAuB,GAAlBA,EAAQxxE,QAA8B,WAAf+gB,EAAMlO,MAAmC,SAAdkO,EAAMrX,MAAmC,GAAhBqX,EAAM/gB,OACrF,OAGD,MAAMonJ,EAAgBrmI,EAAMoO,SAAS7oB,OAGrC,GAAK8gJ,EAAcnxI,GAAI,UAAW,aACjC,OAID,GAAKmxI,EAAcnxI,GAAI,UAAW,aACJ,mBAAtBkxI,IACN,CAAE,eAAgB,eAAgB,YAAattH,SAAUstH,GAE1D,OAKD,GAAKr+G,IAA6B,IAAlBA,EAAQ5oC,MACvB,OAGD,MAAMmnJ,EAAYD,EAAcv4G,SAAU,GAEpCy4G,EAAiB7/G,EAAO3nC,MAAMspD,cAAei+F,GAGnD,IAAMC,EAAejqG,cAAe5uB,KAAYA,EAAMglB,IAAI1mB,QAASu6H,EAAe7zG,KACjF,OAGD,MAAMlvC,EAAQusC,EAAQ7vB,KAAMomI,EAAU78I,KAAKsP,OAAQ,EAAG2U,EAAMglB,IAAI1vB,SAG1Dxf,GAKNkjC,EAAO3nC,MAAM63E,eAAelqC,IAE3B,MAAMtV,EAAQsV,EAAOub,iBAAkBo+F,EAAe,GAChD3zG,EAAMhG,EAAOub,iBAAkBo+F,EAAe7iJ,EAAO,GAAIvE,QACzDyuB,EAAQ,IAAI8mD,GAAWp9C,EAAOsb,GAKpC,IAAoB,IAHDp8B,EAAU,CAAE9S,UAGH,CAC3BkpC,EAAO9/B,OAAQ8gB,GAEf,MAAM4pD,EAAiB5wC,EAAO3nC,MAAMoL,SAASm9B,UAAU4W,gBACjDsoG,EAAa95G,EAAO4b,cAAe+9F,IAIpCA,EAAcpzG,SAAYuzG,EAAWx6H,QAASsrD,IAAqBkvE,EAAWlqG,cAAeg7B,GAAgB,IACjH5qC,EAAO9/B,OAAQy5I,EAEjB,CACA34H,EAAMvF,SAENue,EAAO3nC,MAAM63E,eAAe,KACElwC,EAAOsC,QAAQj6B,IAAK,UAEpCq0I,wBAAwB,GACnC,GACD,GAEL,CCtFe,SAASqD,GACvB//G,EACAoC,EACA49G,EACAC,GAEA,IAAIC,EACArD,EAECmD,aAAgCl2I,OACpCo2I,EAASF,EAETnD,EAAemD,EAIhBnD,EAAeA,GAAgB,CAAEvkH,IAChC,IAAIl6B,EACJ,MAAM8H,EAA+B,GAC/Bm6G,EAA+B,GAErC,KAA6C,QAAnCjiH,EAAS8hJ,EAAO1mI,KAAM8e,OAE1Bl6B,GAAUA,EAAO7F,OAAS,IAFoB,CAMnD,IAAI,MACHsM,EACA,EAAKs7I,EACL,EAAKhgJ,EACL,EAAKigJ,GACFhiJ,EAGJ,MAAM25C,EAAQooG,EAAUhgJ,EAAUigJ,EAClCv7I,GAASzG,EAAQ,GAAI7F,OAASw/C,EAAMx/C,OAGpC,MAAM8nJ,EAAW,CAChBx7I,EACAA,EAAQs7I,EAAQ5nJ,QAEX+nJ,EAAS,CACdz7I,EAAQs7I,EAAQ5nJ,OAAS4H,EAAQ5H,OACjCsM,EAAQs7I,EAAQ5nJ,OAAS4H,EAAQ5H,OAAS6nJ,EAAS7nJ,QAGpD2N,EAAOrG,KAAMwgJ,GACbn6I,EAAOrG,KAAMygJ,GAEbjgC,EAAOxgH,KAAM,CAAEgF,EAAQs7I,EAAQ5nJ,OAAQsM,EAAQs7I,EAAQ5nJ,OAAS4H,EAAQ5H,QACzE,CAEA,MAAO,CACN2N,SACAm6G,SAED,GAEDrgF,EAAO3nC,MAAMoL,SAASiM,GAAyB,eAAe,CAAE+F,EAAKu6D,KACpE,GAAKA,EAAMkkB,SAAWlkB,EAAMikB,UAAY7xD,EAAOhC,UAC9C,OAGD,MAAM/nC,EAAQ2nC,EAAO3nC,MACfuoC,EAAYvoC,EAAMoL,SAASm9B,UAGjC,IAAMA,EAAUwU,YACf,OAGD,MAAM20B,EAAUnpE,MAAMrB,KAAMlH,EAAMoL,SAASgmE,OAAOQ,cAC5C3wD,EAAQywD,EAAS,GAGvB,GAAuB,GAAlBA,EAAQxxE,QAA8B,WAAf+gB,EAAMlO,MAAmC,SAAdkO,EAAMrX,MAAmC,GAAhBqX,EAAM/gB,OACrF,OAGD,MAAMmnC,EAAQkB,EAAUlB,MAClBotC,EAAQptC,EAAO7gC,QACf,KAAEy5B,EAAI,MAAEtR,GAkDhB,SAA2BA,EAAc3uB,GACxC,IAAIq4B,EAAQ1J,EAAM0J,MAElB,MAAM4H,EAAO13B,MAAMrB,KAAMynB,EAAMsvB,YAAa1nB,QAAQ,CAAEwrH,EAAWh7I,KAExDA,EAAKoP,GAAI,WAAapP,EAAKoP,GAAI,eAAoBpP,EAAKu7B,aAAc,SAC7EjK,EAAQr4B,EAAMmpD,oBAAqBpiD,GAE5B,IAGDg7I,EAAYh7I,EAAK2D,MACtB,IAEH,MAAO,CAAEu1B,OAAMtR,MAAO3uB,EAAMqpD,YAAahxB,EAAO1J,EAAMglB,KACvD,CAjE0Bu0G,CAAkBloJ,EAAMqpD,YAAarpD,EAAMkpD,iBAAkBurB,EAAO,GAAKptC,GAAUrnC,GACrGmoJ,EAAa3D,EAAevkH,GAC5BmoH,EAAiBC,GAAoB15H,EAAM0J,MAAO8vH,EAAWngC,OAAQhoH,GACrEsoJ,EAAiBD,GAAoB15H,EAAM0J,MAAO8vH,EAAWt6I,OAAQ7N,GAEnEooJ,EAAeloJ,QAAUooJ,EAAepoJ,QAKhDF,EAAM63E,eAAelqC,IAKpB,IAAoB,IAHDi6G,EAAgBj6G,EAAQy6G,GAG3C,CAKA,UAAYz5H,KAAS25H,EAAen1I,UACnCw6B,EAAO9/B,OAAQ8gB,GAGhB3uB,EAAM63E,eAAe,KACSlwC,EAAOsC,QAAQj6B,IAAK,UAEpCq0I,wBAAwB,GAVtC,CAWG,GACD,GAEL,CAMA,SAASgE,GAAoBhwH,EAAiBkwH,EAA8BvoJ,GAC3E,OAAOuoJ,EACL56I,QAAQmT,QAA0B,IAAfA,EAAO,SAAoC,IAAfA,EAAO,KACtDlc,KAAKkc,GACE9gB,EAAMqpD,YAAahxB,EAAMgkB,aAAcv7B,EAAO,IAAOuX,EAAMgkB,aAAcv7B,EAAO,MAE1F,CCCA,SAAS0nI,GAAwC7gH,EAAgBsuB,GAChE,MAAO,CAAEtoB,EAAgBy6G,KAGxB,IAFgBzgH,EAAOksE,SAAS7jG,IAAKimD,GAEvBluB,UACb,OAAO,EAGR,MAAM0gH,EAAc9gH,EAAO3nC,MAAMkiC,OAAO+lD,eAAgBmgE,EAAgBnyF,GAExE,UAAYtnC,KAAS85H,EACpB96G,EAAOtgC,aAAc4oD,GAAc,EAAMtnC,GAK1Cgf,EAAOgjD,yBAA0B16B,EAAc,CAEjD,CC1Ne,MAAM,WAAyB/tB,GAiB7B+tB,aAKhB,WAAAtsD,CAAag+B,EAAgBsuB,GAC5BxgD,MAAOkyB,GAEP//B,KAAKquD,aAAeA,CACrB,CAKgB,OAAA5tB,GACf,MAAMroC,EAAQ4H,KAAK+/B,OAAO3nC,MACpB6f,EAAM7f,EAAMoL,SAElBxD,KAAKxH,MAAQwH,KAAK8gJ,gCAClB9gJ,KAAKmgC,UAAY/nC,EAAMkiC,OAAO8lD,0BAA2BnoE,EAAI0oB,UAAW3gC,KAAKquD,aAC9E,CAsBgB,OAAAptB,CAAS18B,EAAoC,CAAC,GAC7D,MAAMnM,EAAQ4H,KAAK+/B,OAAO3nC,MAEpBuoC,EADMvoC,EAAMoL,SACIm9B,UAChBnoC,OAAiC,IAAvB+L,EAAQw8I,YAA8B/gJ,KAAKxH,MAAQ+L,EAAQw8I,WAE3E3oJ,EAAM0tC,QAAQC,IACb,GAAKpF,EAAUwU,YACT38C,EACJutC,EAAO64D,sBAAuB5+F,KAAKquD,cAAc,GAEjDtoB,EAAOgjD,yBAA0B/oF,KAAKquD,kBAEjC,CACN,MAAMrY,EAAS59C,EAAMkiC,OAAO+lD,eAAgB1/C,EAAU2W,YAAat3C,KAAKquD,cAExE,UAAYtnC,KAASivB,EACfx9C,EACJutC,EAAOtgC,aAAczF,KAAKquD,aAAc71D,EAAOuuB,GAE/Cgf,EAAOr/B,gBAAiB1G,KAAKquD,aAActnC,EAG9C,IAEF,CAQQ,6BAAA+5H,GACP,MAAM1oJ,EAAQ4H,KAAK+/B,OAAO3nC,MACpBkiC,EAASliC,EAAMkiC,OACfqG,EAAYvoC,EAAMoL,SAASm9B,UAEjC,GAAKA,EAAUwU,YACd,OAAOxU,EAAU0P,aAAcrwC,KAAKquD,cAGrC,UAAYtnC,KAAS4Z,EAAU2W,YAC9B,UAAYr3C,KAAQ8mB,EAAMsvB,WACzB,GAAK/b,EAAOo3C,eAAgBzxE,EAAMD,KAAKquD,cACtC,OAAOpuD,EAAKowC,aAAcrwC,KAAKquD,cAKlC,OAAO,CACR,ECvHD,MAAM2yF,GAAO,OAQE,MAAMC,WAAoB,GAIxC,qBAAkBh/G,GACjB,MAAO,aACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAIgF,KAAK+/B,OAAO/kC,EAGtB+kC,EAAO3nC,MAAMkiC,OAAOZ,OAAQ,QAAS,CAAEgmD,gBAAiBshE,KACxDjhH,EAAO3nC,MAAMkiC,OAAO2lD,uBAAwB+gE,GAAM,CACjDrJ,cAAc,EACduJ,aAAa,IAIdnhH,EAAO1hC,WAAWu1E,mBAAoB,CACrCx7E,MAAO4oJ,GACPrpH,KAAM,SACNoyD,WAAY,CACX,IACA5oC,IACC,MAAMggG,EAAahgG,EAAYhX,SAAU,eAEzC,OAAMg3G,IAKa,QAAdA,GAAwB95H,OAAQ85H,IAAgB,KAC7C,CACNn/I,MAAM,EACNs5B,OAAQ,CAAE,gBAPJ,IAWG,KAMdyE,EAAOksE,SAAS/9F,IAAK8yI,GAAM,IAAI,GAAkBjhH,EAAQihH,KAGzDjhH,EAAO4sE,WAAW/6F,IAAK,SAAUovI,IAGjCjhH,EAAOmtE,cAAcF,kBAAmB,CACvCL,WAAY,CACX,CACCl0D,MAAOz9C,EAAG,aACVszB,UAAW,YAIf,ECnEM,SAAS,IAAkB,OACjCyR,EAAM,YAAEuF,EAAW,OAAEnD,EAAM,KAAEmxE,EAAI,MAAE76D,EAAK,UAAEnqB,IAS1C,OAA6EitF,IAC5E,MAAMn6E,EAAUrB,EAAOksE,SAAS7jG,IAAKk9B,GAC/B3N,EAAO,IAAI4jF,EAAax7E,EAAOxC,QAiBrC,OAfA5F,EAAK/lB,IAAK,CACT6mC,QACA66D,OACAhlF,YACA4kF,cAAc,IAGfv7E,EAAK3wB,KAAM,aAAczH,GAAI6hC,EAAS,aAGtCe,EAAOvyB,SAAU+nB,EAAM,WAAW,KACjCoI,EAAOkB,QAASqE,GAChBvF,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAGrB9H,CAAI,CAEb,CClCA,MAAM,GAAO,OAKE,MAAMypH,WAAe,GAInC,qBAAkBn/G,GACjB,MAAO,QACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAOxC,OAAOviC,EAClBomC,EAAUrB,EAAOksE,SAAS7jG,IAAK,IAC/Bi5I,EAAe,GAAkB,CACtCthH,SACAuF,YAAa,GACbnD,OAAQniC,KACRszG,KAAM,GAAM/E,KACZ91D,MAAOz9C,EAAG,QACVszB,UAAW,WAIZyR,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,IAAM,KACrC,MAAM6qG,EAAasoC,EAAc,IAQjC,OANAtoC,EAAWnnG,IAAK,CACf4hG,SAAS,IAGVuF,EAAW/xG,KAAM,QAASzH,GAAI6hC,EAAS,SAEhC23E,CAAU,IAGlBh5E,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,WAAa,IAAM,IAC3CmzI,EAAc,KAEvB,E,eCvDG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ/jH,OCAvB,MAAMgkH,GAAS,SAQA,MAAMC,WAAsB,GAI1C,qBAAkBt/G,GACjB,MAAO,eACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAIgF,KAAK+/B,OAAO/kC,EAGtB+kC,EAAO3nC,MAAMkiC,OAAOZ,OAAQ,QAAS,CAAEgmD,gBAAiB4hE,KACxDvhH,EAAO3nC,MAAMkiC,OAAO2lD,uBAAwBqhE,GAAQ,CACnD3J,cAAc,EACduJ,aAAa,IAGdnhH,EAAO1hC,WAAWu1E,mBAAoB,CACrCx7E,MAAOkpJ,GACP3pH,KAAM,IACNoyD,WAAY,CACX,KACA,CACCzuD,OAAQ,CACP,aAAc,cAOlByE,EAAOksE,SAAS/9F,IAAKozI,GAAQ,IAAI,GAAkBvhH,EAAQuhH,KAG3DvhH,EAAO4sE,WAAW/6F,IAAK,SAAU0vI,IAGjCvhH,EAAOmtE,cAAcF,kBAAmB,CACvCL,WAAY,CACX,CACCl0D,MAAOz9C,EAAG,eACVszB,UAAW,YAIf,ECtED,MCeM,GAAS,SAKA,MAAMkzH,WAAiB,GAIrC,qBAAkBv/G,GACjB,MAAO,UACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdqB,EAAUrB,EAAOksE,SAAS7jG,IAAK,IAC/BpN,EAAI+kC,EAAOxC,OAAOviC,EAClBqmJ,EAAe,GAAkB,CACtCthH,SACAuF,YAAa,GACbnD,OAAQniC,KACRszG,KDvCH,ybCwCGhlF,UAAW,SACXmqB,MAAOz9C,EAAG,YAIX+kC,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,IAAQ,KACvC,MAAM6qG,EAAasoC,EAAc,IAQjC,OANAtoC,EAAWnnG,IAAK,CACf4hG,SAAS,IAGVuF,EAAW/xG,KAAM,QAASzH,GAAI6hC,EAAS,SAEhC23E,CAAU,IAGlBh5E,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,WAAa,IAAQ,IAC7CmzI,EAAc,KAEvB,EChDD,MAAMI,GAAgB,gBASP,MAAMC,WAA6B,GAIjD,qBAAkBz/G,GACjB,MAAO,sBACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAIgF,KAAK+/B,OAAO/kC,EAGtB+kC,EAAO3nC,MAAMkiC,OAAOZ,OAAQ,QAAS,CAAEgmD,gBAAiB+hE,KACxD1hH,EAAO3nC,MAAMkiC,OAAO2lD,uBAAwBwhE,GAAe,CAC1D9J,cAAc,EACduJ,aAAa,IAGdnhH,EAAO1hC,WAAWu1E,mBAAoB,CACrCx7E,MAAOqpJ,GACP9pH,KAAM,IACNoyD,WAAY,CACX,MACA,SACA,CACCzuD,OAAQ,CACP,kBAAmB,oBAOvByE,EAAOksE,SAAS/9F,IAAKuzI,GAAe,IAAI,GAAkB1hH,EAAQ0hH,KAGlE1hH,EAAO4sE,WAAW/6F,IAAK,eAAgB,iBAGvCmuB,EAAOmtE,cAAcF,kBAAmB,CACvCL,WAAY,CACX,CACCl0D,MAAOz9C,EAAG,sBACVszB,UAAW,kBAIf,ECxED,MCeM,GAAgB,gBAKP,MAAMqzH,WAAwB,GAI5C,qBAAkB1/G,GACjB,MAAO,iBACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAOxC,OAAOviC,EAClBqmJ,EAAe,GAAkB,CACtCthH,SACAuF,YAAa,GACbnD,OAAQniC,KACRszG,KDtCH,ujBCuCGhlF,UAAW,eACXmqB,MAAOz9C,EAAG,mBAIX+kC,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,IAAe,KAC9C,MAAM6qG,EAAasoC,EAAc,IAC3BjgH,EAAUrB,EAAOksE,SAAS7jG,IAAK,IASrC,OAPA2wG,EAAWnnG,IAAK,CACf4hG,SAAS,IAIVuF,EAAW/xG,KAAM,QAASzH,GAAI6hC,EAAS,SAEhC23E,CAAU,IAGlBh5E,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,WAAa,IAAe,IACpDmzI,EAAc,KAEvB,ECjDD,MAAMO,GAAY,YAQH,MAAMC,WAAyB,GAI7C,qBAAkB5/G,GACjB,MAAO,kBACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OAEpBA,EAAO3nC,MAAMkiC,OAAOZ,OAAQ,QAAS,CAAEgmD,gBAAiBkiE,KACxD7hH,EAAO3nC,MAAMkiC,OAAO2lD,uBAAwB2hE,GAAW,CACtDjK,cAAc,EACduJ,aAAa,IAKdnhH,EAAO1hC,WAAWu1E,mBAAoB,CACrCx7E,MAAOwpJ,GACPjqH,KAAM,MACNoyD,WAAY,CACX,CACCzuD,OAAQ,CACP,iBAAkB,WAOtByE,EAAOksE,SAAS/9F,IAAK0zI,GAAW,IAAI,GAAkB7hH,EAAQ6hH,IAC/D,ECxDD,MCeM,GAAY,YAKH,MAAME,WAAoB,GAIxC,qBAAkB7/G,GACjB,MAAO,aACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAOxC,OAAOviC,EAClBqmJ,EAAe,GAAkB,CACtCthH,SACAuF,YAAa,GACbnD,OAAQniC,KACRszG,KDtCH,2mCCuCG76D,MAAOz9C,EAAG,eAIX+kC,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,IAAW,KAC1C,MAAM6qG,EAAasoC,EAAc,IAC3BjgH,EAAUrB,EAAOksE,SAAS7jG,IAAK,IASrC,OAPA2wG,EAAWnnG,IAAK,CACf4hG,SAAS,IAIVuF,EAAW/xG,KAAM,QAASzH,GAAI6hC,EAAS,SAEhC23E,CAAU,IAGlBh5E,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,WAAa,IAAW,IAChDmzI,EAAc,KAEvB,EChDD,MAAMU,GAAc,cAQL,MAAMC,WAA2B,GAI/C,qBAAkB//G,GACjB,MAAO,oBACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OAEpBA,EAAO3nC,MAAMkiC,OAAOZ,OAAQ,QAAS,CAAEgmD,gBAAiBqiE,KACxDhiH,EAAO3nC,MAAMkiC,OAAO2lD,uBAAwB8hE,GAAa,CACxDpK,cAAc,EACduJ,aAAa,IAKdnhH,EAAO1hC,WAAWu1E,mBAAoB,CACrCx7E,MAAO2pJ,GACPpqH,KAAM,MACNoyD,WAAY,CACX,CACCzuD,OAAQ,CACP,iBAAkB,aAOtByE,EAAOksE,SAAS/9F,IAAK6zI,GAAa,IAAI,GAAkBhiH,EAAQgiH,IACjE,ECxDD,MCeM,GAAc,cAKL,MAAME,WAAsB,GAI1C,qBAAkBhgH,GACjB,MAAO,eACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAOxC,OAAOviC,EAClBqmJ,EAAe,GAAkB,CACtCthH,SACAuF,YAAa,GACbnD,OAAQniC,KACRszG,KDtCH,4mCCuCG76D,MAAOz9C,EAAG,iBAIX+kC,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,IAAa,KAC5C,MAAM6qG,EAAasoC,EAAc,IAC3BjgH,EAAUrB,EAAOksE,SAAS7jG,IAAK,IASrC,OAPA2wG,EAAWnnG,IAAK,CACf4hG,SAAS,IAIVuF,EAAW/xG,KAAM,QAASzH,GAAI6hC,EAAS,SAEhC23E,CAAU,IAGlBh5E,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,WAAa,IAAa,IAClDmzI,EAAc,KAEvB,EChDD,MAAMa,GAAY,YAQH,MAAMC,WAAyB,GAI7C,qBAAkBlgH,GACjB,MAAO,kBACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAIgF,KAAK+/B,OAAO/kC,EAGtB+kC,EAAO3nC,MAAMkiC,OAAOZ,OAAQ,QAAS,CAAEgmD,gBAAiBwiE,KACxDniH,EAAO3nC,MAAMkiC,OAAO2lD,uBAAwBiiE,GAAW,CACtDvK,cAAc,EACduJ,aAAa,IAGdnhH,EAAO1hC,WAAWu1E,mBAAoB,CACrCx7E,MAAO8pJ,GACPvqH,KAAM,IACNoyD,WAAY,CACXzuD,OAAQ,CACP,kBAAmB,gBAMtByE,EAAOksE,SAAS/9F,IAAKg0I,GAAW,IAAI,GAAkBniH,EAAQmiH,KAG9DniH,EAAO4sE,WAAW/6F,IAAK,SAAU,aAGjCmuB,EAAOmtE,cAAcF,kBAAmB,CACvCL,WAAY,CACX,CACCl0D,MAAOz9C,EAAG,kBACVszB,UAAW,YAIf,ECnED,MCeM,GAAY,YAKH,MAAM8zH,WAAoB,GAIxC,qBAAkBngH,GACjB,MAAO,aACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdqB,EAAUrB,EAAOksE,SAAS7jG,IAAK,IAC/BpN,EAAI+kC,EAAOxC,OAAOviC,EAClBqmJ,EAAe,GAAkB,CACtCthH,SACAuF,YAAa,GACbnD,OAAQniC,KACRszG,KDvCH,+PCwCG76D,MAAOz9C,EAAG,aACVszB,UAAW,WAIZyR,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,IAAW,KAC1C,MAAM6qG,EAAasoC,EAAc,IAQjC,OANAtoC,EAAWnnG,IAAK,CACf4hG,SAAS,IAGVuF,EAAW/xG,KAAM,QAASzH,GAAI6hC,EAAS,SAEhC23E,CAAU,IAGlBh5E,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,WAAa,IAAW,IAChDmzI,EAAc,KAEvB,ECxCM,SAAUgB,GAChB/nH,EACAgoH,GAEA,UAAY/rI,KAAa+rI,EACnB/rI,GAAa+jB,EAAOq3C,uBAAwBp7D,EAAW,IAAM2qI,oBAC3D3qI,EAGT,CCRe,MAAMgsI,WAAqBjiH,GAIzB,OAAAW,GACfjhC,KAAK+/B,OAAO3nC,MAAM0tC,QAAQC,IACzB/lC,KAAKwiJ,WAAYz8G,GACjB/lC,KAAK4Q,KAAqC,eAAgB,CAAEm1B,UAAU,GAExE,CAwBO,UAAAy8G,CAAYz8G,GAClB,MAAM3tC,EAAQ4H,KAAK+/B,OAAO3nC,MACpBuoC,EAAYvoC,EAAMoL,SAASm9B,UAC3BrG,EAASliC,EAAMkiC,OACfmoH,EAAmB9hH,EAAUwU,YAC7BpuB,EAAQ4Z,EAAU4W,gBAClBf,EAAezvB,EAAM0J,MAAM7xB,OAC3B63C,EAAa1vB,EAAMglB,IAAIntC,OAG7B,GAAK07B,EAAOozC,QAASl3B,IAAkBlc,EAAOozC,QAASj3B,GAStD,OAJMgsG,GAAoBjsG,GAAgBC,GACzCr+C,EAAM4nG,cAAer/D,IAGf,EAGR,GAAK8hH,EAAmB,CACvB,MAAMx9C,EAAmBo9C,GAA0Bt8G,EAAO3tC,MAAMkiC,OAAQqG,EAAUyP,iBAKlF,OAHAsyG,GAAY38G,EAAQhf,EAAM0J,OAC1BsV,EAAO64D,sBAAuBqG,IAEvB,CACR,CAAO,CACN,MAAMpE,IAAmB95E,EAAM0J,MAAMwjB,WAAaltB,EAAMglB,IAAI4H,SACtDgvG,EAAgCnsG,GAAgBC,EAItD,GAFAr+C,EAAM4nG,cAAer/D,EAAW,CAAEkgE,kBAE7BA,EAAgB,CAIpB,GAAK8hD,EAGJ,OAFAD,GAAY38G,EAAQpF,EAAUlB,QAEvB,EAMPsG,EAAOwX,aAAc9G,EAAY,EAEnC,CACD,CAEA,OAAO,CACR,EAaD,SAASisG,GAAY38G,EAAgB68G,GACpC78G,EAAOhpC,MAAO6lJ,GACd78G,EAAOwX,aAAcqlG,EAAShkJ,OAAOsY,YAAc,EACpD,CCvGA,MAAM2rI,GAAyD,CAC9DziD,gBAAiB,CAAE0iD,QAAQ,GAC3BC,gBAAiB,CAAED,QAAQ,IAMb,MAAME,WAAsBtuF,GAI1C,WAAA3yD,CAAa41B,GACZ9pB,MAAO8pB,GAEP,MAAM1f,EAAMjY,KAAKwD,SACjB,IAAIy/I,GAAe,EAEnBhrI,EAAIxI,GAA8B,WAAW,CAAE+F,EAAK1S,KACnDmgJ,EAAengJ,EAAKsrB,QAAQ,IAG7BnW,EAAIxI,GAA4B,eAAe,CAAE+F,EAAK1S,KACrD,IAAM9C,KAAKmgC,UACV,OAGD,IAAIs9B,EAAY36D,EAAK26D,UAGhB,EAAI10D,UAAYk6I,GAA6B,mBAAbxlF,IACpCA,EAAY,mBAGb,MAAMzI,EAAWlyD,EAAKkyD,SAChBkuF,EAAiBL,GAAmBplF,GAE1C,IAAMylF,EACL,OAGD,MAAMxzI,EAAQ,IAAI6pC,GAAmBthC,EAAK,QAASnV,EAAK06D,aAAc,IAEtEvlD,EAAIrH,KAAMlB,EAAO,IAAIqlD,GAAcp9B,EAAMq9B,EAAU,CAClD8tF,OAAQI,EAAeJ,UAKnBpzI,EAAMrD,KAAKF,QACfqJ,EAAInJ,MACL,GAEF,CAKO,OAAA2b,GAAiB,CAKjB,aAAAotC,GAAuB,EChEhB,MAAM+tF,WAAc,GAIlC,qBAAkBlhH,GACjB,MAAO,OACR,CAEO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdpI,EAAOoI,EAAOotE,QAAQx1E,KACtB2lC,EAAe3lC,EAAKn0B,SACpBxI,EAAIgF,KAAK+/B,OAAO/kC,EAEtB28B,EAAK2mC,YAAa0kF,IAElBjjH,EAAOksE,SAAS/9F,IAAK,QAAS,IAAIq0I,GAAcxiH,IAEhD//B,KAAK4P,SAAkC0tD,EAAc,SAAS,CAAE9nD,EAAK1S,KAG9Dw6D,EAAar2B,aAClBnkC,EAAKqzB,iBAIDrzB,EAAKggJ,SAIV/iH,EAAOkB,QAAS,SAEhBtJ,EAAKwnC,uBAAsB,GACzB,CAAEnyD,SAAU,QAGf+yB,EAAOmtE,cAAcF,kBAAmB,CACvCL,WAAY,CACX,CACCl0D,MAAOz9C,EAAG,yCACVszB,UAAW,WAIf,ECvCc,MAAM80H,WAA0B9iH,GAI9B,OAAAW,GACf,MAAM7oC,EAAQ4H,KAAK+/B,OAAO3nC,MACpB6f,EAAM7f,EAAMoL,SAElBpL,EAAM0tC,QAAQC,KA2DhB,SAA0B3tC,EAAc2tC,EAAgBpF,GACvD,MAAM8hH,EAAmB9hH,EAAUwU,YAC7BpuB,EAAQ4Z,EAAU4W,gBAClBf,EAAezvB,EAAM0J,MAAM7xB,OAC3B63C,EAAa1vB,EAAMglB,IAAIntC,OACvB+jJ,EAAgCnsG,GAAgBC,EAEtD,GAAKgsG,EAAmB,CACvB,MAAMx9C,EAAmBo9C,GAA0BjqJ,EAAMkiC,OAAQqG,EAAUyP,iBAE3EizG,GAAajrJ,EAAO2tC,EAAQhf,EAAMglB,KAElChG,EAAOgjD,yBAA0BpoD,EAAUiJ,oBAC3C7D,EAAO64D,sBAAuBqG,EAC/B,KAAO,CACN,MAAMpE,IAAmB95E,EAAM0J,MAAMwjB,WAAaltB,EAAMglB,IAAI4H,SAE5Dv7C,EAAM4nG,cAAer/D,EAAW,CAAEkgE,kBAK7B8hD,EACJU,GAAajrJ,EAAO2tC,EAAQpF,EAAUlB,OAcjCohE,GACJ96D,EAAOwX,aAAc9G,EAAY,EAGpC,CACD,CApGG6sG,CAAiBlrJ,EAAO2tC,EAAQ9tB,EAAI0oB,WACpC3gC,KAAK4Q,KAA0C,eAAgB,CAAEm1B,UAAU,GAE7E,CAKgB,OAAAtF,GACf,MAAMroC,EAAQ4H,KAAK+/B,OAAO3nC,MACpB6f,EAAM7f,EAAMoL,SAElBxD,KAAKmgC,UAiBP,SAAoB7F,EAAgBqG,GAGnC,GAAKA,EAAUyW,WAAa,EAC3B,OAAO,EAGR,MAAMmsG,EAAY5iH,EAAUqG,OAG5B,IAAMu8G,IAAcjpH,EAAOq4C,WAAY4wE,EAAW,aACjD,OAAO,EAGR,MAAMx8H,EAAQ4Z,EAAU4W,gBAClBf,EAAezvB,EAAM0J,MAAM7xB,OAC3B63C,EAAa1vB,EAAMglB,IAAIntC,OAG7B,IAAO4kJ,GAAsBhtG,EAAclc,IAAYkpH,GAAsB/sG,EAAYnc,KAAckc,IAAiBC,EACvH,OAAO,EAGR,OAAO,CACR,CAzCmBtW,CAAW/nC,EAAMkiC,OAAQriB,EAAI0oB,UAC/C,EAyFD,SAAS0iH,GAAajrJ,EAAc2tC,EAAgBte,GACnD,MAAMg8H,EAAmB19G,EAAOzgC,cAAe,aAE/ClN,EAAMitG,cAAeo+C,EAAkBh8H,GACvCse,EAAOwX,aAAckmG,EAAkB,QACxC,CASA,SAASD,GAAsBzsI,EAAkBujB,GAEhD,OAAKvjB,EAAQxI,GAAI,iBAIV+rB,EAAOozC,QAAS32D,IAAaysI,GAAsBzsI,EAAQnY,OAAmB07B,GACtF,CCzIe,MAAMopH,WAAmB,GAIvC,qBAAkBzhH,GACjB,MAAO,YACR,CAEO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdzF,EAASyF,EAAO3nC,MAAMkiC,OACtBj8B,EAAa0hC,EAAO1hC,WACpBs5B,EAAOoI,EAAOotE,QAAQx1E,KACtB2lC,EAAe3lC,EAAKn0B,SACpBxI,EAAIgF,KAAK+/B,OAAO/kC,EAGtBs/B,EAAO4kD,SAAU,YAAa,CAC7B8D,WAAY,QACZvR,UAAU,IAIXpzE,EAAWurF,IAAK,UACd1X,iBAAkB,CAClB95E,MAAO,YACPu/B,KAAM,OAGRt5B,EAAWurF,IAAK,YACd1X,iBAAkB,CAClB95E,MAAO,YACPu/B,KAAM,CAAEsuC,GAAgBlgC,YAAcA,EAAOkY,mBAAoB,QAGnEtmB,EAAK2mC,YAAa0kF,IAElBjjH,EAAOksE,SAAS/9F,IAAK,aAAc,IAAIk1I,GAAmBrjH,IAE1D//B,KAAK4P,SAAkC0tD,EAAc,SAAS,CAAE9nD,EAAK1S,KAG9Dw6D,EAAar2B,aAClBnkC,EAAKqzB,iBAIArzB,EAAKggJ,SAIX/iH,EAAOkB,QAAS,cAChBtJ,EAAKwnC,uBAAsB,GACzB,CAAEnyD,SAAU,QAGf+yB,EAAOmtE,cAAcF,kBAAmB,CACvCL,WAAY,CACX,CACCl0D,MAAOz9C,EAAG,2DACVszB,UAAW,iBAIf,EClEc,MAAMq1H,WAA0BrjH,GAY9B,OAAAG,GACfzgC,KAAKxH,MAAQwH,KAAK4jJ,YAClB5jJ,KAAKmgC,UAAYngC,KAAKuhC,eACvB,CAYgB,OAAAN,CAAS18B,EAAoC,CAAC,GAC7D,MAAMnM,EAAQ4H,KAAK+/B,OAAO3nC,MACpBkiC,EAASliC,EAAMkiC,OACfqG,EAAYvoC,EAAMoL,SAASm9B,UAE3By2G,EAASz2I,MAAMrB,KAAMqhC,EAAU6rC,qBAE/Bh0E,OAAiC,IAAvB+L,EAAQw8I,YAA8B/gJ,KAAKxH,MAAQ+L,EAAQw8I,WAE3E3oJ,EAAM0tC,QAAQC,IACb,GAAMvtC,EAEC,CACN,MAAMqrJ,EAAgBzM,EAAOrxI,QAAQ8mE,GAG7Bi3E,GAAWj3E,IAAWk3E,GAAkBzpH,EAAQuyC,KAGxD7sE,KAAKgkJ,YAAaj+G,EAAQ89G,EAC3B,MATC7jJ,KAAKikJ,aAAcl+G,EAAQqxG,EAAOrxI,OAAQ+9I,IAS3C,GAEF,CAKQ,SAAAF,GACP,MAEMphE,EAAa,GAFDxiF,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,UAET6rC,qBAGpC,SAAWgW,IAAcshE,GAAWthE,GACrC,CAOQ,aAAAjhD,GACP,GAAKvhC,KAAKxH,MACT,OAAO,EAGR,MAAMmoC,EAAY3gC,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,UACvCrG,EAASt6B,KAAK+/B,OAAO3nC,MAAMkiC,OAE3BkoD,EAAa,GAAO7hD,EAAU6rC,qBAEpC,QAAMgW,GAICuhE,GAAkBzpH,EAAQkoD,EAClC,CASQ,YAAAyhE,CAAcl+G,EAAgBqxG,GAErC8M,GAAwBn+G,EAAQqxG,GAAS7rI,UAAU3N,SAASumJ,IAC3D,GAAKA,EAAW1zH,MAAMwjB,WAAakwG,EAAWp4G,IAAI4H,QAGjD,YAFA5N,EAAO+a,OAAQqjG,EAAW1zH,MAAM7xB,QAMjC,GAAKulJ,EAAW1zH,MAAMwjB,UAAY,CACjC,MAAMmwG,EAAiBr+G,EAAOyb,qBAAsB2iG,EAAW1zH,MAAM7xB,QAIrE,YAFAmnC,EAAOoZ,KAAMglG,EAAYC,EAG1B,CAIMD,EAAWp4G,IAAI4H,SACpB5N,EAAOhpC,MAAOonJ,EAAWp4G,KAK1B,MAAM02C,EAAgB18C,EAAOwb,oBAAqB4iG,EAAWp4G,IAAIntC,QAEjEmnC,EAAOoZ,KAAMglG,EAAY1hE,EAAe,GAE1C,CAKQ,WAAAuhE,CAAaj+G,EAAgBqxG,GACpC,MAAMiN,EAAmD,GAGzDH,GAAwBn+G,EAAQqxG,GAAS7rI,UAAU3N,SAASumJ,IAC3D,IAAIx4G,EAAQm4G,GAAWK,EAAW1zH,OAE5Bkb,IACLA,EAAQ5F,EAAOzgC,cAAe,cAE9BygC,EAAO2a,KAAMyjG,EAAYx4G,IAG1B04G,EAAczkJ,KAAM+rC,EAAO,IAO5B04G,EAAc94I,UAAUojB,QAAQ,CAAE21H,EAAcC,IAC1CD,EAAaptI,aAAeqtI,GAChCx+G,EAAO83D,MAAO93D,EAAOwb,oBAAqB+iG,IAEnCA,GAGDC,GAET,EAGD,SAAST,GAAWU,GACnB,MAAyC,cAAlCA,EAAkB5lJ,OAAQoD,KAAuBwiJ,EAAkB5lJ,OAAS,IACpF,CASA,SAASslJ,GAAwBn+G,EAAgBqxG,GAChD,IAAIlkG,EACA14C,EAAI,EACR,MAAMw7C,EAAS,GAEf,KAAQx7C,EAAI48I,EAAO9+I,QAAS,CAC3B,MAAMu0E,EAAQuqE,EAAQ58I,GAChBiqJ,EAAYrN,EAAQ58I,EAAI,GAExB04C,IACLA,EAAgBnN,EAAOyb,qBAAsBqrB,IAGxC43E,GAAa53E,EAAM31D,aAAeutI,IACvCzuG,EAAOp2C,KAAMmmC,EAAO0b,YAAavO,EAAenN,EAAOwb,oBAAqBsrB,KAC5E35B,EAAgB,MAGjB14C,GACD,CAEA,OAAOw7C,CACR,CAKA,SAAS+tG,GAAkBzpH,EAAgBuyC,GAE1C,MAAM63E,EAAcpqH,EAAOq4C,WAAY9F,EAAMjuE,OAAmB,cAC1D+lJ,EAAqBrqH,EAAOq4C,WAAY,CAAE,QAAS,cAAgB9F,GAEzE,OAAO63E,GAAeC,CACvB,CCvMe,MAAMC,WAA0B,GAI9C,qBAAkB3iH,GACjB,MAAO,mBACR,CAKA,mBAAkBW,GACjB,MAAO,CAAEugH,GAAO/G,GACjB,CAKO,IAAAh6G,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdzF,EAASyF,EAAO3nC,MAAMkiC,OAE5ByF,EAAOksE,SAAS/9F,IAAK,aAAc,IAAIy1I,GAAmB5jH,IAE1DzF,EAAO4kD,SAAU,aAAc,CAC9BuE,eAAgB,eAGjB1jD,EAAO1hC,WAAW6zE,iBAAkB,CAAE95E,MAAO,aAAcu/B,KAAM,eAGjEoI,EAAO3nC,MAAMoL,SAASyiC,mBAAmBF,IACxC,MAAM+jC,EAAU/pC,EAAO3nC,MAAMoL,SAASgmE,OAAOQ,aAE7C,UAAY3wD,KAASywD,EACpB,GAAmB,UAAdzwD,EAAMlO,KAAmB,CAC7B,MAAM4L,EAAUsC,EAAMoO,SAAS4sB,UAE/B,IAAMt9B,EAEL,SAGD,GAAKA,EAAQxI,GAAI,UAAW,eAAkBwI,EAAQu1B,QAIrD,OAFAvG,EAAO9/B,OAAQ8Q,IAER,EACD,GAAKA,EAAQxI,GAAI,UAAW,gBAAmB+rB,EAAOq4C,WAAYt5D,EAAMoO,SAAU1Q,GAIxF,OAFAgvB,EAAO+a,OAAQ/pC,IAER,EACD,GAAKA,EAAQxI,GAAI,WAAc,CAErC,MAAMwY,EAAQgf,EAAO4b,cAAe5qC,GAEpC,UAAYuB,KAASyO,EAAMsvB,WAC1B,GACC/9B,EAAM/J,GAAI,UAAW,gBACpB+rB,EAAOq4C,WAAY5sC,EAAOyb,qBAAsBlpC,GAASA,GAI1D,OAFAytB,EAAO+a,OAAQxoC,IAER,CAGV,CACD,MAAO,GAAmB,UAAde,EAAMlO,KAAmB,CACpC,MAAMvM,EAASya,EAAMoO,SAAS7oB,OAE9B,GAAKA,EAAO2P,GAAI,UAAW,eAAkB3P,EAAO0tC,QAInD,OAFAvG,EAAO9/B,OAAQrH,IAER,CAET,CAGD,OAAO,CAAK,IAGb,MAAM0+D,EAAet9D,KAAK+/B,OAAOotE,QAAQx1E,KAAKn0B,SACxCm9B,EAAYZ,EAAO3nC,MAAMoL,SAASm9B,UAClCkkH,EAAuC9kH,EAAOksE,SAAS7jG,IAAK,cAIlEpI,KAAK4P,SAAkC0tD,EAAc,SAAS,CAAE9nD,EAAK1S,KACpE,IAAM69B,EAAUwU,cAAgB0vG,EAAkBrsJ,MACjD,OAGsBmoC,EAAU+W,kBAAmB94C,OAEhC0tC,UACnBvM,EAAOkB,QAAS,cAChBlB,EAAOotE,QAAQx1E,KAAKwnC,uBAEpBr8D,EAAKqzB,iBACL3gB,EAAInJ,OACL,GACE,CAAEsB,QAAS,eAId3N,KAAK4P,SAAmC0tD,EAAc,UAAU,CAAE9nD,EAAK1S,KACtE,GAAuB,YAAlBA,EAAK0jB,YAA4Bma,EAAUwU,cAAgB0vG,EAAmBrsJ,MAClF,OAGD,MAAM8mD,EAAiB3e,EAAU+W,kBAAmB94C,OAE/C0gD,EAAehT,UAAYgT,EAAe72B,kBAC9CsX,EAAOkB,QAAS,cAChBlB,EAAOotE,QAAQx1E,KAAKwnC,uBAEpBr8D,EAAKqzB,iBACL3gB,EAAInJ,OACL,GACE,CAAEsB,QAAS,cACf,E,eC7IG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ2vB,OCUR,MAAMwnH,WAAqB,GAIzC,qBAAkB7iH,GACjB,MAAO,cACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdqB,EAA6BrB,EAAOksE,SAAS7jG,IAAK,cAExD23B,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,cAAc,KAC7C,MAAM6qG,EAAa/4G,KAAKo7G,cAAe,IASvC,OAPArC,EAAWnnG,IAAK,CACf4hG,SAAS,IAIVuF,EAAW/xG,KAAM,QAASzH,GAAI6hC,EAAS,SAEhC23E,CAAU,IAGlBh5E,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,sBAAsB,IAAMlO,KAAKo7G,cAAe,KACjF,CAKQ,aAAAA,CAAmFG,GAC1F,MAAMx7E,EAAS//B,KAAK+/B,OACdxC,EAASwC,EAAOxC,OAChB6D,EAAUrB,EAAOksE,SAAS7jG,IAAK,cAC/BuvB,EAAO,IAAI4jF,EAAax7E,EAAOxC,QAC/BviC,EAAIuiC,EAAOviC,EAgBjB,OAdA28B,EAAK/lB,IAAK,CACT6mC,MAAOz9C,EAAG,eACVs4G,KAAM,GAAM3nE,MACZunE,cAAc,IAGfv7E,EAAK3wB,KAAM,aAAczH,GAAI6hC,EAAS,aAGtCphC,KAAK4P,SAAU+nB,EAAM,WAAW,KAC/BoI,EAAOkB,QAAS,cAChBlB,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAGrB9H,CACR,EChED,MAAMotH,GAAkB,CAAEC,aAAa,GACjCC,GAAqC,KAM5B,MAAMC,WAA8B5xI,KAe1CsqE,SAEAz8D,SAEAgkI,qBASR,WAAApjJ,CAAaqjJ,EAAkC7gJ,EAAwB,CAAC,GAGvE,GAFAsJ,SAEMu3I,EAML,MAAM,IAAI13I,EACT,0BACA1N,MAIGuE,EAAQ8gJ,WACZrlJ,KAAKslJ,oBAAqB/gJ,EAAQ8gJ,WAGnCrlJ,KAAK4R,IAAK,QAASrN,EAAQ8gJ,WAG1BrlJ,KAAK49E,SADiC,mBAA3BwnE,EACKA,EAEA,KAAMG,OAyJKC,EAzJgBJ,EA0JtC,IAAIjhH,SAAiB,CAAEnnB,EAASyoI,KACtC,MAAMC,EAAM,IAAIC,eAEhBD,EAAInpC,KAAM,MAAOipC,GAEjBE,EAAIh1I,iBAAkB,QAAQ,KAC7B,MAAMk1I,EAAaF,EAAIG,OACjBC,EAAcJ,EAAIK,SAExB,OAAKH,EAAa,KAAOA,EAAa,IAM9BH,EACN,IAAI/3I,EAAe,kCAAmC,OAIjDsP,EAAS8oI,EAAa,IAG9BJ,EAAIh1I,iBAAkB,SAAS,IAAM+0I,EAAQ,IAAIptJ,MAAO,oBACxDqtJ,EAAIh1I,iBAAkB,SAAS,IAAM+0I,EAAQ,IAAIptJ,MAAO,YAExDqtJ,EAAIM,MAAM,IA3BZ,IAA8BR,CAzJwC,EAGpExlJ,KAAKmhB,SAAW,IAAK4jI,MAAoBxgJ,EAC1C,CAKO,IAAA69B,GACN,OAAO,IAAI+B,SAAS,CAAEnnB,EAASyoI,KACxBzlJ,KAAKxH,OAQNwH,KAAKmhB,SAAS6jI,aAClBhlJ,KAAKimJ,+BAGNjpI,EAAShd,OAXRA,KAAKkmJ,eACH1iH,KAAMxmB,GACNi0H,MAAOwU,EASyB,GAErC,CAKO,YAAAS,GACN,OAAOlmJ,KAAK49E,WACVp6C,MAAMhrC,IACNwH,KAAKslJ,oBAAqB9sJ,GAC1BwH,KAAK4R,IAAK,QAASpZ,GAEdwH,KAAKmhB,SAAS6jI,aAClBhlJ,KAAKimJ,+BAGCjmJ,OAEV,CAKO,OAAAioB,GACN4N,aAAc71B,KAAKmlJ,qBACpB,CAOQ,mBAAAG,CAAqBa,GAE5B,MAAMC,EAAiC,iBAAfD,EAGlBE,GAAiB,SAASpkJ,KAAMkkJ,GAIhCG,EAAcF,GAA+C,IAAnCD,EAAWppJ,MAAO,KAAMzE,OAExD,IAAQ+tJ,IAAiBC,EAMxB,MAAM,IAAI54I,EAAe,0BAA2B1N,KAEtD,CAKQ,4BAAAimJ,GACP,MAAMM,EAA0BvmJ,KAAKwmJ,8BAErC3wH,aAAc71B,KAAKmlJ,sBAEnBnlJ,KAAKmlJ,qBAAuBpvH,YAAY,KACvC/1B,KAAKkmJ,cAAc,GACjBK,EACJ,CAOQ,2BAAAC,GACP,IACC,MAAQ,CAAEC,GAAuBzmJ,KAAKxH,MAAOuE,MAAO,MAC5C2pJ,IAAKC,GAAoB/jJ,KAAKgmF,MAAOllF,KAAM+iJ,IAEnD,IAAME,EACL,OAAO1B,GAKR,OAFgCpsJ,KAAK+B,OAA6B,IAAlB+rJ,EAA2B13I,KAAK2hB,OAAU,EAG3F,CAAE,MAAQpvB,GACT,OAAOyjJ,EACR,CACD,CAQA,aAAclnI,CAAQqnI,EAAkC7gJ,EAAwB,CAAC,GAGhF,OAFc,IAAI2gJ,GAAOE,EAAwB7gJ,GAEpC69B,MACd,ECpLD,MAAMwkH,GAAwB,uBAKf,MAAMC,WAAqCr3I,KAIzCs3I,KAETpB,IAKUqB,OAKAC,YASjB,WAAAjlJ,CACCklJ,EACAnsB,EACAosB,GAIA,GAFAr5I,SAEMo5I,EAML,MAAM,IAAIv5I,EAAe,4BAA6B,MAGvD,IAAMotH,EAML,MAAM,IAAIptH,EAAe,6BAA8B,MAGxD,IAAMw5I,EAML,MAAM,IAAIx5I,EAAe,mCAAoC,MAG9D1N,KAAK8mJ,KA8LP,SAAoBrqJ,GACnB,GAAuB,iBAAXA,EACX,OAAO,EAGR,MAAMI,EAAQJ,EAAOI,MAAO+pJ,IAC5B,SAAW/pJ,IAASA,EAAMvE,OAC3B,CArMc6uJ,CAAWF,GA8JzB,SAAwBxkJ,EAAgB2kJ,EAAY,KACnD,IACC,MAAMC,EAAc5kJ,EAAO5F,MAAO+pJ,IAA0B,GACtDU,EAAa5jJ,KAAMjB,EAAOqU,QAAS8vI,GAAuB,KAE1DW,EAAgC,GAEtC,QAAUlrI,EAAS,EAAGA,EAASirI,EAAWhvJ,OAAQ+jB,GAAU+qI,EAAY,CACvE,MAAMtlJ,EAAQwlJ,EAAWxlJ,MAAOua,EAAQA,EAAS+qI,GAC3CI,EAAc,IAAI7mJ,MAAemB,EAAMxJ,QAE7C,QAAUkC,EAAI,EAAGA,EAAIsH,EAAMxJ,OAAQkC,IAClCgtJ,EAAahtJ,GAAMsH,EAAM2pC,WAAYjxC,GAGtC+sJ,EAAW3nJ,KAAM,IAAIud,WAAYqqI,GAClC,CAEA,OAAO,IAAIC,KAAMF,EAAY,CAAEp8I,KAAMk8I,GACtC,CAAE,MAAQv9I,GAMT,MAAM,IAAI4D,EAAe,yCAA0C,KACpE,CACD,CAzLwCg6I,CAAeT,GAAeA,EAEpEjnJ,KAAK+mJ,OAASjsB,EACd96H,KAAKgnJ,YAAcE,CACpB,CAKO,UAAAS,CAAYh4I,GAGlB,OAFA3P,KAAKyP,GAAoC,YAAY,CAAEC,EAAO5M,IAAU6M,EAAU7M,KAE3E9C,IACR,CAKO,OAAA4nJ,CAASj4I,GAGf,OAFA3P,KAAK6P,KAA8B,SAAS,CAAEH,EAAO5M,IAAU6M,EAAU7M,KAElE9C,IACR,CAKO,KAAA6nJ,GACN7nJ,KAAK0lJ,IAAKmC,OACX,CAKO,IAAA7B,GAIN,OAHAhmJ,KAAK8nJ,kBACL9nJ,KAAK+nJ,sBAEE/nJ,KAAKgoJ,cACb,CAKQ,eAAAF,GACP,MAAMpC,EAAM,IAAIC,eAEhBD,EAAInpC,KAAM,OAAQv8G,KAAKgnJ,aACvBtB,EAAIuC,iBAAkB,gBAAiBjoJ,KAAK+mJ,OAAOvuJ,OACnDktJ,EAAIwC,aAAe,OAEnBloJ,KAAK0lJ,IAAMA,CACZ,CAKQ,mBAAAqC,GACP,MAAMrC,EAAM1lJ,KAAK0lJ,IAEXkC,EAAYn5I,GACV,IAAMzO,KAAK4Q,KAA8B,QAASnC,GAG1Di3I,EAAIh1I,iBAAkB,QAASk3I,EAAS,kBACxClC,EAAIh1I,iBAAkB,QAASk3I,EAAS,UAGnClC,EAAIyC,QACRzC,EAAIyC,OAAOz3I,iBAAkB,YAAYhB,IACnCA,EAAM04I,kBACVpoJ,KAAK4Q,KAAsC,WAAY,CACtDy3I,MAAO34I,EAAM24I,MACbC,SAAU54I,EAAM64I,QAElB,IAIF7C,EAAIh1I,iBAAkB,QAAQ,KAC7B,MAAMk1I,EAAaF,EAAIG,OACjBC,EAAcJ,EAAIK,SAExB,GAAKH,EAAa,KAAOA,EAAa,IACrC,OAAO5lJ,KAAK4Q,KAA8B,QAASk1I,EAAYr3I,SAAWq3I,EAAYh8I,MACvF,GAEF,CAKQ,YAAAk+I,GACP,MAAMQ,EAAW,IAAIC,SACf/C,EAAM1lJ,KAAK0lJ,IAIjB,OAFA8C,EAAS/4F,OAAQ,OAAQzvD,KAAK8mJ,MAEvB,IAAI3iH,SAAyB,CAAEnnB,EAASyoI,KAC9CC,EAAIh1I,iBAAkB,QAAQ,KAC7B,MAAMk1I,EAAaF,EAAIG,OACjBC,EAAcJ,EAAIK,SAExB,OAAKH,EAAa,KAAOA,EAAa,IAChCE,EAAYr3I,QAMTg3I,EAAQ,IAAI/3I,EAClB,qCACA1N,KACA,CAAEyO,QAASq3I,EAAYr3I,WAIlBg3I,EAAQK,EAAYh8I,OAGrBkT,EAAS8oI,EAAa,IAG9BJ,EAAIh1I,iBAAkB,SAAS,IAAM+0I,EAAQ,IAAIptJ,MAAO,oBACxDqtJ,EAAIh1I,iBAAkB,SAAS,IAAM+0I,EAAQ,IAAIptJ,MAAO,YAExDqtJ,EAAIM,KAAMwC,EAAU,GAEtB,EC/Lc,MAAME,GAIH3B,OAKAC,YAQjB,WAAAjlJ,CAAa+4H,EAAyBosB,GACrC,IAAMpsB,EAML,MAAM,IAAIptH,EAAe,8BAA+B,MAGzD,IAAMw5I,EAML,MAAM,IAAIx5I,EAAe,oCAAqC,MAG/D1N,KAAK+mJ,OAASjsB,EACd96H,KAAKgnJ,YAAcE,CACpB,CAmBO,MAAAiB,CAAQlB,GACd,OAAO,IAAIJ,GAAcI,EAAYjnJ,KAAK+mJ,OAAQ/mJ,KAAKgnJ,YACxD,EC1Dc,MAAM2B,WAA0BvjH,GAI9C,qBAAkBnD,GACjB,MAAO,mBACR,CAUO,WAAA2mH,CAAaxD,EAAkC7gJ,GACrD,OAAO,IAAI2gJ,GAAOE,EAAwB7gJ,EAC3C,CAQO,mBAAAskJ,CAAqB/tB,EAAyBosB,GACpD,OAAO,IAAIwB,GAAe5tB,EAAOosB,EAClC,ECFc,MAAM4B,WAA0B,GAI9B5zF,aAAe,CAC9B,QAAS,OAAQ,MAAO,OAAQ,WAAY,YAAa,UAAW,YAAa,aAGlF,WAAAnzD,CAAa41B,GACZ9pB,MAAO8pB,GAEP,MAAM2lC,EAAet9D,KAAKwD,SAM1B,SAASulJ,EAAa59I,GACrB,MAAO,CAAEqK,EAAgB1S,KACxBA,EAAKqzB,iBAEL,MAAMqnC,EAAe16D,EAAKkmJ,UAAY,CAAElmJ,EAAKkmJ,WAAc,KACrDl4I,EAAY,IAAI1E,EAAWkxD,EAAcnyD,GAE/CmyD,EAAa1sD,KAAME,EAAW,CAC7BysD,aAAcz6D,EAAKy6D,aACnBt5B,OAAQzuB,EAAIxT,KACZw7D,eACA55D,OAAQd,EAAKc,OACboxD,SAAUlyD,EAAKkyD,WAMXlkD,EAAUzE,KAAKF,QACnBrJ,EAAKszB,iBACN,CAEF,CA1BAp2B,KAAK4P,SAAkC0tD,EAAc,QAASyrF,EAAa,kBAAoB,CAAE/7I,SAAU,QAC3GhN,KAAK4P,SAAiC0tD,EAAc,OAAQyrF,EAAa,kBAAoB,CAAE/7I,SAAU,QACzGhN,KAAK4P,SAAqC0tD,EAAc,WAAYyrF,EAAa,YAAc,CAAE/7I,SAAU,OAyB5G,CAEO,UAAAmoD,CAAYH,GAClB,MAAMqH,EAAqB,kBAAmBrH,EAAWA,EAASi0F,cAAiBj0F,EAASuI,aACtFjB,EAA8B,QAAjBtH,EAAS7pD,MAAmC,SAAjB6pD,EAAS7pD,KAEjDo6B,EAA8B,CACnCg4B,aAAc,IAAIrB,GAAcG,EAAoB,CAAEC,gBAGjC,QAAjBtH,EAAS7pD,MAAmC,YAAjB6pD,EAAS7pD,OACxCo6B,EAAQyjH,UAuBX,SAA2BrxH,EAAmBq9B,GAC7C,MAAMk0F,EAAWl0F,EAASpxD,OAAiBic,cACrC3lB,EAAI86D,EAASogD,QACbn7G,EAAI+6D,EAASqgD,QACnB,IAAIvqD,EAGCo+F,EAAOC,qBAAuBD,EAAOC,oBAAqBjvJ,EAAGD,GACjE6wD,EAAWo+F,EAAOC,oBAAqBjvJ,EAAGD,GAGjC+6D,EAASo0F,cAClBt+F,EAAWo+F,EAAOznG,cAClBqJ,EAAS4F,SAAUsE,EAASo0F,YAAap0F,EAASq0F,aAClDv+F,EAAS7N,UAAU,IAGpB,GAAK6N,EACJ,OAAOnzB,EAAKkkB,aAAa4V,eAAgB3G,GAG1C,OAAO,IACR,CA7CuBw+F,CAAkBtpJ,KAAK23B,KAAMq9B,IAGlDh1D,KAAK4Q,KAAMokD,EAAS7pD,KAAM6pD,EAAUzvB,EACrC,ECpFD,MAAMgkH,GAAuB,CAAE,aAAc,MAEvCC,GAAe,CAAE,KAAM,MAQd,SAASC,GAAiB5vE,GACxC,GAAKA,EAAStrE,GAAI,UAAasrE,EAAStrE,GAAI,cAC3C,OAAOsrE,EAAS/2E,KAGjB,GAAK+2E,EAAStrE,GAAI,UAAW,QAAWsrE,EAASxpC,aAAc,OAC9D,OAAOwpC,EAASn/C,aAAc,OAG/B,GAAKm/C,EAAStrE,GAAI,UAAW,MAC5B,MAAO,KAQR,IAAI8pB,EAAO,GACP6C,EAA2B,KAE/B,UAAY5iB,KAAWuhE,EAAiD/yC,cACvEzO,GAAQqxH,GAAgBpxI,EAAsB4iB,GAASuuH,GAAiBnxI,GACxE4iB,EAAO5iB,EAGR,OAAO+f,CACR,CAKA,SAASqxH,GACR3yI,EACAi9F,GAEA,OAAMA,EAKDj9F,EAAQxI,GAAI,UAAW,QAAWwI,EAAQu1B,SAAWv1B,EAAQowB,SAAU,GAAK54B,GAAI,qBAKhFi7I,GAAar3H,SAAUpb,EAAQ/U,OAAUwnJ,GAAar3H,SAAU6hF,EAAShyG,MAHtE,OAWF+U,EAAQxI,GAAI,qBAAyBylG,EAASzlG,GAAI,oBAKnDg7I,GAAqBp3H,SAAUpb,EAAQ/U,OAAUunJ,GAAqBp3H,SAAU6hF,EAAShyG,MAEtF,KAID,OATC,GAlBA,EA4BT,CC3EA,SAJA,SAAoBuT,EAAQyE,GAC1B,OAAOzE,GAAU,GAAQA,EAAQyE,EAAU,GAC7C,ECgDA,SA5CA,SAAqBzE,EAAQrS,EAAQymJ,EAAWxvI,GAC9C,IAAIvV,EAAQ+kJ,EAAUrxJ,OAClBA,EAASsM,EACTglJ,GAAgBzvI,EAEpB,GAAc,MAAV5E,EACF,OAAQjd,EAGV,IADAid,EAASve,OAAOue,GACT3Q,KAAS,CACd,IAAI9B,EAAO6mJ,EAAU/kJ,GACrB,GAAKglJ,GAAgB9mJ,EAAK,GAClBA,EAAK,KAAOyS,EAAOzS,EAAK,MACtBA,EAAK,KAAMyS,GAEnB,OAAO,CAEX,CACA,OAAS3Q,EAAQtM,GAAQ,CAEvB,IAAIvB,GADJ+L,EAAO6mJ,EAAU/kJ,IACF,GACXqV,EAAW1E,EAAOxe,GAClBo5B,EAAWrtB,EAAK,GAEpB,GAAI8mJ,GAAgB9mJ,EAAK,IACvB,QAAiB+E,IAAboS,KAA4BljB,KAAOwe,GACrC,OAAO,MAEJ,CACL,IAAI7G,EAAQ,IAAI,GAChB,GAAIyL,EACF,IAAIhc,EAASgc,EAAWF,EAAUkW,EAAUp5B,EAAKwe,EAAQrS,EAAQwL,GAEnE,UAAiB7G,IAAX1J,EACE,GAAYgyB,EAAUlW,EAAU,EAA+CE,EAAYzL,GAC3FvQ,GAEN,OAAO,CAEX,CACF,CACA,OAAO,CACT,EC7CA,SAJA,SAA4B3F,GAC1B,OAAOA,GAAUA,IAAU,EAASA,EACtC,ECWA,SAbA,SAAsB+c,GAIpB,IAHA,IAAIpX,EAAS,GAAKoX,GACdjd,EAAS6F,EAAO7F,OAEbA,KAAU,CACf,IAAIvB,EAAMoH,EAAO7F,GACbE,EAAQ+c,EAAOxe,GAEnBoH,EAAO7F,GAAU,CAACvB,EAAKyB,EAAO,GAAmBA,GACnD,CACA,OAAO2F,CACT,ECFA,SAVA,SAAiCpH,EAAKo5B,GACpC,OAAO,SAAS5a,GACd,OAAc,MAAVA,IAGGA,EAAOxe,KAASo5B,SACPtoB,IAAbsoB,GAA2Bp5B,KAAOC,OAAOue,IAC9C,CACF,ECIA,SAVA,SAAqBrS,GACnB,IAAIymJ,EAAY,GAAazmJ,GAC7B,OAAwB,GAApBymJ,EAAUrxJ,QAAeqxJ,EAAU,GAAG,GACjC,GAAwBA,EAAU,GAAG,GAAIA,EAAU,GAAG,IAExD,SAASp0I,GACd,OAAOA,IAAWrS,GAAU,GAAYqS,EAAQrS,EAAQymJ,EAC1D,CACF,ECPA,SAJA,SAAmBp0I,EAAQxe,GACzB,OAAiB,MAAVwe,GAAkBxe,KAAOC,OAAOue,EACzC,EC4BA,SAtBA,SAAiBA,EAAQ9V,EAAMoqJ,GAO7B,IAJA,IAAIjlJ,GAAS,EACTtM,GAHJmH,EAAO,GAASA,EAAM8V,IAGJjd,OACd6F,GAAS,IAEJyG,EAAQtM,GAAQ,CACvB,IAAIvB,EAAM,GAAM0I,EAAKmF,IACrB,KAAMzG,EAAmB,MAAVoX,GAAkBs0I,EAAQt0I,EAAQxe,IAC/C,MAEFwe,EAASA,EAAOxe,EAClB,CACA,OAAIoH,KAAYyG,GAAStM,EAChB6F,KAET7F,EAAmB,MAAVid,EAAiB,EAAIA,EAAOjd,SAClB,GAASA,IAAW,GAAQvB,EAAKuB,KACjD,GAAQid,IAAW,GAAYA,GACpC,ECHA,SAJA,SAAeA,EAAQ9V,GACrB,OAAiB,MAAV8V,GAAkB,GAAQA,EAAQ9V,EAAM,GACjD,ECCA,SAZA,SAA6BA,EAAM0wB,GACjC,OAAI,GAAM1wB,IAAS,GAAmB0wB,GAC7B,GAAwB,GAAM1wB,GAAO0wB,GAEvC,SAAS5a,GACd,IAAI0E,EAAW,GAAI1E,EAAQ9V,GAC3B,YAAqBoI,IAAboS,GAA0BA,IAAakW,EAC3C,GAAM5a,EAAQ9V,GACd,GAAY0wB,EAAUlW,EAAU,EACtC,CACF,ECjBA,SANA,SAAsBljB,GACpB,OAAO,SAASwe,GACd,OAAiB,MAAVA,OAAiB1N,EAAY0N,EAAOxe,EAC7C,CACF,ECIA,SANA,SAA0B0I,GACxB,OAAO,SAAS8V,GACd,OAAO,GAAQA,EAAQ9V,EACzB,CACF,ECkBA,SAJA,SAAkBA,GAChB,OAAO,GAAMA,GAAQ,GAAa,GAAMA,IAAS,GAAiBA,EACpE,ECCA,SAjBA,SAAsBjH,GAGpB,MAAoB,mBAATA,EACFA,EAEI,MAATA,EACK,GAEW,iBAATA,EACF,GAAQA,GACX,GAAoBA,EAAM,GAAIA,EAAM,IACpC,GAAYA,GAEX,GAASA,EAClB,ECcA,SAVA,SAAmB+c,EAAQyE,GACzB,IAAI7b,EAAS,CAAC,EAMd,OALA6b,EAAW,GAAaA,EAAU,GAElC,GAAWzE,GAAQ,SAAS/c,EAAOzB,EAAKwe,GACtC,GAAgBpX,EAAQpH,EAAKijB,EAASxhB,EAAOzB,EAAKwe,GACpD,IACOpX,CACT,ECVe,MAAM2rJ,WAA8B,GAM1CC,eAA4D,IAAIr4I,IAKxE,qBAAkBuwB,GACjB,MAAO,uBACR,CASO,qBAAA+nH,CAAuB5jF,EAAoBz7C,GACjD3qB,KAAK+pJ,eAAen4I,IAAKw0D,EAAYz7C,EACtC,CAoBO,gCAAAs/H,CACNriG,EACAjnB,EACAupH,EAA4D,CAAAnkH,GAC3DA,EAAO3tC,MAAMmvG,mBAAoBxhE,EAAO3tC,MAAMoL,SAASm9B,aAExD,OAAO3gC,KAAK+/B,OAAO3nC,MAAM0tC,QAAQC,IAChC,MAAMyxB,EAAezxB,EAAO3tC,MAAMoL,SAASm9B,UAS3CoF,EAAOwX,aAAc5c,GAErB,MAAMwpH,EAAiCnqJ,KAAKoqJ,gCAAiCrkH,EAAQA,EAAO3tC,MAAMoL,SAASm9B,UAAWinB,GAChHiH,EAAWq7F,EAAmBnkH,GAC9BskH,EAA+BrqJ,KAAKsqJ,gCAAiCvkH,EAAQ8oB,GAUnF,UAAcuX,EAAYK,KAAczvE,OAAOoiB,QAAS+wI,GAAmC,CAC1FE,EAA8BjkF,KAAiBrgC,EAAO4b,cAAekN,GAErE,UAAY93C,KAAW0vD,EACtB1gC,EAAO9/B,OAAQ8Q,EAEjB,CAEA83C,EAAS4a,QAAQ13D,QAEjB,UAAcq0D,EAAYr/C,KAAW/vB,OAAOoiB,QAASixI,GACpDx7F,EAAS4a,QAAQ73D,IAAKw0D,EAAYr/C,GAMnC,OAFAgf,EAAOwX,aAAcia,GAEd3I,CAAQ,GAEjB,CAqBO,mCAAA07F,CACN9gF,EACA+gF,GAEA,MAAMC,EAAezqJ,KAAK0qJ,6BAA8BjhF,GAExD,OAAOzpE,KAAK+/B,OAAO3nC,MAAM0tC,QAAQC,IAEhC,MAAM4kH,EAA4B3qJ,KAAK4qJ,2BAA4B7kH,EAAQ0kH,GAGrEI,EAAqBL,EAA0BzkH,GAG/C+kH,EAAqB9qJ,KAAKsqJ,gCAAiCvkH,EAAQ8kH,GAGzE,UAAY9zI,KAAW/f,OAAOoU,OAAQu/I,GAA4Bx3E,OACjEptC,EAAO9/B,OAAQ8Q,GAIhB,UAAcqvD,EAAYr/C,KAAW/vB,OAAOoiB,QAAS0xI,GAC9C/kH,EAAO3tC,MAAMqxE,QAAQx7D,IAAKm4D,IAC/BrgC,EAAOi3D,UAAW52B,EAAY,CAC7B02B,gBAAgB,EAChBp8D,aAAa,EACb3Z,UAKH,OAAO8jI,CAAkB,GAE3B,CAUO,yBAAAE,CAA2Bl8F,GACjC,MAAM47F,EAAezqJ,KAAK0qJ,6BAA8B77F,EAAS4a,SAEjE5a,EAAS4a,QAAQ13D,QAEjB,UAAYi5I,KAAkBP,EAC7B57F,EAAS4a,QAAQ73D,IAAKo5I,EAAehpJ,KAAMgpJ,EAAejkI,OAG3D,OAAO/mB,KAAK+/B,OAAO3nC,MAAMitG,cAAex2C,EACzC,CAcO,iBAAAo8F,CACN7kF,EACA8kF,EACAvgI,EAAuC,CACtCwgI,eAAgB,MAChBC,uBAAuB,EACvBC,kBAAkB,IAGnB,MAAMC,EAAStrJ,KAAK+pJ,eAAe3hJ,IAAKg+D,GAExCpmE,KAAK+pJ,eAAen4I,IAAKw0D,EAAYz7C,GAErCugI,IAEKI,EACJtrJ,KAAK+pJ,eAAen4I,IAAKw0D,EAAYklF,GAErCtrJ,KAAK+pJ,eAAej4I,OAAQs0D,EAE9B,CASO,iBAAAmlF,CAAmBnlF,EAAoBxe,GAC7C,MAAMj9B,EAAS3qB,KAAKwrJ,0BAA2BplF,GAE/C,IAAMz7C,EACL,OAAO,EAIR,IAAMi9B,EACL,OAAO,EAGR,MAAM,eAAEujG,GAAmBxgI,EAE3B,MAA0B,QAAnBwgI,GAA4BA,EAAeh5H,SAAUy1B,EAC7D,CAOO,uBAAA6jG,CAAyBrlF,GAC/B,QAASpmE,KAAKwrJ,0BAA2BplF,EAC1C,CAQO,yBAAAolF,CAA2BplF,GACjC,MAAQslF,GAAqBtlF,EAAWrpE,MAAO,KAE/C,OAAOiD,KAAK+pJ,eAAe3hJ,IAAKsjJ,IAAsB,IACvD,CAWQ,+BAAAtB,CACPrkH,EACApF,EACAinB,GAEA,MAAM+jG,EAAkB3rJ,KAAK4rJ,iCAAkC7lH,EAAQpF,EAAWinB,GAElF,OAAO5nD,KAAK4qJ,2BAA4B7kH,EAAQ4lH,EACjD,CAYQ,gCAAAC,CACP7lH,EACApF,EACAinB,GAEA,MAAMikG,EAAkBlrJ,MAAMrB,KAAMqhC,EAAU2W,aAIxCw0G,EAAkB,IAAI/3I,IAC3B83I,EAAgBE,SACfp7E,GAAkBhwE,MAAMrB,KAAMymC,EAAO3tC,MAAMqxE,QAAQ8rB,4BAA6B5kB,OA8BlF,OAAOhwE,MACLrB,KAAMwsJ,GACN/lJ,QA5BkCklE,IAInC,IAFmBjrE,KAAKurJ,kBAAmBtgF,EAAOjpE,KAAM4lD,GAGvD,OAAO,EAUR,MAAM,sBAAEwjG,GAA0BprJ,KAAKwrJ,0BAA2BvgF,EAAOjpE,MAEzE,IAAMopJ,EAAwB,CAC7B,MAAM7gF,EAAcU,EAAOT,WAE3B,OAAOqhF,EAAgBx0H,MAAMs5C,GAAkBA,EAAeh7B,cAAe40B,GAAa,IAC3F,CAEA,OAAO,CAAI,IAMVvtE,KAAOguJ,IAOA,CACNhpJ,KAHuB,cAAX4lD,EAAyB5nD,KAAKgsJ,qBAAsBhB,EAAehpJ,MAASgpJ,EAAehpJ,KAIvG+kB,MAAOikI,EAAexgF,cAG1B,CAUQ,4BAAAkgF,CACPjhF,EACA7hB,EAAiD,MAEjD,MAAM,MAAExvD,GAAU4H,KAAK+/B,OAGvB,OAFgB0pC,aAAmB/3D,IAAM/Q,MAAMrB,KAAMmqE,EAAQrwD,WAAcpiB,OAAOoiB,QAASqwD,IAE5EsiF,SAAS,EAAI3lF,EAAYr/C,MACvC,IAAM/mB,KAAKyrJ,wBAAyBrlF,GACnC,MAAO,CACN,CACCpkE,KAAMokE,EACNr/C,UAKH,GAAK/mB,KAAKurJ,kBAAmBnlF,EAAYxe,GAAW,CACnD,MAAMqkG,EAAmBjsJ,KAAKwrJ,0BAA2BplF,GACnD8lF,EAAgB9zJ,EAAMqxE,QAAQx7D,IAAKm4D,IACsB,eAA9DhuE,EAAMqxE,QAAQrhE,IAAKg+D,GAAcoE,WAAWl0E,KAAKwqC,SAMlD,OAJKmrH,EAAiBZ,kBAAoBa,KACzC9lF,EAAapmE,KAAKgsJ,qBAAsB5lF,IAGlC,CACN,CACCpkE,KAAMokE,EACNr/C,SAGH,CAEA,MAAO,EAAE,GAEX,CAUQ,0BAAA6jI,CAA4B7kH,EAAgB0jC,GACnD,MAAM0iF,EAAgD,CAAC,EACjDC,EAAgB3iF,EACpBsiF,SAAS9gF,IACT,MAAM,MAAEx6C,EAAK,IAAEsb,GAAQk/B,EAAOlkD,MAE9B,MAAO,CACN,CAAEU,SAAUgJ,EAAOw6C,SAAQ9/D,KAAM,SACjC,CAAEsc,SAAUskB,EAAKk/B,SAAQ9/D,KAAM,OAC/B,IAID0W,MAAM,EAAI4F,SAAUm/E,IAAUn/E,SAAUo/E,KAAYD,EAAK7+D,SAAU8+D,GAAS,GAAK,IAEnF,UAAY,SAAEp/E,EAAQ,OAAEwjD,EAAM,KAAE9/D,KAAUihJ,EAAgB,CACzD,MAAMC,EAAatmH,EAAOzgC,cAAe,UAAW,CACnD,YAAa2lE,EAAOjpE,KACpB,YAAamJ,IAGRghJ,EAAelhF,EAAOjpE,QAC3BmqJ,EAAelhF,EAAOjpE,MAAS,IAGhCmqJ,EAAelhF,EAAOjpE,MAAQpC,KAAMysJ,GACpCtmH,EAAOrgC,OAAQ2mJ,EAAY5kI,EAC5B,CAEA,OAAO0kI,CACR,CAcQ,+BAAA7B,CAAiCvkH,EAAgBgtG,GACxD,MACMuZ,EADsBtsJ,KAAKusJ,8BAA+BxmH,EAAQgtG,GAC1BpkH,QAAkD,CAAE6D,EAAK65H,KACtG,MAAM5kI,EAAW4kI,EAAWrmE,eAAiBjgD,EAAOyb,qBAAsB6qG,EAAWrmE,eACrF,IAAIwmE,EAAkDh6H,EAAK65H,EAAWrqJ,MASlEyqJ,GAAa,EAEjB,GAAKD,GAAkBA,EAAe/7H,OAAS+7H,EAAezgH,IAAM,CACpD/rC,KAAKwrJ,0BAA2Ba,EAAWrqJ,MAE9CqpJ,iBACX74H,EAAKxyB,KAAKgsJ,qBAAsBK,EAAWrqJ,OAAWwwB,EAAK65H,EAAWrqJ,MAEtEyqJ,GAAa,EAGdD,EAAiB,IAClB,CAaA,OAXMC,IACLj6H,EAAK65H,EAAWrqJ,MAAS,IACrBwqJ,EACH,CAAEH,EAAWlhJ,MAAQsc,IAIlB4kI,EAAWrmE,eACfjgD,EAAO9/B,OAAQomJ,EAAWrmE,eAGpBxzD,CAAG,GACR,CAAC,GAUJ,OAAO,GACN85H,GACAvlI,GAAS,IAAI,GACZA,EAAM0J,OAASsV,EAAOu1D,uBAAwBy3C,EAAa,CAAE,IAC7DhsH,EAAMglB,KAAOhG,EAAOub,iBAAkByxF,EAAa,SAGtD,CAWQ,6BAAAwZ,CAA+BxmH,EAAgBgtG,GACtD,MAAM2Z,EAAmB/rJ,MACvBrB,KAAMymC,EAAO4b,cAAeoxF,IAC5BgZ,SAAS,EAAI9rJ,WACb,IAAMA,EAAKsO,GAAI,UAAW,WACzB,MAAO,GAGR,MAAMvM,EAAO/B,EAAKy6B,aAAc,aAC1BvvB,EAAOlL,EAAKy6B,aAAc,aAEhC,MAAO,CACN,CACCsrD,cAAe/lF,EACf+B,OACAmJ,QAED,IAGGwhJ,EAAwC,GACxCC,EAAuC,GAE7C,UAAYP,KAAcK,EAAmB,CAC5C,GAAyB,QAApBL,EAAWlhJ,KAAiB,CAMDuhJ,EAAiBr1H,MAC/Cw1H,GAAmBA,EAAgB7qJ,OAASqqJ,EAAWrqJ,MAAiC,UAAzB6qJ,EAAgB1hJ,QAI/EwhJ,EAAmB/sJ,KAAM,CACxBomF,cAAe,KACfhkF,KAAMqqJ,EAAWrqJ,KACjBmJ,KAAM,SAGT,CAEA,GAAyB,UAApBkhJ,EAAWlhJ,KAAmB,CAMLuhJ,EAAiBr1H,MAC7Cw1H,GAAmBA,EAAgB7qJ,OAASqqJ,EAAWrqJ,MAAiC,QAAzB6qJ,EAAgB1hJ,QAI/EyhJ,EAAkBxtJ,QAAS,CAC1B4mF,cAAe,KACfhkF,KAAMqqJ,EAAWrqJ,KACjBmJ,KAAM,OAGT,CACD,CAEA,MAAO,IACHwhJ,KACAD,KACAE,EAEL,CASQ,oBAAAZ,CAAsBhqJ,GAC7B,MAAMsd,EAAQtd,EAAKjF,MAAO,KACpB+vJ,EAAQpgJ,IAAM9P,UAAW,EAAG,GAMlC,OAAsB,IAAjB0iB,EAAMhnB,OACH,GAAIgnB,EAAMxd,MAAO,EAAG,GAAI5E,KAAM,QAAW4vJ,IAM1C,GAAIxtI,EAAMpiB,KAAM,QAAW4vJ,GACnC,EClec,MAAMC,WAA0B,GAI9C,qBAAkB9qH,GACjB,MAAO,mBACR,CAKA,mBAAkBW,GACjB,MAAO,CAAEknH,GACV,CAKO,IAAA1nH,GACSpiC,KAAK+/B,OACAotE,QAAQx1E,KAEvB2mC,YAAawqF,IAElB9oJ,KAAKgtJ,kBACLhtJ,KAAKitJ,eACN,CAOO,8BAAAC,CACN3vF,EACA58B,EACAsD,GAEA,MAAMkpH,EAA+CntJ,KAAK+/B,OAAOsC,QAAQj6B,IAAK,yBAE9EpI,KAAK+/B,OAAO3nC,MAAM63E,cAAe,CAAE2X,WAAuB,QAAX3jD,IAAoB,KAClE,MAAM2hD,EAAmBunE,EAAsBlD,iCAAkChmH,EAAQtD,GAEzF3gC,KAAK4Q,KAA0C,uBAAwB,CACtE2sD,eACAr9D,QAAS0lF,EACT3hD,UACE,GAEL,CAKQ,eAAA+oH,GACP,MAAMjtH,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACfu/B,EAAOoI,EAAOotE,QAAQx1E,KACtB2lC,EAAe3lC,EAAKn0B,SACpB2pJ,EAA+CntJ,KAAK+/B,OAAOsC,QAAQj6B,IAAK,yBAI9EpI,KAAK4P,SAA2C0tD,EAAc,kBAAkB,CAAE9nD,EAAK1S,KAClE,SAAfA,EAAKmhC,QAAsBlE,EAAO3nC,MAAM2oC,UAAWhB,EAAO3nC,MAAMoL,SAASm9B,YAC7EnrB,EAAInJ,MACL,GACE,CAAEW,SAAU,YAEfhN,KAAK4P,SAA2C0tD,EAAc,kBAAkB,CAAE9nD,EAAK1S,KACtF,MAAMy6D,EAAez6D,EAAKy6D,aAC1B,IAAIr9D,EAGJ,GAAK4C,EAAK5C,QACTA,EAAU4C,EAAK5C,YACT,CACN,IAAIktJ,EAAc,GAEb7vF,EAAad,QAAS,aAC1B2wF,EC9MU,SAAiCtqJ,GAC/C,OAAOA,EACLgU,QAAS,2DAA2D,CAAEu2I,EAAWC,IAG3D,GAAjBA,EAAOh1J,OACJ,IAGDg1J,IAGPx2I,QAAS,mBAAoB,GAChC,CDiMmB,CAAwBymD,EAAad,QAAS,cACjDc,EAAad,QAAS,kBE/MrCpkC,GADwCA,EFiNLklC,EAAad,QAAS,eE9MvD3lD,QAAS,KAAM,SAEfA,QAAS,KAAM,QACfA,QAAS,KAAM,QAEfA,QAAS,cAAe,WAExBA,QAAS,SAAU,QAEnBA,QAAS,MAAO,4BAEhBA,QAAS,MAAO,UAChBA,QAAS,MAAO,UAEhBA,QAAS,QAAS,YAEVqb,SAAU,YAAekG,EAAKlG,SAAU,WAEjDkG,EAAO,MAAOA,SF4LX+0H,EEtLG/0H,GFyLJn4B,EAAUF,KAAK+/B,OAAOj9B,KAAK2kF,cAAcL,OAAQgmE,EAClD,CErNY,IAA0B/0H,EFuNtC,MAAMvnB,EAAY,IAAI1E,EAAWpM,KAAM,uBAEvCA,KAAK4Q,KAAyCE,EAAW,CACxD5Q,UACAq9D,eACAC,aAAc16D,EAAK06D,aACnBv5B,OAAQnhC,EAAKmhC,SAMTnzB,EAAUzE,KAAKF,QACnBqJ,EAAInJ,OAGLsrB,EAAKwnC,sBAAsB,GACzB,CAAEnyD,SAAU,QAEfhN,KAAK4P,SAA6C5P,KAAM,uBAAuB,CAAEwV,EAAK1S,KACrF,GAAKA,EAAK5C,QAAQosC,QACjB,OAGD,MAKMihH,EALiBvtJ,KAAK+/B,OAAOj9B,KAKE/E,QAAS+E,EAAK5C,QAAS,oBAE3B,GAA5BqtJ,EAAc3mH,aAInBpxB,EAAInJ,OAIJjU,EAAM0tC,QAAQ,KACb9lC,KAAK4Q,KAAsC,mBAAoB,CAC9D1Q,QAASqtJ,EACTtpH,OAAQnhC,EAAKmhC,OACbs5B,aAAcz6D,EAAKy6D,aACnBC,aAAc16D,EAAK06D,cACjB,IACD,GACD,CAAExwD,SAAU,QAEfhN,KAAK4P,SAA0C5P,KAAM,oBAAoB,CAAEwV,EAAK1S,KAC/EA,EAAK42I,YAAcyT,EAAsBpC,0BAA2BjoJ,EAAK5C,QAAS,GAChF,CAAE8M,SAAU,OAChB,CAKQ,aAAAigJ,GACP,MAAMltH,EAAS//B,KAAK+/B,OACdu8G,EAAgBv8G,EAAO3nC,MAAMoL,SAE7B85D,EADOv9B,EAAOotE,QAAQx1E,KACFn0B,SAEpBgqJ,EAAY,CAAEh4I,EAAgC1S,KACnD,MAAMy6D,EAAez6D,EAAKy6D,aAE1Bz6D,EAAKqzB,iBAELn2B,KAAKktJ,+BAAgC3vF,EAAc++E,EAAc37G,UAAWnrB,EAAIxT,KAAM,EAGvFhC,KAAK4P,SAAiC0tD,EAAc,OAAQkwF,EAAW,CAAExgJ,SAAU,QACnFhN,KAAK4P,SAAgC0tD,EAAc,OAAO,CAAE9nD,EAAK1S,KAG1Di9B,EAAO3nC,MAAM2oC,UAAWhB,EAAO3nC,MAAMoL,SAASm9B,WAGnD6sH,EAAWh4I,EAAK1S,GAFhBA,EAAKqzB,gBAGN,GACE,CAAEnpB,SAAU,QAEfhN,KAAK4P,SAA8C5P,KAAM,wBAAwB,CAAEwV,EAAK1S,KACvF,MAAM5C,EAAU6/B,EAAOj9B,KAAKskF,OAAQtkF,EAAK5C,SAEzCo9D,EAAa1sD,KAAwC,kBAAmB,CACvE2sD,aAAcz6D,EAAKy6D,aACnBr9D,UACA+jC,OAAQnhC,EAAKmhC,QACX,GACD,CAAEj3B,SAAU,QAEfhN,KAAK4P,SAA4C0tD,EAAc,mBAAmB,CAAE9nD,EAAK1S,KAClFA,EAAK5C,QAAQosC,UAClBxpC,EAAKy6D,aAAab,QAAS,YAAa18D,KAAK+/B,OAAOj9B,KAAK2kF,cAAcN,OAAQrkF,EAAK5C,UACpF4C,EAAKy6D,aAAab,QAAS,aAAc+sF,GAAiB3mJ,EAAK5C,WAG5C,OAAf4C,EAAKmhC,QACTlE,EAAO3nC,MAAM4nG,cAAes8C,EAAc37G,UAC3C,GACE,CAAE3zB,SAAU,OAChB,EGpTc,MAAMygJ,WAAuCj+I,KAC1Ck+I,OAAqC,GAO/C,GAAAx/I,CAAKymE,EAAiC5uC,GAC5C,MAAMr3B,EAAQ1O,KAAK0tJ,OAGbC,EAASj/I,EAAO,GACtB1O,KAAK4tJ,kBAAmBj5E,GACxB,MAAMk5E,EAASn/I,EAAO,GAGjBi/I,IAAWE,GAAWC,GAAoBH,EAAQE,IACtD7tJ,KAAK4Q,KAAiC,aAAc,CACnDm9I,cAAeJ,EACfK,cAAeH,EACf9nH,UAGH,CAQO,MAAA9/B,CAAQpG,EAAYkmC,GAC1B,MAAMr3B,EAAQ1O,KAAK0tJ,OAEbC,EAASj/I,EAAO,GACtB1O,KAAKiuJ,kBAAmBpuJ,GACxB,MAAMguJ,EAASn/I,EAAO,GAGjBi/I,IAAWE,GAAWC,GAAoBH,EAAQE,IACtD7tJ,KAAK4Q,KAAiC,aAAc,CACnDm9I,cAAeJ,EACfK,cAAeH,EACf9nH,UAGH,CAMQ,iBAAA6nH,CAAmBj5E,GAC1B,MAAMjmE,EAAQ1O,KAAK0tJ,OACb9oJ,EAAQ8J,EAAMu2G,WAAWhlH,GAAQA,EAAKJ,KAAO80E,EAAW90E,KAG9D,GAAKiuJ,GAAoBn5E,EAAYjmE,EAAO9J,IAC3C,OAIIA,GAAS,GACb8J,EAAMlH,OAAQ5C,EAAO,GAKtB,IAAIpK,EAAI,EAER,KAAQkU,EAAOlU,IAAO0zJ,GAAkBx/I,EAAOlU,GAAKm6E,IACnDn6E,IAGDkU,EAAMlH,OAAQhN,EAAG,EAAGm6E,EACrB,CAOQ,iBAAAs5E,CAAmBpuJ,GAC1B,MAAM6O,EAAQ1O,KAAK0tJ,OACb9oJ,EAAQ8J,EAAMu2G,WAAWhlH,GAAQA,EAAKJ,KAAOA,IAG9C+E,GAAS,GACb8J,EAAMlH,OAAQ5C,EAAO,EAEvB,EAQD,SAASkpJ,GAAoBnyJ,EAAwBhD,GACpD,OAAOgD,GAAKhD,GAAKgD,EAAEqR,UAAYrU,EAAEqU,UAAYmhJ,GAAiBxyJ,EAAEouC,UAAaokH,GAAiBx1J,EAAEoxC,QACjG,CAKA,SAASmkH,GAAkBvyJ,EAAwBhD,GAClD,OAAKgD,EAAEqR,SAAYrU,EAAEqU,YAETrR,EAAEqR,SAAYrU,EAAEqU,WAKrBmhJ,GAAiBxyJ,EAAEouC,SAAYokH,GAAiBx1J,EAAEoxC,QAC1D,CAMA,SAASokH,GAAiBpkH,GACzB,OAAOppC,MAAMC,QAASmpC,GAAYA,EAAQloB,OAAO3kB,KAAM,KAAQ6sC,CAChE,CCnJA,qbC2CaqkH,GAAoB,YAKpBC,GAA6B,qBAKnC,SAASC,GAAUnvJ,GACzB,QAAMA,EAAKoP,GAAI,cAINpP,EAAKyxC,kBAAmB,SAClC,CAgDO,SAAS29G,GACfx3I,EACAgvB,EACAxhC,EAGI,CAAC,GAEL,IAAMwS,EAAQxI,GAAI,oBAQjB,MAAM,IAAIb,EACT,sCACA,KACA,CAAEqJ,YAsBJ,OAlBAgvB,EAAOtgC,aAAc,kBAAmB,QAASsR,GAEjDgvB,EAAOmB,SAAUknH,GAAmBr3I,GACpCgvB,EAAO2Y,kBAAmB,UAAU,EAAM3nC,GAC1CA,EAAQq6B,gBAAkB,GAE1BrL,EAAO2Y,kBAAmB,cAAe,GAAI3nC,GAExCxS,EAAQk0C,OA+EP,SAAmB1hC,EAAsBy3I,GAC/C,MAAMC,EAAc13I,EAAQ65B,kBAAmB,eAE/C69G,EAAY7uJ,KAAM4uJ,EACnB,CAlFEE,CAAU33I,EAASxS,EAAQk0C,OAGvBl0C,EAAQoqJ,oBAgSd,SAA6BC,EAAqC7oH,GACjE,MAAM8oH,EAAkB9oH,EAAOoY,gBAAiB,MAAO,CAAEtf,MAAO,mCAAoC,SAAU+c,GAC7G,MAAMG,EAAa/7C,KAAK87C,aAAcF,GAGhC03D,EAAO,IAAIvB,GAQjB,OAPAuB,EAAK1hG,IAAK,UAAW,IAGrB0hG,EAAKp7E,SAEL6jB,EAAWp2C,YAAa2tG,EAAKv8F,SAEtBglC,CACR,IAGAhW,EAAOrgC,OAAQqgC,EAAOub,iBAAkBstG,EAAe,GAAKC,GAC5D9oH,EAAOmB,SAAU,CAAE,mCAAqC0nH,EACzD,CAlTEE,CAAoB/3I,EAASgvB,GAG9BgpH,GAAsBh4I,EAASgvB,GAExBhvB,CACR,CAMA,SAASi4I,GAAcj4I,EAAsB49D,EAAiC5uC,GAK7E,GAJK4uC,EAAW5qC,SACfhE,EAAOmB,SAAUnX,GAAS4kD,EAAW5qC,SAAWhzB,GAG5C49D,EAAWpvE,WACf,UAAYxO,KAAO49E,EAAWpvE,WAC7BwgC,EAAOtgC,aAAc1O,EAAK49E,EAAWpvE,WAAYxO,GAAOggB,EAG3D,CAMA,SAAS,GAAiBA,EAAsB49D,EAAiC5uC,GAKhF,GAJK4uC,EAAW5qC,SACfhE,EAAOO,YAAavW,GAAS4kD,EAAW5qC,SAAWhzB,GAG/C49D,EAAWpvE,WACf,UAAYxO,KAAO49E,EAAWpvE,WAC7BwgC,EAAOr/B,gBAAiB3P,EAAKggB,EAGhC,CAMO,SAASg4I,GACfh4I,EACAgvB,EACA73B,EAAiG8gJ,GACjG/oJ,EAAoG,IAEpG,MAAMyI,EAAQ,IAAI++I,GAElB/+I,EAAMe,GAA+B,cAAc,CAAE+F,EAAK1S,KACpDA,EAAKirJ,eACT9nJ,EAAQ8Q,EAASjU,EAAKirJ,cAAejrJ,EAAKijC,QAGtCjjC,EAAKkrJ,eACT9/I,EAAK6I,EAASjU,EAAKkrJ,cAAelrJ,EAAKijC,OACxC,IAMDA,EAAO2Y,kBAAmB,gBAHyB,CAAE3nC,EAAS49D,EAAY5uC,IAAYr3B,EAAMR,IAAKymE,EAAY5uC,IAG7ChvB,GAChEgvB,EAAO2Y,kBAAmB,mBAH+B,CAAE3nC,EAASlX,EAAIkmC,IAAYr3B,EAAMzI,OAAQpG,EAAIkmC,IAGhChvB,EACvE,CAsEO,SAASk4I,GACfz6G,EACAzO,EACAxhC,EAEI,CAAC,GA6BL,OA3BAwhC,EAAOmB,SAAU,CAAE,sBAAuB,8BAAgCsN,GAE1EzO,EAAOtgC,aAAc,OAAQ,UAAW+uC,GACxCzO,EAAOtgC,aAAc,WAAY,KAAM+uC,GAElCjwC,EAAQk0C,OACZ1S,EAAOtgC,aAAc,aAAclB,EAAQk0C,MAAOjE,GAInDzO,EAAOtgC,aAAc,kBAAmB+uC,EAASxT,WAAa,QAAU,OAAQwT,GAGhFA,EAAS/kC,GAAoC,qBAAqB,CAAE+F,EAAKjC,EAAUhF,KAClFw3B,EAAOtgC,aAAc,kBAAmB8I,EAAK,QAAU,OAAQimC,EAAU,IAG1EA,EAAS/kC,GAAoC,oBAAoB,CAAE+F,EAAKjC,EAAUhF,KAC5EA,EACJw3B,EAAOmB,SAAU,qCAAsCsN,GAEvDzO,EAAOO,YAAa,qCAAsCkO,EAC3D,IAGDu6G,GAAsBv6G,EAAUzO,GAEzByO,CACR,CAiBO,SAAS8tC,GACf3hD,EACAvoC,GAEA,MAAMgiD,EAAkBzZ,EAAUuX,qBAElC,GAAKkC,EAAkB,CACtB,MAAM80G,EAA8BC,GAAgCxuH,GAIpE,GAAKuuH,EACJ,OAAO92J,EAAMqpD,YAAarpD,EAAMkpD,iBAAkBlH,EAAiB80G,GAErE,CAEA,OAAO92J,EAAMkiC,OAAOgoD,0BAA2B3hD,EAChD,CA0EA,SAAS,KACR,OAAO,IACR,CAmCO,SAASyuH,GAAkCC,GACjD,MAAMC,EAA4Bv4I,IACjC,MAAM,MAAEoM,EAAK,YAAEosI,EAAW,aAAEC,GAAiBz4I,EAAQ8I,cAAcF,YAAayC,iBAAkBrL,GAElG,OAAO6nG,WAAYz7F,IAAYy7F,WAAY2wC,IAAiB,IAAQ3wC,WAAY4wC,IAAkB,IAG7FC,EAAsBJ,EAAc1mI,cAE1C,IAAM8mI,EACL,OAAO,EAIR,IAAIC,EAAcJ,EAAyBG,GAM3C,IAAIE,EAAe,EAEfC,EAAiBH,EAErB,KAAQ3wC,MAAO4wC,IAAgB,CAG9B,GAFAE,EAAiBA,EAAejnI,gBAEzBgnI,EARmB,EASzB,OAAO,EAGRD,EAAcJ,EAAyBM,EACxC,CAEA,OAAOF,CACR,CCvdO,MAAMG,GAAkC,qBAKxC,SAASC,GAAoB3uG,EAAsC8kB,EAAuB3rC,GAChG,QAAS6mB,GAAemtG,GAAUntG,KAAkB7mB,EAAOm3C,SAAUxL,EACtE,CAoCO,SAASkpF,GAAgCxuH,GAC/C,OAAOA,EAAUjG,aAAcm1H,GAChC,C,eClEI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQvyH,OAAvB,MC6DMyyH,GAA+B,CAAE,SAAU,SAG3CC,IAA4B,IAAIrhG,WAAYC,gBC5ElD,mID4E+E,iBAAkBjoD,WAE3FspJ,GAAqC,kCAY5B,MAAMC,WAAyB,GAMrCC,8BAAgD,KAKxD,qBAAkBluH,GACjB,MAAO,kBACR,CAKA,mBAAkBW,GACjB,MAAO,CAAEugH,GAAO/G,GACjB,CAKO,IAAAh6G,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdy7E,EAAcz7E,EAAOotE,QAAQx1E,KAInC33B,KAAKyP,GAAoC,oBAAoB,CAAE+F,EAAK1S,EAAMq9B,KACzEq7E,EAAY11E,QAAQC,IACnB,UAAYzvC,KAAQklH,EAAYh4G,SAASs3C,MACnC3a,EACJ4F,EAAOO,YAAa2pH,GAAoC35J,GAExDyvC,EAAOmB,SAAU+oH,GAAoC35J,EAEvD,IAGK6pC,GACLJ,EAAO3nC,MAAM0tC,QAAQC,IACpBA,EAAOgjD,yBAA0B8mE,GAAiC,GAEpE,IAGD7vJ,KAAKowJ,+BACLpwJ,KAAKqwJ,0CACLrwJ,KAAKswJ,4CACLtwJ,KAAKuwJ,8CACLvwJ,KAAKwwJ,0DACLxwJ,KAAKywJ,2BACLzwJ,KAAK0wJ,kCACL1wJ,KAAK2wJ,iCACL3wJ,KAAK4wJ,iCACN,CAKgB,OAAA3oI,GACfpa,MAAMoa,UAENjoB,KAAKmwJ,8BAAgC,IACtC,CAWQ,gBAAAU,CAAkBC,EAA6BrpI,GACtD,MAAMsY,EAAS//B,KAAK+/B,OACdy7E,EAAcz7E,EAAOotE,QAAQx1E,KAE7BstE,EAAmBllE,EAAO3nC,MAAMkiC,OAAO6mD,0BAA2B2vE,EAAoB,iBAAiB,GAE7G/wH,EAAOkB,QAAS,kBAAmB,CAClCxZ,SAAUsY,EAAO3nC,MAAMkpD,iBAAkBwvG,EAAoBrpI,GAC7DliB,WAAY0/F,IAGbuW,EAAY/7E,QACZ+7E,EAAYr8C,sBACb,CAaQ,kBAAA4xF,CACP/gJ,EACAN,EACAC,EACApL,GAEAvE,KAAK4P,SAAUI,EAASN,GAAO,IAAKxT,KAE9B8D,KAAKmgC,WACTxwB,KAAazT,EACd,GACEqI,EACJ,CAaQ,4CAAAysJ,GACP,MAEM3zE,EAFSr9E,KAAK+/B,OACC3nC,MACQoL,SAASm9B,UAChCuuH,EAA8BC,GAAgC9xE,GAEpE,IAAM6xE,EACL,OAAO,EASR,MAAM+B,EAAuB5zE,EAAenlC,qBAI5C,OAFAl4C,KAAK6wJ,iBAAkBI,EAAsB/B,IAEtC,CACR,CASQ,4BAAAkB,GACP,MAAMrwH,EAAS//B,KAAK+/B,OACdzF,EAASyF,EAAO3nC,MAAMkiC,OACtBt/B,EAAI+kC,EAAOxC,OAAOviC,EAClBk2J,EAAe,CACpB5F,OAAQtwJ,EAAG,iCACXm2J,MAAOn2J,EAAG,iCAGX+kC,EAAOotE,QAAQ/vB,mBAAmB3tE,GAAkC,UAAU,CAAE+F,EAAK1S,EAAMumE,KAC1F,MAAMloB,EAAckoB,EAAc/B,OAAOf,cAAezjE,EAAK7C,MAE7D,GAAMkhD,GAKD2uG,GAAoB3uG,EAAar+C,EAAK7C,KAAMq6B,GAAW,EAqmB/D,SACC85C,EACA88E,EACAE,GACA,MAAMC,EAAoBj9E,EAAWj2B,gBAAiB,MAAO,CAC5Dtf,MAAO,2CACL,SAAU+c,GACZ,MAAM01G,EAAoBtxJ,KAAK87C,aAAcF,GAK7C,OAYF,SAAwB01G,EAAgCJ,GACvD,UAAYzpI,KAAYsoI,GAA+B,CACtD,MAAMwB,EAAiB,IAAIp5H,GAAU,CACpCpgB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,iCACA,kCAAmCpX,KAEpCkwF,MAAOu5C,EAAczpI,GACrB,cAAe,QAEhBvP,SAAU,CACTo5I,EAAkBzxI,cAAc2xI,WAAYxB,IAA2B,MAIzEsB,EAAkB3rJ,YAAa4rJ,EAAer5H,SAC/C,CACD,CAnCEu5H,CAAeH,EAAmBJ,GAqCpC,SAA0BI,GACzB,MAAMI,EAAgB,IAAIv5H,GAAU,CACnCpgB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,yCAKHyyH,EAAkB3rJ,YAAa+rJ,EAAcx5H,SAC9C,CAhDEy5H,CAAiBL,GAEVA,CACR,IAGAl9E,EAAW1uE,OAAQ0uE,EAAW9yB,iBAAkB8vG,EAAmB,OAASC,EAC7E,CArnBIO,CAAoBvoF,EAActjC,OAAQmrH,EAAc/vG,GAEpCA,EAAYvQ,kBAAmB,eAEvChxC,MAAM,IACVI,KAAKmgC,UAAYnlC,EAAG,8EAAiF,IAE9G,IACE,CAAEgS,SAAU,OAChB,CA2BQ,uDAAAwjJ,GACP,MAAMzwH,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACfilF,EAAiBjlF,EAAMoL,SAASm9B,UAChCrG,EAASliC,EAAMkiC,OACfkhF,EAAcz7E,EAAOotE,QAAQx1E,KA6FnC,SAASk6H,EAA0BpqI,GAClC,MAAO,yCAA0CA,GAClD,CA3FAznB,KAAK+wJ,mBAA+Cv1C,EAAYh4G,SAAU,YAAY,CAAEgS,EAAKs8I,KAC5F9xJ,KAAK+xJ,qBAAsBv8I,EAAKs8I,EAAc,GAC5C,CAAEnkJ,QAAS,CAAE2gJ,GAAU,SAAWthJ,SAAU,SAM/ChN,KAAK+wJ,mBAA+C1zE,EAAgB,gBAAgB,CAAE7nE,EAAK1S,KAEpFA,EAAKwpE,cAMXvsC,EAAO3nC,MAAM0tC,QAAQC,IACpBA,EAAOgjD,yBAA0B8mE,GAAiC,GAChE,IAKJ7vJ,KAAK+wJ,mBAAyC34J,EAAMoL,SAAU,eAAe,KAC5E,MAAMytJ,EAAuB5zE,EAAenlC,qBAE5C,GAAK+4G,EAAuB,CAG3B,GAAKnB,GAFuB/vH,EAAOotE,QAAQ7lC,OAAOf,cAAe0qF,GAEnBA,EAAsB32H,GACnE,MAEF,CAEAyF,EAAO3nC,MAAM0tC,QAAQC,IACpBA,EAAOgjD,yBAA0B8mE,GAAiC,GAChE,IAMJ7vJ,KAAK+wJ,mBAA4ChxH,EAAOotE,QAAQ/vB,mBAAoB,aAAa,CAAE5nE,EAAK1S,EAAMumE,KAC7G,MAAMtjC,EAASsjC,EAActjC,OAE7B,GAAK/lC,KAAKmwJ,8BAAgC,CACzC,MAAM6B,EAAsB3oF,EAAc/B,OAAOf,cAAevmE,KAAKmwJ,+BAEhE6B,IAEJjsH,EAAOO,YAAaypH,GAA6B/yJ,IAAK60J,GAA4BG,GAElFhyJ,KAAKmwJ,8BAAgC,KAEvC,CAEA,MAAMc,EAAuBnuJ,EAAK69B,UAAUuX,qBAE5C,IAAM+4G,EACL,OAGD,MAAMe,EAAsB3oF,EAAc/B,OAAOf,cAAe0qF,GAEhE,IAAMnB,GAAoBkC,EAAqBf,EAAsB32H,GACpE,OAGD,MAAM40H,EAA8BC,GAAgCrsJ,EAAK69B,WAEnEuuH,IAINnpH,EAAOmB,SAAU2qH,EAA0B3C,GAA+B8C,GAI1EhyJ,KAAKmwJ,8BAAgCc,EAAoB,IAG1DjxJ,KAAK+wJ,mBAAoDhxH,EAAO+E,GAAG7F,aAAc,oBAAoB,CAAEzpB,EAAKxT,EAAM8zB,KAC3GA,GACLiK,EAAO3nC,MAAM0tC,QAAQC,IACpBA,EAAOgjD,yBAA0B8mE,GAAiC,GAEpE,GAMF,CAcQ,oBAAAkC,CAAsBv8I,EAAoCs8I,GACjE,MAAM/xH,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACfilF,EAAiBjlF,EAAMoL,SAASm9B,UAChCrG,EAASliC,EAAMkiC,OACfkhF,EAAcz7E,EAAOotE,QAAQx1E,KAG7BiuE,Eze5LD,SACN33E,EACAgB,GAEA,MAAMgjI,EAA4B,GAAmChkI,EAASgB,GAE9E,MAAqC,SAA9BgjI,GAAsE,UAA9BA,CAChD,CyeqLoBC,CADFJ,EAAa7jI,QACqB8R,EAAOxC,OAAOtO,0BAC1D+iI,EAAsBx2C,EAAYh4G,SAASm9B,UAAUuX,qBAE3D,IAAIi6G,EAGCrC,GAAoBkC,EAJIjyH,EAAOotE,QAAQ7lC,OAAOnB,eAAgB6rF,GAIC13H,GACnE63H,EAA8BnyJ,KAAKoyJ,qCAAsCxsD,GAIhEvoB,EAAeloC,YACxBg9G,EAA8BnyJ,KAAKqyJ,+CAAgDzsD,GAGzEksD,EAAa1jI,WACvB+jI,EAA8BnyJ,KAAKsyJ,8CAA+C1sD,IAG9EusD,IACJL,EAAa37H,iBACb3gB,EAAInJ,OAEN,CAYQ,oCAAA+lJ,CAAsCxsD,GAC7C,MACMxtG,EADS4H,KAAK+/B,OACC3nC,MAEf82J,EAA8BC,GADb/2J,EAAMoL,SAASm9B,WAGtC,OAAOvoC,EAAM0tC,QAAQC,IAEpB,IAAKmpH,EAsBJ,OAFAnpH,EAAO64D,sBAAuBixD,GAAiCjqD,EAAY,QAAU,WAE9E,EAXP,KAVwBspD,KAAkCtpD,EAAY,QAAU,WAa/E,OAFA7/D,EAAOgjD,yBAA0B8mE,KAE1B,EAWT,OAAO,CAAK,GAEd,CAgBQ,8CAAAwC,CAAgDzsD,GACvD,MAAM7lE,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACfkiC,EAASliC,EAAMkiC,OACfi4H,EAAuBxyH,EAAOsC,QAAQj6B,IAAK,UAG3CoqJ,EAA8BD,EAAaE,iCAAkC7sD,GAGnF,QAAKkqD,GAF8B/vH,EAAOotE,QAAQ7lC,OAAOf,cAAeisF,GAEnBA,EAA6Bl4H,KACjFliC,EAAM0tC,QAAQC,IACbwsH,EAAaG,yBAA0BF,GACvCzsH,EAAO64D,sBAAuBixD,GAAiCjqD,EAAY,SAAW,QAAS,KAKzF,EAIT,CAWQ,6CAAA0sD,CAA+C1sD,GACtD,MAAM7lE,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACfkiC,EAASliC,EAAMkiC,OACfgtC,EAASvnC,EAAOotE,QAAQ7lC,OACxB+V,EAAiBjlF,EAAMoL,SAASm9B,UAEhCgyH,EAAoB/sD,EACzBvoB,EAAe3lC,kBAAmBpD,WAClC+oC,EAAex8C,mBAAoBwT,UAKpC,QAAKy7G,GAHoBxoF,EAAOf,cAAeosF,GAGJA,EAA0Br4H,KACpEliC,EAAM0tC,QAAQC,IACbA,EAAOwX,aAAco1G,EAAoB,MACzC5sH,EAAO64D,sBAAuBixD,GAAiCjqD,EAAY,QAAU,SAAU,KAGzF,EAIT,CAOQ,uCAAAyqD,GACP,MAAMtwH,EAAS//B,KAAK+/B,OACdy7E,EAAcz7E,EAAOotE,QAAQx1E,KAEnC33B,KAAK+wJ,mBAAgDv1C,EAAYh4G,SAAU,aAAa,CAAEgS,EAAKs8I,KAC9F,MAAM37C,EAAwC27C,EAAa51G,UFhiB3C89E,QAAS,mCEkiBzB,IAAM7jB,EACL,OAGD,MAAMy8C,EF5hBF,SAAsC72G,GAC5C,OAAOA,EAAW82G,UAAUvtI,SAAU,yCAA4C,SAAW,OAC9F,CE0hB0BwtI,CAA6B38C,GAC9Ci7C,EFthBF,SAAsCr1G,EAAyBF,GACrE,MAAMk3G,EAAmBh3G,EAAWi+E,QAAS,cAE7C,OAAOn+E,EAAaiQ,aAAcinG,EACnC,CEkhB6BC,CAA6B78C,EAAQqF,EAAY3/D,cACrEi1G,EAAqB/wH,EAAOotE,QAAQ7lC,OAAOnB,eAAgBirF,GAEjEpxJ,KAAK6wJ,iBAAkBC,EAAqB8B,GAE5Cd,EAAa37H,iBACb3gB,EAAInJ,MAAM,GAEZ,CAeQ,yCAAAikJ,GACP,MAAMvwH,EAAS//B,KAAK+/B,OACdY,EAAYZ,EAAO3nC,MAAMoL,SAASm9B,UAClC66E,EAAcz7E,EAAOotE,QAAQx1E,KAEnC33B,KAAK+wJ,mBAA4Cv1C,EAAYh4G,SAAU,SAAS,CAAEgS,EAAKs8I,KAGtF,GAAuB,YAAlBt8I,EAAImkC,WACR,OAGD,MAAMs3G,EAAuBtwH,EAAUuX,qBACjC85G,EAAsBjyH,EAAOotE,QAAQ7lC,OAAOf,cAAe0qF,GAE3D32H,EAASyF,EAAO3nC,MAAMkiC,OAC5B,IAAI24H,EAICjzJ,KAAKgxJ,+CACTiC,GAAa,EAIJnD,GAAoBkC,EAAqBf,EAAsB32H,KACxEt6B,KAAK6wJ,iBAAkBI,EAAsBa,EAAahP,OAAS,SAAW,SAE9EmQ,GAAa,GAGTA,IACJnB,EAAa37H,iBACb3gB,EAAInJ,OACL,GACE,CAAEsB,QAAS2gJ,IACf,CAeQ,2CAAAiC,GACP,MACMjzF,EADSt9D,KAAK+/B,OACQotE,QAAQx1E,KAAKn0B,SAGzCxD,KAAK+wJ,mBAAiDzzF,EAAc,cAAc,CAAE9nD,EAAK1S,KACnF9C,KAAKgxJ,iDAKTluJ,EAAK69B,UAAY28B,EAAa38B,UAC/B,GACE,CAAE3zB,SAAU,SAEV,EAAI/D,UAIRjJ,KAAK+wJ,mBAA8CzzF,EAAc,WAAW,CAAE9nD,EAAK1S,KAC7D,KAAhBA,EAAKmrB,SACTjuB,KAAKgxJ,8CACN,IAIDhxJ,KAAK+wJ,mBAAuDzzF,EAAc,oBAAoB,KAC7Ft9D,KAAKgxJ,8CAA8C,GACjD,CAAEhkJ,SAAU,QAEjB,CAUQ,wBAAAyjJ,GACP,MAAM1wH,EAAS//B,KAAK+/B,OACdy7E,EAAcz7E,EAAOotE,QAAQx1E,KAC7Bv/B,EAAQ2nC,EAAO3nC,MACfkiC,EAASliC,EAAMkiC,OAErBt6B,KAAK+wJ,mBAA6Cv1C,EAAYh4G,SAAU,UAAU,CAAEgS,EAAKs8I,KAGxF,GAAuB,YAAlBt8I,EAAImkC,WACR,OAGD,MAAMu1G,EAA8BC,GAAgC/2J,EAAMoL,SAASm9B,WAGnF,IAAMuuH,EACL,OAGD,MAAM1oI,EAAYsrI,EAAatrI,UACzB0sI,EAAsB96J,EAAMoL,SAASm9B,UAAUuX,qBAG/Ci7G,EAA+B,WAAb3sI,EAGxB,GAJ0D,WAAhC0oI,IAE6BiE,EAGtDpzH,EAAOkB,QAAS,SAAU,CACzBN,UAAWvoC,EAAMwpD,gBAAiBsxG,EAAsB,YAEnD,CACN,MAAMnsI,EAAQuT,EAAOk3C,yBACpBp5E,EAAMkpD,iBAAkB4xG,EAAsBhE,GAC9C1oI,GAID,GAAKO,EAEJ,GAAMA,EAAMouB,YAKL,CACN,MAAMi+G,EAAQh7J,EAAMwpD,gBAAiB76B,EAAM0J,OAK3C,GAJAr4B,EAAMqoG,gBAAiB2yD,EAAO,CAAE5sI,cAI1B4sI,EAAM3zH,MAAOpa,QAAS0B,EAAM0J,OAS7B,CACJ,MAAM4iI,EA0Lb,SAAyC/4H,EAAgBvjB,GACxD,IAAIu8I,EAAuBv8I,EAE3B,UAAYypC,KAAYzpC,EAAQywB,aAAc,CAAEG,aAAa,IAAW,CACvE,GAAO6Y,EAAkB5Z,WAAa,GAAKtM,EAAOozC,QAASltB,GAC1D,MAGD8yG,EAAuB9yG,CACxB,CAEA,OAAO8yG,CACR,CAtMyCC,CAAgCj5H,EAAQvT,EAAM0J,MAAM7xB,QAEtFxG,EAAM4nG,cAAe5nG,EAAMwpD,gBAAiByxG,EAA2B,MAAQ,CAC9E9yD,oBAAoB,GAEtB,MAdCnoG,EAAM0tC,QAAQC,IACbA,EAAOwX,aAAcx2B,GACrBgZ,EAAOkB,QAASkyH,EAAkB,gBAAkB,SAAU,GAajE,MA1BC/6J,EAAM0tC,QAAQC,IACbA,EAAOwX,aAAcx2B,GACrBgZ,EAAOkB,QAASkyH,EAAkB,gBAAkB,SAAU,GA0BlE,CAIArB,EAAa37H,iBACb3gB,EAAInJ,MAAM,GACR,CAAEsB,QAAS2gJ,IACf,CAQQ,+BAAAoC,GACP,MAAM3wH,EAAS//B,KAAK+/B,OACd3nC,EAAQ4H,KAAK+/B,OAAO3nC,MACpBo7J,EAAoBp7J,EAAMoL,SAASm9B,UAEzC3gC,KAAK+wJ,mBAA6ChxH,EAAO3nC,MAAO,iBAAiB,CAAEod,GAAOtV,EAASi4C,MAClG,GAAKA,IAAiBA,EAAoB5pC,GAAI,qBAC7C,OAGD,MAAM2gJ,EAA8BC,GAAgCqE,GAEpE,OAAMtE,GAIN15I,EAAInJ,OAEGjU,EAAM0tC,QAAQC,IACpB,MAAMqU,EAAkBo5G,EAAkBt7G,qBACpCzwB,EAAWrvB,EAAMkpD,iBAAkBlH,EAAkB80G,GACrDvuH,EAAYoF,EAAO6b,gBAAiBn6B,GAEpCtpB,EAAS/F,EAAMitG,cAAenlG,EAASygC,GAI7C,OAFAoF,EAAOwX,aAAc5c,GAEdxiC,CAAM,UAfd,CAgBG,GACD,CAAE6O,SAAU,QAChB,CASQ,8BAAA2jJ,GACP,MAAM5wH,EAAS//B,KAAK+/B,OAEdyzH,EADQxzJ,KAAK+/B,OAAO3nC,MACMoL,SAASm9B,UAEzC3gC,KAAK+wJ,mBAA4ChxH,EAAO3nC,MAAO,gBAAgB,CAAEod,EAAKtZ,KACrF,MAAQ,CAAEi8C,EAAY5zC,EAAU,CAAC,GAAMrI,EAEvC,GAAKi8C,IAAiBA,EAAoB5pC,GAAI,qBAC7C,OAGD,MAAM2gJ,EAA8BC,GAAgCqE,GAE9DtE,IAIN3qJ,EAAQwgG,oBAAsBmqD,EAC9BhzJ,EAAM,GAAMqI,EAAO,GACjB,CAAEyI,SAAU,QAChB,CAUQ,+BAAA4jJ,GACP,MAAM7wH,EAAS//B,KAAK+/B,OAEdyzH,EADQxzJ,KAAK+/B,OAAO3nC,MACMoL,SAASm9B,UAEzC3gC,KAAK+wJ,mBAA6ChxH,EAAO3nC,MAAO,iBAAiB,CAAEod,GAAOmrB,MACzF,GAAKA,IAAcA,EAAUpyB,GAAI,qBAChC,OAGmC4gJ,GAAgCqE,IAInEh+I,EAAInJ,MACL,GACE,CAAEW,SAAU,QAChB,EE10Bc,SAASymJ,GACvBtmD,GAEA,MAAM/0G,EAAQ+0G,EAAQ/0G,MAEtB,MAAO,CAAEod,EAAK1S,KACb,MAAM4wJ,EAAiB5wJ,EAAKmrB,SAAWP,GAAS2B,QAC1CskI,EAAmB7wJ,EAAKmrB,SAAWP,GAAS4B,UAC5CskI,EAAkB9wJ,EAAKsrB,SACvBuS,EAAYvoC,EAAMoL,SAASm9B,UAEjC,IAAM+yH,IAAmBC,EACxB,OAGD,MAAM/tD,EAAY+tD,EAIlB,GAAKC,GA2MP,SAA8BjzH,EAA8BilE,GAC3D,OAAQjlE,EAAUwU,aAAexU,EAAU0W,YAAcuuD,CAC1D,CA7M0BiuD,CAAqBlzH,EAAWilE,GACvD,OAID,MAAM7+E,EAuDR,SAAqComF,EAA4BxsE,EAA0CilE,GAC1G,MAAMxtG,EAAQ+0G,EAAQ/0G,MAEtB,GAAKwtG,EAAY,CAChB,MAAM1yD,EAAgBvS,EAAUwU,YAAcxU,EAAUlB,MAASkB,EAAU+W,kBACrE4K,EAAcwxG,GAA0B17J,EAAO86C,EAAe,WAGpE,IAAMoP,EACL,OAAO,KAGR,MAAMv7B,EAAQ3uB,EAAMqpD,YAAavO,EAAeoP,GAC1CyxG,EAAoBC,GAAwB57J,EAAMkiC,OAAQvT,EAAO,YAEvE,OAAKgtI,EACG37J,EAAMqpD,YAAavO,EAAe6gH,GAGnC,IACR,CAAO,CACN,MAAMzxG,EAAc3hB,EAAUwU,YAAcxU,EAAUlB,MAASkB,EAAUE,mBACnEqS,EAAgB4gH,GAA0B17J,EAAOkqD,EAAa,YAGpE,IAAMpP,EACL,OAAO,KAGR,MAAMnsB,EAAQ3uB,EAAMqpD,YAAavO,EAAeoP,GAC1C2xG,EAAqBD,GAAwB57J,EAAMkiC,OAAQvT,EAAO,WAExE,OAAKktI,EACG77J,EAAMqpD,YAAawyG,EAAoB3xG,GAGxC,IACR,CACD,CA7FgB4xG,CAA4B/mD,EAASxsE,EAAWilE,GAG9D,GAAM7+E,EAAN,CAKA,GAAKA,EAAMouB,YAAc,CAExB,GAAKxU,EAAUwU,YACd,OACD,GAGUy+G,EACT,MAEF,EAMK7sI,EAAMouB,aAkIb,SAA4Bg4D,EAA4B/lC,EAAmBw+B,GAC1E,MAAMxtG,EAAQ+0G,EAAQ/0G,MAChByjD,EAAesxD,EAAQx1E,KAAKkkB,aAMlC,GAAK+pD,EAAY,CAChB,MAAMwtD,EAAQh7J,EAAMwpD,gBAAiBwlB,EAAW32C,OAEhDr4B,EAAMqoG,gBAAiB2yD,GAKjBA,EAAM3zH,MAAOkU,SAAYyzB,EAAW32C,MAAMpL,QAAS+tI,EAAM3zH,SAC9D2nC,EAAahvE,EAAMqpD,YAAa2xG,EAAM3zH,MAAQ2nC,EAAWr7B,KAE3D,CAEA,MAAMwkB,EAAY48C,EAAQ7lC,OAAOH,YAAaC,GACxCtc,EAAWjP,EAAayU,eAAgBC,GACxCvpC,EAAQ,GAAKtD,iBAAkBonC,GAErC,IAAIqpG,EAEJ,UAAY9vI,KAAQ2C,EACnB,QAAkC,IAA7BmtI,EAAL,CAMA,GAAKt7J,KAAKuD,MAAOioB,EAAKhC,MAAS8xI,EAC9B,OAAO,EAGRA,EAA2Bt7J,KAAKC,IAAKq7J,EAA0Bt7J,KAAKuD,MAAOioB,EAAK5B,QAPhF,MAFC0xI,EAA2Bt7J,KAAKuD,MAAOioB,EAAK5B,QAY9C,OAAO,CACR,CA5K4B2xI,CAAmBjnD,EAASpmF,EAAO6+E,MAC5DxtG,EAAM0tC,QAAQC,IACb,MAAM2Z,EAAckmD,EAAY7+E,EAAMglB,IAAMhlB,EAAM0J,MAElD,GAAKmjI,EAAkB,CACtB,MAAMr8F,EAAen/D,EAAMwpD,gBAAiBjhB,EAAUqG,QACtDuwB,EAAa5e,SAAU+G,GAEvB3Z,EAAOwX,aAAcga,EACtB,MACCxxB,EAAOwX,aAAcmC,EACtB,IAGDlqC,EAAInJ,OACJvJ,EAAKqzB,iBACLrzB,EAAKszB,kBAnCN,CAoCA,CAEF,CAyDA,SAAS09H,GAA0B17J,EAAc86C,EAAyB1sB,GACzE,MAAM8T,EAASliC,EAAMkiC,OACfvT,EAAQ3uB,EAAMupD,cAAezO,EAAc58C,MAE3C+9J,EAA+B,WAAb7tI,EAAyB,eAAiB,aAElE,UAAY,iBAAEktB,EAAgB,KAAEzzC,EAAI,KAAEkL,KAAU4b,EAAMiuB,UAAW,CAAE9B,gBAAe1sB,cAAgB,CACjG,GAAK8T,EAAOozC,QAASztE,KAAWq6B,EAAOm3C,SAAUxxE,GAChD,OAAOyzC,EAIR,GAAKvoC,GAAQkpJ,GAAmB/5H,EAAOizC,QAASttE,GAC/C,OAAO,IAET,CAEA,OAAO,IACR,CAYA,SAAS+zJ,GAAwB15H,EAAgBvT,EAAcP,GAC9D,MAAMiB,EAAwB,YAAbjB,EAA0BO,EAAMglB,IAAMhlB,EAAM0J,MAE7D,GAAK6J,EAAOq4C,WAAYlrD,EAAU,SACjC,OAAOA,EAGR,UAAY,aAAE2sB,KAAkBrtB,EAAMiuB,UAAW,CAAExuB,cAClD,GAAK8T,EAAOq4C,WAAYv+B,EAAc,SACrC,OAAOA,EAIT,OAAO,IACR,C,cCpMI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ9W,OC8CR,MAAMg3H,WAAe,GAI3BC,oBAAsB,IAAIxgJ,IAKlC,qBAAkBkuB,GACjB,MAAO,QACR,CAKA,mBAAkBW,GACjB,MAAO,CAAEstH,GAAkB9T,GAC5B,CAKO,IAAAh6G,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdpI,EAAOoI,EAAOotE,QAAQx1E,KACtB2lC,EAAe3lC,EAAKn0B,SACpBxI,EAAI+kC,EAAO/kC,EAqBjBgF,KAAK+/B,OAAOotE,QAAQ/vB,mBAAmB3tE,GAA4B,aAAa,CAAE+F,EAAK1S,EAAMumE,KAC5F,MAAM+K,EAAa/K,EAActjC,OAC3Bs3C,EAAiBv6E,EAAK69B,UAG5B,GAAK08C,EAAeloC,YACnB,OAGD,MAAM87G,EAAuB5zE,EAAenlC,qBAE5C,IAAM+4G,EACL,OAGD,MAAMe,EAAsBjyH,EAAOotE,QAAQ7lC,OAAOf,cAAe0qF,GPyG7D,IAAmBl6I,EOvGjBu3I,GAAU0D,KAIV3oF,EAAcsB,WAAWpC,QAAS8U,EAAgB,cAIxDjJ,EAAW72B,aAAc62B,EAAW1yB,cAAeswG,GAAuB,CACzEx5G,MAAM,EACNC,OP6FsB1hC,EO7FLi7I,EP8FAj7I,EAAQ65B,kBAAmB,eAE5BjiB,QAAQ,CAAEuM,EAAcn8B,IAClB,mBAAZA,EACJm8B,EAAOA,EAAO,KAAOn8B,IAAYA,IAEjCm8B,EAAOA,EAAO,KAAOn8B,EAAUA,GAErC,OOrGE,IAKJiB,KAAK+/B,OAAOotE,QAAQ/vB,mBAAmB3tE,GAA4B,aAAa,CAAE+F,EAAK1S,EAAMumE,KAE5FrpE,KAAKw0J,gCAAiCnrF,EAActjC,QAEpD,MAAMquC,EAAa/K,EAActjC,OAC3B6a,EAAgBwzB,EAAW5wE,SAASm9B,UAE1C,IAAI8zH,EAAa,KAEjB,UAAY1tI,KAAS65B,EAActJ,YAGlC,UAAY9+C,KAASuuB,EAAQ,CAC5B,MAAM5nB,EAAO3G,EAAMyH,KAEdquJ,GAAUnvJ,KAAWu1J,GAASv1J,EAAMs1J,KACxCrgF,EAAWltC,SAAUmnH,GAA4BlvJ,GACjDa,KAAKu0J,oBAAoBrmJ,IAAK/O,GAC9Bs1J,EAAat1J,EAEf,CACD,GACE,CAAE6N,SAAU,QAGf2qB,EAAK2mC,YAAa8pC,IAClBpoG,KAAK4P,SAAsC0tD,EAAc,aAAa,IAAKphE,IAAU8D,KAAK20J,gBAAiBz4J,KAa3G8D,KAAK4P,SAAqC0tD,EAAc,YAAY,IAAKphE,KACxE8D,KAAK40J,yCAA0C14J,EAAM,GACnD,CAAEyR,QAAS,CAAE2gJ,GAAU,WAE1BtuJ,KAAK4P,SAAqC0tD,EAAc,YAAY,IAAKphE,KACxE8D,KAAK60J,kCAAmC34J,EAAM,GAC5C,CAAEyR,QAAS,UAEd3N,KAAK4P,SACJ0tD,EACA,WACAm2F,GAA2BzzJ,KAAK+/B,OAAOotE,SACvC,CAAEx/F,QAAS,UAIZ3N,KAAK4P,SAAmC0tD,EAAc,UAAU,CAAE9nD,EAAK1S,KACjE9C,KAAK80J,cAAiC,WAAlBhyJ,EAAK0jB,aAC7B1jB,EAAKqzB,iBACL3gB,EAAInJ,OACL,GACE,CAAEsB,QAAS,UAGd3N,KAAK4P,SAAgC0tD,EAAc,OAAO,CAAE9nD,EAAK1S,KAGzC,YAAlB0S,EAAImkC,aAIJ72C,EAAKsrB,UAILpuB,KAAK+0J,+BACTjyJ,EAAKqzB,iBACL3gB,EAAInJ,QACL,GACE,CAAEsB,QAAS2gJ,GAAUthJ,SAAU,QAGlChN,KAAK4P,SAAgC0tD,EAAc,OAAO,CAAE9nD,EAAK1S,KAC1DA,EAAKsrB,UAINpuB,KAAKg1J,0BACTlyJ,EAAKqzB,iBACL3gB,EAAInJ,OACL,GACE,CAAEW,SAAU,QAGfhN,KAAK4P,SAAoC0tD,EAAc,WAAW,CAAE9nD,EAAK1S,KACnEA,EAAKwrB,WAAaZ,GAASkC,KAI3B5vB,KAAKg1J,0BACTlyJ,EAAKqzB,iBACL3gB,EAAInJ,OACL,GACE,CAAEW,SAAU,QAGf+yB,EAAOmtE,cAAcN,sBAAuB,CAC3C/sG,GAAI,SACJ44C,MAAOz9C,EAAG,2FACV2xG,WAAY,CACX,CACCl0D,MAAOz9C,EAAG,8DACVszB,UAAW,OAEZ,CACCmqB,MAAOz9C,EAAG,kDACVszB,UAAW,SAEZ,CACCmqB,MAAOz9C,EAAG,mDACVszB,UAAW,eAEZ,CACCmqB,MAAOz9C,EAAG,2DACVszB,UAAW,CAAE,CAAE,WAAa,CAAE,eAE/B,CACCmqB,MAAOz9C,EAAG,0DACVszB,UAAW,CAAE,CAAE,aAAe,CAAE,kBAIpC,CAKQ,YAAAqmI,CAAc7jJ,EAAsBghJ,GAC3C,MAAM/xH,EAAS//B,KAAK+/B,OACdpI,EAAOoI,EAAOotE,QAAQx1E,KACtB2lC,EAAe3lC,EAAKn0B,SAC1B,IAAIuT,EAA8B+6I,EAAaluJ,OAG/C,GAAKkuJ,EAAa98F,SAASu2D,QAAU,EAKpC,YAJKvrH,KAAKi1J,oBAAqBl+I,IAC9B+6I,EAAa37H,kBAOf,GAqUF,SAAiCpf,GAChC,IAAIm+I,EAA4Dn+I,EAEhE,KAAQm+I,GAAiB,CACxB,GAAKA,EAAe3mJ,GAAI,qBAAwB2mJ,EAAe3mJ,GAAI,eAClE,OAAO,EAIR,GAAK+/I,GAAU4G,GACd,OAAO,EAGRA,EAAiBA,EAAet2J,MACjC,CAEA,OAAO,CACR,CAtVOu2J,CAAwBp+I,GAC5B,OAID,IAAMu3I,GAAUv3I,KACfA,EAAUA,EAAQ25B,aAAc49G,KAE1Bv3I,GACL,OAMG,EAAI9N,WACR6oJ,EAAa37H,iBAIRmnC,EAAaxnC,WAClB6B,EAAK8H,QAIN,MAAMwmC,EAAelmC,EAAOotE,QAAQ7lC,OAAOnB,eAAgBpvD,GAE3D/W,KAAK0yJ,yBAA0BzsF,EAChC,CAKQ,mBAAAgvF,CAAqBl+I,GAC5B,MAAMgpB,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACfkvE,EAASvnC,EAAOotE,QAAQ7lC,OACxBhtC,EAASliC,EAAMkiC,OAEf6mB,EAAcmmB,EAAOzB,uBAAwB7lE,KAAK+/B,OAAOotE,QAAQx1E,KAAK2pB,iBAAkBvqC,EAAS,IACjGkvD,EAiUR,SAAgCA,EAAuB3rC,GACtD,UAAYvjB,KAAWkvD,EAAaz+B,aAAc,CAAEE,aAAa,EAAMC,aAAa,IAAW,CAC9F,GAAKrN,EAAOq4C,WAAY57D,EAAoB,SAC3C,OAAOA,EAIR,GAAKujB,EAAOozC,QAAS32D,KAAcujB,EAAOi3C,SAAUx6D,GACnD,KAEF,CAEA,OAAO,IACR,CA9UuBq+I,CAAuB9tF,EAAOnB,eAAgBhlB,GAAgB/oD,EAAMkiC,QAEzF,QAAM2rC,IAIN7tE,EAAM0tC,QAAQC,IACb,MAAMsvH,EAAiB/6H,EAAOozC,QAASzH,GAEtC,KA0UJ,SAA4Bx+C,EAAoB6S,GAC/C,MAAMsa,EAAa,IAAI,GAAY,CAAE1B,cAAezrB,IAEpD,UAAY,KAAExnB,KAAU20C,EAAa,CACpC,GAAKta,EAAOozC,QAASztE,KAAWA,EAAKsO,GAAI,WACxC,OAAO,KAGR,GAAK+rB,EAAOq4C,WAAY1yE,EAAM,SAC7B,OAAOA,CAET,CAEA,OAAO,IACR,CAzVIq1J,CAAmBvvH,EAAOwb,oBAAqB0kB,GAAgB3rC,GAG1D7J,EAAQsV,EAAOub,iBAAkB2kB,EAAc,GAC/Cl6B,EAAMspH,EACXtvH,EAAOub,iBAAkB+zG,EAAe,GACxCtvH,EAAOub,iBAAkB2kB,EAAc,OAExClgC,EAAOwX,aAAcxX,EAAO0b,YAAahxB,EAAOsb,GAAO,KAGjD,EACR,CAWQ,qCAAA6oH,CAAuC9jJ,EAAsBghJ,GACpE,MAAM7jI,EAAU6jI,EAAa7jI,QAEvB71B,EAAQ4H,KAAK+/B,OAAO3nC,MACpBkiC,EAASliC,EAAMkiC,OACf+iD,EAAiBjlF,EAAMoL,SAASm9B,UAChC40H,EAAgBl4E,EAAenlC,qBAC/B1xB,EAAY,GAAmCyH,EAASjuB,KAAK+/B,OAAOxC,OAAOtO,0BAC3E22E,EAAyB,QAAbp/E,GAAoC,SAAbA,EACnCgvI,EAAoC,MAAbhvI,GAAkC,QAAbA,EAGlD,GAAK+uI,GAAiBj7H,EAAOi3C,SAAUgkF,GAAkB,CACxD,MAAM9tI,EAAWm+E,EAAYvoB,EAAe3lC,kBAAoB2lC,EAAex8C,mBACzEkgB,EAAWzmB,EAAOk3C,yBAA0B/pD,EAAWm+E,EAAY,UAAY,YAWrF,YATK7kD,IACJ3oD,EAAM0tC,QAAQC,IACbA,EAAOwX,aAAcwD,EAAU,IAGhC+wG,EAAa37H,iBACbrlB,EAAUzE,QAIZ,CAIA,IAAMgxE,EAAeloC,cAAgB28G,EAAa1jI,SAAW,CAC5D,MAAMqnI,EAAgBp4E,EAAex8C,mBAC/B60H,EAAer4E,EAAe3lC,kBAE9Bi+G,EAAoBF,EAAephH,UACnCuhH,EAAmBF,EAAcphH,WAWvC,aATKqhH,GAAqBr7H,EAAOi3C,SAAUokF,IAAuBC,GAAoBt7H,EAAOi3C,SAAUqkF,MACtGx9J,EAAM0tC,QAAQC,IACbA,EAAOwX,aAAcqoD,EAAY8vD,EAAeD,EAAe,IAGhE3D,EAAa37H,iBACbrlB,EAAUzE,QAIZ,CAGA,IAAMgxE,EAAeloC,YACpB,OAKD,MAAM0gH,EAA+B71J,KAAKyyJ,iCAAkC7sD,GAE5E,GAAKiwD,GAAgCv7H,EAAOi3C,SAAUskF,GAAiC,CAEtF,GAAKv7H,EAAOm3C,SAAUokF,IAAkCL,EACvD,OAGDx1J,KAAK0yJ,yBAA0BmD,GAE/B/D,EAAa37H,iBACbrlB,EAAUzE,MACX,CACD,CASQ,8BAAAwoJ,CAAgC/jJ,EAAsBghJ,GAC7D,MAAM15J,EAAQ4H,KAAK+/B,OAAO3nC,MACpBkiC,EAASliC,EAAMkiC,OACfi7H,EAAgBn9J,EAAMoL,SAASm9B,UAAUuX,qBAG1Cq9G,GAAiBj7H,EAAOi3C,SAAUgkF,KACtCzD,EAAa37H,iBACbrlB,EAAUzE,OAEZ,CAQQ,aAAAyoJ,CAAelvD,GACtB,MACMvoB,EADgBr9E,KAAK+/B,OAAO3nC,MAAMoL,SACHm9B,UAGrC,IAAM3gC,KAAK+/B,OAAO3nC,MAAM2oC,UAAWs8C,GAClC,OAID,IAAMA,EAAeloC,YACpB,OAGD,MAAMogH,EAAgBv1J,KAAKyyJ,iCAAkC7sD,GAE7D,OAAK2vD,GACJv1J,KAAK+/B,OAAO3nC,MAAM0tC,QAAQC,IACzB,IAAI+vH,EAAez4E,EAAer2C,OAAQpoC,OAG1C,KAAQk3J,EAAaxpH,SAAU,CAC9B,MAAMypH,EAAeD,EACrBA,EAAeC,EAAan3J,OAE5BmnC,EAAO9/B,OAAQ8vJ,EAChB,CAEA/1J,KAAK0yJ,yBAA0B6C,EAAe,KAGxC,QAfR,CAiBD,CAOO,wBAAA7C,CAA0B37I,GAChC/W,KAAK+/B,OAAO3nC,MAAM0tC,QAAQC,IACzBA,EAAOwX,aAAcxX,EAAO2b,cAAe3qC,GAAW,GAExD,CAUO,gCAAA07I,CAAkC9xE,GACxC,MAAMvoF,EAAQ4H,KAAK+/B,OAAO3nC,MACpBkiC,EAASliC,EAAMkiC,OACf+iD,EAAiBjlF,EAAMoL,SAASm9B,UAIhCyyH,EAAQh7J,EAAMwpD,gBAAiBy7B,GAIrC,GAHAjlF,EAAMqoG,gBAAiB2yD,EAAO,CAAE5sI,UAAWm6D,EAAU,UAAY,aAG5DyyE,EAAM/tI,QAASg4D,GACnB,OAAO,KAGR,MAAMk4E,EAAgB50E,EAAUyyE,EAAM3zH,MAAO6U,WAAa8+G,EAAM3zH,MAAO4U,UAEvE,OAAOkhH,GAAiBj7H,EAAOi3C,SAAUgkF,GACjCA,EAGD,IACR,CAKQ,+BAAAf,CAAiCzuH,GACxC,UAAYiwH,KAAUh2J,KAAKu0J,oBAC1BxuH,EAAOO,YAAa+nH,GAA4B2H,GAGjDh2J,KAAKu0J,oBAAoBxiJ,OAC1B,CAKQ,0BAAAgjJ,GACP,MAAMh1H,EAAS//B,KAAK+/B,OAEdu9B,EADOt9D,KAAK+/B,OAAOotE,QAAQx1E,KACPn0B,SAE1B,UAAYvD,KAAQq9D,EAAa38B,UAAU4W,gBAAiBlB,WAC3D,GAAKp2C,EAAKsO,GAAI,mBAAsB,CACnC,MAAM03D,EAAelmC,EAAOotE,QAAQ7lC,OAAOnB,eAAgBlmE,GAG3D,IAAMgmE,EACL,SAGD,MAAMx+C,EAAWsY,EAAO3nC,MAAMkpD,iBAAkB2kB,EAAc,GACxDllB,EAAWhhB,EAAO3nC,MAAMkiC,OAAOk3C,yBAA0B/pD,EAAU,WAMzE,OAJAsY,EAAO3nC,MAAM0tC,QAAQC,IACpBA,EAAOwX,aAAcwD,EAAU,KAGzB,CACR,CAGD,OAAO,CACR,CAKQ,qBAAAi0G,GACP,MAAMj1H,EAAS//B,KAAK+/B,OACdunC,EAASvnC,EAAOotE,QAAQ7lC,OAGxBhoB,EAFYvf,EAAOotE,QAAQx1E,KAAKn0B,SAASm9B,UAEdE,mBAAoBjiC,OAM/CuiD,GAJwB7B,EAAe/wC,GAAI,SAChD+wC,EAAe1gD,OACf0gD,GAEyC5O,aAAc49G,IAExD,IAAMntG,EACL,OAAO,EAGR,MAAM8kB,EAAeqB,EAAOnB,eAAgBhlB,GAG5C,QAAM8kB,IAINlmC,EAAO3nC,MAAM0tC,QAAQC,IACpBA,EAAOwX,aAAc0oB,EAAc,KAAM,KAGnC,EACR,EA+BD,SAASyuF,GAAS39I,EAAsBnY,GACvC,QAAMA,GAIC+B,MAAMrB,KAAMyX,EAAQywB,gBAAiBrV,SAAUvzB,EACvD,CC1kBe,MAAMq3J,WAAgC,GAI5CC,oBAAsB,IAAIxkJ,IAE1BykJ,SAKR,mBAAkBvzH,GACjB,MAAO,CAAE++F,GACV,CAKA,qBAAkB1/F,GACjB,MAAO,yBACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OAGpB,GAAKA,EAAOsC,QAAQp0B,IAAK,kBAAqB,CAC7C,MAAMmoJ,EAAiCr2H,EAAOsC,QAAQj6B,IAAK,kBAE3DpI,KAAK4P,SAAmCwmJ,EAAgB,QAAQ5gJ,KA2OnE,SAA2BmrB,GAC1B,MAAMwgB,EAAcxgB,EAAUuX,qBAE9B,SAAWiJ,IAAemtG,GAAUntG,GACrC,EA9OSk1G,CAAkBt2H,EAAOotE,QAAQx1E,KAAKn0B,SAASm9B,YACnDnrB,EAAInJ,MACL,GACE,CAAEW,SAAU,QAChB,CAEAhN,KAAKm2J,SAAWn2J,KAAK+/B,OAAOsC,QAAQj6B,IAAK,qBAEzCpI,KAAKyP,GAA2B,oBAAoB,KACnDzP,KAAKs2J,2BAA2B,IAGjCt2J,KAAK4P,SAA+BmwB,EAAO+E,GAAI,UAAU,KACxD9kC,KAAKs2J,2BAA2B,IAIjCt2J,KAAK4P,SAAiCmwB,EAAO+E,GAAG7F,aAAc,oBAAoB,KACjFj/B,KAAKs2J,2BAA2B,GAC9B,CAAEtpJ,SAAU,OAChB,CAEgB,OAAAib,GACfpa,MAAMoa,UAEN,UAAYsuI,KAAiBv2J,KAAKk2J,oBAAoB9qJ,SACrDmrJ,EAAc5+H,KAAK1P,SAErB,CAgBO,QAAAi3D,CACNs3E,GACA,UAAEz+C,EAAS,MAAEnkF,EAAK,kBAAE6iI,EAAiB,iBAAE9yB,EAAmB,yBAQ1D,IAAM/vG,EAAMt7B,OAiBX,YAFA,EAAY,0BAA2B,CAAEk+J,cAK1C,MAAMz2H,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EACXknH,EAAc,IAAI2B,GAAa9jF,EAAOxC,QAI5C,GAFA2kF,EAAYnK,UAAYA,GAAa/8G,EAAG,kBAEnCgF,KAAKk2J,oBAAoBjoJ,IAAKuoJ,GAOlC,MAAM,IAAI9oJ,EAAe,4BAA6B1N,KAAM,CAAEw2J,cAG/D,MAAME,EAAoB,CACzB/+H,KAAMuqF,EACNu0C,oBACA9yB,mBACAgzB,YAAa/iI,EACbgjI,aAAa,GAId72H,EAAO+E,GAAGw6F,WAAYpd,EAAa,CAClCye,cAAc,EACdP,YAAa,KACZ,MAAMy2B,EAAiBJ,EAAmB12H,EAAOotE,QAAQx1E,KAAKn0B,SAASm9B,WAElEk2H,GACJ72J,KAAK82J,aAAcJ,EAAmBG,EACvC,EAED52B,UAAW,KACVjgI,KAAK+2J,aAAcL,EAAmB,IAIxC12J,KAAKk2J,oBAAoBtkJ,IAAK4kJ,EAAWE,EAC1C,CAKQ,yBAAAJ,GACP,IAAIU,EAAyB,EACzBC,EAAwB,KACxBC,EAA2B,KAE/B,UAAYhvJ,KAAclI,KAAKk2J,oBAAoB9qJ,SAAW,CAC7D,MAAMyrJ,EAAiB3uJ,EAAWuuJ,kBAAmBz2J,KAAK+/B,OAAOotE,QAAQx1E,KAAKn0B,SAASm9B,WAEvF,GAAM3gC,KAAKmgC,WAAc02H,EAIlB,GAAM72J,KAAK+/B,OAAO+E,GAAG7F,aAAanJ,UAIlC,CACN,MAAMqhI,EAAsBN,EAAervH,eAAelvC,OAMrD6+J,EAAsBH,IAC1BA,EAAyBG,EACzBF,EAAwBJ,EACxBK,EAA2BhvJ,EAE7B,MAfMlI,KAAKo3J,kBAAmBlvJ,IAC5BlI,KAAK+2J,aAAc7uJ,QALflI,KAAKq3J,oBAAqBnvJ,IAC9BlI,KAAK+2J,aAAc7uJ,EAmBtB,CAEKgvJ,GACJl3J,KAAK82J,aAAcI,EAA0BD,EAE/C,CAKQ,YAAAF,CAAcL,GACrB12J,KAAKm2J,SAASlwJ,OAAQywJ,EAAkB/+H,MACxC33B,KAAK+P,cAAe/P,KAAKm2J,SAAU,qBACpC,CASQ,YAAAW,CAAcJ,EAAsDG,GACtE72J,KAAKo3J,kBAAmBV,GAC5BY,GAA6Bt3J,KAAK+/B,OAAQ82H,GAC9B72J,KAAKq3J,oBAAqBX,KAChCA,EAAkBE,cACvBF,EAAkBE,aAAc,EAChCF,EAAkB/+H,KAAK4sF,eAAgBmyC,EAAkBC,YAAa32J,KAAK+/B,OAAO+E,GAAGq2E,mBAGtFn7G,KAAKm2J,SAASjoJ,IAAK,CAClBypB,KAAM++H,EAAkB/+H,KACxBlQ,SAAU8vI,GAAwBv3J,KAAK+/B,OAAQ82H,GAC/ClzB,iBAAkB+yB,EAAkB/yB,mBAOrC3jI,KAAK4P,SAAiC5P,KAAKm2J,SAAU,sBAAsB,KAC1E,UAAYjuJ,KAAclI,KAAKk2J,oBAAoB9qJ,SAClD,GAAKpL,KAAKo3J,kBAAmBlvJ,GAAe,CAC3C,MAAM2uJ,EAAiB3uJ,EAAWuuJ,kBAAmBz2J,KAAK+/B,OAAOotE,QAAQx1E,KAAKn0B,SAASm9B,WACvF22H,GAA6Bt3J,KAAK+/B,OAAQ82H,EAC3C,CACD,IAGH,CAEQ,iBAAAO,CAAmBtqB,GAC1B,OAAO9sI,KAAKm2J,SAASvzB,cAAgBkK,EAAQn1G,IAC9C,CAEQ,mBAAA0/H,CAAqBvqB,GAC5B,OAAO9sI,KAAKm2J,SAAS/zB,QAAS0K,EAAQn1G,KACvC,EAGD,SAAS2/H,GAA6Bv3H,EAAgB82H,GACrD,MAAMh8B,EAA6B96F,EAAOsC,QAAQj6B,IAAK,qBACjDqf,EAAW8vI,GAAwBx3H,EAAQ82H,GAEjDh8B,EAAQrjB,eAAgB/vF,EACzB,CAEA,SAAS8vI,GAAwBx3H,EAAgB82H,GAChD,MAAMr7C,EAAcz7E,EAAOotE,QAAQx1E,KAC7B08F,EAAmBH,GAAiBG,iBAE1C,MAAO,CACNzwH,OAAQ43G,EAAY3/D,aAAaqK,aAAc2wG,GAC/C5tI,UAAW,CACVorG,EAAiBM,gBACjBN,EAAiBS,oBACjBT,EAAiBU,oBACjBV,EAAiBC,gBACjBD,EAAiBI,oBACjBJ,EAAiBK,oBACjBL,EAAiBW,qBAGpB,CCrTe,MAAMwiC,WAAoClkJ,KAqDjDmkJ,sBAKUt2I,SAOTu2I,eAOAC,gBAOAC,uBAOAC,aAKR,WAAA91J,CAAawC,GACZsJ,QAEA7N,KAAK4R,IAAK,uBAAwB,MAClC5R,KAAK4R,IAAK,wBAAyB,MACnC5R,KAAK4R,IAAK,gBAAiB,MAC3B5R,KAAK4R,IAAK,iBAAkB,MAC5B5R,KAAK4R,IAAK,0BAA2B,MACrC5R,KAAK4R,IAAK,2BAA4B,MAEtC5R,KAAKmhB,SAAW5c,EAChBvE,KAAKy3J,sBAAwB,IAC9B,CAKA,iBAAWK,GACV,OAAO93J,KAAK03J,cACb,CAKA,kBAAWK,GACV,OAAO/3J,KAAK23J,eACb,CAKA,yBAAWK,GACV,OAAOh4J,KAAK43J,sBACb,CAKA,eAAWK,GACV,OAAOj4J,KAAK63J,YACb,CAMO,KAAAK,CAAOC,EAA8BC,EAA4B/I,GACvE,MAAMgJ,EAAa,IAAI,GAAMD,GAE7Bp4J,KAAKs4J,qBAmEP,SAA4BC,GAC3B,MAAMC,EAAmB,CAAE,WAAY,YAAa,eAAgB,eAEpE,UAAY/wI,KAAY+wI,EACvB,GAAKD,EAAU1F,UAAUvtI,SAAUmzI,GAAuBhxI,IACzD,OAAOA,CAGV,CA3E8BixI,CAAmBP,GAE/Cn4J,KAAKy3J,sBAqCP,SAAmC1gJ,EAAsB4hJ,GACxD,MAAMlvI,EAAc,IAAI,GAAM1S,GACxB6hJ,EAAgBD,EAAgB57J,MAAO,KACvCkrG,EAAM,CACX/tG,EAAyB,SAAtB0+J,EAAe,GAAiBnvI,EAAYlH,MAAQkH,EAAY9G,KACnE1oB,EAAyB,UAAtB2+J,EAAe,GAAkBnvI,EAAYhH,OAASgH,EAAYpH,KAMtE,OAHA4lF,EAAI/tG,GAAK6c,EAAQ8I,cAAcF,YAAa8F,QAC5CwiF,EAAIhuG,GAAK8c,EAAQ8I,cAAcF,YAAa+F,QAErCuiF,CACR,CAjD+B4wD,CAA0BT,EA+EzD,SAA8B3wI,GAC7B,MAAMnI,EAAQmI,EAAS1qB,MAAO,KACxB+7J,EAAuC,CAC5Cz2I,IAAK,SACLI,OAAQ,MACRE,KAAM,QACNJ,MAAO,QAGR,MAAO,GAAIu2I,EAAcx5I,EAAO,OAAWw5I,EAAcx5I,EAAO,KACjE,CAzFwEy5I,CAAqB/4J,KAAKs4J,uBAEhGt4J,KAAK03J,eAAiBW,EAAWl1I,MACjCnjB,KAAK23J,gBAAkBU,EAAWj1I,OAElCpjB,KAAK63J,aAAeQ,EAAWl1I,MAAQk1I,EAAWj1I,OAElD,MAAM41I,EAAa3J,EAAchqJ,MAAM8d,MAElC61I,GAAcA,EAAWn8J,MAAO,kBACpCmD,KAAK43J,uBAAyBh5C,WAAYo6C,GAE1Ch5J,KAAK43J,uBT4UD,SACNvI,EACA4J,EAAuB,IAAI,GAAM5J,IAEjC,MAAMK,EAAcN,GAAkCC,GAEtD,OAAMK,EAICuJ,EAAe91I,MAAQusI,EAAc,IAHpC,CAIT,CSvViCwJ,CAAoC7J,EAAegJ,EAEnF,CAEO,MAAAvxJ,CAAQqyJ,GAOdn5J,KAAKo5J,cAAgBD,EAAQh2I,MAC7BnjB,KAAKq5J,eAAiBF,EAAQ/1I,OAC9BpjB,KAAKs5J,sBAAwBH,EAAQI,cAErCv5J,KAAKw5J,wBAA0BL,EAAQM,gBACvCz5J,KAAK05J,yBAA2BP,EAAQQ,gBACzC,EA0BD,SAASlB,GAAuBE,GAC/B,MAAO,8BAA+BA,GACvC,CCxMe,MAAMiB,WAAiBv8H,GA6BrC,WAAAt7B,GACC8L,QAEA,MAAM7G,EAAOhH,KAAK69B,aAElB79B,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,eACA73B,EAAKzH,GAAI,iBAAiB/G,GAASA,EAAQ,kBAAmBA,IAAW,MAE1E6M,MAAO,CACN4R,QAASjQ,EAAKuyB,GAAI,aAAc,QAAQsgI,IAAYA,MAGtD3hJ,SAAU,CAAE,CACXmgB,KAAMrxB,EAAKzH,GAAI,aAGlB,CASO,YAAAu6J,CAAcv1J,EAAyBw1J,GAC7C/5J,KAAKgH,KAAM,cAAezH,GAAIw6J,EAAa,gBAAiBA,EAAa,kBAAkB,CAAE52I,EAAOC,IACzF,OAAVD,GAA6B,OAAXC,IAEnBpjB,KAAKgH,KAAM,UAAWzH,GACrBw6J,EAAa,0BACbA,EAAa,2BACbA,EAAa,yBACb,CAAE52I,EAAOC,EAAQm2I,IACM,OAAjBh1J,EAAQikB,KACL,GAAIrF,KAAWC,IAEf,GAAIm2I,OAKdv5J,KAAKgH,KAAM,iBAAkBzH,GAC5Bw6J,EAAa,uBACbA,EAAa,0BACbA,EAAa,4BAEb,CAAEtyI,EAAUtE,EAAOC,IAAYD,EAAS,IAAMC,EAAU,GAAK,eAAiBqE,GAEhF,CAOO,QAAAuyI,GACNh6J,KAAK4U,SACL5U,KAAKu3G,YAAa,CACnB,EClFc,MAAM0iD,WAAgC3mJ,KA4B5C4mJ,OAKAC,UAKAh5I,SAKAi5I,oBAA0C,KAK1CC,kBAKR,WAAAt4J,CAAawC,GACZsJ,QAEA7N,KAAKmhB,SAAW5c,EAEhBvE,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,cAAc,GAExB5R,KAAKgH,KAAM,aAAczH,GAAIS,KAAM,YAAaA,KAAM,cAAc,CAAEmgC,EAAWm6H,IAAgBn6H,GAAam6H,IAE9Gt6J,KAAKoV,SAAU,SACfpV,KAAKoV,SAAU,UACfpV,KAAKoV,SAAU,UACfpV,KAAKoV,SAAU,cAEfpV,KAAKyP,GAAI,UAAUC,IAGZ1P,KAAK43F,MAAMwhE,eAAkBp5J,KAAK43F,MAAM0hE,wBAC7Ct5J,KAAKu6J,WACL7qJ,EAAMrD,OACP,GACE,CAAEW,SAAU,QAChB,CAOA,SAAW4qF,GACV,OAAO53F,KAAKk6J,MACb,CAKO,IAAAvgD,GACc35G,KAAKmhB,SAAS4e,OAAOotE,QAAQx1E,KAErCmO,QAAQC,IACnBA,EAAOO,YAAa,YAAatmC,KAAKo6J,oBAAsB,GAE9D,CAKO,IAAAvgD,GACc75G,KAAKmhB,SAAS4e,OAAOotE,QAAQx1E,KAErCmO,QAAQC,IACnBA,EAAOmB,SAAU,YAAalnC,KAAKo6J,oBAAsB,GAE3D,CAKO,MAAA/4I,GAEN,MAAMmhB,EAAOxiC,KACP4uJ,EAAgB5uJ,KAAKmhB,SAASggC,YAChBnhD,KAAKmhB,SAAS4e,OAAOotE,QAAQx1E,KAErCmO,QAAQC,IACnB,MAAMy0H,EAAqBz0H,EAAOoY,gBAAiB,MAAO,CACzDtf,MAAO,uCACL,SAAU+c,GACZ,MAAMG,EAAa/7C,KAAK87C,aAAcF,GAKtC,OAHApZ,EAAKi4H,eAAgB1+G,GACrBvZ,EAAKk4H,cAAe3+G,GAEbA,CACR,IAGAhW,EAAOrgC,OAAQqgC,EAAOub,iBAAkBstG,EAAe,OAAS4L,GAChEz0H,EAAOmB,SAAU,yBAA0B0nH,GAE3C5uJ,KAAKo6J,oBAAsBI,EAErBx6J,KAAK+oB,WACV/oB,KAAK65G,MACN,IAGD75G,KAAKyP,GAA2B,oBAAoB,KAC9CzP,KAAK+oB,WACT/oB,KAAK25G,OACL35G,KAAK26J,UAEL36J,KAAK65G,MACN,GAEF,CAUO,KAAAq+C,CAAOC,GACbn4J,KAAKk6J,OAAS,IAAI1C,GAAax3J,KAAKmhB,UAEpCnhB,KAAKm6J,UAAUL,aAAc95J,KAAKmhB,SAAUnhB,KAAK43F,OAEjD53F,KAAKq6J,kBAAoBr6J,KAAKmhB,SAASggC,YAAYhX,SAAU,SAE7DnqC,KAAK43F,MAAMsgE,MAAOC,EAAiBn4J,KAAK46J,iBAAkB56J,KAAK66J,iBAChE,CAOO,UAAAC,CAAYhJ,GAClB,MAAMqH,EAAUn5J,KAAK+6J,gBAAiBjJ,GAClB9xJ,KAAKmhB,SAAS4e,OAAOotE,QAAQx1E,KAErCmO,QAAQC,IACnB,MAAMvd,EAAOxoB,KAAKmhB,SAASqH,MAAQ,IAC7BwyI,GAAsB,MAATxyI,EAAe2wI,EAAQI,cAAgBJ,EAAQh2I,OAAUqF,EAE5Eud,EAAOyY,SAAU,QAASw8G,EAAUh7J,KAAKmhB,SAASggC,YAAa,IAMhE,MAAMi3G,EAAgBp4J,KAAK46J,iBACrBK,EAAoB,IAAI,GAAM7C,GAE9BqB,EAAkB5gK,KAAKuD,MAAO6+J,EAAkB93I,OAChDw2I,EAAmB9gK,KAAKuD,MAAO6+J,EAAkB73I,QAGjD83I,EAAoB,IAAI,GAAM9C,GAEpCe,EAAQh2I,MAAQtqB,KAAKuD,MAAO8+J,EAAkB/3I,OAC9Cg2I,EAAQ/1I,OAASvqB,KAAKuD,MAAO8+J,EAAkB93I,QAE/CpjB,KAAK26J,OAAQM,GAEbj7J,KAAK43F,MAAM9wF,OAAQ,IACfqyJ,EACHM,kBACAE,oBAEF,CAOO,MAAAwB,GACN,MAAM3yI,EAAOxoB,KAAKmhB,SAASqH,MAAQ,IAC7B5U,GAAsB,MAAT4U,EAAexoB,KAAK43F,MAAM0hE,sBAAwBt5J,KAAK43F,MAAMwhE,eAAkB5wI,EAGlGxoB,KAAKmhB,SAAS4e,OAAOotE,QAAQx1E,KAAKmO,QAAQ,KACzC9lC,KAAKu6J,WACLv6J,KAAKmhB,SAASi6I,SAAUxnJ,EAAU,GAEpC,CAOO,MAAAgjB,GACN52B,KAAKu6J,UACN,CAKO,OAAAtyI,GACNjoB,KAAK42B,QACN,CAOO,MAAA+jI,CAAQU,GACd,MAAMC,EAAat7J,KAAKu7J,mBAGxB,MA4OoBxkJ,EA5ODukJ,IA6OFvkJ,EAAQ8I,eAAiB9I,EAAQ8I,cAAcyF,SAAUvO,IA5OzE,OA2OH,IAAsBA,EAxOpB,MAAMykJ,EAAgBF,EAAY3yI,cAC5B8yI,EAAaz7J,KAAK46J,iBAClBc,EAAiB17J,KAAKo6J,oBACtBuB,EAAoB,CACzBD,EAAevxH,SAAU,SACzBuxH,EAAevxH,SAAU,UACzBuxH,EAAevxH,SAAU,QACzBuxH,EAAevxH,SAAU,QAE1B,IAAIyxH,EAEJ,GAAKJ,EAAeK,WAAYJ,GAAe,CAC9C,MAAMpD,EAAagD,GAAkB,IAAI,GAAMI,GAE/CG,EAAgB,CACfvD,EAAWl1I,MAAQ,KACnBk1I,EAAWj1I,OAAS,UACpB,OACA,EAEF,MAMCw4I,EAAgB,CACfH,EAAW50I,YAAc,KACzB40I,EAAW30I,aAAe,KAC1B20I,EAAWK,WAAa,KACxBL,EAAWM,UAAY,MASkC,SAAtD1kJ,GAAeskJ,EAAmBC,IACtC57J,KAAKmhB,SAAS4e,OAAOotE,QAAQx1E,KAAKmO,QAAQC,IACzCA,EAAOyY,SAAU,CAChBr7B,MAAOy4I,EAAe,GACtBx4I,OAAQw4I,EAAe,GACvBj5I,KAAMi5I,EAAe,GACrBv5I,IAAKu5I,EAAe,IAClBF,EAAgB,GAGtB,CAEO,cAAAM,CAAgBjgH,GACtB,OAAO/7C,KAAKu7J,mBAAoBj2I,SAAUy2B,EAC3C,CAEA,qBAAckgH,CAAgBlgH,GAC7B,OAAOA,EAAW82G,UAAUvtI,SAAU,6BACvC,CAKQ,QAAAi1I,GACPv6J,KAAKm6J,UAAUH,WAEKh6J,KAAKmhB,SAAS4e,OAAOotE,QAAQx1E,KAErCmO,QAAQC,IACnBA,EAAOyY,SAAU,QAASx+C,KAAKq6J,kBAAoBr6J,KAAKmhB,SAASggC,YAAa,GAEhF,CAOQ,eAAA45G,CAAiBjJ,GACxB,MAAMl6D,EAAQ53F,KAAK43F,MACbskE,EAmJA,CACNhiK,GAF2BwV,EAlJoBoiJ,GAoJtC9lC,MACT/xH,EAAGyV,EAAMw8G,OAHX,IAA6Bx8G,EAjJ3B,MAAMysJ,GAAan8J,KAAKmhB,SAASg7I,YAAan8J,KAAKmhB,SAASg7I,WAAYn8J,MAclEo8J,EAAc,CACnBliK,EAAG09F,EAAM6/D,sBAAuBv9J,GAAMgiK,EAAmBhiK,EAAI09F,EAAMkgE,eACnE79J,EAAKiiK,EAAmBjiK,EAAI29F,EAAMmgE,eAAoBngE,EAAM6/D,sBAAuBx9J,GAG/EkiK,GAAcvkE,EAAM0gE,qBAAsB7pI,SAAU,YACxD2tI,EAAYliK,EAAIgiK,EAAmBhiK,GAAM09F,EAAM6/D,sBAAuBv9J,EAAI09F,EAAMkgE,gBAK5EqE,IACJC,EAAYliK,GAAK,GAMlB,IAAIipB,EAAQtqB,KAAKwjK,IAAKzkE,EAAMkgE,cAAiBsE,EAAYliK,GACrDkpB,EAASvqB,KAAKwjK,IAAKzkE,EAAMmgE,eAAkBqE,EAAYniK,GAW3D,MANiB,UAFAkpB,EAAQy0E,EAAMqgE,YAAe70I,EAAS,QAAU,UAGhEA,EAASD,EAAQy0E,EAAMqgE,YAEvB90I,EAAQC,EAASw0E,EAAMqgE,YAGjB,CACN90I,MAAOtqB,KAAKuD,MAAO+mB,GACnBC,OAAQvqB,KAAKuD,MAAOgnB,GACpBm2I,cAAe1gK,KAAKD,IAAKC,KAAKuD,MAAOw7F,EAAMogE,sBAAyBpgE,EAAMkgE,cAAiB30I,EAAQ,KAAQ,IAAK,KAElH,CAOQ,cAAA03I,GACP,MAAMW,EAAgBx7J,KAAKu7J,mBAAoB5yI,cAE/C,OAAO3oB,KAAKmhB,SAASm7I,cAAed,EACrC,CAUQ,cAAAZ,GACP,MAAMY,EAAgBx7J,KAAKu7J,mBAAoB5yI,cAE/C,OAAO3oB,KAAKmhB,SAASo7I,cAAef,EACrC,CAQA,sBAAYD,GACX,OAAOv7J,KAAKmhB,SAAS4e,OAAOotE,QAAQx1E,KAAKkkB,aAAaqK,aAAclmD,KAAKo6J,oBAC1E,CAOQ,cAAAK,CAAgB1+G,GACvB,MAAMy8G,EAAmB,CAAE,WAAY,YAAa,eAAgB,eAEpE,UAAYvyE,KAAmBuyE,EAC9Bz8G,EAAWp2C,YAAe,IAAIwyB,GAAU,CACvCpgB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,+BA2Cc85H,EA3CkC1yE,EA4CpD,8BAA+B0yE,QA1ChCzgI,UAyCP,IAA0BygI,CAvCzB,CAKQ,aAAA+B,CAAe3+G,GACtB/7C,KAAKm6J,UAAY,IAAIP,GAGrB55J,KAAKm6J,UAAUjiI,SAEf6jB,EAAWp2C,YAAa3F,KAAKm6J,UAAUpjJ,QACxC,E,eCxdG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQumB,OCsCR,MAAMk/H,WAAqB,GAqBjCC,UAAY,IAAI/qJ,IAEhBgrJ,UAEAC,gCAKR,qBAAkB16H,GACjB,MAAO,cACR,CAKO,IAAAG,GACN,MAAM+qE,EAAUntG,KAAK+/B,OAAOotE,QACtBvxD,EAAc,GAAOr4C,OAAOC,SAElCxD,KAAK4R,IAAK,kBAAmB,MAC7B5R,KAAK4R,IAAK,iBAAkB,MAE5Bu7F,EAAQx1E,KAAK2mC,YAAa8pC,IAE1BpoG,KAAK08J,UAAY,IAAMz8I,MAEvBjgB,KAAK4P,SACJu9F,EAAQx1E,KAAKn0B,SACb,YACAxD,KAAK48J,mBAAmB51J,KAAMhH,MAC9B,CAAEgN,SAAU,SAGbhN,KAAK08J,UAAU9sJ,SAAUgsC,EAAa,YAAa57C,KAAK68J,mBAAmB71J,KAAMhH,OACjFA,KAAK08J,UAAU9sJ,SAAUgsC,EAAa,UAAW57C,KAAK88J,iBAAiB91J,KAAMhH,OAE7EA,KAAK28J,gCAAkC,IAAU,IAAM38J,KAAK+8J,yBAAyB,KAGrF/8J,KAAK+/B,OAAO+E,GAAGr1B,GAAyB,SAAUzP,KAAK28J,iCAKvD38J,KAAK+/B,OAAO3nC,MAAMoL,SAASiM,GAAyB,UAAU,KAC7D,UAAc0xC,EAAa67G,KAAah9J,KAAKy8J,UACtCt7G,EAAYta,eACjB7mC,KAAKy8J,UAAU3qJ,OAAQqvC,GACvB67G,EAAQ/0I,UAEV,GACE,CAAEjb,SAAU,WAGfhN,KAAK08J,UAAU9sJ,SAAU,GAAOrM,OAAQ,SAAUvD,KAAK28J,iCAEvD,MAAM/7G,EAAgB5gD,KAAK+/B,OAAOotE,QAAQx1E,KAAKn0B,SAASm9B,UAExDigB,EAAcnxC,GAA8B,UAAU,KACrD,MAAM2qC,EAAkBwG,EAAc1I,qBAEhC8kH,EAAUh9J,KAAKi9J,wBAAyB7iH,IAAqB,KAC9D4iH,EACJh9J,KAAKshH,OAAQ07C,GAEbh9J,KAAKk9J,UACN,GAEF,CAKO,qBAAAH,GACD/8J,KAAKm9J,iBAAmBn9J,KAAKm9J,gBAAgBp0I,WACjD/oB,KAAKm9J,gBAAgBxC,QAEvB,CAKgB,OAAA1yI,GACfpa,MAAMoa,UAENjoB,KAAK08J,UAAU3sJ,gBAEf,UAAYitJ,KAAWh9J,KAAKy8J,UAAUrxJ,SACrC4xJ,EAAQ/0I,UAGTjoB,KAAK28J,gCAAgC/lI,QACtC,CAKO,MAAA0qF,CAAQ07C,GACdh9J,KAAKk9J,WACLl9J,KAAKm9J,gBAAkBH,EACvBh9J,KAAKm9J,gBAAgB7C,YAAa,CACnC,CAKO,QAAA4C,GACDl9J,KAAKm9J,kBACTn9J,KAAKm9J,gBAAgB7C,YAAa,GAGnCt6J,KAAKm9J,gBAAkB,IACxB,CAKO,QAAA/oC,CAAU7vH,GAChB,MAAMy4J,EAAU,IAAI/C,GAAS11J,GACvB89B,EAAUriC,KAAK+/B,OAAOsC,QAI5B,GAFA26H,EAAQ37I,SAEHghB,EAAQp0B,IAAK,2BAA8B,CAG/C,MAAMmvJ,EAAmD/6H,EAAQj6B,IAAK,2BAEtE40J,EAAQvtJ,GAAuB,SAAS,KACvC2tJ,EAAwBn9H,cAAe,SAAU,GAC/C,CAAEjzB,SAAU,WAEfgwJ,EAAQvtJ,GAAwB,UAAU,KACzC2tJ,EAAwBh9H,mBAAoB,SAAU,GACpD,CAAEpzB,SAAU,YAEfgwJ,EAAQvtJ,GAAwB,UAAU,KACzC2tJ,EAAwBh9H,mBAAoB,SAAU,GACpD,CAAEpzB,SAAU,WAChB,CAEAhN,KAAKy8J,UAAU7qJ,IAAKrN,EAAQ48C,YAAa67G,GAEzC,MACM5iH,EADgBp6C,KAAK+/B,OAAOotE,QAAQx1E,KAAKn0B,SAASm9B,UAClBuX,qBAOtC,OAJKl4C,KAAKi9J,wBAAyB7iH,IAAqB4iH,GACvDh9J,KAAKshH,OAAQ07C,GAGPA,CACR,CAOO,uBAAAC,CAAyB97G,GAC/B,OAAOnhD,KAAKy8J,UAAUr0J,IAAK+4C,EAC5B,CAKQ,mBAAAk8G,CAAqBlF,GAC5B,UAAY6E,KAAWh9J,KAAKy8J,UAAUrxJ,SACrC,GAAK4xJ,EAAQhB,eAAgB7D,GAC5B,OAAO6E,CAGV,CAKQ,kBAAAJ,CAAoBltJ,EAAkBoiJ,GAC7C,MAAMwL,EAAexL,EAAa51G,UAE5B+9G,GAAQgC,eAAgBqB,KAI9Bt9J,KAAKu9J,eAAiBv9J,KAAKq9J,oBAAqBC,IAAkB,KAE7Dt9J,KAAKu9J,iBACTv9J,KAAKu9J,eAAerF,MAAOoF,GAG3B5tJ,EAAMrD,OACNylJ,EAAa37H,kBAEf,CAKQ,kBAAA0mI,CAAoBntJ,EAAgBoiJ,GACtC9xJ,KAAKu9J,gBACTv9J,KAAKu9J,eAAezC,WAAYhJ,EAElC,CAEQ,gBAAAgL,GACF98J,KAAKu9J,iBACTv9J,KAAKu9J,eAAepC,SACpBn7J,KAAKu9J,eAAiB,KAExB,EC3QD,MAAM,GAAuBh1I,GAAQ,MAKtB,MAAMi1I,WAAiBngI,GAoCrC,WAAAt7B,GACC8L,QAEA,MAAM7G,EAAOhH,KAAK69B,aAElB79B,KAAK4R,IAAK,CACTmX,WAAW,EACXpG,KAAM,KACNN,IAAK,KACLc,MAAO,OAGRnjB,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,gCACA73B,EAAKuyB,GAAI,YAAa,aAAa/gC,IAAUA,KAE9C6M,MAAO,CACNsd,KAAM3b,EAAKzH,GAAI,QAAQojB,GAAQ,GAAMA,KACrCN,IAAKrb,EAAKzH,GAAI,OAAO8iB,GAAO,GAAMA,KAClCc,MAAOnc,EAAKzH,GAAI,SAAS4jB,GAAS,GAAMA,QAI5C,ECvCc,MAAMs6I,WAAuB,GAM3BC,wBAA0BlnI,IAAO,IAAMx2B,KAAK29J,oBAAoB,IAK/DC,2BAA6B,IAC7C1hB,GAAel8I,KAAK69J,kBAAmB3hB,IAAe,IAMtC4hB,0BAA4B,IAAU,KACjD99J,KAAK+/B,OAAO3nC,MAAMqxE,QAAQx7D,IAAK,gBACnCjO,KAAK+/B,OAAOotE,QAAQ1vB,gBAAiB,cACtC,GACE,GAKKsgF,oBAAsB,IAAIP,GAK1BQ,YAA0B,IAAM/9I,MAKhCg+I,aAAe,IAAIvsJ,IAQ3B,qBAAkBuwB,GACjB,MAAO,gBACR,CAKO,IAAAG,GACNpiC,KAAKk+J,kBACN,CAKgB,OAAAj2I,GACfjoB,KAAKg+J,YAAYjuJ,gBAEjB,UAAY,eAAE81G,KAAoB7lH,KAAKi+J,aAAa7yJ,SACnDy6G,EAAe59F,UAOhB,OAJAjoB,KAAK49J,2BAA2BhnI,SAChC52B,KAAK09J,wBAAwB9mI,SAC7B52B,KAAK89J,0BAA0BlnI,SAExB/oB,MAAMoa,SACd,CAOO,gBAAAk2I,CACNC,EACAC,EACAjpD,EACAC,EACAipD,EACAC,GAEAv+J,KAAK09J,wBAAwB9mI,SAE7B,MAAMslH,EAAcsiB,GACnBx+J,KAAK+/B,OACLq+H,EACAC,EACAjpD,EACAC,EACAipD,EACAC,GAID,GAAMriB,EAIN,OAAKqiB,GAAgBA,EAAa5oH,cAAeumG,GAEzCl8I,KAAK29J,wBAGb39J,KAAK49J,2BAA4B1hB,EAClC,CAOO,iBAAAuiB,CACNL,EACAC,EACAjpD,EACAC,EACAipD,EACAC,GAEA,MAAMriB,EAAcsiB,GACnBx+J,KAAK+/B,OACLq+H,EACAC,EACAjpD,EACAC,EACAipD,EACAC,GAMD,OAFAv+J,KAAK29J,mBAEEzhB,CACR,CAOO,gBAAAyhB,GACN,MAAMvlK,EAAQ4H,KAAK+/B,OAAO3nC,MAE1B4H,KAAK09J,wBAAwB9mI,SAC7B52B,KAAK49J,2BAA2BhnI,SAChC52B,KAAK+9J,oBAAoBh1I,WAAY,EAEhC3wB,EAAMqxE,QAAQx7D,IAAK,gBACvB7V,EAAM0tC,QAAQC,IACbA,EAAOg1D,aAAc,cAAe,GAGvC,CAKQ,gBAAAmjE,GACP,MAAMn+H,EAAS//B,KAAK+/B,OAEpBA,EAAO+E,GAAGnN,KAAK1U,KAAK/U,IAAKlO,KAAK+9J,qBAG9Bh+H,EAAO1hC,WAAWurF,IAAK,mBAAoBnV,kBAAmB,CAC7Dr8E,MAAO,cACPu/B,KAAM,CACLoS,QAAS,CAAE,qCAKbhK,EAAO1hC,WAAWurF,IAAK,mBAAoBtV,gBAAiB,CAC3Dl8E,MAAO,cACPu/B,KAAM,CAAE70B,GAAQijC,aAEf,GAAKhG,EAAO3nC,MAAMkiC,OAAOq4C,WAAY7vE,EAAKynE,YAAY95C,MAAO,SAG5D,OAFAzwB,KAAK+9J,oBAAoBh1I,WAAY,EAE9B/oB,KAAK0+J,0BAA2B34H,GAIlCjjC,EAAKynE,YAAYp1B,YACrBn1C,KAAK2+J,sBAAuB77J,EAAKynE,aAEjCvqE,KAAK+9J,oBAAoBh1I,WAAY,CAEvC,GAGH,CAOQ,iBAAA80I,CAAmB3hB,GAC1B,MAAMn8G,EAAS//B,KAAK+/B,OACd0pC,EAAU1pC,EAAO3nC,MAAMqxE,QAE7B1pC,EAAO3nC,MAAM0tC,QAAQC,IACf0jC,EAAQx7D,IAAK,eACXw7D,EAAQrhE,IAAK,eAAiBoiE,WAAWnlD,QAAS62H,IACvDn2G,EAAOg3D,aAAc,cAAe,CAAEh2E,MAAOm1H,IAG9Cn2G,EAAOi3D,UAAW,cAAe,CAChCj2E,MAAOm1H,EACPp/C,gBAAgB,EAChBp8D,aAAa,GAEf,GAEF,CAKQ,yBAAAg+H,CAA2B34H,GAClC,OAAOA,EAAOoY,gBAAiB,OAAQ,CAAEtf,MAAO,yCAA0C,SAAU+c,GACnG,MAAMG,EAAa/7C,KAAK87C,aAAcF,GAKtC,OAFAG,EAAW0T,OAAQ,IAAU7T,EAAYt2C,cAAe,QAAU,KAE3Dy2C,CACR,GACD,CAKQ,qBAAA4iH,CAAuB53I,GAC9B,MAAMomF,EAAUntG,KAAK+/B,OAAOotE,QAEtB74D,EAAavtB,EAAM0J,MAAM6jB,WACzBD,EAAYttB,EAAM0J,MAAM4jB,UACxBuqH,EAAa73I,EAAM0J,MAAM7xB,OAEzBigK,EAAoBvqH,EAAa64D,EAAQ7lC,OAAOf,cAAejyB,GAAe,KAC9EwqH,EAAmBD,EAAoB1xD,EAAQx1E,KAAKkkB,aAAaqK,aAAc24G,GAAsB,KAErGE,EAAmB1qH,EAAY84D,EAAQ7lC,OAAOf,cAAelyB,GAAe,KAC5E2qH,EAAkBD,EAAmB5xD,EAAQx1E,KAAKkkB,aAAaqK,aAAc64G,GAAqB,KAElGE,EAAoB9xD,EAAQ7lC,OAAOf,cAAeq4F,GAExD,IAAMK,EACL,OAGD,MAAMC,EAAmB/xD,EAAQx1E,KAAKkkB,aAAaqK,aAAc+4G,GAE3DE,EAAoBn/J,KAAKo/J,mBAAoBH,IAE7C,QAAEx5I,EAAO,QAAEC,GAAY,GAAOniB,OAC9B87J,EAAaP,EAAmB,IAAI,GAAMA,GAAqB,KAC/DQ,EAAYN,EAAkB,IAAI,GAAMA,GAAoB,KAC5DO,EAAa,IAAI,GAAML,GAAmB74I,8BAE1Cm5I,EAAQH,EAAaA,EAAW58I,OAAS88I,EAAWl9I,IACpDo9I,EAAQH,EAAYA,EAAUj9I,IAAMk9I,EAAW98I,OAE/Ci9I,EAAc,GAAOn8J,OAAO6e,iBAAkB88I,GAC9C78I,EAAQm9I,GAASC,GAAUD,EAAQC,GAAU,EAAIA,EAEvD,GAAKN,EAAkB98I,IAAMA,GAAOA,EAAM88I,EAAkB18I,OAAS,CACpE,MAAME,EAAO48I,EAAW58I,KAAOi8F,WAAY8gD,EAAYnQ,aACjDhtI,EAAQg9I,EAAWh9I,MAAQq8F,WAAY8gD,EAAYlQ,cAEnDmQ,EAAc9mK,KAAKC,IAAK6pB,EAAO8C,EAAS05I,EAAkBx8I,MAC1Di9I,EAAe/mK,KAAKD,IAAK2pB,EAAQkD,EAAS05I,EAAkB58I,OAElEviB,KAAK+9J,oBAAoBnsJ,IAAK,CAC7BmX,WAAW,EACXpG,KAAMg9I,EACNt9I,IAAKA,EAAMqD,EACXvC,MAAOy8I,EAAeD,GAExB,MACC3/J,KAAK+9J,oBAAoBh1I,WAAY,CAEvC,CAKQ,kBAAAq2I,CAAoBj+G,GAC3B,MAAMrgB,EAAaqgB,EAAY7qD,KAAkCwqC,SAEjE,IAAI++H,EAEJ,GAAK7/J,KAAKi+J,aAAahwJ,IAAK6yB,GAC3B++H,EAAgB7/J,KAAKi+J,aAAa71J,IAAK04B,GAAYib,eAC7C,CAGN8jH,EA6KH,SAAgCz6G,GAC/B,IAAIrJ,EAA0BqJ,EAE9B,EAAG,CACFrJ,EAAaA,EAAWpzB,cAExB,MAAM3D,EAAW,GAAOzhB,OAAO6e,iBAAkB25B,GAAa+jH,UAE9D,GAAiB,QAAZ96I,GAAkC,UAAZA,EAC1B,KAEF,OAAgC,QAAtB+2B,EAAWuP,SAErB,OAAOvP,CACR,CA3LmBgkH,CAFG//J,KAAK+/B,OAAOotE,QAAQx1E,KAAKkkB,aAAaqK,aAAc/E,IAIvEnhD,KAAKg+J,YAAYpuJ,SAAUiwJ,EAAe,SAAU7/J,KAAK89J,0BAA2B,CAAEx9I,YAAY,IAClG,MAAMulG,EAAiB,IAAIn+F,GAAgBm4I,EAAe7/J,KAAK89J,2BAE/D99J,KAAKi+J,aAAarsJ,IAAKkvB,EAAU,CAChCib,WAAY8jH,EACZh6C,kBAEF,CAEA,OAAO,IAAI,GAAMg6C,GAAgBx5I,6BAClC,EAMD,SAASm4I,GACRz+H,EACAq+H,EACAC,EACAjpD,EACAC,EACAipD,EACAC,GAEA,MAAMnmK,EAAQ2nC,EAAO3nC,MACfkvE,EAASvnC,EAAOotE,QAAQ7lC,OAG9B,IAAIrB,EADuB+5F,GAA8BjgI,EAAQq+H,GAGjE,KAAQn4F,GAAe,CACtB,IAAMq4F,EACL,GAAKlmK,EAAMkiC,OAAOq4C,WAAY1M,EAAc,UAC3C,GAAKo4F,EAAmB,CACvB,MAAM4B,EAAqB5B,EAAkB,GAAI5tI,MAC3CyvI,EAAsB54F,EAAOJ,gBAAiB+4F,GAKpD,IAJ2B1B,GAAgB59J,MACzCrB,KAAMi/J,EAAaloH,YACnB3/B,OAAOzW,GAAQ7H,EAAMkiC,OAAOq4C,WAAYutF,EAAqBjgK,KAEtC,CACxB,GAAK7H,EAAMkiC,OAAOq4C,WAAYutF,EAAqB,SAClD,OAAO9nK,EAAMqpD,YAAay+G,GAC3B,GACUD,EAET,OAAOE,GACNpgI,EACAigI,GAA8BjgI,EAAQkgI,EAAmBrhK,QACzDw2G,EACAC,EAGH,CACD,OACD,GACUj9G,EAAMkiC,OAAOm3C,SAAUxL,GAChC,OAAOk6F,GAA+BpgI,EAAQkmC,EAAcmvC,EAASC,GAIvE,GAAKj9G,EAAMkiC,OAAOizC,QAAStH,GAC1B,OAAOk6F,GAA+BpgI,EAAQkmC,EAAcmvC,EAASC,GACtE,GACUj9G,EAAMkiC,OAAOq4C,WAAY1M,EAAc,UAAa,CAC7D,MAAM3/D,EAAa3F,MAAMrB,KAAM2mE,EAAan/B,eAC1C/gC,QAAU5G,GAA2BA,EAAKoP,GAAI,aAAgB6xJ,GAAqBrgI,EAAQ5gC,KAE7F,IAAIkhK,EAAa,EACbC,EAAWh6J,EAAWhO,OAE1B,GAAiB,GAAZgoK,EACJ,OAAOloK,EAAMqpD,YAAarpD,EAAMkpD,iBAAkB2kB,EAAyB,QAG5E,KAAQo6F,EAAaC,EAAW,GAAI,CACnC,MAAMC,EAAc1nK,KAAK+B,OAASylK,EAAaC,GAAa,GAG/C,UAFAE,GAAiBzgI,EAAQz5B,EAAYi6J,GAAenrD,EAASC,GAGzEirD,EAAWC,EAEXF,EAAaE,CAEf,CAEA,OAAOJ,GAA+BpgI,EAAQz5B,EAAY+5J,GAAcjrD,EAASC,EAClF,CAEApvC,EAAeA,EAAarnE,MAC7B,CAEA,OAAO,IACR,CAKA,SAASwhK,GAAqBrgI,EAAgBkmC,GAC7C,MAAMqB,EAASvnC,EAAOotE,QAAQ7lC,OACxBzrB,EAAe9b,EAAOotE,QAAQx1E,KAAKkkB,aAEnCsF,EAAcmmB,EAAOf,cAAeN,GAE1C,IAAM9kB,EACL,OAAO,EAGR,MAAMpF,EAAaF,EAAaqK,aAAc/E,GAE9C,MAA6D,QAAtD,GAAO59C,OAAO6e,iBAAkB25B,GAAa0kH,KACrD,CAKA,SAASN,GAA+BpgI,EAAgBkmC,EAAuBmvC,EAAiBC,GAC/F,MAAMj9G,EAAQ2nC,EAAO3nC,MAErB,OAAOA,EAAMqpD,YACZrpD,EAAMkpD,iBACL2kB,EACAu6F,GAAiBzgI,EAAQkmC,EAAcmvC,EAASC,IAGnD,CAKA,SAASmrD,GAAiBzgI,EAAgBkmC,EAAuBmvC,EAAiBC,GACjF,MAAM/tC,EAASvnC,EAAOotE,QAAQ7lC,OACxBzrB,EAAe9b,EAAOotE,QAAQx1E,KAAKkkB,aAEnCsF,EAAcmmB,EAAOf,cAAeN,GACpClqB,EAAaF,EAAaqK,aAAc/E,GACxC98B,EAAO,IAAI,GAAM03B,GAEvB,OAAKhc,EAAO3nC,MAAMkiC,OAAOm3C,SAAUxL,GAC3BmvC,GAAY/wF,EAAK1B,KAAO0B,EAAK9B,OAAU,EAAI,SAAW,QAEtD8yF,GAAYhxF,EAAKhC,IAAMgC,EAAK5B,QAAW,EAAI,SAAW,OAE/D,CAKA,SAASu9I,GAA8BjgI,EAAgBhpB,GACtD,MAAMuwD,EAASvnC,EAAOotE,QAAQ7lC,OACxB3vC,EAAOoI,EAAOotE,QAAQx1E,KAEtB+oI,EAAqBp5F,EAAOnB,eAAgBpvD,GAElD,GAAK2pJ,EACJ,OAAOA,EAIR,MAAM/jH,EAAehlB,EAAK6pB,qBAAsBzqC,GAC1CoqC,EAAcmmB,EAAOzB,uBAAwBlpB,GAEnD,OAAO2qB,EAAOnB,eAAgBhlB,EAC/B,CCpee,MAAMw/G,WAA6B,GAIzCC,kBAAmB,EAKnB5C,YAA0B,IAAM/9I,MAKxC,qBAAkBgiB,GACjB,MAAO,sBACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OAepB,GAbA//B,KAAK4P,SAA0CmwB,EAAQ,qBAAqB,CAAEvqB,EAAKxT,EAAMg/B,KACnFA,GACJhhC,KAAKigC,cAAe,gBACpBjgC,KAAK4gK,kBAAmB,GAExB5gK,KAAKogC,mBAAoB,eAC1B,IAGI,EAAIn3B,WACRjJ,KAAKigC,cAAe,oBAGhBF,EAAOsC,QAAQp0B,IAAK,gBAAmB,CAC3C,MACM8I,EAD6BgpB,EAAOsC,QAAQj6B,IAAK,gBAC1B2wG,WAAWhiG,QAExC/W,KAAKg+J,YAAYpuJ,SAAUmH,EAAS,aAAa,CAAEvB,EAAK1S,IAAU9C,KAAK6gK,sBAAuB/9J,KAC9F9C,KAAKg+J,YAAYpuJ,SAAU,GAAOpM,SAAU,YAAY,CAAEgS,EAAK1S,IAAU9C,KAAK8gK,qBAAsBh+J,KACpG9C,KAAKg+J,YAAYpuJ,SAAU,GAAOpM,SAAU,QAAQ,CAAEgS,EAAK1S,IAAU9C,KAAK8gK,qBAAsBh+J,KAChG9C,KAAKg+J,YAAYpuJ,SAAU,GAAOpM,SAAU,WAAW,IAAMxD,KAAK+gK,uBAAuB,CAAE3gJ,YAAY,IAElGpgB,KAAKmgC,WACTppB,EAAQtR,aAAc,YAAa,QAGpCzF,KAAKyP,GAAoC,oBAAoB,CAAE+F,EAAKxT,EAAMm+B,KACzEppB,EAAQtR,aAAc,YAAa06B,EAAY,OAAS,QAAS,GAEnE,CACD,CAKgB,OAAAlY,GAGf,OAFAjoB,KAAKg+J,YAAYjuJ,gBAEVlC,MAAMoa,SACd,CAKQ,qBAAA44I,CAAuB7rG,GAC9B,IAAMh1D,KAAKmgC,UACV,OAGD,MAAM/nC,EAAQ4H,KAAK+/B,OAAO3nC,MACpBuoC,EAAYvoC,EAAMoL,SAASm9B,UAC3BhJ,EAAO33B,KAAK+/B,OAAOotE,QAAQx1E,KAE3By/G,EAASz2I,MAAMrB,KAAMqhC,EAAU6rC,qBAC/B+xF,EAAenmK,EAAMqpD,YAC1BrpD,EAAMopD,qBAAsB41F,EAAQ,IACpCh/I,EAAMmpD,oBAAqB61F,EAAQA,EAAO9+I,OAAS,KAGpDF,EAAM0tC,QAAQC,GAAUA,EAAOwX,aAAcghH,KAE7Cv+J,KAAK4gK,kBAAmB,EAExBjpI,EAAK8H,QACL9H,EAAK8jC,YAAaqtF,IAAqB3zF,WAAYH,EACpD,CAKQ,oBAAA8rG,CAAsB9rG,GAC7B,IAAMh1D,KAAKmgC,YAAcngC,KAAK4gK,iBAC7B,OAGD,MAAMxrD,EAAUpgD,EAASogD,SAA2D,OAA/Cp1G,KAAK+/B,OAAOxC,OAAOtO,yBAAoC,KAAO,KAC7FomF,EAAUrgD,EAASqgD,QACnBzxG,EAASJ,SAASw9J,iBAAkB5rD,EAASC,GAC7C19E,EAAO33B,KAAK+/B,OAAOotE,QAAQx1E,KAE3B/zB,GAAWA,EAAOo2H,QAAS,yBAIjCriG,EAAK8jC,YAAaqtF,IAAqB3zF,WAAY,IAC/CH,EACH7pD,KAAM6pD,EAAS7pD,KACfoyD,aAAcvI,EAASuI,aACvB35D,SACAwxG,UACAC,UACAl/E,eAAgB,IAAM6+B,EAAS7+B,iBAC/BC,gBAAiB,IAAM4+B,EAAS5+B,mBAElC,CAKQ,mBAAA2qI,GACP/gK,KAAK4gK,kBAAmB,CACzB,E,eCtJG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQtjI,OCuIR,MAAM2jI,WAAiB,GAI7BC,cAOAC,aAKAC,kBAKAC,iCAA4D7qI,IAAO,IAAMx2B,KAAKshK,6BAA6B,IAO3GC,YAAsB,EAKtBvD,YAA0B,IAAM/9I,MAKhCuhJ,kBAKR,qBAAkBv/H,GACjB,MAAO,UACR,CAKA,mBAAkBW,GACjB,MAAO,CAAEmqH,GAAmBuH,GAAQmJ,GAAgBkD,GACrD,CAKO,IAAAv+H,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdpI,EAAOoI,EAAOotE,QAAQx1E,KAE5B33B,KAAKkhK,cAAgB,KACrBlhK,KAAKmhK,aAAe,GACpBnhK,KAAKohK,kBAAoB,KAEzBzpI,EAAK2mC,YAAawqF,IAClBnxH,EAAK2mC,YAAa8pC,IAElBpoG,KAAKyhK,iBACLzhK,KAAK0hK,oCACL1hK,KAAK2hK,kCACL3hK,KAAK4hK,mCAEL5hK,KAAK4P,SAA0CmwB,EAAQ,qBAAqB,CAAEvqB,EAAKxT,EAAMg/B,KACnFA,EACJhhC,KAAKigC,cAAe,gBAEpBjgC,KAAKogC,mBAAoB,eAC1B,IAGDpgC,KAAKyP,GAAoC,oBAAoB,CAAE+F,EAAKxT,EAAMm+B,KACnEA,GACLngC,KAAK6hK,mBAAmB,EACzB,IAGI,EAAI54J,WACRjJ,KAAKigC,cAAe,mBAEtB,CAKgB,OAAAhY,GAaf,OAZKjoB,KAAKkhK,gBACTlhK,KAAKkhK,cAAc1/I,SACnBxhB,KAAKkhK,cAAgB,MAGjBlhK,KAAKwhK,mBACTxhK,KAAKwhK,kBAAkBv7J,SAGxBjG,KAAKg+J,YAAYjuJ,gBACjB/P,KAAKqhK,iCAAiCzqI,SAE/B/oB,MAAMoa,SACd,CAKQ,cAAAw5I,GACP,MAAM1hI,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACfu/B,EAAOoI,EAAOotE,QAAQx1E,KACtB2lC,EAAe3lC,EAAKn0B,SACpBs+J,EAAiB/hI,EAAOsC,QAAQj6B,IAAKq1J,IAG3Cz9J,KAAK4P,SAAsC0tD,EAAc,aAAa,CAAE9nD,EAAK1S,KAE5E,GAAKA,EAAKc,QAAUd,EAAKc,OAAO2K,GAAI,mBAGnC,YAFAzL,EAAKqzB,iBAON,GAFAn2B,KAAK+hK,qBAAsBj/J,EAAKc,SAE1B5D,KAAKkhK,cAGV,YAFAp+J,EAAKqzB,iBAKNn2B,KAAKmhK,aAAez0J,IAEpB5J,EAAKy6D,aAAaZ,cAAgB38D,KAAKmgC,UAAY,WAAa,OAChEr9B,EAAKy6D,aAAab,QAAS,qCAAsC18D,KAAKmhK,cAEtE,MAAMa,EAAmB5pK,EAAMwpD,gBAAiB5hD,KAAKkhK,cAAcnzF,WACtB/tE,KAAK+/B,OAAOsC,QAAQj6B,IAAK,qBAEpD8kJ,+BAAgCpqJ,EAAKy6D,aAAcykG,EAAkB,aAEvF,MAAM,aAAEzkG,EAAY,UAAErhB,EAAS,SAAE8Y,GAAalyD,GACxC,QAAEsyG,GAAYpgD,EAEpBh1D,KAAKiiK,eAAgB,CAAE1kG,eAAcrhB,YAAWk5D,YAEhDtyG,EAAKszB,kBAECp2B,KAAKmgC,YACVngC,KAAKkhK,cAAc1/I,SACnBxhB,KAAKkhK,cAAgB,KACrBlhK,KAAKmhK,aAAe,GACrB,GACE,CAAEn0J,SAAU,QAKfhN,KAAK4P,SAAoC0tD,EAAc,WAAW,CAAE9nD,EAAK1S,KACxE9C,KAAK6hK,mBAAoB/+J,EAAKy6D,aAAaR,YAA8C,QAAhCj6D,EAAKy6D,aAAaX,WAAsB,GAC/F,CAAE5vD,SAAU,QAGfhN,KAAKg+J,YAAYpuJ,SAAU,GAAOpM,SAAU,WAAW,KACtDxD,KAAKuhK,YAAa,CAAK,GACrB,CAAEnhJ,YAAY,IAGjBpgB,KAAK4P,SAAsC0tD,EAAc,aAAa,KAC/Dt9D,KAAKmgC,WAIXxI,EAAK8H,OAAO,IAIbz/B,KAAK4P,SAAsC0tD,EAAc,aAAa,KAGrEwkG,EAAepE,yBAAyB,IAIzC19J,KAAK4P,SAAqC0tD,EAAc,YAAY,CAAE9nD,EAAK1S,KAC1E,IAAM9C,KAAKmgC,UAGV,YAFAr9B,EAAKy6D,aAAaX,WAAa,QAKhC,MAAM,QAAEw4C,EAAO,QAAEC,GAAcvyG,EAAkCkyD,SAEjE8sG,EAAe3D,iBACdr7J,EAAKc,OACLd,EAAK06D,aACL43C,EACAC,EACAr1G,KAAKuhK,WACLvhK,KAAKkhK,eAKAlhK,KAAKkhK,gBACVp+J,EAAKy6D,aAAaX,WAAa,QAI1B,EAAI9zD,UAC+B,QAAnChG,EAAKy6D,aAAaZ,cACtB75D,EAAKy6D,aAAaX,WAAa,OACpB,CAAE,MAAO,YAAazqC,SAAUrvB,EAAKy6D,aAAaZ,iBAC7D75D,EAAKy6D,aAAaX,WAAa,SAIjCpnD,EAAInJ,MAAM,GACR,CAAEW,SAAU,OAChB,CAKQ,+BAAA20J,GACP,MAAM5hI,EAAS//B,KAAK+/B,OAEdu9B,EADOv9B,EAAOotE,QAAQx1E,KACFn0B,SACpBs+J,EAAiB/hI,EAAOsC,QAAQj6B,IAAKq1J,IAG3Cz9J,KAAK4P,SAA2C0tD,EAAc,kBAAkB,CAAE9nD,EAAK1S,KACtF,GAAoB,QAAfA,EAAKmhC,OACT,OAGD,MAAM,QAAEmxE,EAAO,QAAEC,GAAcvyG,EAAkCkyD,SAC3DknF,EAAc4lB,EAAerD,kBAClC37J,EAAKc,OACLd,EAAK06D,aACL43C,EACAC,EACAr1G,KAAKuhK,WACLvhK,KAAKkhK,eAGN,IAAMhlB,EAIL,OAHAl8I,KAAK6hK,mBAAmB,QACxBrsJ,EAAInJ,OAOArM,KAAKkhK,eAAiBlhK,KAAKmhK,cAAgBr+J,EAAKy6D,aAAad,QAAS,wCAC1Ez8D,KAAKkhK,cAAc1/I,SACnBxhB,KAAKkhK,cAAgB,KACrBlhK,KAAKmhK,aAAe,IAMrB,GAF0D,QAA3Ce,GAAoBp/J,EAAKy6D,eAEzBv9D,KAAKkhK,eAAiBlhK,KAAKkhK,cAAcvrH,cAAeumG,GAAa,GAInF,OAHAl8I,KAAK6hK,mBAAmB,QACxBrsJ,EAAInJ,OAMLvJ,EAAK06D,aAAe,CAAEz9B,EAAOotE,QAAQ7lC,OAAOH,YAAa+0E,GAAe,GACtE,CAAElvI,SAAU,QAChB,CAKQ,iCAAA00J,GACP,MAAMS,EAAoBniK,KAAK+/B,OAAOsC,QAAQj6B,IAAK2kJ,IAEnDoV,EAAkB1yJ,GAAoC,oBAAoB,CAAE+F,EAAK1S,KAChF,IAAM9C,KAAKmgC,WAA6B,SAAhBr9B,EAAKmhC,OAC5B,OAKD,MAAM+R,EAASlzC,EAAK06D,aAAcxgE,KAAKuzD,GAAavwD,KAAK+/B,OAAOotE,QAAQ7lC,OAAOL,aAAc1W,KAE7FvwD,KAAK+/B,OAAO3nC,MAAM0tC,QAAQC,GAAUA,EAAOwX,aAAcvH,IAAU,GACjE,CAAEhpC,SAAU,SAEfm1J,EAAkB1yJ,GAAoC,oBAAoB,CAAE+F,EAAK1S,KAChF,IAAM9C,KAAKmgC,WAA6B,SAAhBr9B,EAAKmhC,OAC5B,OAID,MAAMm+H,EAAoD,QAA3CF,GAAoBp/J,EAAKy6D,cAKlC8kG,GAAav/J,EAAK42I,cAAgB52I,EAAK42I,YAAYvkG,YAEzDn1C,KAAK6hK,kBAAmBQ,GAAaD,EAAQ,GAC3C,CAAEp1J,SAAU,UAChB,CAKQ,gCAAA40J,GACP,MAAM7hI,EAAS//B,KAAK+/B,OACdpI,EAAOoI,EAAOotE,QAAQx1E,KACtB2lC,EAAe3lC,EAAKn0B,SAI1BxD,KAAK4P,SAAsC0tD,EAAc,aAAa,CAAE9nD,EAAK1S,KAG5E,GAAK,EAAImG,YAAcnG,EACtB,OAGD9C,KAAKqhK,iCAAiCzqI,SAGtC,IAAI0rI,EAAmBC,GAAqBz/J,EAAKc,QAUjD,GAAK,EAAIsF,UAAY62B,EAAOiB,aAAeshI,IAAqBhlG,EAAa38B,UAAUwU,YAAc,CACpG,MAAMiF,EAAkBkjB,EAAa38B,UAAUuX,qBAEzCkC,GAAoBk0G,GAAUl0G,KACnCkoH,EAAmBhlG,EAAa38B,UAAU2R,gBAE5C,CAEKgwH,IACJ3qI,EAAKmO,QAAQC,IACZA,EAAOtgC,aAAc,YAAa,OAAQ68J,EAAmB,IAI9DtiK,KAAKohK,kBAAoBrhI,EAAOotE,QAAQ7lC,OAAOnB,eAAgBm8F,GAChE,IAIDtiK,KAAK4P,SAAoC0tD,EAAc,WAAW,KAC3D,EAAIr0D,WACTjJ,KAAKqhK,kCACN,GAEF,CAKQ,yBAAAC,GACP,MAAMn0D,EAAUntG,KAAK+/B,OAAOotE,QAE5BA,EAAQx1E,KAAKmO,QAAQC,IAEf/lC,KAAKohK,mBAA6D,cAAxCphK,KAAKohK,kBAAkB9qK,KAAKwqC,UAC1DiF,EAAOr/B,gBAAiB,YAAaymG,EAAQ7lC,OAAOf,cAAevmE,KAAKohK,oBAGzEphK,KAAKohK,kBAAoB,IAAI,GAE/B,CAOQ,iBAAAS,CAAmBW,GAC1B,MAAMziI,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MAMrB,GALuB2nC,EAAOsC,QAAQj6B,IAAKq1J,IAE5BE,mBACf39J,KAAKshK,4BAEAvhI,EAAOsC,QAAQp0B,IAAK,2BAA8B,CACG8xB,EAAOsC,QAAQj6B,IAAK,2BAErDg4B,mBAAoB,WAC7C,CAEApgC,KAAKmhK,aAAe,GAEfnhK,KAAKwhK,oBACTxhK,KAAKwhK,kBAAkBv7J,SACvBjG,KAAKwhK,uBAAoB,GAGpBxhK,KAAKkhK,gBAKNsB,GAASxiK,KAAKmgC,WAClB/nC,EAAM0tC,QAAQC,IACb,MAAMpF,EAAYvoC,EAAMwpD,gBAAiB5hD,KAAKkhK,eAE9C9oK,EAAM4nG,cAAer/D,EAAW,CAAE4/D,oBAAoB,IAGtD,MAAMj4C,EAAkB3nB,EAAUE,mBAAoBjiC,OAGrD0pD,EAAgBhc,UACfl0C,EAAMkiC,OAAOq4C,WAAYrqB,EAAiB,UAC3ClwD,EAAMkiC,OAAOq4C,WAAYrqB,EAAiB,cAE1CviB,EAAOssC,cAAe,YAAa/pB,EAAiB,EACrD,IAIFtoD,KAAKkhK,cAAc1/I,SACnBxhB,KAAKkhK,cAAgB,KACtB,CAKQ,oBAAAa,CAAsBn+J,GAC7B,MAAMm8B,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACfuoC,EAAYvoC,EAAMoL,SAASm9B,UAG3B8hI,EAAkB7+J,EAAS2+J,GAAqB3+J,GAAW,KAEjE,GAAK6+J,EAAkB,CACtB,MAAMx8F,EAAelmC,EAAOotE,QAAQ7lC,OAAOnB,eAAgBs8F,GAM3D,GAJAziK,KAAKkhK,cAAgBrzF,GAAUG,UAAW51E,EAAMspD,cAAeukB,IAC/DjmE,KAAKuhK,WAAanpK,EAAMkiC,OAAOizC,QAAStH,GAGnClmC,EAAOsC,QAAQp0B,IAAK,2BAA8B,CACG8xB,EAAOsC,QAAQj6B,IAAK,2BAErD63B,cAAe,WACxC,CAEA,MACD,CAGA,GAAKU,EAAUwU,cAAkBxU,EAAUE,mBAAoBjiC,OAAoB0tC,QAClF,OAGD,MAAM8qG,EAASz2I,MAAMrB,KAAMqhC,EAAU6rC,qBAC/B+xF,EAAe59H,EAAU4W,gBAE/B,GAAsB,GAAjB6/F,EAAO9+I,OAGX,YAFA0H,KAAKkhK,cAAgBrzF,GAAUG,UAAWuwF,IAK3C,MAAM1e,EAAa6iB,GAAuCtqK,EAAOg/I,GAEjE,GAAKA,EAAO9+I,OAAS,EACpB0H,KAAKkhK,cAAgBrzF,GAAUG,UAAW6xE,GAC1C7/I,KAAKuhK,YAAa,OAEZ,GAAsB,GAAjBnqB,EAAO9+I,OAAc,CAChC,MAAMqqK,EAAoBpE,EAAa9tI,MAAMuxC,WAAY69E,EAAWpvH,QAClE8tI,EAAaxyH,IAAIi2B,WAAY69E,EAAW9zG,KAE1C/rC,KAAKkhK,cAAgBrzF,GAAUG,UAAW20F,EAAoB9iB,EAAa0e,GAC3Ev+J,KAAKuhK,WAAaoB,CACnB,CAEAvqK,EAAM0tC,QAAQC,GAAUA,EAAOwX,aAAcv9C,KAAKkhK,cAAenzF,YAClE,CAKQ,cAAAk0F,EAAgB,aACvB1kG,EAAY,UACZrhB,EAAS,QACTk5D,IAMA,MAAMz9E,EAAO33B,KAAK+/B,OAAOotE,QAAQx1E,KAC3B6c,EAAW7c,EAAKn0B,SAASm9B,UAAU2R,gBACnC6f,EAAcx6B,EAAKkkB,aAAaqK,aAAc1R,GAC9CuyE,EAAgB,GAAOxjH,OAAO6e,iBAAkB+vC,GAEhDnyD,KAAKwhK,kBAMCxhK,KAAKwhK,kBAAkB3oD,mBAClC74G,KAAKwhK,kBAAkBj7J,YAAavG,KAAKwhK,kBAAkB3oD,oBAN3D74G,KAAKwhK,kBAAoB,GAAe,GAAOh+J,SAAU,MAAO,CAC/D6B,MAAO,sCAGR,GAAO7B,SAASyf,KAAKtd,YAAa3F,KAAKwhK,oBAKxC,MAAMoB,EAAU,IAAI,GAAMzwG,GAG1B,GAAKA,EAAY7sC,SAAU42B,GAC1B,OAGD,MAAM2mH,EAAyBjkD,WAAYmI,EAAcwoC,aACnDuT,EAAU,GAAe,GAAOt/J,SAAU,OAEhDs/J,EAAQvyH,UAAY,gBACpBuyH,EAAQz9J,MAAM8d,MAAQ4jG,EAAc5jG,MACpC2/I,EAAQz9J,MAAMkqJ,YAAc,GAAIqT,EAAQjgJ,KAAOyyF,EAAUytD,MAMpD,EAAI75J,QACR85J,EAAQz9J,MAAM24G,gBAAkB,SAGjC8kD,EAAQ5gJ,UAAYq7C,EAAad,QAAS,aAE1Cc,EAAaV,aAAcimG,EAAS,EAAG,GAEvC9iK,KAAKwhK,kBAAkB77J,YAAam9J,EACrC,EAOD,SAASZ,GAAoB3kG,GAC5B,OAAK,EAAIz0D,QACDy0D,EAAaX,WAGd,CAAE,MAAO,YAAazqC,SAAUorC,EAAaZ,eAAkB,OAAS,MAChF,CAKA,SAAS4lG,GAAqB3+J,GAE7B,GAAKA,EAAO2K,GAAI,mBACf,OAAO,KAIR,GAAK3K,EAAOyiC,SAAU,+BACrB,OAAOziC,EAAO8sC,aAAc49G,IAI7B,GAAKA,GAAU1qJ,GACd,OAAOA,EAIR,MAAM48C,EAAW58C,EAAO8sC,cAAcvxC,GAAQmvJ,GAAUnvJ,IAAUA,EAAKoP,GAAI,qBAG3E,OAAK+/I,GAAU9tG,GACPA,EAGD,IACR,CAiBA,SAASkiH,GAAuCtqK,EAAcquE,GAC7D,MAAMy0D,EAAez0D,EAAU,GACzBs8F,EAAct8F,EAAUA,EAASnuE,OAAS,GAC1CsG,EAASs8H,EAAatzF,kBAAmBm7H,GACzC7vH,EAA0B96C,EAAMopD,qBAAsB05E,GACtD54E,EAAwBlqD,EAAMmpD,oBAAqBwhH,GAEzD,GACCnkK,GACAA,EAAO2P,GAAI,aACVnW,EAAMkiC,OAAOozC,QAAS9uE,GACtB,CACD,MAAMokK,EAAc5qK,EAAMspD,cAAe9iD,GACnCqkK,EAAe/vH,EAAc8uB,WAAYghG,EAAYvyI,OACrDyyI,EAAa5gH,EAAY0f,WAAYghG,EAAYj3H,KAEvD,GAAKk3H,GAAgBC,EAEpB,OAAOR,GAAuCtqK,EAAO,CAAEwG,GAEzD,CAEA,OAAOxG,EAAMqpD,YAAavO,EAAeoP,EAC1C,CC7vBe,MAAM6gH,WAAuB,GAI3C,qBAAkBlhI,GACjB,MAAO,gBACR,CAKA,mBAAkBW,GACjB,MAAO,CAAEmqH,GACV,CAKO,IAAA3qH,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACfu/B,EAAOoI,EAAOotE,QAAQx1E,KACtB2lC,EAAe3lC,EAAKn0B,SACpBm9B,EAAYvoC,EAAMoL,SAASm9B,UAEjC,IAAIsiH,GAAe,EAEnBtrH,EAAK2mC,YAAawqF,IAElB9oJ,KAAK4P,SAAoC0tD,EAAc,WAAW,CAAE9nD,EAAK1S,KACxEmgJ,EAAengJ,EAAKsrB,QAAQ,IAG7B2R,EAAOsC,QAAQj6B,IAAK2kJ,IAAoBt9I,GAAoC,oBAAoB,CAAE+F,EAAK1S,MAGhGmgJ,GAiCT,SAA8Br9D,EAAoCtrD,GACjE,GAAKsrD,EAAiBh/C,WAAa,EAClC,OAAO,EAGR,MAAMtuB,EAAQstE,EAAiBz+C,SAAU,GAEzC,GAAK7M,EAAOi3C,SAAUj5D,GACrB,OAAO,EAGR,OAAwD,GAAjD3X,MAAMrB,KAAMgZ,EAAMsxB,oBAAqBtxC,MAC/C,CA7C0B8qK,CAAqBtgK,EAAK5C,QAAS9H,EAAMkiC,UAIhEliC,EAAM0tC,QAAQC,IAEb,MAAMs9H,EAAiB1iK,MAAMrB,KAAMqhC,EAAUyP,iBAC3CrqC,QAAQ,EAAIhP,KAAWqB,EAAMkiC,OAAOq3C,uBAAwB56E,GAAM4gJ,eAE9Dh3G,EAAUwU,aACf/8C,EAAM4nG,cAAer/D,EAAW,CAAE4/D,oBAAoB,IAMvD8iE,EAAezjK,QAAS+gC,EAAUyP,iBAElC,MAAMrpB,EAAQgf,EAAO4b,cAAe7+C,EAAK5C,SAEzC,UAAYD,KAAQ8mB,EAAMsvB,WACpBp2C,EAAKsO,GAAI,eACbw3B,EAAOy3D,cAAe6lE,EAAgBpjK,EAExC,GACE,GAEL,EC1Dc,MAAMqjK,WAAkB,GAItC,qBAAkBrhI,GACjB,MAAO,WACR,CAKA,mBAAkBW,GACjB,MAAO,CAAEknH,GAAuBiD,GAAmBkU,GAAUkC,GAC9D,CAKO,IAAA/gI,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAIgF,KAAK+/B,OAAO/kC,EAGtB+kC,EAAOmtE,cAAcF,kBAAmB,CACvCL,WAAY,CACX,CACCl0D,MAAOz9C,EAAG,yBACVszB,UAAW,UAEZ,CACCmqB,MAAOz9C,EAAG,iBACVszB,UAAW,UAEZ,CACCmqB,MAAOz9C,EAAG,+BACVszB,UAAW,kBAIf,ECvCc,MAAMi1I,WAAyBjjI,GAI7C,WAAAv+B,CAAag+B,GACZlyB,MAAOkyB,GAGP//B,KAAK0gC,aAAc,CACpB,CAKgB,OAAAO,GACf,MAAM7oC,EAAQ4H,KAAK+/B,OAAO3nC,MACpBuoC,EAAYvoC,EAAMoL,SAASm9B,UACjC,IAAI6iI,EAA+BprK,EAAMkiC,OAAO4hD,gBAAiBv7C,GAIjE,GAAKA,EAAUssC,sBAAuBu2F,KAAmBC,GAAkBrrK,EAAMkiC,OAAQkpI,GACxF,GAIC,GAHAA,EAAeA,EAAa5kK,QAGtB4kK,EACL,cAESC,GAAkBrrK,EAAMkiC,OAAQkpI,IAG5CprK,EAAM0tC,QAAQC,IACbA,EAAOwX,aAAcimH,EAAe,KAAM,GAE5C,EAUD,SAASC,GAAkBnpI,EAAgBvjB,GAC1C,OAAOujB,EAAOozC,QAAS32D,KAAeujB,EAAOq4C,WAAY57D,EAAS,UAAaujB,EAAOq4C,WAAY57D,EAAS,aAC5G,CC3DA,MAAM2sJ,GAAuC,GAAgB,UAQ9C,MAAMC,WAAyB,GAI7C,qBAAkB1hI,GACjB,MAAO,kBACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EAEXsiE,EADOv9B,EAAOotE,QAAQx1E,KACFn0B,SAE1Bu8B,EAAOksE,SAAS/9F,IAAK,YAAa,IAAIq1J,GAAkBxjI,IAExD//B,KAAK4P,SAAoC0tD,EAAc,WAAW,CAAExsD,EAAWghJ,KACzE,GAASA,KAAmB4R,KAChC3jI,EAAOkB,QAAS,aAChB6wH,EAAa37H,iBACd,IAID4J,EAAOmtE,cAAcF,kBAAmB,CACvCL,WAAY,CACX,CACCl0D,MAAOz9C,EAAG,cACVszB,UAAW,YAIf,ECpCc,MAAMs1I,WAAoB,GAIxC,qBAAkB3hI,GACjB,MAAO,aACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OAEpBA,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,aAAa,KAC5C,MAAM6qG,EAAa/4G,KAAKo7G,cAAe,IAMvC,OAJArC,EAAWnnG,IAAK,CACf4hG,SAAS,IAGHuF,CAAU,IAGlBh5E,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,qBAAqB,IAC7ClO,KAAKo7G,cAAe,KAE7B,CAKQ,aAAAA,CAAmFG,GAC1F,MAAMx7E,EAAS//B,KAAK+/B,OACdxC,EAASwC,EAAOxC,OAChB6D,EAAUrB,EAAOksE,SAAS7jG,IAAK,aAC/BuvB,EAAO,IAAI4jF,EAAax7E,EAAOxC,QAC/BviC,EAAIuiC,EAAOviC,EAgBjB,OAdA28B,EAAK/lB,IAAK,CACT6mC,MAAOz9C,EAAG,cACVs4G,KC9DH,6jDD+DGhlF,UAAW,WAGZqJ,EAAK3wB,KAAM,aAAczH,GAAI6hC,EAAS,aAGtCphC,KAAK4P,SAAU+nB,EAAM,WAAW,KAC/BoI,EAAOkB,QAAS,aAChBlB,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAGrB9H,CACR,EEtDc,MAAMksI,WAAkB,GAItC,mBAAkBjhI,GACjB,MAAO,CAAE+gI,GAAkBC,GAC5B,CAKA,qBAAkB3hI,GACjB,MAAO,WACR,ECXc,MAAe6hI,WAAoBxjI,GAOvCotH,OAA4F,GAO/FqW,gBAAkB,IAAIh2J,QAK7B,WAAAhM,CAAag+B,GACZlyB,MAAOkyB,GAGP//B,KAAKygC,UAGLzgC,KAAKugC,4BAA6B,EAIlCvgC,KAAK4P,SAAkCmwB,EAAOj9B,KAAM,OAAO,CAAE0S,EAAK1S,KAGjEA,EAAM,GAAM,IAAKA,EAAM,IAEvB,MAAMyB,EAAUzB,EAAM,GAGhByB,EAAQukF,YACbvkF,EAAQukF,UAAY,CAAElB,YAAY,GACnC,GACE,CAAE56E,SAAU,SAGfhN,KAAK4P,SAAkCmwB,EAAOj9B,KAAM,OAAO,CAAE0S,EAAK1S,KAGjDA,EAAM,GAERgmF,UAAWlB,YACxB5nF,KAAKgkK,YACN,GAEF,CAKgB,OAAAvjI,GACfzgC,KAAKmgC,UAAYngC,KAAK0tJ,OAAOp1J,OAAS,CACvC,CAKA,kBAAW2rK,GACV,OAAOjkK,KAAK+jK,eACb,CAQO,QAAAG,CAAUn0F,GAChB,MAAMo0F,EAAenkK,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,UAE1CA,EAAY,CACjBqV,OAAQmuH,EAAa51F,YAAc5tE,MAAMrB,KAAM6kK,EAAa7sH,aAAgB,GAC5ED,WAAY8sH,EAAa9sH,YAG1Br3C,KAAK0tJ,OAAO9tJ,KAAM,CAAEmwE,QAAOpvC,cAC3B3gC,KAAKygC,SACN,CAKO,UAAAujI,GACNhkK,KAAK0tJ,OAAS,GACd1tJ,KAAKygC,SACN,CASU,iBAAA2jI,CACTpuH,EACAqB,EACA8sB,GAEA,MAAM/rE,EAAQ4H,KAAK+/B,OAAO3nC,MACpBoL,EAAWpL,EAAMoL,SAGjBqoJ,EAAgC,GAGhCwY,EAAyBruH,EAAOh5C,KAAK+pB,GAASA,EAAMm9C,2BAA4BC,KAChFmgG,EAAYD,EAAuBlxF,OAEzC,UAAYoxF,KAAcF,EAAyB,CAElD,MAAM9gG,EAAcghG,EAClBx+J,QAAQghB,GAASA,EAAMzwB,MAAQkN,EAASkgE,YACxC39D,QAAQghB,IAAUy9I,GAAiCz9I,EAAOu9I,KAGtD/gG,EAAYjrE,SAMlBmsK,GAAiBlhG,GAKjBsoF,EAAgBjsJ,KAAM2jE,EAAa,IACpC,CAKKsoF,EAAgBvzJ,QACpBF,EAAM0tC,QAAQC,IACbA,EAAOwX,aAAcsuG,EAAiB,CAAEnzG,SAAUrB,GAAc,GAGnE,CASU,KAAAqtH,CAAOC,EAAoBC,GACpC,MAAMxsK,EAAQ4H,KAAK+/B,OAAO3nC,MACpBoL,EAAWpL,EAAMoL,SAGvBxD,KAAK+jK,gBAAgB71J,IAAK02J,GAE1B,MAAMC,EAAmBF,EAAYxgG,WAAWriE,QAAQiE,QAAQw8D,GAAaA,EAAU0L,sBACvF42F,EAAiBt5J,UAIjB,UAAYu5J,KAAmBD,EAAmB,CACjD,MAAME,EAAkBD,EAAgB36E,YAAe,EACjD66E,EAAoBrkK,MAAMrB,KAAMkE,EAASmsF,QAAQkK,cAAekrE,IAahEE,EAXkBr3E,GACvB,CAAEk3E,EAAgBv5E,eAClBy5E,EACA,CACC/2E,cAAc,EACdzqF,SAAUxD,KAAK+/B,OAAO3nC,MAAMoL,SAC5B2rF,cAAc,EACdjB,iBAAiB,IAIwBL,YAG3C,QAAUtrB,KAAa0iG,EAAqB,CAE3C,MAAM55E,EAAqB9oB,EAAU8oB,mBAEhCA,IAAuBjzF,EAAM2oC,UAAWsqD,KAC5C9oB,EAAY,IAAIoqB,GAAapqB,EAAU4nB,cAIxCy6E,EAAazwE,aAAc5xB,GAC3BnqE,EAAMwkG,eAAgBr6B,GAEtB/+D,EAASmsF,QAAQ6K,qBAAsBsqE,EAAiBviG,EACzD,CACD,CACD,EAQD,SAASkiG,GAAiBzuH,GACzBA,EAAOn0B,MAAM,CAAElmB,EAAGhD,IAAOgD,EAAE80B,MAAMsX,SAAUpvC,EAAE83B,QAAW,EAAI,IAE5D,QAAUj2B,EAAI,EAAGA,EAAIw7C,EAAO19C,OAAQkC,IAAM,CACzC,MACM0qK,EADgBlvH,EAAQx7C,EAAI,GACAspE,UAAW9tB,EAAQx7C,IAAK,GAErD0qK,IAEJ1qK,IACAw7C,EAAOxuC,OAAQhN,EAAG,EAAG0qK,GAEvB,CACD,CAEA,SAASV,GAAiCz9I,EAAcivB,GACvD,OAAOA,EAAO3e,MAAMoe,GAAcA,IAAe1uB,GAAS0uB,EAAWE,cAAe5uB,GAAO,IAC5F,CCrOe,MAAMo+I,WAAoBrB,GAUxB,OAAA7iI,CAAS8uC,EAAsB,MAE9C,MAAMq1F,EAAar1F,EAAQ/vE,KAAK0tJ,OAAOzoC,WAAWtpH,GAAKA,EAAEo0E,OAASA,IAAU/vE,KAAK0tJ,OAAOp1J,OAAS,EAE3F2H,EAAOD,KAAK0tJ,OAAOlmJ,OAAQ49J,EAAY,GAAK,GAC5CR,EAAe5kK,KAAK+/B,OAAO3nC,MAAM2vG,YAAa,CAAE9T,QAAQ,IAI9Dj0F,KAAK+/B,OAAO3nC,MAAM63E,cAAe20F,GAAc,KAC9C5kK,KAAK0kK,MAAOzkK,EAAK8vE,MAAO60F,GAExB,MAAMzgG,EAAankE,KAAK+/B,OAAO3nC,MAAMoL,SAASmsF,QAAQkK,cAAe55F,EAAK8vE,MAAMoa,aAChFnqF,KAAKokK,kBAAmBnkK,EAAK0gC,UAAUqV,OAAQ/1C,EAAK0gC,UAAU0W,WAAY8sB,EAAY,IAMvFnkE,KAAK4Q,KAA8B,SAAU3Q,EAAK8vE,MAAO60F,GAEzD5kK,KAAKygC,SACN,EChCc,MAAM4kI,WAAoBvB,GASxB,OAAA7iI,GACf,MAAMhhC,EAAOD,KAAK0tJ,OAAO1uJ,MACnBsmK,EAAetlK,KAAK+/B,OAAO3nC,MAAM2vG,YAAa,CAAE9T,QAAQ,IAI9Dj0F,KAAK+/B,OAAO3nC,MAAM63E,cAAeq1F,GAAc,KAC9C,MACMP,EADgB9kK,EAAK8vE,MAAM5L,WAAYlkE,EAAK8vE,MAAM5L,WAAW7rE,OAAS,GACtC6xF,YAAe,EAC/ChmB,EAAankE,KAAK+/B,OAAO3nC,MAAMoL,SAASmsF,QAAQkK,cAAekrE,GAErE/kK,KAAKokK,kBAAmBnkK,EAAK0gC,UAAUqV,OAAQ/1C,EAAK0gC,UAAU0W,WAAY8sB,GAC1EnkE,KAAK0kK,MAAOzkK,EAAK8vE,MAAOu1F,EAAc,IAGvCtlK,KAAKygC,SACN,ECpBc,MAAM8kI,WAAoB,GAKhCC,aAMAC,aAKAC,eAAiB,IAAI33J,QAK7B,qBAAkBk0B,GACjB,MAAO,aACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EAGjBgF,KAAKwlK,aAAe,IAAIL,GAAaplI,GACrC//B,KAAKylK,aAAe,IAAIJ,GAAatlI,GAGrCA,EAAOksE,SAAS/9F,IAAK,OAAQlO,KAAKwlK,cAClCzlI,EAAOksE,SAAS/9F,IAAK,OAAQlO,KAAKylK,cAElCzlK,KAAK4P,SAAoCmwB,EAAO3nC,MAAO,kBAAkB,CAAEod,EAAKtZ,KAC/E,MAAMqmE,EAAYrmE,EAAM,GAOxB,IAAMqmE,EAAU0L,oBACf,OAGD,MAAM8B,EAAQxN,EAAUwN,MAElB41F,EAAc3lK,KAAKylK,aAAaxB,eAAeh2J,IAAK8hE,GACpD61F,EAAc5lK,KAAKwlK,aAAavB,eAAeh2J,IAAK8hE,GACrC/vE,KAAK0lK,eAAez3J,IAAK8hE,KAQ9C/vE,KAAK0lK,eAAex3J,IAAK6hE,GAEnBA,EAAM6X,aAIP+9E,EAEJ3lK,KAAKwlK,aAAatB,SAAUn0F,GAChB61F,IAGZ5lK,KAAKwlK,aAAatB,SAAUn0F,GAC5B/vE,KAAKylK,aAAazB,eACnB,GACE,CAAEh3J,SAAU,YAEfhN,KAAK4P,SAAkC5P,KAAKwlK,aAAc,UAAU,CAAEhwJ,EAAKqwJ,EAAajB,KACvF5kK,KAAKylK,aAAavB,SAAUU,EAAc,IAG3C7kI,EAAO4sE,WAAW/6F,IAAK,SAAU,QACjCmuB,EAAO4sE,WAAW/6F,IAAK,SAAU,QACjCmuB,EAAO4sE,WAAW/6F,IAAK,eAAgB,QAGvCmuB,EAAOmtE,cAAcF,kBAAmB,CACvCL,WAAY,CACX,CACCl0D,MAAOz9C,EAAG,QACVszB,UAAW,UAEZ,CACCmqB,MAAOz9C,EAAG,QACVszB,UAAW,CAAE,CAAE,UAAY,CAAE,oBAIjC,EC/Gc,MAAMw3I,WAAe,GAInC,qBAAkB7jI,GACjB,MAAO,QACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdxC,EAASwC,EAAOxC,OAChBviC,EAAI+kC,EAAO/kC,EAEX+qK,EAAkD,OAA9BxoI,EAAOjL,oBAA+B,GAAMy+E,KAAO,GAAMD,KAC7Ek1D,EAAkD,OAA9BzoI,EAAOjL,oBAA+B,GAAMw+E,KAAO,GAAMC,KAEnF/wG,KAAKimK,qBAAsB,OAAQjrK,EAAG,QAAU,SAAU+qK,GAC1D/lK,KAAKimK,qBAAsB,OAAQjrK,EAAG,QAAU,SAAUgrK,EAC3D,CAUQ,oBAAAC,CAAsBjkK,EAAuBy2C,EAAenqB,EAAmB43I,GACtF,MAAMnmI,EAAS//B,KAAK+/B,OAEpBA,EAAO+E,GAAGq2E,iBAAiBjtG,IAAKlM,GAAM,KACrC,MAAM+2G,EAAa/4G,KAAKo7G,cAAe,GAAYp5G,EAAMy2C,EAAOnqB,EAAW43I,GAM3E,OAJAntD,EAAWnnG,IAAK,CACf4hG,SAAS,IAGHuF,CAAU,IAGlBh5E,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,WAAalM,GAAM,IAC3ChC,KAAKo7G,cAAe,GAA+Bp5G,EAAMy2C,EAAOnqB,EAAW43I,IAEpF,CAKQ,aAAA9qD,CACPG,EACAv5G,EACAy2C,EACAnqB,EACA43I,GAEA,MAAMnmI,EAAS//B,KAAK+/B,OACdxC,EAASwC,EAAOxC,OAChB6D,EAAUrB,EAAOksE,SAAS7jG,IAAKpG,GAC/B21B,EAAO,IAAI4jF,EAAah+E,GAe9B,OAbA5F,EAAK/lB,IAAK,CACT6mC,QACA66D,KAAM4yD,EACN53I,cAGDqJ,EAAK3wB,KAAM,aAAczH,GAAI6hC,EAAS,aAEtCphC,KAAK4P,SAAU+nB,EAAM,WAAW,KAC/BoI,EAAOkB,QAASj/B,GAChB+9B,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAGrB9H,CACR,ECiBc,MAAMwuI,WAAa,GAIjC,mBAAkBvjI,GACjB,MAAO,CAAE2iI,GAAaO,GACvB,CAKA,qBAAkB7jI,GACjB,MAAO,MACR,EC5Gc,MAAemkI,WAAoB9lI,GAYjC+tB,aAQhB,WAAAtsD,CAAag+B,EAAgBsuB,GAC5BxgD,MAAOkyB,GAEP//B,KAAKquD,aAAeA,CACrB,CAKgB,OAAA5tB,GACf,MAAMroC,EAAQ4H,KAAK+/B,OAAO3nC,MACpB6f,EAAM7f,EAAMoL,SAElBxD,KAAKxH,MAAQyf,EAAI0oB,UAAUjG,aAAc16B,KAAKquD,cAC9CruD,KAAKmgC,UAAY/nC,EAAMkiC,OAAO8lD,0BAA2BnoE,EAAI0oB,UAAW3gC,KAAKquD,aAC9E,CAUgB,OAAAptB,CAAS18B,EAA6C,CAAC,GACtE,MAAMnM,EAAQ4H,KAAK+/B,OAAO3nC,MAEpBuoC,EADWvoC,EAAMoL,SACIm9B,UAErBnoC,EAAQ+L,EAAQ/L,MAChBu3E,EAAQxrE,EAAQwrE,MAEhBs2F,EAAoBtgI,IACzB,GAAKpF,EAAUwU,YACT38C,EACJutC,EAAO64D,sBAAuB5+F,KAAKquD,aAAc71D,GAEjDutC,EAAOgjD,yBAA0B/oF,KAAKquD,kBAEjC,CACN,MAAMrY,EAAS59C,EAAMkiC,OAAO+lD,eAAgB1/C,EAAU2W,YAAat3C,KAAKquD,cAExE,UAAYtnC,KAASivB,EACfx9C,EACJutC,EAAOtgC,aAAczF,KAAKquD,aAAc71D,EAAOuuB,GAE/Cgf,EAAOr/B,gBAAiB1G,KAAKquD,aAActnC,EAG9C,GAIIgpD,EACJ33E,EAAM63E,cAAeF,GAAOhqC,IAC3BsgI,EAAiBtgI,EAAQ,IAG1B3tC,EAAM0tC,QAAQC,IACbsgI,EAAiBtgI,EAAQ,GAG5B,EC3EM,MAAMugI,GAAY,WAKZC,GAAc,aAKdC,GAAa,YAKbC,GAAwB,sBAK9B,SAASC,GACfC,EACApiK,GAEA,MAAM2D,EAAsC,CAC3C9P,MAAO,CACNrB,IAAK4vK,EACLv7J,OAAQ,IAETusB,KAAM,CAAC,EACPoyD,WAAY,CAAC,GAGd,UAAYnoE,KAAUrd,EACrB2D,EAAW9P,MAAMgT,OAAOxL,KAAMgiB,EAAOxpB,OACrC8P,EAAWyvB,KAAM/V,EAAOxpB,OAAWwpB,EAAO+V,KAErC/V,EAAOmoE,aACX7hF,EAAW6hF,WAAYnoE,EAAOxpB,OAAWwpB,EAAOmoE,YAIlD,OAAO7hF,CACR,CAeO,SAAS0+J,GAAuBC,GACtC,OAAS1lH,GAA0DA,EAAYhX,SAAU08H,GAiE5E/vJ,QAAS,MAAO,GAhE9B,CASO,SAASgwJ,GAAuBD,GACtC,MAAO,CAAEhwF,GAA+B9wC,YACvCA,EAAO2X,uBAAwB,OAAQ,CACtCr4C,MAAO,GAAIwhK,KAAehwF,KACxB,CAAE7pE,SAAU,GACjB,CC1Ee,MAAM+5J,WAA0BX,GAI9C,WAAArkK,CAAag+B,GACZlyB,MAAOkyB,EAAQwmI,GAChB,ECZM,SAASS,GAAkBrwB,GAEjC,OAAOA,EACL35I,IAAKiqK,IAELlhK,QAAQ6b,QAAqB,IAAXA,GACrB,CAOA,SAASqlJ,GAAqBrlJ,GAE7B,MAAuB,iBAAXA,EACJA,EAIQ,YAAXA,EACG,CACN+1F,MAAO,UACPv/G,WAAO,GAKc,iBAAXwpB,EAcb,SAA6BslJ,GAE5B,MAAMC,EAAYD,EAAepwJ,QAAS,OAAQ,IAAK/Z,MAAO,KAGxDqqK,EAAgBD,EAAW,GAG3BE,EAAeF,EAAUnqK,IAAKsqK,IAA0BpqK,KAAM,MAEpE,MAAO,CACNy6G,MAAOyvD,EACPhvK,MAAOivK,EACP1vI,KAAM,CACL31B,KAAM,OACNs5B,OAAQ,CACP,cAAe+rI,GAEhBr6J,SAAU,GAGb,CA9BQu6J,CAAoB3lJ,QAL3B,CAMD,CAkCA,SAAS0lJ,GAAyBE,GAQjC,OAPAA,EAAWA,EAASj5I,QAGN9kB,QAAS,KAAQ,IAC9B+9J,EAAW,IAAKA,MAGVA,CACR,CCtEe,MAAMC,WAA0B,GAI9C,qBAAkBxlI,GACjB,MAAO,mBACR,CAKA,WAAAlgC,CAAag+B,GACZlyB,MAAOkyB,GAGPA,EAAOpV,OAAOj0B,OAAQ6vK,GAAa,CAClChiK,QAAS,CACR,UACA,+BACA,kCACA,iBACA,iDACA,6BACA,gCACA,sCACA,+BAEDmjK,kBAAkB,GAEpB,CAKO,IAAAtlI,GACN,MAAMrC,EAAS//B,KAAK+/B,OAGpBA,EAAO3nC,MAAMkiC,OAAOZ,OAAQ,QAAS,CAAEgmD,gBAAiB6mF,KACxDxmI,EAAO3nC,MAAMkiC,OAAO2lD,uBAAwBsmF,GAAa,CACxD5uB,cAAc,EACduJ,aAAa,IAId,MAAM38I,EAAUyiK,GACfjnI,EAAOpV,OAAOviB,IAAK,uBAClBrC,QAAQ9F,GAAQA,EAAK7H,QACjB8P,EAAaw+J,GAAiBH,GAAahiK,GAG5Cw7B,EAAOpV,OAAOviB,IAAK,gCACvBpI,KAAK2nK,6BACL3nK,KAAK4nK,kCAEL7nI,EAAO1hC,WAAWu1E,mBAAoB1rE,GAGvC63B,EAAOksE,SAAS/9F,IAAKq4J,GAAa,IAAIQ,GAAmBhnI,GAC1D,CAMQ,0BAAA4nI,GACP,MAAM5nI,EAAS//B,KAAK+/B,OAEpBA,EAAO1hC,WAAWurF,IAAK,YAAahW,mBAAoB,CACvDx7E,MAAOmuK,GACP5uI,KAAM,CAAE22B,GAAkBvoB,YAClBA,EAAO2X,uBAAwB,OAAQ,CAAEr4C,MAAO,eAAiBipD,GAAkB,CAAEthD,SAAU,MAIxG+yB,EAAO1hC,WAAWurF,IAAK,UAAW1R,mBAAoB,CACrD9/E,MAAO,CACNrB,IAAKwvK,GACL/tK,MAAS2oD,GAA8BA,EAAYhX,SAAU,gBAE9DxS,KAAM,CACL31B,KAAM,OACNs5B,OAAQ,CACP,cAAe,QAInB,CAKQ,8BAAAssI,GACQ5nK,KAAK+/B,OAEb1hC,WAAWurF,IAAK,UAAW1R,mBAAoB,CACrDvgD,KAAM,CACL31B,KAAM,OACNuD,WAAY,CACX,KAAQ,OAGVnN,MAAO,CACNrB,IAAKwvK,GACL/tK,MAAS2oD,GAA8BA,EAAYzmB,aAAc,UAGpE,ECnID,8VCiCe,MAAMmtI,WAAqB,GAIzC,qBAAkB5lI,GACjB,MAAO,cACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EAEXuJ,EAAUvE,KAAK8nK,uBAEf1mI,EAA6BrB,EAAOksE,SAAS7jG,IAAKm+J,IAClDwB,EAAkB/sK,EAAG,eACrBgtK,EAoGR,SAA8BzjK,EAAkC68B,GAC/D,MAAM6mI,EAAkB,IAAIr1I,GAG5B,UAAYhR,KAAUrd,EAAU,CAC/B,MAAMk0B,EAAM,CACXttB,KAAM,SACN/S,MAAO,IAAI,GAAW,CACrBktC,YAAaihI,GACb2B,aAActmJ,EAAOxpB,MACrBqgD,MAAO72B,EAAO+1F,MACd3E,KAAM,gBACN+G,UAAU,KAIZthF,EAAIrgC,MAAM4O,KAAM,QAASzH,GAAI6hC,EAAS,SAAS5oC,GAEzCA,IAAUopB,EAAOxpB,UAIhBI,IAAUopB,EAAOxpB,QAIhBI,EAAMuE,MAAO,KAAO,GAAI+Z,QAAS,KAAM,IAAKnO,gBAAkBiZ,EAAOxpB,MAAMuQ,gBAI9EiZ,EAAO+V,MAA+B,iBAAhB/V,EAAO+V,MAAqB/V,EAAO+V,KAAK2D,QAClE7C,EAAIrgC,MAAMwZ,IAAK,aAAc,gBAAiBgQ,EAAO+V,KAAK2D,OAAQ,kBAGnE2sI,EAAgB/5J,IAAKuqB,EACtB,CACA,OAAOwvI,CACR,CAzIsBE,CAAqB5jK,EAAS68B,GAGlDrB,EAAO+E,GAAGq2E,iBAAiBjtG,IAAKq4J,IAAahpI,IAC5C,MAAM4nF,EAAeC,GAAgB7nF,GA2BrC,OAzBAksF,GAAmBtE,EAAc6iD,EAAa,CAC7Ch1D,KAAM,OACN+E,UAAWgwD,IAGZ5iD,EAAapM,WAAWnnG,IAAK,CAC5B6mC,MAAOsvH,EACPz0D,KAAM,GACNE,SAAS,IAGV2R,EAAavrF,eAAgB,CAC5Br0B,WAAY,CACXs5B,MAAO,6BAITsmF,EAAan+G,KAAM,aAAczH,GAAI6hC,GAGrCphC,KAAK4P,SAAUu1G,EAAc,WAAW3vG,IACvCuqB,EAAOkB,QAAWzrB,EAAItS,OAAgBoiC,YAAa,CAAE9sC,MAASgd,EAAItS,OAAgBglK,eAClFnoI,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAGrB0lF,CAAY,IAGpBplF,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,WAAYq4J,MAAgBhpI,IAC3D,MAAMuoG,EAAW,IAAIgF,GAAiBvtG,GAEtCuoG,EAAS/sB,WAAWnnG,IAAK,CACxB6mC,MAAOsvH,EACPz0D,KAAM,KAGPwyB,EAAS9+H,KAAM,aAAczH,GAAI6hC,GAEjC,MAAM6gF,EAAW,IAAIipB,GAAqB3tG,GAE1C,UAAYr1B,KAAc8/J,EAAc,CACvC,MAAMh+C,EAAe,IAAIyb,GAAyBloG,EAAQuoG,GACpD/sB,EAAa,IAAI,GAA+Bx7E,GAEtDw7E,EAAW/xG,QAAShQ,OAAOC,KAAMiR,EAAW9P,QAAwDmH,GAAI2I,EAAW9P,OACnH2gH,EAAW/xG,KAAM,eAAgBzH,GAAIw5G,EAAY,QACjDA,EAAWxnG,SAAU,WAAYhS,GAAIumI,GAErC/sB,EAAWtpG,GAAI,WAAW,KACzBswB,EAAOkB,QAAW/4B,EAAW9P,MAAektC,YAAa,CACxD9sC,MAAS0P,EAAW9P,MAAe8vK,eAGpCnoI,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAG5BuqF,EAAa9xG,SAAShK,IAAK6qG,GAC3BkJ,EAASruF,MAAM1lB,IAAK87G,EACrB,CAIA,OAFA8b,EAAS9jB,UAAU9pG,SAAShK,IAAK+zG,GAE1B6jB,CAAQ,GAEjB,CAUQ,oBAAAgiC,GACP,MAAM/nI,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EAIjB,OAFgBgsK,GAAoBjnI,EAAOpV,OAAOviB,IAAKm+J,IAAiBhiK,SAEzDvH,KAAK4kB,IAEG,YAAjBA,EAAO+1F,QACX/1F,EAAO+1F,MAAQ38G,EAAG,YAGZ4mB,IAET,EC3Hc,MAAMwmJ,WAAwBhC,GAI5C,WAAArkK,CAAag+B,GACZlyB,MAAOkyB,EAAQumI,GAChB,ECXM,SAAS,GAAkB3vB,GAEjC,OAAOA,EACL35I,KAAKiD,GAyDR,SAA8B2hB,GACN,iBAAXA,IACXA,EAASlG,OAAQkG,IAIlB,GAAuB,iBAAXA,IA4EkB1Z,EA5E2B0Z,EA6ElD1Z,EAAWyvG,OAASzvG,EAAW9P,OAAS8P,EAAWyvB,MA5EzD,OAAO0wI,GAAgBzmJ,GA2EzB,IAA+B1Z,EAxE9B,MAAMogK,EAiEP,SAAqBpgK,GACpB,MAA6B,iBAAfA,EAA0BqgK,GAAcrgK,GAAeqgK,GAAcrgK,EAAW9P,MAC/F,CAnEgBowK,CAAY5mJ,GAG3B,GAAK0mJ,EACJ,OAAOD,GAAgBC,GAIxB,GAAgB,YAAX1mJ,EACJ,MAAO,CACNxpB,WAAO,EACPu/G,MAAO,WAMT,GA2DD,SAAgCzvG,GAC/B,IAAIugK,EAEJ,GAA2B,iBAAfvgK,EAA0B,CACrC,IAAMA,EAAW9P,MAQhB,MAAM,IAAIsV,EAAe,+BAAgC,KAAMxF,GAE/DugK,EAAc7pD,WAAY12G,EAAW9P,MAEvC,MACCqwK,EAAc7pD,WAAY12G,GAG3B,OAAO42G,MAAO2pD,EACf,CAhFMC,CAAuB9mJ,GAC3B,OAID,OAQD,SAA8B1Z,GAEF,iBAAfA,IACXA,EAAa,CACZyvG,MAAOzvG,EACP9P,MAAO,GAAIwmH,WAAY12G,SAWzB,OAPAA,EAAWyvB,KAAO,CACjB31B,KAAM,OACNs5B,OAAQ,CACP,YAAapzB,EAAW9P,QAInBiwK,GAAgBngK,EACxB,CAzBQygK,CAAqB/mJ,EAC7B,CA1FgB,CAAqB3hB,KAElC8F,QAAU6b,QAAiD,IAAXA,GACnD,CAGA,MAAM2mJ,GAA+C,CACpD,QAAIK,GACH,MAAO,CACNjxD,MAAO,OACPv/G,MAAO,OACPu/B,KAAM,CACL31B,KAAM,OACN+nC,QAAS,YACT/8B,SAAU,GAGb,EACA,SAAI67J,GACH,MAAO,CACNlxD,MAAO,QACPv/G,MAAO,QACPu/B,KAAM,CACL31B,KAAM,OACN+nC,QAAS,aACT/8B,SAAU,GAGb,EACA,OAAI87J,GACH,MAAO,CACNnxD,MAAO,MACPv/G,MAAO,MACPu/B,KAAM,CACL31B,KAAM,OACN+nC,QAAS,WACT/8B,SAAU,GAGb,EACA,QAAI+7J,GACH,MAAO,CACNpxD,MAAO,OACPv/G,MAAO,OACPu/B,KAAM,CACL31B,KAAM,OACN+nC,QAAS,YACT/8B,SAAU,GAGb,GAqED,SAASq7J,GAAgBngK,GAKxB,OAJKA,EAAWyvB,MAAmC,iBAApBzvB,EAAWyvB,OAAsBzvB,EAAWyvB,KAAK3qB,WAC/E9E,EAAWyvB,KAAM3qB,SAAW,GAGtB9E,CACR,CChIA,MAAM8gK,GAAgB,CACrB,UACA,UACA,QACA,SACA,QACA,UACA,WACA,aAcc,MAAMC,WAAwB,GAI5C,qBAAkBhnI,GACjB,MAAO,iBACR,CAKA,WAAAlgC,CAAag+B,GACZlyB,MAAOkyB,GAGPA,EAAOpV,OAAOj0B,OAAQ4vK,GAAW,CAChC/hK,QAAS,CACR,OACA,QACA,UACA,MACA,QAEDmjK,kBAAkB,GAEpB,CAKO,IAAAtlI,GACN,MAAMrC,EAAS//B,KAAK+/B,OAGpBA,EAAO3nC,MAAMkiC,OAAOZ,OAAQ,QAAS,CAAEgmD,gBAAiB4mF,KACxDvmI,EAAO3nC,MAAMkiC,OAAO2lD,uBAAwBqmF,GAAW,CACtD3uB,cAAc,EACduJ,aAAa,IAGd,MAAMwmB,EAAmB3nI,EAAOpV,OAAOviB,IAAK,6BAGtC7D,EAAU,GAAkBvE,KAAK+/B,OAAOpV,OAAOviB,IAAK,qBACxDrC,QAAQ9F,GAAQA,EAAK7H,QACjB8P,EAAaw+J,GAAiBJ,GAAW/hK,GAG1CmjK,GACJ1nK,KAAK2nK,2BAA4Bz/J,GACjClI,KAAK4nK,kCAEL7nI,EAAO1hC,WAAWu1E,mBAAoB1rE,GAIvC63B,EAAOksE,SAAS/9F,IAAKo4J,GAAW,IAAI8B,GAAiBroI,GACtD,CAQQ,0BAAA4nI,CAA4Bz/J,GACnC,MAAM63B,EAAS//B,KAAK+/B,OAGdmpI,EAAUhhK,EAAW9P,MAAOgT,OAAOrF,QAAUvN,IAC1C,GAAUkjB,OAAQljB,MAAc8wG,GAAc5tF,OAAQljB,MAG/D,GAAK0wK,EAAQ5wK,OAUZ,MAAM,IAAIoV,EACT,yCACA,KAAM,CAAEw7J,YAIVnpI,EAAO1hC,WAAWurF,IAAK,YAAahW,mBAAoB,CACvDx7E,MAAOkuK,GACP3uI,KAAM,CAAE22B,GAAkBvoB,aACzB,GAAMuoB,EAIN,OAAOvoB,EAAO2X,uBAAwB,OAAQ,CAAEr4C,MAAO,aAAeipD,GAAkB,CAAEthD,SAAU,GAAK,IAI3G+yB,EAAO1hC,WAAWurF,IAAK,UAAW1R,mBAAoB,CACrD9/E,MAAO,CACNrB,IAAKuvK,GACL9tK,MAAS2oD,GAA8BA,EAAYhX,SAAU,cAE9DxS,KAAM,CACL31B,KAAM,OACNs5B,OAAQ,CACP,YAAa,QAIjB,CAKQ,8BAAAssI,GACQ5nK,KAAK+/B,OAEb1hC,WAAWurF,IAAK,UAAW1R,mBAAoB,CACrDvgD,KAAM,CACL31B,KAAM,OACNuD,WAAY,CAIX,KAAQ,mBAGVnN,MAAO,CACNrB,IAAKuvK,GACL9tK,MAAS2oD,IACR,MAAM3oD,EAAQ2oD,EAAYzmB,aAAc,QAClCyuI,EAA4B,MAAf3wK,EAAO,IAA8B,MAAfA,EAAO,GAEhD,IAAIwb,EAAO5W,SAAU5E,EAAO,IAEvB2wK,IAEJn1J,EAAO,EAAIA,GAGZ,MAAMo1J,EAAUJ,GAAc1wK,OAAS,EACjC+wK,EAAcxwK,KAAKD,IAAKC,KAAKC,IAAKkb,EAAM,GAAKo1J,GAEnD,OAAOJ,GAAeK,EAAa,IAIvC,E,eC3LG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ/rI,OAAvB,MCZA,sYCkCe,MAAMgsI,WAAmB,GAIvC,qBAAkBrnI,GACjB,MAAO,YACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EAEXuJ,EAAUvE,KAAK8nK,uBAEf1mI,EAA2BrB,EAAOksE,SAAS7jG,IAAKk+J,IAChDyB,EAAkB/sK,EAAG,aAErBgtK,EAiHR,SAA8BzjK,EAAgC68B,GAC7D,MAAM6mI,EAAkB,IAAIr1I,GAE5B,UAAYhR,KAAUrd,EAAU,CAC/B,MAAMk0B,EAAM,CACXttB,KAAM,SACN/S,MAAO,IAAI,GAAW,CACrBktC,YAAaghI,GACb4B,aAActmJ,EAAOxpB,MACrBqgD,MAAO72B,EAAO+1F,MACd94E,MAAO,qBACPm0E,KAAM,gBACN+G,UAAU,KAIPn4F,EAAO+V,MAA+B,iBAAhB/V,EAAO+V,OAC5B/V,EAAO+V,KAAK2D,QAChB7C,EAAIrgC,MAAMwZ,IAAK,aAAc,aAAcgQ,EAAO+V,KAAK2D,OAAQ,gBAE3D1Z,EAAO+V,KAAKoS,SAChBtR,EAAIrgC,MAAMwZ,IAAK,QAAS,GAAI6mB,EAAIrgC,MAAMymC,SAAWjd,EAAO+V,KAAKoS,YAI/DtR,EAAIrgC,MAAM4O,KAAM,QAASzH,GAAI6hC,EAAS,SAAS5oC,GAASA,IAAUopB,EAAOxpB,QAGzE6vK,EAAgB/5J,IAAKuqB,EACtB,CAEA,OAAOwvI,CACR,CAjJsB,CAAqB1jK,EAAS68B,GAGlDrB,EAAO+E,GAAGq2E,iBAAiBjtG,IAAKo4J,IAAW/oI,IAC1C,MAAM4nF,EAAeC,GAAgB7nF,GA8BrC,OA5BAksF,GAAmBtE,EAAc6iD,EAAa,CAC7Ch1D,KAAM,OACN+E,UAAWgwD,IAIZ5iD,EAAapM,WAAWnnG,IAAK,CAC5B6mC,MAAOsvH,EACPz0D,KAAM,GACNE,SAAS,IAGV2R,EAAavrF,eAAgB,CAC5Br0B,WAAY,CACXs5B,MAAO,CACN,4BAKHsmF,EAAan+G,KAAM,aAAczH,GAAI6hC,GAGrCphC,KAAK4P,SAAUu1G,EAAc,WAAW3vG,IACvCuqB,EAAOkB,QAAWzrB,EAAItS,OAAgBoiC,YAAa,CAAE9sC,MAASgd,EAAItS,OAAgBglK,eAClFnoI,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAGrB0lF,CAAY,IAGpBplF,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,WAAYo4J,MAAc/oI,IACzD,MAAMuoG,EAAW,IAAIgF,GAAiBvtG,GAEtCuoG,EAAS/sB,WAAWnnG,IAAK,CACxB6mC,MAAOsvH,EACPz0D,KAAM,KAGPwyB,EAAS9+H,KAAM,aAAczH,GAAI6hC,GAEjC,MAAM6gF,EAAW,IAAIipB,GAAqB3tG,GAE1C,UAAYr1B,KAAc8/J,EAAc,CACvC,MAAMh+C,EAAe,IAAIyb,GAAyBloG,EAAQuoG,GACpD/sB,EAAa,IAAI,GAA+Bx7E,GAEtDw7E,EAAW/xG,QAAShQ,OAAOC,KAAMiR,EAAW9P,QAAwDmH,GAAI2I,EAAW9P,OACnH2gH,EAAW/xG,KAAM,eAAgBzH,GAAIw5G,EAAY,QACjDA,EAAWxnG,SAAU,WAAYhS,GAAIumI,GAErC/sB,EAAWtpG,GAAI,WAAW,KACzBswB,EAAOkB,QAAW/4B,EAAW9P,MAAektC,YAAa,CACxD9sC,MAAS0P,EAAW9P,MAAe8vK,eAGpCnoI,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAG5BuqF,EAAa9xG,SAAShK,IAAK6qG,GAC3BkJ,EAASruF,MAAM1lB,IAAK87G,EACrB,CAIA,OAFA8b,EAAS9jB,UAAU9pG,SAAShK,IAAK+zG,GAE1B6jB,CAAQ,GAEjB,CAUQ,oBAAAgiC,GACP,MAAM/nI,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EAEXuuK,EAA0C,CAC/CC,QAASxuK,EAAG,WACZyuK,KAAMzuK,EAAG,QACT0uK,MAAO1uK,EAAG,SACV2uK,IAAK3uK,EAAG,OACR4uK,KAAM5uK,EAAG,SAKV,OAFgB,GAAoB+kC,EAAOpV,OAAOviB,IAAKk+J,IAAe/hK,SAEvDvH,KAAK4kB,IACnB,MAAM+1F,EAAQ4xD,EAAiB3nJ,EAAO+1F,OAOtC,OALKA,GAASA,GAAS/1F,EAAO+1F,QAE7B/1F,EAAS5qB,OAAOsyB,OAAQ,CAAC,EAAG1H,EAAQ,CAAE+1F,WAGhC/1F,CAAM,GAEf,EC1Ic,MAAMioJ,WAAyBzD,GAI7C,WAAArkK,CAAag+B,GACZlyB,MAAOkyB,EAAQymI,GAChB,ECPc,MAAMsD,WAAyB,GAI7C,qBAAkB7nI,GACjB,MAAO,kBACR,CAKA,WAAAlgC,CAAag+B,GACZlyB,MAAOkyB,GAEPA,EAAOpV,OAAOj0B,OAAQ8vK,GAAY,CACjCp1C,OAAQ,CACP,CACC90H,MAAO,iBACPm8C,MAAO,SAER,CACCn8C,MAAO,kBACPm8C,MAAO,YAER,CACCn8C,MAAO,kBACPm8C,MAAO,QAER,CACCn8C,MAAO,kBACPm8C,MAAO,cAER,CACCn8C,MAAO,mBACPm8C,MAAO,QACPqlE,WAAW,GAEZ,CACCxhH,MAAO,mBACPm8C,MAAO,OAER,CACCn8C,MAAO,oBACPm8C,MAAO,UAER,CACCn8C,MAAO,oBACPm8C,MAAO,UAER,CACCn8C,MAAO,oBACPm8C,MAAO,eAER,CACCn8C,MAAO,qBACPm8C,MAAO,SAER,CACCn8C,MAAO,qBACPm8C,MAAO,cAER,CACCn8C,MAAO,qBACPm8C,MAAO,aAER,CACCn8C,MAAO,qBACPm8C,MAAO,cAER,CACCn8C,MAAO,qBACPm8C,MAAO,QAER,CACCn8C,MAAO,qBACPm8C,MAAO,WAGTylE,QAAS,IAGVn+E,EAAO1hC,WAAWurF,IAAK,UAAW1R,mBAAoB,CACrDvgD,KAAM,CACL31B,KAAM,OACNs5B,OAAQ,CACP,MAAS,YAGXljC,MAAO,CACNrB,IAAKyvK,GACLhuK,MAAOouK,GAAuB,YAKhC7mI,EAAO1hC,WAAWurF,IAAK,UAAW1R,mBAAoB,CACrDvgD,KAAM,CACL31B,KAAM,OACNuD,WAAY,CACX,MAAS,YAGXnN,MAAO,CACNrB,IAAKyvK,GACLhuK,MAAS2oD,GAA8BA,EAAYzmB,aAAc,YAInEqF,EAAO1hC,WAAWurF,IAAK,YAAahW,mBAAoB,CACvDx7E,MAAOouK,GACP7uI,KAAMmvI,GAAuB,WAG9B/mI,EAAOksE,SAAS/9F,IAAKs4J,GAAY,IAAIqD,GAAkB9pI,IAGvDA,EAAO3nC,MAAMkiC,OAAOZ,OAAQ,QAAS,CAAEgmD,gBAAiB8mF,KAExDzmI,EAAO3nC,MAAMkiC,OAAO2lD,uBAAwBumF,GAAY,CACvD7uB,cAAc,EACduJ,aAAa,GAEf,ECzGc,MAAM6oB,WAAgB,GAI7BzkI,YAMAkkG,cAKAl2B,KAKA02D,cAKA9rD,QAkBP,WAAAn8G,CACCg+B,GACA,YAAEuF,EAAW,cAAEkkG,EAAa,KAAEl2B,EAAI,cAAE02D,IAOpCn8J,MAAOkyB,GAEP//B,KAAKslC,YAAcA,EACnBtlC,KAAKwpI,cAAgBA,EACrBxpI,KAAKszG,KAAOA,EACZtzG,KAAKgqK,cAAgBA,EACrBhqK,KAAKk+G,QAAUn+E,EAAOpV,OAAOviB,IAAK,GAAIpI,KAAKwpI,wBAC5C,CAKO,IAAApnG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdxC,EAASwC,EAAOxC,OAChBviC,EAAIuiC,EAAOviC,EACXomC,EAAyDrB,EAAOksE,SAAS7jG,IAAKpI,KAAKslC,aACnF2kI,EAAkBlqI,EAAOpV,OAAOviB,IAAKpI,KAAKwpI,eAE1C0gC,EAAkBptD,GAA0Bv/E,EAD7BqgF,GAAuBqsD,EAAgB74C,SAEtDR,EAAsBq5C,EAAgBt5C,eACtCw5C,GAAiD,IAAhCF,EAAgBG,YAGvCrqI,EAAO+E,GAAGq2E,iBAAiBjtG,IAAKlO,KAAKwpI,eAAejsG,IACnD,MAAM4nF,EAA0CC,GAAgB7nF,GAEhE,IAAI8sI,GAA0B,EAE9B,MAAMC,EdTF,UACN,aACCnlD,EAAY,OAAEiM,EAAM,QAAElT,EAAO,kBAAEmT,EAAiB,iBAAEE,EAAgB,oBAClED,EAAmB,oBAAEV,EAAmB,sBAAE+B,IAY3C,MAAMp1F,EAAS4nF,EAAa5nF,OACtB+sI,EAAoB,IAAIn3C,GAAmB51F,EAAQ,CACxD6zF,SACAlT,UACAmT,oBACAE,mBACAD,sBACAV,sBACA+B,0BAMD,OAHAxN,EAAamlD,kBAAoBA,EACjCnlD,EAAanD,UAAU9pG,SAAShK,IAAKo8J,GAE9BA,CACR,CcrB6BC,CAA4B,CACrDplD,eACAiM,OAAQ84C,EAAgBltK,KAAK4kB,IAAA,CAC5B62B,MAAO72B,EAAO62B,MACdn8C,MAAOslB,EAAOxpB,MACdmM,QAAS,CACRu5G,UAAWl8F,EAAOk8F,eAGpBI,QAASl+G,KAAKk+G,QACdmT,kBAAmBr2H,EAAG,gBACtBu2H,iBAAkBv2H,EAAG,gBACrBs2H,oBAA6C,IAAxBV,EAA4B51H,EAAG,mBAAsB,GAC1E41H,yBAA6C,IAAxBA,EAAoC5wH,KAAKk+G,QAAU0S,EACxE+B,wBAAuBw3C,IAAmBF,EAAgBG,aAAe,CAAC,KA4E3E,OAzEAE,EAAkBtjK,KAAM,iBAAkBzH,GAAI6hC,EAAS,SAEvD+jF,EAAapM,WAAWnnG,IAAK,CAC5B6mC,MAAOz4C,KAAKgqK,cACZ12D,KAAMtzG,KAAKszG,KACXE,SAAS,IAGV2R,EAAavrF,eAAgB,CAC5Br0B,WAAY,CACXs5B,MAAO,0BAITsmF,EAAan+G,KAAM,aAAczH,GAAI6hC,GAErCkpI,EAAkB76J,GAA+B,WAAW,CAAE+F,EAAK1S,KAC7DqiH,EAAa1L,QACjB15E,EAAOkB,QAASjhC,KAAKslC,YAAa,CACjC9sC,MAAOsK,EAAKtK,MACZu3E,MAAO/vE,KAAKwqK,iBAIO,gBAAhB1nK,EAAKI,QACT68B,EAAOotE,QAAQx1E,KAAK8H,QAGA,0BAAhB38B,EAAKI,SACTiiH,EAAa1L,QAAS,EACvB,IAGD6wD,EAAkB76J,GAAuC,oBAAoB,KAC5EzP,KAAKwqK,eAAiBzqI,EAAO3nC,MAAM2vG,aAAa,IAGjDuiE,EAAkB76J,GAAyC,sBAAsB,KAC3EzP,KAAKwqK,eAAgBrmG,WAAW7rE,SAKpC6sH,EAAa1L,QAAS,EACtB15E,EAAOkB,QAAS,OAAQjhC,KAAKwqK,iBAG9BzqI,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAG5B0lF,EAAa11G,GAAI,iBAAiB,CAAE+F,EAAKxT,EAAM+mB,KACxCshJ,IACLA,GAA0B,EAE1BllD,EAAamlD,kBAAmBh3C,YAG5BvqG,IACyB,IAAxB6nG,GACJ05C,EAAmB74C,qBAAsB1xF,EAAO3nC,MAAO4H,KAAKwpI,eAG7D8gC,EAAmB14C,uBACnB04C,EAAmB12C,yBACpB,IAIDvK,GACClE,GACA,IAAMA,EAAamlD,kBAAmBl3C,uBAAuBvC,iBAAkBj9F,MAAMW,MAAQt0B,GAAeA,EAAKs+G,SAG3G4G,CAAY,IAIpBplF,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,WAAYlO,KAAKwpI,iBAAkBjsG,IAClE,MAAMuoG,EAAW,IAAIgF,GAAiBvtG,GAEtCuoG,EAAS/sB,WAAWnnG,IAAK,CACxB6mC,MAAOz4C,KAAKgqK,cACZ12D,KAAMtzG,KAAKszG,OAGZwyB,EAAS9+H,KAAM,aAAczH,GAAI6hC,GAGjC,IAAIqpI,GAAkB,EAEtB,MAAMH,EAAoB,IAAIn3C,GAAmB51F,EAAQ,CACxD6zF,OAAQ84C,EAAgBltK,KAAK4kB,IAAA,CAC5B62B,MAAO72B,EAAO62B,MACdn8C,MAAOslB,EAAOxpB,MACdmM,QAAS,CACRu5G,UAAWl8F,EAAOk8F,eAGpBI,QAASl+G,KAAKk+G,QACdmT,kBAAmBr2H,EAAG,gBACtBu2H,iBAAkBv2H,EAAG,gBACrBs2H,oBAA6C,IAAxBV,EAA4B51H,EAAG,mBAAsB,GAC1E41H,yBAA6C,IAAxBA,EAAoC5wH,KAAKk+G,QAAU0S,EACxE+B,uBAAuB,IAkCxB,OA/BA23C,EAAkBtjK,KAAM,iBAAkBzH,GAAI6hC,EAAS,SAEvDkpI,EAAkB/4J,SAAU,WAAYhS,GAAIumI,GAC5CwkC,EAAkB76J,GAA+B,WAAW,CAAE+F,EAAK1S,KAClEi9B,EAAOkB,QAASjhC,KAAKslC,YAAa,CACjC9sC,MAAOsK,EAAKtK,MACZu3E,MAAO/vE,KAAKwqK,iBAGbzqI,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAG5BqmG,EAASr2H,GAAI,iBAAiB,CAAE+F,EAAKxT,EAAM+mB,KACpC0hJ,IACLA,GAAkB,EAElBH,EAAmBh3C,YAGfvqG,IACyB,IAAxB6nG,GACJ05C,EAAmB74C,qBAAsB1xF,EAAO3nC,MAAO4H,KAAKwpI,eAG7D8gC,EAAmB14C,uBACnB04C,EAAmB12C,yBACpB,IAGDkS,EAAS9jB,UAAU9pG,SAAShK,IAAKo8J,GAE1BxkC,CAAQ,GAEjB,EClQc,MAAM4kC,WAAoBX,GAIxC,WAAAhoK,CAAag+B,GACZ,MAAM/kC,EAAI+kC,EAAOxC,OAAOviC,EAExB6S,MAAOkyB,EAAQ,CACduF,YAAakhI,GACbh9B,cAAeg9B,GACflzD,KC5BH,0MD6BG02D,cAAehvK,EAAG,eAEpB,CAKA,qBAAkBinC,GACjB,MAAO,aACR,EEdc,MAAM0oI,WAAmCvE,GAIvD,WAAArkK,CAAag+B,GACZlyB,MAAOkyB,EAAQ0mI,GAChB,ECPc,MAAMmE,WAAmC,GAIvD,qBAAkB3oI,GACjB,MAAO,4BACR,CAKA,WAAAlgC,CAAag+B,GACZlyB,MAAOkyB,GAEPA,EAAOpV,OAAOj0B,OAAQ+vK,GAAuB,CAC5Cr1C,OAAQ,CACP,CACC90H,MAAO,iBACPm8C,MAAO,SAER,CACCn8C,MAAO,kBACPm8C,MAAO,YAER,CACCn8C,MAAO,kBACPm8C,MAAO,QAER,CACCn8C,MAAO,kBACPm8C,MAAO,cAER,CACCn8C,MAAO,mBACPm8C,MAAO,QACPqlE,WAAW,GAEZ,CACCxhH,MAAO,mBACPm8C,MAAO,OAER,CACCn8C,MAAO,oBACPm8C,MAAO,UAER,CACCn8C,MAAO,oBACPm8C,MAAO,UAER,CACCn8C,MAAO,oBACPm8C,MAAO,eAER,CACCn8C,MAAO,qBACPm8C,MAAO,SAER,CACCn8C,MAAO,qBACPm8C,MAAO,cAER,CACCn8C,MAAO,qBACPm8C,MAAO,aAER,CACCn8C,MAAO,qBACPm8C,MAAO,cAER,CACCn8C,MAAO,qBACPm8C,MAAO,QAER,CACCn8C,MAAO,qBACPm8C,MAAO,WAGTylE,QAAS,IAGVn+E,EAAOj9B,KAAKkmF,uBAAwB,IACpCjpD,EAAO1hC,WAAWurF,IAAK,UAAW1R,mBAAoB,CACrDvgD,KAAM,CACL31B,KAAM,OACNs5B,OAAQ,CACP,mBAAoB,YAGtBljC,MAAO,CACNrB,IAAK0vK,GACLjuK,MAAOouK,GAAuB,uBAIhC7mI,EAAO1hC,WAAWurF,IAAK,YAAahW,mBAAoB,CACvDx7E,MAAOquK,GACP9uI,KAAMmvI,GAAuB,sBAG9B/mI,EAAOksE,SAAS/9F,IAAKu4J,GAAuB,IAAIkE,GAA4B5qI,IAG5EA,EAAO3nC,MAAMkiC,OAAOZ,OAAQ,QAAS,CAAEgmD,gBAAiB+mF,KAExD1mI,EAAO3nC,MAAMkiC,OAAO2lD,uBAAwBwmF,GAAuB,CAClE9uB,cAAc,EACduJ,aAAa,GAEf,EClHc,MAAM2pB,WAA8Bd,GAIlD,WAAAhoK,CAAag+B,GACZ,MAAM/kC,EAAI+kC,EAAOxC,OAAOviC,EAExB6S,MAAOkyB,EAAQ,CACduF,YAAamhI,GACbj9B,cAAei9B,GACfnzD,KC5BH,uQD6BG02D,cAAehvK,EAAG,0BAEpB,CAKA,qBAAkBinC,GACjB,MAAO,uBACR,EErBc,MAAM6oI,WAAyBxqI,GACtC,WAAAv+B,CAAag+B,GACnBlyB,MAAOkyB,GAGP//B,KAAKugC,4BAA6B,CACnC,CAagB,OAAAE,GACf,MAAMroC,EAAQ4H,KAAK+/B,OAAO3nC,MAEpBy0E,EAAQ,GADGz0E,EAAMoL,SACOm9B,UAAU6rC,qBAExCxsE,KAAKxH,QAAUq0E,GAASA,EAAMt+D,GAAI,UAAW,aAC7CvO,KAAKmgC,YAAc0sC,GAASk+F,GAAyBl+F,EAAOz0E,EAAMkiC,OACnE,CAWgB,OAAA2G,CAAS18B,EAErB,CAAC,GACJ,MAAMnM,EAAQ4H,KAAK+/B,OAAO3nC,MACpBoL,EAAWpL,EAAMoL,SAEjBm9B,EAAYp8B,EAAQo8B,WAAan9B,EAASm9B,UAG1CvoC,EAAM2oC,UAAWJ,IAIvBvoC,EAAM0tC,QAAQC,IACb,MAAMqxG,EAASz2G,EAAU6rC,oBAEzB,UAAYK,KAASuqE,GACdvqE,EAAMt+D,GAAI,UAAW,cAAiBw8J,GAAyBl+F,EAAOz0E,EAAMkiC,SACjFyL,EAAOkb,OAAQ4rB,EAAO,YAExB,GAEF,EASD,SAASk+F,GAAyBl+F,EAAgBvyC,GACjD,OAAOA,EAAOq4C,WAAY9F,EAAMjuE,OAAmB,eAAkB07B,EAAOi3C,SAAU1E,EACvF,CC1De,MAAMm+F,WAA+B1qI,GAC5C,WAAAv+B,CAAag+B,GACnBlyB,MAAOkyB,GAGP//B,KAAKugC,4BAA6B,CACnC,CAUgB,OAAAU,CAAS18B,GAIxB,MAAMnM,EAAQ4H,KAAK+/B,OAAO3nC,MACpBmN,EAAahB,EAAQgB,WAE3B,IAAIkiB,EAA4BljB,EAAQkjB,SAGlCrvB,EAAM2oC,UAAWtZ,IAIvBrvB,EAAM0tC,QAAQC,IAGb,GAFAte,EAAWznB,KAAKirK,+BAAgCxjJ,EAAWse,IAErDte,EACL,OAGD,MAAMswD,EAAYhyC,EAAOzgC,cAAe,aAEnCC,GACJnN,EAAMkiC,OAAOymD,qBAAsBhJ,EAAWxyE,EAAYwgC,GAG3D3tC,EAAMitG,cAAettB,EAAWtwD,GAChCse,EAAOwX,aAAcw6B,EAAW,KAAM,GAExC,CAKQ,8BAAAkzF,CAAgCxjJ,EAAoBse,GAC3D,MAAM3tC,EAAQ4H,KAAK+/B,OAAO3nC,MAE1B,GAAKA,EAAMkiC,OAAOq4C,WAAYlrD,EAAU,aACvC,OAAOA,EAGR,MAAM8+D,EAAgBnuF,EAAMkiC,OAAOwmD,kBAAmBr5D,EAAU,aAIhE,IAAM8+D,EACL,OAAO,KAGR,MAAMjnC,EAAiB73B,EAAS7oB,OAC1B4iG,EAAgBppG,EAAMkiC,OAAOq4C,WAAYrzB,EAAgB,SAK/D,OAAKA,EAAehT,SAAWk1D,GAAiB/5E,EAASksB,QACjDv7C,EAAMmpD,oBAAqBjC,IAK7BA,EAAehT,SAAWk1D,GAAiB/5E,EAASwsB,UAClD77C,EAAMopD,qBAAsBlC,GAG7BvZ,EAAOhpC,MAAO0qB,EAAU8+D,GAAgB9+D,QAChD,ECtFc,MAAM,WAAkB,GAItC,qBAAkBwa,GACjB,MAAO,WACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MAErB2nC,EAAOksE,SAAS/9F,IAAK,YAAa,IAAI48J,GAAkB/qI,IACxDA,EAAOksE,SAAS/9F,IAAK,kBAAmB,IAAI88J,GAAwBjrI,IAGpE3nC,EAAMkiC,OAAO4kD,SAAU,YAAa,CAAEuE,eAAgB,WAEtD1jD,EAAO1hC,WAAW6zE,iBAAkB,CAAE95E,MAAO,YAAau/B,KAAM,MAGhEoI,EAAO1hC,WAAWurF,IAAK,UAAW1X,iBAAkB,CACnD95E,MAAO,CAAE+oD,GAAepb,YACjB,GAAUmlI,sBAAsBj9J,IAAKkzC,EAAYn/C,MAKlDm/C,EAAY7U,QACT,KAGDvG,EAAOzgC,cAAe,aARrB,KAUTqyB,KAAM,KACN46C,kBAAmB,OAErB,CAmCA,6BAAsC,IAAIx+D,IAAK,CAC9C,aACA,KACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,KACA,OClGa,MAAMo3J,WAAuB7qI,GAe3B8qI,cAQhB,WAAArpK,CAAag+B,EAAgBqrI,GAC5Bv9J,MAAOkyB,GAEP//B,KAAKorK,cAAgBA,CACtB,CAKgB,OAAA3qI,GACf,MAAMosC,EAAQ,GAAO7sE,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,UAAU6rC,qBAE1DxsE,KAAKxH,QAAUq0E,GAAS7sE,KAAKorK,cAAcj5I,SAAU06C,EAAM7qE,OAAU6qE,EAAM7qE,KAC3EhC,KAAKmgC,YAAc0sC,GAAS7sE,KAAKorK,cAAc/zI,MAAMg0I,GAAWC,GAAuBz+F,EAAOw+F,EAASrrK,KAAK+/B,OAAO3nC,MAAMkiC,SAC1H,CASgB,OAAA2G,CAAS18B,GACxB,MAAMnM,EAAQ4H,KAAK+/B,OAAO3nC,MACpBoL,EAAWpL,EAAMoL,SAEjByiE,EAAe1hE,EAAQ/L,MAE7BJ,EAAM0tC,QAAQC,IACb,MAAMqxG,EAASz2I,MAAMrB,KAAMkE,EAASm9B,UAAU6rC,qBAC5CzmE,QAAQ8mE,GACDy+F,GAAuBz+F,EAAO5G,EAAc7tE,EAAMkiC,UAG3D,UAAYuyC,KAASuqE,EACdvqE,EAAMt+D,GAAI,UAAW03D,IAC1BlgC,EAAOkb,OAAQ4rB,EAAO5G,EAExB,GAEF,EAUD,SAASqlG,GAAuBz+F,EAAgBw+F,EAAiB/wI,GAChE,OAAOA,EAAOq4C,WAAY9F,EAAMjuE,OAAmBysK,KAAc/wI,EAAOi3C,SAAU1E,EACnF,CC5EA,MAAM0+F,GAAsB,YAOb,MAAMC,WAAuB,GAI3C,qBAAkBvpI,GACjB,MAAO,gBACR,CAKA,WAAAlgC,CAAag+B,GACZlyB,MAAOkyB,GAEPA,EAAOpV,OAAOj0B,OAAQ,UAAW,CAChC6N,QAAS,CACR,CAAEnM,MAAO,YAAau/G,MAAO,YAAa94E,MAAO,wBACjD,CAAEzmC,MAAO,WAAYu/B,KAAM,KAAMggF,MAAO,YAAa94E,MAAO,uBAC5D,CAAEzmC,MAAO,WAAYu/B,KAAM,KAAMggF,MAAO,YAAa94E,MAAO,uBAC5D,CAAEzmC,MAAO,WAAYu/B,KAAM,KAAMggF,MAAO,YAAa94E,MAAO,yBAG/D,CAKA,mBAAkB+D,GACjB,MAAO,CAAE,GACV,CAKO,IAAAR,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdx7B,EAAgCw7B,EAAOpV,OAAOviB,IAAK,mBAEnDgjK,EAAgB,GAEtB,UAAYxpJ,KAAUrd,EAEC,cAAjBqd,EAAOxpB,QAKZ2nC,EAAO3nC,MAAMkiC,OAAO4kD,SAAUt9D,EAAOxpB,MAAO,CAC3CqrF,eAAgB,WAGjB1jD,EAAO1hC,WAAW6zE,iBAAkBtwD,GAEpCwpJ,EAAcxrK,KAAMgiB,EAAOxpB,QAG5B4H,KAAKyrK,wBAAyB1rI,GAG9BA,EAAOksE,SAAS/9F,IAAK,UAAW,IAAIi9J,GAAgBprI,EAAQqrI,GAC7D,CAKO,SAAAM,GAGN,MAAM3rI,EAAS//B,KAAK+/B,OACd4rI,EAAe5rI,EAAOksE,SAAS7jG,IAAK,SACpC7D,EAAgCw7B,EAAOpV,OAAOviB,IAAK,mBAEpDujK,GACJ3rK,KAAK4P,SAAyC+7J,EAAc,gBAAgB,CAAEn2J,EAAK1S,KAClF,MAAMw8C,EAAiBvf,EAAO3nC,MAAMoL,SAASm9B,UAAUE,mBAAoBjiC,OACzD2F,EAAQ8yB,MAAMzV,GAAU09B,EAAe/wC,GAAI,UAAWqT,EAAOxpB,WAE5DknD,EAAe/wC,GAAI,UAAWg9J,KAAuD,IAA9BjsH,EAAe1Y,YACxF9jC,EAAKijC,OAAOkb,OAAQ3B,EAAgBisH,GACrC,GAGH,CAOQ,uBAAAE,CAAyB1rI,GAChCA,EAAO1hC,WAAWurF,IAAK,UAAW1X,iBAAkB,CACnD95E,MAAO,WACPu/B,KAAM,KAGN46C,kBAAmB,EAAWnlE,IAAM,GAEtC,E,eCtHG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQkwB,OCoBR,MAAMsuI,WAAkB,GAItC,qBAAkB3pI,GACjB,MAAO,WACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EACXuJ,ECzBD,SAA8Bw7B,GACpC,MAAM/kC,EAAI+kC,EAAO/kC,EACXuuK,EAA0C,CAC/C,UAAavuK,EAAG,aAChB,YAAaA,EAAG,aAChB,YAAaA,EAAG,aAChB,YAAaA,EAAG,aAChB,YAAaA,EAAG,aAChB,YAAaA,EAAG,aAChB,YAAaA,EAAG,cAGjB,OAAO+kC,EAAOpV,OAAOviB,IAAK,mBAAqBpL,KAAK4kB,IACnD,MAAM+1F,EAAQ4xD,EAAiB3nJ,EAAO+1F,OAMtC,OAJKA,GAASA,GAAS/1F,EAAO+1F,QAC7B/1F,EAAO+1F,MAAQA,GAGT/1F,CAAM,GAEf,CDIkB,CAAqBme,GAC/B8rI,EAAe7wK,EAAG,kBAClB+sK,EAAkB/sK,EAAG,WAG3B+kC,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,WAAWqvB,IAC1C,MAAMuuI,EAAiC,CAAC,EAClC7D,EAA0D,IAAIr1I,GAC9Dm5I,EAAiChsI,EAAOksE,SAAS7jG,IAAK,WACtD4jK,EAAqCjsI,EAAOksE,SAAS7jG,IAAK,aAC1D6jG,EAA2B,CAAE8/D,GAEnC,UAAYnqJ,KAAUrd,EAAU,CAC/B,MAAMk0B,EAAkC,CACvCttB,KAAM,SACN/S,MAAO,IAAI,GAAW,CACrBqgD,MAAO72B,EAAO+1F,MACd94E,MAAOjd,EAAOid,MACdm0E,KAAM,gBACN+G,UAAU,KAIU,cAAjBn4F,EAAOxpB,OACXqgC,EAAIrgC,MAAM4O,KAAM,QAASzH,GAAIysK,EAAkB,SAC/CvzI,EAAIrgC,MAAMwZ,IAAK,cAAe,aAC9Bq6F,EAASrsG,KAAMosK,KAEfvzI,EAAIrgC,MAAM4O,KAAM,QAASzH,GAAIwsK,EAAgB,SAASvzK,GAASA,IAAUopB,EAAOxpB,QAChFqgC,EAAIrgC,MAAMwZ,IAAK,CACd0zB,YAAa,UACb2mI,aAAcrqJ,EAAOxpB,SAKvB6vK,EAAgB/5J,IAAKuqB,GAErBqzI,EAAQlqJ,EAAOxpB,OAAUwpB,EAAO+1F,KACjC,CAEA,MAAMwN,EAAeC,GAAgB7nF,GA+DrC,OA9DAksF,GAAmBtE,EAAc8iD,EAAiB,CACjDlwD,UAAWgwD,EACX/0D,KAAM,SAGPmS,EAAapM,WAAWnnG,IAAK,CAC5BmmG,UAAWgwD,EACXrgD,oBAAgB,EAChBnJ,MAAM,EACNxE,UAAU,EACVvG,QAASu0D,IAGV5iD,EAAavrF,eAAgB,CAC5Br0B,WAAY,CACXs5B,MAAO,CACN,0BAKHsmF,EAAan+G,KAAM,aAAcsN,OAAQ23F,EAAU,aAAa,IAAKigE,IAC7DA,EAAW70I,MAAM8I,GAAaA,MAGtCglF,EAAapM,WAAW/xG,KAAM,SAAUzH,GAAIwsK,EAAgB,QAASC,EAAkB,SAAS,CAAEX,EAAStzF,KAC1G,MAAMo0F,EAAap0F,EAAY,YAAcszF,EAE7C,MAA2B,kBAAfc,EACJN,EAIFC,EAAQK,GAIPL,EAAQK,GAHPN,CAGmB,IAG5B1mD,EAAapM,WAAW/xG,KAAM,aAAczH,GAAIwsK,EAAgB,QAASC,EAAkB,SAAS,CAAEX,EAAStzF,KAC9G,MAAMo0F,EAAap0F,EAAY,YAAcszF,EAE7C,MAA2B,kBAAfc,EACJpE,EAIF+D,EAAQK,GAIP,GAAIL,EAAQK,OAAmBpE,IAH9BA,CAG8B,IAIvC/nK,KAAK4P,SAA8Bu1G,EAAc,WAAW3vG,IAC3D,MAAM,YAAE8vB,EAAW,aAAE2mI,GAAiBz2J,EAAItS,OAC1C68B,EAAOkB,QAASqE,EAAa2mI,EAAe,CAAEzzK,MAAOyzK,QAAiB,GACtElsI,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAGrB0lF,CAAY,IAGpBplF,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,mBAAmBqvB,IAClD,MAAMuoG,EAAW,IAAIgF,GAAiBvtG,GAChCwuI,EAAiChsI,EAAOksE,SAAS7jG,IAAK,WACtD4jK,EAAqCjsI,EAAOksE,SAAS7jG,IAAK,aAC1D6jG,EAA2B,CAAE8/D,GAC7B9pD,EAAW,IAAIipB,GAAqB3tG,GAE1CuoG,EAASl0H,IAAK,CACbitB,MAAO,wBAGRojF,EAASrwG,IAAK,CACbmmG,UAAW/8G,EAAG,WACdg4G,KAAM,SAGP8yB,EAAS/sB,WAAWnnG,IAAK,CACxB6mC,MAAOz9C,EAAG,aAGX8qI,EAAS9jB,UAAU9pG,SAAShK,IAAK+zG,GAEjC,UAAYrgG,KAAUrd,EAAU,CAC/B,MAAMylH,EAAe,IAAIyb,GAAyBloG,EAAQuoG,GACpD/sB,EAAa,IAAI,GAA+Bx7E,GAEtDysF,EAAa9xG,SAAShK,IAAK6qG,GAC3BkJ,EAASruF,MAAM1lB,IAAK87G,GAEpBjR,EAAWnnG,IAAK,CACf6mC,MAAO72B,EAAO+1F,MACd3E,KAAM,gBACNn0E,MAAOjd,EAAOid,QAGfk6E,EAAW/xG,KAAM,eAAgBzH,GAAIw5G,EAAY,QACjDA,EAAWxnG,SAAU,WAAYhS,GAAIumI,GAErC/sB,EAAWtpG,GAAwB,WAAW,KAC7C,MAAM61B,EAA+B,cAAjB1jB,EAAOxpB,MAAwB,YAAc,UAEjE2nC,EAAOkB,QAASqE,EAAa,CAAE9sC,MAAOopB,EAAOxpB,QAC7C2nC,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAGN,cAAjB7d,EAAOxpB,OACX2gH,EAAW/xG,KAAM,QAASzH,GAAIysK,EAAkB,SAChD//D,EAASrsG,KAAMosK,IAEfjzD,EAAW/xG,KAAM,QAASzH,GAAIwsK,EAAgB,SAASvzK,GAASA,IAAUopB,EAAOxpB,OAEnF,CAMA,OAJA0tI,EAAS9+H,KAAM,aAAcsN,OAAQ23F,EAAU,aAAa,IAAKigE,IACzDA,EAAW70I,MAAM8I,GAAaA,MAG/B2lG,CAAQ,GAEjB,EE5Lc,MAAMsmC,WAA8B9rI,GAIlC,OAAAG,GACf,MAAMroC,EAAQ4H,KAAK+/B,OAAO3nC,MACpBkiC,EAASliC,EAAMkiC,OACfqG,EAAYvoC,EAAMoL,SAASm9B,UAEjC3gC,KAAKmgC,UAwBP,SAA0CQ,EAA0CrG,EAAgBliC,GACnG,MAAMwG,EAWP,SAAwC+hC,EAA0CvoC,GACjF,MAAMi0K,EAAiB/pF,GAA2B3hD,EAAWvoC,GACvDwG,EAASytK,EAAe57I,MAAM7xB,OAEpC,GAAKA,EAAO0tC,UAAY1tC,EAAO2P,GAAI,UAAW,SAC7C,OAAO3P,EAAOA,OAGf,OAAOA,CACR,CApBgB0tK,CAA+B3rI,EAAWvoC,GAEzD,OAAOkiC,EAAOq4C,WAAY/zE,EAAQ,iBACnC,CA5BmB2tK,CAAiC5rI,EAAWrG,EAAQliC,EACtE,CAOgB,OAAA6oC,GACf,MAAM7oC,EAAQ4H,KAAK+/B,OAAO3nC,MAE1BA,EAAM0tC,QAAQC,IACb,MAAMymI,EAAoBzmI,EAAOzgC,cAAe,kBAEhDlN,EAAMwsG,aAAc4nE,EAAmB,KAAM,KAAM,CAAEjvH,aAAc,SAAW,GAEhF,E,eC9CG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQjgB,OCQR,MAAMmvI,WAA8B,GAIlD,qBAAkBxqI,GACjB,MAAO,uBACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdzF,EAASyF,EAAO3nC,MAAMkiC,OACtBt/B,EAAI+kC,EAAO/kC,EACXqD,EAAa0hC,EAAO1hC,WAE1Bi8B,EAAO4kD,SAAU,iBAAkB,CAClCuE,eAAgB,iBAGjBplF,EAAWurF,IAAK,gBAAiB1X,iBAAkB,CAClD95E,MAAO,iBACPu/B,KAAM,CAAEsuC,GAAgBlgC,YAChBA,EAAOkY,mBAAoB,QAIpC5/C,EAAWurF,IAAK,mBAAoBlX,mBAAoB,CACvDt6E,MAAO,iBACPu/B,KAAM,CAAEsuC,GAAgBlgC,aACvB,MAAM0S,EAAQz9C,EAAG,mBAEX0xK,EAAc3mI,EAAO8X,uBAAwB,MAAO,KACzD9X,EAAOkY,mBAAoB,OAM5B,OAHAlY,EAAOmB,SAAU,qBAAsBwlI,GACvC3mI,EAAO2Y,kBAAmB,MAAM,EAAMguH,GAoB1C,SAAiCvrH,EAA0Bpb,EAAwB0S,GAGlF,OAFA1S,EAAO2Y,kBAAmB,kBAAkB,EAAMyC,GAE3CotG,GAAUptG,EAAapb,EAAQ,CAAE0S,SACzC,CAtBWk0H,CAAwBD,EAAa3mI,EAAQ0S,EAAO,IAI7Dp6C,EAAWurF,IAAK,UAAW1X,iBAAkB,CAAEv6C,KAAM,KAAMv/B,MAAO,mBAElE2nC,EAAOksE,SAAS/9F,IAAK,iBAAkB,IAAIk+J,GAAuBrsI,GACnE,EClDc,MAAM6sI,WAAyB,GAI7C,qBAAkB3qI,GACjB,MAAO,kBACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OAGpBA,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,kBAAkB,KACjD,MAAM6qG,EAAa/4G,KAAKo7G,cAAe,IAMvC,OAJArC,EAAWnnG,IAAK,CACf4hG,SAAS,IAGHuF,CAAU,IAGlBh5E,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,0BAA0B,IAClDlO,KAAKo7G,cAAe,KAE7B,CAKQ,aAAAA,CAAmFG,GAC1F,MAAMx7E,EAAS//B,KAAK+/B,OACdxC,EAASwC,EAAOxC,OAChB6D,EAAiCrB,EAAOksE,SAAS7jG,IAAK,kBACtDuvB,EAAO,IAAI4jF,EAAax7E,EAAOxC,QAC/BviC,EAAIuiC,EAAOviC,EAejB,OAbA28B,EAAK/lB,IAAK,CACT6mC,MAAOz9C,EAAG,mBACVs4G,KAAM,GAAM3B,iBAGbh6E,EAAK3wB,KAAM,aAAczH,GAAI6hC,EAAS,aAGtCphC,KAAK4P,SAAU+nB,EAAM,WAAW,KAC/BoI,EAAOkB,QAAS,kBAChBlB,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAGrB9H,CACR,ECpBM,SAASk1I,GAA6B9mI,GAC5C,OAAOA,EAAO8X,uBAAwB,SAAU,CAAEhf,MAAO,SAAW,CACnEkH,EAAOkY,mBAAoB,OAC3BlY,EAAO8b,WAAY,aAErB,CAQO,SAASirH,GAA0B/sI,EAAgBgtI,GACzD,MAAMC,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAC7C6kK,EAA4BltI,EAAOsC,QAAQp0B,IAAK,uBAA0B8xB,EAAOsC,QAAQp0B,IAAK,qBAEpG,OAAO8I,IAEN,IAAMi2J,EAAWE,kBAAmBn2J,GACnC,OAAO,KAIR,IAAMk2J,EACL,OAAOE,EAAyBp2J,GASjC,OAJmD,SAAjCA,EAAQozB,SAAU,YAA0BpzB,EAAQ25B,aAAcs8H,EAAWI,kBAC9F,aACA,iBAEkBL,EACX,KAGDI,EAAyBp2J,EAAS,EAG1C,SAASo2J,EAAyBp2J,GACjC,MAAMqyB,EAAmC,CACxCpnC,MAAM,GAQP,OAJK+U,EAAQs5B,aAAc,SAC1BjH,EAAQ7jC,WAAa,CAAE,QAGjB6jC,CACR,CACD,CAaO,SAASikI,GACf/yI,EACAqG,GAEA,MAAM6hD,EAAa,GAAO7hD,EAAU6rC,qBAGpC,OAAMgW,GAAcloD,EAAOi3C,SAAUiR,IAMhCA,EAAWl2C,SAA8B,YAAnBk2C,EAAWxgF,KAL9B,aAUD,aACR,CAKO,SAASsrK,GAAoBt5J,GACnC,OAAKA,GAAQA,EAAKya,SAAU,MACpBrxB,SAAU4W,GAGX,IACR,CASO,SAASu5J,GAAgCpsH,GAC/C,MAAM63G,EAAasU,GAAoBnsH,EAAYhX,SAAU,UACvDqjI,EAAcF,GAAoBnsH,EAAYhX,SAAU,WAE9D,SAAW6uH,IAAcwU,EAC1B,CCpIA,MAAMC,GAAqC,yBAK5B,MAAM,WAAmB,GAI/BzP,YAA0B,IAAM/9I,MAKxC,qBAAkBgiB,GACjB,MAAO,YACR,CAKO,OAAAyrI,CAASznG,GACf,OAAOjmE,KAAK2tK,cAAe1nG,IAAkBjmE,KAAK4tK,aAAc3nG,EACjE,CAOO,iBAAAinG,CAAmBn2J,GACzB,QAASA,GAAWA,EAAQxI,GAAI,UAAW,MAC5C,CAOO,gBAAA6+J,CAAkBr2J,GACxB,QAASA,GAAWA,EAAQxI,GAAI,UAAW,WAAcwI,EAAQsvB,SAAU,QAC5E,CA2BO,WAAAwnI,CACNtoK,EAAsC,CAAC,EACvC4yC,EAA0C,KAC1C21H,EAAqD,KACrDvpK,EAAuC,CAAC,GAExC,MAAMw7B,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACfuoC,EAAYvoC,EAAMoL,SAASm9B,UAE3BotI,EAAsBC,GAAgCjuI,EAAQoY,GAAcxX,EAAWmtI,GAK7FvoK,EAAa,IACTvO,OAAO62B,YAAa8S,EAAUyP,oBAC9B7qC,GAGJ,UAAYyrC,KAAiBzrC,EACtBnN,EAAMkiC,OAAOo3C,eAAgBq8F,EAAqB/8H,WAChDzrC,EAAYyrC,GAIrB,OAAO54C,EAAM0tC,QAAQC,IACpB,MAAM,cAAEkoI,GAAgB,GAAS1pK,EAC3B2pK,EAAenoI,EAAOzgC,cAAeyoK,EAAqBxoK,GAUhE,OARAnN,EAAMwsG,aAAcspE,EAAc/1H,EAAY,KAAM,CACnDoF,aAAc,KAGdwnD,oBAAsB5sD,GAAqC,eAAvB41H,OAAgD,EAAT,SAIvEG,EAAatvK,QACZqvK,GACJjuK,KAAKmuK,8BAA+BD,GAG9BA,GAGD,IAAI,GAEb,CAQO,6BAAAC,CAA+BD,GACrC,MAAME,EAAMF,EAAaxzI,aAAc,OAEjC0zI,IAIDF,EAAaxzI,aAAc,UAAawzI,EAAaxzI,aAAc,WAIxE16B,KAAK+/B,OAAO3nC,MAAM0tC,QAAQC,IACzB,MAAMsoI,EAAM,IAAI,GAAO9qK,OAAO+qK,MAE9BtuK,KAAKg+J,YAAYpuJ,SAAUy+J,EAAK,QAAQ,KACjCH,EAAaxzI,aAAc,UAAcwzI,EAAaxzI,aAAc,WAGzE16B,KAAK+/B,OAAO3nC,MAAM63E,cAAelqC,EAAOgqC,OAAOhqC,IAC9CA,EAAOtgC,aAAc,QAAS4oK,EAAIE,aAAcL,GAChDnoI,EAAOtgC,aAAc,SAAU4oK,EAAIG,cAAeN,EAAc,IAIlEluK,KAAKg+J,YAAYjuJ,cAAes+J,EAAK,OAAQ,IAG9CA,EAAID,IAAMA,CAAG,IAEf,CAKO,6BAAAK,CAA+B9tI,GACrC,MAAMynB,EAAoBznB,EAAUE,mBAEpC,IAAMunB,EACL,OAAO,KAGR,MAAMjH,EAAcxgB,EAAUuX,qBAE9B,GAAKiJ,GAAenhD,KAAK0uK,cAAevtH,GACvC,OAAOA,EAGR,IAAIviD,EAAiDwpD,EAAkBxpD,OAEvE,KAAQA,GAAS,CAChB,GAAKA,EAAO2P,GAAI,YAAevO,KAAK0uK,cAAe9vK,GAClD,OAAOA,EAGRA,EAASA,EAAOA,MACjB,CAEA,OAAO,IACR,CAKO,8BAAA+vK,CAAgChuI,GACtC,MAAMyZ,EAAkBzZ,EAAUuX,qBAElC,OAAOl4C,KAAK0tK,QAAStzH,GAAoBA,EAAkBzZ,EAAUE,mBAAoB6P,aAAc,aACxG,CAKO,2BAAAk+H,CAA6BC,GACnC,OAAOA,EAAUn+H,aAAc,CAAE3G,QAAS0jI,IAC3C,CAOO,cAAAqB,GACN,MACMnuI,EADQ3gC,KAAK+/B,OAAO3nC,MACFoL,SAASm9B,UAEjC,OA8EF,SAAiCZ,EAAgBY,GAChD,MAAMmtI,EAAYE,GAAgCjuI,EAAQY,EAAW,MAErE,GAAkB,cAAbmtI,EAA4B,CAChC,MAAMlvK,EAsBR,SAA+B+hC,EAA0CvoC,GACxE,MAAMi0K,EAAiB/pF,GAA2B3hD,EAAWvoC,GACvDwG,EAASytK,EAAe57I,MAAM7xB,OAEpC,GAAKA,EAAO0tC,UAAY1tC,EAAO2P,GAAI,UAAW,SAC7C,OAAO3P,EAAOA,OAGf,OAAOA,CACR,CA/BiBmwK,CAAsBpuI,EAAWZ,EAAO3nC,OAEvD,GAAK2nC,EAAO3nC,MAAMkiC,OAAOq4C,WAAY/zE,EAAmB,cACvD,OAAO,CAET,MAAO,GAAKmhC,EAAO3nC,MAAMkiC,OAAOq4C,WAAYhyC,EAAUlB,MAAQ,eAC7D,OAAO,EAGR,OAAO,CACR,CA5FSuvI,CAAwBhvK,KAAK+/B,OAAQY,IAiG9C,SAA2BA,GAC1B,MAAO,IAAKA,EAAUlB,MAAO+H,gBAAiB9wB,OAAO8pC,IAAaA,EAASjyC,GAAI,UAAW,eAC3F,CAnG6D0gK,CAAkBtuI,EAC9E,CAWO,aAAAuuI,CAAe/tH,EAA0Bpb,EAAwB0S,GACvE1S,EAAO2Y,kBAAmB,SAAS,EAAMyC,GASzC,OAAOotG,GAAUptG,EAAapb,EAAQ,CAAE0S,MAPnB,KACpB,MACM02H,EADanvK,KAAKovK,mBAAoBjuH,GACjBzmB,aAAc,OAEzC,OAAOy0I,EAAU,GAAIA,KAAa12H,IAAWA,CAAK,GAIpD,CAKU,aAAAi2H,CAAevtH,GACxB,QAASA,EAAYvQ,kBAAmB,UAAa09G,GAAUntG,EAChE,CAKO,YAAAysH,CAAc3nG,GACpB,QAASA,GAAgBA,EAAa13D,GAAI,UAAW,aACtD,CAKO,aAAAo/J,CAAe1nG,GACrB,QAASA,GAAgBA,EAAa13D,GAAI,UAAW,cACtD,CAOO,kBAAA6gK,CAAoBC,GAC1B,GAAKrvK,KAAKktK,kBAAmBmC,GAC5B,OAAOA,EAGR,MAAM7zD,EAAcx7G,KAAK+/B,OAAOotE,QAAQx1E,KAExC,UAAY,KAAE13B,KAAUu7G,EAAY75D,cAAe0tH,GAClD,GAAKrvK,KAAKktK,kBAAmBjtK,GAC5B,OAAOA,CAGV,CAKgB,OAAAgoB,GAGf,OAFAjoB,KAAKg+J,YAAYjuJ,gBAEVlC,MAAMoa,SACd,EAiDD,SAAS+lJ,GACRjuI,EACAoY,EACA21H,GAEA,MAAMxzI,EAASyF,EAAO3nC,MAAMkiC,OACtBg1I,EAAwBvvI,EAAOpV,OAAOviB,IAAK,qBAEjD,OAAM23B,EAAOsC,QAAQp0B,IAAK,qBAIpB8xB,EAAOsC,QAAQp0B,IAAK,sBAIrB6/J,IAI0B,WAA1BwB,EACG,cAGuB,SAA1BA,EACG,aAIHn3H,EAAW5pC,GAAI,aACZ8+J,GAA2C/yI,EAAQ6d,GAGpD7d,EAAOq4C,WAAYx6B,EAAY,eAAkB,cAAgB,cApBhE,aAJA,aAyBT,CCtXyB,IAAItuC,OAAQ6R,OAAQ,sDAAsDxY,OAClG,0DAA0DA,OAC1D,kCAAkCA,OAClC,kCAAkCA,SCPpB,MAAMqsK,WAAoCjvI,GAYxC,OAAAG,GACf,MAEM1pB,EAFS/W,KAAK+/B,OACkBsC,QAAQj6B,IAAK,cACxBumK,+BAAgC3uK,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,WAEtF3gC,KAAKmgC,YAAcppB,EAEd/W,KAAKmgC,WAAappB,EAAQs5B,aAAc,OAC5CrwC,KAAKxH,MAAQue,EAAQ2jB,aAAc,OAEnC16B,KAAKxH,OAAQ,CAEf,CASgB,OAAAyoC,CAAS18B,GACxB,MAAMw7B,EAAS//B,KAAK+/B,OACditI,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAC7ChQ,EAAQ2nC,EAAO3nC,MACf81K,EAAelB,EAAW2B,+BAAgCv2K,EAAMoL,SAASm9B,WAE/EvoC,EAAM0tC,QAAQC,IACbA,EAAOtgC,aAAc,MAAOlB,EAAQqP,SAAUs6J,EAAe,GAE/D,ECvCc,MAAMsB,WAAoC,GAIxD,mBAAkB5sI,GACjB,MAAO,CAAE,GACV,CAKA,qBAAkBX,GACjB,MAAO,6BACR,CAKO,IAAAG,GACNpiC,KAAK+/B,OAAOksE,SAAS/9F,IAAK,uBAAwB,IAAIqhK,GAA6BvvK,KAAK+/B,QACzF,E,eCnCG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQzC,O,eCTnB,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQA,OCoBR,MAAMmyI,WAAgCpyI,GAIpC4B,aAKA0tE,WAKTgjB,aAKA4C,eAKAC,iBAKYxc,YAKAkB,aAKnB,WAAAn1G,CAAaw7B,GACZ1vB,MAAO0vB,GACP,MAAMviC,EAAIgF,KAAKu9B,OAAQviC,EAEvBgF,KAAKi/B,aAAe,IAAI1J,GAExBv1B,KAAK2sG,WAAa,IAAI32E,GAEtBh2B,KAAK2vH,aAAe3vH,KAAK0vK,0BAEzB1vK,KAAKuyH,eAAiBvyH,KAAKo7G,cAAepgH,EAAG,QAAU,GAAMyzG,MAAO,kBACpEzuG,KAAKuyH,eAAepnH,KAAO,SAE3BnL,KAAKwyH,iBAAmBxyH,KAAKo7G,cAAepgH,EAAG,UAAY,GAAM47B,OAAQ,mBAAoB,UAE7F52B,KAAKg2G,YAAc,IAAIx+E,GAEvBx3B,KAAKk3G,aAAe,IAAIxD,GAAa,CACpCC,WAAY3zG,KAAKg2G,YACjB/2E,aAAcj/B,KAAKi/B,aACnBD,iBAAkBh/B,KAAK2sG,WACvBplD,QAAS,CAER6sD,cAAe,cAGfD,UAAW,SAIbn0G,KAAKi+B,YAAa,CACjBlmB,IAAK,OAELxS,WAAY,CACXs5B,MAAO,CACN,KACA,2BACA,sBAIDo0E,SAAU,MAGX/6F,SAAU,CACTlY,KAAK2vH,aACL3vH,KAAKuyH,eACLvyH,KAAKwyH,mBAGR,CAKgB,MAAAt6F,GACfrqB,MAAMqqB,SAENl4B,KAAK2sG,WAAW/8F,SAAU5P,KAAK+W,SAE/B+nB,GAAe,CAAEnH,KAAM33B,OAEvB,CAAEA,KAAK2vH,aAAc3vH,KAAKuyH,eAAgBvyH,KAAKwyH,kBAC7C50H,SAAStE,IAET0G,KAAKg2G,YAAY9nG,IAAK5U,GAGtB0G,KAAKi/B,aAAa/wB,IAAK5U,EAAEyd,QAAU,GAEtC,CAKgB,OAAAkR,GACfpa,MAAMoa,UAENjoB,KAAKi/B,aAAahX,UAClBjoB,KAAK2sG,WAAW1kF,SACjB,CAWQ,aAAAmzF,CAAe3iE,EAAe66D,EAAc/iE,EAAmB5+B,GACtE,MAAMwkG,EAAS,IAAI,GAAYn2G,KAAKu9B,QAkBpC,OAhBA44E,EAAOvkG,IAAK,CACX6mC,QACA66D,OACAE,SAAS,IAGV2C,EAAOv8E,eAAgB,CACtBr0B,WAAY,CACXs5B,MAAO0R,KAIJ5+B,GACJwkG,EAAO5kG,SAAU,WAAYhS,GAAIS,KAAM2R,GAGjCwkG,CACR,CAOQ,uBAAAu5D,GACP,MAAM10K,EAAIgF,KAAKu9B,OAAQviC,EACjB20H,EAAe,IAAInP,GAA6BxgH,KAAKu9B,OAAQ0sF,IAInE,OAFA0F,EAAal3E,MAAQz9C,EAAG,oBAEjB20H,CACR,EC5JM,SAAS,GAAwB5vF,GACvC,MAAMy7E,EAAcz7E,EAAOotE,QAAQx1E,KAC7B08F,EAAmBH,GAAiBG,iBACpC24C,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAEnD,MAAO,CACNxE,OAAQ43G,EAAY3/D,aAAaqK,aAChC8mH,EAAWyB,8BAA+BjzD,EAAYh4G,SAASm9B,YAEhE1X,UAAW,CACVorG,EAAiBM,gBACjBN,EAAiBS,oBACjBT,EAAiBU,oBACjBV,EAAiBC,gBACjBD,EAAiBI,oBACjBJ,EAAiBK,oBACjBL,EAAiBW,qBAGpB,CC5Be,MAAM26C,WAA+B,GAI3CxZ,SAKAyZ,MAKR,mBAAkBhtI,GACjB,MAAO,CAAE++F,GACV,CAKA,qBAAkB1/F,GACjB,MAAO,wBACR,CAKO,IAAAG,GACNpiC,KAAKo7G,eACN,CAKgB,OAAAnzF,GACfpa,MAAMoa,UAGDjoB,KAAK4vK,OACT5vK,KAAK4vK,MAAM3nJ,SAEb,CAMQ,aAAAmzF,GACP,MAAMr7E,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EAEjB+kC,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,wBAAwBqvB,IACvD,MAAM6D,EAAuCrB,EAAOksE,SAAS7jG,IAAK,wBAC5DuvB,EAAO,IAAI,GAAY4F,GAe7B,OAbA5F,EAAK/lB,IAAK,CACT6mC,MAAOz9C,EAAG,iCACVs4G,KAAM,GAAMrE,gBACZuE,SAAS,IAGV77E,EAAK3wB,KAAM,aAAczH,GAAI6hC,EAAS,aACtCzJ,EAAK3wB,KAAM,QAASzH,GAAI6hC,EAAS,SAAS5oC,KAAWA,IAErDwH,KAAK4P,SAAU+nB,EAAM,WAAW,KAC/B33B,KAAK6vK,WAAW,IAGVl4I,CAAI,GAEb,CAMQ,WAAAm4I,GACP,MAAM/vI,EAAS//B,KAAK+/B,OAEdu9B,EADOv9B,EAAOotE,QAAQx1E,KACFn0B,SACpBwpK,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAEnDpI,KAAKm2J,SAAWn2J,KAAK+/B,OAAOsC,QAAQj6B,IAAK,qBAEzCpI,KAAK4vK,MAAQ,IAAMpxI,GAA4BixI,IAAlC,CAA+D1vI,EAAOxC,QAGnFv9B,KAAK4vK,MAAM13I,SAEXl4B,KAAK4P,SAA8C5P,KAAK4vK,MAAO,UAAU,KACxE7vI,EAAOkB,QAAS,uBAAwB,CACvCrtB,SAAU5T,KAAK4vK,MAAOjgD,aAAalP,UAAU1pG,QAASve,QAGvDwH,KAAK+vK,WAAW,EAAM,IAGvB/vK,KAAK4P,SAA8C5P,KAAK4vK,MAAO,UAAU,KACxE5vK,KAAK+vK,WAAW,EAAM,IAIvB/vK,KAAK4vK,MAAMjjE,WAAW/6F,IAAK,OAAO,CAAE9O,EAAM8zB,KACzC52B,KAAK+vK,WAAW,GAChBn5I,GAAQ,IAIT52B,KAAK4P,SAAUmwB,EAAO+E,GAAI,UAAU,KAC7BkoI,EAAWyB,8BAA+BnxG,EAAa38B,WAEjD3gC,KAAKu3G,YDzHb,SAAsCx3E,GAC5C,MAAM86F,EAA6B96F,EAAOsC,QAAQj6B,IAAK,qBAGvD,GAF+B23B,EAAOsC,QAAQj6B,IAAK,cAEnCqmK,8BAA+B1uI,EAAOotE,QAAQx1E,KAAKn0B,SAASm9B,WAAc,CACzF,MAAMlZ,EAAW,GAAwBsY,GAEzC86F,EAAQrjB,eAAgB/vF,EACzB,CACD,CCiHI,CAA6BsY,GAF7B//B,KAAK+vK,WAAW,EAGjB,IAID7xI,GAAqB,CACpBluB,QAAShQ,KAAK4vK,MACdzxI,UAAW,IAAMn+B,KAAKu3G,WACtBn5E,gBAAiB,IAAM,CAAEp+B,KAAKm2J,SAAUx+H,KAAK5gB,SAC7CpH,SAAU,IAAM3P,KAAK+vK,aAEvB,CAKQ,SAAAF,GACP,GAAK7vK,KAAKu3G,WACT,OAGKv3G,KAAK4vK,OACV5vK,KAAK8vK,cAGN,MAAM/vI,EAAS//B,KAAK+/B,OACdqB,EAAuCrB,EAAOksE,SAAS7jG,IAAK,wBAC5DunH,EAAe3vH,KAAK4vK,MAAOjgD,aAEjC3vH,KAAK4vK,MAAOnxI,wBAENz+B,KAAKgwK,cACVhwK,KAAKm2J,SAAUjoJ,IAAK,CACnBypB,KAAM33B,KAAK4vK,MACXnoJ,SAAU,GAAwBsY,KASpC4vF,EAAalP,UAAUjoH,MAAQm3H,EAAalP,UAAU1pG,QAASve,MAAQ4oC,EAAQ5oC,OAAS,GAExFwH,KAAK4vK,MAAOjgD,aAAalP,UAAUa,SAEnCthH,KAAK4vK,MAAOjxI,sBACb,CAOQ,SAAAoxI,CAAWE,GAAyB,GACrCjwK,KAAKgwK,eAMNhwK,KAAK4vK,MAAO3wI,aAAanJ,WAC7B91B,KAAK4vK,MAAOr9C,eAAe9yF,QAG5Bz/B,KAAKm2J,SAAUlwJ,OAAQjG,KAAK4vK,OAEvBK,GACJjwK,KAAK+/B,OAAOotE,QAAQx1E,KAAK8H,QAE3B,CAKA,cAAY83E,GACX,QAASv3G,KAAKm2J,UAAYn2J,KAAKm2J,SAASvzB,cAAgB5iI,KAAK4vK,KAC9D,CAKA,gBAAYI,GACX,QAAShwK,KAAKm2J,UAAYn2J,KAAKm2J,SAAS/zB,QAASpiI,KAAK4vK,MACvD,EC/Mc,MAAMM,WAA6B,GAIjD,mBAAkBttI,GACjB,MAAO,CAAE4sI,GAA6BG,GACvC,CAKA,qBAAkB1tI,GACjB,MAAO,sBACR,ECoJM,SAASkuI,GACfnD,EACAc,GAEA,MAAM11F,EAA0D,CAAE5iE,EAAK1S,EAAMumE,KAC5E,IAAMA,EAAcsB,WAAWpC,QAASzlE,EAAK7C,KAAMuV,EAAIxT,MACtD,OAGD,MAAM+jC,EAASsjC,EAActjC,OACvBhvB,EAAUsyD,EAAc/B,OAAOf,cAAezjE,EAAK7C,MACnDouK,EAAMrB,EAAWoC,mBAAoBr4J,GAEX,OAA3BjU,EAAKwnE,mBACTvkC,EAAOr/B,gBAAiB,SAAU2nK,GAClCtoI,EAAOr/B,gBAAiB,QAAS2nK,IAE5BvrK,EAAKwnE,oBACTvkC,EAAOtgC,aAAc,SAAU3C,EAAKwnE,kBAAmB+jG,GAEvDtoI,EAAOtgC,aAAc,QAAS,QAAS4oK,GAEzC,EAGD,OAAO/kG,IACNA,EAAW75D,GAAqC,oBAAqBq+J,IAAc11F,EAAW,CAEhG,CAwEO,SAASg4F,GACfpD,EACAc,EACAz/G,GAEA,MAAM+pB,EAA0D,CAAE5iE,EAAK1S,EAAMumE,KAC5E,IAAMA,EAAcsB,WAAWpC,QAASzlE,EAAK7C,KAAMuV,EAAIxT,MACtD,OAGD,MAAMoyE,EAAa/K,EAActjC,OAC3BhvB,EAAUsyD,EAAc/B,OAAOf,cAAezjE,EAAK7C,MACnDouK,EAAMrB,EAAWoC,mBAAoBr4J,GAE3Cq9D,EAAW3uE,aAAc3C,EAAKurD,aAAcvrD,EAAKwnE,mBAAqB,GAAI+jG,EAAK,EAGhF,OAAO/kG,IACNA,EAAW75D,GAAqC,aAAc4+C,KAAkBy/G,IAAc11F,EAAW,CAE3G,CC5Re,MAAMi4F,WAA0B37G,GAIvC,OAAA1sC,CAASuiC,GACfvqD,KAAK4P,SAAU26C,EAAS,QAAQ,CAAE76C,EAAOslD,KACxC,MAAMjZ,EAAaiZ,EAASpxD,OAEvB5D,KAAK80D,iCAAkC/Y,IAIjB,OAAtBA,EAAWuP,SACftrD,KAAKswK,YAAat7G,EACnB,GAEE,CAAE50C,YAAY,GAClB,CAKgB,aAAAg1C,CAAe7K,GAC9BvqD,KAAK+P,cAAew6C,EACrB,CASQ,WAAA+lH,CAAat7G,GACfh1D,KAAKmgC,YACTngC,KAAKwD,SAASoN,KAAM,iBACpB5Q,KAAKwD,SAASoN,KAAwB,cAAeokD,GAEvD,ECRc,MAAMu7G,WAA2BjwI,GAI/C,WAAAv+B,CAAag+B,GACZlyB,MAAOkyB,GAEP,MAAMuvI,EAAwBvvI,EAAOpV,OAAOviB,IAAK,qBAE3C23B,EAAOsC,QAAQp0B,IAAK,sBACM,UAA1BqhK,GAOJ,EAAY,+BAIRvvI,EAAOsC,QAAQp0B,IAAK,uBACM,WAA1BqhK,GAOJ,EAAY,+BAGf,CAKgB,OAAA7uI,GACf,MAAMusI,EAAyBhtK,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAExDpI,KAAKmgC,UAAY6sI,EAAW8B,gBAC7B,CAUgB,OAAA7tI,CAAS18B,GACxB,MAAMisK,EAAoBzgJ,GAA2CxrB,EAAQrB,QACvEy9B,EAAY3gC,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,UACvCqsI,EAAyBhtK,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAUlDuxI,EAAsB3iJ,OAAO62B,YAAa8S,EAAUyP,iBAE1DogI,EAAkB5yK,SAAS,CAAE6yK,EAAkB7rK,KAC9C,MAAMw1C,EAAkBzZ,EAAUuX,qBAQlC,GANiC,iBAArBu4H,IACXA,EAAmB,CAAErC,IAAKqC,IAKtB7rK,GAASw1C,GAAmB4yH,EAAWU,QAAStzH,GAAoB,CACxE,MAAM3yB,EAAWznB,KAAK+/B,OAAO3nC,MAAMmpD,oBAAqBnH,GAExD4yH,EAAWa,YAAa,IAAK4C,KAAqB92B,GAAuBlyH,EAC1E,MACCulJ,EAAWa,YAAa,IAAK4C,KAAqB92B,GACnD,GAEF,EC9Gc,MAAM+2B,WAAkCpwI,GAGtD,WAAAv+B,CAAag+B,GACZlyB,MAAOkyB,GAEP//B,KAAKoV,SAAU,eAChB,CAKgB,OAAAqrB,GACf,MACMusI,EADShtK,KAAK+/B,OACkBsC,QAAQj6B,IAAK,cAC7C2O,EAAU/W,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,UAAUuX,qBAErDl4C,KAAKmgC,UAAY6sI,EAAWU,QAAS32J,GACrC/W,KAAKxH,MAAQwH,KAAKmgC,UAAYppB,EAAQ2jB,aAAc,OAAoB,IACzE,CASgB,OAAAuG,CAAS18B,GACxB,MAAMu4D,EAAQ98D,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,UAAUuX,qBAC7C80H,EAAyBhtK,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAExDpI,KAAK+/B,OAAO3nC,MAAM0tC,QAAQC,IACzBA,EAAOtgC,aAAc,MAAOlB,EAAQrB,OAAQ45D,GAE5C98D,KAAK2wK,aAAc5qI,EAAQ+2B,GAE3BkwG,EAAWmB,8BAA+BrxG,EAAO,GAEnD,CAgBO,YAAA6zG,CAAc5qI,EAAgB+2B,GACpC/2B,EAAOr/B,gBAAiB,SAAUo2D,GAClC/2B,EAAOr/B,gBAAiB,QAASo2D,GAMjC/2B,EAAOr/B,gBAAiB,UAAWo2D,GACnC/2B,EAAOr/B,gBAAiB,QAASo2D,GACjC/2B,EAAOr/B,gBAAiB,SAAUo2D,GAClC/2B,EAAOr/B,gBAAiB,MAAOo2D,EAChC,ECnEc,MAAM,WAAqB,GAIzC,mBAAkBl6B,GACjB,MAAO,CAAE,GACV,CAKA,qBAAkBX,GACjB,MAAO,cACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd1hC,EAAa0hC,EAAO1hC,WAG1B0hC,EAAOotE,QAAQx1E,KAAK2mC,YAAa+xG,IAEjChyK,EAAWurF,IAAK,UACd5V,qBAAsB,CACtBr8C,KAAM,CACL31B,KAAM,MACNjL,IAAK,OAENqB,MAAO,QAEP47E,qBAAsB,CACtBr8C,KAAM,CACL31B,KAAM,MACNjL,IAAK,UAENqB,MAAO,WAGT,MAAMw4K,EAAqB,IAAIL,GAAoBxwI,GAC7C8wI,EAA4B,IAAIH,GAA2B3wI,GAEjEA,EAAOksE,SAAS/9F,IAAK,cAAe0iK,GACpC7wI,EAAOksE,SAAS/9F,IAAK,qBAAsB2iK,GAG3C9wI,EAAOksE,SAAS/9F,IAAK,cAAe0iK,EACrC,ECtDc,MAAME,WAA4B,GAIhD,mBAAkBluI,GACjB,MAAO,CAAE,GACV,CAKA,qBAAkBX,GACjB,MAAO,qBACR,CAKO,SAAAypI,GACN1rK,KAAK+wK,kBACL/wK,KAAKgxK,oBAAqB,cAC1BhxK,KAAKgxK,oBAAqB,cAC3B,CAKQ,eAAAD,GACF/wK,KAAK+/B,OAAOsC,QAAQp0B,IAAK,sBAC7BjO,KAAK+/B,OAAO3nC,MAAMkiC,OAAOZ,OAAQ,aAAc,CAAEgmD,gBAAiB,CAAE,QAAS,YAGzE1/E,KAAK+/B,OAAOsC,QAAQp0B,IAAK,uBAC7BjO,KAAK+/B,OAAO3nC,MAAMkiC,OAAOZ,OAAQ,cAAe,CAAEgmD,gBAAiB,CAAE,QAAS,WAEhF,CAKQ,mBAAAsxF,CAAqBlD,GAC5B,MAAM/tI,EAAS//B,KAAK+/B,OACditI,EAAajtI,EAAOsC,QAAQj6B,IAAK,cACjCu/D,EAAgC,eAAdmmG,EAA6B,SAAW,MAiEhE,SAASmD,EACR3nG,EACA4nG,EACAC,EACAC,GAEA9nG,EAAW75D,GAA4B,aAAcyhK,KAAwBpD,KAAc,CAAEt4J,EAAK1S,EAAMumE,KACvG,IAAMA,EAAcsB,WAAWpC,QAASzlE,EAAK7C,KAAMuV,EAAIxT,MACtD,OAGD,MAAMoyE,EAAa/K,EAActjC,OAC3Bob,EAAckoB,EAAc/B,OAAOf,cAAezjE,EAAK7C,MACvDouK,EAAMrB,EAAWoC,mBAAoBjuH,GAS3C,GAPgC,OAA3Br+C,EAAKwnE,kBACT8J,EAAW3uE,aAAc0rK,EAAmBruK,EAAKwnE,kBAAmB+jG,GAEpEj6F,EAAW1tE,gBAAiByqK,EAAmB9C,GAI3CvrK,EAAK7C,KAAKowC,aAAc,WAC5B,OAGD,MAAMghI,EAAYvuK,EAAK7C,KAAKowC,aAAc,gBAG1C,GAAmB,gBAAdy9H,IAAgCuD,IAAcD,EAClD,OAGD,MAAMjuJ,EAAQrgB,EAAK7C,KAAKy6B,aAAc,SAChCtX,EAAStgB,EAAK7C,KAAKy6B,aAAc,UAElCvX,GAASC,GACbgxD,EAAW51B,SAAU,eAAgB,GAAIr7B,KAAWC,IAAWirJ,EAChE,GAEF,CAvGAtuI,EAAO1hC,WAAWurF,IAAK,UACrB5V,qBAAsB,CACtBr8C,KAAM,CACL31B,KAAM2lE,EACNrsC,OAAQ,CACPnY,MAAO,OAGT/qB,MAAO,CACNrB,IAAK,QACLyB,MAAS2oD,GACHosH,GAAgCpsH,GAC7BmsH,GAAoBnsH,EAAYhX,SAAU,UAG3C,QAIT6pC,qBAAsB,CACtBr8C,KAAM,CACL31B,KAAM2lE,EACN5wE,IAAK,SAENqB,MAAO,UAEP47E,qBAAsB,CACtBr8C,KAAM,CACL31B,KAAM2lE,EACNrsC,OAAQ,CACPlY,OAAQ,OAGVhrB,MAAO,CACNrB,IAAK,SACLyB,MAAS2oD,GACHosH,GAAgCpsH,GAC7BmsH,GAAoBnsH,EAAYhX,SAAU,WAG3C,QAIT6pC,qBAAsB,CACtBr8C,KAAM,CACL31B,KAAM2lE,EACN5wE,IAAK,UAENqB,MAAO,WAIT2nC,EAAO1hC,WAAWurF,IAAK,mBAAoB17E,KAAKo7D,IAC/C2nG,EAAyB3nG,EAAY,QAAS,SAAS,GACvD2nG,EAAyB3nG,EAAY,SAAU,UAAU,EAAM,IAGhEvpC,EAAO1hC,WAAWurF,IAAK,gBAAiB17E,KAAKo7D,IAC5C2nG,EAAyB3nG,EAAY,QAAS,SAAS,GACvD2nG,EAAyB3nG,EAAY,SAAU,UAAU,EAAO,GA4ClE,ECtJc,MAAMgoG,WAAyBhxI,GAI5BixI,kBAOjB,WAAAxvK,CAAag+B,EAAgByxI,GAC5B3jK,MAAOkyB,GAEP//B,KAAKuxK,kBAAoBC,CAC1B,CAKgB,OAAA/wI,GACf,MACMusI,EADShtK,KAAK+/B,OACkBsC,QAAQj6B,IAAK,cAC7C2O,EAAUi2J,EAAW2B,+BAAgC3uK,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,WAEtD,eAA3B3gC,KAAKuxK,kBACTvxK,KAAKmgC,UAAY6sI,EAAWW,cAAe52J,GAE3C/W,KAAKmgC,UAAY6sI,EAAWY,aAAc72J,EAE5C,CAYgB,OAAAkqB,CAAS18B,EAAuC,CAAC,GAChE,MAAMw7B,EAAS//B,KAAK+/B,OACd3nC,EAAQ4H,KAAK+/B,OAAO3nC,MACpB40K,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAC7CogG,EAAawkE,EAAW2B,+BAAgCv2K,EAAMoL,SAASm9B,WACvEp7B,EAAavO,OAAO62B,YAAa26E,EAAWp4D,iBAKlD,OAAM7qC,EAAW6oK,KAAQ7oK,EAAWksK,SAI7Br5K,EAAM0tC,QAAQC,IACpB,MAAM,cAAEkoI,GAAgB,GAAS1pK,EAG3BklE,EAAU9oE,MAAMrB,KAAMlH,EAAMqxE,SAChC1jE,QAAQklE,GAAUA,EAAOT,WAAW3G,aAAc2kC,KAE9CxxF,EAAag2J,EAAWa,YAC7BtoK,EACAnN,EAAMwpD,gBAAiB4mD,EAAY,MACnCxoG,KAAKuxK,kBACL,CAAEtD,kBAGH,IAAMj3J,EACL,OAAO,KAGR,MAAM06J,EAAkB3rI,EAAO2b,cAAe1qC,GAG9C,UAAYi0D,KAAUxB,EAAU,CAC/B,MAAMc,EAAcU,EAAOT,WAIrBzjD,EAAqC,cAA7BwjD,EAAYj0E,KAAKwqC,SAC9BypC,EAAYzG,UAAW4tG,GAAiB,GAAUA,EAEnD3rI,EAAOg3D,aAAc9xB,EAAQ,CAAElkD,SAChC,CAEA,MAAO,CACNyhF,aACAxxF,aACA,IAtCM,IAwCT,E,eC1GG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQsmB,OCYR,MAAMq0I,WAAyB,GAI7C,mBAAkB/uI,GACjB,MAAO,CAAE,GACV,CAKA,qBAAkBX,GACjB,MAAO,kBACR,CAKO,SAAAypI,GACN1rK,KAAK4xK,eACL5xK,KAAK6xK,mBACL7xK,KAAK8xK,oBACN,CAKQ,YAAAF,GACP,MAAMt3I,EAASt6B,KAAK+/B,OAAO3nC,MAAMkiC,OAI5BA,EAAOilD,aAAc,eACzBjlD,EAAOZ,OAAQ,aAAc,CAC5BgmD,gBAAiB,CAAE,iBAIhBplD,EAAOilD,aAAc,gBACzBjlD,EAAOZ,OAAQ,cAAe,CAC7BgmD,gBAAiB,CAAE,gBAGtB,CAKQ,gBAAAmyF,GACP,MAAM9xI,EAAS//B,KAAK+/B,OACd1hC,EAAa0hC,EAAO1hC,WACpB2uK,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAEnD/J,EAAWurF,IAAK,mBAAoB17E,KAAKo7D,IACxCA,EAAW75D,GAAqC,yBAAyB,CAAE+F,EAAK1S,EAAMumE,KACrF,IAAMA,EAAcsB,WAAW1oE,KAAMa,EAAK7C,KAAMuV,EAAIxT,MACnD,OAGD,IAAMc,EAAK7C,KAAKsO,GAAI,UAAW,gBAAmBzL,EAAK7C,KAAKsO,GAAI,UAAW,eAC1E,OAGD86D,EAAcsB,WAAWpC,QAASzlE,EAAK7C,KAAMuV,EAAIxT,MAEjD,MAAMoyE,EAAa/K,EAActjC,OAC3BhvB,EAAUsyD,EAAc/B,OAAOf,cAAezjE,EAAK7C,MACnDouK,EAAMrB,EAAWoC,mBAAoBr4J,GAEtCjU,EAAKwnE,mBACT8J,EAAWltC,SAAU,oBAAqBmnI,GAC1Cj6F,EAAW51B,SAAU,mBAAoB,OAAQ17C,EAAKwnE,qBAAuB+jG,GAC7Ej6F,EAAW11B,kBAAmB,kCAAkC,EAAM2vH,KAEtEj6F,EAAW9tC,YAAa,oBAAqB+nI,GAC7Cj6F,EAAW31B,YAAa,mBAAoB4vH,GAC7C,GACE,GAEL,CAKQ,kBAAAyD,GACP,MAAM/xI,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACf+0G,EAAUptE,EAAOotE,QACjBqO,EAAcrO,EAAQx1E,KACtBq1I,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAEnDozG,EAAYl9C,YAAa+xG,IAEzBrwK,KAAK4P,SAA4B4rG,EAAYh4G,SAAU,eAAe,CAAEgS,EAAKw/C,KAC5E,MAAM+8G,EAAiBv2D,EAAY3/D,aAAaiQ,aAAckJ,EAASpxD,QAEvE,IAAMmuK,EACL,OAGD,MAAM5wH,EAAc6rH,EAAW4B,4BAA6BmD,GAE5D,IAAM5wH,EACL,OAGD,MAAM8kB,EAAeknC,EAAQ7lC,OAAOnB,eAAgBhlB,GAE9C8kB,GAAiBA,EAAa51B,aAAc,gBAIlDj4C,EAAM63E,cAAe,CAAE2X,YAAY,IAAS7hD,IAC3CA,EAAOr/B,gBAAiB,cAAeu/D,EAAc,GACnD,GAEL,ECpGc,MAAM+rG,WAA0B,GAI9C,mBAAkBpvI,GACjB,MAAO,CAAE,GAAckuI,GAAqB,GAAYa,GAAkB5kB,GAC3E,CAKA,qBAAkB9qH,GACjB,MAAO,mBACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACLA,EAAO3nC,MAAMkiC,OAGrB4kD,SAAU,aAAc,CAC9BuE,eAAgB,eAChB/D,gBAAiB,CAAE,MAAO,MAAO,YAGlC1/E,KAAK6xK,mBAEA9xI,EAAOsC,QAAQp0B,IAAK,wBACxB8xB,EAAOksE,SAAS/9F,IAAK,iBAAkB,IAAIojK,GAAkBtxK,KAAK+/B,OAAQ,eAE1E//B,KAAKiyK,6BAEP,CAMQ,gBAAAJ,GACP,MAAM9xI,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EACXqD,EAAa0hC,EAAO1hC,WACpB2uK,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAEnD/J,EAAWurF,IAAK,gBACdlX,mBAAoB,CACpBt6E,MAAO,aACPu/B,KAAM,CAAEsuC,GAAgBlgC,YAAc8mI,GAA6B9mI,KAGrE1nC,EAAWurF,IAAK,mBACdlX,mBAAoB,CACpBt6E,MAAO,aACPu/B,KAAM,CAAEsuC,GAAgBlgC,YAAcinI,EAAWkC,cAChDrC,GAA6B9mI,GAAUA,EAAQ/qC,EAAG,mBAIrDqD,EAAWurF,IAAK,YACd17E,IAAKkiK,GAAwBpD,EAAY,aAAc,QACvD9+J,IAAKkiK,GAAwBpD,EAAY,aAAc,QACvD9+J,IAAKiiK,GAAyBnD,EAAY,eAG5C3uK,EAAWurF,IAAK,UACd1X,iBAAkB,CAClBv6C,KAAMm1I,GAA0B/sI,EAAQ,cACxC3nC,MAAO,CAAE85K,GAAansI,YAAcA,EAAOzgC,cAC1C,aACA4sK,EAAU7hI,aAAc,OAAU,CAAE+9H,IAAK8D,EAAUx3I,aAAc,aAAY,KAG9ExsB,IT5EG,SAA4B8+J,GAClC,MAAM50F,EAA6C,CAAE5iE,EAAK1S,EAAMumE,KAE/D,IAAMA,EAAcsB,WAAW1oE,KAAMa,EAAK+2E,SAAU,CAAE73E,MAAM,EAAM+nC,QAAS,UAC1E,OAID,MAAMmoI,EAAYlF,EAAWoC,mBAAoBtsK,EAAK+2E,UAGtD,IAAMq4F,IAAc7oG,EAAcsB,WAAW1oE,KAAMiwK,EAAW,CAAElwK,MAAM,IACrE,OAIDqnE,EAAcsB,WAAWpC,QAASzlE,EAAK+2E,SAAU,CAAE73E,MAAM,EAAM+nC,QAAS,UAGxE,MAGMooI,EAAa,GAHM9oG,EAAc0C,YAAammG,EAAWpvK,EAAK82E,aAGzBxS,WAAY/wB,YAGjD87H,GAQN9oG,EAAc2C,gBAAiBlpE,EAAK+2E,SAAUs4F,GAE9C9oG,EAAc+Q,uBAAwB+3F,EAAYrvK,IARjDumE,EAAcsB,WAAW5xC,OAAQj2B,EAAK+2E,SAAU,CAAE73E,MAAM,EAAM+nC,QAAS,SAQhB,EAGzD,OAAOu/B,IACNA,EAAW75D,GAAwB,iBAAkB2oE,EAAW,CAElE,CSmCSg6F,CAAmBpF,GAC3B,CAkBQ,0BAAAiF,GACP,MAAMlyI,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACfojH,EAAcz7E,EAAOotE,QAAQx1E,KAC7Bq1I,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAC7C+5J,EAAuCpiI,EAAOsC,QAAQj6B,IAAK,qBAEjEpI,KAAK4P,SACJuyJ,EACA,uBACA,CAAE3sJ,EAAK1S,KACN,MAAMuvK,EAAsB1xK,MAAMrB,KAAMwD,EAAK5C,QAAQ4mC,eACrD,IAAIsgC,EAIJ,IAAMirG,EAAoB37J,MAAOs2J,EAAWE,mBAC3C,OAOA9lG,EADItkE,EAAK06D,aACIz9B,EAAOotE,QAAQ7lC,OAAOL,aAAcnkE,EAAK06D,aAAc,IAIvDplE,EAAMoL,SAASm9B,UAAU4W,gBAGvC,MAAM5W,EAAYvoC,EAAMwpD,gBAAiBwlB,GAIzC,GAA8E,eAAzEimG,GAA2Cj1K,EAAMkiC,OAAQqG,GAA+B,CAC5F,MAAMoF,EAAS,IAAIsiE,GAAcmT,EAAYh4G,UAGvC8uK,EAAkBD,EAAoBr1K,KAC3Cu1K,GAAmBxsI,EAAOzgC,cAAe,SAAU,CAAEu5B,MAAO,SAAW0zI,KAGxEzvK,EAAK5C,QAAU6lC,EAAOpK,uBAAwB22I,EAC/C,KAGFtyK,KAAK4P,SACJuyJ,EACA,oBACA,CAAE3sJ,EAAK1S,KACe,UAAhBA,EAAKmhC,QAIV7rC,EAAM0tC,QAAQC,IACb,MAAMhf,EAAQgf,EAAO4b,cAAe7+C,EAAK5C,SAEzC,UAAYD,KAAQ8mB,EAAMsvB,WACpBp2C,EAAKsO,GAAI,UAAW,eACxBy+J,EAAWmB,8BAA+BluK,EAE5C,GACE,GAEN,E,eCpMG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQq9B,OCgBR,MAAMk1I,WAA4Bn1I,GAIhC4B,aAKA0tE,WAKGqJ,YAKAkB,aAKFh/F,SAQjB,WAAAnW,CAAaw7B,EAAgBk1I,EAAqC,IACjE5kK,MAAO0vB,GAEPv9B,KAAKi/B,aAAe,IAAI1J,GACxBv1B,KAAK2sG,WAAa,IAAI32E,GACtBh2B,KAAKg2G,YAAc,IAAIx+E,GACvBx3B,KAAKkY,SAAWlY,KAAK29B,mBAErB39B,KAAKk3G,aAAe,IAAIxD,GAAa,CACpCC,WAAY3zG,KAAKg2G,YACjB/2E,aAAcj/B,KAAKi/B,aACnBD,iBAAkBh/B,KAAK2sG,WACvBplD,QAAS,CAER6sD,cAAe,cAGfD,UAAW,SAIb,UAAYx8E,KAAQ86I,EACnBzyK,KAAKkY,SAAShK,IAAKypB,GACnB33B,KAAKg2G,YAAY9nG,IAAKypB,GAEjBA,aAAgB,IACpB33B,KAAKg2G,YAAYriF,QAASgE,EAAKzf,UAIjC,GAAKlY,KAAKg2G,YAAY19G,OAAS,EAC9B,UAAYq/B,KAAQ33B,KAAKg2G,YACnB,GAAuBr+E,KAC3BA,EAAKm+E,YAAYrmG,GAAkC,gBAAgB+F,IAClExV,KAAKk3G,aAAa/C,YAClB3+F,EAAInJ,MAAM,IAGXsrB,EAAKm+E,YAAYrmG,GAAmC,iBAAiB+F,IACpExV,KAAKk3G,aAAa9C,gBAClB5+F,EAAInJ,MAAM,KAMdrM,KAAKi+B,YAAa,CACjBlmB,IAAK,OAELxS,WAAY,CACXs5B,MAAO,CACN,KACA,wBAEDo0E,UAAW,GAGZ/6F,SAAUlY,KAAKkY,UAEjB,CAKgB,MAAAggB,GACfrqB,MAAMqqB,SAEN4G,GAAe,CACdnH,KAAM33B,OAGP,UAAY23B,KAAQ33B,KAAKg2G,YACxBh2G,KAAKi/B,aAAa/wB,IAAKypB,EAAK5gB,SAI7B/W,KAAK2sG,WAAW/8F,SAAU5P,KAAK+W,SAE/B,MAAMqf,EAAoBtzB,GAAyBA,EAAKszB,kBAKxDp2B,KAAK2sG,WAAW/6F,IAAK,aAAcwkB,GACnCp2B,KAAK2sG,WAAW/6F,IAAK,YAAawkB,GAClCp2B,KAAK2sG,WAAW/6F,IAAK,UAAWwkB,GAChCp2B,KAAK2sG,WAAW/6F,IAAK,YAAawkB,EACnC,CAKgB,OAAAnO,GACfpa,MAAMoa,UAENjoB,KAAKi/B,aAAahX,UAClBjoB,KAAK2sG,WAAW1kF,SACjB,CAKO,KAAAwX,GACNz/B,KAAKk3G,aAAatD,YACnB,EAGD,SAAS,GAAuBj8E,GAC/B,MAAO,gBAAiBA,CACzB,CClIe,MAAM,WAAsB,GAI1C,qBAAkBsK,GACjB,MAAO,eACR,CAKA,mBAAkBW,GACjB,MAAO,CAAE,GACV,CAKOuiF,aAYCutD,cAAgB,IAAIhhK,IAK5B,WAAA3P,CAAag+B,GACZlyB,MAAOkyB,GAEPA,EAAOpV,OAAOj0B,OAAQ,4BAA6B,CAClD,SACA,eACA,OAEF,CAKO,IAAA0rC,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdY,EAAYZ,EAAO3nC,MAAMoL,SAASm9B,UAClCqsI,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAEnDpI,KAAK4R,IAAK,mBAAmB,GAE7B5R,KAAK4P,SAAUmwB,EAAO3nC,MAAMoL,SAAU,UAAU,KAC/CxD,KAAK2yK,gBAAkB3F,EAAWU,QAAS/sI,EAAUuX,qBAAsB,IAG5E,MAAM06H,EAAqBr1I,GAAoBv9B,KAAK6yK,wBAAyBt1I,GAG7EwC,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,cAAe0kK,GAC/C7yI,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,cAAe0kK,EAChD,CAKO,mBAAAE,EAAqB,KAC3B9wK,EAAI,WACJyT,EAAU,kBACVs9J,EAAiB,gBACjBC,EAAe,aACfC,IAQKjzK,KAAK0yK,cAAczkK,IAAKjM,IAQ5B,EAAY,kCAAmC,CAAEA,SAGlDhC,KAAK0yK,cAAc9gK,IAAK5P,EAAM,CAC7ByT,aACAs9J,oBACAC,kBACAC,eAAgBA,GAElB,CAKQ,uBAAAJ,CAAyBt1I,GAChC,MAAMwC,EAAS//B,KAAK+/B,OACd/kC,EAAIuiC,EAAOviC,EAEXy3K,EAAezyK,KAAKkzK,uBAE1B,IAAMT,EAAan6K,OAClB,OAAO,KAGR,IAAI66K,EACJ,MAAMC,EAAmBX,EAAc,GAEvC,GAA4B,GAAvBA,EAAan6K,OAAc,CAE/B,IAAM86K,EAAiBH,aACtB,OAAOG,EAAiBL,mBAAmB,GAG5CI,EAAiBC,EAAiBL,mBAAmB,EACtD,KAAO,CACN,MAAMvqD,EAAe4qD,EAAiBL,mBAAmB,GAEzDI,EAAiB,IAAI7qD,GAAiB/qF,EAAQirF,GAC9C2qD,EAAe3/D,SAAU,EAEzB2/D,EAAensK,KAAM,SAAUzH,GAAIS,KAAM,mBAAmB2yK,GAC3D33K,EAD8E23K,EAC3E,gBACA,iBAEL,CAEA,MAAMxtD,EAAenlH,KAAKmlH,aAAeC,GAAgB7nF,EAAQ41I,GAC3D78J,EAAcm8J,EAAaz1K,KAAK,EAAIyY,gBAAuC,mBAAdA,EAA2BA,IAAeA,IAa7G,OAXA0vG,EAAan+G,KAAM,aAAcsN,OAAQgC,EAAa,aAAa,IAAK6pB,IACvEA,EAAU9I,MAAM8I,GAAaA,MAG9BglF,EAAat1G,KAAM,iBAAiB,KACnC,MAAMwjK,EAAmBZ,EAAaz1K,KAAK,EAAIg2K,qBAAuBA,EAAwC,GAAvBP,EAAan6K,UAC9Fg7K,EAAsB,IAAId,GAAqBzyI,EAAOxC,OAAQ81I,GAEpEluD,EAAanD,UAAU9pG,SAAShK,IAAKolK,EAAqB,IAGpDnuD,CACR,CAKQ,oBAAA+tD,GACP,MACMt/I,EADS5zB,KAAK+/B,OACCpV,OAAOviB,IAAK,6BAC3BjK,EAAiC,GAEvC,IAAMy1B,EAAMt7B,OAYX,OAFA,EAAY,2CAEL6F,EAGR,UAAY8B,KAAQ2zB,EACb5zB,KAAK0yK,cAAczkK,IAAKhO,GAa9B9B,EAAOyB,KAAMI,KAAK0yK,cAActqK,IAAKnI,IAZ9B,CAAE,SAAU,eAAgB,OAAQkyB,SAAUlyB,IAMnD,EAAY,mCAAoC,CAAEA,SAwBrD,OAfM9B,EAAO7F,QAYZ,EAAY,4CAGN6F,CACR,E,cCrPG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQm/B,OCiBR,MAAMi2I,WAAmB,GAIvC,mBAAkB3wI,GACjB,MAAO,CAAEovI,GAAmB1d,GAAQ4b,GAAsB,GAC3D,CAKA,qBAAkBjuI,GACjB,MAAO,YACR,ECHc,MAAMuxI,WAA2B,GAI/C,mBAAkB5wI,GACjB,MAAO,CAAE,GAAckuI,GAAqB,GAAYa,GAAkB5kB,GAC3E,CAKA,qBAAkB9qH,GACjB,MAAO,oBACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdzF,EAASyF,EAAO3nC,MAAMkiC,OAG5BA,EAAO4kD,SAAU,cAAe,CAC/BuE,eAAgB,gBAChB/D,gBAAiB,CAAE,MAAO,MAAO,YAMlCplD,EAAOwlD,eAAe,CAAEnyE,EAAS44F,KAChC,GAAK54F,EAAQ8gB,SAAU,YAAwC,gBAAzB83E,EAAgBvkG,KACrD,OAAO,CACR,IAGDhC,KAAK6xK,mBAEA9xI,EAAOsC,QAAQp0B,IAAK,uBACxB8xB,EAAOksE,SAAS/9F,IAAK,kBAAmB,IAAIojK,GAAkBtxK,KAAK+/B,OAAQ,gBAE3E//B,KAAKiyK,6BAEP,CAMQ,gBAAAJ,GACP,MAAM9xI,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EACXqD,EAAa0hC,EAAO1hC,WACpB2uK,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAEnD/J,EAAWurF,IAAK,gBACd1X,iBAAkB,CAClB95E,MAAO,cACPu/B,KAAM,CAAEsuC,GAAgBlgC,YAAcA,EAAOkY,mBAAoB,SAGnE5/C,EAAWurF,IAAK,mBACdlX,mBAAoB,CACpBt6E,MAAO,cACPu/B,KAAM,CAAEsuC,GAAgBlgC,YAAcinI,EAAWkC,c1BtE9C,SAAuCnpI,GAC7C,OAAOA,EAAO8X,uBAAwB,OAAQ,CAAEhf,MAAO,gBACtDkH,EAAOkY,mBAAoB,OAE7B,C0BmEKw1H,CAA8B1tI,GAAUA,EAAQ/qC,EAAG,mBAItDqD,EAAWurF,IAAK,YACd17E,IAAKkiK,GAAwBpD,EAAY,cAAe,QACxD9+J,IAAKkiK,GAAwBpD,EAAY,cAAe,QACxD9+J,IAAKiiK,GAAyBnD,EAAY,gBAG5C3uK,EAAWurF,IAAK,UACd1X,iBAAkB,CAClBv6C,KAAMm1I,GAA0B/sI,EAAQ,eACxC3nC,MAAO,CAAE85K,GAAansI,YAAcA,EAAOzgC,cAC1C,cACA4sK,EAAU7hI,aAAc,OAAU,CAAE+9H,IAAK8D,EAAUx3I,aAAc,aAAY,IAGjF,CAmBQ,0BAAAu3I,GACP,MAAMlyI,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACfojH,EAAcz7E,EAAOotE,QAAQx1E,KAC7Bq1I,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAC7C+5J,EAAuCpiI,EAAOsC,QAAQj6B,IAAK,qBAEjEpI,KAAK4P,SACJuyJ,EACA,uBACA,CAAE3sJ,EAAK1S,KACN,MAAMuvK,EAAsB1xK,MAAMrB,KAAMwD,EAAK5C,QAAQ4mC,eACrD,IAAIsgC,EAIJ,IAAMirG,EAAoB37J,MAAOs2J,EAAWI,kBAC3C,OAOAhmG,EADItkE,EAAK06D,aACIz9B,EAAOotE,QAAQ7lC,OAAOL,aAAcnkE,EAAK06D,aAAc,IAIvDplE,EAAMoL,SAASm9B,UAAU4W,gBAGvC,MAAM5W,EAAYvoC,EAAMwpD,gBAAiBwlB,GAIzC,GAA8E,gBAAzEimG,GAA2Cj1K,EAAMkiC,OAAQqG,GAAgC,CAC7F,MAAMoF,EAAS,IAAIsiE,GAAcmT,EAAYh4G,UAIvCkwK,EAAmBrB,EAAoBr1K,KAAK22K,GAKd,IAA9BA,EAAe/sI,YAGnBjmC,MAAMrB,KAAMq0K,EAAevjI,iBACzBxyC,SAAS2Y,GAAawvB,EAAOtgC,gBAC1B8Q,EACHy2J,EAAWoC,mBAAoBuE,MAG1BA,EAAexsI,SAAU,IAEzBwsI,IAIT7wK,EAAK5C,QAAU6lC,EAAOpK,uBAAwB+3I,EAC/C,KAGF1zK,KAAK4P,SACJuyJ,EACA,oBACA,CAAE3sJ,EAAK1S,KACe,UAAhBA,EAAKmhC,QAIV7rC,EAAM0tC,QAAQC,IACb,MAAMhf,EAAQgf,EAAO4b,cAAe7+C,EAAK5C,SAEzC,UAAYD,KAAQ8mB,EAAMsvB,WACpBp2C,EAAKsO,GAAI,UAAW,gBACxBy+J,EAAWmB,8BAA+BluK,EAE5C,GACE,GAEN,ECnMc,MAAM2zK,WAAoB,GAIxC,mBAAkBhxI,GACjB,MAAO,CAAE4wI,GAAoBlf,GAAQ4b,GAAsB,GAC5D,CAKA,qBAAkBjuI,GACjB,MAAO,aACR,ECzBc,MAAM4xI,WAA0B,GAI9C,qBAAkB5xI,GACjB,MAAO,mBACR,CAKA,mBAAkBW,GACjB,MAAO,CAAE,GACV,CAKO,+BAAAkxI,CAAiCC,GACvC,UAAY50K,KAAQ40K,EAAkBjtI,cACrC,GAAO3nC,GAAQA,EAAKoP,GAAI,UAAW,WAClC,OAAOpP,EAIT,OAAO,IACR,CAKO,4BAAA60K,CAA8BrzI,GACpC,MAAMqsI,EAAyBhtK,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAClD6rK,EAAiBtzI,EAAUE,mBAAoB6P,aAAc,WAEnE,OAAMujI,GAIDjH,EAAWY,aAAcqG,EAAer1K,QACrCq1K,EAJA,IAQT,CAQO,4BAAAC,CAA8Bn9J,GACpC,MAAMi2J,EAAyBhtK,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAGxD,MAAqB,cAAhB2O,EAAQ/U,MAAwBgrK,EAAWI,iBAAkBr2J,EAAQnY,QAClE,CAAEoD,MAAM,GAGT,IACR,ECpCc,MAAMmyK,WAAkC7zI,GAMtC,OAAAG,GACf,MAAMV,EAAS//B,KAAK+/B,OACdq0I,EAAuCr0I,EAAOsC,QAAQj6B,IAAK,qBAC3D4kK,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAGnD,IAAM23B,EAAOsC,QAAQp0B,IAAK+jK,IAIzB,OAHAhyK,KAAKmgC,WAAY,OACjBngC,KAAKxH,OAAQ,GAKd,MAAMmoC,EAAYZ,EAAO3nC,MAAMoL,SAASm9B,UAClCyZ,EAAkBzZ,EAAUuX,qBAElC,IAAMkC,EAAkB,CACvB,MAAMi6H,EAAyBD,EAAkBJ,6BAA8BrzI,GAK/E,OAHA3gC,KAAKmgC,YAAck0I,OACnBr0K,KAAKxH,QAAU67K,EAGhB,CAIAr0K,KAAKmgC,UAAY6sI,EAAWU,QAAStzH,GAE/Bp6C,KAAKmgC,UAGVngC,KAAKxH,QAAU47K,EAAkBN,gCAAiC15H,GAFlEp6C,KAAKxH,OAAQ,CAIf,CAagB,OAAAyoC,CAAS18B,EAA4C,CAAC,GACrE,MAAM,mBAAE+vK,GAAuB/vK,EAE/BvE,KAAK+/B,OAAO3nC,MAAM0tC,QAAQC,IACpB/lC,KAAKxH,MACTwH,KAAKu0K,kBAAmBxuI,GAExB/lC,KAAKw0K,kBAAmBzuI,EAAQuuI,EACjC,GAEF,CASQ,iBAAAE,CAAmBzuI,EAAgBuuI,GAC1C,MACM3zI,EADQ3gC,KAAK+/B,OAAO3nC,MACFoL,SAASm9B,UAC3B8zI,EAA2Cz0K,KAAK+/B,OAAOsC,QAAQj6B,IAAK,uBACpE4kK,EAAyBhtK,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAExD,IAAIssK,EAAgB/zI,EAAUuX,qBAE9B,MAAMy8H,EAAeF,EAAoBG,iBAAkBF,GAGtD1H,EAAWW,cAAe+G,KAC9B10K,KAAK+/B,OAAOkB,QAAS,kBAGrByzI,EAAgB/zI,EAAUuX,sBAI3B,MAAM28H,EAAoBF,GAAgB5uI,EAAOzgC,cAAe,WAEhEygC,EAAO0pB,OAAQolH,EAAmBH,GAE7BJ,GACJvuI,EAAOwX,aAAcs3H,EAAmB,KAE1C,CAQQ,iBAAAN,CAAmBxuI,GAC1B,MAAMhG,EAAS//B,KAAK+/B,OACdY,EAAYZ,EAAO3nC,MAAMoL,SAASm9B,UAClC8zI,EAA2C10I,EAAOsC,QAAQj6B,IAAK,uBAC/DgsK,EAAuCr0I,EAAOsC,QAAQj6B,IAAK,qBACjE,IACI6rK,EADAS,EAAgB/zI,EAAUuX,qBAGzBw8H,EACJT,EAAiBG,EAAkBN,gCAAiCY,IAEpET,EAAiBG,EAAkBJ,6BAA8BrzI,GACjE+zI,EAAgBT,EAAgBr1K,QAIjC61K,EAAoBK,aAAcJ,EAAeT,GAEjDluI,EAAOwX,aAAcm3H,EAAe,MACpC3uI,EAAO9/B,OAAQguK,EAChB,EC/Ic,MAAMc,WAA4B,GAIhD,mBAAkBnyI,GACjB,MAAO,CAAE,GAAYixI,GACtB,CAKA,qBAAkB5xI,GACjB,MAAO,qBACR,CAQQ+yI,kBAKR,WAAAjzK,CAAag+B,GACZlyB,MAAOkyB,GAEP//B,KAAKg1K,kBAAoB,IAAIzhJ,OAC9B,CAKO,IAAA6O,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdzF,EAASyF,EAAO3nC,MAAMkiC,OAGtBA,EAAOilD,aAAc,WAO1BjlD,EAAOZ,OAAQ,UAAW,CACzB0oD,QAAS,eAPV9nD,EAAO4kD,SAAU,UAAW,CAC3BkD,QAAS,aACTW,eAAgB,SAChBrV,SAAS,IAQX3tC,EAAOksE,SAAS/9F,IAAK,qBAAsB,IAAIimK,GAA2Bn0K,KAAK+/B,SAE/E//B,KAAK6xK,mBACL7xK,KAAKi1K,qCACLj1K,KAAKk1K,8BACN,CAMQ,gBAAArD,GACP,MAAM9xI,EAAS//B,KAAK+/B,OACdpI,EAAOoI,EAAOotE,QAAQx1E,KACtBq1I,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAC7CgsK,EAAuCr0I,EAAOsC,QAAQj6B,IAAK,qBAC3DpN,EAAI+kC,EAAO/kC,EAGjB+kC,EAAO1hC,WAAWurF,IAAK,UAAW1X,iBAAkB,CACnDv6C,KAAM5gB,GAAWq9J,EAAkBF,6BAA8Bn9J,GACjE3e,MAAO,YAIR2nC,EAAO1hC,WAAWurF,IAAK,gBAAiB1X,iBAAkB,CACzD95E,MAAO,UACPu/B,KAAM,CAAEsuC,GAAgBlgC,YACjBinI,EAAWY,aAAc3nG,EAAarnE,QAIrCmnC,EAAO8X,uBAAwB,cAH9B,OAQV9d,EAAO1hC,WAAWurF,IAAK,mBAAoB1X,iBAAkB,CAC5D95E,MAAO,UACPu/B,KAAM,CAAEsuC,GAAgBlgC,aACvB,IAAMinI,EAAWY,aAAc3nG,EAAarnE,QAC3C,OAAO,KAGR,MAAMu2K,EAAoBpvI,EAAOiY,sBAAuB,cACxDjY,EAAO2Y,kBAAmB,gBAAgB,EAAMy2H,GAEhDA,EAAkBhvI,YAAcnrC,EAAG,uBACnC,GAAmB,CAClB28B,OACA5gB,QAASo+J,EACTxvI,aAAa,IAGd,MAAMyvI,EAAanvG,EAAarnE,OAAoB87B,aAAc,OAGlE,OAAOu0H,GAAkBkmB,EAAmBpvI,EAAQ,CAAE0S,MAFxC28H,EAAWp6K,EAAG,wBAAyB,CAAEo6K,IAAep6K,EAAG,0BAEV,GAGlE,CAOQ,kCAAAi6K,GACP,MAAMl1I,EAAS//B,KAAK+/B,OACditI,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAC7CgsK,EAAuCr0I,EAAOsC,QAAQj6B,IAAK,qBAC3DitK,EAAyBt1I,EAAOksE,SAAS7jG,IAAK,mBAC9CktK,EAAwBv1I,EAAOksE,SAAS7jG,IAAK,kBAE7CmtK,EAA0D//J,IAE/D,IAAMA,EAAIjJ,OACT,OAGD,MAAM,WAAEi8F,EAAU,WAAExxF,GAAexB,EAAIjJ,OAGvC,IAAMi8F,EACL,OAGD,GAAKwkE,EAAWY,aAAcplE,GAAe,CAC5C,MAAMgtE,EAAoBpB,EAAkBN,gCAAiCtrE,GAI7E,GAAKgtE,EAGJ,YAFAx1K,KAAK80K,aAAc99J,EAAYw+J,EAIjC,CAEA,MAAMC,EAAyBz1K,KAAK40K,iBAAkBpsE,GAUjDitE,GAGJz1K,KAAK80K,aAAc99J,EAAYy+J,EAChC,EAIIJ,GACJr1K,KAAK4P,SAA+BylK,EAAwB,UAAWE,EAAuB,CAAEvoK,SAAU,QAGtGsoK,GACJt1K,KAAK4P,SAA+B0lK,EAAuB,UAAWC,EAAuB,CAAEvoK,SAAU,OAE3G,CAYO,gBAAA4nK,CAAkBb,GACxB,MAAM2B,EAAa11K,KAAKg1K,kBAAkB5sK,IAAK2rK,GAE/C,OAAO2B,EAAa,GAAQ30G,SAAU20G,GAAe,IACtD,CAoBO,YAAAZ,CAAcf,EAA4BvlE,GAChDxuG,KAAKg1K,kBAAkBpjK,IAAKmiK,EAAmBvlE,EAAQnmE,SACxD,CAMQ,4BAAA6sI,GACP,MAAMn1I,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACf40K,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAC7CgsK,EAAuCr0I,EAAOsC,QAAQj6B,IAAK,qBAEjEhQ,EAAMoL,SAASiM,GAAyB,eAAe,KACtD,MAAMq6D,EAAU1xE,EAAMoL,SAASgmE,OAAOQ,aAEtC,UAAYlkC,KAAUgkC,EAAsC,CAC3D,GAA6B,QAAxBhkC,EAAOuoB,aACX,SAGD,MAAMyO,EAAQh3B,EAAO/e,MAAM0J,MAAM4jB,UAEjC,GAAK24H,EAAWY,aAAc9wG,GAAU,CACvC,MAAM0xC,EAAU4lE,EAAkBN,gCAAiCh3G,GAEnE,IAAM0xC,EACL,OAGDzuE,EAAOotE,QAAQtvB,cAAe2wB,EAC/B,CACD,IAEF,EC/Pc,MAAMmnE,WAAuB,GAI3C,mBAAkB/yI,GACjB,MAAO,CAAEixI,GACV,CAKA,qBAAkB5xI,GACjB,MAAO,gBACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdy7E,EAAcz7E,EAAOotE,QAAQx1E,KAC7By8I,EAAuCr0I,EAAOsC,QAAQj6B,IAAK,qBAC3DpN,EAAI+kC,EAAO/kC,EAEjB+kC,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,sBAAsBqvB,IACrD,MAAM6D,EAAqCrB,EAAOksE,SAAS7jG,IAAK,sBAC1DuvB,EAAO,IAAI,GAAY4F,GA8B7B,OA5BA5F,EAAK/lB,IAAK,CACT0hG,KAAM,GAAM9E,QACZgF,SAAS,EACTN,cAAc,IAGfv7E,EAAK3wB,KAAM,OAAQ,aAAczH,GAAI6hC,EAAS,QAAS,aACvDzJ,EAAK3wB,KAAM,SAAUzH,GAAI6hC,EAAS,SAAS5oC,GAAiBwC,EAARxC,EAAW,qBAA4B,uBAE3FwH,KAAK4P,SAAU+nB,EAAM,WAAW,KAC/BoI,EAAOkB,QAAS,qBAAsB,CAAEqzI,oBAAoB,IAG5D,MAAMsB,EAAsBxB,EAAkBJ,6BAA8Bj0I,EAAO3nC,MAAMoL,SAASm9B,WAElG,GAAKi1I,EAAsB,CAC1B,MAAMT,EAAoBp1I,EAAOotE,QAAQ7lC,OAAOf,cAAeqvG,GAE/Dp6D,EAAYr8C,uBAEZq8C,EAAY11E,QAAQC,IACnBA,EAAOmB,SAAU,6BAA8BiuI,EAAoB,GAErE,CAEAp1I,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAGrB9H,CAAI,GAEb,E,eCxEG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ2F,O,eCTnB,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQA,O,eCTnB,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQA,O,eCTnB,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQA,OCCvB,SCHA,SAAwBu4I,EAAU7lJ,GAChC,OAAO,SAAS4N,EAAY5jB,GAC1B,GAAkB,MAAd4jB,EACF,OAAOA,EAET,IAAK,GAAYA,GACf,OAAOi4I,EAASj4I,EAAY5jB,GAM9B,IAJA,IAAI1hB,EAASslC,EAAWtlC,OACpBsM,EAAQorB,EAAY13B,GAAU,EAC9B8e,EAAWpgB,OAAO4mC,IAEd5N,EAAYprB,MAAYA,EAAQtM,KACa,IAA/C0hB,EAAS5C,EAASxS,GAAQA,EAAOwS,KAIvC,OAAOwmB,CACT,CACF,CDlBe,CAAe,IEU9B,SAVA,SAAiBA,EAAY5jB,GAC3B,IAAIpV,GAAS,EACTzG,EAAS,GAAYy/B,GAAcj9B,MAAMi9B,EAAWtlC,QAAU,GAKlE,OAHA,GAASslC,GAAY,SAASplC,EAAOzB,EAAK6mC,GACxCz/B,IAASyG,GAASoV,EAASxhB,EAAOzB,EAAK6mC,EACzC,IACOz/B,CACT,ECiCA,SALA,SAAay/B,EAAY5jB,GAEvB,OADW,GAAQ4jB,GAAc,GAAW,IAChCA,EAAY,GAAa5jB,EAAU,GACjD,ECnCe,MAAM87J,WAA2Bx1I,GAY/B,OAAAG,GACf,MAAMV,EAAS//B,KAAK+/B,OAEdhpB,EADyBgpB,EAAOsC,QAAQj6B,IAAK,cACxBumK,+BAAgC5uI,EAAO3nC,MAAMoL,SAASm9B,WAEjF3gC,KAAKmgC,YAAcppB,EAEbA,GAAYA,EAAQs5B,aAAc,gBAGvCrwC,KAAKxH,MAAQ,CACZ2qB,MAAOpM,EAAQ2jB,aAAc,gBAC7BtX,OAAQ,MAJTpjB,KAAKxH,MAAQ,IAOf,CAiBgB,OAAAyoC,CAAS18B,GACxB,MAAMw7B,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACf40K,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAC7C8lK,EAAelB,EAAW2B,+BAAgCv2K,EAAMoL,SAASm9B,WAE/E3gC,KAAKxH,MAAQ,CACZ2qB,MAAO5e,EAAQ4e,MACfC,OAAQ,MAGJ8qJ,GACJ91K,EAAM0tC,QAAQC,IACbA,EAAOtgC,aAAc,eAAgBlB,EAAQ4e,MAAO+qJ,GACpDnoI,EAAOr/B,gBAAiB,gBAAiBwnK,GACzClB,EAAWmB,8BAA+BD,EAAc,GAG3D,ECxDc,MAAM6H,WAA2B,GAI/C,mBAAkBnzI,GACjB,MAAO,CAAE,GACV,CAKA,qBAAkBX,GACjB,MAAO,oBACR,CAKA,WAAAlgC,CAAag+B,GACZlyB,MAAOkyB,GAEPA,EAAOpV,OAAOj0B,OAAQ,QAAS,CAC9Bs/K,WAAY,IACZC,cAAe,CACd,CACCj0K,KAAM,uBACNxJ,MAAO,KACP86G,KAAM,YAEP,CACCtxG,KAAM,qBACNxJ,MAAO,SACP86G,KAAM,UAEP,CACCtxG,KAAM,iBACNxJ,MAAO,KACP86G,KAAM,SAEP,CACCtxG,KAAM,iBACNxJ,MAAO,KACP86G,KAAM,UAEP,CACCtxG,KAAM,iBACNxJ,MAAO,KACP86G,KAAM,WAIV,CAKO,IAAAlxE,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdm2I,EAAqB,IAAIJ,GAAoB/1I,GAEnD//B,KAAKgxK,oBAAqB,cAC1BhxK,KAAKgxK,oBAAqB,eAG1BjxI,EAAOksE,SAAS/9F,IAAK,cAAegoK,GACpCn2I,EAAOksE,SAAS/9F,IAAK,cAAegoK,EACrC,CAKO,SAAAxK,GACN1rK,KAAK+wK,iBACN,CAEQ,eAAAA,GACF/wK,KAAK+/B,OAAOsC,QAAQp0B,IAAK,sBAC7BjO,KAAK+/B,OAAO3nC,MAAMkiC,OAAOZ,OAAQ,aAAc,CAAEgmD,gBAAiB,CAAE,eAAgB,mBAGhF1/E,KAAK+/B,OAAOsC,QAAQp0B,IAAK,uBAC7BjO,KAAK+/B,OAAO3nC,MAAMkiC,OAAOZ,OAAQ,cAAe,CAAEgmD,gBAAiB,CAAE,eAAgB,kBAEvF,CAOQ,mBAAAsxF,CAAqBlD,GAC5B,MAAM/tI,EAAS//B,KAAK+/B,OACditI,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAGnD23B,EAAO1hC,WAAWurF,IAAK,YAAa17E,KAAKo7D,GACxCA,EAAW75D,GAAI,0BAA2Bq+J,KAAc,CAAEt4J,EAAK1S,EAAMumE,KACpE,IAAMA,EAAcsB,WAAWpC,QAASzlE,EAAK7C,KAAMuV,EAAIxT,MACtD,OAGD,MAAMoyE,EAAa/K,EAActjC,OAC3BowI,EAAU9sG,EAAc/B,OAAOf,cAAezjE,EAAK7C,MAEzB,OAA3B6C,EAAKwnE,mBACT8J,EAAW51B,SAAU,QAAS17C,EAAKwnE,kBAAmB6rG,GACtD/hG,EAAWltC,SAAU,gBAAiBivI,KAEtC/hG,EAAW31B,YAAa,QAAS03H,GACjC/hG,EAAW9tC,YAAa,gBAAiB6vI,GAC1C,MAIFp2I,EAAO1hC,WAAWurF,IAAK,gBAAiB5V,qBAAsB,CAC7D57E,MAAO,CACN4J,KAAM8rK,EACN/2K,IAAK,iBAEN4gC,KAAMk/C,IAAA,CACL9/E,IAAK,QACLyB,MAAO,CACN,OAAUq+E,OAKb92C,EAAO1hC,WAAWurF,IAAK,mBAAoB17E,KAAKo7D,GAC/CA,EAAW75D,GAAI,2BAA4Bq+J,KAAc,CAAEt4J,EAAK1S,EAAMumE,KACrE,IAAMA,EAAcsB,WAAWpC,QAASzlE,EAAK7C,KAAMuV,EAAIxT,MACtD,OAGD,MAAMoyE,EAAa/K,EAActjC,OAC3BowI,EAAU9sG,EAAc/B,OAAOf,cAAezjE,EAAK7C,MACnD2D,EAAuB,gBAAdkqK,EAA8Bd,EAAWoC,mBAAoB+G,GAAYA,EAExD,OAA3BrzK,EAAKwnE,kBACT8J,EAAW51B,SAAU,SAAU17C,EAAKwnE,kBAAmB1mE,GAEvDwwE,EAAW31B,YAAa,SAAU76C,EACnC,MAIFm8B,EAAO1hC,WAAWurF,IAAK,UACrB5V,qBAAsB,CACtBr8C,KAAM,CACL31B,KAAoB,eAAd8rK,EAA6B,SAAW,MAC9CxyI,OAAQ,CACPnY,MAAO,OAGT/qB,MAAO,CACNrB,IAAK,eACLyB,MAAS2oD,GACHosH,GAAgCpsH,GAC7B,KAGDA,EAAYhX,SAAU,YAKjCpK,EAAO1hC,WAAWurF,IAAK,UACrB5V,qBAAsB,CACtBr8C,KAAM,CACL31B,KAAoB,eAAd8rK,EAA6B,SAAW,MAC9CxyI,OAAQ,CACPlY,OAAQ,OAGVhrB,MAAO,CACNrB,IAAK,gBACLyB,MAAS2oD,GACHosH,GAAgCpsH,GAC7B,KAGDA,EAAYhX,SAAU,YAIlC,ECnLD,MAAMisI,GAAe,CACpBvN,MAAO,GAAMr4D,gBACb6lE,OAAQ,GAAM5lE,iBACd6lE,MAAO,GAAM/lE,gBACbgmE,OAAQ,GAAMlmE,iBACdmmE,SAAU,GAAMlmE,gBAQF,MAAMmmE,WAA2B,GAI/C,mBAAkB7zI,GACjB,MAAO,CAAEmzI,GACV,CAKA,qBAAkB9zI,GACjB,MAAO,oBACR,CAMiBy0I,YAKjB,WAAA30K,CAAag+B,GACZlyB,MAAOkyB,GAEP//B,KAAK02K,YAAc32I,EAAOpV,OAAOviB,IAAK,mBACvC,CAKO,IAAAg6B,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdx7B,EAAUw7B,EAAOpV,OAAOviB,IAAK,uBAC7Bg5B,EAA8BrB,EAAOksE,SAAS7jG,IAAK,eAEzDpI,KAAKgH,KAAM,aAAczH,GAAI6hC,GAE7B,UAAYxf,KAAUrd,EACrBvE,KAAK22K,2BAA4B/0J,GAGlC5hB,KAAK42K,6BAA8BryK,EACpC,CAOQ,0BAAAoyK,CAA4B/0J,GACnC,MAAMme,EAAS//B,KAAK+/B,QACd,KAAE/9B,EAAI,MAAExJ,EAAK,KAAE86G,GAAS1xF,EAE9Bme,EAAO+E,GAAGq2E,iBAAiBjtG,IAAKlM,GAAMu7B,IACrC,MAAM44E,EAAS,IAAI,GAAY54E,GACzB6D,EAA8BrB,EAAOksE,SAAS7jG,IAAK,eACnDyuK,EAAY72K,KAAK82K,qBAAsBl1J,GAAQ,GAErD,IAAMw0J,GAAc9iE,GAWnB,MAAM,IAAI5lG,EACT,kCACAqyB,EACAne,GAeF,GAXAu0F,EAAOvkG,IAAK,CAEX6mC,MAAOo+H,EACPvjE,KAAM8iE,GAAc9iE,GACpBE,QAASqjE,EACT3jE,cAAc,IAIfiD,EAAOnvG,KAAM,aAAczH,GAAIS,MAE1B+/B,EAAOsC,QAAQp0B,IAAK,wBAA2B8oK,GAA2Bn1J,GAAW,CACzF,MAAMo1J,EAAiBj3I,EAAOsC,QAAQj6B,IAAK,uBAE3CpI,KAAK4P,SAAUumG,EAAQ,WAAW,KACjC6gE,EAAenH,UAAW7vK,KAAK02K,YAAa,GAE9C,KAAO,CACN,MAAMO,EAAsBz+K,EAAQA,EAAQwH,KAAK02K,YAAc,KAE/DvgE,EAAOnvG,KAAM,QAASzH,GAAI6hC,EAAS,QAAS81I,GAAuBD,IAEnEj3K,KAAK4P,SAAUumG,EAAQ,WAAW,KACjCp2E,EAAOkB,QAAS,cAAe,CAAE9d,MAAO8zJ,GAAuB,GAEjE,CAEA,OAAO9gE,CAAM,GAEf,CAQQ,4BAAAygE,CAA8BryK,GACrC,MAAMw7B,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EACXm8K,EAAqB5yK,EAAQgwB,MAAM3S,IAAWA,EAAOppB,QAErDo6K,EAAqBr1I,IAC1B,MAAM6D,EAA8BrB,EAAOksE,SAAS7jG,IAAK,eACnD+8G,EAAeC,GAAgB7nF,EAAQ,IACvC41I,EAAoFhuD,EAAapM,WACjGgvD,EAAkB/sK,EAAG,gBAsC3B,OApCAm4K,EAAevhK,IAAK,CACnB4hG,QAASu0D,EACTkE,aAAckL,EAAmB3+K,MACjC86G,KAAM8iE,GAAaC,OACnBnjE,cAAc,EACdz6D,MAAOz4C,KAAK82K,qBAAsBK,GAClCp9D,UAAU,EACVl7E,MAAO,yBACPk5E,UAAWgwD,EACXrgD,oBAAgB,IAGjByrD,EAAensK,KAAM,SAAUzH,GAAI6hC,EAAS,SAAS6qI,GAC/CA,GAAgBA,EAAa9oJ,MAC1B8oJ,EAAa9oJ,MAEbnjB,KAAK82K,qBAAsBK,KAGpChyD,EAAan+G,KAAM,aAAczH,GAAIS,MAErCypH,GAAmBtE,GAAc,IAAMnlH,KAAKo3K,sCAAuC7yK,EAAS68B,IAAW,CACtG22E,UAAW/8G,EAAG,qBACdg4G,KAAM,SAIPhzG,KAAK4P,SAAUu1G,EAAc,WAAW3vG,IAClC,YAAaA,EAAItS,OACnBsS,EAAItS,OAAgBm0K,WAEtBt3I,EAAOkB,QAAWzrB,EAAItS,OAAgBoiC,YAAa,CAAEniB,MAAS3N,EAAItS,OAAgB+oK,eAClFlsI,EAAOotE,QAAQx1E,KAAK8H,QACrB,IAGM0lF,CAAY,EAIpBplF,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,cAAe0kK,GAC/C7yI,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,cAAe0kK,EAChD,CAUQ,oBAAAkE,CAAsBl1J,EAA2B01J,GAAsB,GAC9E,MAAMt8K,EAAIgF,KAAK+/B,OAAO/kC,EAEtB,OAAK4mB,EAAO62B,MACJ72B,EAAO62B,MACH6+H,EACNP,GAA2Bn1J,GACxB5mB,EAAG,qBACC4mB,EAAOppB,MACXwC,EAAG,qBAAsB4mB,EAAOppB,MAAQwH,KAAK02K,aAE7C17K,EAAG,qCAGN+7K,GAA2Bn1J,GACxB5mB,EAAG,UACC4mB,EAAOppB,MACXopB,EAAOppB,MAAQwH,KAAK02K,YAEpB17K,EAAG,WAGb,CASQ,qCAAAo8K,CACP7yK,EACA68B,GAEA,MAAM,OAAErB,GAAW//B,KACbioK,EAAkB,IAAIr1I,GAEtB2kJ,EAA8BhzK,EAAQvH,KAAK4kB,GAC3Cm1J,GAA2Bn1J,GACxB,IACHA,EACH41J,eAAgB,UAIZ51J,EAAOppB,MAON,IACHopB,EACH41J,eAAgB,GAAI51J,EAAOppB,QAAUwH,KAAK02K,eARnC,IACH90J,EACH41J,eAAgB,QAUnB,UAAY51J,KAAU21J,EAA8B,CACnD,IAAIrvK,EAAgD,KAEpD,GAAK63B,EAAOsC,QAAQp0B,IAAK,wBAA2B8oK,GAA2Bn1J,GAAW,CACzF,MAAMo1J,EAAiBj3I,EAAOsC,QAAQj6B,IAAK,uBAE3CF,EAAa,CACZiD,KAAM,SACN/S,MAAO,IAAI,GAAW,CACrBqgD,MAAOz4C,KAAK82K,qBAAsBl1J,GAClCoxF,KAAM,gBACN+G,UAAU,EACVzG,KAAM,KACN+jE,QAAS,KACRL,EAAenH,UAAW7vK,KAAK02K,YAAa,KAK/C,MAAMe,EAAoB,GAAKF,EAA6B,kBAE5DrvK,EAAW9P,MAAM4O,KAAM,QAASzH,GAAI6hC,EAAS,QAASs2I,GAA6BD,GACpF,MACCvvK,EAAa,CACZiD,KAAM,SACN/S,MAAO,IAAI,GAAW,CACrBktC,YAAa,cACb2mI,aAAcrqJ,EAAO41J,eACrB/+H,MAAOz4C,KAAK82K,qBAAsBl1J,GAClCoxF,KAAM,gBACN+G,UAAU,EACVzG,KAAM,QAIRprG,EAAW9P,MAAM4O,KAAM,QAASzH,GAAI6hC,EAAS,QAAS81I,GAAuBt1J,EAAO41J,iBAGrFtvK,EAAW9P,MAAM4O,KAAM,aAAczH,GAAI6hC,EAAS,aAClD6mI,EAAgB/5J,IAAKhG,EACtB,CAEA,OAAO+/J,CACR,EAMD,SAAS8O,GAA2Bn1J,GACnC,MAAwB,WAAjBA,EAAOppB,KACf,CAKA,SAAS0+K,GAAuB1+K,GAC/B,OAASyzK,GAEO,OAAVzzK,GADsByzK,IACmBzzK,GAIhB,OALHyzK,KAK8B9oJ,QAAU3qB,CAErE,CAKA,SAASk/K,GAA6BD,GACrC,OAASxL,IAAqCwL,EAAkBpgJ,MAC/DsgJ,GAAiBT,GAAuBS,EAAvBT,CAAwCjL,IAE3D,CC9UA,MAQM2L,GAAsB,gBAQb,MAAMC,WAA2B,GAI/C,mBAAkBj1I,GACjB,MAAO,CAAE45H,GAAc,GACxB,CAKA,qBAAkBv6H,GACjB,MAAO,oBACR,CAKO,IAAAG,GACN,MAAMhB,EAA8BphC,KAAK+/B,OAAOksE,SAAS7jG,IAAK,eAC9DpI,KAAKgH,KAAM,aAAczH,GAAI6hC,GAE7BphC,KAAK83K,sBACN,CAKQ,oBAAAA,GACP,MAAM/3I,EAAS//B,KAAK+/B,OACdy7E,EAAcz7E,EAAOotE,QAAQx1E,KAC7Bq1I,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAEnDozG,EAAYl9C,YAAa+xG,IAEzBrwK,KAAK4P,SAA4B4rG,EAAYh4G,SAAU,eAAe,CAAEgS,EAAKw/C,KAE5E,IAAQA,EAASpxD,OAAwB0F,QApD3C,iOAqDG,OAGD,MAAMuyC,EAAe9b,EAAOotE,QAAQx1E,KAAKkkB,aACnCgzH,EAAYhzH,EAAa2N,UAAWwL,EAASpxD,QAC7Cm0K,EAAa/K,EAAW4B,4BAA6BC,GAC3D,IAAI7R,EAAUh9J,KAAK+/B,OAAOsC,QAAQj6B,IAAKo0J,IAAeS,wBAAyB8a,GAE/E,GAAK/a,EAKJ,YAFAA,EAAQrC,SAKT,MAAMrzF,EAASvnC,EAAOotE,QAAQ7lC,OACxB0wG,EAAa1wG,EAAOnB,eAAgB4xG,GAE1C/a,EAAUj9H,EAAOsC,QACfj6B,IAAKo0J,IACLpoC,SAAU,CACV5rG,KAAMuX,EAAOpV,OAAOviB,IAAK,oBAEzB69D,aAAc+xG,EACd72H,YAAa42H,EACbh4I,SAEAw8H,cAAe0b,GACPA,EAAiBn0K,cAAe,OAExCw4J,cAAa,IACLzgH,EAAaqK,aAAcohB,EAAOf,cAAeyxG,IAGzD7b,WAAU,IAGY,eAFF6b,EAAWt9I,aAAc,cAK7C,QAAA0gI,CAAUxnJ,GAKT4nG,EAAY11E,QAAQC,IACnBA,EAAOO,YAAasxI,GAAqBG,EAAY,IAGtDh4I,EAAOkB,QAAS,cAAe,CAAE9d,MAAOvP,GACzC,IAGFopJ,EAAQvtJ,GAAI,cAAc,KACnBsoK,EAAW1xI,SAAUuxI,KAC1Bp8D,EAAY11E,QAAQC,IACnBA,EAAOmB,SAAU0wI,GAAqBG,EAAY,IAIpD,MAAMn0K,EAA6B,gBAApBo0K,EAAWh2K,KAAyB6sK,EAAYkJ,EAE1Dn0K,EAAOumC,SAAU,WACrBqxE,EAAY11E,QAAQC,IACnBA,EAAO0Y,YAAa,SAAU76C,EAAQ,GAExC,IAGDo5J,EAAQh2J,KAAM,aAAczH,GAAIS,KAAM,GAExC,ECxHM,SAASk4K,GAA2BC,GAC1C,IAAMA,EACL,OAAO,KAGR,MAAQ,CAAEC,EAAU5vJ,GAAS2vJ,EAAU5pJ,OAAO1xB,MAAO,qBAAwB,GACvEw7K,EAAchxJ,OAAOu3F,WAAYw5D,GAEvC,OAAK/wJ,OAAOy3F,MAAOu5D,GACX,KAGD,CACN7/K,MAAO6/K,EACP7vJ,OAEF,CASO,SAAS8vJ,GAAyBC,EAA2BJ,EAA8BK,GAEjG,MAAoB,OAAfA,EACG,CACNhgL,MAAO2/K,EAAU3/K,MACjBgwB,KAAM,MAKD,CACNhwB,MAAO2/K,EAAU3/K,MAAQ+/K,EAAoB,IAC7C/vJ,KAAM,IAER,CC7CO,SAASiwJ,GAA6B14I,GAC5C,MAAM,QAAEotE,GAAYptE,EAGdg0I,EADah0I,EAAOsC,QAAQj6B,IAAK,cACFumK,+BAAgC5uI,EAAO3nC,MAAMoL,SAASm9B,WAE3F,IAAMozI,EACL,OAAO,KAGR,MAAM2E,EAAmBvrE,EAAQ7lC,OAAOf,cAAewtG,GAGvD,MAAO,CACN37K,MAAO27K,EACPp8I,KAAM+gJ,EACNC,IALuBxrE,EAAQx1E,KAAKkkB,aAAaqK,aAAcwyH,GAOjE,C,eChCI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQp7I,OCqBR,MAAMs7I,WAAkCv7I,GAItC4B,aAKA0tE,WAKAnkF,KAKTmnG,aAKA4C,eAKAC,iBAKYxc,YAKAkB,aAKF2hE,YAKjB,WAAA92K,CAAaw7B,EAAgB/U,EAAcswJ,GAC1CjrK,MAAO0vB,GACP,MAAMviC,EAAIgF,KAAKu9B,OAAQviC,EAEvBgF,KAAKi/B,aAAe,IAAI1J,GACxBv1B,KAAK2sG,WAAa,IAAI32E,GACtBh2B,KAAKwoB,KAAOA,EAEZxoB,KAAK2vH,aAAe3vH,KAAK0vK,0BAEzB1vK,KAAKuyH,eAAiBvyH,KAAKo7G,cAAepgH,EAAG,QAAU,GAAMyzG,MAAO,kBACpEzuG,KAAKuyH,eAAepnH,KAAO,SAE3BnL,KAAKwyH,iBAAmBxyH,KAAKo7G,cAAepgH,EAAG,UAAY,GAAM47B,OAAQ,mBAAoB,UAE7F52B,KAAKg2G,YAAc,IAAIx+E,GACvBx3B,KAAK64K,YAAcC,EAEnB94K,KAAKk3G,aAAe,IAAIxD,GAAa,CACpCC,WAAY3zG,KAAKg2G,YACjB/2E,aAAcj/B,KAAKi/B,aACnBD,iBAAkBh/B,KAAK2sG,WACvBplD,QAAS,CAER6sD,cAAe,cAGfD,UAAW,SAIbn0G,KAAKi+B,YAAa,CACjBlmB,IAAK,OACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,8BACA,sBAIDo0E,SAAU,MAGX/6F,SAAU,CACTlY,KAAK2vH,aACL3vH,KAAKuyH,eACLvyH,KAAKwyH,mBAGR,CAKgB,MAAAt6F,GACfrqB,MAAMqqB,SAENl4B,KAAK2sG,WAAW/8F,SAAU5P,KAAK+W,SAE/B+nB,GAAe,CAAEnH,KAAM33B,OAEvB,CAAEA,KAAK2vH,aAAc3vH,KAAKuyH,eAAgBvyH,KAAKwyH,kBAC7C50H,SAAStE,IAET0G,KAAKg2G,YAAY9nG,IAAK5U,GAGtB0G,KAAKi/B,aAAa/wB,IAAK5U,EAAEyd,QAAU,GAEtC,CAKgB,OAAAkR,GACfpa,MAAMoa,UAENjoB,KAAKi/B,aAAahX,UAClBjoB,KAAK2sG,WAAW1kF,SACjB,CAWQ,aAAAmzF,CAAe3iE,EAAe66D,EAAc/iE,EAAmB5+B,GACtE,MAAMwkG,EAAS,IAAI,GAAYn2G,KAAKu9B,QAkBpC,OAhBA44E,EAAOvkG,IAAK,CACX6mC,QACA66D,OACAE,SAAS,IAGV2C,EAAOv8E,eAAgB,CACtBr0B,WAAY,CACXs5B,MAAO0R,KAIJ5+B,GACJwkG,EAAO5kG,SAAU,WAAYhS,GAAIS,KAAM2R,GAGjCwkG,CACR,CAOQ,uBAAAu5D,GACP,MAAM10K,EAAIgF,KAAKu9B,OAAQviC,EACjB20H,EAAe,IAAInP,GAAmCxgH,KAAKu9B,OAAQ8sF,IAOzE,OALAsF,EAAal3E,MAAQz9C,EAAG,uBAAwBgF,KAAKwoB,MACrDmnG,EAAalP,UAAU7uG,IAAK,CAC3BgvE,KAAM,KAGA+uC,CACR,CAKO,OAAAhD,GACN3sH,KAAK+4K,kBAEL,UAAYC,KAAah5K,KAAK64K,YAAc,CAC3C,MAAM73D,EAAYg4D,EAAWh5K,MAG7B,GAAKghH,EAIJ,OAFAhhH,KAAK2vH,aAAa3O,UAAYA,GAEvB,CAET,CAEA,OAAO,CACR,CAQO,eAAA+3D,GACN/4K,KAAK2vH,aAAa3O,UAAY,IAC/B,CAKA,WAAWi4D,GACV,MAAM,QAAEliK,GAAY/W,KAAK2vH,aAAalP,UAEtC,OAAM1pG,EAICA,EAAQve,MAHP,IAIT,CAKA,cAAW0gL,GACV,MAAM,QAAED,GAAYj5K,KAEpB,GAAiB,OAAZi5K,EACJ,OAAO,KAGR,MAAMtjK,EAAS0R,OAAOu3F,WAAYq6D,GAElC,OAAK5xJ,OAAOy3F,MAAOnpG,GACX,KAGDA,CACR,CAMA,iBAAWwjK,GACV,MAAM,WAAED,EAAU,KAAE1wJ,GAASxoB,KAE7B,OAAoB,OAAfk5K,EACG,KAGD,GAAIA,IAAe1wJ,GAC3B,EC/Pc,MAAM4wJ,WAA4B,GAIxCjjB,SAKAyZ,MAKR,mBAAkBhtI,GACjB,MAAO,CAAE++F,GACV,CAKA,qBAAkB1/F,GACjB,MAAO,qBACR,CAKgB,OAAAha,GACfpa,MAAMoa,UAGDjoB,KAAK4vK,OACT5vK,KAAK4vK,MAAM3nJ,SAEb,CAMQ,WAAA6nJ,CAAatnJ,GACpB,MAAMuX,EAAS//B,KAAK+/B,OAEpB//B,KAAKm2J,SAAWn2J,KAAK+/B,OAAOsC,QAAQj6B,IAAK,qBAEzCpI,KAAK4vK,MAAQ,IAAMpxI,GAA4Bo6I,IAAlC,CAAiE74I,EAAOxC,OAAQ/U,EAkI/F,SAA4BuX,GAC3B,MAAM/kC,EAAI+kC,EAAO/kC,EAEjB,MAAO,CACN+yG,GAC+B,KAAzBA,EAAKkrE,QAAS1qJ,OACXvzB,EAAG,gCAGc,OAApB+yG,EAAKmrE,WACFl+K,EAAG,4CADX,EAKH,CAhJqGq+K,CAAmBt5I,IAGtH//B,KAAK4vK,MAAM13I,SAEXl4B,KAAK4P,SAAgD5P,KAAK4vK,MAAO,UAAU,KACrE5vK,KAAK4vK,MAAOjjD,YAChB5sF,EAAOkB,QAAS,cAAe,CAC9B9d,MAAOnjB,KAAK4vK,MAAOuJ,gBAGpBn5K,KAAK+vK,WAAW,GACjB,IAID/vK,KAAK4P,SAAU5P,KAAK4vK,MAAMjgD,aAAc,oBAAoB,KAC3D5vF,EAAO+E,GAAGh+B,QAAQ,IAGnB9G,KAAK4P,SAAgD5P,KAAK4vK,MAAO,UAAU,KAC1E5vK,KAAK+vK,WAAW,EAAM,IAIvB/vK,KAAK4vK,MAAMjjE,WAAW/6F,IAAK,OAAO,CAAE9O,EAAM8zB,KACzC52B,KAAK+vK,WAAW,GAChBn5I,GAAQ,IAITsH,GAAqB,CACpBluB,QAAShQ,KAAK4vK,MACdzxI,UAAW,IAAMn+B,KAAKu3G,WACtBn5E,gBAAiB,IAAM,CAAEp+B,KAAKm2J,SAAUx+H,KAAK5gB,SAC7CpH,SAAU,IAAM3P,KAAK+vK,aAEvB,CAOO,SAAAF,CAAWrnJ,GACjB,GAAKxoB,KAAKu3G,WACT,OAGKv3G,KAAK4vK,OACV5vK,KAAK8vK,YAAatnJ,GAGnB,MAAMuX,EAAS//B,KAAK+/B,OACd4vF,EAAe3vH,KAAK4vK,MAAOjgD,aAEjC3vH,KAAK4vK,MAAOnxI,wBACZz+B,KAAK4vK,MAAOmJ,kBAEN/4K,KAAKgwK,cACVhwK,KAAKm2J,SAAUjoJ,IAAK,CACnBypB,KAAM33B,KAAK4vK,MACXnoJ,SAAU,GAAwBsY,KAQpC,MAAMu5I,ECxHD,SAAuCv5I,EAAgBy4I,GAC7D,MAAMe,EAAad,GAA6B14I,GAEhD,IAAMw5I,EACL,OAAO,KAGR,MAAMC,EAAqBtB,GAC1BqB,EAAWnhL,MAAMsiC,aAAc,iBAA8B,MAG9D,OAAM8+I,EAIDA,EAAmBhxJ,OAASgwJ,EACzBgB,EASDlB,GANoBlpB,GAAkCmqB,EAAWZ,KAC3C,CAC5BnwJ,KAAM,KACNhwB,MAAO,IAAI,GAAM+gL,EAAWZ,KAAMx1J,OAGuCq1J,GAblE,IAcT,CD8F6BiB,CAA8B15I,EAAQvX,GAC3DkxJ,EAAoBJ,EAAqBA,EAAmB9gL,MAAMmhL,QAAS,GAAM,GACjFC,EEhID,SAA8C75I,EAAgBy4I,GACpE,MAAMe,EAAad,GAA6B14I,GAEhD,IAAMw5I,EACL,OAAO,KAGR,MAAMM,EAAqBzqB,GAAkCmqB,EAAWZ,KAClEmB,EAAoB5B,GAA2B30K,OAAO6e,iBAAkBm3J,EAAWZ,KAAMoB,WAAc,CAC5GvhL,MAAO,EACPgwB,KAAM,MAMP,MAAO,CACNA,KAAMgwJ,EACNwB,MALanhL,KAAKC,IAAK,GAAKw/K,GAAyBuB,EAAoBC,EAAmBtB,GAAahgL,OAMzGyhL,MAL4B,OAAfzB,EAAsBqB,EAAqB,IAO1D,CF2GwBK,CAAqCn6I,EAAQvX,GAEnEmnG,EAAalP,UAAUjoH,MAAQm3H,EAAalP,UAAU1pG,QAASve,MAAQkhL,EAElEE,GACJ5iL,OAAOsyB,OAAQqmG,EAAalP,UAAW,CACtC7nH,IAAKghL,EAAcI,MAAML,QAAS,GAClC7gL,IAAKD,KAAKshL,KAAMP,EAAcK,OAAQN,QAAS,KAIjD35K,KAAK4vK,MAAOjgD,aAAalP,UAAUa,SACnCthH,KAAK4vK,MAAOjxI,sBACb,CAOQ,SAAAoxI,CAAWE,GAAyB,GACrCjwK,KAAKgwK,eAMNhwK,KAAK4vK,MAAO3wI,aAAanJ,WAC7B91B,KAAK4vK,MAAOr9C,eAAe9yF,QAG5Bz/B,KAAKm2J,SAAUlwJ,OAAQjG,KAAK4vK,OAEvBK,GACJjwK,KAAK+/B,OAAOotE,QAAQx1E,KAAK8H,QAE3B,CAKA,cAAY83E,GACX,QAASv3G,KAAKm2J,UAAYn2J,KAAKm2J,SAASvzB,cAAgB5iI,KAAK4vK,KAC9D,CAKA,gBAAYI,GACX,QAAShwK,KAAKm2J,UAAYn2J,KAAKm2J,SAAS/zB,QAASpiI,KAAK4vK,MACvD,E,eGrMG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQtyI,OCSR,MAAM88I,WAA0B95I,GAMtC+5I,eAKAluI,QASR,WAAApqC,CAAag+B,EAAgBzE,GAC5BztB,MAAOkyB,GAEP//B,KAAKq6K,eAAiB,CACrBC,YAAY,EACZC,aAAa,GAGdv6K,KAAKmsC,QAAU,IAAIz6B,IAAK4pB,EAAOt+B,KAAKqI,IACnC,GAAKA,EAAMmxI,UACV,UAAYg7B,KAAoBnsK,EAAM+lK,cACrCprK,KAAKq6K,eAAgB7I,GAAqBnsK,EAAMrD,KAIlD,MAAO,CAAEqD,EAAMrD,KAAMqD,EAAO,IAE9B,CAKgB,OAAAo7B,GACf,MAEM1pB,EAFS/W,KAAK+/B,OACkBsC,QAAQj6B,IAAK,cACxBumK,+BAAgC3uK,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,WAEtF3gC,KAAKmgC,YAAcppB,EAEb/W,KAAKmgC,UAECppB,EAAQs5B,aAAc,cACjCrwC,KAAKxH,MAAQue,EAAQ2jB,aAAc,cAEnC16B,KAAKxH,MAAQwH,KAAKq6K,eAAgBtjK,EAAQ/U,MAJ1ChC,KAAKxH,OAAQ,CAMf,CAkBgB,OAAAyoC,CAAS18B,EAAuD,CAAC,GAChF,MAAMw7B,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACf40K,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAEnDhQ,EAAM0tC,QAAQC,IACb,MAAMy0I,EAAiBj2K,EAAQ/L,OACzB,cAAEy1K,GAAgB,GAAS1pK,EAEjC,IAAI2pK,EAAelB,EAAW2B,+BAAgCv2K,EAAMoL,SAASm9B,WAGxE65I,GAAkBx6K,KAAKy6K,uBAAwBD,EAAgBtM,KACnEluK,KAAK+/B,OAAOkB,QAAS+rI,EAAWY,aAAcM,GAAiB,kBAAoB,iBAAkB,CAAED,kBAGvGC,EAAelB,EAAW2B,+BAAgCv2K,EAAMoL,SAASm9B,aAKpE65I,GAAkBx6K,KAAKmsC,QAAQ/jC,IAAKoyK,GAAkBhkC,UAC3DzwG,EAAOr/B,gBAAiB,aAAcwnK,GAEtCnoI,EAAOtgC,aAAc,aAAc+0K,EAAgBtM,GAG/CD,GACJjB,EAAWmB,8BAA+BD,EAC3C,GAEF,CAQO,sBAAAuM,CAAwBD,EAAwBtM,GAGtD,OAFuBluK,KAAKmsC,QAAQ/jC,IAAKoyK,GAAkBpP,cAEpCj5I,SAAU+7I,EAAalsK,KAC/C,EC7HD,MAAM,gBACLiuG,GAAe,aACfC,GAAY,WACZJ,GAAU,YAAEE,GAAW,aAAED,GAAY,gBACrCI,GAAe,iBAAEC,IACd,GAoBS,GAA8D,CAE1E,UAAIsqE,GACH,MAAO,CACN14K,KAAM,SACN21G,MAAO,UACPrE,KAAMpD,GACNk7D,cAAe,CAAE,eACjB50B,WAAW,EAEb,EAGA,aAAI9mC,GACH,MAAO,CACN1tG,KAAM,YACN21G,MAAO,qBACPrE,KAAMxD,GACNs7D,cAAe,CAAE,aAAc,eAC/B76H,UAAW,yBAEb,EAGA,kBAAIoqI,GACH,MAAO,CACN34K,KAAM,iBACN21G,MAAO,qBACPrE,KAAMnD,GACNi7D,cAAe,CAAE,cACjB76H,UAAW,+BAEb,EAGA,eAAIo/D,GACH,MAAO,CACN3tG,KAAM,cACN21G,MAAO,iBACPrE,KAAMvD,GACNq7D,cAAe,CAAE,cACjB76H,UAAW,2BAEb,EAGA,cAAIq/D,GACH,MAAO,CACN5tG,KAAM,aACN21G,MAAO,sBACPrE,KAAMtD,GACNo7D,cAAe,CAAE,aAAc,eAC/B76H,UAAW,0BAEb,EAGA,mBAAIqqI,GACH,MAAO,CACN54K,KAAM,kBACN21G,MAAO,sBACPrE,KAAMlD,GACNg7D,cAAe,CAAE,cACjB76H,UAAW,gCAEb,EAGA,SAAIs8B,GACH,MAAO,CACN7qE,KAAM,QACN21G,MAAO,iBACPrE,KAAMvD,GACNq7D,cAAe,CAAE,cACjB50B,WAAW,EAEb,EAGA,QAAIvmD,GACH,MAAO,CACNjuF,KAAM,OACN21G,MAAO,aACPrE,KAAMtD,GACNo7D,cAAe,CAAE,cACjB76H,UAAW,mBAEb,GAWYsqI,GAAwC,CACpDC,KAAM7qE,GACNttF,KAAMwtF,GACN5tF,MAAO6tF,GACP2qE,OAAQhrE,GACRirE,WAAYlrE,GACZmrE,YAAajrE,GACb0qE,OAAQxqE,IAcIgrE,GAAoE,CAAE,CAClFl5K,KAAM,sBACN21G,MAAO,YACPwjE,YAAa,uBACbvnJ,MAAO,CAAE,uBAAwB,0BAC/B,CACF5xB,KAAM,uBACN21G,MAAO,aACPwjE,YAAa,mBACbvnJ,MAAO,CAAE,4BAA6B,mBAAoB,gCAoL3D,SAASwnJ,GAAkBC,GAa1B,EAAY,+CAAgDA,EAC7D,CAEA,UACCC,gBAnLD,SAA0B3wJ,GAYzB,OANyBA,EAAO4wJ,iBAAiBh3K,SAAW,IAG1DvH,KAAKw+K,GAwDR,SAA8BtzK,GAU3BA,EATyB,iBAAfA,EAEL,GAAiBA,GAOT,IAAK,GAAiBA,IALtB,CAAElG,KAAMkG,GA6ExB,SAAsBhF,EAAoCmC,GACzD,MAAMo2K,EAAqC,IAAKp2K,GAEhD,UAAYgD,KAAQnF,EACblM,OAAO6K,UAAUyG,eAAejH,KAAMgE,EAAOgD,KAClDozK,EAAepzK,GAASnF,EAAQmF,IAIlC,OAAOozK,CACR,CA5EeC,CAAa,GAAiBxzK,EAAWlG,MAAQkG,GAK/B,iBAApBA,EAAWorG,OACtBprG,EAAWorG,KAAOunE,GAAe3yK,EAAWorG,OAAUprG,EAAWorG,MAGlE,OAAOprG,CACR,CAlFuByzK,CAAqBH,KACzCz1K,QAAQy1K,GA2FX,SACC55J,GACA,oBAAEg6J,EAAmB,qBAAEC,IAEvB,MAAM,cAAEzQ,EAAa,KAAEppK,GAAS4f,EAEhC,KAAMwpJ,GAAkBA,EAAc9yK,QAAW0J,GAGhD,OAFAo5K,GAAkB,CAAE/1K,MAAOuc,KAEpB,EACD,CACN,MAAMk6J,EAAoB,CAAEF,EAAsB,aAAe,KAAMC,EAAuB,cAAgB,MAG9G,IAAMzQ,EAAc/zI,MAAMk3B,GAAeutH,EAAkB3pJ,SAAUo8B,KAqBpE,OALA,EAAY,iCAAkC,CAC7ClpD,MAAOuc,EACPm6J,eAAgB3Q,EAAcpuK,KAAKgF,GAAiB,eAATA,EAAwB,oBAAsB,0BAGnF,CAET,CAEA,OAAO,CACR,CAnI0Bg6K,CAAeR,EAAa7wJ,IAGtD,EAuKCsxJ,8BAxJD,SAAwCL,EAA8BC,GACrE,OAAKD,GAAuBC,EACpB,CACNt3K,QAAS,CACR,SAAU,YAAa,aACvB,cAAe,iBAAkB,kBACjC,QAAS,SAGAq3K,EACJ,CACNr3K,QAAS,CAAE,QAAS,SAEVs3K,EACJ,CACNt3K,QAAS,CAAE,SAAU,YAAa,eAI7B,CAAC,CACT,EAqIC23K,8BAhID,SAAwCC,GACvC,OAAKA,EAAiBluK,IAAK,sBAAyBkuK,EAAiBluK,IAAK,sBAClE,IAAKitK,IAEL,EAET,EA2HCE,oBACAr2B,gBAAe,GACf81B,iBACAK,iCCzRD,SAASkB,GAA0Bp6K,EAAcs5B,GAChD,UAAYj2B,KAASi2B,EACpB,GAAKj2B,EAAMrD,OAASA,EACnB,OAAOqD,CAGV,CCxEe,MAAMg3K,WAA0B,GAI9C,qBAAkBp6I,GACjB,MAAO,mBACR,CAKA,mBAAkBW,GACjB,MAAO,CAAE,GACV,CAaO05I,iBAKA,IAAAl6I,GACN,MAAM,gBAAEk5I,EAAe,8BAAEW,GAAkCM,GACrDx8I,EAAS//B,KAAK+/B,OACd67I,EAAsB77I,EAAOsC,QAAQp0B,IAAK,qBAC1C4tK,EAAuB97I,EAAOsC,QAAQp0B,IAAK,sBAEjD8xB,EAAOpV,OAAOj0B,OAAQ,eAAgBulL,EAA+BL,EAAqBC,IAE1F77K,KAAKs8K,iBAAmBhB,EAAiB,CACxCC,iBAAkBx7I,EAAOpV,OAAOviB,IAAK,gBACrCwzK,sBACAC,yBAGD77K,KAAK6xK,iBAAkB+J,EAAqBC,GAC5C77K,KAAKw8K,kBAGLz8I,EAAOksE,SAAS/9F,IAAK,aAAc,IAAIksK,GAAmBr6I,EAAQ//B,KAAKs8K,kBACxE,CAOQ,gBAAAzK,CAAkB+J,EAA8BC,GACvD,MAAM97I,EAAS//B,KAAK+/B,OACdzF,EAASyF,EAAO3nC,MAAMkiC,OAEtBmiJ,GDhEmCnhJ,ECgEet7B,KAAKs8K,iBD/DvD,CAAE9mK,EAAK1S,EAAMumE,KACnB,IAAMA,EAAcsB,WAAWpC,QAASzlE,EAAK7C,KAAMuV,EAAIxT,MACtD,OAID,MAAM06K,EAAWN,GAA0Bt5K,EAAKwnE,kBAA6BhvC,GACvEqhJ,EAAWP,GAA0Bt5K,EAAKunE,kBAA6B/uC,GAEvE6lB,EAAckoB,EAAc/B,OAAOf,cAAezjE,EAAK7C,MACvDm0E,EAAa/K,EAActjC,OAE5B42I,GACJvoG,EAAW9tC,YAAaq2I,EAASpsI,UAAY4Q,GAGzCu7H,GACJtoG,EAAWltC,SAAUw1I,EAASnsI,UAAY4Q,EAC3C,GAnBK,IAAoC7lB,ECiEzC,MAAMshJ,EDpCD,SAAoCthJ,GAE1C,MAAMuhJ,EAAsE,CAC3EtC,YAAaj/I,EAAOv1B,QAAQV,IAAUA,EAAMmxI,WAAanxI,EAAM+lK,cAAcj5I,SAAU,iBACvFmoJ,WAAYh/I,EAAOv1B,QAAQV,IAAUA,EAAMmxI,WAAanxI,EAAM+lK,cAAcj5I,SAAU,iBAGvF,MAAO,CAAE3c,EAAK1S,EAAMumE,KACnB,IAAMvmE,EAAKskE,WACV,OAGD,MAAMjmB,EAAcr+C,EAAK+2E,SACnBijG,EAAoB,GAAOh6K,EAAKskE,WAAW/wB,YAIjD,GAAMymI,GAKAzzG,EAAc/uC,OAAOo3C,eAAgBorG,EAAmB,cAK9D,UAAYz3K,KAASw3K,EAAoBC,EAA+B96K,MAElEqnE,EAAcsB,WAAWpC,QAASpnB,EAAa,CAAEpX,QAAS1kC,EAAMkrC,aAEpE84B,EAActjC,OAAOtgC,aAAc,aAAcJ,EAAMrD,KAAM86K,EAE/D,CAEF,CCC+BC,CAA2B/8K,KAAKs8K,kBAE7Dv8I,EAAOotE,QAAQ/vB,mBAAmB3tE,GAAI,uBAAwBgtK,GAC9D18I,EAAOj9B,KAAKs6E,mBAAmB3tE,GAAI,uBAAwBgtK,GAItDb,IACJthJ,EAAOZ,OAAQ,aAAc,CAAEgmD,gBAAiB,eAGhD3/C,EAAOj9B,KAAK0kF,iBAAiB/3E,GAAwB,iBAAkBmtK,EAAsB,CAAE5vK,SAAU,SAGrG6uK,IACJvhJ,EAAOZ,OAAQ,cAAe,CAAEgmD,gBAAiB,eAGjD3/C,EAAOj9B,KAAK0kF,iBAAiB/3E,GAAI,cAAemtK,EAAsB,CAAE5vK,SAAU,QAEpF,CAKQ,eAAAwvK,GACP,MAAMz8I,EAAS//B,KAAK+/B,OACdv8B,EAAWu8B,EAAO3nC,MAAMoL,SAExBwpK,EAAajtI,EAAOsC,QAAQj6B,IAAK,IACjC0kC,EAAY,IAAIp7B,IAAK1R,KAAKs8K,iBAAkBt/K,KAAKqI,GAAS,CAAEA,EAAMrD,KAAMqD,MAG9E7B,EAASyiC,mBAAmBF,IAC3B,IAAI0qC,GAAU,EAEd,UAAY3qC,KAAUtiC,EAASgmE,OAAOQ,aACrC,GAAoB,UAAflkC,EAAO36B,MAAmC,aAAf26B,EAAO36B,MAA8C,cAAvB26B,EAAOuoB,aAA+B,CACnG,IAAIt3C,EAAyB,UAAf+uB,EAAO36B,KAAmB26B,EAAOre,SAAS4sB,UAAavO,EAAO/e,MAAM0J,MAAM4jB,UAMxF,GAJKt9B,GAAWA,EAAQxI,GAAI,UAAW,cAAiBwI,EAAQ6vB,WAAa,IAC5E7vB,EAAUA,EAAQowB,SAAU,KAGvB6lI,EAAWU,QAAS32J,GACzB,SAGD,MAAMimK,EAAajmK,EAAQ2jB,aAAc,cAEzC,IAAMsiJ,EACL,SAGD,MAAMC,EAAuBnwI,EAAU1kC,IAAK40K,GAEtCC,GAAyBA,EAAqB7R,cAAcj5I,SAAYpb,EAAqB/U,QAClG+jC,EAAOr/B,gBAAiB,aAAcqQ,GACtC05D,GAAU,EAEZ,CAGD,OAAOA,CAAO,GAEhB,E,eClJG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQnzC,OCcR,MAAM4/I,WAAqB,GAIzC,mBAAkBt6I,GACjB,MAAO,CAAEy5I,GACV,CAKA,qBAAkBp6I,GACjB,MAAO,cACR,CAiBA,gCAAWk7I,GACV,MAAMniL,EAAIgF,KAAK+/B,OAAO/kC,EAEtB,MAAO,CACN,YAAaA,EAAG,aAChB,aAAcA,EAAG,cACjB,UAAWA,EAAG,WACd,kBAAmBA,EAAG,mBACtB,aAAcA,EAAG,cACjB,qBAAsBA,EAAG,sBACzB,iBAAkBA,EAAG,kBACrB,sBAAuBA,EAAG,uBAE5B,CAKO,IAAAonC,GACN,MAAMC,EAAUriC,KAAK+/B,OAAOsC,QACtBk0H,EAAgBv2J,KAAK+/B,OAAOpV,OAAOviB,IAAK,kBAAqB,GAG7Dg1K,EAAgBC,GAFuBh7I,EAAQj6B,IAAK,qBAGvCk0K,iBAClBt8K,KAAKm9K,8BAGN,UAAYG,KAAeF,EAC1Bp9K,KAAKo7G,cAAekiE,GAGrB,MAAMC,EAAmBF,GACxB,IACI9mB,EAAcxwJ,OAAQ,MACtBw2K,GAAML,8BAA+B75I,IAEzCriC,KAAKm9K,8BAGN,UAAYK,KAAkBD,EAC7Bv9K,KAAKy9K,gBAAiBD,EAAgBJ,EAExC,CAKQ,eAAAK,CAAiBD,EAA8CJ,GACtE,MAAM7mL,EAAUyJ,KAAK+/B,OAAO+E,GAAGq2E,iBAE/B5kH,EAAQ2X,IAAKsvK,EAAex7K,MAAMu7B,IACjC,IAAImgJ,EAEJ,MAAM,YAAEvC,EAAW,MAAEvnJ,EAAK,MAAE+jF,GAAU6lE,EAChCG,EAAc/pJ,EAClB7tB,QAAQo5E,GAAYi+F,EAAc7oJ,MAAM,EAAIvyB,UAAY47K,GAAoB57K,KAAWm9E,MACvFniF,KAAK6gL,IACL,MAAM1nE,EAAS5/G,EAAQwnB,OAAQ8/J,GAM/B,OAJKA,IAAe1C,IACnBuC,EAAgBvnE,GAGVA,CAAM,IAGVviF,EAAMt7B,SAAWqlL,EAAYrlL,QACjCikL,GAAMnB,iBAAkB,CAAEj0D,SAAUq2D,IAGrC,MAAMr4D,EAAeC,GAAgB7nF,EAAQ+qF,IACvCw1D,EAAkB34D,EAAapM,WAC/BglE,EAAuBD,EAAgBz6D,UAiD7C,OA/CAgC,GAAsBF,EAAcw4D,EAAa,CAAEv0D,qCAAqC,IAExF00D,EAAgBlsK,IAAK,CACpB6mC,MAAOulI,GAAwBrmE,EAAO+lE,EAAejlI,OACrD5Z,MAAO,KACP20E,SAAS,IAGVuqE,EAAqBnpK,OAAQ,SAC7BmpK,EAAqBnsK,IAAK,CACzB6mC,MAAOk/D,IAGRmmE,EAAgB92K,KAAM,QAASsN,OAAQqpK,EAAa,QAAQ,IAAKM,KAChE,MAAMr5K,EAAQq5K,EAAMh5D,UAAW,IAE/B,OAASrgH,EAAQ,EAAM84K,EAAepqE,KAAOqqE,EAAa/4K,GAAQ0uG,IAAI,IAGvEwqE,EAAgB92K,KAAM,SAAUsN,OAAQqpK,EAAa,QAAQ,IAAKM,KACjE,MAAMr5K,EAAQq5K,EAAMh5D,UAAW,IAE/B,OAAO+4D,GAAwBrmE,EAAS/yG,EAAQ,EAAM84K,EAAejlI,MAASklI,EAAa/4K,GAAQ6zC,MAAQ,IAG5GqlI,EAAgB92K,KAAM,QAASsN,OAAQqpK,EAAa,QAAQ,IAAKM,IAAWA,EAAM5mJ,KAAM,MAExFymJ,EAAgB92K,KAAM,SACpBsN,OAAQqpK,EAAa,QAAQ,IAAKM,IAAWA,EAAM5mJ,KAAM,IAAa,8BAA2B,IAEnGymJ,EAAgBruK,GAAI,WAAW,KACxBkuK,EAAYtmJ,MAAM,EAAIknF,UAAYA,IAGvC4G,EAAa1L,QAAU0L,EAAa1L,OAFpCikE,EAAe9sK,KAAM,UAGtB,IAGDu0G,EAAan+G,KAAM,aACjBsN,OAAQqpK,EAAa,aAAa,IAAKzR,IAAgBA,EAAW70I,KAAM,MAI1Er3B,KAAK4P,SAAUu1G,EAAc,WAAW,KACvCnlH,KAAK+/B,OAAOotE,QAAQx1E,KAAK8H,OAAO,IAG1B0lF,CAAY,GAErB,CAKQ,aAAA/J,CAAe8iE,GACtB,MAAML,EAAaK,EAAal8K,KAEhChC,KAAK+/B,OAAO+E,GAAGq2E,iBAAiBjtG,IAAK0vK,GAAoBC,IAActgJ,IACtE,MAAM6D,EAA6BphC,KAAK+/B,OAAOksE,SAAS7jG,IAAK,cACvDuvB,EAAO,IAAI,GAAY4F,GAa7B,OAXA5F,EAAK/lB,IAAK,CACT6mC,MAAOylI,EAAavmE,MACpBrE,KAAM4qE,EAAa5qE,KACnBE,SAAS,EACTN,cAAc,IAGfv7E,EAAK3wB,KAAM,aAAczH,GAAI6hC,EAAS,aACtCzJ,EAAK3wB,KAAM,QAASzH,GAAI6hC,EAAS,SAAS5oC,GAASA,IAAUqlL,IAC7DlmJ,EAAKloB,GAAI,UAAWzP,KAAKm+K,gBAAgBn3K,KAAMhH,KAAM69K,IAE9ClmJ,CAAI,GAEb,CAEQ,eAAAwmJ,CAAiBn8K,GACxBhC,KAAK+/B,OAAOkB,QAAS,aAAc,CAAEzoC,MAAOwJ,IAC5ChC,KAAK+/B,OAAOotE,QAAQx1E,KAAK8H,OAC1B,EAMD,SAAS49I,GACR/hJ,EACAwwI,GAEA,UAAYzmK,KAASi2B,EAGfwwI,EAAQzmK,EAAMsyG,SAClBtyG,EAAMsyG,MAAQm0D,EAAQzmK,EAAMsyG,QAI9B,OAAOr8E,CACR,CAKA,SAASsiJ,GAAoB57K,GAC5B,MAAO,cAAeA,GACvB,CAKA,SAASg8K,GAAwBI,EAAmCC,GACnE,OAASD,EAAgBA,EAAgB,KAAO,IAAOC,CACxD,CCnLA,SAASC,GAA4B3zJ,GACpC,OAAOA,EAAO3tB,KAAKiD,GAAQ,EAAUA,GAASA,EAAK+B,KAAO/B,GAC3D,CC/Ce,MAAMs+K,WAAsB,GAI1C,qBAAkBt8I,GACjB,MAAO,eACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OAEpBA,EAAOksE,SAAS/9F,IAAK,SAAU,IAAIgzB,GAAcnB,IACjDA,EAAOksE,SAAS/9F,IAAK,UAAW,IAAIgzB,GAAcnB,GACnD,ECfc,MAAMy+I,WAAiB,GAIrC,qBAAkBv8I,GACjB,MAAO,UACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdxC,EAASwC,EAAOxC,OAChBviC,EAAI+kC,EAAO/kC,EAEXyjL,EAAoD,OAA9BlhJ,EAAOjL,oBAA+B,GAAMs/E,OAAS,GAAMC,QACjF6sE,EAAqD,OAA9BnhJ,EAAOjL,oBAA+B,GAAMu/E,QAAU,GAAMD,OAEzF5xG,KAAK2+K,cAAe,SAAU3jL,EAAG,mBAAqByjL,GACtDz+K,KAAK2+K,cAAe,UAAW3jL,EAAG,mBAAqB0jL,EACxD,CAKQ,aAAAC,CAAer5I,EAAmCmT,EAAe66D,GACxE,MAAMvzE,EAAS//B,KAAK+/B,OAEpBA,EAAO+E,GAAGq2E,iBAAiBjtG,IAAKo3B,GAAa,KAC5C,MAAMyzE,EAAa/4G,KAAKo7G,cAAe,GAAY91E,EAAamT,EAAO66D,GAMvE,OAJAyF,EAAWnnG,IAAK,CACf4hG,SAAS,IAGHuF,CAAU,IAGlBh5E,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,WAAao3B,GAAa,IAClDtlC,KAAKo7G,cAAe,GAA+B91E,EAAamT,EAAO66D,IAEhF,CAKQ,aAAA8H,CACPG,EACAj2E,EACAmT,EACA66D,GAEA,MAAMvzE,EAAS//B,KAAK+/B,OACdqB,EAAUrB,EAAOksE,SAAS7jG,IAAKk9B,GAC/B3N,EAAO,IAAI4jF,EAAax7E,EAAOxC,QAerC,OAbA5F,EAAK/lB,IAAK,CACT6mC,QACA66D,SAGD37E,EAAK3wB,KAAM,aAAczH,GAAI6hC,EAAS,aAGtCphC,KAAK4P,SAAU+nB,EAAM,WAAW,KAC/BoI,EAAOkB,QAASqE,GAChBvF,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAGrB9H,CACR,EC1Ec,MAAMinJ,GAIZC,cAKAC,iBAKAC,WAKAC,aAKAC,gBAKAC,YAKAC,aAKAC,cAgBR,WAAAr9K,CACCy0C,EACAjyC,GAEAvE,KAAK6+K,cAAgBroI,EACrBx2C,KAAK8+K,iBAAmBtoI,EAAa9b,aAAc,cACnD16B,KAAK++K,WAAkC,WAArBx6K,EAAQiiB,UAC1BxmB,KAAKg/K,eAAiBz6K,EAAQmjC,YAC9B1nC,KAAKi/K,gBAAkBlvJ,GAASxrB,EAAQ86K,gBAAkB,IAC1Dr/K,KAAKk/K,cAAgB36K,EAAQ+6K,WAC7Bt/K,KAAKm/K,eAAiB56K,EAAQg7K,YAC9Bv/K,KAAKo/K,gBAAkB76K,EAAQi7K,YAChC,CAgBA,YAAc/rJ,CACb+iB,EACAjyC,GAKA,OAAO,GAHQ,IAAIvE,KAAMw2C,EAAcjyC,GACdzD,OAAOC,YAGjC,CAKA,EAAUD,OAAOC,YAChB,MAAM0+K,EAAkC,GAExC,UAAY,KAAEtgL,KAAUugL,GAA0B1/K,KAAK2/K,gBAAiB3/K,KAAK++K,WAAa,UAAY,YAAe,CACpH,MAAMntE,EAASzyG,EAAKu7B,aAAc,cAGlC,GAAKk3E,EAAS5xG,KAAK8+K,iBAAmB,CAErC,IAAM9+K,KAAKm/K,aACV,MAIDn/K,KAAK8+K,iBAAmBltE,CACzB,SAEUA,EAAS5xG,KAAK8+K,iBAAmB,CAE1C,IAAM9+K,KAAKo/K,cACV,SAID,IAAMp/K,KAAK++K,WAAa,CACvBU,EAAY7/K,KAAMT,GAElB,QACD,CACD,KAEK,CAEJ,IAAMa,KAAKk/K,YAAc,CAExB,GAAKl/K,KAAKo/K,cAAgB,CAEpBK,EAAYnnL,eACTmnL,EACPA,EAAYnnL,OAAS,GAGtB,KACD,CAEA,QACD,CAGA,GAAK0H,KAAKi/K,gBAAgB5nJ,MAAM2xB,GAAQ7pD,EAAKu7B,aAAcsuB,KAAWhpD,KAAK6+K,cAAcnkJ,aAAcsuB,KACtG,KAEF,CAGKy2H,EAAYnnL,eACTmnL,EACPA,EAAYnnL,OAAS,SAGhB6G,CACP,CACD,CAKQ,aAAAwgL,GACP,OAAK3/K,KAAKg/K,aACFh/K,KAAK6+K,cAGN7+K,KAAK++K,WACX/+K,KAAK6+K,cAAc3nK,YACnBlX,KAAK6+K,cAAcp2J,eACrB,EAWM,SAAUi3J,GAChBvgL,EACAqnB,EAAoC,WAEpC,MAAMo/E,EAAyB,WAAbp/E,EACZo5J,EAA4C,GAClD,IAAI5rE,EAAW,KAEf,KAAQ6rE,GAAiB1gL,IAAS,CACjC,IAAI2gL,EAAqB,KAEzB,GAAK9rE,EAAW,CACf,MAAM+rE,EAAa5gL,EAAKu7B,aAAc,cAChCslJ,EAAqBhsE,EAASt5E,aAAc,cAI7CqlJ,EAAaC,EACjBJ,EAAuBI,GAAuBhsE,EAGrC+rE,EAAaC,GACtBF,EAAqBF,EAAuBG,GAC5CH,EAAsBtnL,OAASynL,GAI/BD,EAAqB9rE,CAEvB,MAEM,CAAE70G,OAAM60G,WAAU8rE,sBAExB9rE,EAAW70G,EACXA,EAAOymG,EAAYzmG,EAAK+X,YAAc/X,EAAKspB,eAC5C,CACD,CAOO,MAAMw3J,GACJC,UAKR,WAAAn+K,CAAao+K,GACZngL,KAAKkgL,UAAYC,CAClB,CAOA,CAASr/K,OAAOC,YACf,OAAO2+K,GAA0B1/K,KAAKkgL,UAAW,UAClD,ECtOM,MAAME,GAOZ,WAAc9+K,GACb,OAAOoL,GACR,EAoBM,SAASmzK,GAAiB1gL,GAChC,QAASA,GAAQA,EAAKoP,GAAI,YAAepP,EAAKkxC,aAAc,aAC7D,CAYO,SAASgwI,GACfC,EACA/7K,EAEI,CAAC,GAEL,MAAO,IACHg8K,GAAmBD,EAAU,IAAK/7K,EAASiiB,UAAW,gBACtD+5J,GAAmBD,EAAU,IAAK/7K,EAASiiB,UAAW,YAE3D,CAcO,SAAS+5J,GACfD,EACA/7K,EAGI,CAAC,GAEL,MAAMqhG,EAAiC,WAArBrhG,EAAQiiB,UAEpBoN,EAAQjzB,MAAMrB,KAAM,IAAIs/K,GAAY0B,EAAU,IAChD/7K,EACHmjC,YAAak+D,EACb05E,YAAY,EACZD,eAAgB,gBAGjB,OAAOz5E,EAAYhyE,EAAQA,EAAMroB,SAClC,CAqBO,SAASi1K,GAAcF,EAAmB/7K,GAChD,MAAMk8K,EAAiB,IAAI7B,GAAY0B,EAAU,CAChDhB,YAAY,EACZD,eAAgB,cACb96K,IAGEm8K,EAAgB,IAAI9B,GAAY0B,EAAU,CAC/ChB,YAAY,EACZD,eAAgB,WAChB33I,aAAa,EACblhB,UAAW,aACRjiB,IAGJ,MAAO,IACH5D,MAAMrB,KAAMmhL,GAAiBl1K,aAC7Bm1K,EAEL,CAQO,SAASC,GAAwBC,GAMvC,OALwBhC,GAAWnrJ,MAAOmtJ,EAAW,CACpDtB,YAAY,EACZD,eAAgB,cAQlB,CAOO,SAASwB,GAAuBD,GAOtC,OANoBhC,GAAWnrJ,MAAOmtJ,EAAW,CAChDp6J,UAAW,UACX84J,YAAY,EACZD,eAAgB,cAQlB,CASO,SAASyB,GACf1pC,EACA7yI,EAAoC,CAAC,GAErC6yI,EAASrnH,GAASqnH,GAElB,MAAMooC,GAAsC,IAAvBj7K,EAAQw8K,WACvBC,EAAY,IAAIjtK,IAEtB,UAAY84D,KAASuqE,EACpB,UAAY6pC,KAAaZ,GAAsBxzG,EAAO,CAAE2yG,iBACvDwB,EAAU9yK,IAAK+yK,GAIjB,OAAOC,GAAYF,EACpB,CAQO,SAASG,GAAgC/pC,GAC/CA,EAASrnH,GAASqnH,GAElB,MAAM4pC,EAAY,IAAIjtK,IAEtB,UAAY84D,KAASuqE,EACpB,UAAY6pC,KAAaT,GAAc3zG,GACtCm0G,EAAU9yK,IAAK+yK,GAIjB,OAAOC,GAAYF,EACpB,CAUO,SAASI,GACfR,EACA76I,GAEA,MAAMqxG,EAASmpC,GAAmBK,EAAW,CAAEp6J,UAAW,YACpD3mB,EAAKugL,GAAY9+K,OAEvB,UAAYurE,KAASuqE,EACpBrxG,EAAOtgC,aAAc,aAAc5F,EAAIgtE,GAGxC,OAAOuqE,CACR,CAWO,SAASiqC,GACfT,EACAjzG,EACA5nC,GAEA,MAAMxgC,EAAsC,CAAC,EAE7C,UAAcxO,EAAKyB,KAAWm1E,EAAYv9B,gBACpCr5C,EAAIy3D,WAAY,UACpBjpD,EAAYxO,GAAQyB,GAItB,MAAM4+I,EAASmpC,GAAmBK,EAAW,CAAEp6J,UAAW,YAE1D,UAAYqmD,KAASuqE,EACpBrxG,EAAOy3D,cAAej4F,EAAYsnE,GAGnC,OAAOuqE,CACR,CAWO,SAASkqC,GACflqC,EACArxG,GACA,OAAE2H,EAAM,SAAE6zI,EAAW,GAA+C,CAAC,GAErEnqC,EAASrnH,GAASqnH,GAGlB,MAAM4pC,EAAYtzI,EAASozI,GAAiC1pC,GAAWA,EAEvE,UAAYvqE,KAASm0G,EAAY,CAChC,MAAMQ,EAAc30G,EAAMnyC,aAAc,cAAiB6mJ,EAEpDC,EAAc,EAClBC,GAAsB50G,EAAO9mC,GAE7BA,EAAOtgC,aAAc,aAAc+7K,EAAa30G,EAElD,CAEA,OAAOm0G,CACR,CAwEO,SAASS,GACfrqC,EACArxG,GAEAqxG,EAASrnH,GAASqnH,GAGlB,UAAYvqE,KAASuqE,EACfvqE,EAAMt+D,GAAI,UAAW,aACzBw3B,EAAOkb,OAAQ4rB,EAAO,aAKxB,UAAYA,KAASuqE,EACpB,UAAY/oF,KAAgBwe,EAAMjjC,mBAC5BykB,EAAaG,WAAY,SAC7BzoB,EAAOr/B,gBAAiB2nD,EAAcwe,GAKzC,OAAOuqE,CACR,CAQO,SAASsqC,GAAkBtqC,GACjC,IAAMA,EAAO9+I,OACZ,OAAO,EAGR,MAAMqpL,EAAcvqC,EAAQ,GAAI18G,aAAc,cAE9C,QAAMinJ,IAIEvqC,EAAO//G,MAAMp3B,GAAQA,EAAKy6B,aAAc,eAAkBinJ,GACnE,CAgGO,SAAST,GAA+B9pC,GAC9C,OAAOz2I,MAAMrB,KAAM83I,GACjBrxI,QAAQ8mE,GAAiC,eAAxBA,EAAMv2E,KAAKwqC,WAC5Bjf,MAAM,CAAElmB,EAAGhD,IAAOgD,EAAEiJ,MAASjM,EAAEiM,OAClC,CAUO,SAASg9K,GAAwBxpL,GACvC,MAAMgiD,EAAkBhiD,EAAMoL,SAASm9B,UAAUuX,qBAEjD,OAAMkC,GAIDhiD,EAAMkiC,OAAOi3C,SAAUn3B,IAAqBhiD,EAAMkiC,OAAOizC,QAASnzB,GAC/DA,EAJA,IAQT,CAUO,SAASynI,GAAyBh1G,EAAgBvyC,GACxD,OAAOA,EAAOq4C,WAAY9F,EAAMjuE,OAAmB,aAAgB07B,EAAOq4C,WAAY9F,EAAO,WAAcvyC,EAAOi3C,SAAU1E,EAC7H,CAKO,SAASi1G,GAAoBC,GACnC,MAAmB,YAAZA,GAAsC,kBAAZA,CAClC,CAKA,SAASC,GACRn1G,EACAc,EACA5nC,GAaA,OAXyBw6I,GAAmB5yG,EAAa,CAAEnnD,UAAW,YAWhDxnB,MAAO4F,MAASioE,EAAMjoE,MACpCy8K,GAAqBx0G,EAAOc,EAAa5nC,GAG1C,EACR,CC/jBe,MAAMk8I,WAA0B3hJ,GAI7B4hJ,WASjB,WAAAngL,CAAag+B,EAAgBoiJ,GAC5Bt0K,MAAOkyB,GAEP//B,KAAKkiL,WAAaC,CACnB,CAKgB,OAAA1hJ,GACfzgC,KAAKmgC,UAAYngC,KAAKuhC,eACvB,CAQgB,OAAAN,GACf,MAAM7oC,EAAQ4H,KAAK+/B,OAAO3nC,MACpBg/I,EAASgrC,GAAuBhqL,EAAMoL,SAASm9B,WAErDvoC,EAAM0tC,QAAQC,IACb,MAAMs8I,EAAgB,GAGjBX,GAAkBtqC,KAAaupC,GAAwBvpC,EAAQ,KAE3C,WAAnBp3I,KAAKkiL,YACTG,EAAcziL,QAAS0hL,GAAclqC,EAAQrxG,IAK9Cs8I,EAAcziL,QAASwhL,GAAqBhqC,EAAQ,GAAKrxG,KAKjC,WAAnB/lC,KAAKkiL,WACTG,EAAcziL,QAAS0hL,GAAclqC,EAAQrxG,EAAQ,CAAE2H,QAAQ,KAE/D20I,EAAcziL,QDuPZ,SACNw3I,EACArxG,GAKA,MAAMi7I,EAAYF,GAHlB1pC,EAASrnH,GAASqnH,IAIZ3qE,EAAU,IAAI14D,IAEduuK,EAAkBzpL,KAAKD,OAAQooL,EAAUhkL,KAAK6vE,GAASA,EAAMnyC,aAAc,iBAC3E6nJ,EAAe,IAAI7wK,IAGzB,UAAYm7D,KAASm0G,EACpBuB,EAAa3wK,IAAKi7D,EAAO+xG,GAAWnrJ,MAAOo5C,EAAO,CAAE0yG,aAAa,KAGlE,UAAY1yG,KAASm0G,EAAY,CAChC,GAAKv0G,EAAQx+D,IAAK4+D,GACjB,SAGDJ,EAAQv+D,IAAK2+D,GAEb,MAAM20G,EAAc30G,EAAMnyC,aAAc,cAAiB,EAEzD,GAAK8mJ,EAAc,EAClBC,GAAsB50G,EAAO9mC,OAD9B,CAOA,GAAK8mC,EAAMnyC,aAAc,eAAkB4nJ,EAAkB,CAC5D,MAAME,EAAeR,GAAwBn1G,EAAO01G,EAAan6K,IAAKykE,GAAS9mC,GAG/E,UAAY08I,KAAeD,EAC1B/1G,EAAQv+D,IAAKu0K,GAId,GAAKD,EAAalqL,OACjB,QAEF,CAEAytC,EAAOtgC,aAAc,aAAc+7K,EAAa30G,EAjBhD,CAkBD,CAEA,OAAOq0G,GAAYz0G,EACpB,CC3S4Bi2G,CAAwBtrC,EAAQrxG,IAKzD,UAAY8mC,KAASw1G,EAAgB,CAEpC,IAAMx1G,EAAMx8B,aAAc,YACzB,SAGD,MAAMsyI,EAAoB/D,GAAWnrJ,MAAOo5C,EAAO,CAAEyyG,YAAY,IAE5DqD,GACJ58I,EAAOtgC,aAAc,WAAYk9K,EAAkBjoJ,aAAc,YAAcmyC,EAEjF,CAEA7sE,KAAK4iL,kBAAmBP,EAAe,GAEzC,CAOQ,iBAAAO,CAAmBP,GAC1BriL,KAAK4Q,KAA0C,eAAgBswK,GAAY,IAAIntK,IAAKsuK,IACrF,CAOQ,aAAA9gJ,GAEP,IAAI61G,EAASgrC,GAAuBpiL,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,WAC3D6hD,EAAa40D,EAAQ,GAGzB,IAAM50D,EACL,OAAO,EAIR,GAAwB,YAAnBxiF,KAAKkiL,WACT,OAAO,EAIR,GAAKR,GAAkBtqC,KAAaupC,GAAwBvpC,EAAQ,IACnE,OAAO,EAGRA,EAAS0pC,GAAiC1pC,GAC1C50D,EAAa40D,EAAQ,GAGrB,MAAMyrC,EAAcjE,GAAWnrJ,MAAO+uD,EAAY,CAAE88F,YAAY,IAEhE,QAAMuD,GAIDA,EAAYnoJ,aAAc,aAAgB8nD,EAAW9nD,aAAc,WAKzE,EAMD,SAAS0nJ,GAAuBzhJ,GAC/B,MAAMy2G,EAASz2I,MAAMrB,KAAMqhC,EAAU6rC,qBAC/Bs2G,EAAyB1rC,EAAOnyB,WAAWp4C,IAAUgzG,GAAiBhzG,KAM5E,OAJgC,GAA3Bi2G,IACJ1rC,EAAO9+I,OAASwqL,GAGV1rC,CACR,CC5Ie,MAAM2rC,WAAoBziJ,GAIxBn1B,KAgBC63K,mBAQjB,WAAAjhL,CAAag+B,EAAgB50B,EAAgB5G,EAAoC,CAAC,GACjFsJ,MAAOkyB,GAEP//B,KAAKmL,KAAOA,EAEZnL,KAAKgjL,mBAAqBz+K,EAAQ0+K,WAAa,CAC9CzD,cAAc,EACdD,aAAa,EACbF,eAAgB,SACb,CACL,CAKgB,OAAA5+I,GACfzgC,KAAKxH,MAAQwH,KAAK4jJ,YAClB5jJ,KAAKmgC,UAAYngC,KAAKuhC,eACvB,CAagB,OAAAN,CAAS18B,EAAoF,CAAC,GAC7G,MAAMnM,EAAQ4H,KAAK+/B,OAAO3nC,MACpBoL,EAAWpL,EAAMoL,SACjB0/K,EAAsBtB,GAAwBxpL,GAE9Cg/I,EAASz2I,MAAMrB,KAAMkE,EAASm9B,UAAU6rC,qBAC5CzmE,QAAQ8mE,GAASz0E,EAAMkiC,OAAOo3C,eAAgB7E,EAAO,aAAgBg1G,GAAyBh1G,EAAOz0E,EAAMkiC,UAGvG6oJ,OAAiC,IAAvB5+K,EAAQw8I,YAA4Bx8I,EAAQw8I,WAAa/gJ,KAAKxH,MAE9EJ,EAAM0tC,QAAQC,IACb,GAAKo9I,EAAU,CACd,MAAMC,EAAYhsC,EAAQA,EAAO9+I,OAAS,GAGpC+qL,EAAa9C,GAAmB6C,EAAW,CAAE58J,UAAW,YACxD67J,EAAgB,GAEjBgB,EAAW/qL,OAAS,GACxB+pL,EAAcziL,QAASwhL,GAAqBiC,EAAY,GAAKt9I,IAI9Ds8I,EAAcziL,QAAS6hL,GAAsBrqC,EAAQrxG,IAGrDs8I,EAAcziL,QF2UX,SAAgCwjL,EAAoBr9I,GAC1D,MAAMs8I,EAAgB,GAGtB,IAAIiB,EAAgBj8J,OAAOC,kBAkD3B,UAAY,KAAEnoB,KAAUugL,GAA0B0D,EAAUlsK,YAAa,WAAc,CAEtF,MAAM06F,EAASzyG,EAAKu7B,aAAc,cAGlC,GAAe,GAAVk3E,EACJ,MAIIA,EAAS0xE,IAEbA,EAAgB1xE,GAKjB,MAAM2xE,EAAY3xE,EAAS0xE,EAE3Bv9I,EAAOtgC,aAAc,aAAc89K,EAAWpkL,GAC9CkjL,EAAcziL,KAAMT,EACrB,CAEA,OAAOkjL,CACR,CEzZ2BmB,CAAuBJ,EAAWr9I,IAEzD/lC,KAAK4iL,kBAAmBP,EACzB,UAEYa,GAAuB1/K,EAASm9B,UAAUwU,cAAiB0qI,GAAiBzoC,EAAQ,IAAQ,CACvG,MAAMirC,EAAgB7B,GAAc0C,GAAuB9rC,EAAQ,GAAKp3I,KAAKgjL,oBAE7E,UAAYn2G,KAASw1G,EACpBt8I,EAAOy3D,cAAe,IAClBj5F,EAAQk/K,qBACX1B,SAAU/hL,KAAKmL,MACb0hE,GAGJ7sE,KAAK4iL,kBAAmBP,EACzB,KAEK,CACJ,MAAMA,EAAgB,GAEtB,UAAYx1G,KAASuqE,EAEpB,GAAMvqE,EAAMx8B,aAAc,YAiBzB,UAAYlxC,KAAQ2hL,GAAiCj0G,EAAO,CAAEk0G,YAAY,IACpE5hL,EAAKu7B,aAAc,aAAgB16B,KAAKmL,OAC5C46B,EAAOy3D,cAAe,IAClBj5F,EAAQk/K,qBACX1B,SAAU/hL,KAAKmL,MACbhM,GAEHkjL,EAAcziL,KAAMT,SAtBhB0tE,EAAMt+D,GAAI,UAAW,aAAgBszK,GAAyBh1G,EAAOz0E,EAAMkiC,SAChFyL,EAAOkb,OAAQ4rB,EAAO,YAGvB9mC,EAAOy3D,cAAe,IAClBj5F,EAAQk/K,qBACXC,WAAY,EACZC,WAAYvD,GAAY9+K,OACxBygL,SAAU/hL,KAAKmL,MACb0hE,GAEHw1G,EAAcziL,KAAMitE,GAiBtB7sE,KAAK4iL,kBAAmBP,EACzB,IAEF,CAOQ,iBAAAO,CAAmBP,GAC1BriL,KAAK4Q,KAAoC,eAAgBswK,GAAY,IAAIntK,IAAKsuK,IAC/E,CAOQ,SAAAz+B,GACP,MAAMjjH,EAAY3gC,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,UACvCy2G,EAASz2I,MAAMrB,KAAMqhC,EAAU6rC,qBAErC,IAAM4qE,EAAO9+I,OACZ,OAAO,EAGR,UAAYu0E,KAASuqE,EACpB,GAAKvqE,EAAMnyC,aAAc,aAAgB16B,KAAKmL,KAC7C,OAAO,EAIT,OAAO,CACR,CAOQ,aAAAo2B,GACP,MAAMnpC,EAAQ4H,KAAK+/B,OAAO3nC,MACpBkiC,EAASliC,EAAMkiC,OACfqG,EAAYvoC,EAAMoL,SAASm9B,UAE3By2G,EAASz2I,MAAMrB,KAAMqhC,EAAU6rC,qBAErC,IAAM4qE,EAAO9+I,OACZ,OAAO,EAIR,GAAK0H,KAAKxH,MACT,OAAO,EAGR,UAAYq0E,KAASuqE,EACpB,GAAK98G,EAAOo3C,eAAgB7E,EAAO,aAAgBg1G,GAAyBh1G,EAAOvyC,GAClF,OAAO,EAIT,OAAO,CACR,EC7Mc,MAAMspJ,WAAyBtjJ,GAI5B4hJ,WAQjB,WAAAngL,CAAag+B,EAAgBvZ,GAC5B3Y,MAAOkyB,GAEP//B,KAAKkiL,WAAa17J,CACnB,CAKgB,OAAAia,GACfzgC,KAAKmgC,UAAYngC,KAAKuhC,eACvB,CAYgB,OAAAN,EACf,gCAAE4iJ,GAAkC,GAAyD,CAAC,GAE9F,MAAMzrL,EAAQ4H,KAAK+/B,OAAO3nC,MACpBuoC,EAAYvoC,EAAMoL,SAASm9B,UAC3B0hJ,EAAgC,GAEtCjqL,EAAM0tC,QAAQC,IACb,MAAM,aAAEm1F,EAAY,YAAE6nC,GAAgB/iK,KAAK8jL,yBAA0BnjJ,EAAWkjJ,GAE1EE,EAAc7oD,EAAaxgG,aAAc,eAAkB,EAC3DspJ,EAAajhB,EAAYroI,aAAc,cACvCupJ,EAAgBlhB,EAAYroI,aAAc,cAEhD,GAAKqpJ,GAAeC,EAAa,CAChC,MAAME,GH0C2B5D,EG1CoBvd,EH2CjDpiK,MAAMrB,KAAM,IAAIs/K,GAAY0B,EAAU,CAC5C95J,UAAW,UACXg5J,cAAc,MG3CZ6C,EAAcziL,QAAS0hL,GAAc,CAAEve,KAAgBmhB,GAA2Bn+I,EAAQ,CACzFw7I,SAAUwC,EAAcC,EAGxBt2I,OAAQq2I,EAAcC,IAExB,CHkCI,IAA8B1D,EGhClC,GAAKuD,EAAkC,CACtC,IAAIM,EAAqCxjJ,EAEpCA,EAAUwU,cACdgvI,EAAMp+I,EAAO6b,gBAAiB7b,EAAO0b,YACpC1b,EAAOub,iBAAkB45E,EAAc,OACvCn1F,EAAOub,iBAAkByhH,EAAa,MAKxC3qK,EAAM4nG,cAAemkF,EAAK,CAAEjkF,wBAAyBv/D,EAAUwU,cAI/D,MAAMivI,EAAyBD,EAAIzsI,kBAAmB94C,OAGhDsY,EAAcktK,EAAuBltK,YAE3CmrK,EAAcziL,KAAMwkL,GAEfltK,GAAeA,IAAgB6rJ,GAAe7rJ,EAAYwjB,aAAc,eAAkBupJ,GAC9F5B,EAAcziL,QAASyhL,GAAqBnqK,EAAaktK,EAAwBr+I,GAEnF,MACCs8I,EAAcziL,QAASyhL,GAAqBte,EAAa7nC,EAAcn1F,IAGxE/lC,KAAK4iL,kBAAmBP,EAAe,GAEzC,CAOQ,iBAAAO,CAAmBP,GAC1BriL,KAAK4Q,KAAyC,eAAgBswK,GAAY,IAAIntK,IAAKsuK,IACpF,CAOQ,aAAA9gJ,GACP,MAAMnpC,EAAQ4H,KAAK+/B,OAAO3nC,MACpBuoC,EAAYvoC,EAAMoL,SAASm9B,UAC3BuiJ,EAAsBtB,GAAwBxpL,GAEpD,GAAKuoC,EAAUwU,aAAe+tI,EAAsB,CACnD,MAAM5jI,EAAiB4jI,GAAuBviJ,EAAUE,mBAAoBjiC,OAE5E,IAAMihL,GAAiBvgI,GACtB,OAAO,EAGR,MAAM+kI,EAAiC,YAAnBrkL,KAAKkiL,WACxB5iI,EAAe72B,gBACf62B,EAAepoC,YAEhB,IAAMmtK,EACL,OAAO,EAGR,GAAK3C,GAAkB,CAAEpiI,EAAgB+kI,IACxC,OAAO,CAET,KAAO,CACN,MAAM3uB,EAAe/0H,EAAU+W,kBACzB+9G,EAAgB90H,EAAUE,mBAIhC,GAAK60H,EAAa92J,SAAW62J,EAAc72J,OAC1C,OAAO,EAGR,IAAMihL,GAAiBnqB,EAAa92J,QACnC,OAAO,CAET,CAEA,OAAO,CACR,CAUQ,wBAAAklL,CACPnjJ,EACAkjJ,GAEA,MACMX,EAAsBtB,GADd5hL,KAAK+/B,OAAO3nC,OAE1B,IAAI8iI,EAAc6nC,EAElB,GAAKpiI,EAAUwU,aAAe+tI,EAAsB,CACnD,MAAM5jI,EAAiB4jI,GAAuBviJ,EAAUE,mBAAoBjiC,OACtE0lL,EAAe3D,GAAwBrhI,GAErB,YAAnBt/C,KAAKkiL,YACTnf,EAAczjH,EAWb47E,EATIopD,IAAiBT,EASNjF,GAAWnrJ,MAAO6rB,EAAgB,CAAEggI,YAAY,EAAMC,aAAa,IAEnEjgI,EAAe72B,kBAI/ByyG,EAAe57E,EACfyjH,EAAczjH,EAAepoC,YAE/B,MACCgkH,EAAev6F,EAAUE,mBAAoBjiC,OAC7CmkK,EAAcpiI,EAAU+W,kBAAmB94C,OAG5C,MAAO,CACNs8H,eACA6nC,cAEF,EC1Mc,MAAMwhB,WAAyBjkJ,GAI5B4hJ,WAQjB,WAAAngL,CAAag+B,EAAgBvZ,GAC5B3Y,MAAOkyB,GAEP//B,KAAKkiL,WAAa17J,CACnB,CAKgB,OAAAia,GACfzgC,KAAKmgC,UAAYngC,KAAKuhC,eACvB,CAQgB,OAAAN,GACAjhC,KAAK+/B,OAEb3nC,MAAM0tC,QAAQC,IACpB,MAAMs8I,EAAgBjB,GAAqBphL,KAAKwkL,iBAAkBz+I,GAElE/lC,KAAK4iL,kBAAmBP,EAAe,GAEzC,CAOQ,iBAAAO,CAAmBP,GAC1BriL,KAAK4Q,KAAyC,eAAgBswK,GAAY,IAAIntK,IAAKsuK,IACpF,CAOQ,aAAA9gJ,GACP,MAAMZ,EAAY3gC,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,UACvCksC,EAAQ7sE,KAAKwkL,iBAEnB,OAAO7jJ,EAAUwU,aAChB0qI,GAAiBhzG,KAChB8zG,GAAwB9zG,EAC3B,CAKQ,cAAA23G,GACP,MACMllI,EADMt/C,KAAK+/B,OAAO3nC,MAAMoL,SACHm9B,UAAUE,mBAAoBjiC,OAEzD,MAA4B,UAAnBoB,KAAKkiL,WAAyB5iI,EAAiBA,EAAepoC,WACxE,ECtEc,MAAMutK,WAAkB,GAItC,qBAAkBxiJ,GACjB,MAAO,WACR,CAOO,8BAAAk/I,CAAgC/pC,GACtC,OAAO+pC,GAAgC/pC,EACxC,CAOO,sBAAAupC,CAAwBC,GAC9B,OAAOD,GAAwBC,EAChC,CAOO,eAAAf,CAAiB1gL,GACvB,OAAO0gL,GAAiB1gL,EACzB,CAQO,+BAAA2hL,CAAiC1pC,EAA8B7yI,EAAoC,CAAC,GAC1G,OAAOu8K,GAAiC1pC,EAAQ7yI,EACjD,CAKO,kBAAAu9K,CAAoBC,GAC1B,OAAOD,GAAoBC,EAC5B,EC3DM,SAAS2C,GAAYvjI,GAC3B,OAAOA,EAAY5yC,GAAI,UAAW,OAAU4yC,EAAY5yC,GAAI,UAAW,KACxE,CAOO,SAASo2K,GAAgBxjI,GAC/B,OAAOA,EAAY5yC,GAAI,UAAW,KACnC,CAoEO,SAASq2K,GACf7+I,EACA6rE,EACAzmG,EACAtL,EAAKglL,GAA6B15K,EAAMymG,IAGxC,OAAO7rE,EAAO2X,uBAAwBonI,GAA+B35K,GAAQ,KAAM,CAClF6B,SAAU,EAAI4kG,EAAS,IAAM,IAC7B/xG,MAEF,CAOO,SAASklL,GACfh/I,EACA6rE,EACA/xG,GAGA,OAAOkmC,EAAO2X,uBAAwB,KAAM,KAAM,CACjD1wC,UAAY,EAAI4kG,EAAS,GAAM,IAAM,IACrC/xG,MAEF,CAOO,SAASilL,GAA+B35K,GAC9C,MAAe,YAARA,GAA8B,kBAARA,EAA2B,KAAO,IAChE,CAOO,SAAS05K,GAA6B15K,EAAiBymG,GAC7D,MAAO,QAASzmG,KAAUymG,GAC3B,CC1HO,SAASozE,GACfv9J,EACAw9J,GAEA,MAAMnvB,EAAeruI,EAAS6sB,WAE9B,GAAMurI,GAAiB/pB,GAMhB,CACN,IAAIqqB,EAAWrqB,EAQf,UAAY,KAAE32J,KAAUugL,GAA0BS,EAAU,YAG3D,GAFAA,EAAWhhL,EAEN8lL,EAAeh3K,IAAKkyK,GACxB,OAIF8E,EAAerzK,IAAKkkJ,EAAcqqB,EACnC,KAxBwC,CACvC,MAAMlgL,EAAOwnB,EAAS4sB,UAEjBwrI,GAAiB5/K,IACrBglL,EAAerzK,IAAK3R,EAAMA,EAE5B,CAmBD,CCeO,SAASilL,KACf,MAAO,CAAE1vK,EAAK1S,EAAMumE,KACnB,MAAM,OAAEtjC,EAAM,OAAEzL,GAAW+uC,EAE3B,IAAMvmE,EAAKskE,WACV,OAGD,MAAMxzC,EAAQjzB,MAAMrB,KAAMwD,EAAKskE,WAAW/wB,SAAU,CAAExD,SAAS,KAC7D9sC,QAAU9F,GAA2Bq6B,EAAOo3C,eAAgBzxE,EAAM,gBAEpE,IAAM2zB,EAAMt7B,OACX,OAGD,MAAMqrL,EAAavD,GAAY9+K,OACzBoiL,EFpBD,SAAoBpD,GAC1B,IAAI1uE,EAAS,EACThzG,EAAS0hL,EAAS1hL,OAEtB,KAAQA,GAAS,CAEhB,GAAK+lL,GAAgB/lL,GACpBgzG,QACM,CAEN,MAAMnpF,EAAoB7pB,EAAwB6pB,gBAQ7CA,GAAmBk8J,GAAgBl8J,IACvCmpF,GAEF,CAEAhzG,EAASA,EAAOA,MACjB,CAEA,OAAOgzG,CACR,CEPqBuzE,CAAWriL,EAAK+2E,UACnC,IAAIkoG,EAAWj/K,EAAK+2E,SAASj7E,QAAUkE,EAAK+2E,SAASj7E,OAAO2P,GAAI,UAAW,MAAS,WAAa,WAGjG,MAAM62K,EAAoBxxJ,EAAO,GAAI8G,aAAc,YAE9C0qJ,IACJrD,EAAWqD,GAGZ,MAAM7/K,EAAa,CAClBo+K,aACAD,aACA3B,YAGD,UAAY9hL,KAAQ2zB,EAEb3zB,EAAKowC,aAAc,eACxBtK,EAAOy3D,cAAej4F,EAAYtF,GAI/B2zB,EAAMt7B,OAAS,GAUds7B,EAAO,GAAI8G,aAAc,eAAkBn1B,EAAWo+K,YAC1Dt6G,EAAcmc,iBAAkB5xD,EAAO,GAEzC,CAEF,CASO,SAASyxJ,KACf,MAAO,CAAE7vK,EAAK1S,EAAMumE,KACnB,IAAMA,EAAcsB,WAAW1oE,KAAMa,EAAK+2E,SAAU,CAAE73E,MAAM,IAC3D,OAGD,MAAMoyE,EAAa,IAAIi0B,GAAcvlG,EAAK+2E,SAASr2E,UAEnD,UAAY8U,KAAS3X,MAAMrB,KAAMwD,EAAK+2E,SAAS/yC,eACxC69I,GAAgBrsK,IAAYosK,GAAYpsK,IAC7C87D,EAAWnuE,OAAQqS,EAErB,CAEF,CA8MO,SAASgtK,GACfC,EACAC,EACAptL,GACA,aAAEqtL,GAA6C,CAAC,GAEhD,MAAM5yG,EAgVP,SAAmC0yG,GAClC,MAAO,CAAEpmL,EAAYwrE,KACpB,MAAMn5D,EAAS,GAGf,UAAYw/B,KAAiBu0I,EACvBpmL,EAAKkxC,aAAcW,IACvBx/B,EAAO5R,KAAM,aAAcoxC,KAI7B,QAAMx/B,EAAOkF,OAAOhH,IAA4C,IAAnCi7D,EAAW1oE,KAAM9C,EAAMuQ,OAIpD8B,EAAO5T,SAAS8R,GAASi7D,EAAWpC,QAASppE,EAAMuQ,MAE5C,EAAI,CAEb,CAnWkBg2K,CAA0BH,GAE3C,MAAO,CAAE/vK,EAAK1S,EAAMumE,KACnB,MAAM,OAAEtjC,EAAM,OAAEuhC,EAAM,WAAEqD,GAAetB,EAEjCi3G,EAAWx9K,EAAK7C,KAEtB,IAAMslL,EAAepzJ,SAAUrvB,EAAKurD,cACnC,OAID,IAAMwkB,EAAUytG,EAAU31G,GACzB,OAKD,MAAMxpB,EA2FD,SAAgCpqC,EAAkBuwD,EAAgBlvE,GACxE,MAAMgvE,EAAahvE,EAAMspD,cAAe3qC,GAClCw5C,EAAY+W,EAAOH,YAAaC,GAAa9xB,aAEnD,OAAOib,EAAUxkB,IAAIuI,UACtB,CAhGsBqxI,CAAuBrF,EAAUh5G,EAAQlvE,GAG7DwtL,GAA4BzkI,EAAapb,EAAQuhC,GA4PnD,SAA8BnmB,EAA0BizB,GACvD,IAAIz2B,EAAuDwD,EAAYviD,OAEvE,KAAQ++C,EAAiBpvC,GAAI,qBAAwB,CAAE,KAAM,KAAM,MAAO4jB,SAAUwrB,EAAiB37C,OAAS,CAC7G,MAAM2mB,EAAgBg1B,EAAiB/+C,OAEvCw1E,EAAWtzB,OAAQszB,EAAW1yB,cAAeP,GAAexD,GAE5DA,EAAmBh1B,CACpB,CACD,CAnQEk9J,CAAqB1kI,EAAapb,GAGlC,MAAMwqB,EAkLR,SACC+vH,EACAn/H,EACAqkI,EACAz/I,GACA,aAAE0/I,IAEF,IAAIl1H,EAAYxqB,EAAO2b,cAAeP,GAGtC,IAAMw/H,GAAwBL,GAC7B,OAAO/vH,EAGR,UAAYu1H,KAAYN,EAAa,CACpC,GAAuB,cAAlBM,EAASC,MACb,SAID,MAAM//F,EAAgB8/F,EAASxgL,cAAeygC,EAAQu6I,EAAU,CAAEmF,iBAElE,IAAMz/F,EACL,SAiBD,GAdAjgD,EAAO2Y,kBAAmB,kBAAkB,EAAMsnC,GAE7C8/F,EAASE,4BAA8BF,EAASE,2BAA4B1F,GAChFv6I,EAAOrgC,OAAQqgC,EAAOub,iBAAkBH,EAAa,GAAK6kC,IAE1DjgD,EAAOrgC,OAAQ6qD,EAAU9/B,MAAOu1D,GAEhCz1B,EAAYxqB,EAAO0b,YAClB1b,EAAOyb,qBAAsBwkC,GAC7BjgD,EAAOwb,oBAAqBJ,MAKxB2kI,EAASG,uBAAyBH,EAASI,eAChD,SAGD,MAAM5iI,EAAUwiI,EAASG,qBAAsBlgJ,EAAQu6I,EAAU,CAAEmF,iBAEnE1/I,EAAO2Y,kBAAmB,mBAAmB,EAAM4E,GAG9CwiI,EAASI,eAAgB5F,GAC7B/vH,EAAYxqB,EAAO2a,KAAM6P,EAAWjN,IAGpCiN,EAAYxqB,EAAO2a,KAAM3a,EAAO2b,cAAeskC,GAAiB1iC,GAEhEiN,EAAYxqB,EAAO0b,YAClB8O,EAAU9/B,MACVsV,EAAOwb,oBAAqBJ,IAG/B,CAEA,OAAOoP,CACR,CAjPoB41H,CAA4B7F,EAAUn/H,EAAaqkI,EAAYz/I,EAAQ,CAAE0/I,kBAqQ7F,SACCnF,EACA/vH,EACAi1H,EACAz/I,GAEA,IAAMu6I,EAASjwI,aAAc,cAC5B,OAGD,MAAM+1I,EAAiB9F,EAAS5lJ,aAAc,cAC9C,IAAI2rJ,EAAsC/F,EAE1C,QAAU1uE,EAASw0E,EAAgBx0E,GAAU,EAAGA,IAAW,CAC1D,MAAM00E,EAAsBvB,GAAuBh/I,EAAQ6rE,EAAQy0E,EAAgB3rJ,aAAc,eAC3F6rJ,EAAkB3B,GAAmB7+I,EAAQ6rE,EAAQy0E,EAAgB3rJ,aAAc,aAEzF,UAAYorJ,KAAYN,EAEF,QAAlBM,EAASC,OAAqC,QAAlBD,EAASC,QACvCM,EAAgBh2I,aAAcy1I,EAAS90I,gBAEvC80I,EAASU,uBACRzgJ,EACAsgJ,EAAgB3rJ,aAAcorJ,EAAS90I,eACrB,QAAlB80I,EAASC,MAAkBQ,EAAkBD,GAQhD,GAHA/1H,EAAYxqB,EAAO2a,KAAM6P,EAAW+1H,GACpC/1H,EAAYxqB,EAAO2a,KAAM6P,EAAWg2H,GAErB,GAAV30E,EACJ,MAOD,GAJAy0E,EAAkBzH,GAAWnrJ,MAAO4yJ,EAAiB,CAAE9G,aAAa,KAI9D8G,EACL,KAEF,CACD,CA/SEI,CAAmBnG,EAAU/vH,EAAWi1H,EAAYz/I,EAAQ,CAE9D,CA6CO,SAAS2gJ,GACfnB,GACA,aAAEE,GAA6C,CAAC,GAEhD,MAAO,CAAEx/G,GAAgBlgC,aAExB,IAAM4gJ,GAAyB1gH,EAAcs/G,GAC5C,OAAO,KAGR,IAAME,EACL,OAAO1/I,EAAO8X,uBAAwB,OAAQ,CAAEhf,MAAO,4BAIxD,MAAMsiB,EAAcpb,EAAO8X,uBAAwB,KAInD,OAFA9X,EAAO2Y,kBAAmB,qCAAqC,EAAMyC,GAE9DA,CAAW,CAEpB,CAuEA,SAASykI,GAA4BzkI,EAA0BizB,EAA4B9M,GAE1F,KAAQnmB,EAAYviD,OAAQ2P,GAAI,qBAAwB4yC,EAAYviD,OAAQgyC,kBAAmB,oBAC9FwjC,EAAWtzB,OAAQszB,EAAW1yB,cAAeP,GAAeA,EAAYviD,QAIzE,MAAMgoL,EAAsC,GAG5CC,EAAwBzyG,EAAW5yB,qBAAsBL,GAAcnM,UAAW,CAAExuB,UAAW,cAG/FqgK,EAAwBzyG,EAAWzyB,cAAeR,GAAcnM,aAEhE,UAAYi2B,KAAU27G,EACrBxyG,EAAWnuE,OAAQglE,GAGpB,SAAS47G,EAAwBC,GAChC,UAAY,KAAE7mL,KAAU6mL,EAAa,CAEpC,GAAK7mL,EAAKsO,GAAI,YAAe+4D,EAAOnB,eAAgBlmE,GACnD,MAGIA,EAAKsO,GAAI,YAAetO,EAAK2wC,kBAAmB,mBACpDg2I,EAAgBhnL,KAAMK,EAExB,CACD,CACD,CA8JA,SAAS0mL,GACR1mL,EACAslL,EACAnuC,EAAsBipC,GAAsBpgL,IAE5C,IAAM4/K,GAAiB5/K,GACtB,OAAO,EAGR,UAAYouD,KAAgBpuD,EAAK2pC,mBAEhC,IAAKykB,EAAaG,WAAY,gBAKxB+2H,EAAepzJ,SAAUk8B,GAC9B,OAAO,EAIT,OAAO+oF,EAAO9+I,OAAS,CACxB,C,eC5tBI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQglC,O,eCTnB,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQA,OAAvB,MCwEMypJ,GAAuB,CAAE,WAAY,aAAc,cAgB1C,MAAMC,WAAoB,GAIvBC,oBAA+C,GAKhE,qBAAkBhlJ,GACjB,MAAO,aACR,CAKA,mBAAkBW,GACjB,MAAO,CAAEugH,GAAO/G,GAAQqoC,GAAW13B,GACpC,CAKA,WAAAhrJ,CAAag+B,GACZlyB,MAAOkyB,GAEPA,EAAOpV,OAAOj0B,OAAQ,mBAAmB,EAC1C,CAKO,IAAA0rC,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACf8uL,EAAannJ,EAAOpV,OAAOviB,IAAK,mBAEtC,GAAK23B,EAAOsC,QAAQp0B,IAAK,qBAOxB,MAAM,IAAIP,EAAe,wBAAyB1N,KAAM,CAAEmnL,eAAgB,sBAG3E/uL,EAAMkiC,OAAO4kD,SAAU,YAAa,CAAEQ,gBAAiBqnG,KAElDG,GACJ9uL,EAAMkiC,OAAOZ,OAAQ,aAAc,CAAEupD,kBAAmB,cACxD7qF,EAAMkiC,OAAOZ,OAAQ,SAAU,CAAEupD,kBAAmB,cACpD7qF,EAAMkiC,OAAOZ,OAAQ,eAAgB,CAAEupD,kBAAmB,eAE1D7qF,EAAMkiC,OAAO4kD,SAAU,WAAY,CAClCuE,eAAgB,SAChBR,kBAAmB,cAIrB,UAAY1sE,KAAawwK,GACxB3uL,EAAMkiC,OAAO2lD,uBAAwB1pE,EAAW,CAC/C6wK,eAAe,IAKjBrnJ,EAAOksE,SAAS/9F,IAAK,eAAgB,IAAI60K,GAAahjJ,EAAQ,aAC9DA,EAAOksE,SAAS/9F,IAAK,eAAgB,IAAI60K,GAAahjJ,EAAQ,aAE9DA,EAAOksE,SAAS/9F,IAAK,qBAAsB,IAAI60K,GAAahjJ,EAAQ,iBAAkB,CAAEkjJ,YAAY,KACpGljJ,EAAOksE,SAAS/9F,IAAK,qBAAsB,IAAI60K,GAAahjJ,EAAQ,iBAAkB,CAAEkjJ,YAAY,KAEpGljJ,EAAOksE,SAAS/9F,IAAK,aAAc,IAAI+zK,GAAmBliJ,EAAQ,YAClEA,EAAOksE,SAAS/9F,IAAK,cAAe,IAAI+zK,GAAmBliJ,EAAQ,aAEnEA,EAAOksE,SAAS/9F,IAAK,sBAAuB,IAAIq2K,GAAkBxkJ,EAAQ,WAC1EA,EAAOksE,SAAS/9F,IAAK,qBAAsB,IAAIq2K,GAAkBxkJ,EAAQ,UAEpEmnJ,IACJnnJ,EAAOksE,SAAS/9F,IAAK,wBAAyB,IAAI01K,GAAkB7jJ,EAAQ,aAC5EA,EAAOksE,SAAS/9F,IAAK,uBAAwB,IAAI01K,GAAkB7jJ,EAAQ,aAG5E//B,KAAKqnL,0BACLrnL,KAAKsnL,yBACLtnL,KAAKunL,uBACLvnL,KAAKiyK,6BACLjyK,KAAKwnL,gCACN,CAKO,SAAA9b,GACN,MACMz/D,EADSjsG,KAAK+/B,OACIksE,SAClB2F,EAAS3F,EAAS7jG,IAAK,UACvBypG,EAAU5F,EAAS7jG,IAAK,WAEzBwpG,GAGJA,EAAOtwE,qBAAsB2qE,EAAS7jG,IAAK,cAAiB,CAAE4E,SAAU,SAGpE6kG,GAGJA,EAAQvwE,qBAAsB2qE,EAAS7jG,IAAK,eAAkB,CAAE4E,SAAU,WAI3EhN,KAAKynL,wBACLznL,KAAK6xK,kBACN,CAUO,wBAAA6V,CAA0B5B,GAChC9lL,KAAKinL,oBAAoBrnL,KAAMkmL,EAChC,CAKO,qBAAA6B,GACN,MAAO,IACHZ,MACA/mL,KAAKinL,oBAAoBjqL,KAAK8oL,GAAYA,EAAS90I,gBAExD,CAMQ,uBAAAq2I,GACP,MAAMtnJ,EAAS//B,KAAK+/B,OACd6nJ,EAAqD7nJ,EAAOksE,SAAS7jG,IAAK,yBAC1Ey/K,EAAoD9nJ,EAAOksE,SAAS7jG,IAAK,wBAE/EpI,KAAK4P,SAAmCmwB,EAAOotE,QAAQx1E,KAAKn0B,SAAU,UAAU,CAAEgS,EAAK1S,KACtF,MAAM69B,EAAYZ,EAAO3nC,MAAMoL,SAASm9B,UAGnCihJ,GAAwB7hJ,EAAO3nC,QAIpC2nC,EAAO3nC,MAAM0tC,QAAQ,KACpB,MAAM2vH,EAAgB90H,EAAUE,mBAEhC,GAAKF,EAAUwU,aAAiC,YAAlBryC,EAAK0jB,UAA0B,CAC5D,IAAMivI,EAAcxhH,UACnB,OAGD,MAAMqL,EAAiBm2G,EAAc72J,OAErC,IAAMihL,GAAiBvgI,GACtB,OASD,GANsBs/H,GAAWnrJ,MAAO6rB,EAAgB,CACvD+/H,eAAgB,WAChBC,YAAY,KAI0D,IAAhDhgI,EAAe5kB,aAAc,cAQ/C,CACJ,IAAMktJ,IAAyBA,EAAqBznJ,UACnD,OAGDynJ,EAAqB3mJ,QAAS,CAC7B4iJ,gCAAiCA,GAAiC9jJ,EAAO3nC,MAAO,aAElF,MAfOyoL,GAAuBvhI,IAC5Bvf,EAAOkB,QAAS,sBAGjBlB,EAAOkB,QAAS,eAajBn+B,EAAKqzB,iBACL3gB,EAAInJ,MACL,KAEK,CAEJ,GAAKs0B,EAAUwU,cAAgBxU,EAAU+W,kBAAmB/D,QAC3D,OAGD,IAAMk0I,IAAwBA,EAAoB1nJ,UACjD,OAGD0nJ,EAAoB5mJ,QAAS,CAC5B4iJ,gCAAiCA,GAAiC9jJ,EAAO3nC,MAAO,aAGjF0K,EAAKqzB,iBACL3gB,EAAInJ,MACL,IACE,GACD,CAAEsB,QAAS,MACf,CAMQ,sBAAA25K,GACP,MAAMvnJ,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACf6zG,EAAWlsE,EAAOksE,SAClB0/D,EAA6B1/D,EAAS7jG,IAAK,SAGjDpI,KAAK4P,SAAkCmwB,EAAOotE,QAAQx1E,KAAKn0B,SAAU,SAAS,CAAEgS,EAAK1S,KACpF,MAAMmV,EAAM7f,EAAMoL,SACZ87C,EAAiBrnC,EAAI0oB,UAAUE,mBAAoBjiC,OAEzD,GACCqZ,EAAI0oB,UAAUwU,aACd0qI,GAAiBvgI,IACjBA,EAAehT,UACdxpC,EAAKggJ,OACL,CACD,MAAMwhC,EAAe3D,GAAwBrhI,GACvCwoI,EAAcjH,GAAuBvhI,GAItCglI,GAAgBwD,GACpB/nJ,EAAOkB,QAAS,eAEhBn+B,EAAKqzB,iBACL3gB,EAAInJ,QAIKi4K,IAAiBwD,GAC1B/nJ,EAAOkB,QAAS,sBAEhBn+B,EAAKqzB,iBACL3gB,EAAInJ,QAIKy7K,IACT/nJ,EAAOkB,QAAS,uBAEhBn+B,EAAKqzB,iBACL3gB,EAAInJ,OAEN,IACE,CAAEsB,QAAS,OAId3N,KAAK4P,SAAU+7J,EAAc,gBAAgB,KAC5C,MAAMoc,EAAiC97E,EAAS7jG,IAAK,uBAMrD,GAFA2/K,EAAatnJ,WAEPsnJ,EAAa5nJ,UAClB,OAa8B,IARRkgJ,GAFXtgJ,EAAO3nC,MAAMoL,SACEm9B,UAAU+W,kBAAmB94C,QASpCtG,QACnByvL,EAAa9mJ,SACd,GAEF,CAMQ,oBAAAsmJ,GACP,MAAMxnJ,EAAS//B,KAAK+/B,OAEpB//B,KAAK4P,SAAgCmwB,EAAOotE,QAAQx1E,KAAKn0B,SAAU,OAAO,CAAEgS,EAAK1S,KAChF,MAAMwiC,EAAcxiC,EAAKsrB,SAAW,cAAgB,aACpCpuB,KAAK+/B,OAAOksE,SAAS7jG,IAAKk9B,GAE7BnF,YACZJ,EAAOkB,QAASqE,GAEhBxiC,EAAKszB,kBACLtzB,EAAKqzB,iBACL3gB,EAAInJ,OACL,GACE,CAAEsB,QAAS,MACf,CAKQ,gBAAAkkK,GACP,MAAM9xI,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACfmtL,EAAiBvlL,KAAK2nL,wBACtBT,EAAannJ,EAAOpV,OAAOviB,IAAK,mBAChCmmD,EAAc24H,EAAa,YAAc,WAE/CnnJ,EAAO1hC,WAAWurF,IAAK,UAMrB1X,iBAAkB,CAClBv6C,KAAM,KACNv/B,MAAO,CAAE+oD,GAAepb,YAAcA,EAAOzgC,cAAeipD,EAAa,CAAEwzH,SAAU,OAOrF7vG,iBAAkB,CAClBv6C,KAAM,IACNv/B,MAAO,CAAE+oD,GAAepb,YAClBob,EAAYviD,QAAUuiD,EAAYviD,OAAO2P,GAAI,UAAW,MACrDw3B,EAAOzgC,cAAeipD,EAAa,CAAEwzH,SAAU,KAGhD,KAERxvG,kBAAmB,SAEnBrkE,KAAKo7D,IACLA,EAAW75D,GAAwB,aAAcy1K,MACjD57G,EAAW75D,GAAwB,aAAc41K,KAAuB,CAAEr4K,SAAU,SACpFs8D,EAAW75D,GAAwB,aAAc41K,KAAuB,CAAEr4K,SAAU,QAAU,IAG1Fk6K,GACLnnJ,EAAO1hC,WAAWurF,IAAK,YACrB1X,iBAAkB,CAClB95E,MAAO,WACPu/B,KAAM,MAIToI,EAAO1hC,WAAWurF,IAAK,mBACrB1X,iBAAkB,CAClB95E,MAAOm2D,EACP52B,KAAM+uJ,GAAuBnB,GAC7BhzG,kBAAmB,SAEnBrkE,KAAKo7D,IHpFF,IAA0ChvC,EGqF7CgvC,EAAW75D,GACV,YACA61K,GAA2BC,EAAgBvlL,KAAKinL,oBAAqB7uL,IAGtEkxE,EAAW75D,GAAyB,UH1FS6qB,EG0FkCliC,EAAMkiC,OHzFjF,CAAE9kB,EAAK1S,EAAMumE,KACnB,MAAM,OAAEtjC,EAAM,OAAEuhC,GAAW+B,EACrB9a,EAAc/4C,EAAIxT,KAAKjF,MAAO,KAAO,GAI3C,IAAMu9B,EAAOo3C,eAAgBnjB,EAAa,cACzC,OAID,MAAMmD,EAAY4V,EAAOD,eAAgBvkE,EAAK2kB,UAExC81D,EAAWz6E,EAAK2kB,SAASgtB,aAAc3xC,EAAKxK,QAC5Cq5D,EAAU2V,EAAOD,eAAgBkW,EAAU,CAAEhW,WAAW,IAOxDpmB,EAJYpb,EAAO0b,YAAaiQ,EAAWC,GAAUrc,aAI7BvJ,IAAIuI,WAG5B6M,GAKNykI,GAA4BzkI,EAAapb,EAAQuhC,EAAQ,GG4DwC,IAGjGvnC,EAAO1hC,WAAWurF,IAAK,gBACrB1X,iBAAkB,CAClB95E,MAAOm2D,EACP52B,KAAM+uJ,GAAuBnB,EAAgB,CAAEE,cAAc,IAC7DlzG,kBAAmB,SAEnBrkE,KAAKo7D,IACLA,EAAW75D,GACV,YACA61K,GAA2BC,EAAgBvlL,KAAKinL,oBAAqB7uL,EAAO,CAAEqtL,cAAc,IAC5F,IAGH,MAAMuC,GHvBPxC,EGuBoExlL,KAAKinL,oBHtBzEtvJ,EGsB8FoI,EAAOotE,QAAQx1E,KHpBtG,CAAEniB,EAAK1S,KACb,GAAKA,EAAK4iE,cAAcrpD,OAAS,EAChC,OAGD,MAAMijC,EAAiBx8C,EAAK4iE,cAAc9mE,OAE1C,IAAMihL,GAAiBvgI,GACtB,OAGD,IAAMkmI,EAAWnuJ,MAAMyuJ,GACJ,cAAlBA,EAASC,OACTD,EAASE,4BACTF,EAASE,2BAA4B1mI,KAErC,OAGD,MAAM6B,EAAcr+C,EAAKwkE,OAAOf,cAAejnB,GACzCiR,EAAY54B,EAAKgqB,cAAeR,GAEhC2lI,EAAav2H,EAAUvb,YAC7B,IAAIizI,EAA0B13H,EAAU9/B,MAExC,UAAY,KAAExwB,KAAU6mL,EAAa,CAEpC,GAAK7mL,EAAKsO,GAAI,YAAezL,EAAKwkE,OAAOnB,eAAgBlmE,IAAUA,EAAKsO,GAAI,cAC3E,MAGItO,EAAKsO,GAAI,YAAetO,EAAK2wC,kBAAmB,oBACpDq3I,EAA0BtwJ,EAAK4pB,oBAAqBthD,GAGpD6mL,EAAWzzI,MAAM,EAAIK,uBAAyBA,EAAiBruB,QAAS4iK,KAE1E,CAEAnlL,EAAK65C,aAAesrI,CAAuB,GA3CtC,IACNzC,EACA7tJ,EGwBCoI,EAAOotE,QAAQ7lC,OAAO73D,GAAoC,sBAAuBu4K,GACjFjoJ,EAAOj9B,KAAKwkE,OAAO73D,GAAoC,sBAAuBu4K,GAE9EhoL,KAAK4P,SACJxX,EAAMoL,SACN,cH/VI,SACNpL,EACA+0G,EACAo4E,EACA2C,GAEA,MAAO,KACN,MAAMp+G,EAAU1xE,EAAMoL,SAASgmE,OAAOQ,aAChCm+G,EAAiB,GACjBlD,EAAiB,IAAIvzK,IACrB02K,EAAe,IAAIr0K,IAEzB,UAAYsF,KAASywD,EACpB,GAAmB,UAAdzwD,EAAMlO,MAAkC,SAAdkO,EAAMrX,KACpCgjL,GAAyB3rK,EAAMoO,SAAUw9J,GAGnC5rK,EAAM9T,WAAW0I,IAAK,cAG3Bm6K,EAAal6K,IAAKmL,EAAMoO,SAAS4sB,WAFjC2wI,GAAyB3rK,EAAMoO,SAASgtB,aAAcp7B,EAAM/gB,QAAU2sL,QAIxE,GAEwB,UAAd5rK,EAAMlO,MAAoBkO,EAAM9T,WAAW0I,IAAK,cACzD+2K,GAAyB3rK,EAAMoO,SAAUw9J,QAC1C,GAEwB,aAAd5rK,EAAMlO,KAAsB,CACrC,MAAMlL,EAAOoZ,EAAM0N,MAAM0J,MAAM4jB,UAE1BkxI,EAAepzJ,SAAU9Y,EAAMg1C,eACnC22H,GAAyB3rK,EAAM0N,MAAM0J,MAAOw0J,GAEX,OAA5B5rK,EAAMixD,mBACV06G,GAAyB3rK,EAAM0N,MAAM0J,MAAMgkB,aAAc,GAAKwwI,GAGzDoD,EAA8BpoL,IAClCkoL,EAAevoL,KAAMK,IAGtBmoL,EAAal6K,IAAKjO,IAER4/K,GAAiB5/K,IAGvBooL,EAA8BpoL,IAClCkoL,EAAevoL,KAAMK,EAGxB,CAGD,UAAYkgL,KAAY8E,EAAe75K,SACtC+8K,EAAevoL,QAAS0oL,EAA2BnI,EAAUiI,IAG9D,UAAYnoL,KAAQ,IAAI8T,IAAKo0K,GAC5Bh7E,EAAQtvB,cAAe59E,EACxB,EAGD,SAASqoL,EAA2BnI,EAAuBiI,GAC1D,MAAMD,EAAiB,GACjB17G,EAAU,IAAI14D,IACdrF,EAAsC,GAE5C,UAAY,KAAEvP,EAAI,SAAE60G,KAAc0rE,GAA0BS,EAAU,WAAc,CACnF,GAAK1zG,EAAQx+D,IAAK9O,GACjB,SAGD,MAAMopL,EAAappL,EAAKu7B,aAAc,cAGjCs5E,GAAYu0E,EAAav0E,EAASt5E,aAAc,gBACpDhsB,EAAMpW,OAASiwL,EAAa,GAI7B75K,EAAO65K,GAAevxL,OAAO62B,YAC5BltB,MAAMrB,KAAMH,EAAKixC,iBACfrqC,QAAQ,EAAIhP,KAAWwuL,EAAepzJ,SAAUp7B,MAInD,MAAMqgJ,EAASmpC,GAAmBphL,EAAM,CAAEqnB,UAAW,YAErD,UAAYqmD,KAASuqE,EACpB3qE,EAAQv+D,IAAK2+D,IAGRw7G,EAA8Bx7G,EAAOuqE,IAIhCoxC,EAAiC37G,EAAOn+D,EAAO05K,KAHxDD,EAAevoL,KAAMitE,EAOxB,CAEA,OAAOs7G,CACR,CAEA,SAASE,EAA8BpoL,EAAem3I,GACrD,MAAMj2F,EAAcgsD,EAAQ7lC,OAAOf,cAAetmE,GAElD,IAAMkhD,EACL,OAAO,EAQR,GALqB+mI,EAAYt3K,KAAoC,eAAgB,CACpFq1D,aAAchmE,EACdkhD,gBAIA,OAAO,EAGR,IAAMlhD,EAAKsO,GAAI,UAAW,eAAkBtO,EAAKsO,GAAI,UAAW,YAC/D,OAAO,EAGR,MAAMk6K,EAAW9B,GAAyB1mL,EAAMslL,EAAgBnuC,GAEhE,SAAKqxC,IAAYtnI,EAAY5yC,GAAI,UAAW,SAE/Bk6K,IAAYtnI,EAAY5yC,GAAI,UAAW,QAKrD,CAEA,SAASi6K,EACRvoL,EACAyO,EACA05K,GAGA,GAAKA,EAAan6K,IAAKhO,GACtB,OAAO,EAGR,MAAMkhD,EAAcgsD,EAAQ7lC,OAAOf,cAAetmE,GAClD,IAAI2xG,EAASljG,EAAMpW,OAAS,EAG5B,QACKye,EAAUoqC,EAAYviD,QACzBmY,EAAQxI,GAAI,mBACbwI,EAAUA,EAAQnY,OACjB,CACD,MAAM8pL,EAAoB/D,GAAgB5tK,GACpC4xK,EAAgBjE,GAAY3tK,GAElC,IAAM4xK,IAAkBD,EACvB,SAGD,MAAM/2K,EAAY,oBAAoB+2K,EAAoB,OAAS,QAMnE,GALqBR,EAAYt3K,KAAuCe,EAAW,CAClFwvC,YAAapqC,EACb6xK,gBAAiBl6K,EAAOkjG,KAIxB,MAGD,GAAK+2E,IACJ/2E,IAGKA,EAAS,GACb,OAAO,CAGV,CAEA,OAAO,CACR,CACD,CGuKGi3E,CAA4BzwL,EAAO2nC,EAAOotE,QAASo4E,EAAgBvlL,MACnE,CAAEgN,SAAU,SAIbhN,KAAKyP,GAAqC,wBAAwB,CAAE+F,GAAO2rC,cAAaynI,sBAClFznI,EAAYthD,IAAM+oL,EAAgBjF,aACtCnuK,EAAIjJ,QAAS,EACbiJ,EAAInJ,OACL,IAIDrM,KAAKyP,GAAqC,wBAAwB,CAAE+F,GAAO2rC,cAAaynI,sBAEtFznI,EAAYn/C,MAAQ8iL,GAA+B8D,EAAgB7G,WACnE5gI,EAAYthD,IAAMglL,GAA6B+D,EAAgB7G,SAAU6G,EAAgBlF,cAEzFluK,EAAIjJ,QAAS,EACbiJ,EAAInJ,OACL,GAEF,CAKQ,qBAAAo7K,GACP,MAAMrvL,EAAQ4H,KAAK+/B,OAAO3nC,MACpBmtL,EAAiBvlL,KAAK2nL,wBAI5BvvL,EAAMoL,SAASyiC,mBAAmBF,GA+MpC,SACC3tC,EACA2tC,EACAw/I,EACA2C,GAEA,MAAMp+G,EAAU1xE,EAAMoL,SAASgmE,OAAOQ,aAChCi7G,EAAiB,IAAIvzK,IACrBw1K,EAAagB,EAAYnoJ,OAAOpV,OAAOviB,IAAK,mBAElD,IAAI0gL,GAAU,EAEd,UAAYzvK,KAASywD,EAAU,CAC9B,GAAmB,UAAdzwD,EAAMlO,MAAkC,SAAdkO,EAAMrX,KAAkB,CACtD,MAAM/B,EAAOoZ,EAAMoO,SAAS4sB,UAG5B,IAAMj8C,EAAMkiC,OAAOo3C,eAAgBzxE,EAAM,cACxC,UAAY+wC,KAAiBrwC,MAAMrB,KAAMW,EAAK2pC,oBACxC27I,EAAepzJ,SAAU6e,KAC7BjL,EAAOr/B,gBAAiBsqC,EAAe/wC,GAEvC6oL,GAAU,GAKb9D,GAAyB3rK,EAAMoO,SAAUw9J,GAGnC5rK,EAAM9T,WAAW0I,IAAK,eAC3B+2K,GAAyB3rK,EAAMoO,SAASgtB,aAAcp7B,EAAM/gB,QAAU2sL,GAIvE,UAAchlL,KAAM8oL,EAAS,iBAAEr1I,KAAsBt7C,EAAMupD,cAAe1hD,GACpE4/K,GAAiBkJ,IACrB/D,GAAyBtxI,EAAkBuxI,EAG9C,KAEwB,UAAd5rK,EAAMlO,KACf65K,GAAyB3rK,EAAMoO,SAAUw9J,GAGlB,aAAd5rK,EAAMlO,MAAuBo6K,EAAepzJ,SAAU9Y,EAAMg1C,gBACrE22H,GAAyB3rK,EAAM0N,MAAM0J,MAAOw0J,GAEX,OAA5B5rK,EAAMixD,mBACV06G,GAAyB3rK,EAAM0N,MAAM0J,MAAMgkB,aAAc,GAAKwwI,IAKhE,IAAMiC,GAA4B,aAAd7tK,EAAMlO,MAAuB47K,GAAqB50J,SAAU9Y,EAAMg1C,cAAiB,CACtG,MAAMt3C,EAAUsC,EAAM0N,MAAM0J,MAAM4jB,UAED,OAA5Bh7B,EAAMixD,mBAA8BvzD,GAAWA,EAAQxI,GAAI,UAAW,aAC1Ew3B,EAAOkb,OAAQlqC,EAAS,aACxB+xK,GAAU,GAC6B,OAA5BzvK,EAAMgxD,mBAA8BtzD,GAAWA,EAAQxI,GAAI,YAA+B,YAAhBwI,EAAQ/U,OAC7F+jC,EAAOkb,OAAQlqC,EAAS,YACxB+xK,GAAU,EAEZ,CACD,CAGA,MAAME,EAAU,IAAIj1K,IAEpB,UAAYosK,KAAY8E,EAAe75K,SACtC09K,EAAUZ,EAAYt3K,KAAiC,YAAa,CACnEq4K,UAAW,IAAIhJ,GAAoBE,GACnCA,WACAp6I,SACAijJ,aACMF,EAGR,OAAOA,CACR,CAhS8CI,CAAsB9wL,EAAO2tC,EAAQw/I,EAAgBvlL,QAIjGA,KAAKyP,GAA+B,aAAa,CAAE+F,GAAOyzK,YAAWljJ,aACpEvwB,EAAIjJ,OJneA,SACN08K,EACAljJ,GAEA,IAAIojJ,EAAY,EACZC,GAAc,EACdC,EAAQ,KACRP,GAAU,EAEd,UAAY,KAAE3pL,KAAU8pL,EAAY,CACnC,MAAMV,EAAappL,EAAKu7B,aAAc,cAEtC,GAAK6tJ,EAAaY,EAAY,CAC7B,IAAI5F,EAEW,OAAV8F,GACJA,EAAQd,EAAaY,EACrB5F,EAAY4F,IAEPE,EAAQd,IACZc,EAAQd,GAGThF,EAAYgF,EAAac,GAGrB9F,EAAY6F,EAAa,IAC7B7F,EAAY6F,EAAa,GAG1BrjJ,EAAOtgC,aAAc,aAAc89K,EAAWpkL,GAE9C2pL,GAAU,EACVM,EAAa7F,CACd,MACC8F,EAAQ,KACRF,EAAYZ,EAAa,EACzBa,EAAab,CAEf,CAEA,OAAOO,CACR,CIybgBQ,CAAgBL,EAAWljJ,IAAYvwB,EAAIjJ,MAAM,GAC5D,CAAES,SAAU,SAGfhN,KAAKyP,GAA+B,aAAa,CAAE+F,GAAOyzK,YAAWljJ,SAAQijJ,cAC5ExzK,EAAIjJ,OJnbA,SACN08K,EACAD,EACAjjJ,GAEA,MAAM0mC,EAAU,IAAI14D,IACpB,IAAI+0K,GAAU,EAEd,UAAY,KAAE3pL,KAAU8pL,EAAY,CACnC,GAAKx8G,EAAQx+D,IAAK9O,GACjB,SAGD,IAAI4iL,EAAW5iL,EAAKu7B,aAAc,YAC9BipJ,EAAaxkL,EAAKu7B,aAAc,cAUpC,GAPKsuJ,EAAQ/6K,IAAK01K,KACjBA,EAAavD,GAAY9+K,QAG1B0nL,EAAQ96K,IAAKy1K,GAGRxkL,EAAKoP,GAAI,UAAW,YACnBpP,EAAKu7B,aAAc,eAAkBipJ,IACzC59I,EAAOtgC,aAAc,aAAck+K,EAAYxkL,GAE/C2pL,GAAU,QAMZ,UAAYj8G,KAAS0zG,GAAmBphL,EAAM,CAAEqnB,UAAW,YAC1DimD,EAAQv+D,IAAK2+D,GAGRA,EAAMnyC,aAAc,aAAgBqnJ,IACxC4B,EAAavD,GAAY9+K,OACzBygL,EAAWl1G,EAAMnyC,aAAc,aAG3BmyC,EAAMnyC,aAAc,eAAkBipJ,IAC1C59I,EAAOtgC,aAAc,aAAck+K,EAAY92G,GAE/Ci8G,GAAU,EAGb,CAEA,OAAOA,CACR,CI+XgBS,CAAgBN,EAAWD,EAASjjJ,IAAYvwB,EAAIjJ,MAAM,GACrE,CAAES,SAAU,QAChB,CAMQ,0BAAAilK,GACP,MAAM75K,EAAQ4H,KAAK+/B,OAAO3nC,MACpB+pK,EAAuCniK,KAAK+/B,OAAOsC,QAAQj6B,IAAK,qBAEtEpI,KAAK4P,SAAmCxX,EAAO,gBAoSjD,SAAsCA,GACrC,MAAO,CAAEod,GAAOtV,EAASi4C,MACxB,MAAMvkB,EAAQ1zB,EAAQqO,GAAI,oBACzB5N,MAAMrB,KAAMY,EAAQ4mC,eACpB,CAAE5mC,GAEH,IAAM0zB,EAAMt7B,OACX,OAGD,MAIMmvB,GAJY0wB,EACjB//C,EAAMwpD,gBAAiBzJ,GACvB//C,EAAMoL,SAASm9B,WAEWE,mBAG3B,IAAI2oJ,EAEJ,GAAK3J,GAAiBp4J,EAAS7oB,QAC9B4qL,EAAU/hK,EAAS7oB,WACb,KAAKihL,GAAiBp4J,EAAS6sB,YAGrC,OAFAk1I,EAAU/hK,EAAS6sB,UAGpB,CAEAl8C,EAAM0tC,QAAQC,IACb,MAAM0jJ,EAAUD,EAAQ9uJ,aAAc,YAChCgvJ,EAAYF,EAAQ9uJ,aAAc,cAClCivJ,EAAqB/1J,EAAO,GAAI8G,aAAc,eAA4B,EAC1EkvJ,EAAa/wL,KAAKC,IAAK4wL,EAAYC,EAAoB,GAE7D,UAAY1pL,KAAQ2zB,EAAQ,CAC3B,MAAMi2J,EAAahK,GAAiB5/K,GAE/BupL,EAAQj7K,GAAI,UAAW,aAAgBtO,EAAKsO,GAAI,UAAW,cAO/Dw3B,EAAOkb,OAAQhhD,EAAiB,YAGjC8lC,EAAOy3D,cAAe,CACrBkmF,YAAcmG,EAAa5pL,EAAKy6B,aAAc,cAAiB,GAAMkvJ,EACrEjG,WAAYkG,EAAa5pL,EAAKy6B,aAAc,cAAiB0lJ,GAAY9+K,OACzEygL,SAAU0H,GACRxpL,EACJ,IACE,CAEL,CA1VkE6pL,CAA6B1xL,GAAS,CAAE4U,SAAU,SA8BlHhN,KAAK4P,SAA8CuyJ,EAAmB,wBAAwB,CAAE3sJ,EAAK1S,KACpG1K,EAAM0tC,QAAQC,IAEb,MAAMgkJ,EAAqBppL,MAAMrB,KAAMwD,EAAK5C,QAAQ4mC,eAC9CkjJ,EAAWD,EAAoBA,EAAmBzxL,OAAS,GAEjE,GAAKyxL,EAAmBzxL,OAAS,GAAK0xL,EAASz7K,GAAI,YAAey7K,EAAS19I,QAAU,CAC9Cy9I,EAAmBjoL,MAAO,GAAI,GAEjC4U,MAAOmpK,KACzC95I,EAAO9/B,OAAQ+jL,EAEjB,CAGA,GAAoB,QAAflnL,EAAKmhC,QAAmC,OAAfnhC,EAAKmhC,OAAkB,CACpD,MAAMgmJ,EAActpL,MAAMrB,KAAMwD,EAAK5C,QAAQ4mC,eACZ46I,GAAkBuI,IAGlDxI,GAAsBwI,EAA+BlkJ,EAEvD,IACE,GAEL,CAKQ,8BAAAyhJ,GACP,MAAMznJ,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EAEjB+kC,EAAOmtE,cAAcN,sBAAuB,CAC3C/sG,GAAI,OACJ44C,MAAOz9C,EAAG,yCACV2xG,WAAY,CACX,CACCl0D,MAAOz9C,EAAG,6BACVszB,UAAW,OAEZ,CACCmqB,MAAOz9C,EAAG,6BACVszB,UAAW,eAIf,EAmRD,SAASu1J,GAAiCzrL,EAAcouB,GACvD,MAAMma,EAAYvoC,EAAMoL,SAASm9B,UAEjC,IAAMA,EAAUwU,YACf,OAAQysI,GAAwBxpL,GAGjC,GAAmB,YAAdouB,EACJ,OAAO,EAGR,MACM84B,EADgB3e,EAAUE,mBACKjiC,OAC/B6pB,EAAkB62B,EAAe72B,gBAEvC,OAAKrwB,EAAMkiC,OAAOi3C,SAAU9oD,OAIrBA,EAA6B6jB,SAI7Bo1I,GAAkB,CAAEpiI,EAA2B72B,IACvD,CCr5BO,SAASyhK,GACfnqJ,EACAuF,EACAmT,EACA66D,GAEAvzE,EAAO+E,GAAGq2E,iBAAiBjtG,IAAKo3B,GAAa,KAC5C,MAAMyzE,EAAaqC,GAAe,GAAYr7E,EAAQuF,EAAamT,EAAO66D,GAO1E,OALAyF,EAAWnnG,IAAK,CACf4hG,SAAS,EACTN,cAAc,IAGR6F,CAAU,IAGlBh5E,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,WAAYo3B,KAAgB,IAC3D81E,GAAe,GAA+Br7E,EAAQuF,EAAamT,EAAO66D,IAE5E,CAKA,SAAS8H,GACRG,EACAx7E,EACAuF,EACAmT,EACA66D,GAEA,MAAMlyE,EAAUrB,EAAOksE,SAAS7jG,IAAKk9B,GAC/B3N,EAAO,IAAI4jF,EAAax7E,EAAOxC,QAgBrC,OAdA5F,EAAK/lB,IAAK,CACT6mC,QACA66D,SAID37E,EAAK3wB,KAAM,OAAQ,aAAczH,GAAI6hC,EAAS,QAAS,aAGvDzJ,EAAKloB,GAAwB,WAAW,KACvCswB,EAAOkB,QAASqE,GAChBvF,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAGrB9H,CACR,CCvDe,MAAM,WAAe,GAInC,qBAAkBsK,GACjB,MAAO,QACR,CAKO,IAAAG,GACN,MAAMpnC,EAAIgF,KAAK+/B,OAAO/kC,EAGhBgF,KAAK+/B,OAAO+E,GAAGq2E,iBAAiBltG,IAAK,iBAC1Ci8K,GAAoBlqL,KAAK+/B,OAAQ,eAAgB/kC,EAAG,iBAAmB,GAAMi2G,cAIxEjxG,KAAK+/B,OAAO+E,GAAGq2E,iBAAiBltG,IAAK,iBAC1Ci8K,GAAoBlqL,KAAK+/B,OAAQ,eAAgB/kC,EAAG,iBAAmB,GAAMg2G,aAE/E,ECpBc,MAAMm5E,WAAa,GAIjC,mBAAkBvnJ,GACjB,MAAO,CAAEokJ,GAAa,GACvB,CAKA,qBAAkB/kJ,GACjB,MAAO,MACR,ECVc,MAAMmoJ,WAAyB9pJ,GAS7B,OAAAG,GACf,MAAMjoC,EAAQwH,KAAK4jJ,YAEnB5jJ,KAAKxH,MAAQA,EACbwH,KAAKmgC,UAAqB,MAAT3nC,CAClB,CAQgB,OAAAyoC,EAAS,WAAEo/H,EAAa,GAA+B,CAAC,GACvE,MAAMjoK,EAAQ4H,KAAK+/B,OAAO3nC,MACpBoL,EAAWpL,EAAMoL,SAEvB,IAAI4zI,EAASz2I,MAAMrB,KAAMkE,EAASm9B,UAAU6rC,qBAC1CzmE,QAAQ8mE,GACRgzG,GAAiBhzG,IACjBi1G,GAAoBj1G,EAAMnyC,aAAc,eAG1C08G,EAAS+pC,GAAgC/pC,GAEzCh/I,EAAM0tC,QAAQC,IACb,UAAY8mC,KAASuqE,EACpBrxG,EAAOtgC,aAAc,YAAa46J,GAAc,EAAIA,EAAa,EAAGxzF,EACrE,GAEF,CAOQ,SAAA+2E,GACP,MAGM/2E,EAAQ,GAHA7sE,KAAK+/B,OAAO3nC,MACHoL,SAEOm9B,UAAU6rC,qBAExC,OACCK,GACAgzG,GAAiBhzG,IACjBi1G,GAAoBj1G,EAAMnyC,aAAc,aAEjCmyC,EAAMnyC,aAAc,aAGrB,IACR,EC1ED,MAAM2vJ,GAA+E,CAAC,EAChFC,GAA0E,CAAC,EAC3EC,GAAmE,CAAC,EAEpEC,GAAkH,CACvH,CAAEC,UAAW,OAAQC,cAAe,OAAQ3I,SAAU,YACtD,CAAE0I,UAAW,SAAUC,cAAe,SAAU3I,SAAU,YAC1D,CAAE0I,UAAW,SAAUC,cAAe,SAAU3I,SAAU,YAC1D,CAAE0I,UAAW,UAAWC,cAAe,IAAK3I,SAAU,YACtD,CAAE0I,UAAW,uBAAwBC,cAAe,KAAM3I,SAAU,YACpE,CAAE0I,UAAW,cAAeC,cAAe,IAAK3I,SAAU,YAC1D,CAAE0I,UAAW,cAAeC,cAAe,IAAK3I,SAAU,YAC1D,CAAE0I,UAAW,cAAeC,cAAe,IAAK3I,SAAU,YAC1D,CAAE0I,UAAW,cAAeC,cAAe,IAAK3I,SAAU,YAC1D,CAAE0I,UAAW,cAAeC,cAAe,IAAK3I,SAAU,YAC1D,CAAE0I,UAAW,cAAeC,cAAe,IAAK3I,SAAU,aAG3D,IAAK,MAAO,UAAE0I,EAAS,cAAEC,EAAa,SAAE3I,KAAcyI,GACrDH,GAAyBI,GAAc1I,EACvCuI,GAA8BG,GAAcC,EAEvCA,IACJH,GAA8BG,GAAkBD,GAO3C,SAASE,KACf,OAAOH,GAAiBxtL,KAAK9C,GAAKA,EAAEuwL,WACrC,CAKO,SAASG,GAA8BC,GAC7C,OAAOR,GAAyBQ,IAAmB,IACpD,CAKO,SAASC,GAAmCtyL,GAClD,OAAO+xL,GAA8B/xL,IAAW,IACjD,CAKO,SAASuyL,GAAmCvyL,GAClD,OAAO8xL,GAA8B9xL,IAAW,IACjD,CCxCe,MAAMwyL,WAAyB1qJ,GAS7B2qJ,YAKRC,gBAUR,WAAAnpL,CAAag+B,EAAgBkrJ,EAAqBE,GACjDt9K,MAAOkyB,GAEP//B,KAAKirL,YAAcA,EACnBjrL,KAAKkrL,gBAAkBC,CACxB,CAKgB,OAAA1qJ,GACfzgC,KAAKxH,MAAQwH,KAAK4jJ,YAClB5jJ,KAAKmgC,UAAYngC,KAAKuhC,eACvB,CASgB,OAAAN,CAAS18B,EAAoC,CAAC,GAC7D,MAAMnM,EAAQ4H,KAAK+/B,OAAO3nC,MACpBoL,EAAWpL,EAAMoL,SAEvBpL,EAAM0tC,QAAQC,IACb/lC,KAAKorL,yBAA0B7mL,GAE/B,IAAI6yI,EAASz2I,MAAMrB,KAAMkE,EAASm9B,UAAU6rC,qBAC1CzmE,QAAQ8mE,GAASA,EAAMx8B,aAAc,cAEvC,GAAM+mG,EAAO9+I,OAAb,CAIA8+I,EAAS+pC,GAAgC/pC,GAEzC,UAAYvqE,KAASuqE,EACpBrxG,EAAOtgC,aAAc,YAAalB,EAAQ4G,MAAQnL,KAAKirL,YAAap+G,EALrE,CAMA,GAEF,CAKO,oBAAAw+G,CAAsB7yL,GAC5B,OAAMwH,KAAKkrL,iBAIJlrL,KAAKkrL,gBAAgB/4J,SAAU35B,EACvC,CAOQ,SAAAorJ,GACP,MAAM08B,EAAW,GAAOtgL,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,UAAU6rC,qBAE7D,OAAKqzG,GAAiBS,GACdA,EAAS5lJ,aAAc,aAGxB,IACR,CAOQ,aAAA6G,GACP,MAAMxB,EAAS//B,KAAK+/B,OAEdkxE,EAAelxE,EAAOksE,SAAS7jG,IAAK,gBACpC4oG,EAAejxE,EAAOksE,SAAS7jG,IAAK,gBAE1C,OAAO6oG,EAAa9wE,WAAa6wE,EAAa7wE,SAC/C,CAOQ,wBAAAirJ,CAA0B7mL,GACjC,IAAMA,EAAQ4G,KACb,OAGD,MAAM42K,EAAW6I,GAA8BrmL,EAAQ4G,MAEvD,IAAM42K,EACL,OAGD,MAAMhiJ,EAAS//B,KAAK+/B,OACduF,EAAc,GAAIy8I,QACRhiJ,EAAOksE,SAAS7jG,IAAKk9B,GAEvB9sC,OACbunC,EAAOkB,QAASqE,EAElB,ECpIc,MAAMgmJ,WAA4BhrJ,GAShC,OAAAG,GACf,MAAMjoC,EAAQwH,KAAK4jJ,YAEnB5jJ,KAAKxH,MAAQA,EACbwH,KAAKmgC,UAAqB,MAAT3nC,CAClB,CAQgB,OAAAyoC,CAAS18B,EAAkC,CAAC,GAC3D,MAAMnM,EAAQ4H,KAAK+/B,OAAO3nC,MACpBoL,EAAWpL,EAAMoL,SAEvB,IAAI4zI,EAASz2I,MAAMrB,KAAMkE,EAASm9B,UAAU6rC,qBAC1CzmE,QAAQ8mE,GAASgzG,GAAiBhzG,IAA+C,YAApCA,EAAMnyC,aAAc,cAEnE08G,EAAS+pC,GAAgC/pC,GAEzCh/I,EAAM0tC,QAAQC,IACb,UAAY8mC,KAASuqE,EACpBrxG,EAAOtgC,aAAc,iBAAkBlB,EAAQ3K,SAAUizE,EAC1D,GAEF,CAKQ,SAAA+2E,GACP,MAGM/2E,EAAQ,GAHA7sE,KAAK+/B,OAAO3nC,MACHoL,SAEOm9B,UAAU6rC,qBAExC,OAAKqzG,GAAiBhzG,IAA+C,YAApCA,EAAMnyC,aAAc,YAC7CmyC,EAAMnyC,aAAc,gBAGrB,IACR,ECnDM,SAAS6wJ,GAA+BzF,GAC9C,MAAO,CAAEtwK,EAAK1S,EAAMumE,KACnB,MAAM,OAAEtjC,EAAM,OAAEzL,EAAM,WAAEqwC,GAAetB,EAIvC,IAAoE,IAA/DsB,EAAW1oE,KAAMa,EAAK+2E,SAAUisG,EAAS0F,iBAC7C,OAGK1oL,EAAKskE,YACVpwE,OAAOsyB,OAAQxmB,EAAMumE,EAAc2C,gBAAiBlpE,EAAK+2E,SAAU/2E,EAAK82E,cAGzE,IAAIkvG,GAAU,EAEd,UAAY7oL,KAAQ6C,EAAKskE,WAAY/wB,SAAU,CAAExD,SAAS,IACnDvY,EAAOo3C,eAAgBzxE,EAAM6lL,EAAS90I,gBAItC80I,EAAS2F,kBAAmBxrL,KAK7BA,EAAKowC,aAAcy1I,EAAS90I,iBAIjCjL,EAAOtgC,aAAcqgL,EAAS90I,cAAe80I,EAAS4F,qBAAsB5oL,EAAK+2E,UAAY55E,GAC7F6oL,GAAU,IAGNA,GACJn+G,EAAWpC,QAASzlE,EAAK+2E,SAAUisG,EAAS0F,gBAC7C,CAEF,CCxCe,MAAMG,WAA4B,GAIhD,qBAAkB1pJ,GACjB,MAAO,qBACR,CAKO,yBAAA0oJ,GACN,OAAOA,IACR,CAKO,4BAAAC,CAA8BC,GACpC,OAAOD,GAA8BC,EACtC,CAKO,iCAAAC,CAAmCtyL,GACzC,OAAOsyL,GAAmCtyL,EAC3C,CAKO,iCAAAuyL,CAAmCvyL,GACzC,OAAOuyL,GAAmCvyL,EAC3C,ECTD,MAAMozL,GAAoB,UAQX,MAAMC,WAA8B,GAIlD,mBAAkBjpJ,GACjB,MAAO,CAAEokJ,GAAa2E,GACvB,CAKA,qBAAkB1pJ,GACjB,MAAO,uBACR,CAKA,WAAAlgC,CAAag+B,GACZlyB,MAAOkyB,GAEPA,EAAOpV,OAAOj0B,OAAQ,kBAAmB,CACxC4kC,QAAQ,EACR+kI,YAAY,EACZzmK,UAAU,GAEZ,CAKO,IAAAwoC,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACf8vL,EAAcnoJ,EAAOsC,QAAQj6B,IAAK4+K,IAGlCxB,EAsKR,SAAoCsG,GACnC,MAAMtG,EAAuC,GAE7C,GAAKsG,EAAkBxwJ,OAAS,CAC/B,MAAMywJ,EAAkD,iBAA5BD,EAAkBxwJ,QAAsBwwJ,EAAkBxwJ,OAAOywJ,aAE7FvG,EAAW5lL,KAAM,CAChBoxC,cAAe,YACfhF,aAAc4/I,GACdJ,gBAAiB,CAAElwJ,OAAQ,mBAE3B,UAAA0wJ,CAAYjsJ,GACX,IAAIorJ,EAAiBR,KAEhBoB,IACJZ,EAAiBA,EAAeplL,QAAQkmL,KAAelB,GAAmCkB,MAG3FlsJ,EAAOksE,SAAS/9F,IAAK,YAAa,IAAI88K,GAAkBjrJ,EAAQ6rJ,GAAmBT,GACpF,EAEAM,kBAAmBxrL,GACwB,YAAnCA,EAAKy6B,aAAc,aAAiE,YAAnCz6B,EAAKy6B,aAAc,YAG5E,iBAAAwxJ,CAAmBjsL,GAClB,IAAMD,KAAKyrL,kBAAmBxrL,GAC7B,OAAQA,EAAKowC,aAAc,aAG5B,IAAMpwC,EAAKowC,aAAc,aACxB,OAAO,EAGR,MAAM73C,EAAQyH,EAAKy6B,aAAc,aAEjC,OAAKliC,GAASozL,IAIPhB,GAA8BpyL,IAAqByH,EAAKy6B,aAAc,WAC9E,EAEA,sBAAA8rJ,CAAwBzgJ,EAAQ0kJ,EAAW1zK,GAC1C,GAAK0zK,GAAaA,IAAcmB,GAAoB,CACnD,IAAKG,EAWJ,YAFAhmJ,EAAOyY,SAAU,kBAAmBisI,EAAqB1zK,GATtC,CACnB,MAAMve,EAAQuyL,GAAmCN,GAEjD,GAAKjyL,EAGJ,YAFAutC,EAAOtgC,aAAc,OAAQjN,EAAOue,EAItC,CAKD,CAEAgvB,EAAO0Y,YAAa,kBAAmB1nC,GACvCgvB,EAAOr/B,gBAAiB,OAAQqQ,EACjC,EAEA,oBAAA20K,CAAsBS,GACrB,MAAM9mL,EAAQ8mL,EAAWhiJ,SAAU,mBAEnC,GAAK9kC,EACJ,OAAOA,EAGR,MAAMkR,EAAY41K,EAAWzxJ,aAAc,QAE3C,OAAKnkB,EACGu0K,GAAmCv0K,GAGpCq1K,EACR,GAEF,CAEKE,EAAkBlyL,UACtB4rL,EAAW5lL,KAAM,CAChBoxC,cAAe,eACfhF,cAAc,EACdw/I,gBAAiB,CAAEjmL,WAAY,YAE/B,UAAAymL,CAAYjsJ,GACXA,EAAOksE,SAAS/9F,IAAK,eAAgB,IAAIo9K,GAAqBvrJ,GAC/D,EAEA0rJ,kBAAmBxrL,GACwB,YAAnCA,EAAKy6B,aAAc,YAG3B,iBAAAwxJ,CAAmBjsL,GAClB,OAAOD,KAAKyrL,kBAAmBxrL,IAAUA,EAAKowC,aAAc,eAC7D,EAEA,sBAAAm2I,CAAwBzgJ,EAAQqmJ,EAAcr1K,GACxCq1K,EACJrmJ,EAAOtgC,aAAc,WAAY,WAAYsR,GAE7CgvB,EAAOr/B,gBAAiB,WAAYqQ,EAEtC,EAEA20K,qBAAsBS,GACdA,EAAW97I,aAAc,cAK9By7I,EAAkBzrB,YACtBmlB,EAAW5lL,KAAM,CAChBoxC,cAAe,YACfhF,aAAc,EACdw/I,gBAAiB,CAAEjmL,WAAY,SAE/B,UAAAymL,CAAYjsJ,GACXA,EAAOksE,SAAS/9F,IAAK,YAAa,IAAIk8K,GAAkBrqJ,GACzD,EAEA0rJ,kBAAmBxrL,GACX6hL,GAAoB7hL,EAAKy6B,aAAc,aAG/C,iBAAAwxJ,CAAmBjsL,GAClB,OAAOD,KAAKyrL,kBAAmBxrL,IAAUA,EAAKowC,aAAc,YAC7D,EAEA,sBAAAm2I,CAAwBzgJ,EAAQsmJ,EAAWt1K,GACxB,GAAbs1K,GAAoBA,EAAwB,EAChDtmJ,EAAOtgC,aAAc,QAAS4mL,EAAWt1K,GAEzCgvB,EAAOr/B,gBAAiB,QAASqQ,EAEnC,EAEA,oBAAA20K,CAAsBS,GACrB,MAAMG,EAA2BH,EAAWzxJ,aAAc,SAE1D,OAAO4xJ,GAAuB,EAAIA,EAAsB,CACzD,IAIF,OAAO9G,CACR,CA3TqB+G,CADOxsJ,EAAOpV,OAAOviB,IAAK,oBAG7C,UAAY09K,KAAYN,EACvBM,EAASkG,WAAYjsJ,GAErB3nC,EAAMkiC,OAAOZ,OAAQ,YAAa,CAAEgmD,gBAAiBomG,EAAS90I,gBAG9Dk3I,EAAYR,yBAA0B,CACrC3B,MAAO,OACP/0I,cAAe80I,EAAS90I,cAExB,sBAAAw1I,CAAwBzgJ,EAAQuoB,EAAgBnN,GAC/C2kI,EAASU,uBAAwBzgJ,EAAQuoB,EAAgBnN,EAC1D,IAKFphB,EAAO1hC,WAAWurF,IAAK,UAAW17E,KAAKo7D,IACtC,UAAYw8G,KAAYN,EACvBl8G,EAAW75D,GAAwB,aAAc87K,GAA+BzF,IAChFx8G,EAAW75D,GAAwB,aAAc87K,GAA+BzF,GACjF,IAIDoC,EAAYz4K,GACX,wBACA,CAAE+F,GAAO2rC,cAAaynI,sBACrB,UAAY9C,KAAYN,EAClBM,EAAS4F,qBAAsBvqI,IAAiBynI,EAAiB9C,EAAS90I,iBAC9Ex7B,EAAIjJ,QAAS,EACbiJ,EAAInJ,OAEN,IAKFrM,KAAK4P,SACJmwB,EAAOksE,SAAS7jG,IAAK,cACrB,gBACA,CAAEoN,EAAK6sK,KACNjqL,EAAM0tC,QAAQC,IACb,UAAY5mC,KAAQkjL,EACnB,UAAYyD,KAAYN,EAClBM,EAAS2F,kBAAmBtsL,IAIhC4mC,EAAOtgC,aAAcqgL,EAAS90I,cAAe80I,EAAS95I,aAAc7sC,EAGvE,GACE,IAKL+oL,EAAYz4K,GAA+B,aAAa,CAAE+F,GAAOyzK,YAAWljJ,aAC3E,UAAY,KAAE5mC,KAAU8pL,EACvB,UAAYnD,KAAYN,EAElBM,EAASoG,kBAAmB/sL,KAK5B2mL,EAAS2F,kBAAmBtsL,GAChC4mC,EAAOtgC,aAAcqgL,EAAS90I,cAAe80I,EAAS95I,aAAc7sC,GAIpE4mC,EAAOr/B,gBAAiBo/K,EAAS90I,cAAe7xC,GAGjDqW,EAAIjJ,QAAS,EAEf,IAID27K,EAAYz4K,GAA+B,aAAa,CAAE+F,GAAOyzK,YAAWljJ,aAC3E,UAAY,KAAE5mC,EAAI,mBAAE2gL,KAAwBmJ,EAE3C,GAAMnJ,GAKDA,EAAmBplJ,aAAc,aAAgBv7B,EAAKu7B,aAAc,YAKzE,UAAYorJ,KAAYN,EAAa,CACpC,MAAM,cAAEx0I,GAAkB80I,EAE1B,IAAMA,EAAS2F,kBAAmBtsL,GACjC,SAGD,MAAM3G,EAAQsnL,EAAmBplJ,aAAcsW,GAE1C7xC,EAAKu7B,aAAcsW,IAAmBx4C,IAC1CutC,EAAOtgC,aAAcurC,EAAex4C,EAAO2G,GAC3CqW,EAAIjJ,QAAS,EAEf,CACD,GAEF,E,eCvMG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ+wB,OC6BR,MAAMkvJ,WAA2BnvJ,GAS/BnlB,SAKAu0K,WAAgC,KAazCC,oCAA8D,KAS9DC,oBAAgE,KAShEC,yBAAoD,KAK3C3tJ,aAA6B,IAAI1J,GAKjCo3E,WAA+B,IAAI32E,GAKnC29E,WAAa,IAAIn8E,GAKjBs+E,YAahB,WAAA/zG,CACCw7B,GACA,kBAAEuuJ,EAAiB,iBAAEe,EAAgB,mBAAEC,IAMvCj/K,MAAO0vB,GAEP,MAAMwvJ,EAAoB,CACzB,KACA,sBAGD/sL,KAAKkY,SAAWlY,KAAK29B,mBAErB39B,KAAK81G,YAAc,IAAIpC,GAAa,CACnCC,WAAY3zG,KAAK2zG,WACjB10E,aAAcj/B,KAAKi/B,aACnBD,iBAAkBh/B,KAAK2sG,WACvBplD,QAAS,CAER6sD,cAAe,cAGfD,UAAW,SAMR23E,EAAkBxwJ,QACtBt7B,KAAKysL,WAAazsL,KAAKgtL,kBAAmBH,EAAmBC,GAC7D9sL,KAAKkY,SAAShK,IAAKlO,KAAKysL,aAExBM,EAAkBntL,KAAM,sCAKpBksL,EAAkBzrB,YAAcyrB,EAAkBlyL,YACtDoG,KAAKitL,8BAA+BnB,GAEpCiB,EAAkBntL,KAAM,gDAGzBI,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAOkuJ,GAER70K,SAAUlY,KAAKkY,UAEjB,CAKgB,MAAAggB,GAGf,GAFArqB,MAAMqqB,SAEDl4B,KAAKysL,WAAa,CACtBzsL,KAAK2zG,WAAWzlG,IAAKlO,KAAKysL,YAC1BzsL,KAAKi/B,aAAa/wB,IAAKlO,KAAKysL,WAAW11K,UAGlC/W,KAAK2sL,qBAAuB3sL,KAAK4sL,4BACrC5sL,KAAK2zG,WAAWzlG,IAAOlO,KAAKkY,SAASwb,KAAcqlF,YACnD/4G,KAAKi/B,aAAa/wB,IAAOlO,KAAKkY,SAASwb,KAAcqlF,WAAWhiG,UAGjE,UAAY9W,KAAQD,KAAKysL,WAAWv0K,SACnClY,KAAKysL,WAAWxtJ,aAAa/wB,IAAKjO,EAAK8W,SAGxCgoB,GAA4B,CAC3BC,iBAAkBh/B,KAAKysL,WAAW9/E,WAClC1tE,aAAcj/B,KAAKysL,WAAWxtJ,aAC9BC,UAAWl/B,KAAKysL,WAAWv0K,SAG3BinB,gBAAiB,IAAM,GAAO57B,OAC5B6e,iBAAkBpiB,KAAKysL,WAAY11K,SACnCm2K,iBAAkB,yBAClBnwL,MAAO,KACPzE,OACFg6B,oBAAqBtyB,KAAKu9B,QAAUv9B,KAAKu9B,OAAOjL,qBAElD,CAEA,GAAKtyB,KAAK2sL,oBAAsB,CAC/B3sL,KAAK2zG,WAAWzlG,IAAKlO,KAAK2sL,qBAC1B3sL,KAAKi/B,aAAa/wB,IAAKlO,KAAK2sL,oBAAoB51K,SAEhD,MAAMqf,EAAoBtzB,GAAiBA,EAAKszB,kBAKhDp2B,KAAK2sG,WAAW/6F,IAAK,aAAcwkB,GACnCp2B,KAAK2sG,WAAW/6F,IAAK,YAAawkB,GAClCp2B,KAAK2sG,WAAW/6F,IAAK,UAAWwkB,GAChCp2B,KAAK2sG,WAAW/6F,IAAK,YAAawkB,EACnC,CAEKp2B,KAAK4sL,2BACT5sL,KAAK2zG,WAAWzlG,IAAKlO,KAAK4sL,0BAC1B5sL,KAAKi/B,aAAa/wB,IAAKlO,KAAK4sL,yBAAyB71K,UAItD/W,KAAK2sG,WAAW/8F,SAAU5P,KAAK+W,QAChC,CAKO,KAAA0oB,GACNz/B,KAAK81G,YAAYlC,YAClB,CAKO,SAAAC,GACN7zG,KAAK81G,YAAYjC,WAClB,CAKgB,OAAA5rF,GACfpa,MAAMoa,UAENjoB,KAAKi/B,aAAahX,UAClBjoB,KAAK2sG,WAAW1kF,SACjB,CAQQ,iBAAA+kK,CAAmBG,EAAiCL,GAC3D,MAAML,EAAa,IAAIpvJ,GAAMr9B,KAAKu9B,QA8BlC,OA5BAkvJ,EAAWv0K,SAAWu0K,EAAW9uJ,mBACjC8uJ,EAAWv0K,SAASyb,QAASw5J,GAE7BV,EAAWxuJ,YAAa,CACvBlmB,IAAK,MACLxS,WAAY,CACX,aAAcunL,EACdjuJ,MAAO,CACN,KACA,wBAGF3mB,SAAUu0K,EAAWv0K,WAGtBu0K,EAAWv0K,SAAS3G,SAAU,WAAYhS,GAAIS,MAE9CysL,EAAWhtJ,MAAQ,WAClBz/B,KAAKkY,SAASub,MAAMgM,OACrB,EAEAgtJ,EAAWxtJ,aAAe,IAAI1J,GAC9Bk3J,EAAW9/E,WAAa,IAAI32E,GAE5By2J,EAAWv0J,SAEXu0J,EAAW9/E,WAAW/8F,SAAU68K,EAAW11K,SAEpC01K,CACR,CAQQ,6BAAAQ,CAA+BnB,GACtC,MAAM9wL,EAAIgF,KAAKu9B,OAAOviC,EAChBoyL,EAAwB,GAEzBtB,EAAkBzrB,aACtBrgK,KAAK2sL,oBAAsB3sL,KAAKqtL,yBAChCD,EAAsBxtL,KAAMI,KAAK2sL,sBAG7Bb,EAAkBlyL,WACtBoG,KAAK4sL,yBAA2B5sL,KAAKstL,8BACrCF,EAAsBxtL,KAAMI,KAAK4sL,2BAI7Bd,EAAkBxwJ,QACtBt7B,KAAK0sL,oCAAsC,IAAI,GAAiB1sL,KAAKu9B,OAAQ6vJ,GAE7EptL,KAAK0sL,oCAAoC96K,IAAK,CAC7C6mC,MAAOz9C,EAAG,mBACVm6C,aAAa,IAIdn1C,KAAK0sL,oCAAoC3zE,WAAW/xG,KAAM,aAAcsN,OACvE84K,EAAuB,aAAa,IAAKlhB,IAAgBA,EAAW70I,MAAM8I,GAAaA,MAGxFngC,KAAK0sL,oCAAoC3zE,WAAWtpG,GAAI,oBAAoB,CAAE+F,EAAK1S,EAAMq9B,KAClFA,IACLngC,KAAK0sL,oCAAqCv3I,aAAc,EACzD,IAGDn1C,KAAKkY,SAAShK,IAAKlO,KAAK0sL,sCAExB1sL,KAAKkY,SAASyb,QAASy5J,EAEzB,CAKQ,sBAAAC,GACP,MAAMryL,EAAIgF,KAAKu9B,OAAOviC,EAChB2xL,EAAsB,IAAInsE,GAAkBxgH,KAAKu9B,OAAQ8sF,IAiC/D,OA/BAsiE,EAAoB/6K,IAAK,CACxB6mC,MAAOz9C,EAAG,YACV6jC,MAAO,6CAGR8tJ,EAAoBlsE,UAAU7uG,IAAK,CAClChZ,IAAK,EACLgoF,KAAM,EACNpoF,MAAO,EACP8xH,UAAW,YAGZqiE,EAAoBlsE,UAAUhxG,GAAI,SAAS,KAC1C,MAAM89K,EAAeZ,EAAoBlsE,UAAU1pG,QAC7CspJ,EAAaktB,EAAaC,cAE3BnmK,OAAOy3F,MAAOuhD,GAGlBssB,EAAoB3rE,UAAYhmH,EAAG,8BAK9BuyL,EAAaE,gBAGlBztL,KAAK4Q,KAAwC,YAAa,CAAEyvJ,eAF5DssB,EAAoB3rE,UAAYhmH,EAAG,sCAGpC,IAGM2xL,CACR,CAKQ,2BAAAW,GACP,MAAMtyL,EAAIgF,KAAKu9B,OAAOviC,EAChB0yL,EAAqB,IAAIxxE,GAAkBl8G,KAAKu9B,QAUtD,OARAmwJ,EAAmB97K,IAAK,CACvBmoG,UAAU,EACVthE,MAAOz9C,EAAG,kBACV6jC,MAAO,gDAGR6uJ,EAAmBn8K,SAAU,WAAYhS,GAAIS,KAAM,gBAE5C0tL,CACR,E,eC9YG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQpwJ,OCuCR,MAAM,WAAyB,GAI7C,qBAAkB2E,GACjB,MAAO,kBACR,CAEO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAOxC,OAAOviC,EAClB2yL,EAAmB5tJ,EAAOpV,OAAOviB,IAAK,mBAK5C,GAAKulL,EAAiBryJ,OAAS,CAC9B,MAAMsyJ,EAAmB,CACxB,CACCn1I,MAAOz9C,EAAG,8BACVw4G,QAASx4G,EAAG,QACZmQ,KAAM,OACNmoG,KCzEL,ibD2EI,CACC76D,MAAOz9C,EAAG,gCACVw4G,QAASx4G,EAAG,UACZmQ,KAAM,SACNmoG,KE/EL,shBFiFI,CACC76D,MAAOz9C,EAAG,gCACVw4G,QAASx4G,EAAG,UACZmQ,KAAM,SACNmoG,KGrFL,wXHwFSu6E,EAAc7yL,EAAG,iBACjB8xL,EAAqB9xL,EAAG,gCACxBsqC,EAAc,eAEpBvF,EAAO+E,GAAGq2E,iBAAiBjtG,IAAKo3B,EAAawoJ,GAAwB,CACpE/tJ,SACA4tJ,mBACAI,kBAAmBzoJ,EACnBuoJ,cACAG,WAAY,GAAMh9E,aAClB87E,qBACAc,sBAID7tJ,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,WAAYo3B,IAAgB2oJ,GAA6B,CACxFluJ,SACA4tJ,mBACAI,kBAAmBzoJ,EACnBuoJ,cACAf,qBACAc,qBAEF,CAKA,GAAKD,EAAiBryJ,QAAUqyJ,EAAiBttB,YAAcstB,EAAiB/zL,SAAW,CAC1F,MAAMg0L,EAAmB,CACxB,CACCn1I,MAAOz9C,EAAG,iCACVw4G,QAASx4G,EAAG,WACZmQ,KAAM,UACNmoG,KI1HL,2qDJ4HI,CACC76D,MAAOz9C,EAAG,mDACVw4G,QAASx4G,EAAG,6BACZmQ,KAAM,uBACNmoG,KKhIL,oxGLkII,CACC76D,MAAOz9C,EAAG,qCACVw4G,QAASx4G,EAAG,eACZmQ,KAAM,cACNmoG,KMtIL,iyBNwII,CACC76D,MAAOz9C,EAAG,qCACVw4G,QAASx4G,EAAG,eACZmQ,KAAM,cACNmoG,KO5IL,qlBP8II,CACC76D,MAAOz9C,EAAG,qCACVw4G,QAASx4G,EAAG,eACZmQ,KAAM,cACNmoG,KQlJL,ikERoJI,CACC76D,MAAOz9C,EAAG,qCACVw4G,QAASx4G,EAAG,eACZmQ,KAAM,cACNmoG,KSxJL,6pDT2JSu6E,EAAc7yL,EAAG,iBACjB8xL,EAAqB9xL,EAAG,gCACxBsqC,EAAc,eAEpBvF,EAAO+E,GAAGq2E,iBAAiBjtG,IAAKo3B,EAAawoJ,GAAwB,CACpE/tJ,SACA4tJ,mBACAI,kBAAmBzoJ,EACnBuoJ,cACAG,WAAY,GAAM/8E,aAClB67E,qBACAc,sBAKID,EAAiBryJ,QACrByE,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,WAAYo3B,IAAgB2oJ,GAA6B,CACxFluJ,SACA4tJ,mBACAI,kBAAmBzoJ,EACnBuoJ,cACAf,qBACAc,qBAGH,CACD,EAiBD,SAASE,IAAwB,OAChC/tJ,EAAM,iBACN4tJ,EAAgB,kBAChBI,EAAiB,YACjBF,EAAW,WACXG,EAAU,mBACVlB,EAAkB,iBAClBc,IAUA,MAAMM,EAAgBnuJ,EAAOksE,SAAS7jG,IAAK2lL,GAE3C,OAASxwJ,IACR,MAAM4nF,EAAeC,GAAgB7nF,EAAQ+qF,IACvC6lE,EAAiBhpE,EAAapM,WAuCpC,OArCAoM,EAAan+G,KAAM,aAAczH,GAAI2uL,GACrC/oE,EAAatmF,MAAQ,0BAGrBsvJ,EAAe1+K,GAAI,WAAW,KAC7BswB,EAAOkB,QAAS8sJ,GAChBhuJ,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAG5B0uJ,EAAev8K,IAAK,CACnB6mC,MAAOo1I,EACPv6E,KAAM06E,EACNx6E,SAAS,EACTN,cAAc,IAGfi7E,EAAennL,KAAM,QAASzH,GAAI2uL,EAAe,SAAS11L,KAAWA,IAErE2sH,EAAat1G,KAAM,iBAAiB,KACnC,MAAMu+K,EAyFT,UAAmC,OAClCruJ,EAAM,iBACN4tJ,EAAgB,aAChBxoE,EAAY,kBACZ4oE,EAAiB,iBACjBH,EAAgB,mBAChBd,IASA,MAAMvvJ,EAASwC,EAAOxC,OAChBuuJ,EAAoB,IACtB6B,GAGsB,gBAArBI,IACJjC,EAAkBzrB,YAAa,EAC/ByrB,EAAkBlyL,UAAW,GAG9B,IAAIizL,EAAmB,KAEvB,GAAKf,EAAkBxwJ,OAAS,CAC/B,MAAM+yJ,EAA8DtuJ,EAAOksE,SAAS7jG,IAAK,aAEnFkmL,EAAqBC,GAAuB,CACjDxuJ,SACAguJ,oBACAM,qBAIKhD,EAAuBmD,GAA4BH,GAEzDxB,EAAmBe,EAAiB7nL,OAAQslL,GAAuBruL,IAAKsxL,EACzE,CAEA,MAAMF,EAAqB,IAAI5B,GAAoBjvJ,EAAQ,CAC1DuvJ,qBACAhB,oBACAe,qBAGIf,EAAkBxwJ,QAEtB+tF,GAA0BlE,GAAc,IAChCipE,EAAmB3B,WAAYv0K,SAASqc,MAAQjc,GAAgBA,EAAMimG,SAI/E,GAAKutE,EAAkBzrB,WAAa,CACnC,MAAMouB,EAA8D1uJ,EAAOksE,SAAS7jG,IAAK,aAEzFgmL,EAAmBzB,oBAAqB3lL,KAAM,aAAczH,GAAIkvL,GAChEL,EAAmBzB,oBAAqBlsE,UAAUz5G,KAAM,SAAUzH,GAAIkvL,GACtEL,EAAmB3+K,GAAI,aAAa,CAAE+F,EAAK1S,IAAUi9B,EAAOkB,QAAS,YAAan+B,IACnF,CAEA,GAAKgpL,EAAkBlyL,SAAW,CACjC,MAAM80L,EAAuE3uJ,EAAOksE,SAAS7jG,IAAK,gBAElGgmL,EAAmBxB,yBAA0B5lL,KAAM,aAAczH,GAAImvL,GACrEN,EAAmBxB,yBAA0B5lL,KAAM,QAASzH,GAAImvL,EAAqB,SAASl2L,KAAWA,IACzG41L,EAAmB3+K,GAAI,gBAAgB,KACtC,MAAMk/K,EAAaD,EAAoBl2L,MAEvCunC,EAAOkB,QAAS,eAAgB,CAAErnC,UAAW+0L,GAAc,GAE7D,CAKA,OAFAP,EAAmB78K,SAAU,WAAYhS,GAAI4lH,GAEtCipE,CACR,CAxK8BQ,CAA0B,CACpD7uJ,SACA4tJ,mBACAxoE,eACA4oE,oBACAjB,qBACAc,qBAGDzoE,EAAanD,UAAU9pG,SAAShK,IAAKkgL,EAAoB,IAK1DjpE,EAAa11G,GAAI,WAAW,KAC3BswB,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAGrB0lF,CAAY,CAErB,CAYA,SAASopE,IAAuB,OAC/BxuJ,EAAM,iBACNsuJ,EAAgB,kBAChBN,IAMA,MAAMxwJ,EAASwC,EAAOxC,OAChB2wJ,EAAgBnuJ,EAAOksE,SAAS7jG,IAAK2lL,GAE3C,MAAO,EAAIt1I,QAAOttC,OAAMmoG,OAAME,cAC7B,MAAM2C,EAAS,IAAI,GAAY54E,GA6B/B,OA3BA44E,EAAOvkG,IAAK,CAAE6mC,QAAO66D,OAAME,YAE3B66E,EAAiB5+K,GAAI,gBAAgB,KACpC0mG,EAAOoI,KAAO8vE,EAAiB71L,QAAU2S,CAAI,IAG9CgrG,EAAO1mG,GAAI,WAAW,KAEhBy+K,EAAc11L,MAEb61L,EAAiB71L,QAAU2S,EAC/B40B,EAAOkB,QAAS8sJ,GAIPM,EAAiB71L,QAAU2S,GACpC40B,EAAOkB,QAAS,YAAa,CAAE91B,SAKhC40B,EAAO3nC,MAAM0tC,QAAQ,KACpB/F,EAAOkB,QAAS,YAAa,CAAE91B,QAAQ,GAEzC,IAGMgrG,CAAM,CAEf,CAwGA,SAAS83E,IACR,OACCluJ,EAAM,iBACN4tJ,EAAgB,kBAChBI,EAAiB,YACjBF,EAAW,mBACXf,EAAkB,iBAClBc,IAUD,OAASrwJ,IACR,MAAMuoG,EAAW,IAAIgF,GAAiBvtG,GAChCsxJ,EAAc9uJ,EAAOksE,SAAS7jG,IAAK2lL,GACnCM,EAAmBtuJ,EAAOksE,SAAS7jG,IAAK,aACxCijL,EAAuBmD,GAA4BH,GACnDC,EAAqBC,GAAuB,CACjDxuJ,SACAguJ,oBACAM,qBAEKxB,EAAmBe,EAAiB7nL,OAAQslL,GAAuBruL,IAAKsxL,GACxEF,EAAqB,IAAI5B,GAAoBjvJ,EAAQ,CAC1DuvJ,qBACAhB,kBAAmB,IACf6B,EAGHttB,YAAY,EACZzmK,UAAU,GAEXizL,qBAeD,OAZAuB,EAAmB78K,SAAU,WAAYhS,GAAIumI,GAE7CA,EAAS/sB,WAAWnnG,IAAK,CACxB6mC,MAAOo1I,EACPv6E,KAAM,GAAOy6E,KAEdjoD,EAAS9jB,UAAU9pG,SAAShK,IAAKkgL,GACjCtoD,EAAS9+H,KAAM,aAAczH,GAAIsvL,EAAa,aAC9C/oD,EAASr2H,GAAI,WAAW,KACvBswB,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAGrBqmG,CAAQ,CAEjB,CAEA,SAAS0oD,GAA4BH,GACpC,MAAqD,mBAAzCA,EAAiBhD,qBACnByD,GAAsCT,EAAiBhD,qBAAsByD,EAAgB3jL,MAE/F,KAAM,CAEf,CU/ce,MAAM4jL,WAAuB,GAI3C,mBAAkBnsJ,GACjB,MAAO,CAAEipJ,GAAuB,GACjC,CAKA,qBAAkB5pJ,GACjB,MAAO,gBACR,E,eC9BG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ3E,OCWR,MAAM0xJ,WAAwCv7E,GAIrDw7E,kBASP,WAAAltL,CAAaw7B,EAAgB2xJ,GAC5BrhL,MAAO0vB,GAEP,MAAMviC,EAAIuiC,EAAOviC,EAEjBgF,KAAK4R,IAAK,QAAS,oCACnB5R,KAAKivL,kBAAoBjvL,KAAKmvL,qBAAsBD,GACpDlvL,KAAKivL,kBAAkB9sE,cAA+C,QAA/B5kF,EAAOjL,oBAAgC,KAAO,KACrFtyB,KAAKy4C,MAAQz9C,EAAG,sBAChBgF,KAAKkY,SAAShK,IAAKlO,KAAKivL,kBACzB,CAKA,oBAAWG,GACV,OAAOpvL,KAAKivL,kBAAkBz2L,KAC/B,CAKO,KAAAinC,GACNz/B,KAAKivL,kBAAkBxvJ,OACxB,CAOQ,oBAAA0vJ,CAAsBD,GAC7B,MAAM3xJ,EAASv9B,KAAKu9B,OACdviC,EAAIuiC,EAAQviC,EACZmsH,EAAW/B,GAAgB7nF,GAC3B8xJ,EAAmBrvL,KAAKsvL,sCAAuCnoE,EAAU+nE,GACzEnnB,EAAkB/sK,EAAG,wBA0B3B,OAxBAmsH,EAASv1G,IAAK,QAASy9K,EAAiB57J,MAAOr7B,MAAM4J,MAErDmlH,EAASpO,WAAW/xG,KAAM,SAAUzH,GAAI4nH,EAAU,SAAS3uH,GAAS02L,EAAW9mL,IAAK5P,KAEpF2uH,EAASpO,WAAWnnG,IAAK,CACxB2sG,MAAM,EACNxE,UAAU,EACVvG,QAASu0D,EACTlpI,MAAO,CAAE,wCACTk5E,UAAWgwD,EACXrgD,oBAAgB,IAGjBP,EAAS13G,GAAI,WAAW+F,IACvB2xG,EAAS3uH,MAAUgd,EAAItS,OAAsBlB,IAAI,IAGlDmlH,EAAS51G,SAAU,WAAYhS,GAAIS,MAEnCypH,GAAmBtC,EAAUkoE,EAAkB,CAC9Ct3E,UAAWgwD,EACX/0D,KAAM,SAGAmU,CACR,CASQ,qCAAAmoE,CACPnoE,EACA+nE,GAEA,MAAMK,EAAY,IAAI38J,GAEtB,UAAc5wB,EAAMy2C,KAAWy2I,EAAa,CAC3C,MAAM92L,EAAQ,IAAI,GAAW,CAC5B4J,OACAy2C,QACAshE,UAAU,EACV/G,KAAM,kBAGP56G,EAAM4O,KAAM,QAASzH,GAAI4nH,EAAU,SAAS3uH,GAASA,IAAUJ,EAAM4J,OAErEutL,EAAUrhL,IAAK,CAAE/C,KAAM,SAAU/S,SAClC,CAEA,OAAOm3L,CACR,E,eC7HG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQjyJ,OCgBR,MAAMkyJ,WAA0BnyJ,GAI9BoyJ,MAKAxwJ,aAKA0tE,WAOhB,WAAA5qG,CAAaw7B,GACZ1vB,MAAO0vB,GAEPv9B,KAAKyvL,MAAQzvL,KAAK29B,mBAElB39B,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLG,SAAU,CACT,CACCH,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,6BAGF3mB,SAAUlY,KAAKyvL,QAGjBlqL,WAAY,CACXs5B,MAAO,CACN,KACA,wBAKH7+B,KAAKi/B,aAAe,IAAI1J,GACxBv1B,KAAK2sG,WAAa,IAAI32E,GAEtB+I,GAA4B,CAC3BC,iBAAkBh/B,KAAK2sG,WACvB1tE,aAAcj/B,KAAKi/B,aACnBC,UAAWl/B,KAAKyvL,MAChBtwJ,gBAAiB,IAAM,GAAO57B,OAC5B6e,iBAAkBpiB,KAAK+W,QAASpQ,YAChCumL,iBAAkB,yBAClBnwL,MAAO,KACPzE,OACFg6B,oBAAqBtyB,KAAKu9B,QAAUv9B,KAAKu9B,OAAOjL,qBAElD,CAQO,UAAAo9J,CAAY54J,EAAmB90B,GACrC,MAAM2tL,EAAO,IAAI,GAAY3vL,KAAKu9B,QAgClC,OA9BAoyJ,EAAK/9K,IAAK,CACT6mC,MAAO3hB,EACPijF,UAAU,EACVl7E,MAAO,4BAKR8wJ,EAAK/1J,eAAgB,CACpBr0B,WAAY,CACXoyG,MAAO31G,GAERyN,GAAI,CACHmgL,UAAWD,EAAK9xJ,aAAat+B,GAAI,aACjCkgC,MAAOkwJ,EAAK9xJ,aAAat+B,GAAI,YAI/BowL,EAAKlgL,GAAI,aAAa,KACrBzP,KAAK4Q,KAAuC,YAAa,CAAE5O,OAAM80B,aAAa,IAG/E64J,EAAKlgL,GAAI,SAAS,KACjBzP,KAAK4Q,KAAuC,YAAa,CAAE5O,OAAM80B,aAAa,IAG/E64J,EAAKlgL,GAAI,WAAW,KACnBzP,KAAK4Q,KAAqC,UAAW,CAAE5O,OAAM80B,aAAa,IAGpE64J,CACR,CAKgB,MAAAz3J,GACfrqB,MAAMqqB,SAEN,UAAYj4B,KAAQD,KAAKyvL,MACxBzvL,KAAKi/B,aAAa/wB,IAAKjO,EAAK8W,SAG7B/W,KAAKyvL,MAAMhgL,GAAI,UAAU,CAAEqB,GAAaijB,QAAOC,cAC9C,GAAKD,EAAMz7B,OAAS,EACnB,UAAY2H,KAAQ8zB,EACnB/zB,KAAKi/B,aAAa/wB,IAAKjO,EAAK8W,SAG9B,GAAKid,EAAQ17B,OAAS,EACrB,UAAY2H,KAAQ+zB,EACnBh0B,KAAKi/B,aAAah5B,OAAQhG,EAAK8W,QAEjC,IAGD/W,KAAK2sG,WAAW/8F,SAAU5P,KAAK+W,QAChC,CAKgB,OAAAkR,GACfpa,MAAMoa,UAENjoB,KAAK2sG,WAAW1kF,SACjB,CAKO,KAAAwX,GACNz/B,KAAKyvL,MAAMh8J,MAAOgM,OACnB,E,cC3KG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQnC,OCMR,MAAMuyJ,WAA0BxyJ,GAsB9C,WAAAt7B,CAAaw7B,GACZ1vB,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAElB79B,KAAK4R,IAAK,YAAa,MACvB5R,KAAK4R,IAAK,OAAQ,MAClB5R,KAAKgH,KAAM,QAASzH,GAAIS,KAAM,YAAa8vL,IAE3C9vL,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLG,SAAU,CACT,CACCH,IAAK,OACLxS,WAAY,CACXs5B,MAAO,CACN,4BAGF3mB,SAAU,CACT,CAECmgB,KAAMrxB,EAAKzH,GAAI,QAAQyC,GAAQA,GAAc,SAIhD,CACC+V,IAAK,OACLxS,WAAY,CACXs5B,MAAO,CACN,4BAGF3mB,SAAU,CACT,CACCmgB,KAAMrxB,EAAKzH,GAAI,YAKnBgG,WAAY,CACXs5B,MAAO,CACN,KACA,uBAIJ,EAUD,SAASixJ,GAA0Bh5J,GAClC,GAAmB,OAAdA,EACJ,MAAO,GAKR,MAAO,MAAS,OAFAA,EAAUi5J,YAAa,GAAKrzL,SAAU,KAEnBoF,OAAQ,EAC5C,CCnFe,MAAMkuL,WAA8B3yJ,GAIlCzJ,MAKAqL,aAKA0tE,WAKGuK,aAKZ+4E,eAKAC,SAKAC,SAKP,WAAApuL,CACCw7B,EACA0yJ,EACAC,EACAC,GAEAtiL,MAAO0vB,GAEPv9B,KAAKiwL,eAAiBA,EACtBjwL,KAAKkwL,SAAWA,EAChBlwL,KAAKmwL,SAAWA,EAChBnwL,KAAK4zB,MAAQ5zB,KAAK29B,mBAClB39B,KAAKi/B,aAAe,IAAI1J,GACxBv1B,KAAK2sG,WAAa,IAAI32E,GAEtBh2B,KAAKk3G,aAAe,IAAIxD,GAAa,CACpCC,WAAY3zG,KAAK4zB,MACjBqL,aAAcj/B,KAAKi/B,aACnBD,iBAAkBh/B,KAAK2sG,WACvBplD,QAAS,CACR6sD,cAAe,cACfD,UAAW,SAIbn0G,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLG,SAAU,CACTlY,KAAKiwL,eACLjwL,KAAKkwL,SACLlwL,KAAKmwL,UAEN5qL,WAAY,CAGX0tG,SAAU,QAIZjzG,KAAK4zB,MAAM1lB,IAAKlO,KAAKiwL,eAAehB,kBAAkBl2E,YACtD/4G,KAAK4zB,MAAM1lB,IAAKlO,KAAKkwL,SACtB,CAKgB,MAAAh4J,GACfrqB,MAAMqqB,SAENl4B,KAAKi/B,aAAa/wB,IAAKlO,KAAKiwL,eAAehB,kBAAkBl2E,WAAWhiG,SACxE/W,KAAKi/B,aAAa/wB,IAAKlO,KAAKkwL,SAASn5K,SAGrC/W,KAAK2sG,WAAW/8F,SAAU5P,KAAK+W,QAChC,CAKgB,OAAAkR,GACfpa,MAAMoa,UAENjoB,KAAKi/B,aAAahX,UAClBjoB,KAAK2sG,WAAW1kF,SACjB,CAKO,KAAAwX,GACNz/B,KAAKiwL,eAAexwJ,OACrB,E,eCjIG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQnC,OAAvB,MCcM8yJ,GAA+B,MCFtB,MAAMC,WAAgC,GAIpD,qBAAkBpuJ,GACjB,MAAO,yBACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EACiB+kC,EAAOsC,QAAQj6B,IAAK,qBAE/CmgI,SAAU,SAAU,CAC1B,CAAE5wB,MAAO38G,EAAG,0BAA4B87B,UAAW,KACnD,CAAE6gF,MAAO38G,EAAG,2BAA6B87B,UAAW,KACpD,CAAE6gF,MAAO38G,EAAG,wBAA0B87B,UAAW,KACjD,CAAE6gF,MAAO38G,EAAG,0BAA4B87B,UAAW,KACnD,CAAE6gF,MAAO38G,EAAG,0BAA4B87B,UAAW,KACnD,CAAE6gF,MAAO38G,EAAG,2BAA6B87B,UAAW,KACpD,CAAE6gF,MAAO38G,EAAG,wBAA0B87B,UAAW,KACjD,CAAE6gF,MAAO38G,EAAG,0BAA4B87B,UAAW,KACnD,CAAE6gF,MAAO38G,EAAG,0BAA4B87B,UAAW,KACnD,CAAE6gF,MAAO38G,EAAG,2BAA6B87B,UAAW,KACpD,CAAE6gF,MAAO38G,EAAG,wBAA0B87B,UAAW,KACjD,CAAE6gF,MAAO38G,EAAG,0BAA4B87B,UAAW,KACnD,CAAE6gF,MAAO38G,EAAG,0BAA4B87B,UAAW,KACnD,CAAE6gF,MAAO38G,EAAG,2BAA6B87B,UAAW,KACpD,CAAE6gF,MAAO38G,EAAG,wBAA0B87B,UAAW,KACjD,CAAE6gF,MAAO38G,EAAG,0BAA4B87B,UAAW,KACnD,CAAE6gF,MAAO38G,EAAG,2BAA6B87B,UAAW,KACpD,CAAE6gF,MAAO38G,EAAG,mCAAqC87B,UAAW,MAC5D,CAAE6gF,MAAO38G,EAAG,kCAAoC87B,UAAW,MAC3D,CAAE6gF,MAAO38G,EAAG,wDAA0D87B,UAAW,MACjF,CAAE6gF,MAAO38G,EAAG,oCAAsC87B,UAAW,MAC7D,CAAE6gF,MAAO38G,EAAG,gCAAkC87B,UAAW,OACvD,CAAE2hB,MAAOz9C,EAAG,WAChB,ECxCc,MAAMs1L,WAA8B,GAIlD,qBAAkBruJ,GACjB,MAAO,uBACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EACiB+kC,EAAOsC,QAAQj6B,IAAK,qBAE/CmgI,SAAU,OAAQ,CACxB,CAAEzxG,UAAW,IAAK6gF,MAAO38G,EAAG,8CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,+CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,8CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,+CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,+BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,gCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,+BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,gCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,gCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,gCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,8BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,2BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,mBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,wBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,kBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,mBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,0BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,4BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,8BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,8BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,yBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,mBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,iBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,mBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,6BAC1B,CAAEy9C,MAAOz9C,EAAG,SAChB,EC7Cc,MAAMu1L,WAAsC,GAI1D,qBAAkBtuJ,GACjB,MAAO,+BACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EACiB+kC,EAAOsC,QAAQj6B,IAAK,qBAE/CmgI,SAAU,eAAgB,CAChC,CAAEzxG,UAAW,IAAK6gF,MAAO38G,EAAG,mBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,0BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,6BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,YAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,YAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,WAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,aAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,gBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,eAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,kBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,mBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,wBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,mCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,aAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,aAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,gBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,mBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,2BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,iBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,iBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,eAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,uBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,kBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,gBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,eAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,aAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,iBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,UAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,yBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,YAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,iBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,cAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,UAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,UAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,gCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,6BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC1B,CAAEy9C,MAAOz9C,EAAG,iBAChB,EC9Dc,MAAMw1L,WAA+B,GAInD,qBAAkBvuJ,GACjB,MAAO,wBACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EACiB+kC,EAAOsC,QAAQj6B,IAAK,qBAE/CmgI,SAAU,QAAS,CACzB,CAAEzxG,UAAW,IAAK6gF,MAAO38G,EAAG,uCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,qCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,uCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,qCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,2CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,yCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,0CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,wCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,uCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,qCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,uCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,qCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,0CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,wCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,uCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,qCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,2CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,yCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,0CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,wCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,wCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,2CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,yCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,uCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,qCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,uCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,qCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,uCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,qCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,0CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,iCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,8BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,4BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,2CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,yCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,wCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,2BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,wCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,2CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,yCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,uCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,qCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,wCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,gDAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,6BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,2BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,uCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,qCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,6CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,2CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,8BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,4BAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,wCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,2CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,yCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,wCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,wCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,uCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,qCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,uCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,qCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,2CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,yCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,6CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,2CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,uCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,qCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,2CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,yCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,2CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,yCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,0CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,0CAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,wCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oCAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,+BAC1B,CAAEy9C,MAAOz9C,EAAG,UAChB,EClJc,MAAMy1L,WAAkC,GAItD,qBAAkBxuJ,GACjB,MAAO,2BACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EACiB+kC,EAAOsC,QAAQj6B,IAAK,qBAE/CmgI,SAAU,WAAY,CAC5B,CAAEzxG,UAAW,IAAK6gF,MAAO38G,EAAG,gBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,cAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,aAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,eAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,cAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,uBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,eAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,kBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,cAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,kBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,iBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,cAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,eAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,gBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,eAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,aAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,oBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,cAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,aAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,gBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,iBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,cAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,iBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,iBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,iBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,cAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,wBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,kBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,eAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,sBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,qBAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,eAC5B,CAAE87B,UAAW,IAAK6gF,MAAO38G,EAAG,gBAC1B,CAAEy9C,MAAOz9C,EAAG,aAChB,EChDM,SAAS01L,GAAwB35L,EAAayB,EAAgByH,EAAY8lC,EAAgBiG,EAAwB,GACnHxzC,eAAyCwzC,GAAuDxzC,EAAQwzC,EAC5GjG,EAAOtgC,aAAc1O,EAAKyB,EAAOyH,GAEjC8lC,EAAOr/B,gBAAiB3P,EAAKkJ,EAE/B,CAUO,SAAS0wL,GAAsB5qJ,EAAgBy9B,EAA0Bj+D,EAAsC,CAAC,GACtH,MAAMqrL,EAAY7qJ,EAAOzgC,cAAe,YAAaC,GAKrD,OAHAwgC,EAAOssC,cAAe,YAAau+G,GACnC7qJ,EAAOrgC,OAAQkrL,EAAWptH,GAEnBotH,CACR,CAKO,SAASC,GAAqBC,EAAwBF,GAC5D,MAAM9+E,EAAQ8+E,EAAUhyL,OAAQA,OAC1BmyL,EAAiB3zL,SAAU00G,EAAMp3E,aAAc,mBAAgC,MAC/E,OAAEs2J,GAAWF,EAAWG,gBAAiBL,GAE/C,QAASG,GAAkBC,EAASD,CACrC,CA8BO,SAAS,GAA2BpwJ,GAC1C,MAAMyZ,EAAkBzZ,EAAUuX,qBAGlC,OAAKkC,GAAmBA,EAAgB7rC,GAAI,UAAW,SAC/C6rC,EAGDzZ,EAAUE,mBAAoB6P,aAAc,QACpD,CC9Be,SAASwgJ,KACvB,OAAS5nH,IACRA,EAAW75D,GAAwB,iBAAiB,CAAE+F,EAAK1S,EAAMumE,KAChE,MAAM8nH,EAAYruL,EAAK+2E,SAGvB,IAAMxQ,EAAcsB,WAAW1oE,KAAMkvL,EAAW,CAAEnvL,MAAM,IACvD,OAGD,MAAM,KAAEovL,EAAI,YAAEC,EAAW,eAAEN,GAuH9B,SAAoBI,GACnB,IACIJ,EADAM,EAAc,EAelB,MAAMC,EAAW,GACXC,EAAW,GAIjB,IAAIC,EAEJ,UAAYC,KAAc9wL,MAAMrB,KAAM6xL,EAAUrqJ,eAAmD,CAGlG,GAAyB,UAApB2qJ,EAAWzvL,MAAwC,UAApByvL,EAAWzvL,MAAwC,UAApByvL,EAAWzvL,KAC7E,SAIwB,UAApByvL,EAAWzvL,MAAqBwvL,IACpCA,EAAoBC,GAKrB,MAAMC,EAAM/wL,MAAMrB,KAAMmyL,EAAW3qJ,eAAgB/gC,QAChDic,GAAsDA,EAAGzT,GAAI,UAAW,QAG3E,UAAYojL,KAAMD,EAEjB,GACGF,GAAqBC,IAAeD,GAEjB,UAApBC,EAAWzvL,MACXrB,MAAMrB,KAAMqyL,EAAG7qJ,eAAgBxuC,QAC/BqI,MAAMrB,KAAMqyL,EAAG7qJ,eAAgBpwB,OAAOxS,GAAKA,EAAEqK,GAAI,UAAW,QAG7D8iL,IACAC,EAAS1xL,KAAM+xL,OACT,CACNJ,EAAS3xL,KAAM+xL,GAGf,MAAMC,EAAcC,GAA0BF,KAExCZ,GAAkBa,EAAcb,KACrCA,EAAiBa,EAEnB,CAEF,CAEA,MAAO,CACNP,cACAN,eAAgBA,GAAkB,EAClCK,KAAM,IAAKE,KAAaC,GAE1B,CA9LiDO,CAAWX,GAGnD5rL,EAAgE,CAAC,EAElEwrL,IACJxrL,EAAWwrL,eAAiBA,GAGxBM,IACJ9rL,EAAW8rL,YAAcA,GAG1B,MAAMv/E,EAAQzoC,EAActjC,OAAOzgC,cAAe,QAASC,GAE3D,GAAM8jE,EAAc8Q,WAAY23B,EAAOhvG,EAAK82E,aAA5C,CAaA,GATAvQ,EAAcsB,WAAWpC,QAAS4oH,EAAW,CAAEnvL,MAAM,IAGrDovL,EAAKxzL,SAASm0L,GAAO1oH,EAAc0C,YAAagmH,EAAK1oH,EAActjC,OAAOub,iBAAkBwwD,EAAO,UAGnGzoC,EAAc2C,gBAAiBmlH,EAAW9nH,EAActjC,OAAOub,iBAAkBwwD,EAAO,QAGnFA,EAAMxlE,QAAU,CACpB,MAAMylJ,EAAM1oH,EAActjC,OAAOzgC,cAAe,YAChD+jE,EAActjC,OAAOrgC,OAAQqsL,EAAK1oH,EAActjC,OAAOub,iBAAkBwwD,EAAO,QAEhF6+E,GAAsBtnH,EAActjC,OAAQsjC,EAActjC,OAAOub,iBAAkBywI,EAAK,OACzF,CAEA1oH,EAAc+Q,uBAAwB03B,EAAOhvG,EAlB7C,CAkBmD,GACjD,CAEL,CA6BO,SAASkvL,GAA4BzjI,GAC3C,OAAS+a,IACRA,EAAW75D,GAAwB,WAAY8+C,KAAgB,CAAE/4C,EAAK1S,GAAQijC,aAE7E,IAAMjjC,EAAKskE,WACV,OAGD,MAAMwpH,EAAY9tL,EAAKskE,WAAW32C,MAAM4jB,UAClCulC,EAAc7zC,EAAOub,iBAAkBsvI,EAAW,GAGxD,GAAK9tL,EAAK+2E,SAASvtC,QAGlB,YAFAvG,EAAOssC,cAAe,YAAauH,GAKpC,MAAMtzE,EAAa3F,MAAMrB,KAAMsxL,EAAU9pJ,eAGzC,GAAKxgC,EAAWoQ,OAAOvX,GAAQA,EAAKoP,GAAI,UAAW,aAAgB,CAClE,MAAMwpE,EAAYhyC,EAAOzgC,cAAe,aAExCygC,EAAOrgC,OAAQqyE,EAAWhyC,EAAOub,iBAAkBsvI,EAAW,IAE9D,UAAYzxL,KAAQmH,EACnBy/B,EAAOoZ,KAAMpZ,EAAO2b,cAAeviD,GAAQ4mC,EAAOub,iBAAkBy2B,EAAW,OAEjF,IACE,CAAE/qE,SAAU,OAAS,CAE1B,CAqGA,SAAS6kL,GAA0BF,GAClC,IAAIZ,EAAiB,EACjBnsL,EAAQ,EAGZ,MAAMsT,EAAWvX,MAAMrB,KAAMqyL,EAAG7qJ,eAC9B/gC,QAAQuS,GAAwB,OAAfA,EAAMtW,MAAgC,OAAfsW,EAAMtW,OAGhD,KAAQ4C,EAAQsT,EAAS5f,QAAqC,OAA3B4f,EAAUtT,GAAQ5C,MAAgB,CACpE,MAAMiwL,EAAK/5K,EAAUtT,GAKrBmsL,GAFgB3zL,SAAU60L,EAAGv3J,aAAc,YAAyB,KAGpE91B,GACD,CAEA,OAAOmsL,CACR,CChPe,MAAMmB,GAMJC,OAKCC,UAKAC,QAKAC,aAKAC,WAKAC,iBAKAC,UAOVC,KAOAC,UAOAC,QAQAC,WAKUC,cAKTC,kBAKAC,mBAAoB,EA8E5B,WAAAjxL,CAAa+vG,EAAgBvtG,EAA8B,CAAC,GAC3DvE,KAAKmyL,OAASrgF,EACd9xG,KAAKoyL,eAA4B,IAAhB7tL,EAAQwtL,IAAoBxtL,EAAQwtL,IAAMxtL,EAAQ0uL,UAAY,EAC/EjzL,KAAKqyL,aAA0B,IAAhB9tL,EAAQwtL,IAAoBxtL,EAAQwtL,IAAMxtL,EAAQ2uL,OACjElzL,KAAKsyL,kBAAkC,IAAnB/tL,EAAQysL,OAAuBzsL,EAAQysL,OAASzsL,EAAQ4uL,aAAe,EAC3FnzL,KAAKuyL,gBAAgC,IAAnBhuL,EAAQysL,OAAuBzsL,EAAQysL,OAASzsL,EAAQ6uL,UAC1EpzL,KAAKwyL,mBAAqBjuL,EAAQ8uL,gBAClCrzL,KAAKyyL,UAAY,IAAI1+K,IACrB/T,KAAK0yL,KAAO,EACZ1yL,KAAK2yL,UAAY,EACjB3yL,KAAK4yL,QAAU,EACf5yL,KAAK6yL,WAAa,EAClB7yL,KAAK8yL,cAAgB,IAAIphL,IACzB1R,KAAK+yL,mBAAqB,CAC3B,CAKA,CAASjyL,OAAOC,YACf,OAAOf,IACR,CAOO,IAAAsB,GACDtB,KAAKszL,sBACTtzL,KAAKuzL,wCAGN,MAAMxB,EAAM/xL,KAAKmyL,OAAOhrJ,SAAUnnC,KAAK2yL,WAGvC,IAAMZ,GAAO/xL,KAAKwzL,gBACjB,MAAO,CAAEjyL,MAAM,EAAM/I,WAAO,GAI7B,IAAMu5L,EAAIxjL,GAAI,UAAW,YAGxB,OAFAvO,KAAK2yL,YAEE3yL,KAAKsB,OAGb,GAAKtB,KAAKyzL,mBACT,OAAOzzL,KAAK0zL,oBAGb,IAAIC,EAAkD,KAEtD,MAAMC,EAAW5zL,KAAK6zL,cAEtB,GAAKD,EACC5zL,KAAKwyL,mBAAqBxyL,KAAK8zL,oBACnCH,EAAW3zL,KAAK+zL,gBAAiBH,EAASI,KAAMJ,EAAS7B,IAAK6B,EAAS5C,aAElE,CACN,MAAMgD,EAAOjC,EAAI5qJ,SAAUnnC,KAAK6yL,YAEhC,IAAMmB,EAEL,OAAOh0L,KAAK0zL,oBAGb,MAAMO,EAAU72L,SAAU42L,EAAKt5J,aAAc,YAAyB,KAChEw5J,EAAU92L,SAAU42L,EAAKt5J,aAAc,YAAyB,MAGjEu5J,EAAU,GAAKC,EAAU,IAC7Bl0L,KAAKm0L,aAAcH,EAAME,EAASD,GAG7Bj0L,KAAK8zL,oBACVH,EAAW3zL,KAAK+zL,gBAAiBC,IAGlCh0L,KAAK+yL,kBAAoB/yL,KAAK4yL,QAAUqB,CACzC,CAUA,OAPAj0L,KAAK4yL,UAEA5yL,KAAK4yL,SAAW5yL,KAAK+yL,mBACzB/yL,KAAK6yL,aAICc,GAAY3zL,KAAKsB,MACzB,CAQO,OAAA8yL,CAASrC,GACf/xL,KAAKyyL,UAAUvkL,IAAK6jL,EACrB,CAKQ,iBAAA2B,GAOP,OANA1zL,KAAK0yL,OACL1yL,KAAK2yL,YACL3yL,KAAK4yL,QAAU,EACf5yL,KAAK6yL,WAAa,EAClB7yL,KAAK+yL,mBAAqB,EAEnB/yL,KAAKsB,MACb,CAKQ,aAAAkyL,GAEP,YAAwB,IAAjBxzL,KAAKqyL,SAAyBryL,KAAK0yL,KAAO1yL,KAAKqyL,OACvD,CAKQ,gBAAAoB,GAEP,YAA2B,IAApBzzL,KAAKuyL,YAA4BvyL,KAAK4yL,QAAU5yL,KAAKuyL,UAC7D,CASQ,eAAAwB,CAAiBC,EAAeK,EAAYr0L,KAAK0yL,KAAM4B,EAAet0L,KAAK4yL,SAClF,MAAO,CACNrxL,MAAM,EACN/I,MAAO,IAAI+7L,GAAWv0L,KAAMg0L,EAAMK,EAAWC,GAE/C,CAKQ,eAAAR,GACP,MAAMU,EAAuBx0L,KAAKyyL,UAAUxkL,IAAKjO,KAAK0yL,MAChD+B,EAAsBz0L,KAAK0yL,KAAO1yL,KAAKoyL,UAEvCsC,EAA4B10L,KAAK4yL,QAAU5yL,KAAKsyL,aAChDqC,OAA6C,IAApB30L,KAAKuyL,YAA4BvyL,KAAK4yL,QAAU5yL,KAAKuyL,WAEpF,OAAOiC,GAAwBC,GAAuBC,GAA6BC,CACpF,CAKQ,WAAAd,GACP,MAAMe,EAAS50L,KAAK8yL,cAAc1qL,IAAKpI,KAAK0yL,MAG5C,OAAMkC,GAKCA,EAAOxsL,IAAKpI,KAAK4yL,UAJhB,IAKT,CASQ,YAAAuB,CAAcH,EAAeE,EAAiBD,GACrD,MAAMnxL,EAAO,CACZkxL,OACAjC,IAAK/xL,KAAK0yL,KACV1B,OAAQhxL,KAAK4yL,SAGd,QAAUiC,EAAc70L,KAAK0yL,KAAMmC,EAAc70L,KAAK0yL,KAAOwB,EAASW,IACrE,QAAUC,EAAiB90L,KAAK4yL,QAASkC,EAAiB90L,KAAK4yL,QAAUqB,EAASa,IAC5ED,GAAe70L,KAAK0yL,MAAQoC,GAAkB90L,KAAK4yL,SACvD5yL,KAAK+0L,iBAAkBF,EAAaC,EAAgBhyL,EAIxD,CASQ,gBAAAiyL,CAAkBhD,EAAaf,EAAgBluL,GAChD9C,KAAK8yL,cAAc7kL,IAAK8jL,IAC7B/xL,KAAK8yL,cAAclhL,IAAKmgL,EAAK,IAAIrgL,KAGjB1R,KAAK8yL,cAAc1qL,IAAK2pL,GAEhCngL,IAAKo/K,EAAQluL,EACvB,CAKQ,kBAAAwwL,GACP,QAAStzL,KAAKoyL,WACbpyL,KAAKoyL,UAAY,IAChBpyL,KAAKgzL,iBACR,CA4BQ,qCAAAO,GACP,MAAMyB,EAAiBh1L,KAAKi1L,cAAe,GAE3C,QAAUz6L,EAAIwF,KAAKoyL,WAAapyL,KAAKgzL,kBAAmBx4L,IAClDw6L,IAAmBh1L,KAAKi1L,cAAez6L,KAC3CwF,KAAK0yL,KAAOl4L,EACZwF,KAAK2yL,UAAYn4L,EACjBwF,KAAKgzL,mBAAoB,EAG5B,CAKQ,aAAAiC,CAAeC,GAGtB,MAAO,IAFKl1L,KAAKmyL,OAAOhrJ,SAAU+tJ,GAElBpuJ,eAAgBnY,QAAQ,CAAEwmK,EAAMpD,IACxCoD,EAAO/3L,SAAU20L,EAAIr3J,aAAc,YAAyB,MACjE,EACJ,EAMD,MAAM65J,GAIWP,KAKAjC,IAKAf,OAKAoE,cAKAC,iBAKCxC,WAKAF,UAKAR,OAUjB,WAAApwL,CAAauzL,EAA0BtB,EAAeK,EAAmBC,GACxEt0L,KAAKg0L,KAAOA,EACZh0L,KAAK+xL,IAAMuD,EAAY5C,KACvB1yL,KAAKgxL,OAASsE,EAAY1C,QAC1B5yL,KAAKo1L,cAAgBf,EACrBr0L,KAAKq1L,iBAAmBf,EACxBt0L,KAAK6yL,WAAayC,EAAYzC,WAC9B7yL,KAAK2yL,UAAY2C,EAAY3C,UAC7B3yL,KAAKmyL,OAASmD,EAAYnD,MAC3B,CAUA,YAAWoD,GACV,OAAOv1L,KAAK+xL,MAAQ/xL,KAAKo1L,eAAiBp1L,KAAKgxL,SAAWhxL,KAAKq1L,gBAChE,CAKA,aAAWG,GACV,OAAOp4L,SAAU4C,KAAKg0L,KAAKt5J,aAAc,YAAyB,IACnE,CAKA,cAAW+6J,GACV,OAAOr4L,SAAU4C,KAAKg0L,KAAKt5J,aAAc,YAAyB,IACnE,CAKA,YAAWw6J,GACV,OAAOl1L,KAAK2yL,SACb,CAKO,iBAAA+C,GAGN,OAFc11L,KAAKmyL,OAAO77L,KAAKkN,SAAUpL,MAE5BkpD,iBAAkBthD,KAAKmyL,OAAOhrJ,SAAUnnC,KAAK+xL,KAAkB/xL,KAAK6yL,WAClF,EClkBM,SAAS8C,GAAe7E,EAAwBvsL,GACtD,MAAO,CAAEutG,GAAS/rE,aACjB,MAAMsrJ,EAAcv/E,EAAMp3E,aAAc,gBAA6B,EAC/Dk7J,EAAe7vJ,EAAO8X,uBAAwB,QAAS,KAAM,IAC7Dg4I,EAAgB9vJ,EAAO8X,uBAAwB,SAAU,CAAEhf,MAAO,SAAW+2J,GAG9EvE,EAAc,GAClBtrJ,EAAOrgC,OACNqgC,EAAOub,iBAAkBs0I,EAAc,OACvC7vJ,EAAO8X,uBACN,QACA,KACA9X,EAAO8b,YAAY9qC,GAAWA,EAAQxI,GAAI,UAAW,aAAgBwI,EAAQnS,MAASysL,MAMpFA,EAAcP,EAAWgF,QAAShkF,IACtC/rE,EAAOrgC,OACNqgC,EAAOub,iBAAkBs0I,EAAc,OACvC7vJ,EAAO8X,uBACN,QACA,KACA9X,EAAO8b,YAAY9qC,GAAWA,EAAQxI,GAAI,UAAW,aAAgBwI,EAAQnS,OAAUysL,MAM1F,UAAY,eAAEhyI,EAAc,OAAEt5C,KAAYxB,EAAQwxL,gBACjDhwJ,EAAOrgC,OACNqgC,EAAOub,iBAAkBs0I,EAAcv2I,GACvCtZ,EAAO8b,WAAY97C,IAgBrB,OAXAggC,EAAOrgC,OACNqgC,EAAOub,iBAAkBs0I,EAAc,SACvC7vJ,EAAO8b,YAAY9qC,IACbA,EAAQxI,GAAI,UAAW,cAIpBhK,EAAQwxL,gBAAgB1+J,MAAM,EAAItxB,YAAcA,EAAQgR,QAI3DxS,EAAQyxL,SAkHjB,SAAwB70I,EAA0Bpb,GAGjD,OAFAA,EAAO2Y,kBAAmB,SAAS,EAAMyC,GAElCotG,GAAUptG,EAAapb,EAAQ,CAAE4oH,oBAAoB,GAC7D,CAtH4BsnC,CAAeJ,EAAe9vJ,GAAW8vJ,CAAa,CAElF,CAwBO,SAASK,GAAc3xL,EAAkC,CAAC,GAChE,MAAO,CAAEqsL,GAAa7qJ,aACrB,MAAMowJ,EAAWvF,EAAUhyL,OACrBkzG,EAAQqkF,EAASv3L,OACjBs2L,EAAWpjF,EAAMxqE,cAAe6uJ,GAEhCb,EAAc,IAAIpD,GAAapgF,EAAO,CAAEigF,IAAKmD,IAC7C7D,EAAcv/E,EAAMp3E,aAAc,gBAA6B,EAC/Dq2J,EAAiBj/E,EAAMp3E,aAAc,mBAAgC,EAE3E,IAAIv8B,EAA6B,KAGjC,UAAYi4L,KAAad,EACxB,GAAKc,EAAUpC,MAAQpD,EAAY,CAClC,MACMyF,EADYD,EAAUrE,IAAMV,GAAe+E,EAAUpF,OAASD,EAChC,KAAO,KAE3C5yL,EAASoG,EAAQyxL,SAChB/mC,GAAkBlpH,EAAOiY,sBAAuBq4I,GAAmBtwJ,GACnEA,EAAO8X,uBAAwBw4I,GAChC,KACD,CAGD,OAAOl4L,CAAM,CAEf,CAcO,SAASm4L,GAA6B/xL,EAAkC,CAAC,GAC/E,MAAO,CAAE0hE,GAAgBlgC,aACxB,IAAMkgC,EAAarnE,OAAQ2P,GAAI,UAAW,aACzC,OAAO,KAGR,IAAMgoL,GAAoCtwH,GACzC,OAAO,KAGR,GAAK1hE,EAAQyxL,SACZ,OAAOjwJ,EAAO8X,uBAAwB,OAAQ,CAAEhf,MAAO,6BACjD,CAEN,MAAMsiB,EAAcpb,EAAO8X,uBAAwB,KAInD,OAFA9X,EAAO2Y,kBAAmB,qCAAqC,EAAMyC,GAE9DA,CACR,EAEF,CAUO,SAASo1I,GAAoCtwH,GAKnD,OAFkD,GAFhCA,EAAarnE,OAEKgoC,cAEUq/B,EAqBjBr8B,mBAAmBtoC,OAE3BC,IAtBtB,CC/Ie,MAAMi1L,WAA2Bl2J,GAI/B,OAAAG,GACf,MAAMroC,EAAQ4H,KAAK+/B,OAAO3nC,MACpBuoC,EAAYvoC,EAAMoL,SAASm9B,UAC3BrG,EAASliC,EAAMkiC,OAErBt6B,KAAKmgC,UAoDP,SAA4BQ,EAA0CrG,GACrE,MAAMglB,EAAiB3e,EAAUE,mBAAoBjiC,OAC/C63L,EAAcn3I,IAAmBA,EAAehpD,KAAOgpD,EAAiBA,EAAe1gD,OAE7F,OAAO07B,EAAOq4C,WAAY8jH,EAAwB,QACnD,CAzDmBC,CAAmB/1J,EAAWrG,EAChD,CAegB,OAAA2G,CACf18B,EAKI,CAAC,GAEL,MAAMw7B,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACf04L,EAAyB/wJ,EAAOsC,QAAQj6B,IAAK,cAE7CuuL,EAAc52J,EAAOpV,OAAOviB,IAAK,8BACjCwuL,EAAiB72J,EAAOpV,OAAOviB,IAAK,sCAEb,IAAxB7D,EAAQ8sL,aAA6BsF,IACzCpyL,EAAQ8sL,YAAcsF,QAGS,IAA3BpyL,EAAQwsL,gBAAgC6F,IAC5CryL,EAAQwsL,eAAiB6F,GAG1Bx+L,EAAM0tC,QAAQC,IACb,MAAM+rE,EAAQg/E,EAAW+F,YAAa9wJ,EAAQxhC,GAE9CnM,EAAMwsG,aAAckN,EAAO,KAAM,KAAM,CAAE/M,oBAAqB,SAE9Dh/D,EAAOwX,aAAcxX,EAAOub,iBAAkBwwD,EAAM9wC,cAAe,CAAE,EAAG,EAAG,IAAO,GAAK,GAEzF,ECvDc,MAAM81H,WAAyBx2J,GAI7By2J,MAShB,WAAAh1L,CAAag+B,EAAgBx7B,EAAyC,CAAC,GACtEsJ,MAAOkyB,GAEP//B,KAAK+2L,MAAQxyL,EAAQwyL,OAAS,OAC/B,CAKgB,OAAAt2J,GACf,MAAME,EAAY3gC,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,UAEvCq2J,IADyBh3L,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cACjB6uL,+BAAgCt2J,GAAYroC,OAEnF0H,KAAKmgC,UAAY62J,CAClB,CASgB,OAAA/1J,GACf,MAAMlB,EAAS//B,KAAK+/B,OACdY,EAAYZ,EAAO3nC,MAAMoL,SAASm9B,UAClCmwJ,EAAyB/wJ,EAAOsC,QAAQj6B,IAAK,cAC7C8uL,EAA6B,UAAfl3L,KAAK+2L,MAEnBI,EAAqBrG,EAAWmG,+BAAgCt2J,GAChEy2J,EAAatG,EAAWuG,cAAeF,GAEvCpF,EAAMmF,EAAcE,EAAW3jK,MAAQ2jK,EAAW1jK,KAClDo+E,EAAQqlF,EAAoB,GAAIzmJ,aAAc,SAEpDogJ,EAAWwG,WAAYxlF,EAAO,CAAEylF,GAAIL,EAAcnF,EAAMA,EAAM,EAAGyF,wBAAyBN,GAC3F,EClDc,MAAMO,WAA4Bn3J,GAIhCy2J,MAShB,WAAAh1L,CAAag+B,EAAgBx7B,EAAwC,CAAC,GACrEsJ,MAAOkyB,GAEP//B,KAAK+2L,MAAQxyL,EAAQwyL,OAAS,OAC/B,CAKgB,OAAAt2J,GACf,MAAME,EAAY3gC,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,UAEvCq2J,IADyBh3L,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cACjB6uL,+BAAgCt2J,GAAYroC,OAEnF0H,KAAKmgC,UAAY62J,CAClB,CAUgB,OAAA/1J,GACf,MAAMlB,EAAS//B,KAAK+/B,OACdY,EAAYZ,EAAO3nC,MAAMoL,SAASm9B,UAClCmwJ,EAAyB/wJ,EAAOsC,QAAQj6B,IAAK,cAC7C5B,EAA8B,SAAfxG,KAAK+2L,MAEpBI,EAAqBrG,EAAWmG,+BAAgCt2J,GAChE+2J,EAAgB5G,EAAW6G,iBAAkBR,GAE7CnG,EAASxqL,EAAekxL,EAAcjkK,MAAQikK,EAAchkK,KAC5Do+E,EAAQqlF,EAAoB,GAAIzmJ,aAAc,SAEpDogJ,EAAW8G,cAAe9lF,EAAO,CAAEoM,QAAS,EAAGq5E,GAAI/wL,EAAewqL,EAASA,EAAS,GACrF,ECzDc,MAAM6G,WAAyBv3J,GAI7B9Z,UAQhB,WAAAzkB,CAAag+B,EAAgBx7B,EAAyD,CAAC,GACtFsJ,MAAOkyB,GAEP//B,KAAKwmB,UAAYjiB,EAAQiiB,WAAa,cACvC,CAKgB,OAAAia,GACf,MACMq3J,EADyB93L,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cACvB6uL,+BAAgCj3L,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,WAE5F3gC,KAAKmgC,UAAqC,IAAzB23J,EAAcx/L,MAChC,CAKgB,OAAA2oC,GACf,MAAM6vJ,EAAyB9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAClDwoL,EAAYE,EAAWmG,+BAAgCj3L,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,WAAa,GAC7D,iBAAnB3gC,KAAKwmB,UAGzBsqK,EAAWiH,sBAAuBnH,EAAW,GAE7CE,EAAWkH,oBAAqBpH,EAAW,EAE7C,EChBM,SAASqH,GACfC,EACAC,EAMApyJ,GAEA,MAAM,SAAEktJ,EAAQ,YAAEE,EAAW,OAAED,EAAM,UAAEE,GAAc+E,EAG/CC,EAAeryJ,EAAOzgC,cAAe,SACrC+yL,EAAanF,EAASD,EAAW,EAEvC,QAAUz4L,EAAI,EAAGA,EAAI69L,EAAY79L,IAChCurC,EAAOssC,cAAe,WAAY+lH,EAAc,OAGjD,MAAME,EAAW,IAAK,IAAIpG,GAAagG,EAAa,CAAEjF,WAAUC,SAAQC,cAAaC,YAAWC,iBAAiB,KAGjH,UAActB,IAAKwG,EAAWvH,OAAQwH,EAAcxE,KAAMpD,EAAS,SAAE2E,EAAQ,cAAEH,EAAa,iBAAEC,KAAsBiD,EAAW,CAE9H,MAAMG,EAAoBF,EAAYtF,EAChClB,EAAMqG,EAAajxJ,SAAUsxJ,GAGnC,GAAMlD,EAQD,CACJ,MAAMmD,EAAgB3yJ,EAAO02D,aAAcm0F,GAE3C7qJ,EAAO0pB,OAAQipI,EAAe3G,GAI9B4G,GAAuBD,EAAeH,EAAWC,EAActF,EAAQE,EAAWrtJ,EACnF,MAbMqvJ,EAAgBnC,GAAYoC,EAAmBlC,IACnDxC,GAAsB5qJ,EAAQA,EAAOub,iBAAkBywI,EAAK,OAa/D,CAKA,OA6MD,SAAoCqG,EAAuBF,EAAsBjF,EAAkBE,EAAqBptJ,GACvH,MAAMsrJ,EAAcj0L,SAAU86L,EAAYx9J,aAAc,gBAA6B,KAErF,GAAK22J,EAAc,EAAI,CAEtBX,GAAwB,cADEW,EAAc4B,EACkBmF,EAAcryJ,EAAQ,EACjF,CAEA,MAAMgrJ,EAAiB3zL,SAAU86L,EAAYx9J,aAAc,mBAAgC,KAE3F,GAAKq2J,EAAiB,EAAI,CAEzBL,GAAwB,iBADKK,EAAiBoC,EACkBiF,EAAcryJ,EAAQ,EACvF,CACD,CA7NC6yJ,CAA2BR,EAAcF,EAAajF,EAAUE,EAAaptJ,GAEtEqyJ,CACR,CAyBO,SAASS,GAA+B/mF,EAAgBgnF,EAAoB7F,EAAmB,GACrG,MAAM8F,EAA0B,GAE1BzD,EAAc,IAAIpD,GAAapgF,EAAO,CAAEmhF,WAAUC,OAAQ4F,EAAa,IAE7E,UAAYE,KAAY1D,EAAc,CACrC,MAAM,IAAEvD,EAAG,WAAE0D,GAAeuD,EAGvBjH,EAAM+G,GAAcA,GAFN/G,EAAM0D,EAAa,GAGrCsD,EAAMn5L,KAAMo5L,EAEd,CAEA,OAAOD,CACR,CAOO,SAASE,GAAmBrI,EAAoBsI,EAAkBnzJ,GACxE,MAAMowJ,EAAWvF,EAAUhyL,OACrBkzG,EAAQqkF,EAASv3L,OACjBs2L,EAAWiB,EAASvxL,MAGpBu0L,EAAaD,EAAWhE,EAExBkE,EAAoC,CAAC,EACrCC,EAJUj8L,SAAUwzL,EAAUl2J,aAAc,YAIjBy+J,EAE5BE,EAAiB,IACrBD,EAAkBlF,QAAUmF,GAG7B,MAAMpF,EAAU72L,SAAUwzL,EAAUl2J,aAAc,YAAyB,KAEtEu5J,EAAU,IACdmF,EAAkBnF,QAAUA,GAG7B,MACMf,EADWgC,EACSiE,EACpBb,EAAW,IAAK,IAAIpG,GAAapgF,EAAO,CAAEmhF,SAF/BiC,EAEyChC,SAAQG,iBAAiB,KAEnF,IACIiG,EADAC,EAAU,KAGd,UAAYnD,KAAakC,EAAW,CACnC,MAAM,IAAEvG,EAAG,OAAEf,EAAM,KAAEgD,GAASoC,EAEzBpC,IAASpD,QAA6B,IAAhB0I,IAC1BA,EAActI,QAGM,IAAhBsI,GAA6BA,IAAgBtI,GAAUe,IAAQmB,IACnEqG,EAAU5I,GAAsB5qJ,EAAQqwJ,EAAUV,oBAAqB0D,GAEzE,CAKA,OAFA1I,GAAwB,UAAWyI,EAAYvI,EAAW7qJ,GAEnDwzJ,CACR,CA2BO,SAASC,GAAiC1nF,EAAgB2nF,GAChE,MAAMC,EAAe,GAEfpE,EAAc,IAAIpD,GAAapgF,GAErC,UAAYknF,KAAY1D,EAAc,CACrC,MAAM,OAAEtE,EAAM,UAAEwE,GAAcwD,EAGzBhI,EAASyI,GAAiBA,GAFTzI,EAASwE,EAAY,GAG1CkE,EAAa95L,KAAMo5L,EAErB,CAEA,OAAOU,CACR,CASO,SAASC,GAAiB/I,EAAoB0I,EAAqBM,EAAqB7zJ,GAC9F,MACM8zJ,EAAaD,EAAcN,EAE3BF,EAAoC,CAAC,EACrCU,EAJU18L,SAAUwzL,EAAUl2J,aAAc,YAIjBm/J,EAE5BC,EAAiB,IACrBV,EAAkBnF,QAAU6F,GAG7B,MAAM5F,EAAU92L,SAAUwzL,EAAUl2J,aAAc,YAAyB,KAEtEw5J,EAAU,IACdkF,EAAkBlF,QAAUA,GAG7B,MAAMqF,EAAU5I,GAAsB5qJ,EAAQA,EAAOwb,oBAAqBqvI,GAAawI,GAKvF,OAFA1I,GAAwB,UAAWmJ,EAAYjJ,EAAW7qJ,GAEnDwzJ,CACR,CAQO,SAASZ,GACf/H,EACAmJ,EACAC,EACAC,EACAC,EACAn0J,GAEA,MAAMkuJ,EAAU72L,SAAUwzL,EAAUl2J,aAAc,YAAyB,KACrEw5J,EAAU92L,SAAUwzL,EAAUl2J,aAAc,YAAyB,KAI3E,GAFkBs/J,EAAa/F,EAAU,EAExBiG,EAAc,CAG9BxJ,GAAwB,UAFJwJ,EAAcF,EAAa,EAECpJ,EAAW7qJ,EAAQ,EACpE,CAIA,GAFeg0J,EAAU7F,EAAU,EAErB+F,EAAW,CAGxBvJ,GAAwB,UAFJuJ,EAAWF,EAAU,EAEOnJ,EAAW7qJ,EAAQ,EACpE,CACD,CA2CO,SAASo0J,GAAoBroF,EAAgBg/E,GACnD,MAAM3tK,EAAQ2tK,EAAWsJ,WAAYtoF,GAC/BuoF,EAAa,IAAI15L,MAAOwiB,GAAQnY,KAAM,GAE5C,UAAY,OAAEgmL,KAAY,IAAIkB,GAAapgF,GAC1CuoF,EAAYrJ,KAGb,MAAMsJ,EAAeD,EAAW1rK,QAAQ,CAAExwB,EAAQo8L,EAAYvJ,IACtDuJ,EAAap8L,EAAS,IAAKA,EAAQ6yL,IACxC,IAEH,GAAKsJ,EAAahiM,OAAS,EAAI,CAE9B,MAAMkiM,EAAcF,EAAcA,EAAahiM,OAAS,GAKxD,OAFAw4L,EAAW2J,cAAe3oF,EAAO,CAAEylF,GAAIiD,KAEhC,CACR,CAEA,OAAO,CACR,CA+BO,SAASE,GAAiB5oF,EAAgBg/E,GAChD,MAAM6J,EAAY,GACZC,EAAgB9J,EAAWgF,QAAShkF,GAE1C,QAAUojF,EAAW,EAAGA,EAAW0F,EAAe1F,IAAa,CAC7CpjF,EAAM3qE,SAAU+tJ,GAEnB5oJ,SACbquJ,EAAU/6L,KAAMs1L,EAElB,CAEA,GAAKyF,EAAUriM,OAAS,EAAI,CAE3B,MAAMuiM,EAAWF,EAAWA,EAAUriM,OAAS,GAK/C,OAFAw4L,EAAWgK,WAAYhpF,EAAO,CAAEylF,GAAIsD,KAE7B,CACR,CAEA,OAAO,CACR,CA0BO,SAASE,GAAwBjpF,EAAgBg/E,GAChCqJ,GAAoBroF,EAAOg/E,IAIjD4J,GAAiB5oF,EAAOg/E,EAE1B,CAoBO,SAASkK,GACflpF,EACAmpF,GAOA,MAAMC,EAAav6L,MAAMrB,KAAM,IAAI4yL,GAAapgF,EAAO,CACtDqhF,YAAa8H,EAAWE,YACxB/H,UAAW6H,EAAWG,WACtBrJ,IAAKkJ,EAAWI,WAMjB,GAHkCH,EAAWxkL,OAAO,EAAI++K,gBAAiC,IAAfA,IAIzE,OAAOwF,EAAWI,QAInB,MAAMC,EAAoBJ,EAAY,GAAIzF,WAAa,EACvD,OAAOwF,EAAWI,QAAUC,CAC7B,CAuBO,SAASC,GACfzpF,EACAmpF,GAOA,MAAMO,EAAgB76L,MAAMrB,KAAM,IAAI4yL,GAAapgF,EAAO,CACzDmhF,SAAUgI,EAAWQ,SACrBvI,OAAQ+H,EAAWI,QACnBrK,OAAQiK,EAAWG,cAMpB,GAHkCI,EAAc9kL,OAAO,EAAI8+K,eAA+B,IAAdA,IAI3E,OAAOyF,EAAWG,WAInB,MAAMM,EAAoBF,EAAe,GAAIhG,UAAY,EACzD,OAAOyF,EAAWG,WAAaM,CAChC,CCzfe,MAAMC,WAAyBr7J,GAI7B9Z,UAKAo1K,aAchB,WAAA75L,CAAag+B,EAAgBx7B,GAC5BsJ,MAAOkyB,GAEP//B,KAAKwmB,UAAYjiB,EAAQiiB,UACzBxmB,KAAK47L,aAAiC,SAAlB57L,KAAKwmB,WAA0C,QAAlBxmB,KAAKwmB,SACvD,CAKgB,OAAAia,GACf,MAAMo7J,EAAc77L,KAAK87L,oBAEzB97L,KAAKxH,MAAQqjM,EACb77L,KAAKmgC,YAAc07J,CACpB,CASgB,OAAA56J,GACf,MAAM7oC,EAAQ4H,KAAK+/B,OAAO3nC,MACpB6f,EAAM7f,EAAMoL,SAEZotL,EADyB5wL,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAC3B2zL,iCAAkC9jL,EAAI0oB,WAAa,GAE1Ek7J,EAAc77L,KAAKxH,MACnBguB,EAAYxmB,KAAKwmB,UAEvBpuB,EAAM0tC,QAAQC,IACb,MAAMi2J,EAA2B,SAAbx1K,GAAqC,QAAbA,EAGtCy1K,EAAiBD,EAAcpL,EAAYiL,EAC3CK,EAAiBF,EAAcH,EAAcjL,EAG7CuL,EAAsBD,EAAat9L,QAmJ5C,SAA0Bs9L,EAAuBD,EAAuBl2J,GACjEuG,GAAS4vJ,KACT5vJ,GAAS2vJ,IACbl2J,EAAO9/B,OAAQ8/B,EAAO4b,cAAes6I,IAGtCl2J,EAAOoZ,KAAMpZ,EAAO4b,cAAeu6I,GAAgBn2J,EAAOub,iBAAkB26I,EAAc,SAI3Fl2J,EAAO9/B,OAAQi2L,EAChB,CA5JGE,CAAiBF,EAAcD,EAAcl2J,GAE7C,MAAMs2J,EAAgBr8L,KAAK47L,aAAe,UAAY,UAChDU,EAAWl/L,SAAUwzL,EAAUl2J,aAAc2hK,IAA6B,KAC1EE,EAAkBn/L,SAAUy+L,EAAYnhK,aAAc2hK,IAA6B,KAGzFt2J,EAAOtgC,aAAc42L,EAAeC,EAAWC,EAAiBN,GAChEl2J,EAAOwX,aAAcxX,EAAO4b,cAAes6I,IAE3C,MAAMnL,EAAyB9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAIxD2yL,GAHcoB,EAAoBzrJ,aAAc,SAGjBogJ,EAAY,GAE7C,CAKQ,iBAAAgL,GACP,MACM7jL,EADQjY,KAAK+/B,OAAO3nC,MACRoL,SACZstL,EAAyB9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAClDwoL,EAAYE,EAAWiL,iCAAkC9jL,EAAI0oB,WAAa,GAEhF,IAAMiwJ,EACL,OAID,MAAMiL,EAAc77L,KAAK47L,aAuB3B,SAA4BhL,EAAoBpqK,EAAkCsqK,GACjF,MAAMqF,EAAWvF,EAAUhyL,OACrBkzG,EAAQqkF,EAASv3L,OACjB49L,EAA8B,SAAbh2K,EAAuBoqK,EAAU15K,YAAc05K,EAAUnoK,gBAC1Eg0K,GAAsB3qF,EAAMp3E,aAAc,mBAAgC,GAAM,EAEtF,IAAM8hK,EACL,OAID,MAAME,EAA4B,SAAbl2K,EAAuBoqK,EAAY4L,EAClDG,EAA6B,SAAbn2K,EAAuBg2K,EAAiB5L,GAGtDI,OAAQ4L,GAAmB9L,EAAWG,gBAAiByL,IACvD1L,OAAQ6L,GAAoB/L,EAAWG,gBAAiB0L,GAE1DG,EAAe1/L,SAAUs/L,EAAWhiK,aAAc,YAAyB,KAE3EqiK,EAA8BlM,GAAqBC,EAAY4L,GAC/DM,EAA+BnM,GAAqBC,EAAY6L,GAGtE,GAAKF,GAAqBM,GAA+BC,EACxD,OAOD,OAHyBJ,EAAiBE,IAAiBD,EAGjCL,OAAiB,CAC5C,CAvDGS,CAAmBrM,EAAW5wL,KAAKwmB,UAAWsqK,GA4DjD,SAA0BF,EAAoBpqK,EAAkCsqK,GAC/E,MAAMqF,EAAWvF,EAAUhyL,OACrBkzG,EAAQqkF,EAASv3L,OAEjBs2L,EAAWpjF,EAAMxqE,cAAe6uJ,GAGtC,GAAoB,QAAb3vK,GAAuB0uK,IAAapE,EAAWgF,QAAShkF,GAAU,GAAsB,MAAbtrF,GAAkC,IAAb0uK,EACtG,OAAO,KAGR,MAAMhB,EAAU92L,SAAUwzL,EAAUl2J,aAAc,YAAyB,KACrE22J,EAAcv/E,EAAMp3E,aAAc,gBAAmB,EAErDwiK,EAAmC,QAAb12K,GAAyB0uK,EAAWhB,IAAc7C,EACxE8L,EAAmC,MAAb32K,GAAqB0uK,IAAa7D,EAG9D,GAAKA,IAAiB6L,GAAuBC,GAC5C,OAAO,KAGR,MAAMC,EAAqBhgM,SAAUwzL,EAAUl2J,aAAc,YAAyB,KAChF2iK,EAAgC,QAAb72K,EAAsB0uK,EAAWkI,EAAqBlI,EAEzEoD,EAAW,IAAK,IAAIpG,GAAapgF,EAAO,CAAEohF,OAAQmK,KAElDC,EAAkBhF,EAAS/jK,MAAM/7B,GAASA,EAAMw7L,OAASpD,IACzD2M,EAAcD,EAAgBtM,OAE9BwM,EAAkBlF,EAAS/jK,MAAM,EAAIw9J,MAAK0D,aAAYzE,YACtDA,IAAWuM,IAIE,QAAb/2K,EAEGurK,IAAQsL,EAGRA,IAAqBtL,EAAM0D,KAIpC,OAAO+H,GAAmBA,EAAgBxJ,KAAOwJ,EAAgBxJ,KAAO,IACzE,CAxGGyJ,CAAiB7M,EAAW5wL,KAAKwmB,UAAWsqK,GAE7C,IAAM+K,EACL,OAID,MAAMQ,EAAgBr8L,KAAK47L,aAAe,UAAY,UAChDl3I,EAAOtnD,SAAUwzL,EAAUl2J,aAAc2hK,IAA6B,KAI5E,OAFwBj/L,SAAUy+L,EAAYnhK,aAAc2hK,IAA6B,OAEhE33I,EACjBm3I,OADR,CAGD,EAgHD,SAASvvJ,GAASskJ,GACjB,MAAM8M,EAAkB9M,EAAUzpJ,SAAU,GAE5C,OAA+B,GAAxBypJ,EAAUhqJ,YAAmB82J,EAAgBnvL,GAAI,UAAW,cAAiBmvL,EAAgBpxJ,OACrG,CCxPe,MAAMqxJ,WAAyBr9J,GAI7B,OAAAG,GACf,MAAMqwJ,EAAyB9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAClD0vL,EAAgBhH,EAAWmG,+BAAgCj3L,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,WACtFi9J,EAAY9F,EAAe,GAEjC,GAAK8F,EAAY,CAChB,MAAM9rF,EAAQ8rF,EAAUltJ,aAAc,SAEhCmtJ,EADgB/M,EAAWgF,QAAShkF,GACL,EAE/BgsF,EAAqBhN,EAAWuG,cAAeS,GAE/CiG,EAAkD,IAA7BD,EAAmBrqK,OAAeqqK,EAAmBpqK,OAASmqK,EAGzF79L,KAAKmgC,WAAa49J,CACnB,MACC/9L,KAAKmgC,WAAY,CAEnB,CAKgB,OAAAc,GACf,MAAM7oC,EAAQ4H,KAAK+/B,OAAO3nC,MACpB04L,EAAyB9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAElD41L,EAAiBlN,EAAWmG,+BAAgC7+L,EAAMoL,SAASm9B,WAC3Es9J,EAAoBnN,EAAWuG,cAAe2G,GAE9CJ,EAAYI,EAAgB,GAC5BlsF,EAAQ8rF,EAAUltJ,aAAc,SAEhCwtJ,EAAqBpN,EAAWG,gBAAiB2M,GAAY5M,OAEnE54L,EAAM0tC,QAAQC,IACb,MAAMo4J,EAAeF,EAAkBvqK,KAAOuqK,EAAkBxqK,MAAQ,EAExEq9J,EAAWgK,WAAYhpF,EAAO,CAC7BylF,GAAI0G,EAAkBxqK,MACtB29J,KAAM+M,IAGP,MAAMC,EAYT,SAAyBtsF,EAAgBusF,EAAyBC,EAAuB1D,GAExF,MAAM7I,EAAMjgF,EAAM3qE,SAAUtuC,KAAKD,IAAKylM,EAAiBzD,EAAgB,IAGvE,IAAIwD,EAAcrM,EAAI5qJ,SAAU,GAC5B6pJ,EAAS,EAEb,UAAYJ,KAAamB,EAAIjrJ,cAAgB,CAC5C,GAAKkqJ,EAASsN,EACb,OAAOF,EAGRA,EAAcxN,EACdI,GAAU5zL,SAAUwzL,EAAUl2J,aAAc,YAAyB,IACtE,CAEA,OAAO0jK,CACR,CA9BuBG,CAAgBzsF,EAAOmsF,EAAkBxqK,MAAOyqK,EAAoBpN,EAAWgF,QAAShkF,IAE5G/rE,EAAOwX,aAAcxX,EAAOub,iBAAkB88I,EAAa,GAAK,GAElE,EC9Cc,MAAMI,WAA4Bl+J,GAIhC,OAAAG,GACf,MAAMqwJ,EAAyB9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAClD0vL,EAAgBhH,EAAWmG,+BAAgCj3L,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,WACtFi9J,EAAY9F,EAAe,GAEjC,GAAK8F,EAAY,CAChB,MAAM9rF,EAAQ8rF,EAAUltJ,aAAc,SAChC+tJ,EAAmB3N,EAAWsJ,WAAYtoF,IAE1C,MAAEr+E,EAAK,KAAEC,GAASo9J,EAAW6G,iBAAkBG,GAErD93L,KAAKmgC,UAAYzM,EAAOD,EAAUgrK,EAAmB,CACtD,MACCz+L,KAAKmgC,WAAY,CAEnB,CAKgB,OAAAc,GACf,MAAM6vJ,EAAyB9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAK,eAChDw1L,EAAWc,GA4ErB,SAA2B/9J,EAA0CmwJ,GACpE,MAAMkN,EAAiBlN,EAAWmG,+BAAgCt2J,GAC5Di9J,EAAYI,EAAgB,GAC5BU,EAAWV,EAAeh/L,MAE1B2/L,EAAc,CAAEf,EAAWc,GAEjC,OAAOd,EAAU71J,SAAU22J,GAAaC,EAAcA,EAAYpzL,SACnE,CApFkCqzL,CAAkB5+L,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,UAAWmwJ,GAClFh/E,EAAQ8rF,EAAUh/L,OAAQA,OAG1B05L,EAAW,IAAK,IAAIpG,GAAapgF,IAGjC+sF,EAAuB,CAC5BprK,MAAO6kK,EAAS/jK,MAAM/7B,GAASA,EAAMw7L,OAAS4J,IAAa5M,OAC3Dt9J,KAAM4kK,EAAS/jK,MAAM/7B,GAASA,EAAMw7L,OAAS0K,IAAY1N,QAGpDoN,EAmBR,SACC9F,EACAsF,EACAc,EACAG,GAKA,MAAM5K,EAAU72L,SAAUshM,EAAShkK,aAAc,YAAyB,KAI1E,OAAKu5J,EAAU,EACPyK,EAKEd,EAAUn1K,iBAAmBi2K,EAASxnL,YACxCwnL,EAASxnL,aAAe0mL,EAAUn1K,gBAOpCo2K,EAAqBprK,MAClB6kK,EAAS/sL,UAAUgpB,MAAM,EAAIy8J,YAC5BA,EAAS6N,EAAqBprK,QACjCugK,KAKEsE,EAAS/sL,UAAUgpB,MAAM,EAAIy8J,YAC5BA,EAAS6N,EAAqBnrK,OACjCsgK,IAGR,CA3DsB,CAAgBsE,EAAUsF,EAAWc,EAAUG,GAEnE7+L,KAAK+/B,OAAO3nC,MAAM0tC,QAAQC,IACzB,MAAM+4J,EAAkBD,EAAqBnrK,KAAOmrK,EAAqBprK,MAAQ,EAEjFq9J,EAAW2J,cAAe3oF,EAAO,CAChCylF,GAAIsH,EAAqBprK,MACzByqF,QAAS4gF,IAGV/4J,EAAOwX,aAAcxX,EAAOub,iBAAkB88I,EAAa,GAAK,GAElE,EClDc,MAAMW,WAA4Bz+J,GAYhC,OAAAG,GACf,MAAMqwJ,EAAyB9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAClDhQ,EAAQ4H,KAAK+/B,OAAO3nC,MACpB0/L,EAAgBhH,EAAWmG,+BAAgC7+L,EAAMoL,SAASm9B,WAC1Eq+J,EAAYlH,EAAcx/L,OAAS,EAEzC0H,KAAKmgC,UAAY6+J,EACjBh/L,KAAKxH,MAAQwmM,GAAalH,EAAcphL,OAAOs9K,GAAQh0L,KAAKi/L,aAAcjL,EAAMA,EAAKp1L,OAAQA,SAC9F,CAagB,OAAAqiC,CAAS18B,EAAoC,CAAC,GAC7D,GAAKA,EAAQw8I,aAAe/gJ,KAAKxH,MAChC,OAGD,MAAMs4L,EAAyB9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAClDhQ,EAAQ4H,KAAK+/B,OAAO3nC,MAEpB0/L,EAAgBhH,EAAWmG,+BAAgC7+L,EAAMoL,SAASm9B,WAC1EmxE,EAAQgmF,EAAe,GAAIpnJ,aAAc,UAEzC,MAAEjd,EAAK,KAAEC,GAASo9J,EAAWuG,cAAeS,GAC5CoH,EAAmBl/L,KAAKxH,MAAQi7B,EAAQC,EAAO,EAC/CyrK,EAAqBrtF,EAAMp3E,aAAc,gBAA6B,EAE5EtiC,EAAM0tC,QAAQC,IACb,GAAKm5J,EAAmB,CAGvB,MACME,EAAmBvG,GAA+B/mF,EAAOotF,EAD9CA,EAAmBC,EAAqBA,EAAqB,GAG9E,UAAY,KAAEnL,KAAUoL,EACvBnG,GAAmBjF,EAAMkL,EAAkBn5J,EAE7C,CAEA2qJ,GAAwB,cAAewO,EAAkBptF,EAAO/rE,EAAQ,EAAG,GAE7E,CAKQ,YAAAk5J,CAAcrO,EAAoB9+E,GACzC,MAAMu/E,EAAcj0L,SAAU00G,EAAMp3E,aAAc,gBAA6B,KAE/E,QAAS22J,GAAiBT,EAAUhyL,OAAoBgG,MAASysL,CAClE,ECpEc,MAAMgO,WAA+B/+J,GAYnC,OAAAG,GACf,MAAMroC,EAAQ4H,KAAK+/B,OAAO3nC,MACpB04L,EAAyB9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAElD0vL,EAAgBhH,EAAWmG,+BAAgC7+L,EAAMoL,SAASm9B,WAC1Eq+J,EAAYlH,EAAcx/L,OAAS,EAEzC0H,KAAKmgC,UAAY6+J,EACjBh/L,KAAKxH,MAAQwmM,GAAalH,EAAcphL,OAAOs9K,GAAQnD,GAAqBC,EAAYkD,IACzF,CAagB,OAAA/yJ,CAAS18B,EAAoC,CAAC,GAC7D,GAAKA,EAAQw8I,aAAe/gJ,KAAKxH,MAChC,OAGD,MAAMs4L,EAAyB9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAClDhQ,EAAQ4H,KAAK+/B,OAAO3nC,MACpB0/L,EAAgBhH,EAAWmG,+BAAgC7+L,EAAMoL,SAASm9B,WAC1EmxE,EAAQgmF,EAAe,GAAIpnJ,aAAc,UAEzC,MAAEjd,EAAK,KAAEC,GAASo9J,EAAW6G,iBAAkBG,GAC/CwH,EAAsBt/L,KAAKxH,MAAQi7B,EAAQC,EAAO,EAExDt7B,EAAM0tC,QAAQC,IACb,GAAKu5J,EAAsB,CAG1B,MAAMF,EAAmB5F,GAAiC1nF,EAAOwtF,GAEjE,UAAY,KAAEtL,EAAI,OAAEhD,KAAYoO,EAC/BzF,GAAiB3F,EAAMhD,EAAQsO,EAAqBv5J,EAEtD,CAEA2qJ,GAAwB,iBAAkB4O,EAAqBxtF,EAAO/rE,EAAQ,EAAG,GAEnF,EC6QM,SAASw5J,GAAuBxoL,GACtC,GAAKA,EAAQxI,GAAI,UAAW,oBAC3B,OAAOwI,EAGR,MAAMmB,EAAWnB,EAAQ+vB,cAEzB,OAAOnmC,MACLrB,KAAM4Y,GACNqc,MAAMxd,GAAWA,EAAQxI,GAAI,UAAW,qBAC3C,CASO,SAASixL,GAAwBzoL,GACvC,MAAM0oL,EAAqBF,GAAuBxoL,GAElD,OAAM0oL,EAIC9+L,MAAMrB,KAAMmgM,EAAmB34J,eAH9B,EAIT,CClWe,MAAM44J,WAAmB,GAIvC,qBAAkBz9J,GACjB,MAAO,YACR,CAKO,IAAAG,GACNpiC,KAAKoV,SAAU,iBACfpV,KAAKoV,SAAU,aAChB,CA8BO,eAAA67K,CAAiBL,GACvB,MAAMuF,EAAWvF,EAAUhyL,OACrBkzG,EAAQqkF,EAASv3L,OAEjBs2L,EAAWpjF,EAAMxqE,cAAe6uJ,GAEhCb,EAAc,IAAIpD,GAAapgF,EAAO,CAAEigF,IAAKmD,IAEnD,UAAY,KAAElB,EAAI,IAAEjC,EAAG,OAAEf,KAAYsE,EACpC,GAAKtB,IAASpD,EACb,MAAO,CAAEmB,MAAKf,SAOjB,CAuBO,WAAA6F,CACN9wJ,EACAxhC,GAOA,MAAMutG,EAAQ/rE,EAAOzgC,cAAe,SAE9B8rL,EAAO7sL,EAAQ6sL,MAAQ,EACvBlzE,EAAU35G,EAAQ25G,SAAW,EAYnC,OAVAyhF,GAAiB55J,EAAQ+rE,EAAO,EAAGs/E,EAAMlzE,GAEpC35G,EAAQ8sL,aACZX,GAAwB,cAAe73L,KAAKD,IAAK2L,EAAQ8sL,YAAaD,GAAQt/E,EAAO/rE,EAAQ,GAGzFxhC,EAAQwsL,gBACZL,GAAwB,iBAAkB73L,KAAKD,IAAK2L,EAAQwsL,eAAgB7yE,GAAWpM,EAAO/rE,EAAQ,GAGhG+rE,CACR,CA8BO,UAAAwlF,CAAYxlF,EAAgBvtG,EAA4E,CAAC,GAC/G,MAAMnM,EAAQ4H,KAAK+/B,OAAO3nC,MAEpBswB,EAAWnkB,EAAQgzL,IAAM,EACzBqI,EAAer7L,EAAQ6sL,MAAQ,EAC/ByO,OAAqD,IAAnCt7L,EAAQizL,uBAC1BsI,EAAoBv7L,EAAQizL,uBAAyB9uK,EAAW,EAAIA,EAEpE0oK,EAAOpxL,KAAK81L,QAAShkF,GACrBoM,EAAUl+G,KAAKo6L,WAAYtoF,GAEjC,GAAKppF,EAAW0oK,EAMf,MAAM,IAAI1jL,EACT,4CACA1N,KACA,CAAEuE,YAIJnM,EAAM0tC,QAAQC,IACb,MAAMsrJ,EAAcv/E,EAAMp3E,aAAc,gBAA6B,EAQrE,GALK22J,EAAc3oK,GAClBgoK,GAAwB,cAAeW,EAAcuO,EAAc9tF,EAAO/rE,EAAQ,IAI7E85J,IAAkC,IAAbn3K,GAAkBA,IAAa0oK,GAGzD,YAFAuO,GAAiB55J,EAAQ+rE,EAAOppF,EAAUk3K,EAAc1hF,GAMzD,MAAM6hF,EAAeF,EAAkBhnM,KAAKC,IAAK4vB,EAAUo3K,GAAsBp3K,EAC3Es3K,EAAgB,IAAI9N,GAAapgF,EAAO,CAAEohF,OAAQ6M,IAGlDE,EAAiB,IAAIt/L,MAAOu9G,GAAUlzG,KAAM,GAElD,UAAY,IAAE+mL,EAAG,OAAEf,EAAM,WAAEyE,EAAU,UAAED,EAAS,KAAExB,KAAUgM,EAAgB,CAC3E,MAAME,EAAcnO,EAAM0D,EAAa,EAGjC0K,EAAiBpO,GAAO+N,GAAqBA,GAAqBI,EADvCnO,EAAMrpK,GAAYA,GAAYw3K,GAM9Dn6J,EAAOtgC,aAAc,UAAWgwL,EAAamK,EAAc5L,GAG3DiM,EAAgBjP,IAAYwE,GAGnBqK,GAAmBM,IAC5BF,EAAgBjP,GAAWwE,EAE7B,CAEA,QAAUN,EAAW,EAAGA,EAAW0K,EAAc1K,IAAa,CAC7D,MAAMiB,EAAWpwJ,EAAOzgC,cAAe,YAEvCygC,EAAOrgC,OAAQywL,EAAUrkF,EAAOppF,GAEhC,QAAU03K,EAAY,EAAGA,EAAYH,EAAe3nM,OAAQ8nM,IAAc,CACzE,MAAMnM,EAAUgM,EAAgBG,GAC1B58H,EAAiBz9B,EAAOub,iBAAkB60I,EAAU,OAGrDlC,EAAU,GACdtD,GAAsB5qJ,EAAQy9B,EAAgBywH,EAAU,EAAI,CAAEA,gBAAY,GAI3EmM,GAAavnM,KAAKwjK,IAAK43B,GAAY,CACpC,CACD,IAEF,CA6BO,aAAA2D,CAAe9lF,EAAgBvtG,EAA6C,CAAC,GACnF,MAAMnM,EAAQ4H,KAAK+/B,OAAO3nC,MAEpBswB,EAAWnkB,EAAQgzL,IAAM,EACzB8I,EAAkB97L,EAAQ25G,SAAW,EAE3C9lH,EAAM0tC,QAAQC,IACb,MAAMgrJ,EAAiBj/E,EAAMp3E,aAAc,kBAGtChS,EAAWqoK,GACfhrJ,EAAOtgC,aAAc,iBAAkBsrL,EAAiBsP,EAAiBvuF,GAG1E,MAAMwuF,EAAetgM,KAAKo6L,WAAYtoF,GAGtC,GAAkB,IAAbppF,GAAkB43K,IAAiB53K,EAAW,CAClD,UAAYytK,KAAYrkF,EAAMhrE,cAEvBqvJ,EAAS5nL,GAAI,UAAW,aAI9BgyL,GAAaF,EAAiBt6J,EAAQA,EAAOub,iBAAkB60I,EAAUztK,EAAW,MAAQ,IAG7F,MACD,CAEA,MAAM4sK,EAAc,IAAIpD,GAAapgF,EAAO,CAAEk/E,OAAQtoK,EAAU2qK,iBAAiB,IAEjF,UAAY+C,KAAad,EAAc,CACtC,MAAM,IAAEvD,EAAG,KAAEiC,EAAI,iBAAEqB,EAAgB,cAAED,EAAa,UAAEI,EAAS,WAAEC,GAAeW,EAO9E,GAAKf,EAAmB3sK,EAAW,CAGlCqd,EAAOtgC,aAAc,UAAW+vL,EAAY6K,EAAiBrM,GAG7D,MAAMkM,EAAc9K,EAAgBK,EAAa,EAEjD,QAAUj7L,EAAIu3L,EAAKv3L,GAAK0lM,EAAa1lM,IACpC86L,EAAYlB,QAAS55L,EAEvB,MAGC+lM,GAAaF,EAAiBt6J,EAAQqwJ,EAAUV,oBAElD,IAEF,CA8BO,UAAAoF,CAAYhpF,EAAgBvtG,GAClC,MAAMnM,EAAQ4H,KAAK+/B,OAAO3nC,MAEpB+lM,EAAe55L,EAAQ6sL,MAAQ,EAC/BoP,EAAWxgM,KAAK81L,QAAShkF,GACzBr+E,EAAQlvB,EAAQgzL,GAChB7jK,EAAOD,EAAQ0qK,EAAe,EAEpC,GAAKzqK,EAAO8sK,EAAW,EAMtB,MAAM,IAAI9yL,EACT,+CACA1N,KACA,CAAE8xG,QAAOvtG,YAIXnM,EAAM0tC,QAAQC,IACb,MAAM06J,EAAgB,CAAEhtK,QAAOC,SAMzB,YAAEgtK,EAAW,YAAEC,GAqwBxB,SAA2C7uF,GAAgB,MAAEr+E,EAAK,KAAEC,IACnE,MAAMgtK,EAA2B,IAAIhvL,IAC/BivL,EAA2B,GAEjC,UAAY,IAAE5O,EAAG,OAAEf,EAAM,WAAEyE,EAAU,KAAEzB,KAAU,IAAI9B,GAAapgF,EAAO,CAAEohF,OAAQx/J,IAAW,CAC7F,MAAMktK,EAAgB7O,EAAM0D,EAAa,EAIzC,GAFyC1D,GAAOt+J,GAASs+J,GAAOr+J,GAAQktK,EAAgBltK,EAEhD,CACvC,MACMmtK,EAAepL,GADW/hK,EAAOq+J,EAAM,GAG7C2O,EAAY9uL,IAAKo/K,EAAQ,CACxBgD,OACAE,QAAS2M,GAEX,CAIA,GAFqC9O,EAAMt+J,GAASmtK,GAAiBntK,EAEjC,CACnC,IAAI6nK,EAIHA,EADIsF,GAAiBltK,EACDA,EAAOD,EAAQ,EAIfmtK,EAAgBntK,EAAQ,EAG7CktK,EAAY/gM,KAAM,CACjBo0L,OACAE,QAASuB,EAAa6F,GAExB,CACD,CAEA,MAAO,CAAEoF,cAAaC,cACvB,CA9yBwCG,CAAkChvF,EAAO2uF,GAM9E,GAAKC,EAAY1sL,KAAO,EA0yB3B,SAAyB89F,EAAgBivF,EAAwBL,EAA0B36J,GAC1F,MAAMuvJ,EAAc,IAAIpD,GAAapgF,EAAO,CAC3CuhF,iBAAiB,EACjBtB,IAAKgP,IAGAC,EAAc,IAAK1L,GACnBvD,EAAMjgF,EAAM3qE,SAAU45J,GAE5B,IAAIE,EAEJ,UAAY,OAAEjQ,EAAM,KAAEgD,EAAI,SAAEuB,KAAcyL,EACzC,GAAKN,EAAYzyL,IAAK+iL,GAAW,CAChC,MAAQgD,KAAMkN,EAAU,QAAEhN,GAAYwM,EAAYt4L,IAAK4oL,GAEjD9xI,EAAiB+hJ,EACtBl7J,EAAOwb,oBAAqB0/I,GAC5Bl7J,EAAOub,iBAAkBywI,EAAK,GAE/BhsJ,EAAOoZ,KAAMpZ,EAAO2b,cAAew/I,GAAchiJ,GACjDwxI,GAAwB,UAAWwD,EAASgN,EAAYn7J,GAExDk7J,EAAeC,CAChB,MAAY3L,IAEX0L,EAAejN,EAGlB,CAp0BImN,CAAgBrvF,EADep+E,EAAO,EACSgtK,EAAa36J,EAC7D,CAGA,QAAUvrC,EAAIk5B,EAAMl5B,GAAKi5B,EAAOj5B,IAC/BurC,EAAO9/B,OAAQ6rG,EAAM3qE,SAAU3sC,IAIhC,UAAY,QAAE05L,EAAO,KAAEF,KAAU2M,EAChCjQ,GAAwB,UAAWwD,EAASF,EAAMjuJ,IAktBtD,SAA4B+rE,GAAgB,MAAEr+E,EAAK,KAAEC,GAAuBqS,GAC3E,MAAMsrJ,EAAcv/E,EAAMp3E,aAAc,gBAA6B,EAErE,GAAKjH,EAAQ49J,EAAc,CAG1BX,GAAwB,cAFRh9J,EAAO29J,EAAcA,GAAgB39J,EAAOD,EAAQ,GAAMA,EAE1Bq+E,EAAO/rE,EAAQ,EAChE,CACD,CAttBGq7J,CAAmBtvF,EAAO2uF,EAAe16J,GAGnCo0J,GAAoBroF,EAAO9xG,OAGhC06L,GAAiB5oF,EAAO9xG,KACzB,GAEF,CA+BO,aAAAy6L,CAAe3oF,EAAgBvtG,GACrC,MAAMnM,EAAQ4H,KAAK+/B,OAAO3nC,MACpBq7B,EAAQlvB,EAAQgzL,GAChBuH,EAAkBv6L,EAAQ25G,SAAW,EACrCxqF,EAAOnvB,EAAQgzL,GAAKuH,EAAkB,EAE5C1mM,EAAM0tC,QAAQC,KAkpBhB,SAA+B+rE,EAAgB+sF,EAAqC94J,GACnF,MAAMgrJ,EAAiBj/E,EAAMp3E,aAAc,mBAAgC,EAE3E,GAAKq2J,GAAkB8N,EAAqBprK,MAAQs9J,EAAiB,CACpE,MAAMsQ,EAAkBxoM,KAAKD,IAAKm4L,EAAiB,EAAmC8N,EAAqBnrK,MAC1GmrK,EAAqBprK,MAAQ,EAE9BsS,EAAOtgC,aAAc,iBAAkBsrL,EAAiBsQ,EAAiBvvF,EAC1E,CACD,CA1pBGwvF,CAAsBxvF,EAAO,CAAEr+E,QAAOC,QAAQqS,GAC9C,MAAMu6J,EAAed,GAAwB1tF,GAE7C,QAAUyvF,EAAqB7tK,EAAM6tK,GAAsB9tK,EAAO8tK,IAAuB,CACxF,UAAY,KAAEvN,EAAI,OAAEhD,EAAM,UAAEwE,IAAe,IAAK,IAAItD,GAAapgF,IAE3Dk/E,GAAUuQ,GAAsB/L,EAAY,GAAKxE,EAASwE,EAAY+L,EAC1E7Q,GAAwB,UAAW8E,EAAY,EAAGxB,EAAMjuJ,GAC7CirJ,IAAWuQ,GAEtBx7J,EAAO9/B,OAAQ+tL,GAMjB,GAAKsM,EAAciB,GAAuB,CAGzC,MAAMC,EAAwC,IAAvBD,EAA2BjB,EAAc,GAAMA,EAAciB,EAAqB,GAEnGE,EAAqB7iF,WAAY0hF,EAAciB,GAAqB7mK,aAAc,gBAClFgnK,EAAsB9iF,WAAY4iF,EAAe9mK,aAAc,gBAErEqL,EAAO9/B,OAAQq6L,EAAciB,IAG7Bx7J,EAAOtgC,aAAc,cAAeg8L,EAAqBC,EAAsB,IAAKF,EACrF,CACD,CAGM9G,GAAiB5oF,EAAO9xG,OAG7Bm6L,GAAoBroF,EAAO9xG,KAC5B,GAEF,CA2CO,mBAAAg4L,CAAqBpH,EAAoB+Q,EAAgB,GAC/D,MAAMvpM,EAAQ4H,KAAK+/B,OAAO3nC,MAEpB05G,EADW8+E,EAAUhyL,OACJA,OAEjBs1L,EAAU92L,SAAUwzL,EAAUl2J,aAAc,YAAyB,KACrEu5J,EAAU72L,SAAUwzL,EAAUl2J,aAAc,YAAyB,KAE3EtiC,EAAM0tC,QAAQC,IAEb,GAAKkuJ,EAAU,EAAI,CAElB,MAAM,aAAE2N,EAAY,YAAEC,GAAgBC,GAAiB7N,EAAS0N,GAEhEjR,GAAwB,UAAWmR,EAAajR,EAAW7qJ,GAG3D,MAAMg8J,EAA6D,CAAC,EAG/DH,EAAe,IACnBG,EAAmB9N,QAAU2N,GAIzB1N,EAAU,IACd6N,EAAmB7N,QAAUA,GAI9BqM,GADsBtM,EAAU0N,EAAgBA,EAAgB,EAAI1N,EAAU,EAClDluJ,EAAQA,EAAOwb,oBAAqBqvI,GAAamR,EAC9E,CAGA,GAAK9N,EAAU0N,EAAgB,CAC9B,MAAMK,EAAgBL,EAAgB1N,EAGhCqE,EAAW,IAAK,IAAIpG,GAAapgF,KAG/Bk/E,OAAQiR,GAAoB3J,EAAS/jK,MAAM,EAAIy/J,UAAYA,IAASpD,IAGtEsR,EAAgB5J,EAASvyL,QAAQ,EAAIiuL,OAAMwB,YAAWxE,YACpCgD,IAASpD,GAAaI,IAAWiR,GAC9BjR,EAASiR,GAAmBjR,EAASwE,EAAYyM,IAM5E,UAAY,KAAEjO,EAAI,UAAEwB,KAAe0M,EAClCn8J,EAAOtgC,aAAc,UAAW+vL,EAAYwM,EAAehO,GAM5D,MAAM+N,EAA2C,CAAC,EAK7C7N,EAAU,IACd6N,EAAmB7N,QAAUA,GAG9BqM,GAAayB,EAAej8J,EAAQA,EAAOwb,oBAAqBqvI,GAAamR,GAE7E,MAAMhR,EAAiBj/E,EAAMp3E,aAAc,mBAAgC,EAGtEq2J,EAAiBkR,GACrBvR,GAAwB,iBAAkBK,EAAiBiR,EAAelwF,EAAO/rE,EAEnF,IAEF,CAuDO,qBAAAgyJ,CAAuBnH,EAAoB+Q,EAAgB,GACjE,MAAMvpM,EAAQ4H,KAAK+/B,OAAO3nC,MAEpB+9L,EAAWvF,EAAUhyL,OACrBkzG,EAAQqkF,EAASv3L,OACjBujM,EAAerwF,EAAMxqE,cAAe6uJ,GAEpCjC,EAAU92L,SAAUwzL,EAAUl2J,aAAc,YAAyB,KACrEu5J,EAAU72L,SAAUwzL,EAAUl2J,aAAc,YAAyB,KAE3EtiC,EAAM0tC,QAAQC,IAEb,GAAKmuJ,EAAU,EAAI,CAElB,MAAMoE,EAAW,IAAK,IAAIpG,GAAapgF,EAAO,CAC7CmhF,SAAUkP,EACVjP,OAAQiP,EAAejO,EAAU,EACjCb,iBAAiB,MAIZ,aAAEuO,EAAY,YAAEC,GAAgBC,GAAiB5N,EAASyN,GAEhEjR,GAAwB,UAAWmR,EAAajR,EAAW7qJ,GAE3D,MAAQirJ,OAAQgJ,GAAe1B,EAAS/jK,MAAM,EAAIy/J,UAAYA,IAASpD,IAGjEmR,EAA6D,CAAC,EAG/DH,EAAe,IACnBG,EAAmB7N,QAAU0N,GAIzB3N,EAAU,IACd8N,EAAmB9N,QAAUA,GAG9B,UAAYmC,KAAakC,EAAW,CACnC,MAAM,OAAEtH,EAAM,IAAEe,GAAQqE,EAMCrE,GAAOoQ,EAAeN,GAExB7Q,IAAWgJ,IAELjI,EAAMoQ,EAAeN,GAAgBD,GAAiB,GAGlFrB,GAAa,EAAGx6J,EAAQqwJ,EAAUV,oBAAqBqM,EAEzD,CACD,CAGA,GAAK7N,EAAUyN,EAAgB,CAE9B,MAAMK,EAAgBL,EAAgBzN,EAGhCoE,EAAW,IAAK,IAAIpG,GAAapgF,EAAO,CAAEmhF,SAAU,EAAGC,OAAQiP,KAGrE,UAAY,KAAEnO,EAAI,WAAEyB,EAAU,IAAE1D,KAASuG,EAIxC,GAAKtE,IAASpD,GAAamB,EAAM0D,EAAa0M,EAAe,CAC5D,MAAMC,EAAe3M,EAAauM,EAElCj8J,EAAOtgC,aAAc,UAAW28L,EAAcpO,EAC/C,CAID,MAAM+N,EAA2C,CAAC,EAG7C9N,EAAU,IACd8N,EAAmB9N,QAAUA,GAG9B0L,GAAiB55J,EAAQ+rE,EAAOqwF,EAAe,EAAGH,EAAe,EAAGD,GAGpE,MAAM1Q,EAAcv/E,EAAMp3E,aAAc,gBAA6B,EAEhE22J,EAAc8Q,GAClBzR,GAAwB,cAAeW,EAAc2Q,EAAelwF,EAAO/rE,EAE7E,IAEF,CAWO,UAAAq0J,CAAYtoF,GAMlB,MAAO,IAFKA,EAAM3qE,SAAU,GAEZL,eAEd/gC,QAAQ5G,GAAQA,EAAKoP,GAAI,UAAW,eACpCogB,QAAQ,CAAEuvF,EAAS6zE,IAGZ7zE,EAFa9gH,SAAU20L,EAAIr3J,aAAc,YAAyB,MAGvE,EACL,CAWO,OAAAo7J,CAAShkF,GAEf,OAAOnxG,MAAMrB,KAAMwyG,EAAMhrE,eACvBnY,QAAQ,CAAE6xK,EAAUloL,IAAWA,EAAM/J,GAAI,UAAW,YAAeiyL,EAAW,EAAIA,GAAU,EAC/F,CAcO,iBAAA6B,CAAmBvwF,EAAgBvtG,EAA8B,CAAC,GACxE,OAAO,IAAI2tL,GAAapgF,EAAOvtG,EAChC,CASO,qBAAA+9L,CAAuB3hK,GAC7B,MAAMo4J,EAAQ,GAEd,UAAYhyK,KAAS/mB,KAAKuiM,WAAY5hK,EAAU2W,aAAgB,CAC/D,MAAMvgC,EAAUgQ,EAAMqvB,sBAEjBr/B,GAAWA,EAAQxI,GAAI,UAAW,cACtCwqL,EAAMn5L,KAAMmX,EAEd,CAEA,OAAOgiL,CACR,CASO,gCAAAgD,CAAkCp7J,GACxC,MAAMo4J,EAAQ,GAEd,UAAYhyK,KAAS4Z,EAAU2W,YAAc,CAC5C,MAAMkrJ,EAAoBz7K,EAAM0J,MAAMigB,aAAc,aAE/C8xJ,GACJzJ,EAAMn5L,KAAM4iM,EAEd,CAEA,OAAOzJ,CACR,CAUO,8BAAA9B,CAAgCt2J,GACtC,MAAMm3J,EAAgB93L,KAAKsiM,sBAAuB3hK,GAElD,OAAKm3J,EAAcx/L,OACXw/L,EAGD93L,KAAK+7L,iCAAkCp7J,EAC/C,CAeO,aAAA02J,CAAeoL,GACrB,MAAMC,EAAUD,EAAWzlM,KAAKg3L,GAAUA,EAAKp1L,OAAoBgG,QAEnE,OAAO5E,KAAK2iM,2BAA4BD,EACzC,CAeO,gBAAA/K,CAAkB8K,GACxB,MAAM3wF,EAAQ2wF,EAAY,GAAI/xJ,aAAc,SAGtCgyJ,EAFW,IAAK,IAAIxQ,GAAapgF,IAGrC/rG,QAAQsT,GAASopL,EAAWtwK,SAAU9Y,EAAM26K,QAC5Ch3L,KAAKqc,GAASA,EAAM23K,SAEtB,OAAOhxL,KAAK2iM,2BAA4BD,EACzC,CAyBO,sBAAAE,CAAwBC,GAC9B,GAAKA,EAAmBvqM,OAAS,IAAM0H,KAAK8iM,8BAA+BD,GAC1E,OAAO,EAMR,MAAMzR,EAAoB,IAAIr9K,IACxBmqG,EAAuB,IAAInqG,IAEjC,IAAIgvL,EAAsB,EAE1B,UAAYnS,KAAaiS,EAAqB,CAC7C,MAAM,IAAE9Q,EAAG,OAAEf,GAAWhxL,KAAKixL,gBAAiBL,GACxCsD,EAAU92L,SAAUwzL,EAAUl2J,aAAc,aAA2B,EACvEu5J,EAAU72L,SAAUwzL,EAAUl2J,aAAc,aAA2B,EAG7E02J,EAAKljL,IAAK6jL,GACV7zE,EAAQhwG,IAAK8iL,GAGRkD,EAAU,GACd9C,EAAKljL,IAAK6jL,EAAMmC,EAAU,GAItBD,EAAU,GACd/1E,EAAQhwG,IAAK8iL,EAASiD,EAAU,GAGjC8O,GAAyB7O,EAAUD,CACpC,CAGA,MAAM+O,EAoQR,SAAkC5R,EAAmBlzE,GACpD,MAAM+kF,EAActiM,MAAMrB,KAAM8xL,EAAKhmL,UAC/BssL,EAAgB/2L,MAAMrB,KAAM4+G,EAAQ9yG,UAEpCiwL,EAAUxiM,KAAKC,OAAQmqM,GACvBxH,EAAW5iM,KAAKD,OAAQqqM,GACxB7H,EAAaviM,KAAKC,OAAQ4+L,GAC1ByD,EAActiM,KAAKD,OAAQ8+L,GAEjC,OAAS2D,EAAUI,EAAW,IAAQL,EAAaD,EAAc,EAClE,CA9Q+B+H,CAAyB9R,EAAMlzE,GAE5D,OAAO8kF,GAAwBD,CAChC,CAKO,UAAAR,CAAYvsJ,GAClB,OAAOr1C,MAAMrB,KAAM02C,GAASn0B,KAAMshL,GACnC,CAKQ,0BAAAR,CAA4BD,GACnC,MAAMU,EAAmBV,EAAQ7gL,MAAM,CAAEwhL,EAAQz0G,IAAYy0G,EAASz0G,IAKtE,MAAO,CAAEn7D,MAHK2vK,EAAkB,GAGhB1vK,KAFH0vK,EAAkBA,EAAiB9qM,OAAS,GAG1D,CAkBQ,6BAAAwqM,CAA+BL,GACtC,MAAM3wF,EAAQ2wF,EAAY,GAAI/xJ,aAAc,SAEtC0mJ,EAAap3L,KAAKq3L,cAAeoL,GACjCpR,EAAcj0L,SAAU00G,EAAMp3E,aAAc,iBAA+B,EAGjF,IAAM16B,KAAKsjM,yBAA0BlM,EAAY/F,GAChD,OAAO,EAGR,MAAMqG,EAAgB13L,KAAK23L,iBAAkB8K,GACvC1R,EAAiB3zL,SAAU00G,EAAMp3E,aAAc,oBAAkC,EAGvF,OAAO16B,KAAKsjM,yBAA0B5L,EAAe3G,EACtD,CAKQ,wBAAAuS,EAA0B,MAAE7vK,EAAK,KAAEC,GAAuB6vK,GAIjE,OAH6B9vK,EAAQ8vK,IACT7vK,EAAO6vK,CAGpC,EAUD,SAAS5D,GAAiB55J,EAAgB+rE,EAAgBppF,EAAkB0oK,EAAcoS,EAA2Bj+L,EAAa,CAAC,GAClI,QAAU/K,EAAI,EAAGA,EAAI42L,EAAM52L,IAAM,CAChC,MAAM27L,EAAWpwJ,EAAOzgC,cAAe,YAEvCygC,EAAOrgC,OAAQywL,EAAUrkF,EAAOppF,GAEhC63K,GAAaiD,EAAmBz9J,EAAQA,EAAOub,iBAAkB60I,EAAU,OAAS5wL,EACrF,CACD,CAOA,SAASg7L,GAAaxH,EAAehzJ,EAAgBy9B,EAA0Bj+D,EAAa,CAAC,GAC5F,QAAU/K,EAAI,EAAGA,EAAIu+L,EAAOv+L,IAC3Bm2L,GAAsB5qJ,EAAQy9B,EAAgBj+D,EAEhD,CAiBA,SAASu8L,GAAiBp9I,EAAci9I,GACvC,GAAKj9I,EAAOi9I,EACX,MAAO,CAAEC,aAAc,EAAGC,YAAa,GAGxC,MAAMD,EAAe/oM,KAAK+B,MAAO8pD,EAAOi9I,GAGxC,MAAO,CAAEC,eAAcC,YAFDn9I,EAAOk9I,EAAeD,EAAkBC,EAG/D,CA6HA,SAASuB,GAAmBnrJ,EAAeC,GAE1C,MAAM2uD,EAAO5uD,EAAOvnB,MACdo2E,EAAO5uD,EAAOxnB,MAKpB,OAAOm2E,EAAK7+D,SAAU8+D,IAAU,EAAI,CACrC,CC7sCe,MAAM48F,WAA0BnjK,GAI9B,OAAAG,GACf,MAAMqwJ,EAAa9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAKs3L,IAEtCmD,EAAqB/R,EAAWwR,sBAAuBtiM,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,WACxF3gC,KAAKmgC,UAAY2wJ,EAAW8R,uBAAwBC,EACrD,CAOgB,OAAA5hK,GACf,MAAM7oC,EAAQ4H,KAAK+/B,OAAO3nC,MACpB04L,EAAa9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAKs3L,IAE5CtnM,EAAM0tC,QAAQC,IACb,MAAM88J,EAAqB/R,EAAWwR,sBAAuBlqM,EAAMoL,SAASm9B,WAGtE+iK,EAAiBb,EAAmBt1K,SAGpC,WAAEo2K,EAAU,YAAEC,GA6CvB,SAA6BF,EAAyBb,EAAoC/R,GACzF,IAAI+S,EAAiB,EACjBC,EAAkB,EAEtB,UAAYlT,KAAaiS,EAAqB,CAC7C,MAAM,IAAE9Q,EAAG,OAAEf,GAAWF,EAAWG,gBAAiBL,GAEpDiT,EAAiBE,GAAcnT,EAAWI,EAAQ6S,EAAgB,WAClEC,EAAkBC,GAAcnT,EAAWmB,EAAK+R,EAAiB,UAClE,CAGA,MAAQ/R,IAAKiS,EAAchT,OAAQiT,GAAoBnT,EAAWG,gBAAiByS,GAE7EC,EAAaE,EAAiBI,EAC9BL,EAAcE,EAAkBE,EAEtC,MAAO,CAAEL,aAAYC,cACtB,CA/DuCM,CAAoBR,EAAgBb,EAAoB/R,GAC5FJ,GAAwB,UAAWiT,EAAYD,EAAgB39J,GAC/D2qJ,GAAwB,UAAWkT,EAAaF,EAAgB39J,GAEhE,UAAY6qJ,KAAaiS,EACxB,GAAiBjS,EAAW8S,EAAgB39J,GAM7Cg1J,GAHc2I,EAAehzJ,aAAc,SAGZogJ,GAE/B/qJ,EAAOwX,aAAcmmJ,EAAgB,KAAM,GAE7C,EAQD,SAAS,GAAiBS,EAA0BC,EAAqBr+J,GAClE,GAASo+J,KACT,GAASC,IACbr+J,EAAO9/B,OAAQ8/B,EAAO4b,cAAeyiJ,IAGtCr+J,EAAOoZ,KAAMpZ,EAAO4b,cAAewiJ,GAAmBp+J,EAAOub,iBAAkB8iJ,EAAY,SAI5Fr+J,EAAO9/B,OAAQk+L,EAChB,CAKA,SAAS,GAASvT,GACjB,MAAM8M,EAAkB9M,EAAUzpJ,SAAU,GAE5C,OAA+B,GAAxBypJ,EAAUhqJ,YAAmB82J,EAAiBnvL,GAAI,UAAW,cAAiBmvL,EAAgBpxJ,OACtG,CAsBA,SAASy3J,GAAcnT,EAAoBngK,EAAe4zK,EAA0B14F,GACnF,MAAM24F,EAAiBlnM,SAAUwzL,EAAUl2J,aAAcixE,IAAqB,KAE9E,OAAO9yG,KAAKC,IAAKurM,EAAkB5zK,EAAQ6zK,EAC5C,CCtGe,MAAMC,WAAyBjkK,GAI7C,WAAAv+B,CAAag+B,GACZlyB,MAAOkyB,GAGP//B,KAAK0gC,aAAc,CACpB,CAKgB,OAAAD,GACf,MACMq3J,EADyB93L,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cACvB6uL,+BAAgCj3L,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,WAE5F3gC,KAAKmgC,UAAY23J,EAAcx/L,OAAS,CACzC,CAKgB,OAAA2oC,GACf,MAAM7oC,EAAQ4H,KAAK+/B,OAAO3nC,MACpB04L,EAAyB9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAClD41L,EAAiBlN,EAAWmG,+BAAgC7+L,EAAMoL,SAASm9B,WAC3Ey2J,EAAatG,EAAWuG,cAAe2G,GAEvClsF,EAAQksF,EAAgB,GAAIttJ,aAAc,SAC1C8zJ,EAA+B,GAErC,QAAUtP,EAAWkC,EAAW3jK,MAAOyhK,GAAYkC,EAAW1jK,KAAMwhK,IACnE,UAAYlB,KAAUliF,EAAM3qE,SAAU+tJ,GAAwBpuJ,cAC7D09J,EAAe5kM,KAAMxH,EAAMspD,cAAesyI,IAI5C57L,EAAM0tC,QAAQC,IACbA,EAAOwX,aAAcinJ,EAAgB,GAEvC,ECxCc,MAAMC,WAA4BnkK,GAIhD,WAAAv+B,CAAag+B,GACZlyB,MAAOkyB,GAGP//B,KAAK0gC,aAAc,CACpB,CAKgB,OAAAD,GACf,MACMq3J,EADyB93L,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cACvB6uL,+BAAgCj3L,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,WAE5F3gC,KAAKmgC,UAAY23J,EAAcx/L,OAAS,CACzC,CAKgB,OAAA2oC,GACf,MAAM6vJ,EAAyB9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAClDhQ,EAAQ4H,KAAK+/B,OAAO3nC,MACpB4lM,EAAiBlN,EAAWmG,+BAAgC7+L,EAAMoL,SAASm9B,WAC3Ei9J,EAAYI,EAAgB,GAC5BU,EAAWV,EAAeh/L,MAC1B8yG,EAAQ8rF,EAAUltJ,aAAc,SAEhCg0J,EAAgB5T,EAAWG,gBAAiB2M,GAC5C+G,EAAc7T,EAAWG,gBAAiByN,GAE1CvL,EAAct6L,KAAKD,IAAK8rM,EAAc1T,OAAQ2T,EAAY3T,QAC1DoC,EAAYv6L,KAAKC,IAAK4rM,EAAc1T,OAAQ2T,EAAY3T,QAExDwT,EAA+B,GAErC,UAAYI,KAAY,IAAI1S,GAAapgF,EAAO,CAAEqhF,cAAaC,cAC9DoR,EAAe5kM,KAAMxH,EAAMspD,cAAekjJ,EAAS5Q,OAGpD57L,EAAM0tC,QAAQC,IACbA,EAAOwX,aAAcinJ,EAAgB,GAEvC,ECoKc,SAASK,GAA4BzsM,GACnDA,EAAMoL,SAASyiC,mBAAmBF,GAMnC,SAA+BA,EAAgB3tC,GAC9C,MAAM0xE,EAAU1xE,EAAMoL,SAASgmE,OAAOQ,aAEtC,IAAI7uB,GAAW,EAGf,MAAM2pJ,EAAiB,IAAI/wL,IAE3B,UAAYsF,KAASywD,EAAU,CAC9B,IAAIgoC,EAAwB,KAET,UAAdz4F,EAAMlO,MAAkC,SAAdkO,EAAMrX,OACpC8vG,EAAQz4F,EAAMoO,SAAS4sB,WAIH,UAAdh7B,EAAMlO,MAAkC,UAAdkO,EAAMlO,MAAsC,YAAdkO,EAAMrX,MAAoC,aAAdqX,EAAMrX,OAChG8vG,EAAQz4F,EAAMoO,SAASipB,aAAc,UAIjCq0J,GAAuB1rL,KAC3By4F,EAAQz4F,EAAM0N,MAAM0J,MAAMigB,aAAc,UAGpCohE,IAAUgzF,EAAe72L,IAAK6jG,KAGlC32D,EAAW6pJ,GAAsBlzF,EAAO/rE,IAAYoV,EAEpDA,EAAW8pJ,GAAmBnzF,EAAO/rE,IAAYoV,EAEjD2pJ,EAAe52L,IAAK4jG,GAEtB,CAEA,OAAO32D,CACR,CA3C6C+pJ,CAAsBn/J,EAAQ3tC,IAC3E,CAiDA,SAAS4sM,GAAsBlzF,EAAgB/rE,GAC9C,IAAIoV,GAAW,EAEf,MAAMwlJ,EA+EP,SAA0B7uF,GACzB,MAAMu/E,EAAcj0L,SAAU00G,EAAMp3E,aAAc,gBAA6B,KACzEyqK,EAAUxkM,MAAMrB,KAAMwyG,EAAMhrE,eAChCnY,QAAQ,CAAEhqB,EAAOotL,IAASA,EAAIxjL,GAAI,UAAW,YAAe5J,EAAQ,EAAIA,GAAO,GAE3Eg8L,EAAc,GAEpB,UAAY,IAAE5O,EAAG,KAAEiC,EAAI,WAAEyB,KAAgB,IAAIvD,GAAapgF,GAAU,CAEnE,GAAK2jF,EAAa,EACjB,SAGD,MAGM2P,EAHarT,EAAMV,EAGKA,EAAc8T,EAG5C,GAAKpT,EAAM0D,EAAa2P,EAAW,CAClC,MAAMjM,EAAaiM,EAAWrT,EAE9B4O,EAAY/gM,KAAM,CAAEo0L,OAAME,QAASiF,GACpC,CACD,CAEA,OAAOwH,CACR,CA1GqB0E,CAAiBvzF,GAErC,GAAK6uF,EAAYroM,OAAS,CAGzB6iD,GAAW,EAEX,UAAYr4C,KAAQ69L,EACnBjQ,GAAwB,UAAW5tL,EAAKoxL,QAASpxL,EAAKkxL,KAAMjuJ,EAAQ,EAEtE,CAEA,OAAOoV,CACR,CAOA,SAAS8pJ,GAAmBnzF,EAAgB/rE,GAC3C,IAAIoV,GAAW,EAEf,MAAMmqJ,EAwFP,SAA6BxzF,GAE5B,MAAMyzF,EAAU,IAAI5kM,MAAOmxG,EAAMlrE,YAAa57B,KAAM,GAEpD,UAAY,SAAEkqL,KAAc,IAAIhD,GAAapgF,EAAO,CAAEuhF,iBAAiB,IACtEkS,EAASrQ,KAGV,OAAOqQ,CACR,CAjGyBC,CAAoB1zF,GACtCqsF,EAAe,GAGrB,UAAcjJ,EAAUlhL,KAAUsxL,EAAgBlsL,WAE3CpF,GAAQ89F,EAAM3qE,SAAU+tJ,GAAY3mL,GAAI,UAAW,aACxD4vL,EAAav+L,KAAMs1L,GAKrB,GAAKiJ,EAAa7lM,OAAS,CAG1B6iD,GAAW,EAEX,UAAY+5I,KAAYiJ,EAAa5yL,UACpCw6B,EAAO9/B,OAAQ6rG,EAAM3qE,SAAU+tJ,IAC/BoQ,EAAgB99L,OAAQ0tL,EAAU,EAEpC,CAGA,MAAMuQ,EAAcH,EAAgBv/L,QAAQ,CAAEgsL,EAAKmD,IAAcpjF,EAAM3qE,SAAU+tJ,GAAY3mL,GAAI,UAAW,cAGtGm3L,EAAYD,EAAa,GAG/B,IAFgBA,EAAY/uL,OAAOpe,GAAUA,IAAWotM,IAExC,CAIf,MAAMC,EAAaF,EAAY92K,QAAQ,CAAEuM,EAAMn8B,IAAaA,EAAUm8B,EAAOn8B,EAAUm8B,GAAM,GAE7F,UAAcg6J,EAAUlhL,KAAUyxL,EAAYrsL,UAAY,CACzD,MAAMinL,EAAkBsF,EAAa3xL,EAErC,GAAKqsL,EAAkB,CACtB,QAAU7lM,EAAI,EAAGA,EAAI6lM,EAAiB7lM,IACrCm2L,GAAsB5qJ,EAAQA,EAAOub,iBAAkBwwD,EAAM3qE,SAAU+tJ,GAAa,QAGrF/5I,GAAW,CACZ,CACD,CACD,CAEA,OAAOA,CACR,CAoDA,SAAS4pJ,GAAuB1rL,GAC/B,GAAoB,cAAfA,EAAMlO,KACV,OAAO,EAGR,MAAMpU,EAAMsiB,EAAMg1C,aAElB,MAAe,gBAARt3D,GAAiC,YAARA,GAA6B,YAARA,CACtD,CCtYe,SAAS6uM,GAAmCxtM,GAC1DA,EAAMoL,SAASyiC,mBAAmBF,GAMnC,SAAqCA,EAAgB3tC,GACpD,MAAM0xE,EAAU1xE,EAAMoL,SAASgmE,OAAOQ,aAEtC,IAAI7uB,GAAW,EAEf,UAAY9hC,KAASywD,EACD,UAAdzwD,EAAMlO,MAAkC,SAAdkO,EAAMrX,OACpCm5C,EAAW0qJ,GAAUxsL,EAAMoO,SAAS4sB,UAAsBtO,IAAYoV,GAGpD,UAAd9hC,EAAMlO,MAAkC,YAAdkO,EAAMrX,OACpCm5C,EAAW2qJ,GAAazsL,EAAMoO,SAAS4sB,UAAsBtO,IAAYoV,GAGvD,UAAd9hC,EAAMlO,MAAkC,aAAdkO,EAAMrX,OACpCm5C,EAAW4qJ,GAAqB1sL,EAAMoO,SAAS4sB,UAAsBtO,IAAYoV,GAG7D,UAAd9hC,EAAMlO,MAAkC,UAAdkO,EAAMlO,OAAsB66L,GAAsB3sL,KAClF8hC,EAAW4qJ,GAAqB1sL,EAAMoO,SAAS7oB,OAAmBmnC,IAAYoV,GAIhF,OAAOA,CACR,CA9B6C8qJ,CAA4BlgK,EAAQ3tC,IACjF,CAkCA,SAASytM,GAAU/zF,EAAgB/rE,GAClC,IAAIoV,GAAW,EAEf,UAAY42I,KAAOjgF,EAAMhrE,cACnBirJ,EAAIxjL,GAAI,UAAW,cACvB4sC,EAAW2qJ,GAAa/T,EAAKhsJ,IAAYoV,GAI3C,OAAOA,CACR,CAKA,SAAS2qJ,GAAa3P,EAAmBpwJ,GACxC,IAAIoV,GAAW,EAEf,UAAYy1I,KAAauF,EAASrvJ,cACjCqU,EAAW4qJ,GAAqBnV,EAAW7qJ,IAAYoV,EAGxD,OAAOA,CACR,CAOA,SAAS4qJ,GAAqBnV,EAAoB7qJ,GAEjD,GAA6B,GAAxB6qJ,EAAUhqJ,WAKd,OAFAb,EAAOssC,cAAe,YAAau+G,IAE5B,EAKR,MAAMsV,EAAYvlM,MAAMrB,KAAMsxL,EAAU9pJ,eAAgB/gC,QAAQuS,GAASA,EAAM/J,GAAI,WAInF,UAAY+J,KAAS4tL,EACpBngK,EAAO2a,KAAM3a,EAAO2b,cAAeppC,GAAS,aAI7C,QAAS4tL,EAAU5tM,MACpB,CAOA,SAAS0tM,GAAsB3sL,GAC9B,QAAMA,EAAMoO,SAAS7oB,OAAO2P,GAAI,UAAW,eAItB,UAAd8K,EAAMlO,MAAkC,SAAdkO,EAAMrX,MAAiC,UAAdqX,EAAMlO,KACjE,CCjFA,SAASg7L,GAAe7tL,EAAgBgvD,GACvC,IAAMhvD,EAAM/J,GAAI,UAAW,aAC1B,OAAO,EAGR,MAAM4yC,EAAcmmB,EAAOf,cAAejuD,GAE1C,QAAM6oC,GAICo1I,GAAoCj+K,KAAY6oC,EAAY5yC,GAAI,UAAW,OACnF,C,eC/DI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ+uB,OC4BR,MAAM,WAAqB,GAIjC8oK,iBAKR,qBAAkBnkK,GACjB,MAAO,cACR,CAKA,mBAAkBW,GACjB,MAAO,CAAE88J,GACV,CAKA,WAAA39L,CAAag+B,GACZlyB,MAAOkyB,GAEP//B,KAAKomM,iBAAmB,EACzB,CAKO,IAAAhkK,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACfkiC,EAASliC,EAAMkiC,OACfj8B,EAAa0hC,EAAO1hC,WACpByyL,EAAa/wJ,EAAOsC,QAAQj6B,IAAKs3L,IAEvCplK,EAAO4kD,SAAU,QAAS,CACzBuE,eAAgB,eAChB/D,gBAAiB,CAAE,cAAe,oBAGnCplD,EAAO4kD,SAAU,WAAY,CAC5BkD,QAAS,QACT1U,SAAS,IAGVpzC,EAAO4kD,SAAU,YAAa,CAC7B6D,eAAgB,aAChBX,QAAS,WACT1C,gBAAiB,CAAE,UAAW,WAC9BhS,SAAS,EACT8O,cAAc,IAIfn+E,EAAWurF,IAAK,UAAW17E,KtBtEnBo7D,IACRA,EAAW75D,GAAwB,kBAAkB,CAAE+F,EAAK1S,EAAMumE,KAEjE,IAAMA,EAAcsB,WAAW1oE,KAAMa,EAAK+2E,SAAU,CAAE73E,MAAM,EAAM+nC,QAAS,UAC1E,OAID,MAAMonJ,EAuJT,SAAiC9hB,GAChC,UAAYg3B,KAAeh3B,EAAWvoI,cACrC,GAAKu/J,EAAY93L,GAAI,UAAW,SAC/B,OAAO83L,CAGV,CA7JqBC,CAAwBxjM,EAAK+2E,UAG/C,IAAMs3G,IAAc9nH,EAAcsB,WAAW1oE,KAAMkvL,EAAW,CAAEnvL,MAAM,IACrE,OAIDqnE,EAAcsB,WAAWpC,QAASzlE,EAAK+2E,SAAU,CAAE73E,MAAM,EAAM+nC,QAAS,UAGxE,MAGMw8J,EAAa,GAHMl9H,EAAc0C,YAAaolH,EAAWruL,EAAK82E,aAGzBxS,WAAY/wB,YAGjDkwJ,GAONl9H,EAAc2C,gBAAiBlpE,EAAK+2E,SAAUxQ,EAActjC,OAAOub,iBAAkBilJ,EAAY,QACjGl9H,EAAc+Q,uBAAwBmsH,EAAYzjM,IANjDumE,EAAcsB,WAAW5xC,OAAQj2B,EAAK+2E,SAAU,CAAE73E,MAAM,EAAM+nC,QAAS,SAMhB,GACtD,IsBuCH1rC,EAAWurF,IAAK,UAAW17E,IAAKgjL,MAEhC7yL,EAAWurF,IAAK,mBAAoBlX,mBAAoB,CACvDt6E,MAAO,CACN4J,KAAM,QACNuD,WAAY,CAAE,gBAEfoyB,KAAMg+J,GAAe7E,EAAY,CAChCkF,UAAU,EACVD,gBAAiB/1L,KAAKomM,qBAGxB/nM,EAAWurF,IAAK,gBAAiBlX,mBAAoB,CACpDt6E,MAAO,CACN4J,KAAM,QACNuD,WAAY,CAAE,gBAEfoyB,KAAMg+J,GAAe7E,EAAY,CAChCiF,gBAAiB/1L,KAAKomM,qBAKxB/nM,EAAWurF,IAAK,UAAW1X,iBAAkB,CAAE95E,MAAO,WAAYu/B,KAAM,OACxEt5B,EAAWurF,IAAK,UAAW17E,KtBWnBo7D,IACRA,EAAW75D,GAAwB,cAAc,CAAE+F,EAAK1S,KAClDA,EAAK+2E,SAASvtC,SAAqC,GAA1BxpC,EAAK82E,YAAYh1E,OAC9C4Q,EAAInJ,MACL,GACE,CAAEW,SAAU,QAAU,IsBdzB3O,EAAWurF,IAAK,YAAa1X,iBAAkB,CAC9C95E,MAAO,WACPu/B,KpBlDK,CAAEw+J,GAAYpwJ,YACbowJ,EAAS7pJ,QACfvG,EAAOkY,mBAAoB,MAC3BlY,EAAO8X,uBAAwB,QoBmDhCx/C,EAAWurF,IAAK,UAAW1X,iBAAkB,CAAE95E,MAAO,YAAau/B,KAAM,OACzEt5B,EAAWurF,IAAK,UAAW1X,iBAAkB,CAAE95E,MAAO,YAAau/B,KAAM,OACzEt5B,EAAWurF,IAAK,UAAW17E,IAAK8jL,GAA4B,OAC5D3zL,EAAWurF,IAAK,UAAW17E,IAAK8jL,GAA4B,OAE5D3zL,EAAWurF,IAAK,mBAAoB1X,iBAAkB,CACrD95E,MAAO,YACPu/B,KAAMu+J,GAAc,CAAEF,UAAU,MAEjC33L,EAAWurF,IAAK,gBAAiB1X,iBAAkB,CAClD95E,MAAO,YACPu/B,KAAMu+J,OAIP73L,EAAWurF,IAAK,mBAAoB1X,iBAAkB,CACrD95E,MAAO,YACPu/B,KAAM2+J,GAA6B,CAAEN,UAAU,IAC/CzjH,kBAAmB,SAEpBl0E,EAAWurF,IAAK,gBAAiB1X,iBAAkB,CAClD95E,MAAO,YACPu/B,KAAM2+J,KACN/jH,kBAAmB,SAIpBl0E,EAAWurF,IAAK,YAAa5V,qBAAsB,CAAE57E,MAAO,UAAWu/B,KAAM,YAC7Et5B,EAAWurF,IAAK,UAAW5V,qBAAsB,CAChD57E,MAAO,CAAErB,IAAK,UAAWyB,MAAOguM,GAAgB,YAChD7uK,KAAM,YAGPt5B,EAAWurF,IAAK,YAAa5V,qBAAsB,CAAE57E,MAAO,UAAWu/B,KAAM,YAC7Et5B,EAAWurF,IAAK,UAAW5V,qBAAsB,CAChD57E,MAAO,CAAErB,IAAK,UAAWyB,MAAOguM,GAAgB,YAChD7uK,KAAM,YAIPoI,EAAOpV,OAAOj0B,OAAQ,6BAA8B,GACpDqpC,EAAOpV,OAAOj0B,OAAQ,gCAAiC,GAGvDqpC,EAAOksE,SAAS/9F,IAAK,cAAe,IAAIsoL,GAAoBz2J,IAC5DA,EAAOksE,SAAS/9F,IAAK,sBAAuB,IAAI4oL,GAAkB/2J,EAAQ,CAAEg3J,MAAO,WACnFh3J,EAAOksE,SAAS/9F,IAAK,sBAAuB,IAAI4oL,GAAkB/2J,EAAQ,CAAEg3J,MAAO,WACnFh3J,EAAOksE,SAAS/9F,IAAK,wBAAyB,IAAIupL,GAAqB13J,EAAQ,CAAEg3J,MAAO,UACxFh3J,EAAOksE,SAAS/9F,IAAK,yBAA0B,IAAIupL,GAAqB13J,EAAQ,CAAEg3J,MAAO,WAEzFh3J,EAAOksE,SAAS/9F,IAAK,iBAAkB,IAAIyvL,GAAkB59J,IAC7DA,EAAOksE,SAAS/9F,IAAK,oBAAqB,IAAIswL,GAAqBz+J,IAEnEA,EAAOksE,SAAS/9F,IAAK,2BAA4B,IAAI2pL,GAAkB93J,EAAQ,CAAEvZ,UAAW,gBAC5FuZ,EAAOksE,SAAS/9F,IAAK,6BAA8B,IAAI2pL,GAAkB93J,EAAQ,CAAEvZ,UAAW,kBAE9FuZ,EAAOksE,SAAS/9F,IAAK,kBAAmB,IAAIu1L,GAAmB1jK,IAE/DA,EAAOksE,SAAS/9F,IAAK,sBAAuB,IAAIytL,GAAkB57J,EAAQ,CAAEvZ,UAAW,WACvFuZ,EAAOksE,SAAS/9F,IAAK,qBAAsB,IAAIytL,GAAkB57J,EAAQ,CAAEvZ,UAAW,UACtFuZ,EAAOksE,SAAS/9F,IAAK,qBAAsB,IAAIytL,GAAkB57J,EAAQ,CAAEvZ,UAAW,UACtFuZ,EAAOksE,SAAS/9F,IAAK,mBAAoB,IAAIytL,GAAkB57J,EAAQ,CAAEvZ,UAAW,QAEpFuZ,EAAOksE,SAAS/9F,IAAK,uBAAwB,IAAImxL,GAAwBt/J,IACzEA,EAAOksE,SAAS/9F,IAAK,oBAAqB,IAAI6wL,GAAqBh/J,IAEnEA,EAAOksE,SAAS/9F,IAAK,iBAAkB,IAAIq2L,GAAkBxkK,IAC7DA,EAAOksE,SAAS/9F,IAAK,oBAAqB,IAAIu2L,GAAqB1kK,IAEnE8kK,GAA4BzsM,GAC5BwtM,GAAmCxtM,GAEnC4H,KAAK4P,SAAUxX,EAAMoL,SAAU,eAAe,MCpLjC,SAAsCpL,EAAc+0G,GAClE,MAAM3jC,EAASpxE,EAAMoL,SAASgmE,OAE9B,UAAY1jC,KAAU0jC,EAAOQ,aAAe,CAC3C,IAAI8nC,EACA20F,GAAc,EAElB,GAAoB,aAAf3gK,EAAO36B,KAAsB,CACjC,MAAM4L,EAAU+uB,EAAO/e,MAAM0J,MAAM4jB,UAEnC,IAAMt9B,IAAYA,EAAQxI,GAAI,UAAW,SACxC,SAGD,GAA4B,eAAvBu3B,EAAOuoB,cAAwD,kBAAvBvoB,EAAOuoB,aACnD,SAGDyjD,EAAQ/6F,EACR0vL,EAAqC,eAAvB3gK,EAAOuoB,YACtB,KAA2B,YAAfvoB,EAAO9jC,MAAqC,aAAf8jC,EAAO9jC,OAC/C8vG,EAAQhsE,EAAOre,SAASipB,aAAc,SACtC+1J,EAA6B,YAAf3gK,EAAO9jC,MAGtB,IAAM8vG,EACL,SAGD,MAAMu/E,EAAcv/E,EAAMp3E,aAAc,gBAA6B,EAC/Dq2J,EAAiBj/E,EAAMp3E,aAAc,mBAAgC,EAErE46J,EAAc,IAAIpD,GAAapgF,GAErC,UAAYskF,KAAad,EAAc,CACtC,MACMoR,EADYtQ,EAAUrE,IAAMV,GAAe+E,EAAUpF,OAASD,EAC5B,KAAO,KAEzC5vI,EAAcgsD,EAAQ7lC,OAAOf,cAAe6vH,EAAUpC,MAEvD7yI,GAAeA,EAAY5yC,GAAI,YAAe4yC,EAAYn/C,MAAQ0kM,GACtEv5F,EAAQtvB,cAAiB4oH,EAAcrQ,EAAUpC,KAAKp1L,OAASw3L,EAAUpC,KAE3E,CACD,CACD,CDwIG2S,CAA6BvuM,EAAO2nC,EAAOotE,SFnL/B,SAAkC/0G,EAAc+0G,GAC9D,MAAM3jC,EAASpxE,EAAMoL,SAASgmE,OAGxBo9H,EAAe,IAAI7yL,IAEzB,UAAY+xB,KAAU0jC,EAAOQ,aAAe,CAC3C,MAAMprE,EAAwB,aAAfknC,EAAO36B,KAAsB26B,EAAO/e,MAAM0J,MAAM7xB,OAASknC,EAAOre,SAAS7oB,OAEnFA,EAAO2P,GAAI,UAAW,cAC1Bq4L,EAAa14L,IAAKtP,EAEpB,CAEA,UAAYgyL,KAAagW,EAAax7L,SAAgC,CACrE,MAAMy7L,EAAsBlmM,MAAMrB,KAAMsxL,EAAU9pJ,eAChD/gC,QAAQuS,GAAS6tL,GAAe7tL,EAAkB60F,EAAQ7lC,UAE5D,UAAYyQ,KAAa8uH,EACxB15F,EAAQtvB,cAAe9F,EAEzB,CACD,CE8JG+uH,CAAyB1uM,EAAO2nC,EAAOotE,QAAS,GAElD,CAKO,sBAAA45F,CAAwBC,GAC9BhnM,KAAKomM,iBAAiBxmM,KAAMonM,EAC7B,EASD,SAASR,GAAgBr7L,GACxB,OAAS6oL,IACR,MAAMtvI,EAAOtnD,SAAU42L,EAAKt5J,aAAcvvB,IAE1C,OAAKkc,OAAOy3F,MAAOp6D,IAAUA,GAAQ,EAC7B,KAGDA,CAAI,CAEb,C,eExOI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQpnB,OCQR,MAAM2pK,WAAwB5pK,GAI5BzJ,MAKA+4E,WAKA1tE,aA0BhB,WAAAl9B,CAAaw7B,GACZ1vB,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAClB79B,KAAK4zB,MAAQ5zB,KAAKknM,wBAClBlnM,KAAK2sG,WAAa,IAAI32E,GACtBh2B,KAAKi/B,aAAe,IAAI1J,GACxBv1B,KAAK4R,IAAK,OAAQ,GAClB5R,KAAK4R,IAAK,UAAW,GACrB5R,KAAKgH,KAAM,SAAUzH,GAAIS,KAAM,UAAWA,KAAM,QAAQ,CAAEk+G,EAASkzE,IAAU,GAAIA,OAAYlzE,MAE7Fl+G,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CAAE,OAGV3mB,SAAU,CACT,CACCH,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CAAE,mCAEVpvB,GAAI,CACH,+CAAgDzI,EAAKzH,GAAI,YAE1D2Y,SAAUlY,KAAK4zB,OAEhB,CACC7b,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,mCAED,eAAe,GAEhB3mB,SAAU,CACT,CACCmgB,KAAMrxB,EAAKzH,GAAI,aAMnBkQ,GAAI,CACH2jG,UAAWpsG,EAAKzH,IAAIiW,IACnBA,EAAI2gB,gBAAgB,IAGrBg9E,MAAOnsG,EAAKzH,IAAI,KACfS,KAAK4Q,KAAM,UAAW,OAMzB5Q,KAAKyP,GAAI,WAAW,CAAE+F,EAAKkM,KAC1B,MAAM,IAAEqwK,EAAG,OAAEf,GAAWtvK,EAAO9d,OAAO+gD,QACtC3kD,KAAK4zB,MAAMxrB,IAAmC,IAA5BhL,SAAU20L,EAAK,IAAO,IAAa30L,SAAU4zL,EAAQ,IAAO,IAAOvxJ,OAAO,IAM7Fz/B,KAAKi/B,aAAaxvB,GAAI,yBAAyB,CAAE+F,EAAKxT,EAAM4zB,KAC3D,IAAMA,EACL,OAGD,MAAM,IAAEm8J,EAAG,OAAEf,GAAWp7J,EAAe+uB,QAGvC3kD,KAAK4R,IAAK,CACTw/K,KAAMh0L,SAAU20L,GAChB7zE,QAAS9gH,SAAU4zL,IACjB,IAGJhxL,KAAKyP,GAAI,kBAAkB,IAAMzP,KAAKmnM,wBACtCnnM,KAAKyP,GAAI,eAAe,IAAMzP,KAAKmnM,uBACpC,CAEgB,MAAAjvK,GACfrqB,MAAMqqB,SAEN6G,GAA4B,CAC3BC,iBAAkBh/B,KAAK2sG,WACvB1tE,aAAcj/B,KAAKi/B,aACnBC,UAAWl/B,KAAK4zB,MAChBuL,gBAAiB,GACjB7M,oBAAqBtyB,KAAKu9B,QAAUv9B,KAAKu9B,OAAOjL,sBAGjD,UAAYryB,KAAQD,KAAK4zB,MACxB5zB,KAAKi/B,aAAa/wB,IAAKjO,EAAK8W,SAG7B/W,KAAK2sG,WAAW/8F,SAAU5P,KAAK+W,QAChC,CAKO,KAAA8gF,GACN73F,KAAK4R,IAAK,CACTw/K,KAAM,EACNlzE,QAAS,GAEX,CAKO,KAAAz+E,GACNz/B,KAAK4zB,MAAMxrB,IAAK,GAAKq3B,OACtB,CAKO,SAAAo0E,GACN7zG,KAAK4zB,MAAMxrB,IAAK,GAAKq3B,OACtB,CAKQ,mBAAA0nK,GACP,MAAM/V,EAAOpxL,KAAKoxL,KACZlzE,EAAUl+G,KAAKk+G,QAErBl+G,KAAK4zB,MAAM52B,KAAK,CAAEoqM,EAASxiM,KAE1B,MAIM25G,EAJU1lH,KAAK+B,MAAOgK,EAAQ,IAIbwsL,GAHJxsL,EAAQ,GAGiBs5G,EAE5CkpF,EAAQx1L,IAAK,OAAQ2sG,EAAM,GAE7B,CAUQ,iBAAA8oF,CAAmB9pK,EAAgBw0J,EAAaf,EAAgBv4I,GACvE,MAAM09D,EAAS,IAAI,GAAY54E,GAc/B,OAZA44E,EAAOvkG,IAAK,CACX6mC,QACA5Z,MAAO,sCAGRs3E,EAAOv8E,eAAgB,CACtBr0B,WAAY,CACX,WAAYwsL,EACZ,cAAef,KAIV76E,CACR,CAKQ,qBAAA+wF,GACP,MAAMI,EAAQ,GAGd,QAAU1iM,EAAQ,EAAGA,EAAQ,IAAKA,IAAU,CAC3C,MAAMmtL,EAAMl5L,KAAK+B,MAAOgK,EAAQ,IAC1BosL,EAASpsL,EAAQ,GACjB6zC,EAAQ,GAAIs5I,EAAM,OAASf,EAAS,IAE1CsW,EAAM1nM,KAAMI,KAAKqnM,kBAAmBrnM,KAAKu9B,OAASw0J,EAAM,EAAGf,EAAS,EAAGv4I,GACxE,CAEA,OAAOz4C,KAAK29B,iBAAkB2pK,EAC/B,EC7Mc,MAAMC,WAAgB,GAIpC,qBAAkBtlK,GACjB,MAAO,SACR,CAKO,IAAAG,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAIgF,KAAK+/B,OAAO/kC,EAEhBwsM,EAA4C,QADjBznK,EAAOxC,OAAOtO,yBAG/C8Q,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,eAAeqvB,IAC9C,MAAM6D,EAA8BrB,EAAOksE,SAAS7jG,IAAK,eACnD+8G,EAAeC,GAAgB7nF,GAWrC,IAAIkqK,EAmBJ,OA5BAtiF,EAAan+G,KAAM,aAAczH,GAAI6hC,GAGrC+jF,EAAapM,WAAWnnG,IAAK,CAC5B0hG,KAAM,GAAMxB,MACZr5D,MAAOz9C,EAAG,gBACVw4G,SAAS,IAKV2R,EAAa11G,GAAI,iBAAiB,KAC5Bg4L,IAKLA,EAAkB,IAAIR,GAAiB1pK,GACvC4nF,EAAanD,UAAU9pG,SAAShK,IAAKu5L,GAErCA,EAAgBl2L,SAAU,WAAYhS,GAAI4lH,GAE1CA,EAAa11G,GAAI,WAAW,KAC3BswB,EAAOkB,QAAS,cAAe,CAAEmwJ,KAAMqW,EAAgBrW,KAAMlzE,QAASupF,EAAgBvpF,UACtFn+E,EAAOotE,QAAQx1E,KAAK8H,OAAO,IACzB,IAGG0lF,CAAY,IAGpBplF,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,uBAAuBqvB,IACtD,MAAM6D,EAA8BrB,EAAOksE,SAAS7jG,IAAK,eACnD09H,EAAW,IAAIgF,GAAiBvtG,GAChCkqK,EAAkB,IAAIR,GAAiB1pK,GAwB7C,OAtBAkqK,EAAgBl2L,SAAU,WAAYhS,GAAIumI,GAE1CA,EAASr2H,GAAoC,iBAAiB,CAAEC,EAAO1N,EAAMy3G,KACtEA,GACLguF,EAAgB5vG,OACjB,IAGD4vG,EAAgBh4L,GAAI,WAAW,KAC9BswB,EAAOkB,QAAS,cAAe,CAAEmwJ,KAAMqW,EAAgBrW,KAAMlzE,QAASupF,EAAgBvpF,UACtFn+E,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAG5BqmG,EAAS/sB,WAAWnnG,IAAK,CACxB6mC,MAAOz9C,EAAG,SACVs4G,KAAM,GAAMxB,QAGbg0B,EAAS9jB,UAAU9pG,SAAShK,IAAKu5L,GAEjC3hE,EAAS9+H,KAAM,aAAczH,GAAI6hC,GAE1B0kG,CAAQ,IAGhB/lG,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,eAAeqvB,IAC9C,MAAMh5B,EAAU,CACf,CACC4G,KAAM,eACN/S,MAAO,CACNktC,YAAa,uBACbmT,MAAOz9C,EAAG,iBACV0sM,UAAU,IAGZ,CAAEv8L,KAAM,aACR,CACCA,KAAM,SACN/S,MAAO,CACNktC,YAAakiK,EAAe,wBAA0B,yBACtD/uJ,MAAOz9C,EAAG,wBAGZ,CACCmQ,KAAM,SACN/S,MAAO,CACNktC,YAAakiK,EAAe,yBAA2B,wBACvD/uJ,MAAOz9C,EAAG,yBAGZ,CACCmQ,KAAM,SACN/S,MAAO,CACNktC,YAAa,oBACbmT,MAAOz9C,EAAG,mBAGZ,CACCmQ,KAAM,SACN/S,MAAO,CACNktC,YAAa,oBACbmT,MAAOz9C,EAAG,oBAKb,OAAOgF,KAAK2nM,iBAAkB3sM,EAAG,UCpKpC,yYDoKiEuJ,EAASg5B,EAAQ,IAGhFwC,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,YAAYqvB,IAC3C,MAAMh5B,EAAU,CACf,CACC4G,KAAM,eACN/S,MAAO,CACNktC,YAAa,oBACbmT,MAAOz9C,EAAG,cACV0sM,UAAU,IAGZ,CAAEv8L,KAAM,aACR,CACCA,KAAM,SACN/S,MAAO,CACNktC,YAAa,sBACbmT,MAAOz9C,EAAG,sBAGZ,CACCmQ,KAAM,SACN/S,MAAO,CACNktC,YAAa,sBACbmT,MAAOz9C,EAAG,sBAGZ,CACCmQ,KAAM,SACN/S,MAAO,CACNktC,YAAa,iBACbmT,MAAOz9C,EAAG,gBAGZ,CACCmQ,KAAM,SACN/S,MAAO,CACNktC,YAAa,iBACbmT,MAAOz9C,EAAG,iBAKb,OAAOgF,KAAK2nM,iBAAkB3sM,EAAG,OEhNpC,sYFgN2DuJ,EAASg5B,EAAQ,IAG1EwC,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,mBAAmBqvB,IAClD,MAAMh5B,EAAU,CACf,CACC4G,KAAM,SACN/S,MAAO,CACNktC,YAAa,mBACbmT,MAAOz9C,EAAG,mBAGZ,CACCmQ,KAAM,SACN/S,MAAO,CACNktC,YAAakiK,EAAe,sBAAwB,qBACpD/uJ,MAAOz9C,EAAG,sBAGZ,CACCmQ,KAAM,SACN/S,MAAO,CACNktC,YAAa,qBACbmT,MAAOz9C,EAAG,qBAGZ,CACCmQ,KAAM,SACN/S,MAAO,CACNktC,YAAakiK,EAAe,qBAAuB,sBACnD/uJ,MAAOz9C,EAAG,qBAGZ,CAAEmQ,KAAM,aACR,CACCA,KAAM,SACN/S,MAAO,CACNktC,YAAa,2BACbmT,MAAOz9C,EAAG,2BAGZ,CACCmQ,KAAM,SACN/S,MAAO,CACNktC,YAAa,6BACbmT,MAAOz9C,EAAG,8BAKb,OAAOgF,KAAK4nM,iCAAkC5sM,EAAG,eGlQpD,yYHkQyFuJ,EAASg5B,EAAQ,GAEzG,CASQ,gBAAAoqK,CAAkBlvJ,EAAe66D,EAAc/uG,EAA4Cg5B,GAClG,MAAMwC,EAAS//B,KAAK+/B,OACdolF,EAAeC,GAAgB7nF,GAC/B0uE,EAAWjsG,KAAK6nM,6BAA8B1iF,EAAc5gH,GAuBlE,OApBA4gH,EAAapM,WAAWnnG,IAAK,CAC5B6mC,QACA66D,OACAE,SAAS,IAIV2R,EAAan+G,KAAM,aAAcsN,OAAQ23F,EAAU,aAAa,IAAKigE,IAC7DA,EAAW70I,MAAM8I,GAAaA,MAGtCngC,KAAK4P,SAAUu1G,EAAc,WAAW3vG,IACvCuqB,EAAOkB,QAAWzrB,EAAItS,OAAgBoiC,aAG9B9vB,EAAItS,kBAAkBg5G,IAC7Bn8E,EAAOotE,QAAQx1E,KAAK8H,OACrB,IAGM0lF,CACR,CAUQ,gCAAAyiF,CAAkCnvJ,EAAe66D,EAAc/uG,EAA4Cg5B,GAClH,MAAMwC,EAAS//B,KAAK+/B,OACdolF,EAAeC,GAAgB7nF,EAAQ+qF,IACvCw/E,EAAmB,kBAGnBC,EAAkChoK,EAAOksE,SAAS7jG,IAAK0/L,GAGvD77F,EAAWjsG,KAAK6nM,6BAA8B1iF,EAAc5gH,GA0BlE,OAxBA4gH,EAAapM,WAAWnnG,IAAK,CAC5B6mC,QACA66D,OACAE,SAAS,EACTrzE,WAAW,IAIZglF,EAAan+G,KAAM,aAAcsN,OAAQ,CAAEyzL,KAAiB97F,GAAY,aAAa,IAAKigE,IAClFA,EAAW70I,MAAM8I,GAAaA,MAItCngC,KAAK4P,SAAUu1G,EAAapM,WAAY,WAAW,KAClDh5E,EAAOkB,QAAS6mK,GAChB/nK,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAI5Bz/B,KAAK4P,SAAUu1G,EAAc,WAAW3vG,IACvCuqB,EAAOkB,QAAWzrB,EAAItS,OAAgBoiC,aACtCvF,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAGrB0lF,CACR,CASQ,4BAAA0iF,CAA8B1iF,EAA4B5gH,GACjE,MAAMw7B,EAAS//B,KAAK+/B,OACdksE,EAA2B,GAC3Bg8D,EAAkB,IAAIr1I,GAE5B,UAAYhR,KAAUrd,EACrByjM,GAAepmL,EAAQme,EAAQksE,EAAUg8D,GAK1C,OAFAx+C,GAAmBtE,EAAc8iD,GAE1Bh8D,CACR,EAUD,SAAS+7F,GACRpmL,EACAme,EACAksE,EACAg8D,GAEA,GAAqB,WAAhBrmJ,EAAOzW,MAAqC,iBAAhByW,EAAOzW,KAA0B,CACjE,MAAM/S,EAAQwpB,EAAOxpB,MAAQ,IAAI,GAAWwpB,EAAOxpB,QAC7C,YAAEktC,EAAW,SAAEoiK,GAAa9lL,EAAOxpB,MACnCgpC,EAAUrB,EAAOksE,SAAS7jG,IAAKk9B,GAErC2mE,EAASrsG,KAAMwhC,GAEfhpC,EAAMwZ,IAAK,CAAE0zB,gBAEbltC,EAAM4O,KAAM,aAAczH,GAAI6hC,GAEzBsmK,GACJtvM,EAAM4O,KAAM,QAASzH,GAAI6hC,EAAS,SAGnChpC,EAAMwZ,IAAK,CACVmoG,UAAU,GAEZ,CAEAkuD,EAAgB/5J,IAAK0T,EACtB,C,eI7YI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ0b,OCyBR,MAAM2qK,WAAuB,GAI3C,qBAAkBhmK,GACjB,MAAO,gBACR,CAKA,mBAAkBW,GACjB,MAAO,CAAE88J,GAAYA,GACtB,CAKO,IAAAt9J,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACfu/B,EAAOoI,EAAOotE,QAAQx1E,KAE5B33B,KAAK4P,SACJxX,EACA,iBACA,CAAEod,EAAKtZ,IAAU8D,KAAKkoM,qBAAsB1yL,EAAKtZ,IACjD,CAAE8Q,SAAU,SAGbhN,KAAK4P,SACJ+nB,EAAKn0B,SACL,cACA,CAAEgS,EAAK1S,IAAU9C,KAAKmoM,uBAAwB3yL,EAAK1S,IACnD,CAAEkK,SAAU,SAGbhN,KAAKooM,4BACLpoM,KAAKqoM,wBACN,CAKO,qBAAA/F,GACN,MAAMxR,EAAa9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAKs3L,IACtC/+J,EAAY3gC,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,UAEvCm3J,EAAgBhH,EAAWwR,sBAAuB3hK,GAExD,OAA6B,GAAxBm3J,EAAcx/L,OACX,KAQDw/L,CACR,CAKO,sBAAAwQ,GACN,MAAMxX,EAAa9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAKs3L,IACtC5H,EAAgB93L,KAAKsiM,wBAE3B,OAAMxK,EAIC93L,KAAK+/B,OAAO3nC,MAAM0tC,QAAQC,IAChC,MAAM6/C,EAAmB7/C,EAAOpK,0BAExBlI,MAAO0nK,EAAaznK,KAAM0nK,GAAetK,EAAW6G,iBAAkBG,IACtErkK,MAAOgoK,EAAU/nK,KAAM2nK,GAAYvK,EAAWuG,cAAeS,GAE/DI,EAAcJ,EAAe,GAAIpnJ,aAAc,SAErD,IAAI63J,EAAkBlN,EAClBmN,EAAqBpN,EAIzB,GAAKtK,EAAW8R,uBAAwB9K,GAAkB,CACzD,MAAMmD,EAAa,CAClBE,cACAC,aACAK,WACAJ,WAGDkN,EAAkBvN,GAAoB9C,EAAa+C,GACnDuN,EAAqBjN,GAAuBrD,EAAa+C,EAC1D,CAEA,MAOMnpF,EAAQmmF,GAAuBC,EAPd,CACtBjF,SAAUwI,EACVtI,YAAagI,EACbjI,OAAQqV,EACRnV,UAAWoV,GAGsDziK,GAGlE,OAFAA,EAAOrgC,OAAQosG,EAAOlsB,EAAkB,GAEjCA,CAAgB,IAtChB,IAwCT,CAeO,gBAAA6iH,CAAkBC,EAAqBtE,GAC7C,MAAMuE,EAAgB3oM,KAAK4oM,kBAAmBF,EAAYtE,GAE1DpkM,KAAK+/B,OAAO3nC,MAAM0tC,QAAQC,IACzBA,EAAOwX,aACNorJ,EAAc5P,MAAM/7L,KAAKg3L,GAAQjuJ,EAAO2b,cAAesyI,KACvD,CAAEt7I,SAAUiwJ,EAAcjwJ,UAC1B,GAEH,CAKO,YAAAmwJ,GACN,MAEM9xL,EADiB,IADL/W,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,UACP2W,aAAct4C,MACrBo3C,sBAE/B,OAAKr/B,GAAWA,EAAQxI,GAAI,UAAW,aAC/BwI,EAGD,IACR,CAKO,aAAA+xL,GACN,MAEM/xL,EADkB,GADN/W,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,UACJ2W,aACTlB,sBAEhC,OAAKr/B,GAAWA,EAAQxI,GAAI,UAAW,aAC/BwI,EAGD,IACR,CAWQ,yBAAAqxL,GACP,MAAMroK,EAAS//B,KAAK+/B,OACdgpK,EAAgC,IAAIh1L,IAE1CgsB,EAAO1hC,WAAWurF,IAAK,mBAAoB17E,KAAKo7D,GAAcA,EAAW75D,GAAI,aAAa,CAAE+F,EAAK1S,EAAMumE,KACtG,MAAM+K,EAAa/K,EAActjC,QAqBlC,SAAqCquC,GACpC,UAAY40H,KAAyBD,EACpC30H,EAAW9tC,YAAa,+BAAgC0iK,GAGzDD,EAAYh3L,OACb,CAzBCk3L,CAA4B70H,GAE5B,MAAM0jH,EAAgB93L,KAAKsiM,wBAE3B,IAAMxK,EACL,OAGD,UAAYlH,KAAakH,EAAgB,CACxC,MAAM32I,EAAckoB,EAAc/B,OAAOf,cAAeqqH,GAExDx8G,EAAWltC,SAAU,+BAAgCia,GACrD4nJ,EAAY76L,IAAKizC,EAClB,CAEA,MAAM+nJ,EAAe7/H,EAAc/B,OAAOf,cAAeuxH,EAAeA,EAAcx/L,OAAS,IAC/F87E,EAAW72B,aAAc2rJ,EAAc,EAAG,GACxC,CAAEl8L,SAAU,YAShB,CASQ,sBAAAq7L,GACP,MAAMtoK,EAAS//B,KAAK+/B,OAEpB//B,KAAKyP,GAAI,oBAAoB,KAC5B,IAAMzP,KAAKmgC,UAAY,CACtB,MAAM23J,EAAgB93L,KAAKsiM,wBAE3B,IAAMxK,EACL,OAGD/3J,EAAO3nC,MAAM0tC,QAAQC,IACpB,MAAMte,EAAWse,EAAOub,iBAAkBw2I,EAAe,GAAK,GACxD/wK,EAAQgZ,EAAO3nC,MAAMkiC,OAAOk3C,yBAA0B/pD,GAE5Dse,EAAOwX,aAAcx2B,EAAO,GAE9B,IAEF,CAOQ,oBAAAmhL,CAAsBx4L,EAAkBxT,GAC/C,MAAM40L,EAAa9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAKs3L,IACtC/+J,EAAYzkC,EAAM,GAClBqI,EAAUrI,EAAM,GAChB9D,EAAQ4H,KAAK+/B,OAAO3nC,MACpBi/C,GAAc9yC,GAAgC,YAArBA,EAAQiiB,UACjCq8K,EAAqB/R,EAAWwR,sBAAuB3hK,GAEvDkiK,EAAmBvqM,SAIzBoX,EAAMrD,OAENjU,EAAM0tC,QAAQC,IACb,MAAMojK,EAAoBtG,EAAoBxrJ,EAAawrJ,EAAmBvqM,OAAS,EAAI,GAE3FF,EAAM0tC,QAAQC,IACb,UAAY6qJ,KAAaiS,EACxBzqM,EAAM4nG,cAAej6D,EAAO6b,gBAAiBgvI,EAAW,MACzD,IAGD,MAAMwY,EAAgBhxM,EAAMkiC,OAAOk3C,yBAA0BzrC,EAAOub,iBAAkB6nJ,EAAmB,IAKpGxoK,EAAUpyB,GAAI,qBAClBw3B,EAAOwX,aAAc6rJ,GAErBzoK,EAAU4L,MAAO68J,EAClB,IAEF,CAkBQ,sBAAAjB,CAAwB3yL,EAAgB1S,GAC/C,MAAMi9B,EAAS//B,KAAK+/B,OACd+3J,EAAgB93L,KAAKsiM,wBAE3B,IAAMxK,EACL,OAGD,MAAMngK,EAAOoI,EAAOotE,QAAQx1E,KACtB2vC,EAASvnC,EAAOotE,QAAQ7lC,OACxB9V,EAAasmI,EAAc96L,KAAK4zL,GAAaj5J,EAAK+pB,cAAe4lB,EAAOf,cAAeqqH,MAE7F9tL,EAAK69B,UAAYhJ,EAAKiqB,gBAAiB4P,EACxC,CAQQ,iBAAAo3I,CAAmBF,EAAqBtE,GAC/C,MAAMtT,EAAyB9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAK,cAClDs8L,EAAgB5T,EAAWG,gBAAiByX,GAC5C/D,EAAc7T,EAAWG,gBAAiBmT,GAE1CnR,EAAWp6L,KAAKD,IAAK8rM,EAAc3S,IAAK4S,EAAY5S,KACpDmB,EAASr6L,KAAKC,IAAK4rM,EAAc3S,IAAK4S,EAAY5S,KAElDoB,EAAct6L,KAAKD,IAAK8rM,EAAc1T,OAAQ2T,EAAY3T,QAC1DoC,EAAYv6L,KAAKC,IAAK4rM,EAAc1T,OAAQ2T,EAAY3T,QAGxDqY,EAAsC,IAAI1oM,MAAOuyL,EAASD,EAAW,GAAIjoL,KAAM,MAAOhO,KAAK,IAAM,KAEjGssM,EAAgB,CACrBrW,WACAC,SACAC,cACAC,aAGD,UAAY,IAAErB,EAAG,KAAEiC,KAAU,IAAI9B,GAAawW,EAAWh4J,aAAc,SAAY44J,GAClFD,EAActX,EAAMkB,GAAWrzL,KAAMo0L,GAGtC,MAAMuV,EAAiB5E,EAAY5S,IAAM2S,EAAc3S,IACjDyX,EAAmB7E,EAAY3T,OAAS0T,EAAc1T,OAU5D,OARKuY,GACJF,EAAa99L,UAGTi+L,GACJH,EAAazrM,SAASm0L,GAAOA,EAAIxmL,YAG3B,CACNwtL,MAAOsQ,EAAal2H,OACpBz6B,SAAU6wJ,GAAkBC,EAE9B,ECnVc,MAAMC,WAAuB,GAI3C,qBAAkBxnK,GACjB,MAAO,gBACR,CAKA,mBAAkBW,GACjB,MAAO,CAAEknH,GAAuBiD,GAAmBk7C,GAAgBvI,GACpE,CAKO,IAAAt9J,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdu9B,EAAev9B,EAAOotE,QAAQx1E,KAAKn0B,SAEzCxD,KAAK4P,SAAiC0tD,EAAc,QAAQ,CAAE9nD,EAAK1S,IAAU9C,KAAK0pM,WAAYl0L,EAAK1S,KACnG9C,KAAK4P,SAAgC0tD,EAAc,OAAO,CAAE9nD,EAAK1S,IAAU9C,KAAK0pM,WAAYl0L,EAAK1S,KACjG9C,KAAK4P,SACJmwB,EAAO3nC,MACP,iBACA,CAAEod,GAAOtV,EAASi4C,KAAkBn4C,KAAK2pM,iBAAkBn0L,EAAKtV,EAASi4C,IACzE,CAAEnrC,SAAU,SAGbhN,KAAKoV,SAAU,wBAChB,CAQQ,UAAAs0L,CAAYl0L,EAAgC1S,GACnD,MAAM60B,EAAO33B,KAAK+/B,OAAOotE,QAAQx1E,KAC3BiyK,EAAiB5pM,KAAK+/B,OAAOsC,QAAQj6B,IAAK6/L,IAC1C96C,EAAwBntJ,KAAK+/B,OAAOsC,QAAQj6B,IAAK0hJ,IAEjD8/C,EAAetH,0BAIJ,OAAZ9sL,EAAIxT,MAAkBhC,KAAK+/B,OAAO3nC,MAAM2oC,UAAW/gC,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,cAInF79B,EAAKqzB,iBACL3gB,EAAInJ,OAEJrM,KAAK+/B,OAAO3nC,MAAM63E,cAAe,CAAE2X,WAAyB,QAAbpyE,EAAIxT,OAAkB,KACpE,MAAM4jF,EAAmBunE,EAAsBlD,iCAC9Cz0I,EAAIxT,KACJhC,KAAK+/B,OAAO3nC,MAAMoL,SAASm9B,WAC3B,IAAMipK,EAAetB,2BAGtB3wK,EAAKn0B,SAASoN,KAAwC,kBAAmB,CACxE2sD,aAAcz6D,EAAKy6D,aACnBr9D,QAASF,KAAK+/B,OAAOj9B,KAAKskF,OAAQxB,GAClC3hD,OAAQzuB,EAAIxT,MACV,IAEL,CAcQ,gBAAA2nM,CAAkBn0L,EAAgBtV,EAAkCi4C,GAC3E,GAAKA,IAAeA,EAAW5pC,GAAI,qBAClC,OAGD,MAAMnW,EAAQ4H,KAAK+/B,OAAO3nC,MACpB04L,EAAa9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAKs3L,IACtCvyC,EAAwBntJ,KAAK+/B,OAAOsC,QAAQj6B,IAAK0hJ,IAGjD+/C,EAAc7pM,KAAK8pM,6BAA8B5pM,EAAS9H,GAEhE,IAAMyxM,EACL,OAGD,MAAMhH,EAAqB/R,EAAWmG,+BAAgC7+L,EAAMoL,SAASm9B,WAE/EkiK,EAAmBvqM,QAOzBkd,EAAInJ,OAECnM,EAAQqO,GAAI,oBAChB4+I,EAAsB5C,oCACrBrqJ,EAAQupE,SACR1jC,GAAU/lC,KAAK+pM,sBAAuBF,EAAahH,EAAoB98J,KAGxE/lC,KAAK+/B,OAAO3nC,MAAM0tC,QAAQC,IACzB/lC,KAAK+pM,sBAAuBF,EAAahH,EAAoB98J,EAAQ,KAftEg1J,GAAwB8O,EAAa/Y,EAkBvC,CAKQ,qBAAAiZ,CAAuBF,EAAsBhH,EAAoC98J,GACxF,MAAM+qJ,EAAa9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAKs3L,IAEtCsK,EAAmB,CACxB7mL,MAAO2tK,EAAWsJ,WAAYyP,GAC9BzmL,OAAQ0tK,EAAWgF,QAAS+T,IAIvBlpK,EA4NR,SACCkiK,EACAmH,EAIAjkK,EACA+qJ,GAEA,MAAMmZ,EAAgBpH,EAAoB,GAAInyJ,aAAc,SAEtDgnJ,EAAgB5G,EAAW6G,iBAAkBkL,GAC7CzL,EAAatG,EAAWuG,cAAewL,GAEvCliK,EAAY,CACjBw6J,YAAazD,EAAcjkK,MAC3B2nK,WAAY1D,EAAchkK,KAC1B+nK,SAAUrE,EAAW3jK,MACrB4nK,QAASjE,EAAW1jK,MAIfw2K,EAAsD,IAA9BrH,EAAmBvqM,OAE5C4xM,IACJvpK,EAAU06J,SAAW2O,EAAiB5mL,OAAS,EAC/Cud,EAAUy6J,YAAc4O,EAAiB7mL,MAAQ,EAsCnD,SAA0B2uF,EAAgBq4F,EAAwBC,EAAuBtZ,GACxF,MAAMuZ,EAAavZ,EAAWsJ,WAAYtoF,GACpCw4F,EAAcxZ,EAAWgF,QAAShkF,GAEnCs4F,EAAgBC,GACpBvZ,EAAW8G,cAAe9lF,EAAO,CAChCylF,GAAI8S,EACJnsF,QAASksF,EAAgBC,IAItBF,EAAiBG,GACrBxZ,EAAWwG,WAAYxlF,EAAO,CAC7BylF,GAAI+S,EACJlZ,KAAM+Y,EAAiBG,GAG1B,CArDEC,CAAiBN,EAAetpK,EAAU06J,QAAU,EAAG16J,EAAUy6J,WAAa,EAAGtK,IAK7EoZ,IAA0BpZ,EAAW8R,uBAAwBC,GAuInE,SAA2C/wF,EAAgBmpF,EAAoCl1J,GAC9F,MAAM,SAAE01J,EAAQ,QAAEJ,EAAO,YAAEF,EAAW,WAAEC,GAAeH,EAEjD7D,EAAa,CAAE3jK,MAAOgoK,EAAU/nK,KAAM2nK,GACtC3D,EAAgB,CAAEjkK,MAAO0nK,EAAaznK,KAAM0nK,GAGlDoP,GAAiB14F,EAAOqpF,EAAa/D,EAAYrxJ,GACjDykK,GAAiB14F,EAAOspF,EAAa,EAAGhE,EAAYrxJ,GAGpD0kK,GAAmB34F,EAAO2pF,EAAU/D,EAAe3xJ,GACnD0kK,GAAmB34F,EAAOupF,EAAU,EAAG3D,EAAe3xJ,EAAQ01J,EAC/D,CAhJEiP,CAAkCT,EAAetpK,EAAWoF,IAiB5DpF,EAAU06J,QAAUL,GAAoBiP,EAAetpK,GACvDA,EAAUy6J,WAAaG,GAAuB0O,EAAetpK,IAG9D,OAAOA,CACR,CAvRoBgqK,CAAwB9H,EAAoBmH,EAAkBjkK,EAAQ+qJ,GAIlF8Z,EAAkBjqK,EAAU06J,QAAU16J,EAAU86J,SAAW,EAC3DoP,EAAiBlqK,EAAUy6J,WAAaz6J,EAAUw6J,YAAc,EAgBtE0O,EAAc5R,GAAuB4R,EAPd,CACtB5W,SAAU,EACVE,YAAa,EACbD,OAAQr6L,KAAKD,IAAKgyM,EAAiBZ,EAAiB5mL,QAAW,EAC/DgwK,UAAWv6L,KAAKD,IAAKiyM,EAAgBb,EAAiB7mL,OAAU,GAGC4iB,GAGlE,MAAMkkK,EAAgBpH,EAAoB,GAAInyJ,aAAc,SAEtDi4J,EAAgB3oM,KAAK8qM,gCAAiCjB,EAAaG,EAAkBC,EAAetpK,EAAWoF,GAErH,GAAK/lC,KAAK+/B,OAAOsC,QAAQj6B,IAAK,kBAAmB+3B,UAAY,CAG5D,MAAM0rH,EAAkBilC,EAAWyR,WAAYoG,EAAc3rM,KAAKg3L,GAAQjuJ,EAAO2b,cAAesyI,MAEhGjuJ,EAAOwX,aAAcsuG,EACtB,MAEC9lH,EAAOwX,aAAcorJ,EAAe,GAAK,GAG1C,OAAOsB,CACR,CAKQ,+BAAAa,CACPjB,EACAG,EACAC,EACAtpK,EACAoF,GAEA,MAAQ5iB,MAAO4nL,EAAa3nL,OAAQ4nL,GAAiBhB,EAG/CiB,EA0RR,SAA4Bn5F,EAAgB3uF,EAAeC,GAE1D,MAAMpmB,EAAM,IAAI2D,MAAOyiB,GAASpY,KAAM,MACpChO,KAAK,IAAM,IAAI2D,MAAOwiB,GAAQnY,KAAM,QAEtC,UAAY,OAAEgmL,EAAM,IAAEe,EAAG,KAAEiC,KAAU,IAAI9B,GAAapgF,GACrD90G,EAAK+0L,GAAOf,GAAWgD,EAGxB,OAAOh3L,CACR,CApSiCkuM,CAAmBrB,EAAakB,EAAaC,GAEtEG,EAAmB,IAAK,IAAIjZ,GAAa+X,EAAe,CAC7DhX,SAAUtyJ,EAAU86J,SACpBvI,OAAQvyJ,EAAU06J,QAClBlI,YAAaxyJ,EAAUw6J,YACvB/H,UAAWzyJ,EAAUy6J,WACrB/H,iBAAiB,KAIZsV,EAAgC,GAGtC,IAAInlI,EAQJ,UAAY4yH,KAAa+U,EAAmB,CAC3C,MAAM,IAAEpZ,EAAG,OAAEf,GAAWoF,EAGnBpF,IAAWrwJ,EAAUw6J,cACzB33H,EAAiB4yH,EAAUV,qBAI5B,MAAM0V,EAAYrZ,EAAMpxJ,EAAU86J,SAC5B4P,EAAera,EAASrwJ,EAAUw6J,YAClCmQ,EAAaL,EAAwBG,EAAYJ,GAAgBK,EAAeN,GAIhFQ,EAAeD,EAAavlK,EAAO02D,aAAc6uG,GAAe,KAGhEE,EAAexrM,KAAKyrM,sBAAuBrV,EAAWmV,EAAc/nI,EAAiBz9B,GAGrFylK,IAKN7S,GAAuB6S,EAAczZ,EAAKf,EAAQrwJ,EAAU06J,QAAS16J,EAAUy6J,WAAYr1J,GAE3F4iK,EAAc/oM,KAAM4rM,GAEpBhoI,EAAiBz9B,EAAOwb,oBAAqBiqJ,GAC9C,CAGA,MAAMna,EAAcj0L,SAAU6sM,EAAcvvK,aAAc,gBAA6B,KACjFq2J,EAAiB3zL,SAAU6sM,EAAcvvK,aAAc,mBAAgC,KAEvFgxK,EAAsC/qK,EAAU86J,SAAWpK,GAAeA,GAAe1wJ,EAAU06J,QACnGsQ,EAAyChrK,EAAUw6J,YAAcpK,GAAkBA,GAAkBpwJ,EAAUy6J,WAErH,GAAKsQ,EAAsC,CAC1C,MACME,EAAWnB,GAAmBR,EAAe5Y,EAD9B,CAAE59J,MAAOkN,EAAUw6J,YAAaznK,KAAMiN,EAAUy6J,YACSr1J,EAAQpF,EAAU86J,UAEhGkN,EAAc/oM,QAASgsM,EACxB,CAEA,GAAKD,EAAyC,CAC7C,MACMC,EAAWpB,GAAiBP,EAAelZ,EAD/B,CAAEt9J,MAAOkN,EAAU86J,SAAU/nK,KAAMiN,EAAU06J,SACat1J,GAE5E4iK,EAAc/oM,QAASgsM,EACxB,CAEA,OAAOjD,CACR,CAQO,qBAAA8C,CACNrV,EACAmV,EACA/nI,EACAz9B,GAEA,MAAM,KAAEiuJ,EAAI,SAAEuB,GAAaa,EAW3B,OALKb,GACJxvJ,EAAO9/B,OAAQ+tL,GAIVuX,GAINxlK,EAAOrgC,OAAQ6lM,EAAc/nI,GAEtB+nI,GALC,IAMT,CAQO,4BAAAzB,CAA8B5pM,EAAkC9H,GACtE,IAAM8H,EAAQqO,GAAI,sBAAyBrO,EAAQqO,GAAI,WACtD,OAAO,KAIR,GAAKrO,EAAQqO,GAAI,UAAW,SAC3B,OAAOrO,EAKR,GAA2B,GAAtBA,EAAQ0mC,YAAmB1mC,EAAQinC,SAAU,GAAK54B,GAAI,UAAW,SACrE,OAAOrO,EAAQinC,SAAU,GAK1B,MAAM0kK,EAAezzM,EAAMupD,cAAezhD,GAE1C,UAAY6W,KAAW80L,EAAax1J,WACnC,GAAKt/B,EAAQxI,GAAI,UAAW,SAAY,CAEvC,MAAMu9L,EAAc1zM,EAAMqpD,YAAaoqJ,EAAap7K,MAAOr4B,EAAMopD,qBAAsBzqC,IAEvF,GAAK3e,EAAM0vF,WAAYgkH,EAAa,CAAE/jH,mBAAmB,IACxD,OAAO,KAIR,MAAMgkH,EAAa3zM,EAAMqpD,YAAarpD,EAAMmpD,oBAAqBxqC,GAAW80L,EAAa9/J,KAEzF,OAAK3zC,EAAM0vF,WAAYikH,EAAY,CAAEhkH,mBAAmB,IAChD,KAIDhxE,CACR,CAGD,OAAO,IACR,EA6LD,SAAS0zL,GAAmB34F,EAAgBonF,EAAkB8S,EAAsCjmK,EAAgBktJ,EAAmB,GAEtI,GAAKiG,EAAW,EACf,OAQD,OALyBL,GAA+B/mF,EAAOonF,EAAUjG,GAGnCltL,QAAQ,EAAIirL,SAAQwE,eAAiByW,GAAuBjb,EAAQwE,EAAWwW,KAEjGhvM,KAAK,EAAIg3L,UAAYiF,GAAmBjF,EAAMkF,EAAUnzJ,IAC7E,CAEA,SAASykK,GAAiB14F,EAAgB8nF,EAAqBsS,EAAmCnmK,GAEjG,GAAK6zJ,EAAc,EAClB,OAQD,OALyBJ,GAAiC1nF,EAAO8nF,GAG3B7zL,QAAQ,EAAIgsL,MAAK0D,gBAAkBwW,GAAuBla,EAAK0D,EAAYyW,KAE7FlvM,KAAK,EAAIg3L,OAAMhD,YAAc2I,GAAiB3F,EAAMhD,EAAQ4I,EAAa7zJ,IAC9F,CAOA,SAASkmK,GAAuBrnM,EAAe8/C,EAAci0F,GAC5D,MAAM2nB,EAAW17J,EAAQ8/C,EAAO,GAC1B,MAAEjxB,EAAK,KAAEC,GAASilH,EAKxB,OAH0B/zI,GAAS6uB,GAAS7uB,GAAS8uB,GAChB9uB,EAAQ6uB,GAAS6sI,GAAY7sI,CAGnE,CCrlBe,MAAM04K,WAAsB,GAI1C,qBAAkBlqK,GACjB,MAAO,eACR,CAKA,mBAAkBW,GACjB,MAAO,CAAEqlK,GAAgBvI,GAC1B,CAKO,IAAAt9J,GACN,MAAMrC,EAAS//B,KAAK+/B,OAEdu9B,EADOv9B,EAAOotE,QAAQx1E,KACFn0B,SACpBxI,EAAI+kC,EAAO/kC,EAEjBgF,KAAK4P,SACJ0tD,EACA,YACA,IAAKphE,IAAU8D,KAAKosM,eAAgBlwM,IACpC,CAAEyR,QAAS,UAGZ3N,KAAK4P,SACJ0tD,EACA,OACA,IAAKphE,IAAU8D,KAAKqsM,6BAA8BnwM,IAClD,CAAEyR,QAAS,WAGZ3N,KAAK4P,SACJ0tD,EACA,OACA,IAAKphE,IAAU8D,KAAKssM,cAAepwM,IACnC,CAAEyR,QAAS,CAAE,KAAM,QAIpBoyB,EAAOmtE,cAAcN,sBAAuB,CAC3C/sG,GAAI,QACJ44C,MAAOz9C,EAAG,+CACV2xG,WAAY,CACX,CACCl0D,MAAOz9C,EAAG,uCACVszB,UAAW,OAEZ,CACCmqB,MAAOz9C,EAAG,2CACVszB,UAAW,aAEZ,CACCmqB,MAAOz9C,EAAG,6DACVszB,UAAW,OAEZ,CACCmqB,MAAOz9C,EAAG,8BACVszB,UAAW,CAAE,CAAE,WAAa,CAAE,cAAgB,CAAE,aAAe,CAAE,iBAIrE,CAMQ,yBAAA+9K,CAA2BE,EAAsCz6C,GACxE,MAAM/xH,EAAS//B,KAAK+/B,OAEdqa,EADYra,EAAO3nC,MAAMoL,SAASm9B,UACNuX,qBAE5BkC,GAAoBA,EAAgB7rC,GAAI,UAAW,WAIzDujJ,EAAa37H,iBACb27H,EAAa17H,kBACbm2K,EAAkBlgM,OAElB0zB,EAAO3nC,MAAM0tC,QAAQC,IACpBA,EAAOwX,aAAcxX,EAAO4b,cAAiBvH,EAAgBjT,SAAU,GAAiBA,SAAU,IAAkB,IAEtH,CAMQ,UAAAmlK,CAAYC,EAAsCz6C,GACzD,MAAM/xH,EAAS//B,KAAK+/B,OACd+wJ,EAAyB9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAKs3L,IAClDkK,EAAiC5pM,KAAK+/B,OAAOsC,QAAQj6B,IAAK,kBAE1Du4B,EAAYZ,EAAO3nC,MAAMoL,SAASm9B,UAClCilE,GAAaksD,EAAa1jI,SAEhC,IAAIwiK,EAA4BE,EAAWiL,iCAAkCp7J,GAAa,GAM1F,GAJMiwJ,IACLA,EAAYgZ,EAAef,iBAGtBjY,EACL,OAGD9+B,EAAa37H,iBACb27H,EAAa17H,kBACbm2K,EAAkBlgM,OAElB,MAAM8pL,EAAWvF,EAAUhyL,OACrBkzG,EAAQqkF,EAASv3L,OAEjB4tM,EAAkB16F,EAAMxqE,cAAe6uJ,GACvCsW,EAAmBtW,EAAS7uJ,cAAespJ,GAE3C8b,EAAwC,IAArBD,EAEzB,IAAM7mG,GAAa8mG,GAAwC,IAApBF,EAMtC,YAJAzsK,EAAO3nC,MAAM0tC,QAAQC,IACpBA,EAAOwX,aAAcxX,EAAO2b,cAAeowD,GAAS,IAMtD,MAAM66F,EAAkBF,IAAqBtW,EAASvvJ,WAAa,EAC7DgmK,EAAYJ,IAAoB1b,EAAWgF,QAAShkF,GAAU,EAEpE,GAAKlM,GAAagnG,GAAaD,IAC9B5sK,EAAOkB,QAAS,uBAIXurK,IAAoB1b,EAAWgF,QAAShkF,GAAU,GAKtD,YAJA/xE,EAAO3nC,MAAM0tC,QAAQC,IACpBA,EAAOwX,aAAcxX,EAAO2b,cAAeowD,GAAS,IAOvD,IAAIssF,EAGJ,GAAKx4F,GAAa+mG,EAAkB,CACnC,MAAME,EAAU/6F,EAAM3qE,SAAUqlK,EAAkB,GAElDpO,EAAcyO,EAAQ1lK,SAAU,EACjC,UAEWy+D,GAAa8mG,EAAmB,CAC1C,MAAMI,EAAch7F,EAAM3qE,SAAUqlK,EAAkB,GAEtDpO,EAAc0O,EAAY3lK,SAAU2lK,EAAYlmK,WAAa,EAC9D,MAGCw3J,EAAcjI,EAAShvJ,SAAUslK,GAAqB7mG,EAAY,GAAK,IAGxE7lE,EAAO3nC,MAAM0tC,QAAQC,IACpBA,EAAOwX,aAAcxX,EAAO4b,cAAey8I,GAAe,GAE5D,CAKQ,WAAAgO,CAAat7L,EAAsBghJ,GAC1C,MAAM/xH,EAAS//B,KAAK+/B,OAGdvZ,EAAY,GAFFsrI,EAAa7jI,QAEiC8R,EAAOxC,OAAOtO,0BACzDjvB,KAAK+sM,iBAAkBvmL,EAAWsrI,EAAa1jI,YAGjE0jI,EAAa37H,iBACb27H,EAAa17H,kBACbtlB,EAAUzE,OAEZ,CASQ,gBAAA0gM,CAAkBvmL,EAAkCotI,GAC3D,MAAMk9B,EAAa9wL,KAAK+/B,OAAOsC,QAAQj6B,IAAKs3L,IACtCkK,EAAiC5pM,KAAK+/B,OAAOsC,QAAQj6B,IAAK,kBAC1DhQ,EAAQ4H,KAAK+/B,OAAO3nC,MACpBuoC,EAAYvoC,EAAMoL,SAASm9B,UAC3BilE,EAAY,CAAE,QAAS,QAASzzE,SAAU3L,GAI1CsxK,EAAgBhH,EAAWwR,sBAAuB3hK,GAExD,GAAKm3J,EAAcx/L,OAAS,CAC3B,IAAI00M,EAUJ,OAPCA,EADIp5C,EACQg2C,EAAef,eAEfjjG,EAAYkyF,EAAeA,EAAcx/L,OAAS,GAAMw/L,EAAe,GAGpF93L,KAAKitM,6BAA8BD,EAAYxmL,EAAWotI,IAEnD,CACR,CAGA,MAAMg9B,EAAYjwJ,EAAUlB,MAAOiR,aAAc,aAGjD,IAAMkgJ,EACL,OAAO,EAIR,IAAMjwJ,EAAUwU,YACf,GAAKy+G,GAMJ,GAAKjzH,EAAU0W,YAAcuuD,IAAcjlE,EAAUssC,sBAAuB2jH,GAC3E,OAAO,MAEF,CACN,MAAMx2I,EAAkBzZ,EAAUuX,qBAGlC,IAAMkC,IAAoBhiD,EAAMkiC,OAAOi3C,SAAUn3B,GAChD,OAAO,CAET,CAID,QAAKp6C,KAAKktM,uBAAwBvsK,EAAWiwJ,EAAWhrF,KACvD5lG,KAAKitM,6BAA8Brc,EAAWpqK,EAAWotI,IAElD,EAIT,CASQ,sBAAAs5C,CAAwBvsK,EAA0CiwJ,EAAoBhrF,GAC7F,MAAMxtG,EAAQ4H,KAAK+/B,OAAO3nC,MACpBkiC,EAASt6B,KAAK+/B,OAAO3nC,MAAMkiC,OAE3BmF,EAAQmmE,EAAYjlE,EAAU+W,kBAAqB/W,EAAUE,mBAInE,IAAMvG,EAAO4hD,gBAAiBz8C,GAAQlxB,GAAI,UAAW,aAAgB,CAGpE,OAFyBnW,EAAMkpD,iBAAkBsvI,EAAWhrF,EAAY,MAAQ,GAExD5jC,WAAYviC,EACrC,CAEA,MAAM2zH,EAAQh7J,EAAMwpD,gBAAiBniB,GAKrC,OAHArnC,EAAMqoG,gBAAiB2yD,EAAO,CAAE5sI,UAAWo/E,EAAY,UAAY,aAG5DnmE,EAAMpa,QAAS+tI,EAAM3zH,MAC7B,CASU,4BAAAwtK,CAA8BD,EAAoBxmL,EAAkCotI,GAAkB,GAC/G,MAAMx7J,EAAQ4H,KAAK+/B,OAAO3nC,MAEpB05G,EAAQk7F,EAAUt8J,aAAc,SAChC4nJ,EAAW,IAAK,IAAIpG,GAAapgF,EAAO,CAAEuhF,iBAAiB,MACzDtB,IAAKsJ,EAASrK,OAAQoK,GAAe9C,EAAUA,EAAShgM,OAAS,GAEnE60M,EAAkB7U,EAAS/jK,MAAM,EAAIy/J,UAAYA,GAAQgZ,IAC/D,IAAI,IAAEjb,EAAG,OAAEf,GAAWmc,EAEtB,OAAS3mL,GACR,IAAK,OACJwqK,IACA,MAED,IAAK,KACJe,IACA,MAED,IAAK,QACJf,GAAUmc,EAAgB3X,UAC1B,MAED,IAAK,OACJzD,GAAOob,EAAgB1X,WAWzB,GAP4B1D,EAAM,GAAKA,EAAMsJ,GACnBrK,EAAS,GAAKe,GAAO,GACvBf,EAASoK,GAAcrJ,GAAOsJ,EAUrD,YAJAjjM,EAAM0tC,QAAQC,IACbA,EAAOwX,aAAcxX,EAAO2b,cAAeowD,GAAS,IAMjDk/E,EAAS,GACbA,EAASp9B,EAAkB,EAAIwnC,EAC/BrJ,KACWf,EAASoK,IACpBpK,EAASp9B,EAAkBwnC,EAAa,EACxCrJ,KAGD,MAAMqb,EAAe9U,EAAS/jK,MAAMqwK,GAAYA,EAAS7S,KAAOA,GAAO6S,EAAS5T,QAAUA,IAAUgD,KAC9FpuF,EAAY,CAAE,QAAS,QAASzzE,SAAU3L,GAC1CojL,EAAiC5pM,KAAK+/B,OAAOsC,QAAQj6B,IAAK,kBAEhE,GAAKwrJ,GAAmBg2C,EAAezpK,UAAY,CAClD,MAAMuoK,EAAakB,EAAed,iBAAmBkE,EAErDpD,EAAenB,iBAAkBC,EAAY0E,EAC9C,KAAO,CACN,MAAMC,EAAmBj1M,EAAMkpD,iBAAkB8rJ,EAAcxnG,EAAY,EAAI,OAE/ExtG,EAAM0tC,QAAQC,IACbA,EAAOwX,aAAc8vJ,EAAkB,GAEzC,CACD,ECzXc,MAAMC,WAA4B,GAChCp4I,aAAe,CAC9B,YAAa,cAMP,UAAAC,CAAYH,GAClBh1D,KAAK4Q,KAAMokD,EAAS7pD,KAAM6pD,EAC3B,ECdc,MAAMu4I,WAAmB,GAIvC,qBAAkBtrK,GACjB,MAAO,YACR,CAKA,mBAAkBW,GACjB,MAAO,CAAEqlK,GAAgBvI,GAC1B,CAKO,IAAAt9J,GACSpiC,KAAK+/B,OAIbotE,QAAQx1E,KAAK2mC,YAAagvI,IAEjCttM,KAAKwtM,6BACLxtM,KAAKytM,2BACN,CAMQ,0BAAAD,GACP,MAAMztK,EAAS//B,KAAK+/B,OACd+wJ,EAAa/wJ,EAAOsC,QAAQj6B,IAAKs3L,IACvC,IAAIgO,GAAuB,EAE3B,MAAM9D,EAAiB7pK,EAAOsC,QAAQj6B,IAAK6/L,IAE3CjoM,KAAK4P,SAAUmwB,EAAOotE,QAAQx1E,KAAKn0B,SAAU,aAAa,CAAEgS,EAAKs8I,KAChE,MAAMnxH,EAAYZ,EAAO3nC,MAAMoL,SAASm9B,UAExC,IAAM3gC,KAAKmgC,YAAcypK,EAAezpK,UACvC,OAGD,IAAM2xH,EAAa98F,SAAS5mC,SAC3B,OAGD,MAAMs6K,EAAakB,EAAed,iBAAmBhY,EAAWiL,iCAAkCp7J,GAAa,GAE/G,IAAM+nK,EACL,OAGD,MAAMtE,EAAapkM,KAAK2tM,+BAAgC77C,GAEnDsyC,GAAcwJ,GAAqBlF,EAAYtE,KACnDsJ,GAAuB,EACvB9D,EAAenB,iBAAkBC,EAAYtE,GAE7CtyC,EAAa37H,iBACd,IAGDn2B,KAAK4P,SAAUmwB,EAAOotE,QAAQx1E,KAAKn0B,SAAU,WAAW,KACvDkqM,GAAuB,CAAK,IAmB7B1tM,KAAK4P,SAAUmwB,EAAOotE,QAAQx1E,KAAKn0B,SAAU,mBAAmBgS,IAC1Dk4L,GAGJl4L,EAAInJ,MACL,GACE,CAAEW,SAAU,WAChB,CAUQ,yBAAAygM,GACP,MAAM1tK,EAAS//B,KAAK+/B,OACpB,IAAI2oK,EAA4BtE,EAC5ByJ,GAAqB,EACrBH,GAAuB,EAE3B,MAAM9D,EAAiB7pK,EAAOsC,QAAQj6B,IAAK6/L,IAE3CjoM,KAAK4P,SAAUmwB,EAAOotE,QAAQx1E,KAAKn0B,SAAU,aAAa,CAAEgS,EAAKs8I,KAC1D9xJ,KAAKmgC,WAAcypK,EAAezpK,YAKnC2xH,EAAa98F,SAAS5mC,UAAY0jI,EAAa98F,SAAS7mC,SAAW2jI,EAAa98F,SAAS9mC,SAI9Fw6K,EAAa1oM,KAAK2tM,+BAAgC77C,IAAc,IAGjE9xJ,KAAK4P,SAAUmwB,EAAOotE,QAAQx1E,KAAKn0B,SAAU,aAAa,CAAEgS,EAAKs8I,KAChE,IAAMA,EAAa98F,SAASs0D,QAC3B,OAGD,IAAMo/E,EACL,OAGD,MAAMoF,EAAgB9tM,KAAK2tM,+BAAgC77C,GAEtDg8C,GAAiBF,GAAqBlF,EAAYoF,KACtD1J,EAAa0J,EAIPD,GAAsBzJ,GAAcsE,IACzCmF,GAAqB,IAKjBA,IAINH,GAAuB,EACvB9D,EAAenB,iBAAkBC,EAAYtE,GAE7CtyC,EAAa37H,iBAAgB,IAG9Bn2B,KAAK4P,SAAUmwB,EAAOotE,QAAQx1E,KAAKn0B,SAAU,WAAW,KACvDqqM,GAAqB,EACrBH,GAAuB,EACvBhF,EAAa,KACbtE,EAAa,IAAI,IAIlBpkM,KAAK4P,SAAUmwB,EAAOotE,QAAQx1E,KAAKn0B,SAAU,mBAAmBgS,IAC1Dk4L,GAGJl4L,EAAInJ,MACL,GACE,CAAEW,SAAU,WAChB,CAOQ,8BAAA2gM,CAAgC77C,GAEvC,MAAMi8C,EAAoBj8C,EAAaluJ,OACjC+4C,EAAe38C,KAAK+/B,OAAOotE,QAAQx1E,KAAK2pB,iBAAkBysJ,EAAmB,GAInF,OAHsB/tM,KAAK+/B,OAAOotE,QAAQ7lC,OAAOJ,gBAAiBvqB,GAC/B/9C,OAEf8xC,aAAc,YAAa,CAAEhJ,aAAa,GAC/D,EAGD,SAASkmK,GAAqBI,EAAgBC,GAC7C,OAAOD,EAAMpvM,OAAQA,QAAUqvM,EAAMrvM,OAAQA,MAC9C,C,eCjNI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ0+B,OCIhB,SAAS4wK,GAAiCvtK,GAChD,MAAMspK,EAAgBkE,GAAwBxtK,GAE9C,OAAKspK,GAIEmE,GAAwBztK,EAChC,CAKO,SAASwtK,GAAwBxtK,GACvC,MAAMwgB,EAAcxgB,EAAUuX,qBAE9B,OAAKiJ,GAAektJ,GAAeltJ,GAC3BA,EAGD,IACR,CAKO,SAASitJ,GAAwBztK,GACvC,MAAMynB,EAAoBznB,EAAUE,mBAEpC,IAAMunB,EACL,OAAO,KAGR,IAAIxpD,EAAiDwpD,EAAkBxpD,OAEvE,KAAQA,GAAS,CAChB,GAAKA,EAAO2P,GAAI,YAAe8/L,GAAezvM,GAC7C,OAAOA,EAGRA,EAASA,EAAOA,MACjB,CAEA,OAAO,IACR,CAKA,SAASyvM,GAAeltJ,GACvB,QAASA,EAAYvQ,kBAAmB,UAAa09G,GAAUntG,EAChE,C,eChEI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ7jB,OC6BR,MAAMgxK,WAAuBjxK,GA0CpC94B,QAKS06B,aAKA62E,YAKGE,YAKZmP,aAKAgF,UAKSxd,WAON4hG,aAYV,WAAAxsM,CAAaw7B,EAAgBh5B,GAC5BsJ,MAAO0vB,GAEPv9B,KAAK4R,IAAK,QAAS,IACnB5R,KAAK4R,IAAK,cAAc,GACxB5R,KAAK4R,IAAK,aAAa,GACvB5R,KAAK4R,IAAK,WAAW,GAErB5R,KAAKuE,QAAUA,EACfvE,KAAKi/B,aAAe,IAAI1J,GACxBv1B,KAAKg2G,YAAc,IAAIx+E,GACvBx3B,KAAKmlH,aAAenlH,KAAKwuM,sBACzBxuM,KAAKmqH,UAAYnqH,KAAKyuM,uBACtBzuM,KAAK2sG,WAAa,IAAI32E,GACtBh2B,KAAKuuM,cAAe,EAEpBvuM,KAAK81G,YAAc,IAAIpC,GAAa,CACnCC,WAAY3zG,KAAKg2G,YACjB/2E,aAAcj/B,KAAKi/B,aACnBD,iBAAkBh/B,KAAK2sG,WACvBplD,QAAS,CAER6sD,cAAe,cAGfD,UAAW,SAIbn0G,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,mBAGF3mB,SAAU,CACTlY,KAAKmlH,aACLnlH,KAAKmqH,aAIPnqH,KAAKyP,GAAI,gBAAgB,CAAE+F,EAAKxT,EAAM6tH,IAAgB7vH,KAAK0uM,eAAgB7+E,IAC5E,CAKgB,MAAA33F,GACfrqB,MAAMqqB,SAEN,CAAEl4B,KAAKmqH,UAAWnqH,KAAKmlH,aAAapM,YAAan7G,SAAS+5B,IACzD33B,KAAKi/B,aAAa/wB,IAAKypB,EAAK5gB,SAC5B/W,KAAKg2G,YAAY9nG,IAAKypB,EAAM,IAG7B33B,KAAK2sG,WAAW/8F,SAAU5P,KAAK+W,QAChC,CAKO,KAAA0oB,CAAOjZ,IACO,IAAfA,EACJxmB,KAAK81G,YAAYjC,YAEjB7zG,KAAK81G,YAAYlC,YAEnB,CAKgB,OAAA3rF,GACfpa,MAAMoa,UAENjoB,KAAKi/B,aAAahX,UAClBjoB,KAAK2sG,WAAW1kF,SACjB,CAKQ,mBAAAumL,GACP,MAAMjxK,EAASv9B,KAAKu9B,OACdviC,EAAIuiC,EAAOviC,EACXgM,EAAOhH,KAAK69B,aACZ8wK,EAAgB3uM,KAAK4uM,qBAAsBrxK,GAC3C4pF,EAAW/B,GAAgB7nF,GAC3BsxK,EAAe,IAAIxxK,GA8CzB,OA5CAwxK,EAAa5wK,YAAa,CACzBlmB,IAAK,OACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,mCAEDx5B,MAAO,CACN24G,gBAAiBh3G,EAAKzH,GAAI,WAG5B2Y,SAAU,CAAE,CACXH,IAAK,OACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,sDACA73B,EAAKuyB,GAAI,QAAS,aAAa/gC,GAAkB,IAATA,UAM5C2uH,EAASpO,WAAWn/E,eAAgB,CACnCr0B,WAAY,CACXs5B,MAAO,4BAITsoF,EAASpO,WAAW7gG,SAAShK,IAAK2gM,GAClC1nF,EAASpO,WAAWtgE,MAAQz9C,EAAG,gBAC/BmsH,EAASpO,WAAWvF,SAAU,EAE9B2T,EAAShF,cAA+C,QAA/B5kF,EAAOjL,oBAAgC,KAAO,KACvE60F,EAASnF,UAAU9pG,SAAShK,IAAKygM,GACjCxnF,EAASngH,KAAM,aAAczH,GAAIS,KAAM,cAAcxH,IAAUA,IAE/D2uH,EAAS13G,GAAI,iBAAiB,CAAE+F,EAAKxT,EAAM+mB,KACrCA,IACJ4lL,EAAc/8E,uBACd+8E,EAAc/6E,yBACf,IAGMzM,CACR,CAOQ,oBAAAsnF,GACP,MAAMlxK,EAASv9B,KAAKu9B,OACd4sF,EAAY,IAAI1I,GAAelkF,GA4BrC,OA1BA4sF,EAAUvwF,eAAgB,CACzBnqB,GAAI,CACHq/L,KAAM3kF,EAAUtsF,aAAat+B,GAAI,WAInC4qH,EAAU3xH,MAAQwH,KAAKxH,MACvB2xH,EAAUnjH,KAAM,aAAc,YAAazH,GAAIS,MAC/CA,KAAKgH,KAAM,YAAa,WAAYzH,GAAI4qH,GAExCA,EAAU16G,GAAI,SAAS,KACtB,MAAMogH,EAAa1F,EAAUpzG,QAASve,MAEhCu2M,EAAc/uM,KAAKuE,QAAQ45G,iBAAiB5pF,MAAMkE,GAAOo3F,IAAep3F,EAAIggB,QAElFz4C,KAAKuuM,cAAe,EACpBvuM,KAAKxH,MAAQu2M,GAAeA,EAAYzyM,OAASuzH,CAAU,IAG5D1F,EAAU16G,GAAI,QAAQ,KACrBzP,KAAKuuM,cAAe,EACpBvuM,KAAK0uM,eAAgBvkF,EAAUpzG,QAASve,MAAO,IAGhD2xH,EAAU54G,SAAU,SAAUhS,GAAIS,MAE3BmqH,CACR,CAKQ,oBAAAykF,CAAsBrxK,GAC7B,MAAMviC,EAAIuiC,EAAOviC,EACXizH,EAAejuH,KAAKuE,QAAQyqM,mBAAqB,GACjDC,EAAwCj0M,EAAfizH,EAAkB,kBAAyB,gBAEpE0gF,EAAgB,IAAIx7E,GAAmB51F,EAAQ,CACpD6zF,OAAQpxH,KAAKuE,QAAQ45G,iBACrBD,QAASl+G,KAAKuE,QAAQ25G,QACtBmT,kBAAmB49E,EACnB19E,iBAAkBv2H,EAAG,gBACrB23H,uBAA0D,IAAnC3yH,KAAKuE,QAAQ2qM,mBAAsC,IACtElvM,KAAKuE,QAAQ2qM,kBAChBngF,WAAW,KAIb4/E,EAAcr7E,WAEdq7E,EAAcl/L,GAA+B,WAAW,CAAE+F,EAAK1S,KACzC,0BAAhBA,EAAKI,QAKVlD,KAAKxH,MAAQsK,EAAKtK,OAASy1H,EAG3BjuH,KAAK4Q,KAAM,SAEU,gBAAhB9N,EAAKI,SACTlD,KAAKmlH,aAAa1L,QAAS,IAV3Bz5G,KAAKmlH,aAAa1L,QAAS,CAW5B,IAOD,IAAI01F,EAAcnvM,KAAKxH,MAsBvB,OApBAm2M,EAAcl/L,GAAyC,sBAAsB,KAI5EzP,KAAKxH,MAAQ22M,EAEbnvM,KAAK4Q,KAAM,SAEX5Q,KAAKmlH,aAAa1L,QAAS,CAAK,IAGjCk1F,EAAcv7E,uBAAuBrC,sBAAuBthH,GAAI,WAAW,KAI1E0/L,EAAcnvM,KAAKxH,KAAK,IAGzBm2M,EAAc3nM,KAAM,iBAAkBzH,GAAIS,KAAM,SAEzC2uM,CACR,CAaQ,cAAAD,CAAgB7+E,GACvB,IAAM7vH,KAAKuuM,aAAe,CACzB,MAAMa,EAAuBC,GAAgBx/E,GAEvCk/E,EAAc/uM,KAAKuE,QAAQ45G,iBAAiB5pF,MAAMkE,GAAO22K,IAAyBC,GAAgB52K,EAAIn8B,SAG3G0D,KAAKmqH,UAAU3xH,MADXu2M,EACmBA,EAAYt2J,MAEZo3E,GAAc,EAEvC,CACD,EAWD,SAASw/E,GAAgBvyM,GACxB,OAAOA,EAELga,QAAS,aAAc,MAEvBA,QAAS,wBAAyB,IAElCA,QAAS,QAAS,IACrB,CCpYA,MAAM,GAAYxc,GAAyB,KAARA,EAS5B,SAASg1M,GAAsBt0M,GACrC,MAAO,CACNu0M,KAAMv0M,EAAG,QACTw0M,MAAOx0M,EAAG,SACVy0M,OAAQz0M,EAAG,UACX00M,OAAQ10M,EAAG,UACX20M,OAAQ30M,EAAG,UACX40M,OAAQ50M,EAAG,UACX60M,MAAO70M,EAAG,SACV80M,MAAO90M,EAAG,SACV+0M,OAAQ/0M,EAAG,UAEb,CAQO,SAASg1M,GAA4Bh1M,GAC3C,OAAOA,EAAG,kEACX,CAQO,SAASi1M,GAA6Bj1M,GAC5C,OAAOA,EAAG,2DACX,CAQO,SAASk1M,GAAqB13M,GAGpC,OAFAA,EAAQA,EAAM+1B,OAAO5lB,cAEd,GAASnQ,IAAWywG,GAASzwG,EACrC,CASO,SAAS23M,GAAsB33M,GAGrC,OAFAA,EAAQA,EAAM+1B,OAEP,GAAS/1B,IAAW43M,GAAgB53M,IAAW,GAAUA,IAAW8wG,GAAc9wG,EAC1F,CAQO,SAAS63M,GAAyB73M,GAGxC,OAFAA,EAAQA,EAAM+1B,OAEP,GAAS/1B,IAAW43M,GAAgB53M,IAAW,GAAUA,EACjE,CAOO,SAAS83M,GACf34K,EACA44K,GAEA,MAAMtoC,EAA0D,IAAIr1I,GAC9D49K,EAAclB,GAAsB33K,EAAK38B,GAE/C,UAAYqK,KAASmrM,EAAc,CAClC,MAAMtoM,EAAyC,CAC9CiD,KAAM,SACN/S,MAAO,IAAI,GAAW,CACrBq4M,kBAAmBprM,EACnBozC,MAAO+3J,EAAanrM,GACpB2tG,KAAM,gBACN+G,UAAU,KAIG,SAAV10G,EACJ6C,EAAW9P,MAAM4O,KAAM,QAASzH,GAAIo4B,EAAM,eAAen/B,GAClC,SAAjB+3M,GACI/3M,EAGFA,IAAU6M,IAGlB6C,EAAW9P,MAAM4O,KAAM,QAASzH,GAAIo4B,EAAM,eAAen/B,GACjDA,IAAU6M,IAInB4iK,EAAgB/5J,IAAKhG,EACtB,CAEA,OAAO+/J,CACR,CAWO,SAASyoC,GACfnsM,GAUA,MAAM,KAAEozB,EAAI,MAAEg5K,EAAK,QAAE7jE,EAAO,OAAEz1I,EAAM,aAAE6c,EAAY,YAAE08L,EAAW,aAAE5kK,GAAiBznC,EAClF,UAAYvC,KAAQ3K,EAAS,CAC5B,MAAM8+G,EAAS,IAAI,GAAYx+E,EAAK4F,QAEpC44E,EAAOvkG,IAAK,CACX6mC,MAAOphD,EAAQ2K,GACfsxG,KAAMq9F,EAAO3uM,GACbwxG,QAASn8G,EAAQ2K,KAIlB,MAAM6uM,EAAcD,EAAcA,EAAa5uM,GAASA,EAExDm0G,EAAOnvG,KAAM,QAASzH,GAAIo4B,EAAMzjB,GAAc1b,IAE7C,IAAIs4M,EAA0Bt4M,EAO9B,MAJe,KAAVA,GAAgBwzC,IACpB8kK,EAAiB9kK,GAGX6kK,IAAgBC,CAAc,IAGtC36F,EAAO1mG,GAAI,WAAW,KACrBkoB,EAAMzjB,GAAiB28L,CAAW,IAGnC/jE,EAAQl5G,MAAM1lB,IAAKioG,EACpB,CACD,CA4EO,MAAM46F,GAAoC,CAChD,CACCz0M,MAAO,iBACPm8C,MAAO,SAER,CACCn8C,MAAO,kBACPm8C,MAAO,YAER,CACCn8C,MAAO,kBACPm8C,MAAO,QAER,CACCn8C,MAAO,kBACPm8C,MAAO,cAER,CACCn8C,MAAO,mBACPm8C,MAAO,QACPqlE,WAAW,GAEZ,CACCxhH,MAAO,mBACPm8C,MAAO,OAER,CACCn8C,MAAO,oBACPm8C,MAAO,UAER,CACCn8C,MAAO,oBACPm8C,MAAO,UAER,CACCn8C,MAAO,oBACPm8C,MAAO,eAER,CACCn8C,MAAO,qBACPm8C,MAAO,SAER,CACCn8C,MAAO,qBACPm8C,MAAO,cAER,CACCn8C,MAAO,qBACPm8C,MAAO,aAER,CACCn8C,MAAO,qBACPm8C,MAAO,cAER,CACCn8C,MAAO,qBACPm8C,MAAO,QAER,CACCn8C,MAAO,qBACPm8C,MAAO,WAsCF,SAASu4J,GACfzsM,GAOA,MAAO,CAAE2lH,EAAoCtJ,EAAiBC,KAC7D,MAAMowF,EAAiB,IAAI3C,GAAgBpkF,EAAiB3sF,OAAS,CACpE4gF,kBAoCyC+yF,EApCY3sM,EAAQ2sM,YAqCxDA,EAAYl0M,KAAKiD,IAAA,CACvB3D,MAAO2D,EAAK7H,MACZqgD,MAAOx4C,EAAKw4C,MACZl0C,QAAS,CACRu5G,UAAW79G,EAAK69G,gBAxChBI,QAAS35G,EAAQ25G,QACjB8wF,kBAAmBzqM,EAAQyqM,kBAC3BE,kBAAmB3qM,EAAQ2qM,oBAiC9B,IAA4CgC,EAd1C,OAhBAD,EAAe9mF,UAAUv4G,IAAK,CAC7B/R,GAAI+gH,EACJwJ,kBAAmBvJ,IAGpBowF,EAAejqM,KAAM,cAAezH,GAAI2qH,EAAkB,aAAa1xH,IAAUA,IACjFy4M,EAAejqM,KAAM,YAAazH,GAAI2qH,EAAkB,aAAa1xH,KAAWA,IAEhFy4M,EAAexhM,GAAI,SAAS,KAG3By6G,EAAiBlJ,UAAY,IAAI,IAGlCkJ,EAAiBljH,KAAM,UAAW,aAAczH,GAAI0xM,GAE7CA,CAAc,CAEvB,CAMA,SAASb,GAAgB53M,GACxB,MAAM6/K,EAAcz5D,WAAYpmH,GAEhC,OAAQ6uB,OAAOy3F,MAAOu5D,IAAiB7/K,IAAUkjB,OAAQ28J,EAC1D,C,eClaI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ/6I,OCWR,MAAM6zK,WAAoB9zK,GAWxBnlB,SA6BhB,WAAAnW,CAAaw7B,EAAgBh5B,EAA6E,CAAC,GAC1GsJ,MAAO0vB,GAEP,MAAMv2B,EAAOhH,KAAK69B,aAElB79B,KAAK4R,IAAK,QAASrN,EAAQs6B,OAAS,MACpC7+B,KAAKkY,SAAWlY,KAAK29B,mBAEhBp5B,EAAQ2T,UACZ3T,EAAQ2T,SAASta,SAAS0a,GAAStY,KAAKkY,SAAShK,IAAKoK,KAGvDtY,KAAK4R,IAAK,QAAS,MACnB5R,KAAK4R,IAAK,kBAAmB,MAExBrN,EAAQiuG,WACZxyG,KAAK4R,IAAK,CACTw/L,MAAO,QACPC,gBAAiB9sM,EAAQiuG,UAAU3yG,KAIrCG,KAAKi+B,YAAa,CACjBlmB,IAAK,MACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,eACA73B,EAAKzH,GAAI,UAEVyzG,KAAMhsG,EAAKzH,GAAI,SACf,kBAAmByH,EAAKzH,GAAI,oBAE7B2Y,SAAUlY,KAAKkY,UAEjB,E,eC/FG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQolB,O,eCTnB,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQA,O,eCTnB,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQA,OCKvB,MAAMg0K,GAA4Bp9E,GAAiBG,iBAE7Ck9E,GAAoB,CACzBD,GAA0B38E,gBAC1B28E,GAA0Bx8E,oBAC1Bw8E,GAA0Bv8E,oBAC1Bu8E,GAA0Bh9E,gBAC1Bg9E,GAA0B78E,oBAC1B68E,GAA0B58E,oBAC1B48E,GAA0Bt8E,qBAWpB,SAAS,GAA6Bj1F,EAAgBn8B,GAC5D,MAAMi3H,EAA6B96F,EAAOsC,QAAQj6B,IAAK,qBACjDu4B,EAAYZ,EAAOotE,QAAQx1E,KAAKn0B,SAASm9B,UAC/C,IAAIlZ,EAEY,SAAX7jB,EACCwqM,GAAwBztK,KAC5BlZ,EAAW+pL,GAA4BzxK,IAG/BmuK,GAAiCvtK,KAC1ClZ,EAAWgqL,GAA6B1xK,IAGpCtY,GACJozG,EAAQrjB,eAAgB/vF,EAE1B,CASO,SAASgqL,GAA6B1xK,GAC5C,MACMwmK,EAAa,GADDxmK,EAAO3nC,MAAMoL,SAASm9B,WAElCwwJ,EAAYpxJ,EAAOotE,QAAQ7lC,OAAOf,cAAeggI,GAEvD,MAAO,CACN3iM,OAAQm8B,EAAOotE,QAAQx1E,KAAKkkB,aAAaqK,aAAcirI,GACvDloK,UAAWsoL,GAEb,CASO,SAASC,GAA4BzxK,GAC3C,MAAMunC,EAASvnC,EAAOotE,QAAQ7lC,OACxBzrB,EAAe9b,EAAOotE,QAAQx1E,KAAKkkB,aACnClb,EAAYZ,EAAO3nC,MAAMoL,SAASm9B,UAExC,GAAKA,EAAUyW,WAAa,EAC3B,MAAO,CACNxzC,OAAQ,IA+BX,SAA6BoyC,EAAyBjW,GACrD,MAAMunC,EAASvnC,EAAOotE,QAAQ7lC,OACxBzrB,EAAe9b,EAAOotE,QAAQx1E,KAAKkkB,aACnC70B,EAAQrmB,MAAMrB,KAAM02C,GAASh5C,KAAK+pB,IACvC,MAAM2qL,EAAiBC,GAAwB5qL,EAAM0J,OAC/CmhL,EAAgBtqI,EAAOf,cAAemrI,GAC5C,OAAO,IAAI,GAAM71J,EAAaqK,aAAc0rJ,GAAkB,IAG/D,OAAO,GAAKhuL,gBAAiBoD,EAC9B,CAzCiB6qL,CAAoBlxK,EAAU2W,YAAavX,GACzD9W,UAAWsoL,IAIb,MAAMG,EAAiBC,GAAwBhxK,EAAUE,oBACnD+wK,EAAgBtqI,EAAOf,cAAemrI,GAE5C,MAAO,CACN9tM,OAAQi4C,EAAaqK,aAAc0rJ,GACnC3oL,UAAWsoL,GAEb,CAOA,SAASI,GAAwBlqL,GAGhC,OAF4BA,EAAS4sB,WAAa5sB,EAAS4sB,UAAU9lC,GAAI,UAAW,aAEvDkZ,EAAS4sB,UAAY5sB,EAASipB,aAAc,YAC1E,CCpFO,SAASohK,GAAgBC,GAC/B,IAAMA,IAAmB,EAAUA,GAClC,OAAOA,EAGR,MAAM,IAAE1vL,EAAG,MAAEE,EAAK,OAAEE,EAAM,KAAEE,GAASovL,EAErC,OAAK1vL,GAAOE,GAASA,GAASE,GAAUA,GAAUE,EAC1CN,OADR,CAGD,CAgBO,SAAS2vL,GAA8Bx5M,EAAoCy5M,GACjF,MAAMC,EAAetzF,WAAYpmH,GAEjC,OAAK6uB,OAAOy3F,MAAOozF,IAIdx2L,OAAQw2L,KAAmBx2L,OAAQljB,GAHhCA,EAOD,GAAI05M,IAAiBD,GAC7B,CAwBO,SAAS,GACftnL,EACApmB,EAMI,CAAC,GAEL,MAAM00E,EAAgD,CACrDk5H,YAAa,OACbC,YAAa,GACbC,YAAa,GACbr0F,gBAAiB,GACjB76F,MAAO,GACPC,OAAQ,MACLuH,GAmBJ,OAhBKpmB,EAAQ+tM,2BAA6Br5H,EAAiBw9D,YAC1Dx9D,EAAiBw9D,UAAY,UAGzBlyI,EAAQguM,yBAA2Bt5H,EAAiBu5H,UACxDv5H,EAAiBu5H,QAAU,IAGvBjuM,EAAQkuM,mCAAqCx5H,EAAiBy5H,oBAClEz5H,EAAiBy5H,kBAAoB,UAGjCnuM,EAAQouM,qCAAuC15H,EAAiB25H,sBACpE35H,EAAiB25H,oBAAsBruM,EAAQsuM,qBAAuB,QAAU,QAG1E55H,CACR,CC1GO,SAAS,GACf56E,EACAkG,GASA,MAAM,eACLo2E,EAAc,UACdp/C,EAAS,YACT4lB,EAAW,aACXnV,EAAY,eACZ8mK,GAAiB,EAAK,aACtBC,EAAe,MAAM,IAClBxuM,EAEJlG,EAAWurF,IAAK,UAAW5V,qBAAsB,CAChDr8C,KAAM,CACL31B,KAAMm/C,EACN7lB,OAAQ,CACP,CAAEC,GAAa,YAGjBnjC,MAAO,CACNrB,IAAK4jF,EACLniF,MAAS2oD,IACR,IAAM4xJ,EAAc5xJ,GACnB,OAGD,MAAMs3B,EAAat3B,EAAY3Q,mBAAoBjV,GAC7C/iC,EAAQs6M,EAAiBE,GAAqBv6H,GAAeA,EAEnE,OAAKzsC,IAAiBxzC,EACdA,OADR,CAEA,IAIJ,CAuHO,SAASy6M,GACf50M,EACAkG,GAKA,MAAM,eAAEo2E,EAAc,UAAEp/C,GAAch3B,EAEtClG,EAAWurF,IAAK,YAAa17E,KAAKo7D,GAAcA,EAAW75D,GAAI,aAAckrE,WAAyB,CAAEnlE,EAAK1S,EAAMumE,KAClH,MAAM,KAAEppE,EAAI,kBAAEqqE,GAAsBxnE,GAC9B,OAAEwkE,EAAM,OAAEvhC,GAAWsjC,EAE3B,IAAMA,EAAcsB,WAAWpC,QAASzlE,EAAK7C,KAAMuV,EAAIxT,MACtD,OAGD,MAAM8vG,EAAQ,IAAKxqC,EAAOf,cAAetmE,GAAO6mC,eAAgBvS,MAAMjc,GAASA,EAAM/J,GAAI,UAAW,WAE/F+7D,EACJvkC,EAAOyY,SAAUjjB,EAAW+uC,EAAmBwnC,GAE/C/rE,EAAO0Y,YAAaljB,EAAWu2E,EAChC,KAEF,CASA,SAASkhG,GAAqB3tM,GAC7B,IAAMA,EACL,OAED,MAAM6tM,EAAqB,CAAE,MAAO,QAAS,SAAU,QAGvD,IAFwBA,EAAMx8L,OAAOu5E,GAAQ5qF,EAAO4qF,KAGnD,OAAO5qF,EAGR,MAAM8tM,EAAe9tM,EAAMgd,IAG3B,OAFsB6wL,EAAMx8L,OAAOu5E,GAAQ5qF,EAAO4qF,KAAWkjH,IAMtDA,EAHC9tM,CAIT,CCjNe,MAAM+tM,WAA6B9yK,GAIjC0Q,cAKGqiK,cASnB,WAAAtxM,CAAag+B,EAAgBiR,EAAuBhF,GACnDn+B,MAAOkyB,GAEP//B,KAAKgxC,cAAgBA,EACrBhxC,KAAKqzM,cAAgBrnK,CACtB,CAKgB,OAAAvL,GACf,MAGMqxE,EAAQ,GAHC9xG,KAAK+/B,OACK3nC,MAAMoL,SAASm9B,WAIxC3gC,KAAKmgC,YAAc2xE,EACnB9xG,KAAKxH,MAAQwH,KAAK4jJ,UAAW9xC,EAC9B,CAWgB,OAAA7wE,CAAS18B,EAA8C,CAAC,GACvE,MAAMnM,EAAQ4H,KAAK+/B,OAAO3nC,MACpBuoC,EAAYvoC,EAAMoL,SAASm9B,WAE3B,MAAEnoC,EAAK,MAAEu3E,GAAUxrE,EAEnButG,EAAQ,GAA2BnxE,GACnC2O,EAAatvC,KAAKszM,eAAgB96M,GAExCJ,EAAM63E,cAAeF,GAAOhqC,IACtBuJ,EACJvJ,EAAOtgC,aAAczF,KAAKgxC,cAAe1B,EAAYwiE,GAErD/rE,EAAOr/B,gBAAiB1G,KAAKgxC,cAAe8gE,EAC7C,GAEF,CAKU,SAAA8xC,CAAW9xC,GACpB,IAAMA,EACL,OAGD,MAAMt5G,EAAQs5G,EAAMp3E,aAAc16B,KAAKgxC,eAEvC,OAAKx4C,IAAUwH,KAAKqzM,cAIb76M,OAJP,CAKD,CAKU,cAAA86M,CAAgB96M,GACzB,GAAKA,IAAUwH,KAAKqzM,cAIpB,OAAO76M,CACR,EC3Fc,MAAM+6M,WAAoCH,GAOxD,WAAArxM,CAAag+B,EAAgBiM,GAC5Bn+B,MAAOkyB,EAAQ,uBAAwBiM,EACxC,ECNc,MAAMwnK,WAAgCJ,GAOpD,WAAArxM,CAAag+B,EAAgBiM,GAC5Bn+B,MAAOkyB,EAAQ,mBAAoBiM,EACpC,CAKmB,SAAA43G,CAAW9xC,GAC7B,IAAMA,EACL,OAGD,MAAMt5G,EAAQs5M,GAAgBhgG,EAAMp3E,aAAc16B,KAAKgxC,gBAEvD,OAAKx4C,IAAUwH,KAAKqzM,cAIb76M,OAJP,CAKD,EC1Bc,MAAMi7M,WAAgCL,GAOpD,WAAArxM,CAAag+B,EAAgBiM,GAC5Bn+B,MAAOkyB,EAAQ,mBAAoBiM,EACpC,CAKmB,SAAA43G,CAAW9xC,GAC7B,IAAMA,EACL,OAGD,MAAMt5G,EAAQs5M,GAAgBhgG,EAAMp3E,aAAc16B,KAAKgxC,gBAEvD,OAAKx4C,IAAUwH,KAAKqzM,cAIb76M,OAJP,CAKD,EChBc,MAAMk7M,WAAgCN,GAOpD,WAAArxM,CAAag+B,EAAgBiM,GAC5Bn+B,MAAOkyB,EAAQ,mBAAoBiM,EACpC,CAKmB,SAAA43G,CAAW9xC,GAC7B,IAAMA,EACL,OAGD,MAAMt5G,EAAQs5M,GAAgBhgG,EAAMp3E,aAAc16B,KAAKgxC,gBAEvD,OAAKx4C,IAAUwH,KAAKqzM,cAIb76M,OAJP,CAKD,CAKmB,cAAA86M,CAAgB96M,GAClC,MAAMob,EAAWo+L,GAA8Bx5M,EAAO,MAEtD,GAAKob,IAAa5T,KAAKqzM,cAIvB,OAAOz/L,CACR,ECzCc,MAAM+/L,WAA0BP,GAO9C,WAAArxM,CAAag+B,EAAgBiM,GAC5Bn+B,MAAOkyB,EAAQ,aAAciM,EAC9B,CAKgB,cAAAsnK,CAAgB96M,GAG/B,IAFAA,EAAQw5M,GAA8Bx5M,EAAO,SAE9BwH,KAAKqzM,cAIpB,OAAO76M,CACR,ECtBc,MAAMo7M,WAA2BR,GAO/C,WAAArxM,CAAag+B,EAAgBiM,GAC5Bn+B,MAAOkyB,EAAQ,cAAeiM,EAC/B,CAKmB,cAAAsnK,CAAgB96M,GAGlC,IAFAA,EAAQw5M,GAA8Bx5M,EAAO,SAE9BwH,KAAKqzM,cAIpB,OAAO76M,CACR,ECjCc,MAAMq7M,WAA8BT,GAOlD,WAAArxM,CAAag+B,EAAgBiM,GAC5Bn+B,MAAOkyB,EAAQ,iBAAkBiM,EAClC,ECPD,MAAM,GAAuB,wBACvB8nK,GAAuB,sBAmBd,MAAMC,WAA+B,GAInD,qBAAkB9xK,GACjB,MAAO,wBACR,CAKA,mBAAkBW,GACjB,MAAO,CAAE,GACV,CAKO,IAAAR,GACN,MAAMrC,EAAS//B,KAAK+/B,OACdzF,EAASyF,EAAO3nC,MAAMkiC,OACtBj8B,EAAa0hC,EAAO1hC,WAE1B0hC,EAAOpV,OAAOj0B,OAAQ,0CAA2C,CAAC,GAElE,MAAMs9M,EAAyB,GAAgCj0K,EAAOpV,OAAOviB,IAAK,2CAA8C,CAC/HkqM,0BAA0B,IAG3BvyK,EAAOj9B,KAAKkmF,uBAAwB,IAiDtC,SAAiC1uD,EAAgBj8B,EAAwB41M,GACxE,MAAMrrB,EAAkB,CACvBzlK,MAAO,mBACP7mB,MAAO,mBACP+I,MAAO,oBAGRi1B,EAAOZ,OAAQ,QAAS,CACvBgmD,gBAAiB1oF,OAAOoU,OAAQw9K,KTvD3B,SACNvqL,EACAspE,EACAihH,EACAqrB,GAEA51M,EAAWurF,IAAK,UAAW17E,KAAKo7D,GAAcA,EAAW75D,GAAI,WAAak4D,GAAiB,CAAEnyD,EAAK1S,EAAMumE,KAGvG,IAAMvmE,EAAKskE,WACV,OAKD,MAAM8sI,EAAkB,CACvB,mBACA,mBACA,mBACA,sBACA,sBACA,sBACA,qBACA,qBACA,qBACA,oBACA,oBACA,qBACCnuM,QAAQw1B,GAAaz4B,EAAK+2E,SAASppC,SAAUlV,KAE/C,IAAM24K,EAAgB57M,OACrB,OAGD,MAAM67M,EAAiB,CACtB74K,OAAQ44K,GAIT,IAAM7qI,EAAcsB,WAAW1oE,KAAMa,EAAK+2E,SAAUs6H,GACnD,OAGD,MAAMluI,EAAe,IAAKnjE,EAAKskE,WAAW/wB,SAAU,CAAExD,SAAS,KAAW7zC,MAE1EqqE,EAAcsB,WAAWpC,QAASzlE,EAAK+2E,SAAUs6H,GAEjD,MAAMC,EAAmB,CACxB/uM,MAAOvC,EAAK+2E,SAASrpC,mBAAoB,gBACzCl0C,MAAOwG,EAAK+2E,SAASrpC,mBAAoB,gBACzCrtB,MAAOrgB,EAAK+2E,SAASrpC,mBAAoB,iBAGpC6jK,EAAgB,CACrBhvM,MAAO2tM,GAAqBoB,EAAiB/uM,OAC7C/I,MAAO02M,GAAqBoB,EAAiB93M,OAC7C6mB,MAAO6vL,GAAqBoB,EAAiBjxL,QAGzCkxL,EAAchvM,QAAU4uM,EAAc5uM,OAC1CgkE,EAActjC,OAAOtgC,aAAcmjL,EAAgBvjL,MAAOgvM,EAAchvM,MAAO4gE,GAG3EouI,EAAc/3M,QAAU23M,EAAc33M,OAC1C+sE,EAActjC,OAAOtgC,aAAcmjL,EAAgBtsL,MAAO+3M,EAAc/3M,MAAO2pE,GAG3EouI,EAAclxL,QAAU8wL,EAAc9wL,OAC1CkmD,EAActjC,OAAOtgC,aAAcmjL,EAAgBzlK,MAAOkxL,EAAclxL,MAAO8iD,EAChF,KAEF,CSbC,CAAoB5nE,EAAY,QAASuqL,EAAiBqrB,GAE1DhB,GAAwB50M,EAAY,CAAEs8E,eAAgBiuG,EAAgBtsL,MAAOi/B,UAAW,iBACxF03K,GAAwB50M,EAAY,CAAEs8E,eAAgBiuG,EAAgBvjL,MAAOk2B,UAAW,iBACxF03K,GAAwB50M,EAAY,CAAEs8E,eAAgBiuG,EAAgBzlK,MAAOoY,UAAW,gBACzF,CAhEE,CAAwBjB,EAAQj8B,EAAY,CAC3C/B,MAAO03M,EAAuB3B,YAC9BhtM,MAAO2uM,EAAuB7B,YAC9BhvL,MAAO6wL,EAAuB5B,cAG/BryK,EAAOksE,SAAS/9F,IAAK,mBAAoB,IAAIslM,GAAyBzzK,EAAQi0K,EAAuB3B,cACrGtyK,EAAOksE,SAAS/9F,IAAK,mBAAoB,IAAIulM,GAAyB1zK,EAAQi0K,EAAuB7B,cACrGpyK,EAAOksE,SAAS/9F,IAAK,mBAAoB,IAAIwlM,GAAyB3zK,EAAQi0K,EAAuB5B,cA+DvG,SAAkC93K,EAAgBj8B,EAAwB2tC,GACzE1R,EAAOZ,OAAQ,QAAS,CACvBgmD,gBAAiB,CAAE,oBAGpBrhF,EAAWurF,IAAK,YACd5V,qBAAsB,CACtB57E,MAAO,CACN4J,KAAM,QACNjL,IAAK,kBAEN4gC,KAAM8+G,IAAA,CACL1/I,IAAK,QACLyB,MAAO,CAENioK,MAAqB,WAAdhqB,EAAyB,OAASA,KAG3ClkE,kBAAmB,SAGrBl0E,EAAWurF,IAAK,UAEd5V,qBAAsB,CACtBr8C,KAAM,CACL31B,KAAM,mBACNs5B,OAAQ,CACPmlI,MAAOqzC,KAGT17M,MAAO,CACNrB,IAAK,iBACLyB,MAAS2oD,IACR,IAAImzJ,EAAQnzJ,EAAYhX,SAAU,SAOlC,MAJe,SAAVmqK,IACJA,EAAQ,UAGFA,IAAUtoK,EAAe,KAAOsoK,CAAK,KAK9CtgI,qBAAsB,CACtBr8C,KAAM,CACLpyB,WAAY,CACX+uM,MAAO,KAGTl8M,MAAO,CACN4J,KAAM,QACNjL,IAAK,iBACLyB,MAAS2oD,IACR,MAAMmzJ,EAAQnzJ,EAAYzmB,aAAc,SAExC,OAAO45K,IAAUtoK,EAAe,KAAOsoK,CAAK,IAIjD,CA1HEC,CAAyBj6K,EAAQj8B,EAAY21M,EAAuBv9D,WACpE12G,EAAOksE,SAAS/9F,IAAK,iBAAkB,IAAI2lM,GAAuB9zK,EAAQi0K,EAAuBv9D,YAEjG+9D,GAA6Bl6K,EAAQj8B,EAAY,CAChDs8E,eAAgB,aAChBp/C,UAAW,QACXyQ,aAAcgoK,EAAuB7wL,QAEtC4c,EAAOksE,SAAS/9F,IAAK,aAAc,IAAIylM,GAAmB5zK,EAAQi0K,EAAuB7wL,QAEzFqxL,GAA6Bl6K,EAAQj8B,EAAY,CAChDs8E,eAAgB,cAChBp/C,UAAW,SACXyQ,aAAcgoK,EAAuB5wL,SAEtC2c,EAAOksE,SAAS/9F,IAAK,cAAe,IAAI0lM,GAAoB7zK,EAAQi0K,EAAuB5wL,SAE3F2c,EAAOj9B,KAAKkmF,uBAAwB,IAgHtC,SACC1uD,EACAj8B,EACAkG,GAMA,MAAM,eAAEo2E,GAAmBp2E,EAE3B+1B,EAAOZ,OAAQ,QAAS,CACvBgmD,gBAAiB,CAAE/E,KAEpB,GAAwBt8E,EAAY,CAAE8iD,YAAa,WAAY58C,IAC/D0uM,GAAwB50M,EAAYkG,EACrC,CA/HE,CAAgB+1B,EAAQj8B,EAAY,CACnCs8E,eAAgB,uBAChBp/C,UAAW,mBACXyQ,aAAcgoK,EAAuBh2F,kBAEtCj+E,EAAOksE,SAAS/9F,IACf,uBACA,IAAIqlM,GAA6BxzK,EAAQi0K,EAAuBh2F,iBAElE,EA2HD,SAASw2F,GACRl6K,EACAj8B,EACAkG,GAMA,MAAM,eAAEo2E,GAAmBp2E,EAE3B+1B,EAAOZ,OAAQ,QAAS,CACvBgmD,gBAAiB,CAAE/E,KAGpB,GAAwBt8E,EAAY,CACnC8iD,YAAa,mBACb4xJ,aAAgBh8L,KAA6C,SAAhBA,EAAQ/U,MAA2C,UAAxB+U,EAAQnY,OAAQoD,SACrFuC,ITrGE,SACNlG,EACAkG,GAMA,MAAM,aAAE0hE,EAAY,eAAE0U,EAAc,UAAEp/C,GAAch3B,EAEpDlG,EAAWurF,IAAK,YAAa5V,qBAAsB,CAClD57E,MAAO,CACN4J,KAAMikE,EACNlvE,IAAK4jF,GAENhjD,KAAMk/C,IAAA,CACL9/E,IAAK,QACLyB,MAAO,CACN,CAAE+iC,GAAas7C,MAInB,CSkFC,CAA0Bx4E,EAAY,CAAE4nE,aAAc,WAAY1hE,GACnE,C,eCjQI,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQ+4B,OAAvB,MCmCM,GAAkB,CACvB3a,KAAM,GAAMmtF,WACZirE,OAAQ,GAAMhrE,aACdxtF,MAAO,GAAMytF,aAmCC,MAAMykG,WAA4Bp3K,GA4DhC94B,QAKA06B,aAKA0tE,WAKAz0F,SAKAw8L,oBAKAC,iBAKAC,iBAKAC,gBAKAC,WAKAC,YAKAC,iBAKTziF,eAKAC,iBAKYxc,YAKAkB,aAMnB,WAAAn1G,CAAaw7B,EAAgBh5B,GAC5BsJ,MAAO0vB,GAEPv9B,KAAK4R,IAAK,CACTugM,YAAa,GACbC,YAAa,GACbC,YAAa,GACbr0F,gBAAiB,GACjB76F,MAAO,GACPC,OAAQ,GACRqzH,UAAW,KAGZz2I,KAAKuE,QAAUA,EAEf,MAAM,oBAAEmwM,EAAmB,iBAAEC,EAAgB,iBAAEC,EAAgB,eAAEK,GAAmBj1M,KAAKk1M,uBACnF,mBAAEC,EAAkB,gBAAEN,GAAoB70M,KAAKo1M,2BAC/C,WAAEN,EAAU,cAAEO,EAAa,YAAEN,EAAW,gBAAEO,GAAoBt1M,KAAKu1M,0BACnE,iBAAEP,EAAgB,eAAEQ,GAAmBx1M,KAAKy1M,yBAElDz1M,KAAKi/B,aAAe,IAAI1J,GACxBv1B,KAAK2sG,WAAa,IAAI32E,GACtBh2B,KAAKkY,SAAWlY,KAAK29B,mBAErB39B,KAAK00M,oBAAsBA,EAC3B10M,KAAK20M,iBAAmBA,EACxB30M,KAAK40M,iBAAmBA,EACxB50M,KAAK60M,gBAAkBA,EACvB70M,KAAK80M,WAAaA,EAClB90M,KAAK+0M,YAAcA,EACnB/0M,KAAKg1M,iBAAmBA,EAKxB,MAAM,eAAEziF,EAAc,iBAAEC,GAAqBxyH,KAAK4yH,uBAElD5yH,KAAKuyH,eAAiBA,EACtBvyH,KAAKwyH,iBAAmBA,EACxBxyH,KAAKg2G,YAAc,IAAIx+E,GACvBx3B,KAAKk3G,aAAe,IAAIxD,GAAa,CACpCC,WAAY3zG,KAAKg2G,YACjB/2E,aAAcj/B,KAAKi/B,aACnBD,iBAAkBh/B,KAAK2sG,WACvBplD,QAAS,CAER6sD,cAAe,cAGfD,UAAW,SAKbn0G,KAAKkY,SAAShK,IAAK,IAAIulG,GAAgBl2E,EAAQ,CAC9Ckb,MAAOz4C,KAAKhF,EAAI,uBAIjBgF,KAAKkY,SAAShK,IAAK,IAAIijM,GAAa5zK,EAAQ,CAC3Ci1E,UAAWyiG,EACX/8L,SAAU,CACT+8L,EACAP,EACAE,EACAD,GAED91K,MAAO,+BAIR7+B,KAAKkY,SAAShK,IAAK,IAAIijM,GAAa5zK,EAAQ,CAC3Ci1E,UAAW2iG,EACXj9L,SAAU,CACTi9L,EACAN,GAEDh2K,MAAO,mCAGR7+B,KAAKkY,SAAShK,IAAK,IAAIijM,GAAa5zK,EAAQ,CAC3CrlB,SAAU,CAET,IAAIi5L,GAAa5zK,EAAQ,CACxBi1E,UAAW8iG,EACXp9L,SAAU,CACTo9L,EACAR,EACAO,EACAN,GAEDl2K,MAAO,kCAGR,IAAIsyK,GAAa5zK,EAAQ,CACxBi1E,UAAWgjG,EACXt9L,SAAU,CACTs9L,EACAR,GAEDn2K,MAAO,gDAMV7+B,KAAKkY,SAAShK,IAAK,IAAIijM,GAAa5zK,EAAQ,CAC3CrlB,SAAU,CACTlY,KAAKuyH,eACLvyH,KAAKwyH,kBAEN3zF,MAAO,+BAGR7+B,KAAKi+B,YAAa,CACjBlmB,IAAK,OACLxS,WAAY,CACXs5B,MAAO,CACN,KACA,UACA,gBACA,4BAGDo0E,SAAU,MAEX/6F,SAAUlY,KAAKkY,UAEjB,CAKgB,MAAAggB,GACfrqB,MAAMqqB,SAIN4G,GAAe,CACdnH,KAAM33B,OAIP,CAAEA,KAAK40M,iBAAkB50M,KAAK60M,iBAAkBj3M,SAAS+5B,IACxDA,EAAK8oF,UAAU3K,YAAYrmG,GAAkC,gBAAgB+F,IAC5ExV,KAAKk3G,aAAa/C,YAClB3+F,EAAInJ,MAAM,IAGXsrB,EAAK8oF,UAAU3K,YAAYrmG,GAAmC,iBAAiB+F,IAC9ExV,KAAKk3G,aAAa9C,gBAClB5+F,EAAInJ,MAAM,GACR,IAGJ,CACCrM,KAAK00M,oBACL10M,KAAK40M,iBACL50M,KAAK20M,iBACL30M,KAAK60M,gBACL70M,KAAK80M,WACL90M,KAAK+0M,YACL/0M,KAAKg1M,iBACLh1M,KAAKuyH,eACLvyH,KAAKwyH,kBACJ50H,SAAS+5B,IAEV33B,KAAKg2G,YAAY9nG,IAAKypB,GAGtB33B,KAAKi/B,aAAa/wB,IAAKypB,EAAM5gB,QAAU,IAIxC/W,KAAK2sG,WAAW/8F,SAAU5P,KAAK+W,QAChC,CAKgB,OAAAkR,GACfpa,MAAMoa,UAENjoB,KAAKi/B,aAAahX,UAClBjoB,KAAK2sG,WAAW1kF,SACjB,CAKO,KAAAwX,GACNz/B,KAAKk3G,aAAatD,YACnB,CASQ,mBAAAshG,GACP,MAAMlB,EAAyBh0M,KAAKuE,QAAQyvM,uBACtCC,EAAgB,CACrB5uM,MAAO2uM,EAAuB7B,YAC9BhvL,MAAO6wL,EAAuB5B,YAC9B91M,MAAO03M,EAAuB3B,aAGzBqD,EAAoB1E,GAA6B,CACtDE,YAAalxM,KAAKuE,QAAQoxM,aAC1Bz3F,QAAS,EACT8wF,kBAAmBiF,EAAc33M,MACjC4yM,kBAAmBlvM,KAAKuE,QAAQ2qM,oBAE3B3xK,EAASv9B,KAAKu9B,OACdviC,EAAIgF,KAAKhF,EACT+sK,EAAkB/sK,EAAG,SAIrBi6M,EAAiB,IAAIj7F,GAAWz8E,GACtC03K,EAAe58K,KAAOr9B,EAAG,UAIzB,MAAMw1M,EAAclB,GAAsBt0M,GACpC05M,EAAsB,IAAIl0F,GAAkBjjF,EAAQgtF,IAC1DmqF,EAAoB9iM,IAAK,CACxB6mC,MAAOsvH,EACPlpI,MAAO,gCAGR61K,EAAoBj0F,UAAU1H,WAAWnnG,IAAK,CAC7CmmG,UAAWgwD,EACXrgD,oBAAgB,EAChBnJ,MAAM,EACNxE,UAAU,EACVvG,QAASu0D,IAGV2sC,EAAoBj0F,UAAU1H,WAAW/xG,KAAM,SAAUzH,GAAIS,KAAM,eAAexH,GAC1Eg4M,EAAah4M,GAAgB,UAGrCk8M,EAAoBj0F,UAAUhxG,GAAI,WAAW+F,IAC5CxV,KAAKmyM,YAAgB38L,EAAItS,OAAgButM,iBAAiB,IAG3DiE,EAAoB1tM,KAAM,WAAYzH,GAAIS,KAAM,eAAexH,IAAUA,IAEzEixH,GAAmBirF,EAAoBj0F,UAAW6vF,GAA2BtwM,KAAMi0M,EAAc5uM,OAAU,CAC1G2tG,KAAM,OACN+E,UAAWgwD,IAKZ,MAAM4sC,EAAmB,IAAIn0F,GAAkBjjF,EAAQ0sF,IAEvD0qF,EAAiB/iM,IAAK,CACrB6mC,MAAOz9C,EAAG,SACV6jC,MAAO,gCAGR81K,EAAiBl0F,UAAUz5G,KAAM,SAAUzH,GAAIS,KAAM,eACrD20M,EAAiB3tM,KAAM,aAAczH,GAAIS,KAAM,cAAe,IAC9D20M,EAAiBl0F,UAAUhxG,GAAI,SAAS,KACvCzP,KAAKoyM,YAAcuC,EAAiBl0F,UAAU1pG,QAASve,KAAK,IAK7D,MAAMo8M,EAAmB,IAAIp0F,GAAkBjjF,EAAQm4K,GA8BvD,OA5BAd,EAAiBhjM,IAAK,CACrB6mC,MAAOz9C,EAAG,SACV6jC,MAAO,gCAGR+1K,EAAiBn0F,UAAUz5G,KAAM,SAAUzH,GAAIS,KAAM,eACrD40M,EAAiB5tM,KAAM,aAAczH,GAAIS,KAAM,cAAe,IAE9D40M,EAAiBn0F,UAAUhxG,GAAI,SAAS,KACvCzP,KAAKqyM,YAAcuC,EAAiBn0F,UAAUjoH,KAAK,IAIpDwH,KAAKyP,GAAmC,sBAAsB,CAAE+F,EAAKxT,EAAM4R,EAAUD,KAG9E,GAAkBC,KACvB5T,KAAKqyM,YAAc,GACnBryM,KAAKoyM,YAAc,IAId,GAAkBz+L,KACvB3T,KAAKqyM,YAAc4B,EAAc33M,MACjC0D,KAAKoyM,YAAc6B,EAAc9wL,MAClC,IAGM,CACN8xL,iBACAP,sBACAE,mBACAD,mBAEF,CAOQ,uBAAAS,GACP,MAAM73K,EAASv9B,KAAKu9B,OACdviC,EAAIgF,KAAKhF,EAITm6M,EAAqB,IAAIn7F,GAAWz8E,GAC1C43K,EAAmB98K,KAAOr9B,EAAG,cAI7B,MAAM46M,EAAyB5E,GAA6B,CAC3DE,YAAalxM,KAAKuE,QAAQsxM,iBAC1B33F,QAAS,EACT8wF,kBAAmBhvM,KAAKuE,QAAQyvM,uBAAuBh2F,gBACvDkxF,kBAAmBlvM,KAAKuE,QAAQ2qM,oBAG3B2F,EAAkB,IAAIr0F,GAAkBjjF,EAAQq4K,GAYtD,OAVAf,EAAgBjjM,IAAK,CACpB6mC,MAAOz9C,EAAG,SACV6jC,MAAO,yCAGRg2K,EAAgBp0F,UAAUz5G,KAAM,SAAUzH,GAAIS,KAAM,mBACpD60M,EAAgBp0F,UAAUhxG,GAAI,SAAS,KACtCzP,KAAKg+G,gBAAkB62F,EAAgBp0F,UAAUjoH,KAAK,IAGhD,CACN28M,qBACAN,kBAEF,CAQQ,sBAAAU,GACP,MAAMh4K,EAASv9B,KAAKu9B,OACdviC,EAAIgF,KAAKhF,EAITs6M,EAAkB,IAAIt7F,GAAWz8E,GACvC+3K,EAAgBj9K,KAAOr9B,EAAG,cAI1B,MAAM85M,EAAa,IAAIt0F,GAAkBjjF,EAAQ0sF,IAEjD6qF,EAAWljM,IAAK,CACf6mC,MAAOz9C,EAAG,SACV6jC,MAAO,yCAGRi2K,EAAWr0F,UAAUz5G,KAAM,SAAUzH,GAAIS,KAAM,SAC/C80M,EAAWr0F,UAAUhxG,GAAI,SAAS,KACjCzP,KAAKmjB,MAAQ2xL,EAAWr0F,UAAU1pG,QAASve,KAAK,IAKjD,MAAM68M,EAAgB,IAAIh4K,GAAME,GAChC83K,EAAcp3K,YAAa,CAC1BlmB,IAAK,OACLxS,WAAY,CACXs5B,MAAO,CACN,sCAGF3mB,SAAU,CACT,CAAEmgB,KAAM,QAMV,MAAM08K,EAAc,IAAIv0F,GAAkBjjF,EAAQ0sF,IAYlD,OAVA8qF,EAAYnjM,IAAK,CAChB6mC,MAAOz9C,EAAG,UACV6jC,MAAO,0CAGRk2K,EAAYt0F,UAAUz5G,KAAM,SAAUzH,GAAIS,KAAM,UAChD+0M,EAAYt0F,UAAUhxG,GAAI,SAAS,KAClCzP,KAAKojB,OAAS2xL,EAAYt0F,UAAU1pG,QAASve,KAAK,IAG5C,CACN88M,kBACAR,aACAO,gBACAN,cAEF,CAOQ,sBAAAU,GACP,MAAMl4K,EAASv9B,KAAKu9B,OACdviC,EAAIgF,KAAKhF,EAITw6M,EAAiB,IAAIx7F,GAAWz8E,GACtCi4K,EAAen9K,KAAOr9B,EAAG,aAIzB,MAAMg6M,EAAmB,IAAInxF,GAAatmF,GAe1C,OAdAy3K,EAAiBpjM,IAAK,CACrB23G,WAAW,EACXxR,UAAW/8G,EAAG,6BAGf01M,GAAa,CACZ/4K,KAAM33B,KACN2wM,MAAO,GACP7jE,QAASkoE,EACT39M,OAAQ2I,KAAK81M,iBACb5hM,aAAc,YACd83B,aAAchsC,KAAKuE,QAAQyvM,uBAAuBv9D,YAG5C,CACN++D,iBACAR,mBAEF,CAQQ,oBAAApiF,GAIP,MAAMr1F,EAASv9B,KAAKu9B,OACdviC,EAAIgF,KAAKhF,EAETu3H,EAAiB,IAAI,GAAYh1F,GACjCi1F,EAAmB,IAAI,GAAYj1F,GACnCw4K,EAAiC,CACtC/1M,KAAK20M,iBACL30M,KAAK40M,iBACL50M,KAAK60M,gBACL70M,KAAK80M,WACL90M,KAAK+0M,aAwBN,OArBAxiF,EAAe3gH,IAAK,CACnB6mC,MAAOz9C,EAAG,QACVs4G,KAAM,GAAM7E,MACZ5vE,MAAO,iBACP1zB,KAAM,SACN4uG,UAAU,IAGXwY,EAAevrH,KAAM,aAAcsN,OAAQyhM,EAAgC,aAAa,IAAKC,IACrFA,EAAWt/L,OAAOsqG,IAAcA,MAGxCwR,EAAiB5gH,IAAK,CACrB6mC,MAAOz9C,EAAG,UACVs4G,KAAM,GAAM18E,OACZiI,MAAO,mBACPk7E,UAAU,IAGXyY,EAAiBjhH,SAAU,WAAYhS,GAAIS,KAAM,UAE1C,CACNuyH,iBAAgBC,mBAElB,CAKA,oBAAYsjF,GACX,MAAMv4K,EAASv9B,KAAKu9B,OACdviC,EAAIgF,KAAKhF,EAET2nB,EAAO3nB,EAAG,2BACV+/K,EAAS//K,EAAG,gBACZunB,EAAQvnB,EAAG,4BAGjB,MAAoC,QAA/BuiC,EAAOjL,oBACJ,CAAE/P,QAAOw4J,SAAQp4J,QAEjB,CAAEA,OAAMo4J,SAAQx4J,QAEzB,EAGD,SAAS,GAAkB/pB,GAC1B,MAAiB,SAAVA,CACR,CC3uBA,MC0CM,GAAuB,CAC5B25M,YAAa,mBACbE,YAAa,mBACbD,YAAa,mBACbp0F,gBAAiB,uBACjB76F,MAAO,aACPC,OAAQ,cACRqzH,UAAW,kBASG,MAAMw/D,WAA0B,GAItCC,wBAKA//C,SAKDx+H,KAAmC,KAMlC6yI,eAMA2rC,SAKR,mBAAkBvzK,GACjB,MAAO,CAAE++F,GACV,CAKA,qBAAkB1/F,GACjB,MAAO,mBACR,CAKA,WAAAlgC,CAAag+B,GACZlyB,MAAOkyB,GAEPA,EAAOpV,OAAOj0B,OAAQ,wBAAyB,CAC9Ci/M,aAAc5E,GACd8E,iBAAkB9E,IAEpB,CAKO,IAAA3uK,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EAEjBgF,KAAKk2M,wBAA0B,GAAgCn2K,EAAOpV,OAAOviB,IAAK,2CAA8C,CAC/HkqM,0BAA0B,IAE3BtyM,KAAKm2J,SAAWp2H,EAAOsC,QAAQj6B,IAAKu5H,IAEpC5hG,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,mBAAmBqvB,IAClD,MAAM5F,EAAO,IAAI,GAAY4F,GAE7B5F,EAAK/lB,IAAK,CACT6mC,MAAOz9C,EAAG,oBACVs4G,KDjIJ,8eCkIIE,SAAS,IAGVxzG,KAAK4P,SAAU+nB,EAAM,WAAW,IAAM33B,KAAK0iI,cAE3C,MAAMz2B,EAAWj1G,OAAOoU,OAAQ,IAC9BpO,KAAKsoC,GAAevF,EAAOksE,SAAS7jG,IAAKk9B,KAM3C,OAJA3N,EAAK3wB,KAAM,aAAcsN,OAAQ23F,EAAU,aAAa,IAAKigE,IAC5DA,EAAW70I,MAAM++K,GAAoBA,MAG/Bz+K,CAAI,GAEb,CAKgB,OAAA1P,GACfpa,MAAMoa,UAIDjoB,KAAK23B,MACT33B,KAAK23B,KAAK1P,SAEZ,CAOQ,qBAAAouL,GACP,MAAMt2K,EAAS//B,KAAK+/B,OACdpV,EAASoV,EAAOpV,OAAOviB,IAAK,yBAC5BkuM,EAAqB14F,GAAuBjzF,EAAOgrL,cACnDY,EAAwBz5F,GAA0B/8E,EAAOxC,OAAQ+4K,GACjEE,EAAyB54F,GAAuBjzF,EAAOkrL,kBACvDY,EAA4B35F,GAA0B/8E,EAAOxC,OAAQi5K,GACrErsC,GAAwC,IAAvBx/I,EAAOy/I,YAExBzyI,EAAO,IAAI88K,GAAqB10K,EAAOxC,OAAQ,CACpDo4K,aAAcY,EACdV,iBAAkBY,EAClBzC,uBAAwBh0M,KAAKk2M,wBAC7BhH,oBAAmB/kC,IAAmBx/I,EAAOy/I,aAAe,CAAC,KAExDpvK,EAAI+kC,EAAO/kC,EAGjB28B,EAAKO,SAELl4B,KAAK4P,SAAU+nB,EAAM,UAAU,KAC9B33B,KAAK02M,WAAW,IAGjB12M,KAAK4P,SAAU+nB,EAAM,UAAU,KAEzB33B,KAAKwqK,eAAgBrmG,WAAW7rE,QACpCynC,EAAOkB,QAAS,OAAQjhC,KAAKwqK,gBAG9BxqK,KAAK02M,WAAW,IAIjB/+K,EAAKg1E,WAAW/6F,IAAK,OAAO,CAAE9O,EAAM8zB,KACnC52B,KAAK02M,YACL9/K,GAAQ,IAITsH,GAAqB,CACpBluB,QAAS2nB,EACTwG,UAAW,IAAMn+B,KAAK22M,iBACtBv4K,gBAAiB,CAAEp+B,KAAKm2J,SAASx+H,KAAK5gB,SACtCpH,SAAU,IAAM3P,KAAK02M,cAGtB,MAAME,EAAiB5G,GAA4Bh1M,GAC7C67M,EAAkB5G,GAA6Bj1M,GAoDrD,OA7CA28B,EAAKloB,GACJ,qBACAzP,KAAK82M,2BAA4B,qBAGlCn/K,EAAKloB,GAAmC,qBAAsBzP,KAAK+2M,oCAAqC,CACvGC,UAAWr/K,EAAKi9K,iBAChBtvK,YAAa,mBACb07E,UAAW41F,EACX59B,UAAWk3B,MAGZv4K,EAAKloB,GAAmC,qBAAsBzP,KAAK+2M,oCAAqC,CACvGC,UAAWr/K,EAAKg9K,iBAChBrvK,YAAa,mBACb07E,UAAW61F,EACX79B,UAAWq3B,MAGZ14K,EAAKloB,GAAmC,yBAA0BzP,KAAK+2M,oCAAqC,CAC3GC,UAAWr/K,EAAKk9K,gBAChBvvK,YAAa,uBACb07E,UAAW41F,EACX59B,UAAWk3B,MAGZv4K,EAAKloB,GAAmC,eAAgBzP,KAAK+2M,oCAAqC,CACjGC,UAAWr/K,EAAKm9K,WAChBxvK,YAAa,aACb07E,UAAW61F,EACX79B,UAAWm3B,MAGZx4K,EAAKloB,GAAmC,gBAAiBzP,KAAK+2M,oCAAqC,CAClGC,UAAWr/K,EAAKo9K,YAChBzvK,YAAa,cACb07E,UAAW61F,EACX79B,UAAWm3B,MAGZx4K,EAAKloB,GACJ,mBACAzP,KAAK82M,2BAA4B,mBAG3Bn/K,CACR,CAUQ,8BAAAs/K,GACP,MAAMhrG,EAAWjsG,KAAK+/B,OAAOksE,SACvBirG,EAA8CjrG,EAAS7jG,IAAK,oBAElEpR,OAAOoiB,QAAS,IACdpc,KAAK,EAAIuW,EAAU+xB,MACnB,MAAM6xK,EAAc5jM,EACdy4B,EAAehsC,KAAKk2M,wBAAyBiB,IAAiB,GAEpE,MAAO,CAAEA,EAAelrG,EAAS7jG,IAAKk9B,GAAe9sC,OAASwzC,EAA0B,IAExFpuC,SAAS,EAAI2V,EAAU/a,OAEH,gBAAb+a,GAA2C,gBAAbA,GAA6D,SAA7B2jM,EAAmB1+M,QAIxFwH,KAAK23B,KAAM/lB,IAAK2B,EAAU/a,EAAO,IAGnCwH,KAAKm2M,UAAW,CACjB,CASU,SAAAzzE,GACT,MAAM3iG,EAAS//B,KAAK+/B,OAEd//B,KAAK23B,OACV33B,KAAK23B,KAAO33B,KAAKq2M,yBAGlBr2M,KAAK4P,SAAUmwB,EAAO+E,GAAI,UAAU,KACnC9kC,KAAKo3M,aAAa,IAInBp3M,KAAKi3M,iCAELj3M,KAAKm2J,SAASjoJ,IAAK,CAClBypB,KAAM33B,KAAK23B,KACXlQ,SAAUgqL,GAA6B1xK,KAIxC//B,KAAKwqK,eAAiBzqI,EAAO3nC,MAAM2vG,cAGnC/nG,KAAK23B,KAAK8H,OACX,CAKU,SAAAi3K,GACT,MAAM32K,EAAS//B,KAAK+/B,OAEpB//B,KAAK+P,cAAegwB,EAAO+E,GAAI,UAE/B9kC,KAAKm2M,UAAW,EAIhBn2M,KAAK23B,KAAM46F,eAAe9yF,QAE1Bz/B,KAAKm2J,SAASlwJ,OAAQjG,KAAK23B,MAI3B33B,KAAK+/B,OAAOotE,QAAQx1E,KAAK8H,OAC1B,CAKU,WAAA23K,GACT,MAAMr3K,EAAS//B,KAAK+/B,OAGdmuK,GAFenuK,EAAOotE,QAAQx1E,KAAKn0B,SAEWm9B,WAExC3gC,KAAKq3M,gBAChB,GAA6Bt3K,EAAQ,SAFrC//B,KAAK02M,WAIP,CAKA,kBAAYW,GACX,QAASr3M,KAAK23B,MAAQ33B,KAAKm2J,SAASvzB,cAAgB5iI,KAAK23B,IAC1D,CAKA,oBAAYg/K,GACX,QAAS32M,KAAK23B,MAAQ33B,KAAKm2J,SAAS/zB,QAASpiI,KAAK23B,KACnD,CAUQ,0BAAAm/K,CAA4BxxK,GACnC,MAAO,CAAE9vB,EAAgBtB,EAAsBN,KAExC5T,KAAKm2M,UAIXn2M,KAAK+/B,OAAOkB,QAASqE,EAAa,CACjC9sC,MAAOob,EACPm8D,MAAO/vE,KAAKwqK,gBACV,CAEL,CAOQ,mCAAAusC,CACPxyM,GAOA,MAAM,YAAE+gC,EAAW,UAAE0xK,EAAS,UAAEh+B,EAAS,UAAEh4D,GAAcz8G,EACnD+yM,EAAwB,IAAU,KACvCN,EAAUh2F,UAAYA,CAAS,GA1XP,KA6XzB,MAAO,CAAExrG,EAAgBtB,EAAsBN,KAC9C0jM,EAAsB1gL,SAGhB52B,KAAKm2M,WAINn9B,EAAWplK,IACf5T,KAAK+/B,OAAOkB,QAASqE,EAAa,CACjC9sC,MAAOob,EACPm8D,MAAO/vE,KAAKwqK,iBAGbwsC,EAAUh2F,UAAY,MAEtBs2F,IACD,CAEF,E,eCpbG,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQh6K,O,eCTnB,GAAU,CAAC,WAAa,oBAAoB,WAAa,CAAC,YAAW,GAEzE,OAAiB,OACjB,WAAoB,GAEP,KAAI,KAAS,IAIX,KAAQA,OCwCvB,MAAMi6K,WAAsB,IAC5B,MAAMC,WAAqB,IAE3B,MAAMn1K,GAAU,CChCD,cAAwB,GAItC,mBAAkBO,GACjB,MAAO,CAAE40G,GAAkBW,GAC5B,CAKA,qBAAkBl2G,GACjB,MAAO,WACR,G9Sbc,cAAyB,GAIvC,mBAAkBW,GACjB,MAAO,CAAEw5G,GACV,CAKA,qBAAkBn6G,GACjB,MAAO,YACR,CAKO,SAAAypI,GACN,MAAM3rI,EAAS//B,KAAK+/B,OACd/kC,EAAIgF,KAAK+/B,OAAO/kC,EAEtBgF,KAAKy3M,sBACLz3M,KAAK03M,6BACL13M,KAAK23M,yBACL33M,KAAK43M,4BACL53M,KAAK63M,2BACL73M,KAAK83M,gCAGL/3K,EAAOmtE,cAAcF,kBAAmB,CACvCL,WAAY,CACX,CACCl0D,MAAOz9C,EAAG,gCACVszB,UAAW,eAIf,CAWQ,mBAAAmpL,GACP,MAAMxrG,EAAWjsG,KAAK+/B,OAAOksE,SAExBA,EAAS7jG,IAAK,iBAClBo3I,GAAwBx/I,KAAK+/B,OAAQ//B,KAAM,WAAY,gBAGnDisG,EAAS7jG,IAAK,iBAClBo3I,GAAwBx/I,KAAK+/B,OAAQ//B,KAAM,aAAc,gBAGrDisG,EAAS7jG,IAAK,aAClBo3I,GAAwBx/I,KAAK+/B,OAAQ//B,KAAM,cAAe,YAGtDisG,EAAS7jG,IAAK,kBAClBo3I,GAAwBx/I,KAAK+/B,OAAQ//B,KAAM,mBAAmB,KAC7DA,KAAK+/B,OAAOkB,QAAS,YACrBjhC,KAAK+/B,OAAOkB,QAAS,gBAAiB,GAGzC,CAeQ,0BAAAy2K,GACP,MAAMzrG,EAAWjsG,KAAK+/B,OAAOksE,SAE7B,GAAKA,EAAS7jG,IAAK,QAAW,CAC7B,MAAM2vM,EAAen3D,GAAwC5gJ,KAAK+/B,OAAQ,QAE1E+/G,GAAyB9/I,KAAK+/B,OAAQ//B,KAAM,gCAAiC+3M,GAC7Ej4D,GAAyB9/I,KAAK+/B,OAAQ//B,KAAM,4BAA6B+3M,EAC1E,CAEA,GAAK9rG,EAAS7jG,IAAK,UAAa,CAC/B,MAAM4vM,EAAiBp3D,GAAwC5gJ,KAAK+/B,OAAQ,UAI5E+/G,GAAyB9/I,KAAK+/B,OAAQ//B,KAAM,6BAA8Bg4M,GAC1El4D,GAAyB9/I,KAAK+/B,OAAQ//B,KAAM,0BAA2Bg4M,EACxE,CAEA,GAAK/rG,EAAS7jG,IAAK,QAAW,CAC7B,MAAM6vM,EAAer3D,GAAwC5gJ,KAAK+/B,OAAQ,QAE1E+/G,GAAyB9/I,KAAK+/B,OAAQ//B,KAAM,kBAAmBi4M,EAChE,CAEA,GAAKhsG,EAAS7jG,IAAK,iBAAoB,CACtC,MAAM8vM,EAAwBt3D,GAAwC5gJ,KAAK+/B,OAAQ,iBAEnF+/G,GAAyB9/I,KAAK+/B,OAAQ//B,KAAM,oBAAqBk4M,EAClE,CACD,CAWQ,sBAAAP,GACP,MAAMv2K,EAAsCphC,KAAK+/B,OAAOksE,SAAS7jG,IAAK,WAEjEg5B,GACJA,EAAQgqI,cACNrlK,QAAQ/D,GAAQA,EAAKnF,MAAO,oBAC5Be,SAASu6M,IACT,MAAMj2I,EAAQi2I,EAAW,GACnB/uK,EAAU,IAAIv/B,OAAQ,OAAQq4D,WAEpCs9E,GAAwBx/I,KAAK+/B,OAAQ//B,KAAMopC,GAAS,KAEnD,IAAMhI,EAAQjB,WAAaiB,EAAQ5oC,QAAU2/M,EAC5C,OAAO,EAGRn4M,KAAK+/B,OAAOkB,QAAS,UAAW,CAAEzoC,MAAO2/M,GAAa,GACpD,GAGP,CAQQ,yBAAAP,GACF53M,KAAK+/B,OAAOksE,SAAS7jG,IAAK,eAC9Bo3I,GAAwBx/I,KAAK+/B,OAAQ//B,KAAM,QAAS,aAEtD,CAQQ,wBAAA63M,GACP,MAAM93K,EAAS//B,KAAK+/B,OACdY,EAAYZ,EAAO3nC,MAAMoL,SAASm9B,UAEnCZ,EAAOksE,SAAS7jG,IAAK,cACzBo3I,GAAwBz/G,EAAQ//B,KAAM,SAAS,KAC9C,GAAK2gC,EAAUE,mBAAoBjiC,OAAO2P,GAAI,UAAW,YACxD,OAAO,EAERvO,KAAK+/B,OAAOkB,QAAS,YAAa,CACjCm3K,2BAA2B,GACzB,GAGN,CAQQ,6BAAAN,GACF93M,KAAK+/B,OAAOksE,SAAS7jG,IAAK,mBAC9Bo3I,GAAwBx/I,KAAK+/B,OAAQ//B,KAAM,QAAS,iBAEtD,G+S/Lc,cAAyB,GAIvC,mBAAkB4iC,GACjB,MAAO,CAAEgiH,GAAmBE,GAC7B,CAKA,qBAAkB7iH,GACjB,MAAO,YACR,GCfc,cAAmB,GAIjC,mBAAkBW,GACjB,MAAO,CAAEq+G,GAAaG,GACvB,CAKA,qBAAkBn/G,GACjB,MAAO,MACR,GCdc,cAA4BmD,GAK1BogH,SAKA6yD,UAUAC,aAQAC,cAQTz9E,MAAiC,KAKvB09E,QAAU,IAAI9mM,IAK/B,qBAAkBuwB,GACjB,MAAO,eACR,CAKA,mBAAkBW,GACjB,MAAO,CAAE+lH,GACV,CAKA,UAAavmH,GACZ,MAEM79B,EAFSvE,KAAK2N,QAAQgd,OAELviB,IAAK,kBAAqB,CAAC,EAElD,UAAcrR,EAAKyB,KAAWxB,OAAOoiB,QAAS7U,GAC3CvE,KAA+BjJ,GAAQyB,EAG1C,IAAMwH,KAAKwlJ,SAGV,YAFAxlJ,KAAK86H,MAAQ,MAKd,MAAM29E,EAAuCz4M,KAAK2N,QAAQ00B,QAAQj6B,IAAK,qBAEvEpI,KAAK86H,YAAc29E,EAAkB7vD,YAAa5oJ,KAAKwlJ,UAAWpjH,OAElEpiC,KAAKw4M,QAAQ5mM,IAAK5R,KAAKwlJ,SAAUxlJ,KAAK86H,MACvC,CAQA,sBAAa49E,CAAkBlzD,GAE9B,GAAKxlJ,KAAKw4M,QAAQvqM,IAAKu3I,GACtB,OAAOxlJ,KAAK24M,YAAanzD,GAG1B,MAAMizD,EAAuCz4M,KAAK2N,QAAQ00B,QAAQj6B,IAAK,qBACjE0yH,QAAc29E,EAAkB7vD,YAAapD,GAAWpjH,OAI9D,OAFApiC,KAAKw4M,QAAQ5mM,IAAK4zI,EAAU1qB,GAErBA,CACR,CAOO,WAAA69E,CAAanzD,GACnB,MAAM1qB,EAAQ96H,KAAKw4M,QAAQpwM,IAAKo9I,GAEhC,IAAM1qB,EAML,MAAM,IAAIptH,EAAe,qCAAsC1N,MAGhE,OAAO86H,CACR,CAKgB,OAAA7yG,GACfpa,MAAMoa,UAEN,UAAY6yG,KAAS96H,KAAKw4M,QAAQptM,SACjC0vH,EAAM7yG,SAER,GCtHc,cAAyB,GAIvC,mBAAkB2a,GACjB,MAAO,CAAEs4E,GAAmBooD,GAAWngB,GAAO0gB,GAAWngB,GAAYhH,GAAQypB,GAC9E,CAKA,qBAAkBlkI,GACjB,MAAO,YACR,GCxBc,cAAkC,GAIhD,mBAAkBW,GACjB,MAAO,CAAEgoI,GAA4BC,GACtC,CAKA,qBAAkB5oI,GACjB,MAAO,qBACR,GCdc,cAAwB,GAItC,mBAAkBW,GACjB,MAAO,CAAEknI,GAAkBY,GAC5B,CAKA,qBAAkBzoI,GACjB,MAAO,WACR,GCbc,cAAyB,GAIvC,mBAAkBW,GACjB,MAAO,CAAE6kI,GAAmBI,GAC7B,CAKA,qBAAkB5lI,GACjB,MAAO,YACR,GCXc,cAAuB,GAIrC,mBAAkBW,GACjB,MAAO,CAAEqmI,GAAiBK,GAC3B,CAKA,qBAAkBrnI,GACjB,MAAO,UACR,CAQO,oBAAA22K,CAAsBr0M,GAC5B,OAAO,GAAkBA,EAC1B,GCpBc,cAAsB,GAIpC,mBAAkBq+B,GACjB,MAAO,CAAE4oI,GAAgBI,GAC1B,CAKA,qBAAkB3pI,GACjB,MAAO,SACR,GCnBc,cAA6B,GAI3C,mBAAkBW,GACjB,MAAO,CAAE6pI,GAAuBG,GAAkBtY,GACnD,CAKA,qBAAkBryH,GACjB,MAAO,gBACR,GCNc,cAAoB,GAIlC,mBAAkBW,GACjB,MAAO,CAAE2wI,GAAYK,GACtB,CAKA,qBAAkB3xI,GACjB,MAAO,OACR,GCrBc,cAA2B,GAIzC,mBAAkBW,GACjB,MAAO,CAAEmyI,GAAqBY,GAC/B,CAKA,qBAAkB1zI,GACjB,MAAO,cACR,GCXc,cAA0B,GAIxC,mBAAkBW,GACjB,MAAO,CAAEmzI,GAAoB8B,GAAoBuB,GAAqB3C,GACvE,CAKA,qBAAkBx0I,GACjB,MAAO,aACR,GCVc,cAAyB,GAIvC,mBAAkBW,GACjB,MAAO,CAAEy5I,GAAmBa,GAC7B,CAKA,qBAAkBj7I,GACjB,MAAO,YACR,GtIVc,cAA2B,GAIzC,mBAAkBW,GACjB,MAAO,CAAEqzH,GAAyB,GACnC,CAKA,qBAAkBh0H,GACjB,MAAO,cACR,CAKO,SAAAypI,GACN,MAAM3rI,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EACXoiK,EAA0Br9H,EAAOsC,QAAQj6B,IAAK6tJ,IAC9C+W,EAAyBjtI,EAAOsC,QAAQj6B,IAAK,cAEnDg1J,EAAwBl+E,SAAU,QAAS,CAC1C64B,UAAW/8G,EAAG,iBACd44B,MAAO0qJ,GAA4Bv+I,EAAOpV,OAAOviB,IAAK,kBAAqB,IAC3EquJ,kBAAmB91H,GAAaqsI,EAAWyB,8BAA+B9tI,IAE5E,GuIvBc,cAAqB,GAInC,qBAAkBsB,GACjB,MAAO,QACR,CAKA,mBAAkBW,GACjB,MAAO,CAAE27I,GAAeC,GACzB,GCzBc,cAAqB,GAInC,mBAAkB57I,GACjB,MAAO,CAAE2+G,GAAeC,GACzB,CAKA,qBAAkBv/G,GACjB,MAAO,QACR,GjBwCAkoJ,GACA4E,GACA,GvE5Cc,cAAgC,GAItC8pB,YAKAC,QAKAC,gCAKR,mBAAkBn2K,GACjB,MAAO,CAAE85G,GACV,CAKA,qBAAkBz6G,GACjB,MAAO,mBACR,CAKA,WAAAlgC,CAAag+B,GACZlyB,MAAOkyB,GAEP,MAAM/kC,EAAI+kC,EAAO/kC,EAEjBgF,KAAK64M,YAAc,IAAInnM,IACvB1R,KAAK84M,QAAU,IAAIpnM,IACnB1R,KAAK+4M,gCAAkC/9M,EAAG,MAC3C,CAKO,IAAAonC,GACN,MAAMrC,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EAEXg+M,EAAkCj5K,EAAOksE,SAAS7jG,IAAK,cAG7D23B,EAAO+E,GAAGq2E,iBAAiBjtG,IAAK,qBAAqBqvB,IACpD,MAAM4nF,EAAeC,GAAgB7nF,GACrC,IAAI07K,EAoCJ,OAlCA9zF,EAAapM,WAAWnnG,IAAK,CAC5B6mC,MAAOz9C,EAAG,sBACVs4G,KyF5FJ,66BzF6FIE,SAAS,IAGV2R,EAAan+G,KAAM,aAAczH,GAAIy5M,GAGrC7zF,EAAa11G,GAAmC,WAAW,CAAE+F,EAAK1S,KACjEi9B,EAAOkB,QAAS,aAAc,CAAE5I,KAAMv1B,EAAKg0B,YAC3CiJ,EAAOotE,QAAQx1E,KAAK8H,OAAO,IAG5B0lF,EAAa11G,GAAI,iBAAiB,KACjC,IAAMwpM,EAAuB,CAC5BA,EAAuBj5M,KAAKk5M,4BAA6B37K,EAAQ4nF,GAEjE,MAAMg0F,EAAwB,IAAInpB,GACjCzyJ,EACA07K,EAAqBhpB,eACrBgpB,EAAqB/oB,SACrB+oB,EAAqB9oB,UAGtBhrE,EAAanD,UAAU9pG,SAAShK,IAAKirM,EACtC,CAEAF,EAAqB9oB,SAASv+K,IAAK,CAClCklB,UAAW,KACX90B,KAAM,MACJ,IAGGmjH,CAAY,GAErB,CAQO,QAAAojB,CACNlnF,EACAztB,EACArvB,EAA6B,CAAEk0C,MAAO4I,IAEtC,GAAKA,IAAc+uI,GAOlB,MAAM,IAAI1iL,EAAe,uCAAwC,MAGlE,MAAMu2C,EAAQjkD,KAAKo5M,UAAW/3J,EAAW98C,EAAQk0C,OAEjD,UAAYx4C,KAAQ2zB,EACnBqwB,EAAMrwB,MAAM1lB,IAAKjO,EAAK03G,OACtB33G,KAAK64M,YAAYjnM,IAAK3R,EAAK03G,MAAO13G,EAAK62B,UAEzC,CAKO,SAAAuiL,GACN,MAAMx5J,EAASl/C,MAAMrB,KAAMU,KAAK84M,QAAQ7hN,QAClC8/L,EAAQ/2L,KAAK+/B,OAAOpV,OAAOviB,IAAK,4BAA+B,GAE/DkxM,EAAeviB,EAAMxiK,MAAMt0B,IAAS4/C,EAAO1tB,SAAUlyB,KAE3D,GAAKq5M,EAMJ,MAAM,IAAI5rM,EAAe,6CAA8C,KAAM,CAAE4rM,iBAGhF,OAAO,IAAIvlM,IAAK,IACZgjL,KACAl3I,GAEL,CAKO,qBAAA05J,CAAuBl4J,GAC7B,GAAKA,IAAc+uI,GAClB,OAAO,IAAIr8K,IAAK/T,KAAK64M,YAAY5hN,QAGlC,MAAMgtD,EAAQjkD,KAAK84M,QAAQ1wM,IAAKi5C,GAEhC,OAAK4C,EACGA,EAAMrwB,WADd,CAGD,CAQO,YAAA4lL,CAAc7hG,GACpB,OAAO33G,KAAK64M,YAAYzwM,IAAKuvG,EAC9B,CAQQ,SAAAyhG,CAAW/3J,EAAmB5I,GAQrC,OAPMz4C,KAAK84M,QAAQ7qM,IAAKozC,IACvBrhD,KAAK84M,QAAQlnM,IAAKyvC,EAAW,CAC5BztB,MAAO,IAAI7f,IACX0kC,UAIKz4C,KAAK84M,QAAQ1wM,IAAKi5C,EAC1B,CAKQ,WAAAo4J,CAAarqB,EAA0Bc,GAE9CA,EAAST,MAAM19K,QAEf,MAAM2nM,EAAkB15M,KAAKu5M,sBAAuBnqB,GAEpD,UAAYz3E,KAAS+hG,EAAkB,CACtC,MAAM5iL,EAAY92B,KAAKw5M,aAAc7hG,GAErCu4E,EAAST,MAAMvhL,IAAKgiL,EAASR,WAAY54J,EAAW6gF,GACrD,CACD,CAOQ,2BAAAuhG,CAA6B37K,EAAgB4nF,GACpD,MAAMw0F,EAA0Ch5M,MAC9CrB,KAAMU,KAAKq5M,aACXr8M,KAAKgF,GAAU,CAAEA,EAAMhC,KAAK84M,QAAQ1wM,IAAKpG,GAAQy2C,SAG7CmhK,EAA0C,IAAIloM,IAAK,CAExD,CAAE0+K,GAA8BpwL,KAAK+4M,oCAClCY,IAGE1pB,EAAiB,IAAIjB,GAAiCzxJ,EAAQq8K,GAC9D1pB,EAAW,IAAIV,GAAmBjyJ,GAClC4yJ,EAAW,IAAIN,GAAmBtyJ,GAoBxC,OAlBA2yJ,EAAS3+K,SAAU,WAAYhS,GAAI4lH,GAEnC+qE,EAASzgL,GAAqC,aAAa,CAAE+F,EAAK1S,KACjEqtL,EAASv+K,IAAK9O,EAAM,IAGrBotL,EAASzgL,GAAqC,aAAa,CAAE+F,EAAK1S,KACjEqtL,EAASv+K,IAAK9O,EAAM,IAIrBmtL,EAAexgL,GAAI,WAAW,KAC7BzP,KAAKy5M,YAAaxpB,EAAeb,iBAAkBc,EAAU,IAI9DlwL,KAAKy5M,YAAaxpB,EAAeb,iBAAkBc,GAE5C,CAAED,iBAAgBC,WAAUC,WACpC,GuExMAM,GmBlDc,cAA0C,GAIxD,qBAAkBxuJ,GACjB,MAAO,6BACR,CAKA,mBAAkBW,GACjB,MAAO,CACN6tJ,GACAH,GACAC,GACAF,GACAG,GAEF,GnBiCAA,GACAF,GoB5Dc,cAA4B,GAI1C,mBAAkB1tJ,GACjB,MAAO,CAAE8+G,GAAsBC,GAChC,CAKA,qBAAkB1/G,GACjB,MAAO,eACR,GChBc,cAAwB,GAItC,mBAAkBW,GACjB,MAAO,CAAEi/G,GAAkBC,GAC5B,CAKA,qBAAkB7/G,GACjB,MAAO,WACR,GCbc,cAA0B,GAIxC,mBAAkBW,GACjB,MAAO,CAAEo/G,GAAoBC,GAC9B,CAKA,qBAAkBhgH,GACjB,MAAO,aACR,GCGc,cAAoB,GAIlC,mBAAkBW,GACjB,MAAO,CAAE,GAAc2kK,GAASU,GAAgBsF,GAAYpB,GAAe1C,GAAgBn1C,GAC5F,CAKA,qBAAkBryH,GACjB,MAAO,OACR,GCxBc,cAA8B,GAI5C,qBAAkBA,GACjB,MAAO,iBACR,CAKA,mBAAkBW,GACjB,MAAO,CAAEmxK,GAAwBkC,GAClC,GCfc,cAA2B,GAIzC,mBAAkBrzK,GACjB,MAAO,CAAEqzH,GACV,CAKA,qBAAkBh0H,GACjB,MAAO,cACR,CAKO,SAAAypI,GACN,MAAM3rI,EAAS//B,KAAK+/B,OACd/kC,EAAI+kC,EAAO/kC,EACXoiK,EAA0Br9H,EAAOsC,QAAQj6B,IAAK6tJ,IAE9C4jD,EAA2B95K,EAAOpV,OAAOviB,IAAK,wBAE9C0xM,EAAoB/5K,EAAOpV,OAAOviB,IAAK,sBAExCyxM,GACJz8C,EAAwBl+E,SAAU,eAAgB,CACjD64B,UAAW/8G,EAAG,iBACd44B,MAAOimL,EACPpjD,kBAAmB23C,KAIhB0L,GACJ18C,EAAwBl+E,SAAU,QAAS,CAC1C64B,UAAW/8G,EAAG,iBACd44B,MAAOkmL,EACPrjD,kBAAmB03C,IAGtB,GzUkBc,cAAiC,GAI/C,mBAAkBvrK,GACjB,MAAO,CAAE,SAAU,QACpB,CAKA,qBAAkBX,GACjB,MAAO,oBACR,CAKA,WAAAlgC,CAAag+B,GACZlyB,MAAOkyB,GAEPA,EAAOpV,OAAOj0B,OAAQ,SAAU,CAC/B02F,gBAAiB,CAChB2sH,QAAS56D,KAGZ,CAKO,IAAA/8G,GACN,MACMi7C,EADQr9E,KAAK+/B,OAAO3nC,MACGoL,SAASm9B,UAEtC08C,EAAe5tE,GAAI,gBAAgB,KAElCzP,KAAKmgC,WAAak9C,EAAer2C,OAAQpoC,OAAO2P,GAAI,UAAW,YAAa,IAG7EvO,KAAKg6M,+BACN,CAKQ,6BAAAA,GACP,MAAMj6K,EAAS//B,KAAK+/B,OACd3nC,EAAQ2nC,EAAO3nC,MACf6hN,EAAuBl6K,EAAOsC,QAAQj6B,IAAK,UAC3C8xM,EAiHR,SAAmCvvL,GAClC,MAAMwvL,EAAQxvL,EAAOwvL,OAAS,GACxBl0M,EAAS0kB,EAAO1kB,QAAU,GAC1Bm0M,EAAiBC,IAA6Dp0M,EAAOksB,SAAUkoL,GAE/FC,EAAa3vL,EAAOovL,QAAQ55M,OAAQg6M,GAAQp0M,OAAQq0M,GAE1D,OAiBD,SACClkG,GAGA,MAAMqkG,EAAyB,IAAIxmM,IAEnC,UAAYymM,KAAyBtkG,EACpC,GAAqC,iBAAzBskG,GAAqC17D,GAAuB07D,GACvE,UAAYH,KAAkBv7D,GAAuB07D,GACpDD,EAAuBrsM,IAAKmsM,QAG7BE,EAAuBrsM,IAAKssM,GAI9B,OAAO75M,MAAMrB,KAAMi7M,EACpB,CAlCQE,CAAiCH,GACtCv0M,OAAQq0M,GACRp9M,KAAKq9M,GACoB,iBAAlBA,GAA8B/8D,GAAiB+8D,GAAmB/8D,GAAiB+8D,GAAmBA,IAG7Gt0M,QAAUs0M,GAA+F,iBAAnBA,IACtFr9M,KAAKq9M,IAAA,CACL/6M,KAAM8/I,GAAei7D,EAAe/6M,MACpCC,GAAI8/I,GAAag7D,EAAe96M,OAEnC,CAnIoCm7M,CAA0B36K,EAAOpV,OAAOviB,IAAK,2BAazEuyM,EAAU,IAAIh+D,GAAa58G,EAAO3nC,OAXjBigC,IACtB,UAAYuiL,KAA4BV,EAA4B,CAInE,GAHaU,EAAyBt7M,KACnB2C,KAAMo2B,GAGxB,MAAO,CAAEuiL,2BAEX,KAKDD,EAAQlrM,GAEH,gBAAgB,CAAE+F,EAAK1S,KAC3B,IAAMA,EAAKitE,MAAMmkB,SAChB,OAGD,MAAM,KAAE50F,EAAI,GAAEC,GAAOuD,EAAK83M,yBAEpBtxM,EAAUhK,EAAKia,KAAMzW,EAAKu1B,MAC1BwiL,EAAWt7M,EAAI+J,EAAQxH,MAAO,IAE9Bg5M,EAAeh4M,EAAKikB,MAE1B,IAAImwD,EAAc5tE,EAAQ1E,MAE1BxM,EAAM63E,eAAelqC,IACpB,QAAUvrC,EAAI,EAAGA,EAAI8O,EAAQhR,OAAQkC,IAAM,CAC1C,MAAMqC,EAAQyM,EAAS9O,GACjB+0D,EAAcsrJ,EAAUrgN,EAAI,GAElC,GAAoB,MAAf+0D,EAAsB,CAC1B2nB,GAAer6E,EAAMvE,OAErB,QACD,CAEA,MAAMyiN,EAAkBD,EAAarqL,MAAMgkB,aAAcyiC,GACnD8jI,EAAe5iN,EAAMqpD,YAAas5J,EAAiBA,EAAgBtmK,aAAc53C,EAAMvE,SACvFiN,EAAa+5I,GAAgCy7D,GAEnD3iN,EAAMitG,cAAet/D,EAAO0X,WAAY8R,EAAahqD,GAAcy1M,GAEnE9jI,GAAe3nB,EAAYj3D,MAC5B,CAEAF,EAAM63E,eAAe,KACpBgqI,EAAax9D,wBAAwB,GACnC,GACD,IAGJk+D,EAAQ3zM,KAAM,aAAczH,GAAIS,KACjC,G0UxKc,cAAwB,GAItC,mBAAkB4iC,GACjB,MAAO,CAAEu/G,GAAkBC,GAC5B,CAKA,qBAAkBngH,GACjB,MAAO,WACR,G1BwDAkkI,IAGKx7I,GAAS,CACdmiH,QAAS,CACRl5G,MAAO,CACN,OACA,OACA,aACA,WACA,YACA,sBACA,YACA,UACA,SACA,IACA,OACA,SACA,YACA,gBACA,YACA,cACA,IACA,eACA,eACA,aACA,cACA,iBACA,oBACA,IACA,WAEDqnL,wBAAwB,GAEzB9pL,SAAU,QACV2rC,MAAO,CACNgwE,QAAS,CACR,uBACA,qBACA,oBACA,mBACA,oBAGFh7B,MAAO,CACNopG,eAAgB,CACf,cACA,WACA,kBACA,qBAKH3D,GAAc3yK,eAAiBvC,GAC/Bk1K,GAAc5yK,cAAgBha,GAC9B6sL,GAAa5yK,eAAiBvC,GAC9Bm1K,GAAa7yK,cAAgBha,GAE7B,UACC4sL,iBACAC,gB,kB/8B9ID","sources":["webpack://CKEDITOR/webpack/universalModuleDefinition","webpack://CKEDITOR/../node_modules/color-convert/conversions.js","webpack://CKEDITOR/../node_modules/color-convert/index.js","webpack://CKEDITOR/../node_modules/color-convert/route.js","webpack://CKEDITOR/../node_modules/color-name/index.js","webpack://CKEDITOR/../ckeditor5-basic-styles/theme/code.css","webpack://CKEDITOR/../ckeditor5-block-quote/theme/blockquote.css","webpack://CKEDITOR/../ckeditor5-clipboard/theme/clipboard.css","webpack://CKEDITOR/../ckeditor5-editor-classic/theme/classiceditor.css","webpack://CKEDITOR/../ckeditor5-engine/theme/placeholder.css","webpack://CKEDITOR/../ckeditor5-engine/theme/renderer.css","webpack://CKEDITOR/../ckeditor5-font/theme/fontsize.css","webpack://CKEDITOR/../ckeditor5-heading/theme/heading.css","webpack://CKEDITOR/../ckeditor5-horizontal-line/theme/horizontalline.css","webpack://CKEDITOR/../ckeditor5-image/theme/image.css","webpack://CKEDITOR/../ckeditor5-image/theme/imagecaption.css","webpack://CKEDITOR/../ckeditor5-image/theme/imagecustomresizeform.css","webpack://CKEDITOR/../ckeditor5-image/theme/imageinsert.css","webpack://CKEDITOR/../ckeditor5-image/theme/imageplaceholder.css","webpack://CKEDITOR/../ckeditor5-image/theme/imageresize.css","webpack://CKEDITOR/../ckeditor5-image/theme/imagestyle.css","webpack://CKEDITOR/../ckeditor5-image/theme/imageuploadicon.css","webpack://CKEDITOR/../ckeditor5-image/theme/imageuploadloader.css","webpack://CKEDITOR/../ckeditor5-image/theme/imageuploadprogress.css","webpack://CKEDITOR/../ckeditor5-image/theme/textalternativeform.css","webpack://CKEDITOR/../ckeditor5-list/theme/documentlist.css","webpack://CKEDITOR/../ckeditor5-list/theme/list.css","webpack://CKEDITOR/../ckeditor5-list/theme/listproperties.css","webpack://CKEDITOR/../ckeditor5-list/theme/liststyles.css","webpack://CKEDITOR/../ckeditor5-list/theme/todolist.css","webpack://CKEDITOR/../ckeditor5-special-characters/theme/charactergrid.css","webpack://CKEDITOR/../ckeditor5-special-characters/theme/characterinfo.css","webpack://CKEDITOR/../ckeditor5-special-characters/theme/specialcharacters.css","webpack://CKEDITOR/../ckeditor5-table/theme/colorinput.css","webpack://CKEDITOR/../ckeditor5-table/theme/form.css","webpack://CKEDITOR/../ckeditor5-table/theme/formrow.css","webpack://CKEDITOR/../ckeditor5-table/theme/inserttable.css","webpack://CKEDITOR/../ckeditor5-table/theme/table.css","webpack://CKEDITOR/../ckeditor5-table/theme/tablecaption.css","webpack://CKEDITOR/../ckeditor5-table/theme/tablecellproperties.css","webpack://CKEDITOR/../ckeditor5-table/theme/tablecolumnresize.css","webpack://CKEDITOR/../ckeditor5-table/theme/tableediting.css","webpack://CKEDITOR/../ckeditor5-table/theme/tableform.css","webpack://CKEDITOR/../ckeditor5-table/theme/tableproperties.css","webpack://CKEDITOR/../ckeditor5-table/theme/tableselection.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/arialiveannouncer/arialiveannouncer.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/autocomplete/autocomplete.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/button/button.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/button/switchbutton.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/collapsible/collapsible.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/colorgrid/colorgrid.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/colorpicker/colorpicker.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/colorselector/colorselector.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dialog/dialog.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dialog/dialogactions.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dropdown/dropdown.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dropdown/listdropdown.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dropdown/splitbutton.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dropdown/toolbardropdown.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/editorui/accessibilityhelp.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/editorui/editorui.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/formheader/formheader.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/highlightedtext/highlightedtext.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/icon/icon.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/input/input.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/label/label.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/list/list.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubar.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenu.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenubutton.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenulistitem.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenulistitembutton.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenupanel.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/panel/balloonpanel.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/panel/balloonrotator.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/panel/fakepanel.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/panel/stickypanel.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/responsive-form/responsiveform.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/search/search.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/spinner/spinner.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/textarea/textarea.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/toolbar/blocktoolbar.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/toolbar/toolbar.css","webpack://CKEDITOR/../ckeditor5-ui/theme/components/tooltip/tooltip.css","webpack://CKEDITOR/../ckeditor5-ui/theme/globals/globals.css","webpack://CKEDITOR/../ckeditor5-widget/theme/widget.css","webpack://CKEDITOR/../ckeditor5-widget/theme/widgetresize.css","webpack://CKEDITOR/../ckeditor5-widget/theme/widgettypearound.css","webpack://CKEDITOR/../node_modules/css-loader/dist/runtime/api.js","webpack://CKEDITOR/../node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack://CKEDITOR/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://CKEDITOR/webpack/bootstrap","webpack://CKEDITOR/webpack/runtime/compat get default export","webpack://CKEDITOR/webpack/runtime/define property getters","webpack://CKEDITOR/webpack/runtime/hasOwnProperty shorthand","webpack://CKEDITOR/webpack/runtime/nonce","webpack://CKEDITOR/../ckeditor5-utils/src/env.ts","webpack://CKEDITOR/../ckeditor5-utils/src/fastdiff.ts","webpack://CKEDITOR/../ckeditor5-utils/src/diff.ts","webpack://CKEDITOR/../ckeditor5-utils/src/spy.ts","webpack://CKEDITOR/../ckeditor5-utils/src/eventinfo.ts","webpack://CKEDITOR/../ckeditor5-utils/src/uid.ts","webpack://CKEDITOR/../ckeditor5-utils/src/priorities.ts","webpack://CKEDITOR/../ckeditor5-utils/src/inserttopriorityarray.ts","webpack://CKEDITOR/../ckeditor5-utils/src/ckeditorerror.ts","webpack://CKEDITOR/../ckeditor5-utils/src/version.ts","webpack://CKEDITOR/../ckeditor5-utils/src/emittermixin.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/isObject.js","webpack://CKEDITOR/../ckeditor5-utils/src/observablemixin.ts","webpack://CKEDITOR/../ckeditor5-utils/src/elementreplacer.ts","webpack://CKEDITOR/../ckeditor5-utils/src/count.ts","webpack://CKEDITOR/../ckeditor5-utils/src/comparearrays.ts","webpack://CKEDITOR/../ckeditor5-utils/src/isiterable.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/_freeGlobal.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_root.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_Symbol.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getRawTag.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_objectToString.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseGetTag.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isArray.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isObjectLike.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isString.js","webpack://CKEDITOR/../ckeditor5-utils/src/dom/createelement.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/_overArg.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getPrototype.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isPlainObject.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_listCacheClear.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/eq.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_assocIndexOf.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_listCacheDelete.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_listCacheGet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_listCacheHas.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_listCacheSet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_ListCache.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_stackClear.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_stackDelete.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_stackGet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_stackHas.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isFunction.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_coreJsData.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_isMasked.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_toSource.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseIsNative.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getValue.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getNative.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_Map.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_nativeCreate.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_hashClear.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_hashDelete.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_hashGet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_hashHas.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_hashSet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_Hash.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_mapCacheClear.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_isKeyable.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getMapData.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_mapCacheDelete.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_mapCacheGet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_mapCacheHas.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_mapCacheSet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_MapCache.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_stackSet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_Stack.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_arrayEach.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_defineProperty.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseAssignValue.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_assignValue.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_copyObject.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseTimes.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseIsArguments.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isArguments.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/stubFalse.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isBuffer.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_isIndex.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isLength.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseIsTypedArray.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseUnary.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_nodeUtil.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isTypedArray.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_arrayLikeKeys.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_isPrototype.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_nativeKeys.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseKeys.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isArrayLike.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/keys.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseAssign.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_nativeKeysIn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseKeysIn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/keysIn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseAssignIn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_cloneBuffer.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_copyArray.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_arrayFilter.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/stubArray.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getSymbols.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_copySymbols.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_arrayPush.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getSymbolsIn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_copySymbolsIn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseGetAllKeys.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getAllKeys.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getAllKeysIn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_DataView.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_Promise.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_Set.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_WeakMap.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getTag.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_initCloneArray.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_Uint8Array.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_cloneArrayBuffer.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_cloneDataView.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_cloneRegExp.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_cloneSymbol.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_cloneTypedArray.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_initCloneByTag.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseCreate.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_initCloneObject.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseIsMap.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isMap.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseIsSet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isSet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseClone.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/cloneDeepWith.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isElement.js","webpack://CKEDITOR/../ckeditor5-utils/src/config.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/isnode.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/iswindow.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/emittermixin.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/global.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/getdatafromelement.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/getborderwidths.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/istext.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/isrange.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/getpositionedancestor.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/rect.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/resizeobserver.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/setdatainelement.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/tounit.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/indexof.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/insertat.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/iscomment.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/isvisible.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/position.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/remove.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/scroll.ts","webpack://CKEDITOR/../ckeditor5-utils/src/keyboard.ts","webpack://CKEDITOR/../ckeditor5-utils/src/toarray.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/_assignMergeValue.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseFor.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_createBaseFor.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isArrayLikeObject.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_safeGet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/toPlainObject.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseMergeDeep.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseMerge.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/identity.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_apply.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_overRest.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/constant.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseSetToString.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_shortOut.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_setToString.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseRest.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_isIterateeCall.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_createAssigner.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/merge.js","webpack://CKEDITOR/../ckeditor5-utils/src/translation-service.ts","webpack://CKEDITOR/../ckeditor5-utils/src/language.ts","webpack://CKEDITOR/../ckeditor5-utils/src/locale.ts","webpack://CKEDITOR/../ckeditor5-utils/src/collection.ts","webpack://CKEDITOR/../ckeditor5-utils/src/first.ts","webpack://CKEDITOR/../ckeditor5-utils/src/focustracker.ts","webpack://CKEDITOR/../ckeditor5-utils/src/keystrokehandler.ts","webpack://CKEDITOR/../ckeditor5-utils/src/tomap.ts","webpack://CKEDITOR/../ckeditor5-utils/src/objecttomap.ts","webpack://CKEDITOR/../ckeditor5-utils/src/delay.ts","webpack://CKEDITOR/../ckeditor5-utils/src/unicode.ts","webpack://CKEDITOR/../ckeditor5-ui/src/viewcollection.ts","webpack://CKEDITOR/../ckeditor5-ui/src/template.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/globals/globals.css?236e","webpack://CKEDITOR/../ckeditor5-ui/src/view.ts","webpack://CKEDITOR/../ckeditor5-ui/src/bindings/clickoutsidehandler.ts","webpack://CKEDITOR/../ckeditor5-ui/src/bindings/csstransitiondisablermixin.ts","webpack://CKEDITOR/../ckeditor5-ui/src/bindings/submithandler.ts","webpack://CKEDITOR/../ckeditor5-ui/src/bindings/addkeyboardhandlingforgrid.ts","webpack://CKEDITOR/../ckeditor5-core/src/plugin.ts","webpack://CKEDITOR/../ckeditor5-core/src/command.ts","webpack://CKEDITOR/../ckeditor5-core/src/multicommand.ts","webpack://CKEDITOR/../ckeditor5-core/src/plugincollection.ts","webpack://CKEDITOR/../ckeditor5-core/src/context.ts","webpack://CKEDITOR/../ckeditor5-core/src/contextplugin.ts","webpack://CKEDITOR/../ckeditor5-core/src/editingkeystrokehandler.ts","webpack://CKEDITOR/../ckeditor5-engine/theme/placeholder.css?e2af","webpack://CKEDITOR/../ckeditor5-engine/src/view/placeholder.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/typecheckable.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/clone.js","webpack://CKEDITOR/../ckeditor5-engine/src/view/node.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/text.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/textproxy.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/matcher.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/isSymbol.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_isKey.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/memoize.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_memoizeCapped.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_stringToPath.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_arrayMap.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseToString.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/toString.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_castPath.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/last.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_toKey.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseGet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseSlice.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_parent.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseUnset.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/unset.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/get.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseSet.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/set.js","webpack://CKEDITOR/../ckeditor5-engine/src/view/stylesmap.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/element.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/containerelement.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/editableelement.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/rooteditableelement.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/treewalker.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/position.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/range.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/selection.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/documentselection.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/bubblingeventinfo.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/bubblingemittermixin.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/document.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/attributeelement.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/emptyelement.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/uielement.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/rawelement.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/documentfragment.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/downcastwriter.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/filler.ts","webpack://CKEDITOR/../ckeditor5-engine/theme/renderer.css?dd62","webpack://CKEDITOR/../ckeditor5-engine/src/view/renderer.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/domconverter.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/isvalidattributename.ts","webpack://CKEDITOR/../ckeditor5-utils/src/dom/getancestors.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/observer.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/assignIn.js","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/domeventdata.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/domeventobserver.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/keyobserver.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/now.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_trimmedEndIndex.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseTrim.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/toNumber.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/debounce.js","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/fakeselectionobserver.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/_setCacheAdd.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_setCacheHas.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_SetCache.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_arraySome.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_cacheHas.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_equalArrays.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_mapToArray.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_setToArray.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_equalByTag.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_equalObjects.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseIsEqualDeep.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseIsEqual.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/isEqualWith.js","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/mutationobserver.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/focusobserver.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/selectionobserver.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/compositionobserver.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/datatransfer.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/inputobserver.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/arrowkeysobserver.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/tabobserver.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/cloneDeep.js","webpack://CKEDITOR/../ckeditor5-engine/src/view/view.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/typecheckable.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/node.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/nodelist.ts","webpack://CKEDITOR/../ckeditor5-utils/src/splicearray.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/text.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/textproxy.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/element.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/treewalker.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/position.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/range.ts","webpack://CKEDITOR/../ckeditor5-engine/src/conversion/mapper.ts","webpack://CKEDITOR/../ckeditor5-engine/src/conversion/modelconsumable.ts","webpack://CKEDITOR/../ckeditor5-engine/src/conversion/downcastdispatcher.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/selection.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/liverange.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/documentselection.ts","webpack://CKEDITOR/../ckeditor5-engine/src/conversion/conversionhelpers.ts","webpack://CKEDITOR/../ckeditor5-engine/src/conversion/downcasthelpers.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/utils/autoparagraphing.ts","webpack://CKEDITOR/../ckeditor5-engine/src/conversion/upcasthelpers.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/utils/selection-post-fixer.ts","webpack://CKEDITOR/../ckeditor5-engine/src/controller/editingcontroller.ts","webpack://CKEDITOR/../ckeditor5-engine/src/conversion/viewconsumable.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/schema.ts","webpack://CKEDITOR/../ckeditor5-engine/src/conversion/upcastdispatcher.ts","webpack://CKEDITOR/../ckeditor5-engine/src/dataprocessor/basichtmlwriter.ts","webpack://CKEDITOR/../ckeditor5-engine/src/dataprocessor/htmldataprocessor.ts","webpack://CKEDITOR/../ckeditor5-engine/src/controller/datacontroller.ts","webpack://CKEDITOR/../ckeditor5-engine/src/conversion/conversion.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/operation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/utils.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/moveoperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/insertoperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/splitoperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/mergeoperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/markeroperation.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/isEqual.js","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/attributeoperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/nooperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/renameoperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/rootattributeoperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/rootoperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/operationfactory.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/transform.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/liveposition.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/batch.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/differ.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/history.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/rootelement.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/document.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/markercollection.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/operation/detachoperation.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/documentfragment.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/writer.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/utils/deletecontent.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/utils/getselectedcontent.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/utils/insertcontent.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/utils/insertobject.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/utils/modifyselection.ts","webpack://CKEDITOR/../ckeditor5-engine/src/model/model.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/observer/mouseobserver.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/upcastwriter.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/styles/utils.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/styles/background.ts","webpack://CKEDITOR/../ckeditor5-engine/src/view/styles/border.ts","webpack://CKEDITOR/../ckeditor5-core/src/commandcollection.ts","webpack://CKEDITOR/../ckeditor5-core/src/accessibility.ts","webpack://CKEDITOR/../ckeditor5-core/src/editor/editor.ts","webpack://CKEDITOR/../ckeditor5-core/src/editor/utils/attachtoform.ts","webpack://CKEDITOR/../ckeditor5-core/src/editor/utils/elementapimixin.ts","webpack://CKEDITOR/../ckeditor5-core/src/pendingactions.ts","webpack://CKEDITOR/../ckeditor5-core/theme/icons/cancel.svg","webpack://CKEDITOR/../ckeditor5-core/src/index.ts","webpack://CKEDITOR/../ckeditor5-core/theme/icons/bold.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/caption.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/check.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/cog.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/color-palette.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/eraser.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/history.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/image.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/image-upload.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/image-asset-manager.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/image-url.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/low-vision.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/text-alternative.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/loupe.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/previous-arrow.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/next-arrow.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/importexport.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/paragraph.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/plus.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/text.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/align-bottom.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/align-middle.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/align-top.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/align-left.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/align-center.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/align-right.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/align-justify.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-inline-left.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-center.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-inline-right.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-full-width.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-inline.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-left.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-right.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-size-custom.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-size-full.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-size-large.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-size-small.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/object-size-medium.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/pencil.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/pilcrow.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/quote.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/three-vertical-dots.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/drag-indicator.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/redo.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/undo.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/bulletedlist.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/numberedlist.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/todolist.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/codeblock.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/browse-files.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/heading1.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/heading2.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/heading3.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/heading4.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/heading5.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/heading6.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/horizontalline.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/html.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/indent.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/outdent.svg","webpack://CKEDITOR/../ckeditor5-core/theme/icons/table.svg","webpack://CKEDITOR/../ckeditor5-ui/theme/components/icon/icon.css?00c8","webpack://CKEDITOR/../ckeditor5-ui/src/icon/iconview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/button/buttonlabelview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/button/button.css?de94","webpack://CKEDITOR/../ckeditor5-ui/src/button/buttonview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/formheader/formheader.css?322e","webpack://CKEDITOR/../ckeditor5-ui/src/formheader/formheaderview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/focuscycler.ts","webpack://CKEDITOR/../ckeditor5-ui/src/bindings/draggableviewmixin.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dialog/dialogactions.css?7a94","webpack://CKEDITOR/../ckeditor5-ui/src/dialog/dialogactionsview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/dialog/dialogcontentview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dialog/dialog.css?43db","webpack://CKEDITOR/../ckeditor5-ui/src/dialog/dialogview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/dialog/dialog.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenulistitembutton.css?9055","webpack://CKEDITOR/../ckeditor5-ui/src/menubar/menubarmenulistitembuttonview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/label/label.css?fd5a","webpack://CKEDITOR/../ckeditor5-ui/src/label/labelview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/editorui/accessibilityhelp/accessibilityhelpcontentview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/icons/accessibility.svg","webpack://CKEDITOR/../ckeditor5-ui/theme/components/editorui/accessibilityhelp.css?ceb8","webpack://CKEDITOR/../ckeditor5-ui/src/editorui/accessibilityhelp/accessibilityhelp.ts","webpack://CKEDITOR/../ckeditor5-ui/src/editorui/bodycollection.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/button/switchbutton.css?7bcd","webpack://CKEDITOR/../ckeditor5-ui/src/button/switchbuttonview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/button/filedialogbuttonview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/icons/dropdown-arrow.svg","webpack://CKEDITOR/../ckeditor5-ui/theme/components/collapsible/collapsible.css?ca4e","webpack://CKEDITOR/../ckeditor5-ui/src/collapsible/collapsibleview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/colorgrid/utils.ts","webpack://CKEDITOR/../ckeditor5-ui/src/colorgrid/colortileview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/icons/color-tile-check.svg","webpack://CKEDITOR/../ckeditor5-ui/theme/components/colorgrid/colorgrid.css?94cc","webpack://CKEDITOR/../ckeditor5-ui/src/colorgrid/colorgridview.ts","webpack://CKEDITOR/javascript/node_modules/color-parse/index.mjs","webpack://CKEDITOR/../ckeditor5-ui/src/colorpicker/utils.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css?dcc2","webpack://CKEDITOR/../ckeditor5-ui/src/labeledfield/labeledfieldview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/input/inputbase.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/input/input.css?d15d","webpack://CKEDITOR/../ckeditor5-ui/src/input/inputview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/inputtext/inputtextview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/inputnumber/inputnumberview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/textarea/textarea.css?02c9","webpack://CKEDITOR/../ckeditor5-ui/src/dropdown/dropdownpanelview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dropdown/dropdown.css?a927","webpack://CKEDITOR/../ckeditor5-ui/src/dropdown/dropdownview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/dropdown/button/dropdownbuttonview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/toolbar/toolbarseparatorview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/toolbar/toolbarlinebreakview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/toolbar/normalizetoolbarconfig.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/toolbar/toolbar.css?10d7","webpack://CKEDITOR/../ckeditor5-ui/src/toolbar/toolbarview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/bindings/preventdefault.ts","webpack://CKEDITOR/../ckeditor5-ui/src/list/listitemview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/list/listseparatorview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/list/listitemgroupview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/list/list.css?fdbc","webpack://CKEDITOR/../ckeditor5-ui/src/list/listview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dropdown/splitbutton.css?a37f","webpack://CKEDITOR/../ckeditor5-ui/src/dropdown/button/splitbuttonview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dropdown/toolbardropdown.css?31da","webpack://CKEDITOR/../ckeditor5-ui/theme/components/dropdown/listdropdown.css?ae60","webpack://CKEDITOR/../ckeditor5-ui/src/dropdown/utils.ts","webpack://CKEDITOR/../ckeditor5-ui/src/labeledfield/utils.ts","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/utils/math.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/utils/convert.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/utils/compare.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/utils/dom.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/components/slider.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/components/hue.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/components/saturation.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/styles/color-picker.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/components/color-picker.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/styles/hue.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/styles/saturation.js","webpack://CKEDITOR/javascript/node_modules/vanilla-colorful/lib/entrypoints/hex.js","webpack://CKEDITOR/../ckeditor5-ui/theme/components/colorpicker/colorpicker.css?2b84","webpack://CKEDITOR/../ckeditor5-ui/src/colorpicker/colorpickerview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/colorselector/documentcolorcollection.ts","webpack://CKEDITOR/../ckeditor5-ui/src/colorselector/colorgridsfragmentview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/colorselector/colorpickerfragmentview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/colorselector/colorselector.css?c433","webpack://CKEDITOR/../ckeditor5-ui/src/colorselector/colorselectorview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/componentfactory.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/panel/balloonpanel.css?69dc","webpack://CKEDITOR/../ckeditor5-ui/src/panel/balloon/balloonpanelview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/tooltip/tooltip.css?c7bf","webpack://CKEDITOR/../ckeditor5-ui/src/tooltipmanager.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/throttle.js","webpack://CKEDITOR/../ckeditor5-ui/src/editorui/poweredby.ts","webpack://CKEDITOR/../ckeditor5-utils/src/verifylicense.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/icons/project-logo.svg","webpack://CKEDITOR/../ckeditor5-ui/theme/components/arialiveannouncer/arialiveannouncer.css?47e8","webpack://CKEDITOR/../ckeditor5-ui/src/arialiveannouncer.ts","webpack://CKEDITOR/../ckeditor5-ui/src/editorui/editorui.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/editorui/editorui.css?e51b","webpack://CKEDITOR/../ckeditor5-ui/src/editorui/editoruiview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/editorui/boxed/boxededitoruiview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/editableui/editableuiview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/editableui/inline/inlineeditableuiview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/model.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/panel/balloonrotator.css?580a","webpack://CKEDITOR/../ckeditor5-ui/theme/components/panel/fakepanel.css?9740","webpack://CKEDITOR/../ckeditor5-ui/src/panel/balloon/contextualballoon.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/panel/stickypanel.css?4553","webpack://CKEDITOR/../ckeditor5-ui/src/panel/sticky/stickypanelview.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/escapeRegExp.js","webpack://CKEDITOR/../ckeditor5-ui/theme/components/search/search.css?93f3","webpack://CKEDITOR/../ckeditor5-ui/theme/components/autocomplete/autocomplete.css?b060","webpack://CKEDITOR/javascript/node_modules/lodash-es/_basePropertyOf.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_escapeHtmlChar.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/escape.js","webpack://CKEDITOR/../ckeditor5-ui/theme/components/highlightedtext/highlightedtext.css?b1c1","webpack://CKEDITOR/../ckeditor5-ui/theme/components/spinner/spinner.css?ff66","webpack://CKEDITOR/../ckeditor5-ui/theme/components/toolbar/blocktoolbar.css?edd0","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenubutton.css?2b09","webpack://CKEDITOR/../ckeditor5-ui/src/menubar/menubarmenubuttonview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenulistitem.css?12e6","webpack://CKEDITOR/../ckeditor5-ui/src/menubar/menubarmenulistitemview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/menubar/utils.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenupanel.css?7820","webpack://CKEDITOR/../ckeditor5-ui/src/menubar/menubarmenupanelview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubarmenu.css?44ed","webpack://CKEDITOR/../ckeditor5-ui/src/menubar/menubarmenuview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/menubar/menubarmenulistview.ts","webpack://CKEDITOR/../ckeditor5-ui/src/menubar/menubarmenulistitemfiledialogbuttonview.ts","webpack://CKEDITOR/../ckeditor5-ui/theme/components/menubar/menubar.css?d889","webpack://CKEDITOR/../ckeditor5-ui/src/menubar/menubarview.ts","webpack://CKEDITOR/../ckeditor5-editor-classic/src/classiceditorui.ts","webpack://CKEDITOR/../ckeditor5-editor-classic/theme/classiceditor.css?1fa4","webpack://CKEDITOR/../ckeditor5-editor-classic/src/classiceditoruiview.ts","webpack://CKEDITOR/../ckeditor5-watchdog/src/watchdog.ts","webpack://CKEDITOR/../ckeditor5-watchdog/src/utils/getsubnodes.ts","webpack://CKEDITOR/../ckeditor5-watchdog/src/utils/areconnectedthroughproperties.ts","webpack://CKEDITOR/../ckeditor5-watchdog/src/editorwatchdog.ts","webpack://CKEDITOR/../ckeditor5-watchdog/src/contextwatchdog.ts","webpack://CKEDITOR/../ckeditor5-editor-classic/src/classiceditor.ts","webpack://CKEDITOR/../ckeditor5-editor-inline/src/inlineeditorui.ts","webpack://CKEDITOR/../ckeditor5-editor-inline/src/inlineeditoruiview.ts","webpack://CKEDITOR/../ckeditor5-editor-inline/src/inlineeditor.ts","webpack://CKEDITOR/../ckeditor5-core/src/editor/utils/securesourceelement.ts","webpack://CKEDITOR/../ckeditor5-alignment/src/utils.ts","webpack://CKEDITOR/../ckeditor5-alignment/src/alignmentcommand.ts","webpack://CKEDITOR/../ckeditor5-alignment/src/alignmentediting.ts","webpack://CKEDITOR/../ckeditor5-alignment/src/alignmentui.ts","webpack://CKEDITOR/../ckeditor5-typing/src/utils/changebuffer.ts","webpack://CKEDITOR/../ckeditor5-typing/src/inserttextcommand.ts","webpack://CKEDITOR/../ckeditor5-typing/src/inserttextobserver.ts","webpack://CKEDITOR/../ckeditor5-typing/src/input.ts","webpack://CKEDITOR/../ckeditor5-typing/src/deletecommand.ts","webpack://CKEDITOR/../ckeditor5-typing/src/deleteobserver.ts","webpack://CKEDITOR/../ckeditor5-typing/src/delete.ts","webpack://CKEDITOR/../ckeditor5-typing/src/typing.ts","webpack://CKEDITOR/../ckeditor5-typing/src/textwatcher.ts","webpack://CKEDITOR/../ckeditor5-typing/src/utils/getlasttextline.ts","webpack://CKEDITOR/../ckeditor5-typing/src/texttransformation.ts","webpack://CKEDITOR/../ckeditor5-autoformat/src/blockautoformatediting.ts","webpack://CKEDITOR/../ckeditor5-autoformat/src/inlineautoformatediting.ts","webpack://CKEDITOR/../ckeditor5-autoformat/src/autoformat.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/attributecommand.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/bold/boldediting.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/utils.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/bold/boldui.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/theme/code.css?985e","webpack://CKEDITOR/../ckeditor5-basic-styles/src/italic/italicediting.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/theme/icons/italic.svg","webpack://CKEDITOR/../ckeditor5-basic-styles/src/italic/italicui.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/strikethrough/strikethroughediting.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/theme/icons/strikethrough.svg","webpack://CKEDITOR/../ckeditor5-basic-styles/src/strikethrough/strikethroughui.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/subscript/subscriptediting.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/theme/icons/subscript.svg","webpack://CKEDITOR/../ckeditor5-basic-styles/src/subscript/subscriptui.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/superscript/superscriptediting.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/theme/icons/superscript.svg","webpack://CKEDITOR/../ckeditor5-basic-styles/src/superscript/superscriptui.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/underline/underlineediting.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/theme/icons/underline.svg","webpack://CKEDITOR/../ckeditor5-basic-styles/src/underline/underlineui.ts","webpack://CKEDITOR/../ckeditor5-enter/src/utils.ts","webpack://CKEDITOR/../ckeditor5-enter/src/entercommand.ts","webpack://CKEDITOR/../ckeditor5-enter/src/enterobserver.ts","webpack://CKEDITOR/../ckeditor5-enter/src/enter.ts","webpack://CKEDITOR/../ckeditor5-enter/src/shiftentercommand.ts","webpack://CKEDITOR/../ckeditor5-enter/src/shiftenter.ts","webpack://CKEDITOR/../ckeditor5-block-quote/src/blockquotecommand.ts","webpack://CKEDITOR/../ckeditor5-block-quote/src/blockquoteediting.ts","webpack://CKEDITOR/../ckeditor5-block-quote/theme/blockquote.css?5a6d","webpack://CKEDITOR/../ckeditor5-block-quote/src/blockquoteui.ts","webpack://CKEDITOR/../ckeditor5-cloud-services/src/token/token.ts","webpack://CKEDITOR/../ckeditor5-cloud-services/src/uploadgateway/fileuploader.ts","webpack://CKEDITOR/../ckeditor5-cloud-services/src/uploadgateway/uploadgateway.ts","webpack://CKEDITOR/../ckeditor5-cloud-services/src/cloudservicescore.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/clipboardobserver.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/utils/viewtoplaintext.ts","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseForOwn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseIsMatch.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_isStrictComparable.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_getMatchData.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_matchesStrictComparable.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseMatches.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseHasIn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_hasPath.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/hasIn.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseMatchesProperty.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseProperty.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_basePropertyDeep.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/property.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseIteratee.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/mapValues.js","webpack://CKEDITOR/../ckeditor5-clipboard/src/clipboardmarkersutils.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/clipboardpipeline.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/utils/normalizeclipboarddata.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/utils/plaintexttohtml.ts","webpack://CKEDITOR/../ckeditor5-widget/src/highlightstack.ts","webpack://CKEDITOR/../ckeditor5-widget/theme/icons/drag-handle.svg","webpack://CKEDITOR/../ckeditor5-widget/src/utils.ts","webpack://CKEDITOR/../ckeditor5-widget/src/widgettypearound/utils.ts","webpack://CKEDITOR/../ckeditor5-widget/theme/widgettypearound.css?6f95","webpack://CKEDITOR/../ckeditor5-widget/src/widgettypearound/widgettypearound.ts","webpack://CKEDITOR/../ckeditor5-widget/theme/icons/return-arrow.svg","webpack://CKEDITOR/../ckeditor5-widget/src/verticalnavigation.ts","webpack://CKEDITOR/../ckeditor5-widget/theme/widget.css?85b1","webpack://CKEDITOR/../ckeditor5-widget/src/widget.ts","webpack://CKEDITOR/../ckeditor5-widget/src/widgettoolbarrepository.ts","webpack://CKEDITOR/../ckeditor5-widget/src/widgetresize/resizerstate.ts","webpack://CKEDITOR/../ckeditor5-widget/src/widgetresize/sizeview.ts","webpack://CKEDITOR/../ckeditor5-widget/src/widgetresize/resizer.ts","webpack://CKEDITOR/../ckeditor5-widget/theme/widgetresize.css?8599","webpack://CKEDITOR/../ckeditor5-widget/src/widgetresize.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/lineview.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/dragdroptarget.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/dragdropblocktoolbar.ts","webpack://CKEDITOR/../ckeditor5-clipboard/theme/clipboard.css?ab7a","webpack://CKEDITOR/../ckeditor5-clipboard/src/dragdrop.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/pasteplaintext.ts","webpack://CKEDITOR/../ckeditor5-clipboard/src/clipboard.ts","webpack://CKEDITOR/../ckeditor5-select-all/src/selectallcommand.ts","webpack://CKEDITOR/../ckeditor5-select-all/src/selectallediting.ts","webpack://CKEDITOR/../ckeditor5-select-all/src/selectallui.ts","webpack://CKEDITOR/../ckeditor5-select-all/theme/icons/select-all.svg","webpack://CKEDITOR/../ckeditor5-select-all/src/selectall.ts","webpack://CKEDITOR/../ckeditor5-undo/src/basecommand.ts","webpack://CKEDITOR/../ckeditor5-undo/src/undocommand.ts","webpack://CKEDITOR/../ckeditor5-undo/src/redocommand.ts","webpack://CKEDITOR/../ckeditor5-undo/src/undoediting.ts","webpack://CKEDITOR/../ckeditor5-undo/src/undoui.ts","webpack://CKEDITOR/../ckeditor5-undo/src/undo.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontcommand.ts","webpack://CKEDITOR/../ckeditor5-font/src/utils.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontfamily/fontfamilycommand.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontfamily/utils.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontfamily/fontfamilyediting.ts","webpack://CKEDITOR/../ckeditor5-font/theme/icons/font-family.svg","webpack://CKEDITOR/../ckeditor5-font/src/fontfamily/fontfamilyui.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontsize/fontsizecommand.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontsize/utils.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontsize/fontsizeediting.ts","webpack://CKEDITOR/../ckeditor5-font/theme/fontsize.css?2aea","webpack://CKEDITOR/../ckeditor5-font/theme/icons/font-size.svg","webpack://CKEDITOR/../ckeditor5-font/src/fontsize/fontsizeui.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontcolor/fontcolorcommand.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontcolor/fontcolorediting.ts","webpack://CKEDITOR/../ckeditor5-font/src/ui/colorui.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontcolor/fontcolorui.ts","webpack://CKEDITOR/../ckeditor5-font/theme/icons/font-color.svg","webpack://CKEDITOR/../ckeditor5-font/src/fontbackgroundcolor/fontbackgroundcolorcommand.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontbackgroundcolor/fontbackgroundcolorediting.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontbackgroundcolor/fontbackgroundcolorui.ts","webpack://CKEDITOR/../ckeditor5-font/theme/icons/font-background.svg","webpack://CKEDITOR/../ckeditor5-paragraph/src/paragraphcommand.ts","webpack://CKEDITOR/../ckeditor5-paragraph/src/insertparagraphcommand.ts","webpack://CKEDITOR/../ckeditor5-paragraph/src/paragraph.ts","webpack://CKEDITOR/../ckeditor5-heading/src/headingcommand.ts","webpack://CKEDITOR/../ckeditor5-heading/src/headingediting.ts","webpack://CKEDITOR/../ckeditor5-heading/theme/heading.css?c486","webpack://CKEDITOR/../ckeditor5-heading/src/headingui.ts","webpack://CKEDITOR/../ckeditor5-heading/src/utils.ts","webpack://CKEDITOR/../ckeditor5-horizontal-line/src/horizontallinecommand.ts","webpack://CKEDITOR/../ckeditor5-horizontal-line/theme/horizontalline.css?12f5","webpack://CKEDITOR/../ckeditor5-horizontal-line/src/horizontallineediting.ts","webpack://CKEDITOR/../ckeditor5-horizontal-line/src/horizontallineui.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/utils.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageutils.ts","webpack://CKEDITOR/../ckeditor5-image/src/autoimage.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagetextalternative/imagetextalternativecommand.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagetextalternative/imagetextalternativeediting.ts","webpack://CKEDITOR/../ckeditor5-image/theme/textalternativeform.css?1540","webpack://CKEDITOR/../ckeditor5-ui/theme/components/responsive-form/responsiveform.css?643e","webpack://CKEDITOR/../ckeditor5-image/src/imagetextalternative/ui/textalternativeformview.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/ui/utils.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagetextalternative/imagetextalternativeui.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagetextalternative.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/converters.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/imageloadobserver.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/insertimagecommand.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/replaceimagesourcecommand.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/imageediting.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagesizeattributes.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/imagetypecommand.ts","webpack://CKEDITOR/../ckeditor5-image/theme/imageplaceholder.css?421f","webpack://CKEDITOR/../ckeditor5-image/src/image/imageplaceholder.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/imageblockediting.ts","webpack://CKEDITOR/../ckeditor5-image/theme/imageinsert.css?2858","webpack://CKEDITOR/../ckeditor5-image/src/imageinsert/ui/imageinsertformview.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageinsert/imageinsertui.ts","webpack://CKEDITOR/../ckeditor5-image/theme/image.css?c23e","webpack://CKEDITOR/../ckeditor5-image/src/imageblock.ts","webpack://CKEDITOR/../ckeditor5-image/src/image/imageinlineediting.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageinline.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagecaption/imagecaptionutils.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagecaption/toggleimagecaptioncommand.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagecaption/imagecaptionediting.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagecaption/imagecaptionui.ts","webpack://CKEDITOR/../ckeditor5-image/theme/imagecaption.css?fbd1","webpack://CKEDITOR/../ckeditor5-image/theme/imageuploadprogress.css?3fdd","webpack://CKEDITOR/../ckeditor5-image/theme/imageuploadicon.css?e799","webpack://CKEDITOR/../ckeditor5-image/theme/imageuploadloader.css?4493","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseEach.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_createBaseEach.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/_baseMap.js","webpack://CKEDITOR/javascript/node_modules/lodash-es/map.js","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/resizeimagecommand.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/imageresizeediting.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/imageresizebuttons.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/imageresizehandles.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/utils/tryparsedimensionwithunit.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/utils/getselectedimageeditornodes.ts","webpack://CKEDITOR/../ckeditor5-image/theme/imagecustomresizeform.css?0862","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/ui/imagecustomresizeformview.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/imagecustomresizeui.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/utils/getselectedimagewidthinunits.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageresize/utils/getselectedimagepossibleresizerange.ts","webpack://CKEDITOR/../ckeditor5-image/theme/imageresize.css?f537","webpack://CKEDITOR/../ckeditor5-image/src/imagestyle/imagestylecommand.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagestyle/utils.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagestyle/converters.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagestyle/imagestyleediting.ts","webpack://CKEDITOR/../ckeditor5-image/theme/imagestyle.css?bc8e","webpack://CKEDITOR/../ckeditor5-image/src/imagestyle/imagestyleui.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagetoolbar.ts","webpack://CKEDITOR/../ckeditor5-indent/src/indentediting.ts","webpack://CKEDITOR/../ckeditor5-indent/src/indentui.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/utils/listwalker.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/utils/model.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/listindentcommand.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/listcommand.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/listmergecommand.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/listsplitcommand.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/listutils.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/utils/view.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/utils/postfixers.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/converters.ts","webpack://CKEDITOR/../ckeditor5-list/theme/documentlist.css?2655","webpack://CKEDITOR/../ckeditor5-list/theme/list.css?89de","webpack://CKEDITOR/../ckeditor5-list/src/list/listediting.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/utils.ts","webpack://CKEDITOR/../ckeditor5-list/src/list/listui.ts","webpack://CKEDITOR/../ckeditor5-list/src/list.ts","webpack://CKEDITOR/../ckeditor5-list/src/listproperties/liststartcommand.ts","webpack://CKEDITOR/../ckeditor5-list/src/listproperties/utils/style.ts","webpack://CKEDITOR/../ckeditor5-list/src/listproperties/liststylecommand.ts","webpack://CKEDITOR/../ckeditor5-list/src/listproperties/listreversedcommand.ts","webpack://CKEDITOR/../ckeditor5-list/src/listproperties/converters.ts","webpack://CKEDITOR/../ckeditor5-list/src/listproperties/listpropertiesutils.ts","webpack://CKEDITOR/../ckeditor5-list/src/listproperties/listpropertiesediting.ts","webpack://CKEDITOR/../ckeditor5-list/theme/listproperties.css?617f","webpack://CKEDITOR/../ckeditor5-list/src/listproperties/ui/listpropertiesview.ts","webpack://CKEDITOR/../ckeditor5-list/theme/liststyles.css?4e4d","webpack://CKEDITOR/../ckeditor5-list/src/listproperties/listpropertiesui.ts","webpack://CKEDITOR/../ckeditor5-list/theme/icons/liststyledisc.svg","webpack://CKEDITOR/../ckeditor5-list/theme/icons/liststylecircle.svg","webpack://CKEDITOR/../ckeditor5-list/theme/icons/liststylesquare.svg","webpack://CKEDITOR/../ckeditor5-list/theme/icons/liststyledecimal.svg","webpack://CKEDITOR/../ckeditor5-list/theme/icons/liststyledecimalleadingzero.svg","webpack://CKEDITOR/../ckeditor5-list/theme/icons/liststylelowerroman.svg","webpack://CKEDITOR/../ckeditor5-list/theme/icons/liststyleupperroman.svg","webpack://CKEDITOR/../ckeditor5-list/theme/icons/liststylelowerlatin.svg","webpack://CKEDITOR/../ckeditor5-list/theme/icons/liststyleupperlatin.svg","webpack://CKEDITOR/../ckeditor5-list/src/listproperties.ts","webpack://CKEDITOR/../ckeditor5-list/theme/todolist.css?b9a9","webpack://CKEDITOR/../ckeditor5-special-characters/src/ui/specialcharactersnavigationview.ts","webpack://CKEDITOR/../ckeditor5-special-characters/theme/charactergrid.css?417c","webpack://CKEDITOR/../ckeditor5-special-characters/src/ui/charactergridview.ts","webpack://CKEDITOR/../ckeditor5-special-characters/theme/characterinfo.css?3c91","webpack://CKEDITOR/../ckeditor5-special-characters/src/ui/characterinfoview.ts","webpack://CKEDITOR/../ckeditor5-special-characters/src/ui/specialcharactersview.ts","webpack://CKEDITOR/../ckeditor5-special-characters/theme/specialcharacters.css?82bf","webpack://CKEDITOR/../ckeditor5-special-characters/src/specialcharacters.ts","webpack://CKEDITOR/../ckeditor5-special-characters/src/specialcharactersarrows.ts","webpack://CKEDITOR/../ckeditor5-special-characters/src/specialcharacterstext.ts","webpack://CKEDITOR/../ckeditor5-special-characters/src/specialcharactersmathematical.ts","webpack://CKEDITOR/../ckeditor5-special-characters/src/specialcharacterslatin.ts","webpack://CKEDITOR/../ckeditor5-special-characters/src/specialcharacterscurrency.ts","webpack://CKEDITOR/../ckeditor5-table/src/utils/common.ts","webpack://CKEDITOR/../ckeditor5-table/src/converters/upcasttable.ts","webpack://CKEDITOR/../ckeditor5-table/src/tablewalker.ts","webpack://CKEDITOR/../ckeditor5-table/src/converters/downcast.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/inserttablecommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/insertrowcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/insertcolumncommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/splitcellcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/utils/structure.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/mergecellcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/removerowcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/removecolumncommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/setheaderrowcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/setheadercolumncommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/tablecolumnresize/utils.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableutils.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/mergecellscommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/selectrowcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/commands/selectcolumncommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/converters/table-layout-post-fixer.ts","webpack://CKEDITOR/../ckeditor5-table/src/converters/table-cell-paragraph-post-fixer.ts","webpack://CKEDITOR/../ckeditor5-table/src/converters/table-cell-refresh-handler.ts","webpack://CKEDITOR/../ckeditor5-table/theme/tableediting.css?f65e","webpack://CKEDITOR/../ckeditor5-table/src/tableediting.ts","webpack://CKEDITOR/../ckeditor5-table/src/converters/table-headings-refresh-handler.ts","webpack://CKEDITOR/../ckeditor5-table/theme/inserttable.css?466f","webpack://CKEDITOR/../ckeditor5-table/src/ui/inserttableview.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableui.ts","webpack://CKEDITOR/../ckeditor5-table/theme/icons/table-column.svg","webpack://CKEDITOR/../ckeditor5-table/theme/icons/table-row.svg","webpack://CKEDITOR/../ckeditor5-table/theme/icons/table-merge-cell.svg","webpack://CKEDITOR/../ckeditor5-table/theme/tableselection.css?ee02","webpack://CKEDITOR/../ckeditor5-table/src/tableselection.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableclipboard.ts","webpack://CKEDITOR/../ckeditor5-table/src/tablekeyboard.ts","webpack://CKEDITOR/../ckeditor5-table/src/tablemouse/mouseeventsobserver.ts","webpack://CKEDITOR/../ckeditor5-table/src/tablemouse.ts","webpack://CKEDITOR/../ckeditor5-table/theme/table.css?fded","webpack://CKEDITOR/../ckeditor5-table/src/utils/ui/widget.ts","webpack://CKEDITOR/../ckeditor5-table/theme/colorinput.css?2edd","webpack://CKEDITOR/../ckeditor5-table/src/ui/colorinputview.ts","webpack://CKEDITOR/../ckeditor5-table/src/utils/ui/table-properties.ts","webpack://CKEDITOR/../ckeditor5-table/theme/formrow.css?813a","webpack://CKEDITOR/../ckeditor5-table/src/ui/formrowview.ts","webpack://CKEDITOR/../ckeditor5-table/theme/form.css?6b23","webpack://CKEDITOR/../ckeditor5-table/theme/tableform.css?6102","webpack://CKEDITOR/../ckeditor5-table/theme/tablecellproperties.css?e7e9","webpack://CKEDITOR/../ckeditor5-table/src/utils/ui/contextualballoon.ts","webpack://CKEDITOR/../ckeditor5-table/src/utils/table-properties.ts","webpack://CKEDITOR/../ckeditor5-table/src/converters/tableproperties.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/commands/tablepropertycommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/commands/tablebackgroundcolorcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/commands/tablebordercolorcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/commands/tableborderstylecommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/commands/tableborderwidthcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/commands/tablewidthcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/commands/tableheightcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/commands/tablealignmentcommand.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/tablepropertiesediting.ts","webpack://CKEDITOR/../ckeditor5-table/theme/tableproperties.css?fbdb","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/ui/tablepropertiesview.ts","webpack://CKEDITOR/../ckeditor5-table/theme/icons/table-properties.svg","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties/tablepropertiesui.ts","webpack://CKEDITOR/../ckeditor5-table/theme/tablecaption.css?327b","webpack://CKEDITOR/../ckeditor5-table/theme/tablecolumnresize.css?00bf","webpack://CKEDITOR/./src/ckeditor.ts","webpack://CKEDITOR/../ckeditor5-alignment/src/alignment.ts","webpack://CKEDITOR/../ckeditor5-block-quote/src/blockquote.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/bold.ts","webpack://CKEDITOR/../ckeditor5-cloud-services/src/cloudservices.ts","webpack://CKEDITOR/../ckeditor5-essentials/src/essentials.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontbackgroundcolor.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontcolor.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontfamily.ts","webpack://CKEDITOR/../ckeditor5-font/src/fontsize.ts","webpack://CKEDITOR/../ckeditor5-heading/src/heading.ts","webpack://CKEDITOR/../ckeditor5-horizontal-line/src/horizontalline.ts","webpack://CKEDITOR/../ckeditor5-image/src/image.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagecaption.ts","webpack://CKEDITOR/../ckeditor5-image/src/imageresize.ts","webpack://CKEDITOR/../ckeditor5-image/src/imagestyle.ts","webpack://CKEDITOR/../ckeditor5-indent/src/indent.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/italic.ts","webpack://CKEDITOR/../ckeditor5-special-characters/theme/icons/specialcharacters.svg","webpack://CKEDITOR/../ckeditor5-special-characters/src/specialcharactersessentials.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/strikethrough.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/subscript.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/superscript.ts","webpack://CKEDITOR/../ckeditor5-table/src/table.ts","webpack://CKEDITOR/../ckeditor5-table/src/tableproperties.ts","webpack://CKEDITOR/../ckeditor5-table/src/tabletoolbar.ts","webpack://CKEDITOR/../ckeditor5-basic-styles/src/underline.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CKEDITOR\"] = factory();\n\telse\n\t\troot[\"CKEDITOR\"] = factory();\n})(self, () => {\nreturn ","/* MIT license */\n/* eslint-disable no-mixed-operators */\nconst cssKeywords = require('color-name');\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\nmodule.exports = convert;\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert)) {\n\tif (!('channels' in convert[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert[model].labels.length !== convert[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert[model];\n\tdelete convert[model].channels;\n\tdelete convert[model].labels;\n\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\tObject.defineProperty(convert[model], 'labels', {value: labels});\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Infinity;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tlet r = rgb[0] / 255;\n\tlet g = rgb[1] / 255;\n\tlet b = rgb[2] / 255;\n\n\t// Assume sRGB\n\tr = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92);\n\n\tconst x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tconst y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tconst z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tconst xyz = convert.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t2;\n\tlet t3;\n\tlet val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// Assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * (r ** (1.0 / 2.4))) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * (g ** (1.0 / 2.4))) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * (b ** (1.0 / 2.4))) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (~~(args > 50) + 1) * 0.5;\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(char => {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tconst integer = parseInt(colorString, 16);\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet grayscale;\n\tlet hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l));\n\n\tlet f = 0;\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1.0 - c);\n\tlet f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1.0 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hsv = convert.gray.hsl;\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tconst val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (val << 16) + (val << 8) + val;\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tconst val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n","const conversions = require('./conversions');\nconst route = require('./route');\n\nconst convert = {};\n\nconst models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(fromModel => {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\trouteModels.forEach(toModel => {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nmodule.exports = convert;\n","const conversions = require('./conversions');\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(conversions);\n\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(conversions[current]);\n\n\t\tfor (let len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = conversions[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nmodule.exports = function (fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let len = models.length, i = 0; i < len; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\n","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content code{background-color:hsla(0,0%,78%,.3);border-radius:2px;padding:.15em}.ck.ck-editor__editable .ck-code_selected{background-color:hsla(0,0%,78%,.5)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-basic-styles/theme/code.css\"],\"names\":[],\"mappings\":\"AAKA,iBACC,kCAAuC,CAEvC,iBAAkB,CADlB,aAED,CAEA,0CACC,kCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-content code {\\n\\tbackground-color: hsla(0, 0%, 78%, 0.3);\\n\\tpadding: .15em;\\n\\tborder-radius: 2px;\\n}\\n\\n.ck.ck-editor__editable .ck-code_selected {\\n\\tbackground-color: hsla(0, 0%, 78%, 0.5);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content blockquote{border-left:5px solid #ccc;font-style:italic;margin-left:0;margin-right:0;overflow:hidden;padding-left:1.5em;padding-right:1.5em}.ck-content[dir=rtl] blockquote{border-left:0;border-right:5px solid #ccc}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-block-quote/theme/blockquote.css\"],\"names\":[],\"mappings\":\"AAKA,uBAWC,0BAAsC,CADtC,iBAAkB,CAFlB,aAAc,CACd,cAAe,CAPf,eAAgB,CAIhB,kBAAmB,CADnB,mBAOD,CAEA,gCACC,aAAc,CACd,2BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-content blockquote {\\n\\t/* See #12 */\\n\\toverflow: hidden;\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */\\n\\tpadding-right: 1.5em;\\n\\tpadding-left: 1.5em;\\n\\n\\tmargin-left: 0;\\n\\tmargin-right: 0;\\n\\tfont-style: italic;\\n\\tborder-left: solid 5px hsl(0, 0%, 80%);\\n}\\n\\n.ck-content[dir=\\\"rtl\\\"] blockquote {\\n\\tborder-left: 0;\\n\\tborder-right: solid 5px hsl(0, 0%, 80%);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-editor__editable .ck.ck-clipboard-drop-target-position{display:inline;pointer-events:none;position:relative}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{position:absolute;width:0}.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__selection-handle,.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__type-around{display:none}.ck.ck-clipboard-drop-target-line{pointer-events:none;position:absolute}:root{--ck-clipboard-drop-target-dot-width:12px;--ck-clipboard-drop-target-dot-height:8px;--ck-clipboard-drop-target-color:var(--ck-color-focus-border)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);bottom:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);margin-left:-1px;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span:after{border-color:var(--ck-clipboard-drop-target-color) transparent transparent transparent;border-style:solid;border-width:calc(var(--ck-clipboard-drop-target-dot-height)) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5);content:\\\"\\\";display:block;height:0;left:50%;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);transform:translateX(-50%);width:0}.ck.ck-editor__editable .ck-widget.ck-clipboard-drop-target-range{outline:var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color)!important}.ck.ck-editor__editable .ck-widget:-webkit-drag{zoom:.6;outline:none!important}.ck.ck-clipboard-drop-target-line{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);height:0;margin-top:-1px}.ck.ck-clipboard-drop-target-line:before{border-style:solid;content:\\\"\\\";height:0;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-width)*-.5);width:0}[dir=ltr] .ck.ck-clipboard-drop-target-line:before{border-color:transparent transparent transparent var(--ck-clipboard-drop-target-color);border-width:calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5) var(--ck-clipboard-drop-target-dot-height);left:-1px}[dir=rtl] .ck.ck-clipboard-drop-target-line:before{border-color:transparent var(--ck-clipboard-drop-target-color) transparent transparent;border-width:calc(var(--ck-clipboard-drop-target-dot-width)*.5) var(--ck-clipboard-drop-target-dot-height) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0;right:-1px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-clipboard/theme/clipboard.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-clipboard/clipboard.css\"],\"names\":[],\"mappings\":\"AASC,8DACC,cAAe,CAEf,mBAAoB,CADpB,iBAOD,CAJC,mEACC,iBAAkB,CAClB,OACD,CAWA,qJACC,YACD,CAIF,kCAEC,mBAAoB,CADpB,iBAED,CC9BA,MACC,yCAA0C,CAC1C,yCAA0C,CAC1C,6DACD,CAOE,mEAIC,gDAAiD,CADjD,sDAAuD,CAFvD,2DAA8D,CAI9D,gBAAiB,CAHjB,wDAqBD,CAfC,yEAWC,sFAAuF,CAEvF,kBAAmB,CADnB,qKAA0K,CAX1K,UAAW,CAIX,aAAc,CAFd,QAAS,CAIT,QAAS,CADT,iBAAkB,CAElB,wDAA2D,CAE3D,0BAA2B,CAR3B,OAYD,CAOF,kEACC,gGACD,CAKA,gDACC,OAAS,CACT,sBACD,CAGD,kCAGC,gDAAiD,CADjD,sDAAuD,CADvD,QAAS,CAGT,eAwBD,CAtBC,yCAMC,kBAAmB,CALnB,UAAW,CAIX,QAAS,CAHT,iBAAkB,CAClB,uDAA0D,CAC1D,OAiBD,CArBA,mDAYE,sFAAuF,CADvF,+JAAoK,CAFpK,SAYF,CArBA,mDAmBE,sFAAuF,CADvF,+JAAmK,CAFnK,UAKF\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-editor__editable {\\n\\t/*\\n\\t * Vertical drop target (in text).\\n\\t */\\n\\t& .ck.ck-clipboard-drop-target-position {\\n\\t\\tdisplay: inline;\\n\\t\\tposition: relative;\\n\\t\\tpointer-events: none;\\n\\n\\t\\t& span {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\twidth: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles of the widget being dragged (its preview).\\n\\t */\\n\\t& .ck-widget:-webkit-drag {\\n\\t\\t& > .ck-widget__selection-handle {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\n\\t\\t& > .ck-widget__type-around {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-clipboard-drop-target-line {\\n\\tposition: absolute;\\n\\tpointer-events: none;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n:root {\\n\\t--ck-clipboard-drop-target-dot-width: 12px;\\n\\t--ck-clipboard-drop-target-dot-height: 8px;\\n\\t--ck-clipboard-drop-target-color: var(--ck-color-focus-border);\\n}\\n\\n.ck.ck-editor__editable {\\n\\t/*\\n\\t * Vertical drop target (in text).\\n\\t */\\n\\t& .ck.ck-clipboard-drop-target-position {\\n\\t\\t& span {\\n\\t\\t\\tbottom: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\\n\\t\\t\\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\\n\\t\\t\\tborder: 1px solid var(--ck-clipboard-drop-target-color);\\n\\t\\t\\tbackground: var(--ck-clipboard-drop-target-color);\\n\\t\\t\\tmargin-left: -1px;\\n\\n\\t\\t\\t/* The triangle above the marker */\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tcontent: '';\\n\\t\\t\\t\\twidth: 0;\\n\\t\\t\\t\\theight: 0;\\n\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tleft: 50%;\\n\\t\\t\\t\\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\\n\\n\\t\\t\\t\\ttransform: translateX(-50%);\\n\\t\\t\\t\\tborder-color: var(--ck-clipboard-drop-target-color) transparent transparent transparent;\\n\\t\\t\\t\\tborder-width: calc(var(--ck-clipboard-drop-target-dot-height)) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width));\\n\\t\\t\\t\\tborder-style: solid;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles of the widget that it a drop target.\\n\\t */\\n\\t& .ck-widget.ck-clipboard-drop-target-range {\\n\\t\\toutline: var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color) !important;\\n\\t}\\n\\n\\t/*\\n\\t * Styles of the widget being dragged (its preview).\\n\\t */\\n\\t& .ck-widget:-webkit-drag {\\n\\t\\tzoom: 0.6;\\n\\t\\toutline: none !important;\\n\\t}\\n}\\n\\n.ck.ck-clipboard-drop-target-line {\\n\\theight: 0;\\n\\tborder: 1px solid var(--ck-clipboard-drop-target-color);\\n\\tbackground: var(--ck-clipboard-drop-target-color);\\n\\tmargin-top: -1px;\\n\\n\\t&::before {\\n\\t\\tcontent: '';\\n\\t\\tposition: absolute;\\n\\t\\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-width));\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t\\tborder-style: solid;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tleft: -1px;\\n\\n\\t\\t\\tborder-width: calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height);\\n\\t\\t\\tborder-color: transparent transparent transparent var(--ck-clipboard-drop-target-color);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tright: -1px;\\n\\n\\t\\t\\tborder-width:calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0;\\n\\t\\t\\tborder-color: transparent var(--ck-clipboard-drop-target-color) transparent transparent;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-editor{position:relative}.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar{z-index:var(--ck-z-panel)}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content{border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content,.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content{border:solid var(--ck-color-base-border);border-width:1px 1px 0}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-sticky-panel__content_sticky{border-bottom-width:1px}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-menu-bar,.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-toolbar{border:0}.ck.ck-editor__main>.ck-editor__editable{background:var(--ck-color-base-background);border-radius:0}.ck-rounded-corners .ck.ck-editor__main>.ck-editor__editable,.ck.ck-editor__main>.ck-editor__editable.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}.ck.ck-editor__main>.ck-editor__editable:not(.ck-focused){border-color:var(--ck-color-base-border)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-editor-classic/theme/classiceditor.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-editor-classic/classiceditor.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAKA,cAIC,iBAMD,CAJC,2DAEC,yBACD,CCLC,8DCED,eDeC,CAjBA,mKCMA,qCAAsC,CDJpC,2BAA4B,CAC5B,4BAcF,CAjBA,8DAOC,wCAAsB,CAAtB,sBAUD,CARC,8FACC,uBACD,CAEA,qJAEC,QACD,CAMH,yCAEC,0CAA2C,CCtB3C,eDgCD,CAZA,yHChBE,qCAAsC,CDqBtC,wBAAyB,CACzB,yBAMF,CAHC,0DACC,wCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-editor {\\n\\t/* All the elements within `.ck-editor` are positioned relatively to it.\\n\\t If any element needs to be positioned with respect to the , etc.,\\n\\t it must land outside of the `.ck-editor` in DOM. */\\n\\tposition: relative;\\n\\n\\t& .ck-editor__top .ck-sticky-panel .ck-toolbar {\\n\\t\\t/* https://github.com/ckeditor/ckeditor5-editor-classic/issues/62 */\\n\\t\\tz-index: var(--ck-z-panel);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../mixins/_rounded.css\\\";\\n\\n.ck.ck-editor__top {\\n\\t& .ck-sticky-panel {\\n\\t\\t& .ck-sticky-panel__content {\\n\\t\\t\\t@mixin ck-rounded-corners {\\n\\t\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\tborder: 1px solid var(--ck-color-base-border);\\n\\t\\t\\tborder-bottom-width: 0;\\n\\n\\t\\t\\t&.ck-sticky-panel__content_sticky {\\n\\t\\t\\t\\tborder-bottom-width: 1px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-menu-bar,\\n\\t\\t\\t& .ck-toolbar {\\n\\t\\t\\t\\tborder: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n/* Note: Use ck-editor__main to make sure these styles don't apply to other editor types */\\n.ck.ck-editor__main > .ck-editor__editable {\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/113 */\\n\\tbackground: var(--ck-color-base-background);\\n\\n\\t@mixin ck-rounded-corners {\\n\\t\\tborder-top-left-radius: 0;\\n\\t\\tborder-top-right-radius: 0;\\n\\t}\\n\\n\\t&:not(.ck-focused) {\\n\\t\\tborder-color: var(--ck-color-base-border);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-placeholder,.ck.ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{content:attr(data-placeholder);left:0;pointer-events:none;position:absolute;right:0}.ck.ck-read-only .ck-placeholder:before{display:none}.ck.ck-reset_all .ck-placeholder{position:relative}@media (forced-colors:active){.ck .ck-placeholder,.ck.ck-placeholder{forced-color-adjust:preserve-parent-color}}.ck .ck-placeholder:before,.ck.ck-placeholder:before{cursor:text}@media (forced-colors:none){.ck .ck-placeholder:before,.ck.ck-placeholder:before{color:var(--ck-color-engine-placeholder-text)}}@media (forced-colors:active){.ck .ck-placeholder:before,.ck.ck-placeholder:before{font-style:italic;margin-left:1px}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-engine/theme/placeholder.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-engine/placeholder.css\"],\"names\":[],\"mappings\":\"AAMA,uCAEC,iBAWD,CATC,qDAIC,8BAA+B,CAF/B,MAAO,CAKP,mBAAoB,CANpB,iBAAkB,CAElB,OAKD,CAKA,wCACC,YACD,CAQD,iCACC,iBACD,CC7BC,8BACC,uCCOA,yCDLA,CACD,CCOA,qDACC,WAmBD,CDvBA,4BACC,qDCMC,6CDJD,CACD,CAZA,8BACC,qDCsBC,iBAAkB,CAMlB,eD1BD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/* See ckeditor/ckeditor5#936. */\\n.ck.ck-placeholder,\\n.ck .ck-placeholder {\\n\\tposition: relative;\\n\\n\\t&::before {\\n\\t\\tposition: absolute;\\n\\t\\tleft: 0;\\n\\t\\tright: 0;\\n\\t\\tcontent: attr(data-placeholder);\\n\\n\\t\\t/* See ckeditor/ckeditor5#469. */\\n\\t\\tpointer-events: none;\\n\\t}\\n}\\n\\n/* See ckeditor/ckeditor5#1987. */\\n.ck.ck-read-only .ck-placeholder {\\n\\t&::before {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\\n/*\\n * Rules for the `ck-placeholder` are loaded before the rules for `ck-reset_all` in the base CKEditor 5 DLL build.\\n * This fix overwrites the incorrectly set `position: static` from `ck-reset_all`.\\n * See https://github.com/ckeditor/ckeditor5/issues/11418.\\n */\\n.ck.ck-reset_all .ck-placeholder {\\n\\tposition: relative;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-forced-colors {\\n\\t@media (forced-colors: active) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\\n@define-mixin ck-media-default-colors {\\n\\t@media (forced-colors: none) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\\\";\\n\\n/* See ckeditor/ckeditor5#936. */\\n.ck.ck-placeholder, .ck .ck-placeholder {\\n\\t@mixin ck-media-forced-colors {\\n\\t\\t/*\\n\\t\\t * This is needed for Edge on Windows to use the right color for the placeholder content (::before).\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/14907.\\n\\t\\t */\\n\\t\\tforced-color-adjust: preserve-parent-color;\\n\\t}\\n\\n\\t&::before {\\n\\t\\tcursor: text;\\n\\n\\t\\t@mixin ck-media-default-colors {\\n\\t\\t\\tcolor: var(--ck-color-engine-placeholder-text);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-media-forced-colors {\\n\\t\\t\\t/*\\n\\t\\t\\t * In the high contrast mode there is no telling between regular and placeholder text. Using\\n\\t\\t\\t * italic text to address that issue. See https://github.com/ckeditor/ckeditor5/issues/14907.\\n\\t\\t\\t */\\n\\t\\t\\tfont-style: italic;\\n\\n\\t\\t\\t/*\\n\\t\\t\\t * Without this margin, the caret will not show up and blink when the user puts the selection\\n\\t\\t\\t * in the placeholder (Edge on Windows). See https://github.com/ckeditor/ckeditor5/issues/14907.\\n\\t\\t\\t */\\n\\t\\t\\tmargin-left: 1px;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-editor__editable span[data-ck-unsafe-element]{display:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-engine/theme/renderer.css\"],\"names\":[],\"mappings\":\"AAMA,qDACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/* Elements marked by the Renderer as hidden should be invisible in the editor. */\\n.ck.ck-editor__editable span[data-ck-unsafe-element] {\\n\\tdisplay: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content .text-tiny{font-size:.7em}.ck-content .text-small{font-size:.85em}.ck-content .text-big{font-size:1.4em}.ck-content .text-huge{font-size:1.8em}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-font/theme/fontsize.css\"],\"names\":[],\"mappings\":\"AAUC,uBACC,cACD,CAEA,wBACC,eACD,CAEA,sBACC,eACD,CAEA,uBACC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/* The values should be synchronized with the \\\"FONT_SIZE_PRESET_UNITS\\\" object in the \\\"/src/fontsize/utils.js\\\" file. */\\n\\n/* Styles should be prefixed with the `.ck-content` class.\\nSee https://github.com/ckeditor/ckeditor5/issues/6636 */\\n.ck-content {\\n\\t& .text-tiny {\\n\\t\\tfont-size: .7em;\\n\\t}\\n\\n\\t& .text-small {\\n\\t\\tfont-size: .85em;\\n\\t}\\n\\n\\t& .text-big {\\n\\t\\tfont-size: 1.4em;\\n\\t}\\n\\n\\t& .text-huge {\\n\\t\\tfont-size: 1.8em;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-heading_heading1{font-size:20px}.ck.ck-heading_heading2{font-size:17px}.ck.ck-heading_heading3{font-size:14px}.ck[class*=ck-heading_heading]{font-weight:700}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__button .ck-button__label{width:8em}.ck.ck-dropdown.ck-heading-dropdown .ck-dropdown__panel .ck-list__item{min-width:18em}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-heading/theme/heading.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-heading/heading.css\"],\"names\":[],\"mappings\":\"AAKA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,wBACC,cACD,CAEA,+BACC,eACD,CCZC,2EACC,SACD,CAEA,uEACC,cACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-heading_heading1 {\\n\\tfont-size: 20px;\\n}\\n\\n.ck.ck-heading_heading2 {\\n\\tfont-size: 17px;\\n}\\n\\n.ck.ck-heading_heading3 {\\n\\tfont-size: 14px;\\n}\\n\\n.ck[class*=\\\"ck-heading_heading\\\"] {\\n\\tfont-weight: bold;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/* Resize dropdown's button label. */\\n.ck.ck-dropdown.ck-heading-dropdown {\\n\\t& .ck-dropdown__button .ck-button__label {\\n\\t\\twidth: 8em;\\n\\t}\\n\\n\\t& .ck-dropdown__panel .ck-list__item {\\n\\t\\tmin-width: 18em;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-editor__editable .ck-horizontal-line{display:flow-root}.ck-content hr{background:#dedede;border:0;height:4px;margin:15px 0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-horizontal-line/theme/horizontalline.css\"],\"names\":[],\"mappings\":\"AAMA,yCAEC,iBACD,CAEA,eAGC,kBAA2B,CAC3B,QAAS,CAFT,UAAW,CADX,aAID\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n\\n.ck-editor__editable .ck-horizontal-line {\\n\\t/* Necessary to render properly next to floated objects, e.g. side image case. */\\n\\tdisplay: flow-root;\\n}\\n\\n.ck-content hr {\\n\\tmargin: 15px 0;\\n\\theight: 4px;\\n\\tbackground: hsl(0, 0%, 87%);\\n\\tborder: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content .image{clear:both;display:table;margin:.9em auto;min-width:50px;text-align:center}.ck-content .image img{display:block;height:auto;margin:0 auto;max-width:100%;min-width:100%}.ck-content .image-inline{align-items:flex-start;display:inline-flex;max-width:100%}.ck-content .image-inline picture{display:flex}.ck-content .image-inline img,.ck-content .image-inline picture{flex-grow:1;flex-shrink:1;max-width:100%}.ck.ck-editor__editable .image>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}.ck.ck-editor__editable .image{z-index:1}.ck.ck-editor__editable .image.ck-widget_selected{z-index:2}.ck.ck-editor__editable .image-inline{z-index:1}.ck.ck-editor__editable .image-inline.ck-widget_selected{z-index:2}.ck.ck-editor__editable .image-inline.ck-widget_selected ::selection{display:none}.ck.ck-editor__editable .image-inline img{height:auto}.ck.ck-editor__editable td .image-inline img,.ck.ck-editor__editable th .image-inline img{max-width:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/image.css\"],\"names\":[],\"mappings\":\"AAMC,mBAEC,UAAW,CADX,aAAc,CAOd,gBAAkB,CAGlB,cAAe,CARf,iBA2BD,CAjBC,uBAEC,aAAc,CAad,WAAY,CAVZ,aAAc,CAGd,cAAe,CAGf,cAKD,CAGD,0BAYC,sBAAuB,CANvB,mBAAoB,CAGpB,cAoBD,CAdC,kCACC,YACD,CAGA,gEAGC,WAAY,CACZ,aAAc,CAGd,cACD,CAUD,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAKA,+BACC,SASD,CAHC,kDACC,SACD,CAMD,sCACC,SAkBD,CAZC,yDACC,SAUD,CAHC,qEACC,YACD,CAMF,0CACC,WACD,CAMC,0FACC,cACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-content {\\n\\t& .image {\\n\\t\\tdisplay: table;\\n\\t\\tclear: both;\\n\\t\\ttext-align: center;\\n\\n\\t\\t/* Make sure there is some space between the content and the image. Center image by default. */\\n\\t\\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\\n\\t \\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\\n\\t\\tmargin: 0.9em auto;\\n\\n\\t\\t/* Make sure the caption will be displayed properly (See: https://github.com/ckeditor/ckeditor5/issues/1870). */\\n\\t\\tmin-width: 50px;\\n\\n\\t\\t& img {\\n\\t\\t\\t/* Prevent unnecessary margins caused by line-height (see #44). */\\n\\t\\t\\tdisplay: block;\\n\\n\\t\\t\\t/* Center the image if its width is smaller than the content's width. */\\n\\t\\t\\tmargin: 0 auto;\\n\\n\\t\\t\\t/* Make sure the image never exceeds the size of the parent container (ckeditor/ckeditor5-ui#67). */\\n\\t\\t\\tmax-width: 100%;\\n\\n\\t\\t\\t/* Make sure the image is never smaller than the parent container (See: https://github.com/ckeditor/ckeditor5/issues/9300). */\\n\\t\\t\\tmin-width: 100%;\\n\\n\\t\\t\\t/* Keep proportions of the block image if the height is set and the image is wider than the editor width.\\n\\t\\t\\tSee https://github.com/ckeditor/ckeditor5/issues/14542. */\\n\\t\\t\\theight: auto;\\n\\t\\t}\\n\\t}\\n\\n\\t& .image-inline {\\n\\t\\t/*\\n\\t\\t * Normally, the .image-inline would have \\\"display: inline-block\\\" and \\\"img { width: 100% }\\\" (to follow the wrapper while resizing).\\n\\t\\t * Unfortunately, together with \\\"srcset\\\", it gets automatically stretched up to the width of the editing root.\\n\\t\\t * This strange behavior does not happen with inline-flex.\\n\\t\\t */\\n\\t\\tdisplay: inline-flex;\\n\\n\\t\\t/* While being resized, don't allow the image to exceed the width of the editing root. */\\n\\t\\tmax-width: 100%;\\n\\n\\t\\t/* This is required by Safari to resize images in a sensible way. Without this, the browser breaks the ratio. */\\n\\t\\talign-items: flex-start;\\n\\n\\t\\t/* When the picture is present it must act as a flex container to let the img resize properly */\\n\\t\\t& picture {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t}\\n\\n\\t\\t/* When the picture is present, it must act like a resizable img. */\\n\\t\\t& picture,\\n\\t\\t& img {\\n\\t\\t\\t/* This is necessary for the img to span the entire .image-inline wrapper and to resize properly. */\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t\\tflex-shrink: 1;\\n\\n\\t\\t\\t/* Prevents overflowing the editing root boundaries when an inline image is very wide. */\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-editor__editable {\\n\\t/*\\n\\t * Inhertit the content styles padding of the
in case the integration overrides `text-align: center`\\n\\t * of `.image` (e.g. to the left/right). This ensures the placeholder stays at the padding just like the native\\n\\t * caret does, and not at the edge of
.\\n\\t */\\n\\t& .image > figcaption.ck-placeholder::before {\\n\\t\\tpadding-left: inherit;\\n\\t\\tpadding-right: inherit;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the image caption placeholder doesn't overflow the placeholder area.\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\\n\\t\\t */\\n\\t\\twhite-space: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n\\n\\t/*\\n\\t * See https://github.com/ckeditor/ckeditor5/issues/15115.\\n\\t */\\n\\t& .image {\\n\\t\\tz-index: 1;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the selected image always stays on top of its siblings.\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\\n\\t\\t */\\n\\t\\t&.ck-widget_selected {\\n\\t\\t\\tz-index: 2;\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * See https://github.com/ckeditor/ckeditor5/issues/15115.\\n\\t */\\n\\t& .image-inline {\\n\\t\\tz-index: 1;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the selected inline image always stays on top of its siblings.\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/9108.\\n\\t\\t */\\n\\t\\t&.ck-widget_selected {\\n\\t\\t\\tz-index: 2;\\n\\n\\t\\t\\t/*\\n\\t\\t\\t * Make sure the native browser selection style is not displayed.\\n\\t\\t\\t * Inline image widgets have their own styles for the selected state and\\n\\t\\t\\t * leaving this up to the browser is asking for a visual collision.\\n\\t\\t\\t */\\n\\t\\t\\t& ::selection {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* Keep proportions of the inline image if the height is set and the image is wider than the editor width.\\n\\tSee https://github.com/ckeditor/ckeditor5/issues/14542. */\\n\\t& .image-inline img {\\n\\t\\theight: auto;\\n\\t}\\n\\n\\t/* The inline image nested in the table should have its original size if not resized.\\n\\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\\n\\t& td,\\n\\t& th {\\n\\t\\t& .image-inline img {\\n\\t\\t\\tmax-width: none;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-color-image-caption-background:#f7f7f7;--ck-color-image-caption-text:#333;--ck-color-image-caption-highlighted-background:#fd0}.ck-content .image>figcaption{background-color:var(--ck-color-image-caption-background);caption-side:bottom;color:var(--ck-color-image-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;word-break:break-word}@media (forced-colors:active){.ck-content .image>figcaption{background-color:unset;color:unset}}@media (forced-colors:none){.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:ck-image-caption-highlight .6s ease-out}}@media (prefers-reduced-motion:reduce){.ck.ck-editor__editable .image>figcaption.image__caption_highlighted{animation:none}}@keyframes ck-image-caption-highlight{0%{background-color:var(--ck-color-image-caption-highlighted-background)}to{background-color:var(--ck-color-image-caption-background)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/imagecaption.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css\"],\"names\":[],\"mappings\":\"AAOA,MACC,2CAAoD,CACpD,kCAA8C,CAC9C,oDACD,CAGA,8BAKC,yDAA0D,CAH1D,mBAAoB,CAEpB,wCAAyC,CAHzC,qBAAsB,CAMtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,qBAYD,CAJC,8BAXD,8BAYE,sBAAuB,CACvB,WAEF,CADC,CCdA,4BACC,qEDmBA,iDCjBA,CACD,CDmBA,uCALD,qEAME,cAEF,CADC,CAGD,sCACC,GACC,qEACD,CAEA,GACC,yDACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\\\";\\n\\n:root {\\n\\t--ck-color-image-caption-background: hsl(0, 0%, 97%);\\n\\t--ck-color-image-caption-text: hsl(0, 0%, 20%);\\n\\t--ck-color-image-caption-highlighted-background: hsl(52deg 100% 50%);\\n}\\n\\n/* Content styles */\\n.ck-content .image > figcaption {\\n\\tdisplay: table-caption;\\n\\tcaption-side: bottom;\\n\\tword-break: break-word;\\n\\tcolor: var(--ck-color-image-caption-text);\\n\\tbackground-color: var(--ck-color-image-caption-background);\\n\\tpadding: .6em;\\n\\tfont-size: .75em;\\n\\toutline-offset: -1px;\\n\\n\\t/* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */\\n\\t@media (forced-colors: active) {\\n\\t\\tbackground-color: unset;\\n\\t\\tcolor: unset;\\n\\t}\\n}\\n\\n/* Editing styles */\\n.ck.ck-editor__editable .image > figcaption.image__caption_highlighted {\\n\\t@mixin ck-media-default-colors {\\n\\t\\tanimation: ck-image-caption-highlight .6s ease-out;\\n\\t}\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\tanimation: none;\\n\\t}\\n}\\n\\n@keyframes ck-image-caption-highlight {\\n\\t0% {\\n\\t\\tbackground-color: var(--ck-color-image-caption-highlighted-background);\\n\\t}\\n\\n\\t100% {\\n\\t\\tbackground-color: var(--ck-color-image-caption-background);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-forced-colors {\\n\\t@media (forced-colors: active) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\\n@define-mixin ck-media-default-colors {\\n\\t@media (forced-colors: none) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-image-custom-resize-form{align-items:flex-start;display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-image-custom-resize-form .ck-labeled-field-view{display:inline-block}.ck.ck-image-custom-resize-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-image-custom-resize-form{flex-wrap:wrap}.ck.ck-image-custom-resize-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-image-custom-resize-form .ck-button{flex-basis:50%}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/imagecustomresizeform.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_rwd.css\"],\"names\":[],\"mappings\":\"AAOA,gCAIC,sBAAuB,CAHvB,YAAa,CACb,kBAAmB,CACnB,gBAsBD,CAnBC,uDACC,oBACD,CAEA,0CACC,YACD,CCbA,oCDCD,gCAeE,cAUF,CARE,uDACC,eACD,CAEA,2CACC,cACD,CCtBD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-image-custom-resize-form {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\talign-items: flex-start;\\n\\n\\t& .ck-labeled-field-view {\\n\\t\\tdisplay: inline-block;\\n\\t}\\n\\n\\t& .ck-label {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tflex-wrap: wrap;\\n\\n\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\tflex-basis: 100%;\\n\\t\\t}\\n\\n\\t\\t& .ck-button {\\n\\t\\t\\tflex-basis: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-image-insert-url .ck-image-insert-url__action-row{display:grid;grid-template-columns:repeat(2,1fr)}:root{--ck-image-insert-insert-by-url-width:250px}.ck.ck-image-insert-url{--ck-input-width:100%}.ck.ck-image-insert-url .ck-image-insert-url__action-row{grid-column-gap:var(--ck-spacing-large);margin-top:var(--ck-spacing-large)}.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-cancel,.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button-save{justify-content:center;min-width:auto}.ck.ck-image-insert-url .ck-image-insert-url__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}.ck.ck-image-insert-form>.ck.ck-button{display:block;padding:var(--ck-list-button-padding);width:100%}[dir=ltr] .ck.ck-image-insert-form>.ck.ck-button{text-align:left}[dir=rtl] .ck.ck-image-insert-form>.ck.ck-button{text-align:right}.ck.ck-image-insert-form>.ck.ck-collapsible:not(:first-child){border-top:1px solid var(--ck-color-base-border)}.ck.ck-image-insert-form>.ck.ck-collapsible:not(:last-child){border-bottom:1px solid var(--ck-color-base-border)}.ck.ck-image-insert-form>.ck.ck-collapsible,.ck.ck-image-insert-form>.ck.ck-image-insert-url{min-width:var(--ck-image-insert-insert-by-url-width)}.ck.ck-image-insert-form>.ck.ck-image-insert-url{padding:var(--ck-spacing-large)}.ck.ck-image-insert-form:focus{outline:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/imageinsert.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageinsert.css\"],\"names\":[],\"mappings\":\"AAMC,yDACC,YAAa,CACb,mCACD,CCFD,MACC,2CACD,CAEA,wBACC,qBAgBD,CAdC,yDACC,uCAAwC,CACxC,kCAWD,CATC,oJAEC,sBAAuB,CACvB,cACD,CAEA,sFACC,0BACD,CAKD,uCACC,aAAc,CAEd,qCAAsC,CADtC,UAUD,CAZA,iDAME,eAMF,CAZA,iDAUE,gBAEF,CAGC,8DACC,gDACD,CAEA,6DACC,mDACD,CAMD,6FAJC,oDAOD,CAHA,iDAEC,+BACD,CAEA,+BACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-image-insert-url {\\n\\t& .ck-image-insert-url__action-row {\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-template-columns: repeat(2, 1fr);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n:root {\\n\\t--ck-image-insert-insert-by-url-width: 250px;\\n}\\n\\n.ck.ck-image-insert-url {\\n\\t--ck-input-width: 100%;\\n\\n\\t& .ck-image-insert-url__action-row {\\n\\t\\tgrid-column-gap: var(--ck-spacing-large);\\n\\t\\tmargin-top: var(--ck-spacing-large);\\n\\n\\t\\t& .ck-button-save,\\n\\t\\t& .ck-button-cancel {\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\tmin-width: auto;\\n\\t\\t}\\n\\n\\t\\t& .ck-button .ck-button__label {\\n\\t\\t\\tcolor: var(--ck-color-text);\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-image-insert-form {\\n\\t& > .ck.ck-button {\\n\\t\\tdisplay: block;\\n\\t\\twidth: 100%;\\n\\t\\tpadding: var(--ck-list-button-padding);\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\ttext-align: right;\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck.ck-collapsible {\\n\\t\\t&:not(:first-child) {\\n\\t\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\t\\t}\\n\\n\\t\\t&:not(:last-child) {\\n\\t\\t\\tborder-bottom: 1px solid var(--ck-color-base-border);\\n\\t\\t}\\n\\n\\t\\tmin-width: var(--ck-image-insert-insert-by-url-width);\\n\\t}\\n\\n\\t/* This is the case when there are no other integrations configured than insert by URL */\\n\\t& > .ck.ck-image-insert-url {\\n\\t\\tmin-width: var(--ck-image-insert-insert-by-url-width);\\n\\t\\tpadding: var(--ck-spacing-large);\\n\\t}\\n\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-editor__editable img.image_placeholder{background-size:100% 100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/imageplaceholder.css\"],\"names\":[],\"mappings\":\"AAMC,8CACC,yBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-editor__editable {\\n\\t& img.image_placeholder {\\n\\t\\tbackground-size: 100% 100%;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content img.image_resized{height:auto}.ck-content .image.image_resized{box-sizing:border-box;display:block;max-width:100%}.ck-content .image.image_resized img{width:100%}.ck-content .image.image_resized>figcaption{display:block}.ck.ck-editor__editable td .image-inline.image_resized img,.ck.ck-editor__editable th .image-inline.image_resized img{max-width:100%}[dir=ltr] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon{margin-left:var(--ck-spacing-standard)}.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label{width:4em}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/imageresize.css\"],\"names\":[],\"mappings\":\"AAMA,8BACC,WACD,CAEA,iCAQC,qBAAsB,CADtB,aAAc,CANd,cAkBD,CATC,qCAEC,UACD,CAEA,4CAEC,aACD,CAQC,sHACC,cACD,CAIF,oFACC,uCACD,CAEA,oFACC,sCACD,CAEA,oEACC,SACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/* Preserve aspect ratio of the resized image after introducing image height attribute. */\\n.ck-content img.image_resized {\\n\\theight: auto;\\n}\\n\\n.ck-content .image.image_resized {\\n\\tmax-width: 100%;\\n\\t/*\\n\\tThe `
` element for resized images must not use `display:table` as browsers do not support `max-width` for it well.\\n\\tSee https://stackoverflow.com/questions/4019604/chrome-safari-ignoring-max-width-in-table/14420691#14420691 for more.\\n\\tFortunately, since we control the width, there is no risk that the image will look bad.\\n\\t*/\\n\\tdisplay: block;\\n\\tbox-sizing: border-box;\\n\\n\\t& img {\\n\\t\\t/* For resized images it is the `
` element that determines the image width. */\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t& > figcaption {\\n\\t\\t/* The `
` element uses `display:block`, so `
` also has to. */\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\\n.ck.ck-editor__editable {\\n\\t/* The resized inline image nested in the table should respect its parent size.\\n\\tSee https://github.com/ckeditor/ckeditor5/issues/9117. */\\n\\t& td,\\n\\t& th {\\n\\t\\t& .image-inline.image_resized img {\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t}\\n\\t}\\n}\\n\\n[dir=\\\"ltr\\\"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {\\n\\tmargin-right: var(--ck-spacing-standard);\\n}\\n\\n[dir=\\\"rtl\\\"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {\\n\\tmargin-left: var(--ck-spacing-standard);\\n}\\n\\n.ck.ck-dropdown .ck-button.ck-resize-image-button .ck-button__label {\\n\\twidth: 4em;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-image-style-spacing:1.5em;--ck-inline-image-style-spacing:calc(var(--ck-image-style-spacing)/2)}.ck-content .image-style-block-align-left,.ck-content .image-style-block-align-right{max-width:calc(100% - var(--ck-image-style-spacing))}.ck-content .image-style-align-left,.ck-content .image-style-align-right{clear:none}.ck-content .image-style-side{float:right;margin-left:var(--ck-image-style-spacing);max-width:50%}.ck-content .image-style-align-left{float:left;margin-right:var(--ck-image-style-spacing)}.ck-content .image-style-align-center{margin-left:auto;margin-right:auto}.ck-content .image-style-align-right{float:right;margin-left:var(--ck-image-style-spacing)}.ck-content .image-style-block-align-right{margin-left:auto;margin-right:0}.ck-content .image-style-block-align-left{margin-left:0;margin-right:auto}.ck-content p+.image-style-align-left,.ck-content p+.image-style-align-right,.ck-content p+.image-style-side{margin-top:0}.ck-content .image-inline.image-style-align-left,.ck-content .image-inline.image-style-align-right{margin-bottom:var(--ck-inline-image-style-spacing);margin-top:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-left{margin-right:var(--ck-inline-image-style-spacing)}.ck-content .image-inline.image-style-align-right{margin-left:var(--ck-inline-image-style-spacing)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-background)}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__action:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton.ck-splitbutton_flatten:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover):after{display:none}.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__action:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled),.ck.ck-splitbutton.ck-splitbutton_flatten.ck-splitbutton_open:hover>.ck-splitbutton__arrow:not(.ck-disabled):not(:hover){background-color:var(--ck-color-button-on-hover-background)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/imagestyle.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,8BAA+B,CAC/B,qEACD,CAMC,qFAEC,oDACD,CAIA,yEAEC,UACD,CAEA,8BACC,WAAY,CACZ,yCAA0C,CAC1C,aACD,CAEA,oCACC,UAAW,CACX,0CACD,CAEA,sCACC,gBAAiB,CACjB,iBACD,CAEA,qCACC,WAAY,CACZ,yCACD,CAEA,2CAEC,gBAAiB,CADjB,cAED,CAEA,0CACC,aAAc,CACd,iBACD,CAGA,6GAGC,YACD,CAGC,mGAGC,kDAAmD,CADnD,+CAED,CAEA,iDACC,iDACD,CAEA,kDACC,gDACD,CAUC,0lBAGC,qDAKD,CAHC,8nBACC,YACD,CAKD,oVAGC,2DACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-image-style-spacing: 1.5em;\\n\\t--ck-inline-image-style-spacing: calc(var(--ck-image-style-spacing) / 2);\\n}\\n\\n.ck-content {\\n\\t/* Provides a minimal side margin for the left and right aligned images, so that the user has a visual feedback\\n\\tconfirming successful application of the style if image width exceeds the editor's size.\\n\\tSee https://github.com/ckeditor/ckeditor5/issues/9342 */\\n\\t& .image-style-block-align-left,\\n\\t& .image-style-block-align-right {\\n\\t\\tmax-width: calc(100% - var(--ck-image-style-spacing));\\n\\t}\\n\\n\\t/* Allows displaying multiple floating images in the same line.\\n\\tSee https://github.com/ckeditor/ckeditor5/issues/9183#issuecomment-804988132 */\\n\\t& .image-style-align-left,\\n\\t& .image-style-align-right {\\n\\t\\tclear: none;\\n\\t}\\n\\n\\t& .image-style-side {\\n\\t\\tfloat: right;\\n\\t\\tmargin-left: var(--ck-image-style-spacing);\\n\\t\\tmax-width: 50%;\\n\\t}\\n\\n\\t& .image-style-align-left {\\n\\t\\tfloat: left;\\n\\t\\tmargin-right: var(--ck-image-style-spacing);\\n\\t}\\n\\n\\t& .image-style-align-center {\\n\\t\\tmargin-left: auto;\\n\\t\\tmargin-right: auto;\\n\\t}\\n\\n\\t& .image-style-align-right {\\n\\t\\tfloat: right;\\n\\t\\tmargin-left: var(--ck-image-style-spacing);\\n\\t}\\n\\n\\t& .image-style-block-align-right {\\n\\t\\tmargin-right: 0;\\n\\t\\tmargin-left: auto;\\n\\t}\\n\\n\\t& .image-style-block-align-left {\\n\\t\\tmargin-left: 0;\\n\\t\\tmargin-right: auto;\\n\\t}\\n\\n\\t/* Simulates margin collapsing with the preceding paragraph, which does not work for the floating elements. */\\n\\t& p + .image-style-align-left,\\n\\t& p + .image-style-align-right,\\n\\t& p + .image-style-side {\\n\\t\\tmargin-top: 0;\\n\\t}\\n\\n\\t& .image-inline {\\n\\t\\t&.image-style-align-left,\\n\\t\\t&.image-style-align-right {\\n\\t\\t\\tmargin-top: var(--ck-inline-image-style-spacing);\\n\\t\\t\\tmargin-bottom: var(--ck-inline-image-style-spacing);\\n\\t\\t}\\n\\n\\t\\t&.image-style-align-left {\\n\\t\\t\\tmargin-right: var(--ck-inline-image-style-spacing);\\n\\t\\t}\\n\\n\\t\\t&.image-style-align-right {\\n\\t\\t\\tmargin-left: var(--ck-inline-image-style-spacing);\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-splitbutton {\\n\\t/* The button should display as a regular drop-down if the action button\\n\\tis forced to fire the same action as the arrow button. */\\n\\t&.ck-splitbutton_flatten {\\n\\t\\t&:hover,\\n\\t\\t&.ck-splitbutton_open {\\n\\t\\t\\t& > .ck-splitbutton__action:not(.ck-disabled),\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled),\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\\n\\t\\t\\t\\tbackground-color: var(--ck-color-button-on-background);\\n\\n\\t\\t\\t\\t&::after {\\n\\t\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&.ck-splitbutton_open:hover {\\n\\t\\t\\t& > .ck-splitbutton__action:not(.ck-disabled),\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled),\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled):not(:hover) {\\n\\t\\t\\t\\tbackground-color: var(--ck-color-button-on-hover-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-image-upload-complete-icon{border-radius:50%;display:block;position:absolute;right:min(var(--ck-spacing-medium),6%);top:min(var(--ck-spacing-medium),6%);z-index:1}.ck-image-upload-complete-icon:after{content:\\\"\\\";position:absolute}:root{--ck-color-image-upload-icon:#fff;--ck-color-image-upload-icon-background:#008a00;--ck-image-upload-icon-size:20;--ck-image-upload-icon-width:2px;--ck-image-upload-icon-is-visible:clamp(0px,100% - 50px,1px)}.ck-image-upload-complete-icon{animation-delay:0ms,3s;animation-duration:.5s,.5s;animation-fill-mode:forwards,forwards;animation-name:ck-upload-complete-icon-show,ck-upload-complete-icon-hide;background:var(--ck-color-image-upload-icon-background);font-size:calc(1px*var(--ck-image-upload-icon-size));height:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size));opacity:0;overflow:hidden;width:calc(var(--ck-image-upload-icon-is-visible)*var(--ck-image-upload-icon-size))}.ck-image-upload-complete-icon:after{animation-delay:.5s;animation-duration:.5s;animation-fill-mode:forwards;animation-name:ck-upload-complete-icon-check;border-right:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);border-top:var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);box-sizing:border-box;height:0;left:25%;opacity:0;top:50%;transform:scaleX(-1) rotate(135deg);transform-origin:left top;width:0}@media (prefers-reduced-motion:reduce){.ck-image-upload-complete-icon{animation-duration:0ms}.ck-image-upload-complete-icon:after{animation:none;height:.45em;opacity:1;width:.3em}}@keyframes ck-upload-complete-icon-show{0%{opacity:0}to{opacity:1}}@keyframes ck-upload-complete-icon-hide{0%{opacity:1}to{opacity:0}}@keyframes ck-upload-complete-icon-check{0%{height:0;opacity:1;width:0}33%{height:0;width:.3em}to{height:.45em;opacity:1;width:.3em}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/imageuploadicon.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadicon.css\"],\"names\":[],\"mappings\":\"AAKA,+BAUC,iBAAkB,CATlB,aAAc,CACd,iBAAkB,CAOlB,sCAAwC,CADxC,oCAAsC,CAGtC,SAMD,CAJC,qCACC,UAAW,CACX,iBACD,CChBD,MACC,iCAA8C,CAC9C,+CAA4D,CAG5D,8BAA+B,CAC/B,gCAAiC,CACjC,4DACD,CAEA,+BAWC,sBAA4B,CAN5B,0BAAgC,CADhC,qCAAuC,CADvC,wEAA0E,CAD1E,uDAAwD,CAMxD,oDAAuD,CAWvD,oFAAuF,CAlBvF,SAAU,CAgBV,eAAgB,CAChB,mFAqCD,CAjCC,qCAgBC,mBAAsB,CADtB,sBAAyB,CAEzB,4BAA6B,CAH7B,4CAA6C,CAF7C,sFAAuF,CADvF,oFAAqF,CASrF,qBAAsB,CAdtB,QAAS,CAJT,QAAS,CAGT,SAAU,CADV,OAAQ,CAKR,mCAAoC,CACpC,yBAA0B,CAH1B,OAcD,CAEA,uCA7CD,+BA8CE,sBASF,CAPE,qCACC,cAAe,CAGf,YAAc,CAFd,SAAU,CACV,UAED,CACD,CAGD,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,wCACC,GACC,SACD,CAEA,GACC,SACD,CACD,CAEA,yCACC,GAGC,QAAS,CAFT,SAAU,CACV,OAED,CACA,IAEC,QAAS,CADT,UAED,CACA,GAGC,YAAc,CAFd,SAAU,CACV,UAED,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-image-upload-complete-icon {\\n\\tdisplay: block;\\n\\tposition: absolute;\\n\\n\\t/*\\n\\t * Smaller images should have the icon closer to the border.\\n\\t * Match the icon position with the linked image indicator brought by the link image feature.\\n\\t */\\n\\ttop: min(var(--ck-spacing-medium), 6%);\\n\\tright: min(var(--ck-spacing-medium), 6%);\\n\\tborder-radius: 50%;\\n\\tz-index: 1;\\n\\n\\t&::after {\\n\\t\\tcontent: \\\"\\\";\\n\\t\\tposition: absolute;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-image-upload-icon: hsl(0, 0%, 100%);\\n\\t--ck-color-image-upload-icon-background: hsl(120, 100%, 27%);\\n\\n\\t/* Match the icon size with the linked image indicator brought by the link image feature. */\\n\\t--ck-image-upload-icon-size: 20;\\n\\t--ck-image-upload-icon-width: 2px;\\n\\t--ck-image-upload-icon-is-visible: clamp(0px, 100% - 50px, 1px);\\n}\\n\\n.ck-image-upload-complete-icon {\\n\\topacity: 0;\\n\\tbackground: var(--ck-color-image-upload-icon-background);\\n\\tanimation-name: ck-upload-complete-icon-show, ck-upload-complete-icon-hide;\\n\\tanimation-fill-mode: forwards, forwards;\\n\\tanimation-duration: 500ms, 500ms;\\n\\n\\t/* To make animation scalable. */\\n\\tfont-size: calc(1px * var(--ck-image-upload-icon-size));\\n\\n\\t/* Hide completed upload icon after 3 seconds. */\\n\\tanimation-delay: 0ms, 3000ms;\\n\\n\\t/*\\n\\t * Use CSS math to simulate container queries.\\n\\t * https://css-tricks.com/the-raven-technique-one-step-closer-to-container-queries/#what-about-showing-and-hiding-things\\n\\t */\\n\\toverflow: hidden;\\n\\twidth: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\\n\\theight: calc(var(--ck-image-upload-icon-is-visible) * var(--ck-image-upload-icon-size));\\n\\n\\t/* This is check icon element made from border-width mixed with animations. */\\n\\t&::after {\\n\\t\\t/* Because of border transformation we need to \\\"hard code\\\" left position. */\\n\\t\\tleft: 25%;\\n\\n\\t\\ttop: 50%;\\n\\t\\topacity: 0;\\n\\t\\theight: 0;\\n\\t\\twidth: 0;\\n\\n\\t\\ttransform: scaleX(-1) rotate(135deg);\\n\\t\\ttransform-origin: left top;\\n\\t\\tborder-top: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\\n\\t\\tborder-right: var(--ck-image-upload-icon-width) solid var(--ck-color-image-upload-icon);\\n\\n\\t\\tanimation-name: ck-upload-complete-icon-check;\\n\\t\\tanimation-duration: 500ms;\\n\\t\\tanimation-delay: 500ms;\\n\\t\\tanimation-fill-mode: forwards;\\n\\n\\t\\t/* #1095. While reset is not providing proper box-sizing for pseudoelements, we need to handle it. */\\n\\t\\tbox-sizing: border-box;\\n\\t}\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\tanimation-duration: 0ms;\\n\\n\\t\\t&::after {\\n\\t\\t\\tanimation: none;\\n\\t\\t\\topacity: 1;\\n\\t\\t\\twidth: 0.3em;\\n\\t\\t\\theight: 0.45em;\\n\\t\\t}\\n\\t}\\n}\\n\\n@keyframes ck-upload-complete-icon-show {\\n\\tfrom {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\tto {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\\n@keyframes ck-upload-complete-icon-hide {\\n\\tfrom {\\n\\t\\topacity: 1;\\n\\t}\\n\\n\\tto {\\n\\t\\topacity: 0;\\n\\t}\\n}\\n\\n@keyframes ck-upload-complete-icon-check {\\n\\t0% {\\n\\t\\topacity: 1;\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t}\\n\\t33% {\\n\\t\\twidth: 0.3em;\\n\\t\\theight: 0;\\n\\t}\\n\\t100% {\\n\\t\\topacity: 1;\\n\\t\\twidth: 0.3em;\\n\\t\\theight: 0.45em;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-upload-placeholder-loader{align-items:center;display:flex;justify-content:center;left:0;position:absolute;top:0}.ck .ck-upload-placeholder-loader:before{content:\\\"\\\";position:relative}:root{--ck-color-upload-placeholder-loader:#b3b3b3;--ck-upload-placeholder-loader-size:32px;--ck-upload-placeholder-image-aspect-ratio:2.8}.ck .ck-image-upload-placeholder{margin:0;width:100%}.ck .ck-image-upload-placeholder.image-inline{width:calc(var(--ck-upload-placeholder-loader-size)*2*var(--ck-upload-placeholder-image-aspect-ratio))}.ck .ck-image-upload-placeholder img{aspect-ratio:var(--ck-upload-placeholder-image-aspect-ratio)}.ck .ck-upload-placeholder-loader{height:100%;width:100%}.ck .ck-upload-placeholder-loader:before{animation:ck-upload-placeholder-loader 1s linear infinite;border-radius:50%;border-right:2px solid transparent;border-top:3px solid var(--ck-color-upload-placeholder-loader);height:var(--ck-upload-placeholder-loader-size);width:var(--ck-upload-placeholder-loader-size)}@keyframes ck-upload-placeholder-loader{to{transform:rotate(1turn)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/imageuploadloader.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadloader.css\"],\"names\":[],\"mappings\":\"AAKA,kCAGC,kBAAmB,CADnB,YAAa,CAEb,sBAAuB,CAEvB,MAAO,CALP,iBAAkB,CAIlB,KAOD,CAJC,yCACC,UAAW,CACX,iBACD,CCXD,MACC,4CAAqD,CACrD,wCAAyC,CACzC,8CACD,CAEA,iCAGC,QAAS,CADT,UAgBD,CAbC,8CACC,sGACD,CAEA,qCAOC,4DACD,CAGD,kCAEC,WAAY,CADZ,UAWD,CARC,yCAMC,yDAA0D,CAH1D,iBAAkB,CAElB,kCAAmC,CADnC,8DAA+D,CAF/D,+CAAgD,CADhD,8CAMD,CAGD,wCACC,GACC,uBACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-upload-placeholder-loader {\\n\\tposition: absolute;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\n\\t&::before {\\n\\t\\tcontent: '';\\n\\t\\tposition: relative;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-upload-placeholder-loader: hsl(0, 0%, 70%);\\n\\t--ck-upload-placeholder-loader-size: 32px;\\n\\t--ck-upload-placeholder-image-aspect-ratio: 2.8;\\n}\\n\\n.ck .ck-image-upload-placeholder {\\n\\t/* We need to control the full width of the SVG gray background. */\\n\\twidth: 100%;\\n\\tmargin: 0;\\n\\n\\t&.image-inline {\\n\\t\\twidth: calc( 2 * var(--ck-upload-placeholder-loader-size) * var(--ck-upload-placeholder-image-aspect-ratio) );\\n\\t}\\n\\n\\t& img {\\n\\t\\t/*\\n\\t\\t * This is an arbitrary aspect for a 1x1 px GIF to display to the user. Not too tall, not too short.\\n\\t\\t * There's nothing special about this number except that it should make the image placeholder look like\\n\\t\\t * a real image during this short period after the upload started and before the image was read from the\\n\\t\\t * file system (and a rich preview was loaded).\\n\\t\\t */\\n\\t\\taspect-ratio: var(--ck-upload-placeholder-image-aspect-ratio);\\n\\t}\\n}\\n\\n.ck .ck-upload-placeholder-loader {\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\n\\t&::before {\\n\\t\\twidth: var(--ck-upload-placeholder-loader-size);\\n\\t\\theight: var(--ck-upload-placeholder-loader-size);\\n\\t\\tborder-radius: 50%;\\n\\t\\tborder-top: 3px solid var(--ck-color-upload-placeholder-loader);\\n\\t\\tborder-right: 2px solid transparent;\\n\\t\\tanimation: ck-upload-placeholder-loader 1s linear infinite;\\n\\t}\\n}\\n\\n@keyframes ck-upload-placeholder-loader {\\n\\tto {\\n\\t\\ttransform: rotate( 360deg );\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-editor__editable .image,.ck.ck-editor__editable .image-inline{position:relative}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{left:0;position:absolute;top:0}.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:fadeIn .7s}@media (prefers-reduced-motion:reduce){.ck.ck-editor__editable .image-inline.ck-appear,.ck.ck-editor__editable .image.ck-appear{animation:none;opacity:1}}.ck.ck-editor__editable .image .ck-progress-bar,.ck.ck-editor__editable .image-inline .ck-progress-bar{background:var(--ck-color-upload-bar-background);height:2px;transition:width .1s;width:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/imageuploadprogress.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-image/imageuploadprogress.css\"],\"names\":[],\"mappings\":\"AAMC,qEAEC,iBACD,CAGA,uGAIC,MAAO,CAFP,iBAAkB,CAClB,KAED,CCRC,yFACC,oBAMD,CAJC,uCAHD,yFAKE,cAAe,CADf,SAGF,CADC,CAKF,uGAIC,gDAAiD,CAFjD,UAAW,CAGX,oBAAuB,CAFvB,OAGD,CAGD,kBACC,GAAO,SAAY,CACnB,GAAO,SAAY,CACpB\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-editor__editable {\\n\\t& .image,\\n\\t& .image-inline {\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t/* Upload progress bar. */\\n\\t& .image .ck-progress-bar,\\n\\t& .image-inline .ck-progress-bar {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-editor__editable {\\n\\t& .image,\\n\\t& .image-inline {\\n\\t\\t/* Showing animation. */\\n\\t\\t&.ck-appear {\\n\\t\\t\\tanimation: fadeIn 700ms;\\n\\n\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t\\tanimation: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* Upload progress bar. */\\n\\t& .image .ck-progress-bar,\\n\\t& .image-inline .ck-progress-bar {\\n\\t\\theight: 2px;\\n\\t\\twidth: 0;\\n\\t\\tbackground: var(--ck-color-upload-bar-background);\\n\\t\\ttransition: width 100ms;\\n\\t}\\n}\\n\\n@keyframes fadeIn {\\n\\tfrom { opacity: 0; }\\n\\tto { opacity: 1; }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-text-alternative-form{display:flex;flex-direction:row;flex-wrap:nowrap}.ck.ck-text-alternative-form .ck-labeled-field-view{display:inline-block}.ck.ck-text-alternative-form .ck-label{display:none}@media screen and (max-width:600px){.ck.ck-text-alternative-form{flex-wrap:wrap}.ck.ck-text-alternative-form .ck-labeled-field-view{flex-basis:100%}.ck.ck-text-alternative-form .ck-button{flex-basis:50%}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-image/theme/textalternativeform.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_rwd.css\"],\"names\":[],\"mappings\":\"AAOA,6BACC,YAAa,CACb,kBAAmB,CACnB,gBAqBD,CAnBC,oDACC,oBACD,CAEA,uCACC,YACD,CCZA,oCDCD,6BAcE,cAUF,CARE,oDACC,eACD,CAEA,wCACC,cACD,CCrBD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-text-alternative-form {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\n\\t& .ck-labeled-field-view {\\n\\t\\tdisplay: inline-block;\\n\\t}\\n\\n\\t& .ck-label {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tflex-wrap: wrap;\\n\\n\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\tflex-basis: 100%;\\n\\t\\t}\\n\\n\\t\\t& .ck-button {\\n\\t\\t\\tflex-basis: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-editor__editable .ck-list-bogus-paragraph{display:block}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-list/theme/documentlist.css\"],\"names\":[],\"mappings\":\"AAKA,8CACC,aACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-editor__editable .ck-list-bogus-paragraph {\\n\\tdisplay: block;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content ol{list-style-type:decimal}.ck-content ol ol{list-style-type:lower-latin}.ck-content ol ol ol{list-style-type:lower-roman}.ck-content ol ol ol ol{list-style-type:upper-latin}.ck-content ol ol ol ol ol{list-style-type:upper-roman}.ck-content ul{list-style-type:disc}.ck-content ul ul{list-style-type:circle}.ck-content ul ul ul,.ck-content ul ul ul ul{list-style-type:square}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-list/theme/list.css\"],\"names\":[],\"mappings\":\"AAKA,eACC,uBAiBD,CAfC,kBACC,2BAaD,CAXC,qBACC,2BASD,CAPC,wBACC,2BAKD,CAHC,2BACC,2BACD,CAMJ,eACC,oBAaD,CAXC,kBACC,sBASD,CAJE,6CACC,sBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-content ol {\\n\\tlist-style-type: decimal;\\n\\n\\t& ol {\\n\\t\\tlist-style-type: lower-latin;\\n\\n\\t\\t& ol {\\n\\t\\t\\tlist-style-type: lower-roman;\\n\\n\\t\\t\\t& ol {\\n\\t\\t\\t\\tlist-style-type: upper-latin;\\n\\n\\t\\t\\t\\t& ol {\\n\\t\\t\\t\\t\\tlist-style-type: upper-roman;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck-content ul {\\n\\tlist-style-type: disc;\\n\\n\\t& ul {\\n\\t\\tlist-style-type: circle;\\n\\n\\t\\t& ul {\\n\\t\\t\\tlist-style-type: square;\\n\\n\\t\\t\\t& ul {\\n\\t\\t\\t\\tlist-style-type: square;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-list-properties.ck-list-properties_without-styles{padding:var(--ck-spacing-large)}.ck.ck-list-properties.ck-list-properties_without-styles>*{min-width:14em}.ck.ck-list-properties.ck-list-properties_without-styles>*+*{margin-top:var(--ck-spacing-standard)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-list-styles-list{grid-template-columns:repeat(4,auto)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible{border-top:1px solid var(--ck-color-base-border)}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible>.ck-collapsible__children>*{width:100%}.ck.ck-list-properties.ck-list-properties_with-numbered-properties>.ck-collapsible>.ck-collapsible__children>*+*{margin-top:var(--ck-spacing-standard)}.ck.ck-list-properties .ck.ck-numbered-list-properties__start-index .ck-input{min-width:auto;width:100%}.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order{background:transparent;margin-bottom:calc(var(--ck-spacing-tiny)*-1);padding-left:0;padding-right:0}.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:active,.ck.ck-list-properties .ck.ck-numbered-list-properties__reversed-order:hover{background:none;border-color:transparent;box-shadow:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-list/listproperties.css\"],\"names\":[],\"mappings\":\"AAOC,yDACC,+BASD,CAPC,2DACC,cAKD,CAHC,6DACC,qCACD,CASD,wFACC,oCACD,CAGA,mFACC,gDAWD,CARE,+GACC,UAKD,CAHC,iHACC,qCACD,CAMJ,8EACC,cAAe,CACf,UACD,CAEA,uEACC,sBAAuB,CAGvB,6CAAgD,CAFhD,cAAe,CACf,eAQD,CALC,2JAGC,eAAgB,CADhB,wBAAyB,CADzB,eAGD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-list-properties {\\n\\t/* When there are no list styles and there is no collapsible. */\\n\\t&.ck-list-properties_without-styles {\\n\\t\\tpadding: var(--ck-spacing-large);\\n\\n\\t\\t& > * {\\n\\t\\t\\tmin-width: 14em;\\n\\n\\t\\t\\t& + * {\\n\\t\\t\\t\\tmargin-top: var(--ck-spacing-standard);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * When the numbered list property fields (start at, reversed) should be displayed,\\n\\t * more horizontal space is needed. Reconfigure the style grid to create that space.\\n\\t */\\n\\t&.ck-list-properties_with-numbered-properties {\\n\\t\\t& > .ck-list-styles-list {\\n\\t\\t\\tgrid-template-columns: repeat( 4, auto );\\n\\t\\t}\\n\\n\\t\\t/* When list styles are rendered and property fields are in a collapsible. */\\n\\t\\t& > .ck-collapsible {\\n\\t\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\n\\t\\t\\t& > .ck-collapsible__children {\\n\\t\\t\\t\\t& > * {\\n\\t\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\t\\t& + * {\\n\\t\\t\\t\\t\\t\\tmargin-top: var(--ck-spacing-standard);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-numbered-list-properties__start-index .ck-input {\\n\\t\\tmin-width: auto;\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t& .ck.ck-numbered-list-properties__reversed-order {\\n\\t\\tbackground: transparent;\\n\\t\\tpadding-left: 0;\\n\\t\\tpadding-right: 0;\\n\\t\\tmargin-bottom: calc(-1 * var(--ck-spacing-tiny));\\n\\n\\t\\t&:active, &:hover {\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t\\tborder-color: transparent;\\n\\t\\t\\tbackground: none;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-list-styles-list{display:grid}:root{--ck-list-style-button-size:44px}.ck.ck-list-styles-list{column-gap:var(--ck-spacing-medium);grid-template-columns:repeat(3,auto);padding:var(--ck-spacing-large);row-gap:var(--ck-spacing-medium)}.ck.ck-list-styles-list .ck-button{box-sizing:content-box;margin:0;padding:0}.ck.ck-list-styles-list .ck-button,.ck.ck-list-styles-list .ck-button .ck-icon{height:var(--ck-list-style-button-size);width:var(--ck-list-style-button-size)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-list/theme/liststyles.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-list/liststyles.css\"],\"names\":[],\"mappings\":\"AAKA,wBACC,YACD,CCFA,MACC,gCACD,CAEA,wBAGC,mCAAoC,CAFpC,oCAAwC,CAGxC,+BAAgC,CAFhC,gCA4BD,CAxBC,mCAiBC,sBAAuB,CAPvB,QAAS,CANT,SAmBD,CAJC,+EAhBA,uCAAwC,CADxC,sCAoBA\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-list-styles-list {\\n\\tdisplay: grid;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-list-style-button-size: 44px;\\n}\\n\\n.ck.ck-list-styles-list {\\n\\tgrid-template-columns: repeat( 3, auto );\\n\\trow-gap: var(--ck-spacing-medium);\\n\\tcolumn-gap: var(--ck-spacing-medium);\\n\\tpadding: var(--ck-spacing-large);\\n\\n\\t& .ck-button {\\n\\t\\t/* Make the button look like a thumbnail (the icon \\\"takes it all\\\"). */\\n\\t\\twidth: var(--ck-list-style-button-size);\\n\\t\\theight: var(--ck-list-style-button-size);\\n\\t\\tpadding: 0;\\n\\n\\t\\t/*\\n\\t\\t * Buttons are aligned by the grid so disable default button margins to not collide with the\\n\\t\\t * gaps in the grid.\\n\\t\\t */\\n\\t\\tmargin: 0;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the button border (which is displayed on focus, BTW) does not steal pixels\\n\\t\\t * from the button dimensions and, as a result, decrease the size of the icon\\n\\t\\t * (which becomes blurry as it scales down).\\n\\t\\t */\\n\\t\\tbox-sizing: content-box;\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\twidth: var(--ck-list-style-button-size);\\n\\t\\t\\theight: var(--ck-list-style-button-size);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-todo-list-checkmark-size:16px}.ck-content .todo-list{list-style:none}.ck-content .todo-list li{margin-bottom:5px;position:relative}.ck-content .todo-list li .todo-list{margin-top:5px}.ck-content .todo-list .todo-list__label>input{-webkit-appearance:none;border:0;display:inline-block;height:var(--ck-todo-list-checkmark-size);left:-25px;margin-left:0;margin-right:-15px;position:relative;right:0;vertical-align:middle;width:var(--ck-todo-list-checkmark-size)}.ck-content[dir=rtl] .todo-list .todo-list__label>input{left:0;margin-left:-15px;margin-right:0;right:-25px}.ck-content .todo-list .todo-list__label>input:before{border:1px solid #333;border-radius:2px;box-sizing:border-box;content:\\\"\\\";display:block;height:100%;position:absolute;transition:box-shadow .25s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.ck-content .todo-list .todo-list__label>input:before{transition:none}}.ck-content .todo-list .todo-list__label>input:after{border-color:transparent;border-style:solid;border-width:0 calc(var(--ck-todo-list-checkmark-size)/8) calc(var(--ck-todo-list-checkmark-size)/8) 0;box-sizing:content-box;content:\\\"\\\";display:block;height:calc(var(--ck-todo-list-checkmark-size)/2.6);left:calc(var(--ck-todo-list-checkmark-size)/3);pointer-events:none;position:absolute;top:calc(var(--ck-todo-list-checkmark-size)/5.3);transform:rotate(45deg);width:calc(var(--ck-todo-list-checkmark-size)/5.3)}.ck-content .todo-list .todo-list__label>input[checked]:before{background:#26ab33;border-color:#26ab33}.ck-content .todo-list .todo-list__label>input[checked]:after{border-color:#fff}.ck-content .todo-list .todo-list__label .todo-list__label__description{vertical-align:middle}.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox]{position:absolute}.ck-editor__editable.ck-content .todo-list .todo-list__label>input,.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input{cursor:pointer}.ck-editor__editable.ck-content .todo-list .todo-list__label>input:hover:before,.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:hover:before{box-shadow:0 0 0 5px rgba(0,0,0,.1)}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input{-webkit-appearance:none;border:0;display:inline-block;height:var(--ck-todo-list-checkmark-size);left:-25px;margin-left:0;margin-right:-15px;position:relative;right:0;vertical-align:middle;width:var(--ck-todo-list-checkmark-size)}.ck-editor__editable.ck-content[dir=rtl] .todo-list .todo-list__label>span[contenteditable=false]>input{left:0;margin-left:-15px;margin-right:0;right:-25px}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:before{border:1px solid #333;border-radius:2px;box-sizing:border-box;content:\\\"\\\";display:block;height:100%;position:absolute;transition:box-shadow .25s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:before{transition:none}}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input:after{border-color:transparent;border-style:solid;border-width:0 calc(var(--ck-todo-list-checkmark-size)/8) calc(var(--ck-todo-list-checkmark-size)/8) 0;box-sizing:content-box;content:\\\"\\\";display:block;height:calc(var(--ck-todo-list-checkmark-size)/2.6);left:calc(var(--ck-todo-list-checkmark-size)/3);pointer-events:none;position:absolute;top:calc(var(--ck-todo-list-checkmark-size)/5.3);transform:rotate(45deg);width:calc(var(--ck-todo-list-checkmark-size)/5.3)}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input[checked]:before{background:#26ab33;border-color:#26ab33}.ck-editor__editable.ck-content .todo-list .todo-list__label>span[contenteditable=false]>input[checked]:after{border-color:#fff}.ck-editor__editable.ck-content .todo-list .todo-list__label.todo-list__label_without-description input[type=checkbox]{position:absolute}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-list/theme/todolist.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,kCACD,CA4EA,uBACC,eAwBD,CAtBC,0BAEC,iBAAkB,CADlB,iBAMD,CAHC,qCACC,cACD,CAIA,+CAtFD,uBAAwB,CAQxB,QAAS,CAPT,oBAAqB,CAGrB,yCAA0C,CAO1C,UAAW,CAGX,aAAc,CAFd,kBAAmB,CAVnB,iBAAkB,CAWlB,OAAQ,CARR,qBAAsB,CAFtB,wCAqFC,CAFA,wDApEA,MAAO,CAGP,iBAAkB,CAFlB,cAAe,CACf,WAoEA,CAhED,sDAOC,qBAAiC,CACjC,iBAAkB,CALlB,qBAAsB,CACtB,UAAW,CAHX,aAAc,CAKd,WAAY,CAJZ,iBAAkB,CAOlB,sCAAwC,CAJxC,UASD,CAHC,uCAXD,sDAYE,eAEF,CADC,CAGD,qDAaC,wBAAyB,CADzB,kBAAmB,CAEnB,sGAA+G,CAX/G,sBAAuB,CAEvB,UAAW,CAJX,aAAc,CAUd,mDAAwD,CAHxD,+CAAoD,CAJpD,mBAAoB,CAFpB,iBAAkB,CAOlB,gDAAqD,CAMrD,uBAAwB,CALxB,kDAMD,CAGC,+DACC,kBAA8B,CAC9B,oBACD,CAEA,8DACC,iBACD,CAwBA,wEACC,qBACD,CAEA,mGACC,iBACD,CAYD,kKAEC,cAKD,CAHC,4LACC,mCACD,CAMD,+FAxHA,uBAAwB,CAQxB,QAAS,CAPT,oBAAqB,CAGrB,yCAA0C,CAO1C,UAAW,CAGX,aAAc,CAFd,kBAAmB,CAVnB,iBAAkB,CAWlB,OAAQ,CARR,qBAAsB,CAFtB,wCAuHA,CAFA,wGAtGC,MAAO,CAGP,iBAAkB,CAFlB,cAAe,CACf,WAsGD,CAlGA,sGAOC,qBAAiC,CACjC,iBAAkB,CALlB,qBAAsB,CACtB,UAAW,CAHX,aAAc,CAKd,WAAY,CAJZ,iBAAkB,CAOlB,sCAAwC,CAJxC,UASD,CAHC,uCAXD,sGAYE,eAEF,CADC,CAGD,qGAaC,wBAAyB,CADzB,kBAAmB,CAEnB,sGAA+G,CAX/G,sBAAuB,CAEvB,UAAW,CAJX,aAAc,CAUd,mDAAwD,CAHxD,+CAAoD,CAJpD,mBAAoB,CAFpB,iBAAkB,CAOlB,gDAAqD,CAMrD,uBAAwB,CALxB,kDAMD,CAGC,+GACC,kBAA8B,CAC9B,oBACD,CAEA,8GACC,iBACD,CA2DA,uHACC,iBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-todo-list-checkmark-size: 16px;\\n}\\n\\n@define-mixin todo-list-checkbox {\\n\\t-webkit-appearance: none;\\n\\tdisplay: inline-block;\\n\\tposition: relative;\\n\\twidth: var(--ck-todo-list-checkmark-size);\\n\\theight: var(--ck-todo-list-checkmark-size);\\n\\tvertical-align: middle;\\n\\n\\t/* Needed on iOS */\\n\\tborder: 0;\\n\\n\\t/* LTR styles */\\n\\tleft: -25px;\\n\\tmargin-right: -15px;\\n\\tright: 0;\\n\\tmargin-left: 0;\\n\\n\\t/* RTL styles */\\n\\t@nest [dir=rtl]& {\\n\\t\\tleft: 0;\\n\\t\\tmargin-right: 0;\\n\\t\\tright: -25px;\\n\\t\\tmargin-left: -15px;\\n\\t}\\n\\n\\t&::before {\\n\\t\\tdisplay: block;\\n\\t\\tposition: absolute;\\n\\t\\tbox-sizing: border-box;\\n\\t\\tcontent: '';\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\t\\tborder: 1px solid hsl(0, 0%, 20%);\\n\\t\\tborder-radius: 2px;\\n\\t\\ttransition: 250ms ease-in-out box-shadow;\\n\\n\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\ttransition: none;\\n\\t\\t}\\n\\t}\\n\\n\\t&::after {\\n\\t\\tdisplay: block;\\n\\t\\tposition: absolute;\\n\\t\\tbox-sizing: content-box;\\n\\t\\tpointer-events: none;\\n\\t\\tcontent: '';\\n\\n\\t\\t/* Calculate tick position, size and border-width proportional to the checkmark size. */\\n\\t\\tleft: calc( var(--ck-todo-list-checkmark-size) / 3 );\\n\\t\\ttop: calc( var(--ck-todo-list-checkmark-size) / 5.3 );\\n\\t\\twidth: calc( var(--ck-todo-list-checkmark-size) / 5.3 );\\n\\t\\theight: calc( var(--ck-todo-list-checkmark-size) / 2.6 );\\n\\t\\tborder-style: solid;\\n\\t\\tborder-color: transparent;\\n\\t\\tborder-width: 0 calc( var(--ck-todo-list-checkmark-size) / 8 ) calc( var(--ck-todo-list-checkmark-size) / 8 ) 0;\\n\\t\\ttransform: rotate(45deg);\\n\\t}\\n\\n\\t&[checked] {\\n\\t\\t&::before {\\n\\t\\t\\tbackground: hsl(126, 64%, 41%);\\n\\t\\t\\tborder-color: hsl(126, 64%, 41%);\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: hsl(0, 0%, 100%);\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * To-do list content styles.\\n */\\n.ck-content .todo-list {\\n\\tlist-style: none;\\n\\n\\t& li {\\n\\t\\tposition: relative;\\n\\t\\tmargin-bottom: 5px;\\n\\n\\t\\t& .todo-list {\\n\\t\\t\\tmargin-top: 5px;\\n\\t\\t}\\n\\t}\\n\\n\\t& .todo-list__label {\\n\\t\\t& > input {\\n\\t\\t\\t@mixin todo-list-checkbox;\\n\\t\\t}\\n\\n\\t\\t& .todo-list__label__description {\\n\\t\\t\\tvertical-align: middle;\\n\\t\\t}\\n\\n\\t\\t&.todo-list__label_without-description input[type=checkbox] {\\n\\t\\t\\tposition: absolute;\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * To-do list editing view styles.\\n */\\n.ck-editor__editable.ck-content .todo-list .todo-list__label {\\n\\t/*\\n\\t * To-do list should be interactive only during the editing\\n\\t * (https://github.com/ckeditor/ckeditor5/issues/2090).\\n\\t */\\n\\t& > input,\\n\\t& > span[contenteditable=false] > input {\\n\\t\\tcursor: pointer;\\n\\n\\t\\t&:hover::before {\\n\\t\\t\\tbox-shadow: 0 0 0 5px hsla(0, 0%, 0%, 0.1);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Document Lists - editing view has an additional span around checkbox.\\n\\t */\\n\\t& > span[contenteditable=false] > input {\\n\\t\\t@mixin todo-list-checkbox;\\n\\t}\\n\\n\\t&.todo-list__label_without-description {\\n\\t\\t& input[type=checkbox] {\\n\\t\\t\\tposition: absolute;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-character-grid{max-width:100%}.ck.ck-character-grid .ck-character-grid__tiles{display:grid}:root{--ck-character-grid-tile-size:24px}.ck.ck-character-grid{max-height:200px;overflow-x:hidden;overflow-y:auto;width:350px}@media screen and (max-width:600px){.ck.ck-character-grid{width:190px}}.ck.ck-character-grid .ck-character-grid__tiles{grid-template-columns:repeat(10,1fr);margin:var(--ck-spacing-standard) var(--ck-spacing-large);grid-gap:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-character-grid .ck-character-grid__tiles{grid-template-columns:repeat(5,1fr)}}.ck.ck-character-grid .ck-character-grid__tile{border:0;font-size:1.2em;height:var(--ck-character-grid-tile-size);min-height:var(--ck-character-grid-tile-size);min-width:var(--ck-character-grid-tile-size);padding:0;transition:box-shadow .2s ease;width:var(--ck-character-grid-tile-size)}@media (prefers-reduced-motion:reduce){.ck.ck-character-grid .ck-character-grid__tile{transition:none}}.ck.ck-character-grid .ck-character-grid__tile:focus:not(.ck-disabled),.ck.ck-character-grid .ck-character-grid__tile:hover:not(.ck-disabled){border:0;box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}.ck.ck-character-grid .ck-character-grid__tile .ck-button__label{line-height:var(--ck-character-grid-tile-size);text-align:center;width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-special-characters/theme/charactergrid.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-special-characters/charactergrid.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_rwd.css\"],\"names\":[],\"mappings\":\"AAKA,sBACC,cAKD,CAHC,gDACC,YACD,CCFD,MACC,kCACD,CAEA,sBAIC,gBAAiB,CAFjB,iBAAkB,CADlB,eAAgB,CAEhB,WA6CD,CCtDC,oCDMD,sBAOE,WAyCF,CCpDC,CDcA,gDACC,oCAAsC,CACtC,yDAA0D,CAC1D,mCAKD,CCxBA,oCDgBA,gDAME,mCAEF,CCtBA,CDwBA,+CAQC,QAAS,CAHT,eAAgB,CAHhB,yCAA0C,CAE1C,6CAA8C,CAD9C,4CAA6C,CAG7C,SAAU,CACV,8BAA+B,CAN/B,wCA0BD,CAjBC,uCAVD,+CAWE,eAgBF,CAfC,CAEA,8IAGC,QAAS,CACT,iGACD,CAGA,iEACC,8CAA+C,CAE/C,iBAAkB,CADlB,UAED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-character-grid {\\n\\tmax-width: 100%;\\n\\n\\t& .ck-character-grid__tiles {\\n\\t\\tdisplay: grid;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n@import \\\"../mixins/_rounded.css\\\";\\n\\n:root {\\n\\t--ck-character-grid-tile-size: 24px;\\n}\\n\\n.ck.ck-character-grid {\\n\\toverflow-y: auto;\\n\\toverflow-x: hidden;\\n\\twidth: 350px;\\n\\tmax-height: 200px;\\n\\n\\t@mixin ck-media-phone {\\n\\t\\twidth: 190px;\\n\\t}\\n\\n\\t& .ck-character-grid__tiles {\\n\\t\\tgrid-template-columns: repeat(10, 1fr);\\n\\t\\tmargin: var(--ck-spacing-standard) var(--ck-spacing-large);\\n\\t\\tgrid-gap: var(--ck-spacing-standard);\\n\\n\\t\\t@mixin ck-media-phone {\\n\\t\\t\\tgrid-template-columns: repeat(5, 1fr);\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-character-grid__tile {\\n\\t\\twidth: var(--ck-character-grid-tile-size);\\n\\t\\theight: var(--ck-character-grid-tile-size);\\n\\t\\tmin-width: var(--ck-character-grid-tile-size);\\n\\t\\tmin-height: var(--ck-character-grid-tile-size);\\n\\t\\tfont-size: 1.2em;\\n\\t\\tpadding: 0;\\n\\t\\ttransition: .2s ease box-shadow;\\n\\t\\tborder: 0;\\n\\n\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\ttransition: none;\\n\\t\\t}\\n\\n\\t\\t&:focus:not( .ck-disabled ),\\n\\t\\t&:hover:not( .ck-disabled ) {\\n\\t\\t\\t/* Disable the default .ck-button's border ring. */\\n\\t\\t\\tborder: 0;\\n\\t\\t\\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);\\n\\t\\t}\\n\\n\\t\\t/* Make sure the glyph is rendered in the center of the button */\\n\\t\\t& .ck-button__label {\\n\\t\\t\\tline-height: var(--ck-character-grid-tile-size);\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\ttext-align: center;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-character-info{border-top:1px solid var(--ck-color-base-border);display:flex;justify-content:space-between;padding:var(--ck-spacing-small) var(--ck-spacing-large)}.ck.ck-character-info>*{font-size:var(--ck-font-size-small);text-transform:uppercase}.ck.ck-character-info .ck-character-info__name{max-width:280px;overflow:hidden;text-overflow:ellipsis}.ck.ck-character-info .ck-character-info__code{opacity:.6}@media screen and (max-width:600px){.ck.ck-character-info{max-width:190px}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-special-characters/theme/characterinfo.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-special-characters/characterinfo.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_rwd.css\"],\"names\":[],\"mappings\":\"AAKA,sBCIC,gDAAiD,CDHjD,YAAa,CACb,6BAA8B,CCC9B,uDDAD,CCGC,wBAEC,mCAAoC,CADpC,wBAED,CAEA,+CACC,eAAgB,CAEhB,eAAgB,CADhB,sBAED,CAEA,+CACC,UACD,CClBA,oCDCD,sBAoBE,eAEF,CCrBC\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-character-info {\\n\\tdisplay: flex;\\n\\tjustify-content: space-between;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-character-info {\\n\\tpadding: var(--ck-spacing-small) var(--ck-spacing-large);\\n\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\n\\t& > * {\\n\\t\\ttext-transform: uppercase;\\n\\t\\tfont-size: var(--ck-font-size-small);\\n\\t}\\n\\n\\t& .ck-character-info__name {\\n\\t\\tmax-width: 280px;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t}\\n\\n\\t& .ck-character-info__code {\\n\\t\\topacity: .6;\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tmax-width: 190px;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-special-characters-navigation>.ck-label{max-width:160px;overflow:hidden;text-overflow:ellipsis}.ck.ck-special-characters-navigation>.ck-dropdown .ck-dropdown__panel{max-height:250px;overflow-x:hidden;overflow-y:auto}@media screen and (max-width:600px){.ck.ck-special-characters-navigation{max-width:190px}.ck.ck-special-characters-navigation>.ck-form__header__label{overflow:hidden;text-overflow:ellipsis}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-special-characters/specialcharacters.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_rwd.css\"],\"names\":[],\"mappings\":\"AAUC,+CACC,eAAgB,CAEhB,eAAgB,CADhB,sBAED,CAEA,sEAEC,gBAAiB,CAEjB,iBAAkB,CADlB,eAED,CCfA,oCDED,qCAgBE,eAOF,CALE,6DAEC,eAAgB,CADhB,sBAED,CCrBD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck.ck-special-characters-navigation {\\n\\n\\t& > .ck-label {\\n\\t\\tmax-width: 160px;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t}\\n\\n\\t& > .ck-dropdown .ck-dropdown__panel {\\n\\t\\t/* There could be dozens of categories available. Use scroll to prevent a 10e6px dropdown. */\\n\\t\\tmax-height: 250px;\\n\\t\\toverflow-y: auto;\\n\\t\\toverflow-x: hidden;\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tmax-width: 190px;\\n\\n\\t\\t& > .ck-form__header__label {\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-input-color{display:flex;flex-direction:row-reverse;width:100%}.ck.ck-input-color>input.ck.ck-input-text{flex-grow:1;min-width:auto}.ck.ck-input-color>div.ck.ck-dropdown{min-width:auto}.ck.ck-input-color>div.ck.ck-dropdown>.ck-input-color__button .ck-dropdown__arrow{display:none}.ck.ck-input-color .ck.ck-input-color__button{display:flex}.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview{overflow:hidden;position:relative}.ck.ck-input-color .ck.ck-input-color__button .ck.ck-input-color__button__preview>.ck.ck-input-color__button__preview__no-color-indicator{display:block;position:absolute}[dir=ltr] .ck.ck-input-color>.ck.ck-input-text{border-bottom-right-radius:0;border-top-right-radius:0}[dir=rtl] .ck.ck-input-color>.ck.ck-input-text{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-input-color>.ck.ck-input-text:focus{z-index:0}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{padding:0}[dir=ltr] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{border-bottom-left-radius:0;border-top-left-radius:0}[dir=ltr] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button:not(:focus){border-left:1px solid transparent}[dir=rtl] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button{border-bottom-right-radius:0;border-top-right-radius:0}[dir=rtl] .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button:not(:focus){border-right:1px solid transparent}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button.ck-disabled{background:var(--ck-color-input-disabled-background)}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview{border-radius:0}.ck-rounded-corners .ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview,.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview{border:1px solid var(--ck-color-input-border);height:20px;width:20px}.ck.ck-input-color>.ck.ck-dropdown>.ck.ck-button.ck-input-color__button>.ck.ck-input-color__button__preview>.ck.ck-input-color__button__preview__no-color-indicator{background:red;border-radius:2px;height:150%;left:50%;top:-30%;transform:rotate(45deg);transform-origin:50%;width:8%}.ck.ck-input-color .ck.ck-input-color__remove-color{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(var(--ck-spacing-standard)/2) var(--ck-spacing-standard);width:100%}.ck.ck-input-color .ck.ck-input-color__remove-color:not(:focus){border-bottom:1px solid var(--ck-color-input-border)}[dir=ltr] .ck.ck-input-color .ck.ck-input-color__remove-color{border-top-right-radius:0}[dir=rtl] .ck.ck-input-color .ck.ck-input-color__remove-color{border-top-left-radius:0}.ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-input-color .ck.ck-input-color__remove-color .ck.ck-icon{margin-left:var(--ck-spacing-standard);margin-right:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-table/theme/colorinput.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/colorinput.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAKA,mBAEC,YAAa,CACb,0BAA2B,CAF3B,UAgCD,CA5BC,0CAEC,WAAY,CADZ,cAED,CAEA,sCACC,cAMD,CAHC,kFACC,YACD,CAGD,8CAEC,YAWD,CATC,kFAEC,eAAgB,CADhB,iBAOD,CAJC,0IAEC,aAAc,CADd,iBAED,CC1BF,+CAGE,4BAA6B,CAD7B,yBAcF,CAhBA,+CAQE,2BAA4B,CAD5B,wBASF,CAHC,2CACC,SACD,CAIA,wEACC,SA0CD,CA3CA,kFAKE,2BAA4B,CAD5B,wBAuCF,CApCE,8FACC,iCACD,CATF,kFAcE,4BAA6B,CAD7B,yBA8BF,CA3BE,8FACC,kCACD,CAGD,oFACC,oDACD,CAEA,4GC1CF,eD2DE,CAjBA,+PCtCD,qCDuDC,CAjBA,4GAKC,6CAA8C,CAD9C,WAAY,CADZ,UAcD,CAVC,oKAKC,cAA6B,CAC7B,iBAAkB,CAHlB,WAAY,CADZ,QAAS,CADT,QAAS,CAMT,uBAAwB,CACxB,oBAAqB,CAJrB,QAKD,CAKH,oDAIC,2BAA4B,CAC5B,4BAA6B,CAH7B,qEAAwE,CADxE,UA0BD,CApBC,gEACC,oDACD,CATD,8DAYE,yBAeF,CA3BA,8DAgBE,wBAWF,CARC,gEACC,uCAMD,CAPA,0EAKE,sCAAuC,CADvC,cAGF\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-input-color {\\n\\twidth: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: row-reverse;\\n\\n\\t& > input.ck.ck-input-text {\\n\\t\\tmin-width: auto;\\n\\t\\tflex-grow: 1;\\n\\t}\\n\\n\\t& > div.ck.ck-dropdown {\\n\\t\\tmin-width: auto;\\n\\n\\t\\t/* This dropdown has no arrow but a color preview instead. */\\n\\t\\t& > .ck-input-color__button .ck-dropdown__arrow {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-input-color__button {\\n\\t\\t/* Resolving issue with misaligned buttons on Safari (see #10589) */\\n\\t\\tdisplay: flex;\\n\\n\\t\\t& .ck.ck-input-color__button__preview {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\toverflow: hidden;\\n\\n\\t\\t\\t& > .ck.ck-input-color__button__preview__no-color-indicator {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n@import \\\"../mixins/_rounded.css\\\";\\n\\n.ck.ck-input-color {\\n\\t& > .ck.ck-input-text {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t}\\n\\n\\t\\t/* Make sure the focused input is always on top of the dropdown button so its\\n\\t\\t outline and border are never cropped (also when the input is read-only). */\\n\\t\\t&:focus {\\n\\t\\t\\tz-index: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck.ck-dropdown {\\n\\t\\t& > .ck.ck-button.ck-input-color__button {\\n\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\t\\tborder-bottom-left-radius: 0;\\n\\n\\t\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\t\\tborder-left: 1px solid transparent;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\t\\tborder-bottom-right-radius: 0;\\n\\n\\t\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\t\\tborder-right: 1px solid transparent;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&.ck-disabled {\\n\\t\\t\\t\\tbackground: var(--ck-color-input-disabled-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > .ck.ck-input-color__button__preview {\\n\\t\\t\\t\\t@mixin ck-rounded-corners;\\n\\n\\t\\t\\t\\twidth: 20px;\\n\\t\\t\\t\\theight: 20px;\\n\\t\\t\\t\\tborder: 1px solid var(--ck-color-input-border);\\n\\n\\t\\t\\t\\t& > .ck.ck-input-color__button__preview__no-color-indicator {\\n\\t\\t\\t\\t\\ttop: -30%;\\n\\t\\t\\t\\t\\tleft: 50%;\\n\\t\\t\\t\\t\\theight: 150%;\\n\\t\\t\\t\\t\\twidth: 8%;\\n\\t\\t\\t\\t\\tbackground: hsl(0, 100%, 50%);\\n\\t\\t\\t\\t\\tborder-radius: 2px;\\n\\t\\t\\t\\t\\ttransform: rotate(45deg);\\n\\t\\t\\t\\t\\ttransform-origin: 50%;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-input-color__remove-color {\\n\\t\\twidth: 100%;\\n\\t\\tpadding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);\\n\\n\\t\\tborder-bottom-left-radius: 0;\\n\\t\\tborder-bottom-right-radius: 0;\\n\\n\\t\\t&:not(:focus) {\\n\\t\\t\\tborder-bottom: 1px solid var(--ck-color-input-border);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t}\\n\\n\\t\\t& .ck.ck-icon {\\n\\t\\t\\tmargin-right: var(--ck-spacing-standard);\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-right: 0;\\n\\t\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-form{padding:0 0 var(--ck-spacing-large)}.ck.ck-form:focus{outline:none}.ck.ck-form .ck.ck-input-text{min-width:100%;width:0}.ck.ck-form .ck.ck-dropdown{min-width:100%}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button:not(:focus){border:1px solid var(--ck-color-base-border)}.ck.ck-form .ck.ck-dropdown .ck-dropdown__button .ck-button__label{width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/form.css\"],\"names\":[],\"mappings\":\"AAKA,YACC,mCAyBD,CAvBC,kBAEC,YACD,CAEA,8BACC,cAAe,CACf,OACD,CAEA,4BACC,cAWD,CARE,6DACC,4CACD,CAEA,mEACC,UACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-form {\\n\\tpadding: 0 0 var(--ck-spacing-large);\\n\\n\\t&:focus {\\n\\t\\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t& .ck.ck-input-text {\\n\\t\\tmin-width: 100%;\\n\\t\\twidth: 0;\\n\\t}\\n\\n\\t& .ck.ck-dropdown {\\n\\t\\tmin-width: 100%;\\n\\n\\t\\t& .ck-dropdown__button {\\n\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\tborder: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-button__label {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-form__row{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}.ck.ck-form__row>:not(.ck-label){flex-grow:1}.ck.ck-form__row.ck-table-form__action-row .ck-button-cancel,.ck.ck-form__row.ck-table-form__action-row .ck-button-save{justify-content:center}.ck.ck-form__row{padding:var(--ck-spacing-standard) var(--ck-spacing-large) 0}[dir=ltr] .ck.ck-form__row>:not(.ck-label)+*{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-form__row>:not(.ck-label)+*{margin-right:var(--ck-spacing-large)}.ck.ck-form__row>.ck-label{min-width:100%;width:100%}.ck.ck-form__row.ck-table-form__action-row{margin-top:var(--ck-spacing-large)}.ck.ck-form__row.ck-table-form__action-row .ck-button .ck-button__label{color:var(--ck-color-text)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-table/theme/formrow.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/formrow.css\"],\"names\":[],\"mappings\":\"AAKA,iBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAaD,CAVC,iCACC,WACD,CAGC,wHAEC,sBACD,CCbF,iBACC,4DA2BD,CAvBE,6CAEE,mCAMF,CARA,6CAME,oCAEF,CAGD,2BAEC,cAAe,CADf,UAED,CAEA,2CACC,kCAKD,CAHC,wEACC,0BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-form__row {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\tjustify-content: space-between;\\n\\n\\t/* Ignore labels that work as fieldset legends */\\n\\t& > *:not(.ck-label) {\\n\\t\\tflex-grow: 1;\\n\\t}\\n\\n\\t&.ck-table-form__action-row {\\n\\t\\t& .ck-button-save,\\n\\t\\t& .ck-button-cancel {\\n\\t\\t\\tjustify-content: center;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-form__row {\\n\\tpadding: var(--ck-spacing-standard) var(--ck-spacing-large) 0;\\n\\n\\t/* Ignore labels that work as fieldset legends */\\n\\t& > *:not(.ck-label) {\\n\\t\\t& + * {\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tmargin-left: var(--ck-spacing-large);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-right: var(--ck-spacing-large);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-label {\\n\\t\\twidth: 100%;\\n\\t\\tmin-width: 100%;\\n\\t}\\n\\n\\t&.ck-table-form__action-row {\\n\\t\\tmargin-top: var(--ck-spacing-large);\\n\\n\\t\\t& .ck-button .ck-button__label {\\n\\t\\t\\tcolor: var(--ck-color-text);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-insert-table-dropdown__grid{display:flex;flex-direction:row;flex-wrap:wrap}:root{--ck-insert-table-dropdown-padding:10px;--ck-insert-table-dropdown-box-height:11px;--ck-insert-table-dropdown-box-width:12px;--ck-insert-table-dropdown-box-margin:1px}.ck .ck-insert-table-dropdown__grid{padding:var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;width:calc(var(--ck-insert-table-dropdown-box-width)*10 + var(--ck-insert-table-dropdown-box-margin)*20 + var(--ck-insert-table-dropdown-padding)*2)}.ck .ck-insert-table-dropdown__label,.ck[dir=rtl] .ck-insert-table-dropdown__label{text-align:center}.ck .ck-insert-table-dropdown-grid-box{border:1px solid var(--ck-color-base-border);border-radius:1px;margin:var(--ck-insert-table-dropdown-box-margin);min-height:var(--ck-insert-table-dropdown-box-height);min-width:var(--ck-insert-table-dropdown-box-width);outline:none;transition:none}@media (prefers-reduced-motion:reduce){.ck .ck-insert-table-dropdown-grid-box{transition:none}}.ck .ck-insert-table-dropdown-grid-box:focus{box-shadow:none}.ck .ck-insert-table-dropdown-grid-box.ck-on{background:var(--ck-color-focus-outer-shadow);border-color:var(--ck-color-focus-border)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-table/theme/inserttable.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/inserttable.css\"],\"names\":[],\"mappings\":\"AAKA,oCACC,YAAa,CACb,kBAAmB,CACnB,cACD,CCJA,MACC,uCAAwC,CACxC,0CAA2C,CAC3C,yCAA0C,CAC1C,yCACD,CAEA,oCAGC,yFAA0F,CAD1F,oJAED,CAEA,mFAEC,iBACD,CAEA,uCAIC,4CAA6C,CAC7C,iBAAkB,CAFlB,iDAAkD,CADlD,qDAAsD,CADtD,mDAAoD,CAKpD,YAAa,CACb,eAcD,CAZC,uCATD,uCAUE,eAWF,CAVC,CAEA,6CACC,eACD,CAEA,6CAEC,6CAA8C,CAD9C,yCAED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-insert-table-dropdown__grid {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: wrap;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-insert-table-dropdown-padding: 10px;\\n\\t--ck-insert-table-dropdown-box-height: 11px;\\n\\t--ck-insert-table-dropdown-box-width: 12px;\\n\\t--ck-insert-table-dropdown-box-margin: 1px;\\n}\\n\\n.ck .ck-insert-table-dropdown__grid {\\n\\t/* The width of a container should match 10 items in a row so there will be a 10x10 grid. */\\n\\twidth: calc(var(--ck-insert-table-dropdown-box-width) * 10 + var(--ck-insert-table-dropdown-box-margin) * 20 + var(--ck-insert-table-dropdown-padding) * 2);\\n\\tpadding: var(--ck-insert-table-dropdown-padding) var(--ck-insert-table-dropdown-padding) 0;\\n}\\n\\n.ck .ck-insert-table-dropdown__label,\\n.ck[dir=rtl] .ck-insert-table-dropdown__label {\\n\\ttext-align: center;\\n}\\n\\n.ck .ck-insert-table-dropdown-grid-box {\\n\\tmin-width: var(--ck-insert-table-dropdown-box-width);\\n\\tmin-height: var(--ck-insert-table-dropdown-box-height);\\n\\tmargin: var(--ck-insert-table-dropdown-box-margin);\\n\\tborder: 1px solid var(--ck-color-base-border);\\n\\tborder-radius: 1px;\\n\\toutline: none;\\n\\ttransition: none;\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t&:focus {\\n\\t\\tbox-shadow: none;\\n\\t}\\n\\n\\t&.ck-on {\\n\\t\\tborder-color: var(--ck-color-focus-border);\\n\\t\\tbackground: var(--ck-color-focus-outer-shadow);\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-content .table{display:table;margin:.9em auto}.ck-content .table table{border:1px double #b3b3b3;border-collapse:collapse;border-spacing:0;height:100%;width:100%}.ck-content .table table td,.ck-content .table table th{border:1px solid #bfbfbf;min-width:2em;padding:.4em}.ck-content .table table th{background:rgba(0,0,0,.05);font-weight:700}.ck-content[dir=rtl] .table th{text-align:right}.ck-content[dir=ltr] .table th{text-align:left}.ck-editor__editable .ck-table-bogus-paragraph{display:inline-block;width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-table/theme/table.css\"],\"names\":[],\"mappings\":\"AAKA,mBAKC,aAAc,CADd,gBAiCD,CA9BC,yBAYC,yBAAkC,CAVlC,wBAAyB,CACzB,gBAAiB,CAKjB,WAAY,CADZ,UAsBD,CAfC,wDAQC,wBAAiC,CANjC,aAAc,CACd,YAMD,CAEA,4BAEC,0BAA+B,CAD/B,eAED,CAMF,+BACC,gBACD,CAEA,+BACC,eACD,CAEA,+CAKC,oBAAqB,CAMrB,UACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck-content .table {\\n\\t/* Give the table widget some air and center it horizontally */\\n\\t/* The first value should be equal to --ck-spacing-large variable if used in the editor context\\n\\tto avoid the content jumping (See https://github.com/ckeditor/ckeditor5/issues/9825). */\\n\\tmargin: 0.9em auto;\\n\\tdisplay: table;\\n\\n\\t& table {\\n\\t\\t/* The table cells should have slight borders */\\n\\t\\tborder-collapse: collapse;\\n\\t\\tborder-spacing: 0;\\n\\n\\t\\t/* Table width and height are set on the parent
. Make sure the table inside stretches\\n\\t\\tto the full dimensions of the container (https://github.com/ckeditor/ckeditor5/issues/6186). */\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\n\\t\\t/* The outer border of the table should be slightly darker than the inner lines.\\n\\t\\tAlso see https://github.com/ckeditor/ckeditor5-table/issues/50. */\\n\\t\\tborder: 1px double hsl(0, 0%, 70%);\\n\\n\\t\\t& td,\\n\\t\\t& th {\\n\\t\\t\\tmin-width: 2em;\\n\\t\\t\\tpadding: .4em;\\n\\n\\t\\t\\t/* The border is inherited from .ck-editor__nested-editable styles, so theoretically it's not necessary here.\\n\\t\\t\\tHowever, the border is a content style, so it should use .ck-content (so it works outside the editor).\\n\\t\\t\\tHence, the duplication. See https://github.com/ckeditor/ckeditor5/issues/6314 */\\n\\t\\t\\tborder: 1px solid hsl(0, 0%, 75%);\\n\\t\\t}\\n\\n\\t\\t& th {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tbackground: hsla(0, 0%, 0%, 5%);\\n\\t\\t}\\n\\t}\\n}\\n\\n/* Text alignment of the table header should match the editor settings and override the native browser styling,\\nwhen content is available outside the editor. See https://github.com/ckeditor/ckeditor5/issues/6638 */\\n.ck-content[dir=\\\"rtl\\\"] .table th {\\n\\ttext-align: right;\\n}\\n\\n.ck-content[dir=\\\"ltr\\\"] .table th {\\n\\ttext-align: left;\\n}\\n\\n.ck-editor__editable .ck-table-bogus-paragraph {\\n\\t/*\\n\\t * Use display:inline-block to force Chrome/Safari to limit text mutations to this element.\\n\\t * See https://github.com/ckeditor/ckeditor5/issues/6062.\\n\\t */\\n\\tdisplay: inline-block;\\n\\n\\t/*\\n\\t * Inline HTML elements nested in the span should always be dimensioned in relation to the whole cell width.\\n\\t * See https://github.com/ckeditor/ckeditor5/issues/9117.\\n\\t */\\n\\twidth: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-color-selector-caption-background:#f7f7f7;--ck-color-selector-caption-text:#333;--ck-color-selector-caption-highlighted-background:#fd0}.ck-content .table>figcaption{background-color:var(--ck-color-selector-caption-background);caption-side:top;color:var(--ck-color-selector-caption-text);display:table-caption;font-size:.75em;outline-offset:-1px;padding:.6em;text-align:center;word-break:break-word}@media (forced-colors:active){.ck-content .table>figcaption{background-color:unset;color:unset}}@media (forced-colors:none){.ck.ck-editor__editable .table>figcaption.table__caption_highlighted{animation:ck-table-caption-highlight .6s ease-out}}.ck.ck-editor__editable .table>figcaption.ck-placeholder:before{overflow:hidden;padding-left:inherit;padding-right:inherit;text-overflow:ellipsis;white-space:nowrap}@keyframes ck-table-caption-highlight{0%{background-color:var(--ck-color-selector-caption-highlighted-background)}to{background-color:var(--ck-color-selector-caption-background)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-table/theme/tablecaption.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css\"],\"names\":[],\"mappings\":\"AAOA,MACC,8CAAuD,CACvD,qCAAiD,CACjD,uDACD,CAGA,8BAMC,4DAA6D,CAJ7D,gBAAiB,CAGjB,2CAA4C,CAJ5C,qBAAsB,CAOtB,eAAgB,CAChB,mBAAoB,CAFpB,YAAa,CAHb,iBAAkB,CADlB,qBAaD,CCxBC,8BACC,8BDoBA,sBAAuB,CACvB,WCnBA,CACD,CAIA,4BDqBC,qEACC,iDACD,CCnBD,CDsBA,gEASC,eAAgB,CARhB,oBAAqB,CACrB,qBAAsB,CAQtB,sBAAuB,CAFvB,kBAGD,CAGD,sCACC,GACC,wEACD,CAEA,GACC,4DACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\\\";\\n\\n:root {\\n\\t--ck-color-selector-caption-background: hsl(0, 0%, 97%);\\n\\t--ck-color-selector-caption-text: hsl(0, 0%, 20%);\\n\\t--ck-color-selector-caption-highlighted-background: hsl(52deg 100% 50%);\\n}\\n\\n/* Content styles */\\n.ck-content .table > figcaption {\\n\\tdisplay: table-caption;\\n\\tcaption-side: top;\\n\\tword-break: break-word;\\n\\ttext-align: center;\\n\\tcolor: var(--ck-color-selector-caption-text);\\n\\tbackground-color: var(--ck-color-selector-caption-background);\\n\\tpadding: .6em;\\n\\tfont-size: .75em;\\n\\toutline-offset: -1px;\\n\\n\\t/* Improve placeholder rendering in high-constrast mode (https://github.com/ckeditor/ckeditor5/issues/14907). */\\n\\t@mixin ck-media-forced-colors {\\n\\t\\tbackground-color: unset;\\n\\t\\tcolor: unset;\\n\\t}\\n}\\n\\n/* Editing styles */\\n.ck.ck-editor__editable .table > figcaption {\\n\\t@mixin ck-media-default-colors {\\n\\t\\t&.table__caption_highlighted {\\n\\t\\t\\tanimation: ck-table-caption-highlight .6s ease-out;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-placeholder::before {\\n\\t\\tpadding-left: inherit;\\n\\t\\tpadding-right: inherit;\\n\\n\\t\\t/*\\n\\t\\t * Make sure the table caption placeholder doesn't overflow the placeholder area.\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/9162.\\n\\t\\t */\\n\\t\\twhite-space: nowrap;\\n\\t\\toverflow: hidden;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n}\\n\\n@keyframes ck-table-caption-highlight {\\n\\t0% {\\n\\t\\tbackground-color: var(--ck-color-selector-caption-highlighted-background);\\n\\t}\\n\\n\\t100% {\\n\\t\\tbackground-color: var(--ck-color-selector-caption-background);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-forced-colors {\\n\\t@media (forced-colors: active) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\\n@define-mixin ck-media-default-colors {\\n\\t@media (forced-colors: none) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row{flex-wrap:wrap}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:first-of-type{flex-grow:0.57}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar:last-of-type{flex-grow:0.43}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar .ck-button{flex-grow:1}.ck.ck-table-cell-properties-form{width:320px}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__padding-row{align-self:flex-end;padding:0;width:25%}.ck.ck-table-cell-properties-form .ck-form__row.ck-table-cell-properties-form__alignment-row .ck.ck-toolbar{background:none;margin-top:var(--ck-spacing-standard)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-table/theme/tablecellproperties.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tablecellproperties.css\"],\"names\":[],\"mappings\":\"AAOE,6FACC,cAiBD,CAdE,0HAEC,cACD,CAEA,yHAEC,cACD,CAEA,uHACC,WACD,CClBJ,kCACC,WAkBD,CAfE,2FACC,mBAAoB,CACpB,SAAU,CACV,SACD,CAGC,4GACC,eAAgB,CAGhB,qCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-table-cell-properties-form {\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-cell-properties-form__alignment-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\n\\t\\t\\t& .ck.ck-toolbar {\\n\\t\\t\\t\\t&:first-of-type {\\n\\t\\t\\t\\t\\t/* 4 buttons out of 7 (h-alignment + v-alignment) = 0.57 */\\n\\t\\t\\t\\t\\tflex-grow: 0.57;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&:last-of-type {\\n\\t\\t\\t\\t\\t/* 3 buttons out of 7 (h-alignment + v-alignment) = 0.43 */\\n\\t\\t\\t\\t\\tflex-grow: 0.43;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t& .ck-button {\\n\\t\\t\\t\\t\\tflex-grow: 1;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-table-cell-properties-form {\\n\\twidth: 320px;\\n\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-cell-properties-form__padding-row {\\n\\t\\t\\talign-self: flex-end;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\twidth: 25%;\\n\\t\\t}\\n\\n\\t\\t&.ck-table-cell-properties-form__alignment-row {\\n\\t\\t\\t& .ck.ck-toolbar {\\n\\t\\t\\t\\tbackground: none;\\n\\n\\t\\t\\t\\t/* Compensate for missing input label that would push the margin (toolbar has no inputs). */\\n\\t\\t\\t\\tmargin-top: var(--ck-spacing-standard);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-color-selector-column-resizer-hover:var(--ck-color-base-active);--ck-table-column-resizer-width:7px;--ck-table-column-resizer-position-offset:calc(var(--ck-table-column-resizer-width)*-0.5 - 0.5px)}.ck-content .table .ck-table-resized{table-layout:fixed}.ck-content .table table{overflow:hidden}.ck-content .table td,.ck-content .table th{overflow-wrap:break-word;position:relative}.ck.ck-editor__editable .table .ck-table-column-resizer{bottom:0;cursor:col-resize;position:absolute;right:var(--ck-table-column-resizer-position-offset);top:0;user-select:none;width:var(--ck-table-column-resizer-width);z-index:var(--ck-z-default)}.ck.ck-editor__editable .table[draggable] .ck-table-column-resizer,.ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer{display:none}.ck.ck-editor__editable .table .ck-table-column-resizer:hover,.ck.ck-editor__editable .table .ck-table-column-resizer__active{background-color:var(--ck-color-selector-column-resizer-hover);bottom:-999999px;opacity:.25;top:-999999px}.ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer{left:var(--ck-table-column-resizer-position-offset);right:unset}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-table/theme/tablecolumnresize.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,oEAAqE,CACrE,mCAAoC,CAIpC,iGACD,CAEA,qCACC,kBACD,CAEA,yBACC,eACD,CAEA,4CAIC,wBAAyB,CACzB,iBACD,CAEA,wDAGC,QAAS,CAGT,iBAAkB,CALlB,iBAAkB,CAGlB,oDAAqD,CAFrD,KAAM,CAKN,gBAAiB,CAFjB,0CAA2C,CAG3C,2BACD,CAQA,qJACC,YACD,CAEA,8HAEC,8DAA+D,CAO/D,gBAAiB,CANjB,WAAa,CAKb,aAED,CAEA,iEACC,mDAAoD,CACpD,WACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-selector-column-resizer-hover: var(--ck-color-base-active);\\n\\t--ck-table-column-resizer-width: 7px;\\n\\n\\t/* The offset used for absolute positioning of the resizer element, so that it is placed exactly above the cell border.\\n\\t The value is: minus half the width of the resizer decreased additionaly by the half the width of the border (0.5px). */\\n\\t--ck-table-column-resizer-position-offset: calc(var(--ck-table-column-resizer-width) * -0.5 - 0.5px);\\n}\\n\\n.ck-content .table .ck-table-resized {\\n\\ttable-layout: fixed;\\n}\\n\\n.ck-content .table table {\\n\\toverflow: hidden;\\n}\\n\\n.ck-content .table td,\\n.ck-content .table th {\\n\\t/* To prevent text overflowing beyond its cell when columns are resized by resize handler\\n\\t(https://github.com/ckeditor/ckeditor5/pull/14379#issuecomment-1589460978). */\\n\\toverflow-wrap: break-word;\\n\\tposition: relative;\\n}\\n\\n.ck.ck-editor__editable .table .ck-table-column-resizer {\\n\\tposition: absolute;\\n\\ttop: 0;\\n\\tbottom: 0;\\n\\tright: var(--ck-table-column-resizer-position-offset);\\n\\twidth: var(--ck-table-column-resizer-width);\\n\\tcursor: col-resize;\\n\\tuser-select: none;\\n\\tz-index: var(--ck-z-default);\\n}\\n\\n.ck.ck-editor__editable.ck-column-resize_disabled .table .ck-table-column-resizer {\\n\\tdisplay: none;\\n}\\n\\n/* The resizer elements, which are extended to an extremely high height, break the drag & drop feature in Chrome. To make it work again,\\n all resizers must be hidden while the table is dragged. */\\n.ck.ck-editor__editable .table[draggable] .ck-table-column-resizer {\\n\\tdisplay: none;\\n}\\n\\n.ck.ck-editor__editable .table .ck-table-column-resizer:hover,\\n.ck.ck-editor__editable .table .ck-table-column-resizer__active {\\n\\tbackground-color: var(--ck-color-selector-column-resizer-hover);\\n\\topacity: 0.25;\\n\\t/* The resizer element resides in each cell so to occupy the entire height of the table, which is unknown from a CSS point of view,\\n\\t it is extended to an extremely high height. Even for screens with a very high pixel density, the resizer will fulfill its role as\\n\\t it should, i.e. for a screen of 476 ppi the total height of the resizer will take over 350 sheets of A4 format, which is totally\\n\\t unrealistic height for a single table. */\\n\\ttop: -999999px;\\n\\tbottom: -999999px;\\n}\\n\\n.ck.ck-editor__editable[dir=rtl] .table .ck-table-column-resizer {\\n\\tleft: var(--ck-table-column-resizer-position-offset);\\n\\tright: unset;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-color-selector-focused-cell-background:rgba(158,201,250,.3)}.ck-widget.table td.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table td.ck-editor__nested-editable:focus,.ck-widget.table th.ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck-widget.table th.ck-editor__nested-editable:focus{background:var(--ck-color-selector-focused-cell-background);border-style:none;outline:1px solid var(--ck-color-focus-border);outline-offset:-1px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableediting.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,gEACD,CAKE,8QAGC,2DAA4D,CAK5D,iBAAkB,CAClB,8CAA+C,CAC/C,mBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-selector-focused-cell-background: hsla(212, 90%, 80%, .3);\\n}\\n\\n.ck-widget.table {\\n\\t& td,\\n\\t& th {\\n\\t\\t&.ck-editor__nested-editable.ck-editor__nested-editable_focused,\\n\\t\\t&.ck-editor__nested-editable:focus {\\n\\t\\t\\t/* A very slight background to highlight the focused cell */\\n\\t\\t\\tbackground: var(--ck-color-selector-focused-cell-background);\\n\\n\\t\\t\\t/* Fixes the problem where surrounding cells cover the focused cell's border.\\n\\t\\t\\tIt does not fix the problem in all places but the UX is improved.\\n\\t\\t\\tSee https://github.com/ckeditor/ckeditor5-table/issues/29. */\\n\\t\\t\\tborder-style: none;\\n\\t\\t\\toutline: 1px solid var(--ck-color-focus-border);\\n\\t\\t\\toutline-offset: -1px; /* progressive enhancement - no IE support */\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-table-form .ck-form__row.ck-table-form__background-row,.ck.ck-table-form .ck-form__row.ck-table-form__border-row{flex-wrap:wrap}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row{align-items:center;flex-wrap:wrap}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view{align-items:center;display:flex;flex-direction:column-reverse}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-labeled-field-view .ck.ck-dropdown,.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator{flex-grow:0}.ck.ck-table-form .ck.ck-labeled-field-view{position:relative}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{bottom:calc(var(--ck-table-properties-error-arrow-size)*-1);left:50%;position:absolute;transform:translate(-50%,100%);z-index:1}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after{content:\\\"\\\";left:50%;position:absolute;top:calc(var(--ck-table-properties-error-arrow-size)*-1);transform:translateX(-50%)}:root{--ck-table-properties-error-arrow-size:6px;--ck-table-properties-min-error-width:150px}.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-labeled-field-view>.ck-label{font-size:var(--ck-font-size-tiny);text-align:center}.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-style,.ck.ck-table-form .ck-form__row.ck-table-form__border-row .ck-table-form__border-width{max-width:80px;min-width:80px;width:80px}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row{padding:0}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__height,.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimensions-row__width{margin:0}.ck.ck-table-form .ck-form__row.ck-table-form__dimensions-row .ck-table-form__dimension-operator{align-self:flex-end;display:inline-block;height:var(--ck-ui-component-min-height);line-height:var(--ck-ui-component-min-height);margin:0 var(--ck-spacing-small)}.ck.ck-table-form .ck.ck-labeled-field-view{padding-top:var(--ck-spacing-standard)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{border-radius:0}.ck-rounded-corners .ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status,.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{background:var(--ck-color-base-error);color:var(--ck-color-base-background);min-width:var(--ck-table-properties-min-error-width);padding:var(--ck-spacing-small) var(--ck-spacing-medium);text-align:center}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status:after{border-color:transparent transparent var(--ck-color-base-error) transparent;border-style:solid;border-width:0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size)}.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{animation:ck-table-form-labeled-view-status-appear .15s ease both}@media (prefers-reduced-motion:reduce){.ck.ck-table-form .ck.ck-labeled-field-view .ck.ck-labeled-field-view__status{animation:none}}.ck.ck-table-form .ck.ck-labeled-field-view .ck-input.ck-error:not(:focus)+.ck.ck-labeled-field-view__status{display:none}@keyframes ck-table-form-labeled-view-status-appear{0%{opacity:0}to{opacity:1}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-table/theme/tableform.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableform.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAWE,wHACC,cACD,CAEA,8DAEC,kBAAmB,CADnB,cAgBD,CAbC,qFAGC,kBAAmB,CAFnB,YAAa,CACb,6BAMD,CAEA,sMACC,WACD,CAIF,4CAEC,iBAoBD,CAlBC,8EAGC,2DAAgE,CADhE,QAAS,CADT,iBAAkB,CAGlB,8BAA+B,CAG/B,SAUD,CAPC,oFACC,UAAW,CAGX,QAAS,CAFT,iBAAkB,CAClB,wDAA6D,CAE7D,0BACD,CChDH,MACC,0CAA2C,CAC3C,2CACD,CAMI,2FACC,kCAAmC,CACnC,iBACD,CAGD,8KAIC,cAAe,CADf,cAAe,CADf,UAGD,CAGD,8DACC,SAcD,CAZC,yMAEC,QACD,CAEA,iGACC,mBAAoB,CACpB,oBAAqB,CACrB,wCAAyC,CACzC,6CAA8C,CAC9C,gCACD,CAIF,4CACC,sCA6BD,CA3BC,8ECxCD,eD6DC,CArBA,mMCpCA,qCDyDA,CArBA,8EAGC,qCAAsC,CACtC,qCAAsC,CAEtC,oDAAqD,CADrD,wDAAyD,CAEzD,iBAcD,CAXC,oFACC,2EAA4E,CAE5E,kBAAmB,CADnB,kJAED,CAdD,8EAgBC,iEAKD,CAHC,uCAlBD,8EAmBE,cAEF,CADC,CAID,6GACC,YACD,CAIF,oDACC,GACC,SACD,CAEA,GACC,SACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-table-form {\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-form__border-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t}\\n\\n\\t\\t&.ck-table-form__background-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t}\\n\\n\\t\\t&.ck-table-form__dimensions-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\tflex-direction: column-reverse;\\n\\t\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t\\t& .ck.ck-dropdown {\\n\\t\\t\\t\\t\\tflex-grow: 0;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-table-form__dimension-operator {\\n\\t\\t\\t\\tflex-grow: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-labeled-field-view {\\n\\t\\t/* Allow absolute positioning of the status (error) balloons. */\\n\\t\\tposition: relative;\\n\\n\\t\\t& .ck.ck-labeled-field-view__status {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\tbottom: calc( -1 * var(--ck-table-properties-error-arrow-size) );\\n\\t\\t\\ttransform: translate(-50%,100%);\\n\\n\\t\\t\\t/* Make sure the balloon status stays on top of other form elements. */\\n\\t\\t\\tz-index: 1;\\n\\n\\t\\t\\t/* The arrow pointing towards the field. */\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: calc( -1 * var(--ck-table-properties-error-arrow-size) );\\n\\t\\t\\t\\tleft: 50%;\\n\\t\\t\\t\\ttransform: translateX( -50% );\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../mixins/_rounded.css\\\";\\n\\n:root {\\n\\t--ck-table-properties-error-arrow-size: 6px;\\n\\t--ck-table-properties-min-error-width: 150px;\\n}\\n\\n.ck.ck-table-form {\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-form__border-row {\\n\\t\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\t\\t& > .ck-label {\\n\\t\\t\\t\\t\\tfont-size: var(--ck-font-size-tiny);\\n\\t\\t\\t\\t\\ttext-align: center;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-table-form__border-style,\\n\\t\\t\\t& .ck-table-form__border-width {\\n\\t\\t\\t\\twidth: 80px;\\n\\t\\t\\t\\tmin-width: 80px;\\n\\t\\t\\t\\tmax-width: 80px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&.ck-table-form__dimensions-row {\\n\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t& .ck-table-form__dimensions-row__width,\\n\\t\\t\\t& .ck-table-form__dimensions-row__height {\\n\\t\\t\\t\\tmargin: 0\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-table-form__dimension-operator {\\n\\t\\t\\t\\talign-self: flex-end;\\n\\t\\t\\t\\tdisplay: inline-block;\\n\\t\\t\\t\\theight: var(--ck-ui-component-min-height);\\n\\t\\t\\t\\tline-height: var(--ck-ui-component-min-height);\\n\\t\\t\\t\\tmargin: 0 var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck.ck-labeled-field-view {\\n\\t\\tpadding-top: var(--ck-spacing-standard);\\n\\n\\t\\t& .ck.ck-labeled-field-view__status {\\n\\t\\t\\t@mixin ck-rounded-corners;\\n\\n\\t\\t\\tbackground: var(--ck-color-base-error);\\n\\t\\t\\tcolor: var(--ck-color-base-background);\\n\\t\\t\\tpadding: var(--ck-spacing-small) var(--ck-spacing-medium);\\n\\t\\t\\tmin-width: var(--ck-table-properties-min-error-width);\\n\\t\\t\\ttext-align: center;\\n\\n\\t\\t\\t/* The arrow pointing towards the field. */\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tborder-color: transparent transparent var(--ck-color-base-error) transparent;\\n\\t\\t\\t\\tborder-width: 0 var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size) var(--ck-table-properties-error-arrow-size);\\n\\t\\t\\t\\tborder-style: solid;\\n\\t\\t\\t}\\n\\n\\t\\t\\tanimation: ck-table-form-labeled-view-status-appear .15s ease both;\\n\\n\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\tanimation: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* Hide the error balloon when the field is blurred. Makes the experience much more clear. */\\n\\t\\t& .ck-input.ck-error:not(:focus) + .ck.ck-labeled-field-view__status {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\\n@keyframes ck-table-form-labeled-view-status-appear {\\n\\t0% {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t100% {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row{align-content:baseline;flex-basis:0;flex-wrap:wrap}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items{flex-wrap:nowrap}.ck.ck-table-properties-form{width:320px}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row{align-self:flex-end;padding:0}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar{background:none;margin-top:var(--ck-spacing-standard)}.ck.ck-table-properties-form .ck-form__row.ck-table-properties-form__alignment-row .ck.ck-toolbar .ck-toolbar__items>*{width:40px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-table/theme/tableproperties.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableproperties.css\"],\"names\":[],\"mappings\":\"AAOE,mFAGC,sBAAuB,CADvB,YAAa,CADb,cAOD,CAHC,qHACC,gBACD,CCTH,6BACC,WAmBD,CAhBE,mFACC,mBAAoB,CACpB,SAYD,CAVC,kGACC,eAAgB,CAGhB,qCAKD,CAHC,uHACC,UACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-table-properties-form {\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-properties-form__alignment-row {\\n\\t\\t\\tflex-wrap: wrap;\\n\\t\\t\\tflex-basis: 0;\\n\\t\\t\\talign-content: baseline;\\n\\n\\t\\t\\t& .ck.ck-toolbar .ck-toolbar__items {\\n\\t\\t\\t\\tflex-wrap: nowrap;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-table-properties-form {\\n\\twidth: 320px;\\n\\n\\t& .ck-form__row {\\n\\t\\t&.ck-table-properties-form__alignment-row {\\n\\t\\t\\talign-self: flex-end;\\n\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t& .ck.ck-toolbar {\\n\\t\\t\\t\\tbackground: none;\\n\\n\\t\\t\\t\\t/* Compensate for missing input label that would push the margin (toolbar has no inputs). */\\n\\t\\t\\t\\tmargin-top: var(--ck-spacing-standard);\\n\\n\\t\\t\\t\\t& .ck-toolbar__items > * {\\n\\t\\t\\t\\t\\twidth: 40px;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-table-selected-cell-background:rgba(158,207,250,.3)}.ck.ck-editor__editable .table table td.ck-editor__editable_selected,.ck.ck-editor__editable .table table th.ck-editor__editable_selected{box-shadow:unset;caret-color:transparent;outline:unset;position:relative}.ck.ck-editor__editable .table table td.ck-editor__editable_selected:after,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:after{background-color:var(--ck-table-selected-cell-background);bottom:0;content:\\\"\\\";left:0;pointer-events:none;position:absolute;right:0;top:0}.ck.ck-editor__editable .table table td.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table td.ck-editor__editable_selected:focus,.ck.ck-editor__editable .table table th.ck-editor__editable_selected ::selection,.ck.ck-editor__editable .table table th.ck-editor__editable_selected:focus{background-color:transparent}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget{outline:unset}.ck.ck-editor__editable .table table td.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle,.ck.ck-editor__editable .table table th.ck-editor__editable_selected .ck-widget>.ck-widget__selection-handle{display:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-table/tableselection.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,wDACD,CAGC,0IAKC,gBAAiB,CAFjB,uBAAwB,CACxB,aAAc,CAFd,iBAiCD,CA3BC,sJAGC,yDAA0D,CAK1D,QAAS,CAPT,UAAW,CAKX,MAAO,CAJP,mBAAoB,CAEpB,iBAAkB,CAGlB,OAAQ,CAFR,KAID,CAEA,wTAEC,4BACD,CAMA,gKACC,aAKD,CAHC,0NACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-table-selected-cell-background: hsla(208, 90%, 80%, .3);\\n}\\n\\n.ck.ck-editor__editable .table table {\\n\\t& td.ck-editor__editable_selected,\\n\\t& th.ck-editor__editable_selected {\\n\\t\\tposition: relative;\\n\\t\\tcaret-color: transparent;\\n\\t\\toutline: unset;\\n\\t\\tbox-shadow: unset;\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5/issues/6446 */\\n\\t\\t&:after {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\tpointer-events: none;\\n\\t\\t\\tbackground-color: var(--ck-table-selected-cell-background);\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tleft: 0;\\n\\t\\t\\tright: 0;\\n\\t\\t\\tbottom: 0;\\n\\t\\t}\\n\\n\\t\\t& ::selection,\\n\\t\\t&:focus {\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\n\\t\\t/*\\n\\t\\t * To reduce the amount of noise, all widgets in the table selection have no outline and no selection handle.\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/9491.\\n\\t\\t */\\n\\t\\t& .ck-widget {\\n\\t\\t\\toutline: unset;\\n\\n\\t\\t\\t& > .ck-widget__selection-handle {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-aria-live-announcer{left:-10000px;position:absolute;top:-10000px}.ck.ck-aria-live-region-list{list-style-type:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/arialiveannouncer/arialiveannouncer.css\"],\"names\":[],\"mappings\":\"AAKA,2BAEC,aAAc,CADd,iBAAkB,CAElB,YACD,CAEA,6BACC,oBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-aria-live-announcer {\\n\\tposition: absolute;\\n\\tleft: -10000px;\\n\\ttop: -10000px;\\n}\\n\\n.ck.ck-aria-live-region-list {\\n\\tlist-style-type: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-autocomplete{position:relative}.ck.ck-autocomplete>.ck-search__results{position:absolute;z-index:var(--ck-z-panel)}.ck.ck-autocomplete>.ck-search__results.ck-search__results_n{bottom:100%}.ck.ck-autocomplete>.ck-search__results.ck-search__results_s{bottom:auto;top:100%}.ck.ck-autocomplete>.ck-search__results{border-radius:0}.ck-rounded-corners .ck.ck-autocomplete>.ck-search__results,.ck.ck-autocomplete>.ck-search__results.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-autocomplete>.ck-search__results{background:var(--ck-color-base-background);border:1px solid var(--ck-color-dropdown-panel-border);box-shadow:var(--ck-drop-shadow),0 0;max-height:200px;min-width:auto;overflow-y:auto}.ck.ck-autocomplete>.ck-search__results.ck-search__results_n{border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:-1px}.ck.ck-autocomplete>.ck-search__results.ck-search__results_s{border-top-left-radius:0;border-top-right-radius:0;margin-top:-1px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/autocomplete/autocomplete.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/autocomplete/autocomplete.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAKA,oBACC,iBAeD,CAbC,wCACC,iBAAkB,CAClB,yBAUD,CARC,6DACC,WACD,CAEA,6DAEC,WAAY,CADZ,QAED,CCVD,wCCEA,eDuBA,CAzBA,uHCMC,qCDmBD,CAzBA,wCAMC,0CAA2C,CAC3C,sDAAuD,CEPxD,oCAA8B,CFI7B,gBAAiB,CAIjB,cAAe,CAHf,eAoBD,CAfC,6DACC,2BAA4B,CAC5B,4BAA6B,CAG7B,kBACD,CAEA,6DACC,wBAAyB,CACzB,yBAA0B,CAG1B,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-autocomplete {\\n\\tposition: relative;\\n\\n\\t& > .ck-search__results {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: var(--ck-z-panel);\\n\\n\\t\\t&.ck-search__results_n {\\n\\t\\t\\tbottom: 100%;\\n\\t\\t}\\n\\n\\t\\t&.ck-search__results_s {\\n\\t\\t\\ttop: 100%;\\n\\t\\t\\tbottom: auto;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css\\\";\\n@import \\\"@ckeditor/ckeditor5-theme-lark/theme/mixins/_shadow.css\\\";\\n\\n.ck.ck-autocomplete {\\n\\t& > .ck-search__results {\\n\\t\\t@mixin ck-rounded-corners;\\n\\t\\t@mixin ck-drop-shadow;\\n\\n\\t\\tmax-height: 200px;\\n\\t\\toverflow-y: auto;\\n\\t\\tbackground: var(--ck-color-base-background);\\n\\t\\tborder: 1px solid var(--ck-color-dropdown-panel-border);\\n\\t\\tmin-width: auto;\\n\\n\\t\\t&.ck-search__results_n {\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\n\\t\\t\\t/* Prevent duplicated borders between the input and the results pane. */\\n\\t\\t\\tmargin-bottom: -1px;\\n\\t\\t}\\n\\n\\t\\t&.ck-search__results_s {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\n\\t\\t\\t/* Prevent duplicated borders between the input and the results pane. */\\n\\t\\t\\tmargin-top: -1px;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-button,a.ck.ck-button{align-items:center;display:inline-flex;position:relative;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}[dir=ltr] .ck.ck-button,[dir=ltr] a.ck.ck-button{justify-content:left}[dir=rtl] .ck.ck-button,[dir=rtl] a.ck.ck-button{justify-content:right}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{display:none}.ck.ck-button.ck-button_with-text .ck-button__label,a.ck.ck-button.ck-button_with-text .ck-button__label{display:inline-block}.ck.ck-button:not(.ck-button_with-text),a.ck.ck-button:not(.ck-button_with-text){justify-content:center}.ck.ck-button,a.ck.ck-button{background:var(--ck-color-button-default-background)}.ck.ck-button:not(.ck-disabled):hover,a.ck.ck-button:not(.ck-disabled):hover{background:var(--ck-color-button-default-hover-background)}.ck.ck-button:not(.ck-disabled):active,a.ck.ck-button:not(.ck-disabled):active{background:var(--ck-color-button-default-active-background)}.ck.ck-button.ck-disabled,a.ck.ck-button.ck-disabled{background:var(--ck-color-button-default-disabled-background)}.ck.ck-button,a.ck.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-button,.ck-rounded-corners a.ck.ck-button,.ck.ck-button.ck-rounded-corners,a.ck.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-button,a.ck.ck-button{-webkit-appearance:none;border:1px solid transparent;cursor:default;font-size:inherit;line-height:1;min-height:var(--ck-ui-component-min-height);min-width:var(--ck-ui-component-min-height);padding:var(--ck-spacing-tiny);text-align:center;transition:box-shadow .2s ease-in-out,border .2s ease-in-out;vertical-align:middle;white-space:nowrap}@media (prefers-reduced-motion:reduce){.ck.ck-button,a.ck.ck-button{transition:none}}.ck.ck-button:active,.ck.ck-button:focus,a.ck.ck-button:active,a.ck.ck-button:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-button .ck-button__icon use,.ck.ck-button .ck-button__icon use *,a.ck.ck-button .ck-button__icon use,a.ck.ck-button .ck-button__icon use *{color:inherit}.ck.ck-button .ck-button__label,a.ck.ck-button .ck-button__label{color:inherit;cursor:inherit;font-size:inherit;font-weight:inherit;vertical-align:middle}[dir=ltr] .ck.ck-button .ck-button__label,[dir=ltr] a.ck.ck-button .ck-button__label{text-align:left}[dir=rtl] .ck.ck-button .ck-button__label,[dir=rtl] a.ck.ck-button .ck-button__label{text-align:right}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{color:inherit}[dir=ltr] .ck.ck-button .ck-button__keystroke,[dir=ltr] a.ck.ck-button .ck-button__keystroke{margin-left:var(--ck-spacing-large)}[dir=rtl] .ck.ck-button .ck-button__keystroke,[dir=rtl] a.ck.ck-button .ck-button__keystroke{margin-right:var(--ck-spacing-large)}.ck.ck-button .ck-button__keystroke,a.ck.ck-button .ck-button__keystroke{opacity:.5}.ck.ck-button.ck-disabled:active,.ck.ck-button.ck-disabled:focus,a.ck.ck-button.ck-disabled:active,a.ck.ck-button.ck-disabled:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-button.ck-disabled .ck-button__icon,.ck.ck-button.ck-disabled .ck-button__label,a.ck.ck-button.ck-disabled .ck-button__icon,a.ck.ck-button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-disabled .ck-button__keystroke,a.ck.ck-button.ck-disabled .ck-button__keystroke{opacity:.3}.ck.ck-button.ck-button_with-text,a.ck.ck-button.ck-button_with-text{padding:var(--ck-spacing-tiny) var(--ck-spacing-standard)}[dir=ltr] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=ltr] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:calc(var(--ck-spacing-small)*-1);margin-right:var(--ck-spacing-small)}[dir=rtl] .ck.ck-button.ck-button_with-text .ck-button__icon,[dir=rtl] a.ck.ck-button.ck-button_with-text .ck-button__icon{margin-left:var(--ck-spacing-small);margin-right:calc(var(--ck-spacing-small)*-1)}.ck.ck-button.ck-button_with-keystroke .ck-button__label,a.ck.ck-button.ck-button_with-keystroke .ck-button__label{flex-grow:1}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{background:var(--ck-color-button-on-background)}.ck.ck-button.ck-on:not(.ck-disabled):hover,a.ck.ck-button.ck-on:not(.ck-disabled):hover{background:var(--ck-color-button-on-hover-background)}.ck.ck-button.ck-on:not(.ck-disabled):active,a.ck.ck-button.ck-on:not(.ck-disabled):active{background:var(--ck-color-button-on-active-background)}.ck.ck-button.ck-on.ck-disabled,a.ck.ck-button.ck-on.ck-disabled{background:var(--ck-color-button-on-disabled-background)}.ck.ck-button.ck-on,a.ck.ck-button.ck-on{color:var(--ck-color-button-on-color)}.ck.ck-button.ck-button-save,a.ck.ck-button.ck-button-save{color:var(--ck-color-button-save)}.ck.ck-button.ck-button-cancel,a.ck.ck-button.ck-button-cancel{color:var(--ck-color-button-cancel)}.ck.ck-button-action,a.ck.ck-button-action{background:var(--ck-color-button-action-background)}.ck.ck-button-action:not(.ck-disabled):hover,a.ck.ck-button-action:not(.ck-disabled):hover{background:var(--ck-color-button-action-hover-background)}.ck.ck-button-action:not(.ck-disabled):active,a.ck.ck-button-action:not(.ck-disabled):active{background:var(--ck-color-button-action-active-background)}.ck.ck-button-action.ck-disabled,a.ck.ck-button-action.ck-disabled{background:var(--ck-color-button-action-disabled-background)}.ck.ck-button-action,a.ck.ck-button-action{color:var(--ck-color-button-action-text)}.ck.ck-button-bold,a.ck.ck-button-bold{font-weight:700}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/button/button.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/button.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/mixins/_button.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css\"],\"names\":[],\"mappings\":\"AAQA,6BAMC,kBAAmB,CADnB,mBAAoB,CADpB,iBAAkB,CCHlB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD0BD,CA9BA,iDASE,oBAqBF,CA9BA,iDAaE,qBAiBF,CAdC,iEACC,YACD,CAGC,yGACC,oBACD,CAID,iFACC,sBACD,CEzBD,6BCAC,oDD+ID,CC5IE,6EACC,0DACD,CAEA,+EACC,2DACD,CAID,qDACC,6DACD,CDfD,6BEDC,eFgJD,CA/IA,wIEGE,qCF4IF,CA/IA,6BA6BC,uBAAwB,CANxB,4BAA6B,CAjB7B,cAAe,CAcf,iBAAkB,CAHlB,aAAc,CAJd,4CAA6C,CAD7C,2CAA4C,CAJ5C,8BAA+B,CAC/B,iBAAkB,CAiBlB,4DAA8D,CAnB9D,qBAAsB,CAFtB,kBA0ID,CAhHC,uCA/BD,6BAgCE,eA+GF,CA9GC,CAEA,oFGpCA,2BAA2B,CCF3B,2CAA8B,CDC9B,YHyCA,CAIC,kJAEC,aACD,CAGD,iEAIC,aAAc,CACd,cAAe,CAHf,iBAAkB,CAClB,mBAAoB,CAMpB,qBASD,CAlBA,qFAYE,eAMF,CAlBA,qFAgBE,gBAEF,CAEA,yEACC,aAWD,CAZA,6FAIE,mCAQF,CAZA,6FAQE,oCAIF,CAZA,yEAWC,UACD,CAIC,oIIxFD,oDJ4FC,CAOA,gLKnGD,kCLqGC,CAEA,iGACC,UACD,CAGD,qEACC,yDAcD,CAXC,2HAEE,4CAA+C,CAC/C,oCAOF,CAVA,2HAQE,mCAAoC,CADpC,6CAGF,CAKA,mHACC,WACD,CAID,yCClIA,+CDsIA,CCnIC,yFACC,qDACD,CAEA,2FACC,sDACD,CAID,iEACC,wDACD,CDmHA,yCAGC,qCACD,CAEA,2DACC,iCACD,CAEA,+DACC,mCACD,CAID,2CClJC,mDDuJD,CCpJE,2FACC,yDACD,CAEA,6FACC,0DACD,CAID,mEACC,4DACD,CDmID,2CAIC,wCACD,CAEA,uCAEC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../mixins/_unselectable.css\\\";\\n@import \\\"../../mixins/_dir.css\\\";\\n\\n.ck.ck-button,\\na.ck.ck-button {\\n\\t@mixin ck-unselectable;\\n\\n\\tposition: relative;\\n\\tdisplay: inline-flex;\\n\\talign-items: center;\\n\\n\\t@mixin ck-dir ltr {\\n\\t\\tjustify-content: left;\\n\\t}\\n\\n\\t@mixin ck-dir rtl {\\n\\t\\tjustify-content: right;\\n\\t}\\n\\n\\t& .ck-button__label {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t&.ck-button_with-text {\\n\\t\\t& .ck-button__label {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Center the icon horizontally in a button without text. */\\n\\t&:not(.ck-button_with-text) {\\n\\t\\tjustify-content: center;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Makes element unselectable.\\n */\\n@define-mixin ck-unselectable {\\n\\t-moz-user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_focus.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../mixins/_button.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-button,\\na.ck.ck-button {\\n\\t@mixin ck-button-colors --ck-color-button-default;\\n\\t@mixin ck-rounded-corners;\\n\\n\\twhite-space: nowrap;\\n\\tcursor: default;\\n\\tvertical-align: middle;\\n\\tpadding: var(--ck-spacing-tiny);\\n\\ttext-align: center;\\n\\n\\t/* A very important piece of styling. Go to variable declaration to learn more. */\\n\\tmin-width: var(--ck-ui-component-min-height);\\n\\tmin-height: var(--ck-ui-component-min-height);\\n\\n\\t/* Normalize the height of the line. Removing this will break consistent height\\n\\tamong text and text-less buttons (with icons). */\\n\\tline-height: 1;\\n\\n\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\tfont-size: inherit;\\n\\n\\t/* Avoid flickering when the foucs border shows up. */\\n\\tborder: 1px solid transparent;\\n\\n\\t/* Apply some smooth transition to the box-shadow and border. */\\n\\ttransition: box-shadow .2s ease-in-out, border .2s ease-in-out;\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/189 */\\n\\t-webkit-appearance: none;\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t&:active,\\n\\t&:focus {\\n\\t\\t@mixin ck-focus-ring;\\n\\t\\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\\n\\t}\\n\\n\\t/* Allow icon coloring using the text \\\"color\\\" property. */\\n\\t& .ck-button__icon {\\n\\t\\t& use,\\n\\t\\t& use * {\\n\\t\\t\\tcolor: inherit;\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-button__label {\\n\\t\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\t\\tfont-size: inherit;\\n\\t\\tfont-weight: inherit;\\n\\t\\tcolor: inherit;\\n\\t\\tcursor: inherit;\\n\\n\\t\\t/* Must be consistent with .ck-icon's vertical align. Otherwise, buttons with and\\n\\t\\twithout labels (but with icons) have different sizes in Chrome */\\n\\t\\tvertical-align: middle;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\ttext-align: right;\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-button__keystroke {\\n\\t\\tcolor: inherit;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tmargin-left: var(--ck-spacing-large);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tmargin-right: var(--ck-spacing-large);\\n\\t\\t}\\n\\n\\t\\topacity: .5;\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\\n\\t&.ck-disabled {\\n\\t\\t&:active,\\n\\t\\t&:focus {\\n\\t\\t\\t/* The disabled button should have a slightly less visible shadow when focused. */\\n\\t\\t\\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\\n\\t\\t}\\n\\n\\t\\t& .ck-button__icon {\\n\\t\\t\\t@mixin ck-disabled;\\n\\t\\t}\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\\n\\t\\t& .ck-button__label {\\n\\t\\t\\t@mixin ck-disabled;\\n\\t\\t}\\n\\n\\t\\t& .ck-button__keystroke {\\n\\t\\t\\topacity: .3;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-button_with-text {\\n\\t\\tpadding: var(--ck-spacing-tiny) var(--ck-spacing-standard);\\n\\n\\t\\t/* stylelint-disable-next-line no-descending-specificity */\\n\\t\\t& .ck-button__icon {\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tmargin-left: calc(-1 * var(--ck-spacing-small));\\n\\t\\t\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-right: calc(-1 * var(--ck-spacing-small));\\n\\t\\t\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-button_with-keystroke {\\n\\t\\t/* stylelint-disable-next-line no-descending-specificity */\\n\\t\\t& .ck-button__label {\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t/* A style of the button which is currently on, e.g. its feature is active. */\\n\\t&.ck-on {\\n\\t\\t@mixin ck-button-colors --ck-color-button-on;\\n\\n\\t\\tcolor: var(--ck-color-button-on-color);\\n\\t}\\n\\n\\t&.ck-button-save {\\n\\t\\tcolor: var(--ck-color-button-save);\\n\\t}\\n\\n\\t&.ck-button-cancel {\\n\\t\\tcolor: var(--ck-color-button-cancel);\\n\\t}\\n}\\n\\n/* A style of the button which handles the primary action. */\\n.ck.ck-button-action,\\na.ck.ck-button-action {\\n\\t@mixin ck-button-colors --ck-color-button-action;\\n\\n\\tcolor: var(--ck-color-button-action-text);\\n}\\n\\n.ck.ck-button-bold,\\na.ck.ck-button-bold {\\n\\tfont-weight: bold;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements a button of given background color.\\n *\\n * @param {String} $background - Background color of the button.\\n * @param {String} $border - Border color of the button.\\n */\\n@define-mixin ck-button-colors $prefix {\\n\\tbackground: var($(prefix)-background);\\n\\n\\t&:not(.ck-disabled) {\\n\\t\\t&:hover {\\n\\t\\t\\tbackground: var($(prefix)-hover-background);\\n\\t\\t}\\n\\n\\t\\t&:active {\\n\\t\\t\\tbackground: var($(prefix)-active-background);\\n\\t\\t}\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/98 */\\n\\t&.ck-disabled {\\n\\t\\tbackground: var($(prefix)-disabled-background);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A class which indicates that an element holding it is disabled.\\n */\\n@define-mixin ck-disabled {\\n\\topacity: var(--ck-disabled-opacity);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{display:block}:root{--ck-switch-button-toggle-width:2.6153846154em;--ck-switch-button-toggle-inner-size:calc(1.07692em + 1px);--ck-switch-button-translation:calc(var(--ck-switch-button-toggle-width) - var(--ck-switch-button-toggle-inner-size) - 2px);--ck-switch-button-inner-hover-shadow:0 0 0 5px var(--ck-color-switch-button-inner-shadow)}.ck.ck-button.ck-switchbutton,.ck.ck-button.ck-switchbutton.ck-on:active,.ck.ck-button.ck-switchbutton.ck-on:focus,.ck.ck-button.ck-switchbutton.ck-on:hover,.ck.ck-button.ck-switchbutton:active,.ck.ck-button.ck-switchbutton:focus,.ck.ck-button.ck-switchbutton:hover{background:transparent;color:inherit}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__label{margin-right:calc(var(--ck-spacing-large)*2)}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__label{margin-left:calc(var(--ck-spacing-large)*2)}.ck.ck-button.ck-switchbutton .ck-button__toggle{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle,.ck.ck-button.ck-switchbutton .ck-button__toggle.ck-rounded-corners{border-radius:var(--ck-border-radius)}[dir=ltr] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-left:auto}[dir=rtl] .ck.ck-button.ck-switchbutton .ck-button__toggle{margin-right:auto}.ck.ck-button.ck-switchbutton .ck-button__toggle{background:var(--ck-color-switch-button-off-background);border:1px solid transparent;transition:background .4s ease,box-shadow .2s ease-in-out,outline .2s ease-in-out;width:var(--ck-switch-button-toggle-width)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{border-radius:0}.ck-rounded-corners .ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner,.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:calc(var(--ck-border-radius)*.5)}.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{background:var(--ck-color-switch-button-inner-background);height:var(--ck-switch-button-toggle-inner-size);transition:all .3s ease;width:var(--ck-switch-button-toggle-inner-size)}@media (prefers-reduced-motion:reduce){.ck.ck-button.ck-switchbutton .ck-button__toggle .ck-button__toggle__inner{transition:none}}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover{background:var(--ck-color-switch-button-off-hover-background)}.ck.ck-button.ck-switchbutton .ck-button__toggle:hover .ck-button__toggle__inner{box-shadow:var(--ck-switch-button-inner-hover-shadow)}.ck.ck-button.ck-switchbutton.ck-disabled .ck-button__toggle{opacity:var(--ck-disabled-opacity)}.ck.ck-button.ck-switchbutton:focus{border-color:transparent;box-shadow:none;outline:none}.ck.ck-button.ck-switchbutton:focus .ck-button__toggle{box-shadow:0 0 0 1px var(--ck-color-base-background),0 0 0 5px var(--ck-color-focus-outer-shadow);outline:var(--ck-focus-ring);outline-offset:1px}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle{background:var(--ck-color-switch-button-on-background)}.ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle:hover{background:var(--ck-color-switch-button-on-hover-background)}[dir=ltr] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(var( --ck-switch-button-translation ))}[dir=rtl] .ck.ck-button.ck-switchbutton.ck-on .ck-button__toggle .ck-button__toggle__inner{transform:translateX(calc(var( --ck-switch-button-translation )*-1))}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/button/switchbutton.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/button/switchbutton.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css\"],\"names\":[],\"mappings\":\"AASE,4HACC,aACD,CCCF,MAEC,8CAA+C,CAE/C,0DAAgE,CAChE,2HAIC,CACD,0FACD,CAOC,0QAEC,sBAAuB,CADvB,aAED,CAEA,0DAGE,4CAOF,CAVA,0DAQE,2CAEF,CAEA,iDCpCA,eDgFA,CA5CA,yIChCC,qCD4ED,CA5CA,2DAKE,gBAuCF,CA5CA,2DAUE,iBAkCF,CA5CA,iDAkBC,uDAAwD,CAFxD,4BAA6B,CAD7B,iFAAsF,CAEtF,0CA2BD,CAxBC,2ECxDD,eDuEC,CAfA,6LCpDA,qCAAsC,CDsDpC,8CAaF,CAfA,2EAOC,yDAA0D,CAD1D,gDAAiD,CAIjD,uBAA0B,CAL1B,+CAUD,CAHC,uCAZD,2EAaE,eAEF,CADC,CAGD,uDACC,6DAKD,CAHC,iFACC,qDACD,CAIF,6DEpFA,kCFsFA,CAGA,oCACC,wBAAyB,CAEzB,eAAgB,CADhB,YAQD,CALC,uDACC,iGAAmG,CAEnG,4BAA6B,CAD7B,kBAED,CAKA,uDACC,sDAkBD,CAhBC,6DACC,4DACD,CAEA,2FAKE,2DAMF,CAXA,2FASE,oEAEF\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-button.ck-switchbutton {\\n\\t& .ck-button__toggle {\\n\\t\\tdisplay: block;\\n\\n\\t\\t& .ck-button__toggle__inner {\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n/* Note: To avoid rendering issues (aliasing) but to preserve the responsive nature\\nof the component, floating–point numbers have been used which, for the default font size\\n(see: --ck-font-size-base), will generate simple integers. */\\n:root {\\n\\t/* 34px at 13px font-size */\\n\\t--ck-switch-button-toggle-width: 2.6153846154em;\\n\\t/* 14px at 13px font-size */\\n\\t--ck-switch-button-toggle-inner-size: calc(1.0769230769em + 1px);\\n\\t--ck-switch-button-translation: calc(\\n\\t\\tvar(--ck-switch-button-toggle-width) -\\n\\t\\tvar(--ck-switch-button-toggle-inner-size) -\\n\\t\\t2px /* Border */\\n\\t);\\n\\t--ck-switch-button-inner-hover-shadow: 0 0 0 5px var(--ck-color-switch-button-inner-shadow);\\n}\\n\\n.ck.ck-button.ck-switchbutton {\\n\\t/* Unlike a regular button, the switch button text color and background should never change.\\n\\t * Changing toggle switch (background, outline) is enough to carry the information about the\\n\\t * state of the entire component (https://github.com/ckeditor/ckeditor5/issues/12519)\\n\\t */\\n\\t&, &:hover, &:focus, &:active, &.ck-on:hover, &.ck-on:focus, &.ck-on:active {\\n\\t\\tcolor: inherit;\\n\\t\\tbackground: transparent;\\n\\t}\\n\\n\\t& .ck-button__label {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t/* Separate the label from the switch */\\n\\t\\t\\tmargin-right: calc(2 * var(--ck-spacing-large));\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t/* Separate the label from the switch */\\n\\t\\t\\tmargin-left: calc(2 * var(--ck-spacing-large));\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-button__toggle {\\n\\t\\t@mixin ck-rounded-corners;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t/* Make sure the toggle is always to the right as far as possible. */\\n\\t\\t\\tmargin-left: auto;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t/* Make sure the toggle is always to the left as far as possible. */\\n\\t\\t\\tmargin-right: auto;\\n\\t\\t}\\n\\n\\t\\t/* Apply some smooth transition to the box-shadow and border. */\\n\\t\\t/* Gently animate the background color of the toggle switch */\\n\\t\\ttransition: background 400ms ease, box-shadow .2s ease-in-out, outline .2s ease-in-out;\\n\\t\\tborder: 1px solid transparent;\\n\\t\\twidth: var(--ck-switch-button-toggle-width);\\n\\t\\tbackground: var(--ck-color-switch-button-off-background);\\n\\n\\t\\t& .ck-button__toggle__inner {\\n\\t\\t\\t@mixin ck-rounded-corners {\\n\\t\\t\\t\\tborder-radius: calc(.5 * var(--ck-border-radius));\\n\\t\\t\\t}\\n\\n\\t\\t\\twidth: var(--ck-switch-button-toggle-inner-size);\\n\\t\\t\\theight: var(--ck-switch-button-toggle-inner-size);\\n\\t\\t\\tbackground: var(--ck-color-switch-button-inner-background);\\n\\n\\t\\t\\t/* Gently animate the inner part of the toggle switch */\\n\\t\\t\\ttransition: all 300ms ease;\\n\\n\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\ttransition: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:hover {\\n\\t\\t\\tbackground: var(--ck-color-switch-button-off-hover-background);\\n\\n\\t\\t\\t& .ck-button__toggle__inner {\\n\\t\\t\\t\\tbox-shadow: var(--ck-switch-button-inner-hover-shadow);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-disabled .ck-button__toggle {\\n\\t\\t@mixin ck-disabled;\\n\\t}\\n\\n\\t/* Overriding default .ck-button:focus styles + an outline around the toogle */\\n\\t&:focus {\\n\\t\\tborder-color: transparent;\\n\\t\\toutline: none;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\t& .ck-button__toggle {\\n\\t\\t\\tbox-shadow: 0 0 0 1px var(--ck-color-base-background), 0 0 0 5px var(--ck-color-focus-outer-shadow);\\n\\t\\t\\toutline-offset: 1px;\\n\\t\\t\\toutline: var(--ck-focus-ring);\\n\\t\\t}\\n\\t}\\n\\n\\t/* stylelint-disable-next-line no-descending-specificity */\\n\\t&.ck-on {\\n\\t\\t& .ck-button__toggle {\\n\\t\\t\\tbackground: var(--ck-color-switch-button-on-background);\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tbackground: var(--ck-color-switch-button-on-hover-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-button__toggle__inner {\\n\\t\\t\\t\\t/*\\n\\t\\t\\t\\t* Move the toggle switch to the right. It will be animated.\\n\\t\\t\\t\\t*/\\n\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\ttransform: translateX( var( --ck-switch-button-translation ) );\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\ttransform: translateX( calc( -1 * var( --ck-switch-button-translation ) ) );\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A class which indicates that an element holding it is disabled.\\n */\\n@define-mixin ck-disabled {\\n\\topacity: var(--ck-disabled-opacity);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-collapsible.ck-collapsible_collapsed>.ck-collapsible__children{display:none}:root{--ck-collapsible-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-collapsible>.ck.ck-button{border-radius:0;color:inherit;font-weight:700;padding:var(--ck-list-button-padding);width:100%}.ck.ck-collapsible>.ck.ck-button:focus{background:transparent}.ck.ck-collapsible>.ck.ck-button:active,.ck.ck-collapsible>.ck.ck-button:hover:not(:focus),.ck.ck-collapsible>.ck.ck-button:not(:focus){background:transparent;border-color:transparent;box-shadow:none}.ck.ck-collapsible>.ck.ck-button>.ck-icon{margin-right:var(--ck-spacing-medium);width:var(--ck-collapsible-arrow-size)}.ck.ck-collapsible>.ck-collapsible__children{padding:var(--ck-spacing-medium) var(--ck-spacing-large) var(--ck-spacing-large)}.ck.ck-collapsible.ck-collapsible_collapsed>.ck.ck-button .ck-icon{transform:rotate(-90deg)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/collapsible/collapsible.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/collapsible/collapsible.css\"],\"names\":[],\"mappings\":\"AAMC,sEACC,YACD,CCHD,MACC,yDACD,CAGC,iCAIC,eAAgB,CAChB,aAAc,CAHd,eAAiB,CACjB,qCAAsC,CAFtC,UAoBD,CAdC,uCACC,sBACD,CAEA,wIACC,sBAAuB,CACvB,wBAAyB,CACzB,eACD,CAEA,0CACC,qCAAsC,CACtC,sCACD,CAGD,6CACC,gFACD,CAGC,mEACC,wBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-collapsible.ck-collapsible_collapsed {\\n\\t& > .ck-collapsible__children {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-collapsible-arrow-size: calc(0.5 * var(--ck-icon-size));\\n}\\n\\n.ck.ck-collapsible {\\n\\t& > .ck.ck-button {\\n\\t\\twidth: 100%;\\n\\t\\tfont-weight: bold;\\n\\t\\tpadding: var(--ck-list-button-padding);\\n\\t\\tborder-radius: 0;\\n\\t\\tcolor: inherit;\\n\\n\\t\\t&:focus {\\n\\t\\t\\tbackground: transparent;\\n\\t\\t}\\n\\n\\t\\t&:active, &:not(:focus), &:hover:not(:focus) {\\n\\t\\t\\tbackground: transparent;\\n\\t\\t\\tborder-color: transparent;\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t}\\n\\n\\t\\t& > .ck-icon {\\n\\t\\t\\tmargin-right: var(--ck-spacing-medium);\\n\\t\\t\\twidth: var(--ck-collapsible-arrow-size);\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-collapsible__children {\\n\\t\\tpadding: var(--ck-spacing-medium) var(--ck-spacing-large) var(--ck-spacing-large);\\n\\t}\\n\\n\\t&.ck-collapsible_collapsed {\\n\\t\\t& > .ck.ck-button .ck-icon {\\n\\t\\t\\ttransform: rotate(-90deg);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-color-grid{display:grid}:root{--ck-color-grid-tile-size:24px;--ck-color-color-grid-check-icon:#166fd4}.ck.ck-color-grid{grid-gap:5px;padding:8px}.ck.ck-color-grid__tile{transition:box-shadow .2s ease}@media (forced-colors:none){.ck.ck-color-grid__tile{border:0;height:var(--ck-color-grid-tile-size);min-height:var(--ck-color-grid-tile-size);min-width:var(--ck-color-grid-tile-size);padding:0;width:var(--ck-color-grid-tile-size)}.ck.ck-color-grid__tile.ck-on,.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){border:0}.ck.ck-color-grid__tile.ck-color-selector__color-tile_bordered{box-shadow:0 0 0 1px var(--ck-color-base-border)}.ck.ck-color-grid__tile.ck-on{box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-base-text)}.ck.ck-color-grid__tile:focus:not(.ck-disabled),.ck.ck-color-grid__tile:hover:not(.ck-disabled){box-shadow:inset 0 0 0 1px var(--ck-color-base-background),0 0 0 2px var(--ck-color-focus-border)}}@media (forced-colors:active){.ck.ck-color-grid__tile{height:unset;min-height:unset;min-width:unset;padding:0 var(--ck-spacing-small);width:unset}.ck.ck-color-grid__tile .ck-button__label{display:inline-block}}@media (prefers-reduced-motion:reduce){.ck.ck-color-grid__tile{transition:none}}.ck.ck-color-grid__tile.ck-disabled{cursor:unset;transition:unset}.ck.ck-color-grid__tile .ck.ck-icon{color:var(--ck-color-color-grid-check-icon);display:none}.ck.ck-color-grid__tile.ck-on .ck.ck-icon{display:block}.ck.ck-color-grid__label{padding:0 var(--ck-spacing-standard)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/colorgrid/colorgrid.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/colorgrid/colorgrid.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css\"],\"names\":[],\"mappings\":\"AAKA,kBACC,YACD,CCCA,MACC,8BAA+B,CAK/B,wCACD,CAEA,kBACC,YAAa,CACb,WACD,CAEA,wBACC,8BAkED,CC3EC,4BACC,wBDgBA,QAAS,CAJT,qCAAsC,CAEtC,yCAA0C,CAD1C,wCAAyC,CAEzC,SAAU,CAJV,oCCTA,CDgBA,8HAIC,QACD,CAEA,+DACC,gDACD,CAEA,8BACC,8FACD,CAEA,gGAEC,iGACD,CCjCD,CAZA,8BACC,wBDqDA,YAAa,CAEb,gBAAiB,CADjB,eAAgB,CAEhB,iCAAkC,CAJlC,WClDA,CDwDA,0CACC,oBACD,CCzDD,CD4DA,uCAhDD,wBAiDE,eAkBF,CAjBC,CAEA,oCACC,YAAa,CACb,gBACD,CAEA,oCAEC,2CAA4C,CAD5C,YAED,CAGC,0CACC,aACD,CAIF,yBACC,oCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-color-grid {\\n\\tdisplay: grid;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\\\";\\n\\n:root {\\n\\t--ck-color-grid-tile-size: 24px;\\n\\n\\t/* Not using global colors here because these may change but some colors in a pallette\\n\\t * require special treatment. For instance, this ensures no matter what the UI text color is,\\n\\t * the check icon will look good on the black color tile. */\\n\\t--ck-color-color-grid-check-icon: hsl(212, 81%, 46%);\\n}\\n\\n.ck.ck-color-grid {\\n\\tgrid-gap: 5px;\\n\\tpadding: 8px;\\n}\\n\\n.ck.ck-color-grid__tile {\\n\\ttransition: .2s ease box-shadow;\\n\\n\\t@mixin ck-media-default-colors {\\n\\t\\twidth: var(--ck-color-grid-tile-size);\\n\\t\\theight: var(--ck-color-grid-tile-size);\\n\\t\\tmin-width: var(--ck-color-grid-tile-size);\\n\\t\\tmin-height: var(--ck-color-grid-tile-size);\\n\\t\\tpadding: 0;\\n\\t\\tborder: 0;\\n\\n\\t\\t&.ck-on,\\n\\t\\t&:focus:not( .ck-disabled ),\\n\\t\\t&:hover:not( .ck-disabled ) {\\n\\t\\t\\t/* Disable the default .ck-button's border ring. */\\n\\t\\t\\tborder: 0;\\n\\t\\t}\\n\\n\\t\\t&.ck-color-selector__color-tile_bordered {\\n\\t\\t\\tbox-shadow: 0 0 0 1px var(--ck-color-base-border);\\n\\t\\t}\\n\\n\\t\\t&.ck-on {\\n\\t\\t\\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-base-text);\\n\\t\\t}\\n\\n\\t\\t&:focus:not( .ck-disabled ),\\n\\t\\t&:hover:not( .ck-disabled ) {\\n\\t\\t\\tbox-shadow: inset 0 0 0 1px var(--ck-color-base-background), 0 0 0 2px var(--ck-color-focus-border);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * In high contrast mode, the colors are replaced with text labels.\\n\\t * See https://github.com/ckeditor/ckeditor5/issues/14907.\\n\\t */\\n\\t@mixin ck-media-forced-colors {\\n\\t\\twidth: unset;\\n\\t\\theight: unset;\\n\\t\\tmin-width: unset;\\n\\t\\tmin-height: unset;\\n\\t\\tpadding: 0 var(--ck-spacing-small);\\n\\n\\t\\t& .ck-button__label {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t&.ck-disabled {\\n\\t\\tcursor: unset;\\n\\t\\ttransition: unset;\\n\\t}\\n\\n\\t& .ck.ck-icon {\\n\\t\\tdisplay: none;\\n\\t\\tcolor: var(--ck-color-color-grid-check-icon);\\n\\t}\\n\\n\\t&.ck-on {\\n\\t\\t& .ck.ck-icon {\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-color-grid__label {\\n\\tpadding: 0 var(--ck-spacing-standard);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-forced-colors {\\n\\t@media (forced-colors: active) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\\n@define-mixin ck-media-default-colors {\\n\\t@media (forced-colors: none) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".color-picker-hex-input{width:max-content}.color-picker-hex-input .ck.ck-input{min-width:unset}.ck.ck-color-picker__row{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;margin:var(--ck-spacing-large) 0 0;width:unset}.ck.ck-color-picker__row .ck.ck-labeled-field-view{padding-top:unset}.ck.ck-color-picker__row .ck.ck-input-text{width:unset}.ck.ck-color-picker__row .ck-color-picker__hash-view{padding-right:var(--ck-spacing-medium);padding-top:var(--ck-spacing-tiny)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/colorpicker/colorpicker.css\"],\"names\":[],\"mappings\":\"AAKA,wBACC,iBAKD,CAHC,qCACC,eACD,CAGD,yBACC,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,6BAA8B,CAC9B,kCAAmC,CACnC,WAcD,CAZC,mDACC,iBACD,CAEA,2CACC,WACD,CAEA,qDAEC,sCAAuC,CADvC,kCAED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.color-picker-hex-input {\\n\\twidth: max-content;\\n\\n\\t& .ck.ck-input {\\n\\t\\tmin-width: unset;\\n\\t}\\n}\\n\\n.ck.ck-color-picker__row {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\tjustify-content: space-between;\\n\\tmargin: var(--ck-spacing-large) 0 0;\\n\\twidth: unset;\\n\\n\\t& .ck.ck-labeled-field-view {\\n\\t\\tpadding-top: unset;\\n\\t}\\n\\n\\t& .ck.ck-input-text {\\n\\t\\twidth: unset;\\n\\t}\\n\\n\\t& .ck-color-picker__hash-view {\\n\\t\\tpadding-top: var(--ck-spacing-tiny);\\n\\t\\tpadding-right: var(--ck-spacing-medium);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{align-items:center;display:flex}[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{justify-content:flex-start}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar{display:flex;flex-direction:row;justify-content:space-around}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-cancel,.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar .ck-button-save{flex:1}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker,.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__remove-color{width:100%}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(var(--ck-spacing-standard)/2) var(--ck-spacing-standard)}.ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker:not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon{margin-right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-color-selector .ck-color-grids-fragment .ck-button.ck-color-selector__color-picker .ck.ck-icon{margin-left:var(--ck-spacing-standard)}.ck.ck-color-selector .ck-color-grids-fragment label.ck.ck-color-grid__label{font-weight:unset}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker{padding:8px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker{height:100px;min-width:180px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation){border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue){border-radius:0 0 var(--ck-border-radius) var(--ck-border-radius)}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(hue-pointer),.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-picker .hex-color-picker::part(saturation-pointer){height:15px;width:15px}.ck.ck-color-selector .ck-color-picker-fragment .ck.ck-color-selector_action-bar{padding:0 8px 8px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/colorselector/colorselector.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/colorselector/colorselector.css\"],\"names\":[],\"mappings\":\"AAUE,oLAGC,kBAAmB,CADnB,YAMD,CARA,wMAME,0BAEF,CAKA,iFACC,YAAa,CACb,kBAAmB,CACnB,4BAMD,CAJC,oMAEC,MACD,CCrBD,oLAEC,UACD,CAEA,0FAEC,2BAA4B,CAC5B,4BAA6B,CAF7B,qEAiBD,CAbC,sGACC,gDACD,CAEA,gHAEE,uCAMF,CARA,gHAME,sCAEF,CAGD,6EACC,iBACD,CAKA,oEACC,WAoBD,CAlBC,sFACC,YAAa,CACb,eAeD,CAbC,wGACC,iEACD,CAEA,iGACC,iEACD,CAEA,yNAGC,WAAY,CADZ,UAED,CAIF,iFACC,iBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-color-selector {\\n\\t/* View fragment with color grids. */\\n\\t& .ck-color-grids-fragment {\\n\\t\\t& .ck-button.ck-color-selector__remove-color,\\n\\t\\t& .ck-button.ck-color-selector__color-picker {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tjustify-content: flex-start;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* View fragment with a color picker. */\\n\\t& .ck-color-picker-fragment {\\n\\t\\t& .ck.ck-color-selector_action-bar {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\tjustify-content: space-around;\\n\\n\\t\\t\\t& .ck-button-save,\\n\\t\\t\\t& .ck-button-cancel {\\n\\t\\t\\t\\tflex: 1\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-color-selector {\\n\\t/* View fragment with color grids. */\\n\\t& .ck-color-grids-fragment {\\n\\t\\t& .ck-button.ck-color-selector__remove-color,\\n\\t\\t& .ck-button.ck-color-selector__color-picker {\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t& .ck-button.ck-color-selector__color-picker {\\n\\t\\t\\tpadding: calc(var(--ck-spacing-standard) / 2) var(--ck-spacing-standard);\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\n\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck.ck-icon {\\n\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\tmargin-right: var(--ck-spacing-standard);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& label.ck.ck-color-grid__label {\\n\\t\\t\\tfont-weight: unset;\\n\\t\\t}\\n\\t}\\n\\n\\t/* View fragment with a color picker. */\\n\\t& .ck-color-picker-fragment {\\n\\t\\t& .ck.ck-color-picker {\\n\\t\\t\\tpadding: 8px;\\n\\n\\t\\t\\t& .hex-color-picker {\\n\\t\\t\\t\\theight: 100px;\\n\\t\\t\\t\\tmin-width: 180px;\\n\\n\\t\\t\\t\\t&::part(saturation) {\\n\\t\\t\\t\\t\\tborder-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&::part(hue) {\\n\\t\\t\\t\\t\\tborder-radius: 0 0 var(--ck-border-radius) var(--ck-border-radius);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&::part(saturation-pointer),\\n\\t\\t\\t\\t&::part(hue-pointer) {\\n\\t\\t\\t\\t\\twidth: 15px;\\n\\t\\t\\t\\t\\theight: 15px;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& .ck.ck-color-selector_action-bar {\\n\\t\\t\\tpadding: 0 8px 8px;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-dialog-overlay{bottom:0;left:0;overscroll-behavior:none;position:fixed;right:0;top:0;user-select:none}.ck.ck-dialog-overlay.ck-dialog-overlay__transparent{animation:none;background:none;pointer-events:none}.ck.ck-dialog{overscroll-behavior:none;position:absolute;width:fit-content}.ck.ck-dialog .ck.ck-form__header{flex-shrink:0}.ck.ck-dialog .ck.ck-form__header .ck-form__header__label{cursor:grab}.ck.ck-dialog-overlay.ck-dialog-overlay__transparent .ck.ck-dialog{pointer-events:all}:root{--ck-dialog-overlay-background-color:rgba(0,0,0,.5);--ck-dialog-drop-shadow:0px 0px 6px 2px rgba(0,0,0,.15);--ck-dialog-max-width:100vw;--ck-dialog-max-height:90vh;--ck-color-dialog-background:var(--ck-color-base-background);--ck-color-dialog-form-header-border:var(--ck-color-base-border)}.ck.ck-dialog-overlay{animation:ck-dialog-fade-in .3s;background:var(--ck-dialog-overlay-background-color);z-index:var(--ck-z-dialog)}.ck.ck-dialog{border-radius:0}.ck-rounded-corners .ck.ck-dialog,.ck.ck-dialog.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dialog{box-shadow:var(--ck-drop-shadow),0 0;--ck-drop-shadow:var(--ck-dialog-drop-shadow);background:var(--ck-color-dialog-background);border:1px solid var(--ck-color-base-border);max-height:var(--ck-dialog-max-height);max-width:var(--ck-dialog-max-width)}.ck.ck-dialog .ck.ck-form__header{border-bottom:1px solid var(--ck-color-dialog-form-header-border)}@keyframes ck-dialog-fade-in{0%{background:transparent}to{background:var(--ck-dialog-overlay-background-color)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/dialog/dialog.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dialog/dialog.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAKA,sBAKC,QAAS,CACT,MAAO,CAJP,wBAAyB,CAEzB,cAAe,CAGf,OAAQ,CACR,KAAM,CAPN,gBAcD,CALC,qDAEC,cAAe,CACf,eAAgB,CAFhB,mBAGD,CAGD,cACC,wBAAyB,CAEzB,iBAAkB,CADlB,iBAcD,CAXC,kCACC,aAKD,CAHC,0DACC,WACD,CAVF,mEAcE,kBAEF,CC7BA,MACC,mDAA2D,CAC3D,uDAA8D,CAC9D,2BAA4B,CAC5B,2BAA4B,CAC5B,4DAA6D,CAC7D,gEACD,CAEA,sBACC,+BAAgC,CAChC,oDAAqD,CACrD,0BACD,CAEA,cCbC,eD2BD,CAdA,mECTE,qCDuBF,CAdA,cEfC,oCAA8B,CFmB9B,6CAA8C,CAE9C,4CAA6C,CAG7C,4CAA6C,CAF7C,sCAAuC,CACvC,oCAMD,CAHC,kCACC,iEACD,CAGD,6BACC,GACC,sBACD,CAEA,GACC,oDACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-dialog-overlay {\\n\\tuser-select: none;\\n\\toverscroll-behavior: none;\\n\\n\\tposition: fixed;\\n\\tbottom: 0;\\n\\tleft: 0;\\n\\tright: 0;\\n\\ttop: 0;\\n\\n\\t&.ck-dialog-overlay__transparent {\\n\\t\\tpointer-events: none;\\n\\t\\tanimation: none;\\n\\t\\tbackground: none;\\n\\t}\\n}\\n\\n.ck.ck-dialog {\\n\\toverscroll-behavior: none;\\n\\twidth: fit-content;\\n\\tposition: absolute;\\n\\n\\t& .ck.ck-form__header {\\n\\t\\tflex-shrink: 0;\\n\\n\\t\\t& .ck-form__header__label {\\n\\t\\t\\tcursor: grab;\\n\\t\\t}\\n\\t}\\n\\n\\t@nest .ck.ck-dialog-overlay.ck-dialog-overlay__transparent & {\\n\\t\\tpointer-events: all;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n:root {\\n\\t--ck-dialog-overlay-background-color: hsla( 0, 0%, 0%, .5 );\\n\\t--ck-dialog-drop-shadow: 0px 0px 6px 2px hsl(0deg 0% 0% / 15%);\\n\\t--ck-dialog-max-width: 100vw;\\n\\t--ck-dialog-max-height: 90vh;\\n\\t--ck-color-dialog-background: var(--ck-color-base-background);\\n\\t--ck-color-dialog-form-header-border: var(--ck-color-base-border);\\n}\\n\\n.ck.ck-dialog-overlay {\\n\\tanimation: ck-dialog-fade-in .3s;\\n\\tbackground: var(--ck-dialog-overlay-background-color);\\n\\tz-index: var(--ck-z-dialog);\\n}\\n\\n.ck.ck-dialog {\\n\\t@mixin ck-rounded-corners;\\n\\t@mixin ck-drop-shadow;\\n\\n\\t--ck-drop-shadow: var(--ck-dialog-drop-shadow);\\n\\n\\tbackground: var(--ck-color-dialog-background);\\n\\tmax-height: var(--ck-dialog-max-height);\\n\\tmax-width: var(--ck-dialog-max-width);\\n\\tborder: 1px solid var(--ck-color-base-border);\\n\\n\\t& .ck.ck-form__header {\\n\\t\\tborder-bottom: 1px solid var(--ck-color-dialog-form-header-border);\\n\\t}\\n}\\n\\n@keyframes ck-dialog-fade-in {\\n\\t0% {\\n\\t\\tbackground: hsla( 0, 0%, 0%, 0 );\\n\\t}\\n\\n\\t100% {\\n\\t\\tbackground: var(--ck-dialog-overlay-background-color);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-dialog .ck.ck-dialog__actions{display:flex;justify-content:flex-end;padding:var(--ck-spacing-large)}.ck.ck-dialog .ck.ck-dialog__actions>*+*{margin-left:var(--ck-spacing-large)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/dialog/dialogactions.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dialog/dialogactions.css\"],\"names\":[],\"mappings\":\"AAMC,qCACC,YAAa,CACb,wBAAyB,CCDzB,+BDED,CCAC,yCACC,mCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-dialog {\\n\\t& .ck.ck-dialog__actions {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: flex-end;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-dialog {\\n\\t& .ck.ck-dialog__actions {\\n\\t\\tpadding: var(--ck-spacing-large);\\n\\n\\t\\t& > * + * {\\n\\t\\t\\tmargin-left: var(--ck-spacing-large);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-dropdown-max-width:75vw}.ck.ck-dropdown{display:inline-block;position:relative}.ck.ck-dropdown .ck-dropdown__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-dropdown .ck-button.ck-dropdown__button{width:100%}.ck.ck-dropdown .ck-dropdown__panel{display:none;max-width:var(--ck-dropdown-max-width);position:absolute;z-index:var(--ck-z-panel)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel-visible{display:inline-block}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw{bottom:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{bottom:auto;top:100%}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_ne,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_se{left:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sw{right:0}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_n,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_s{left:50%;transform:translateX(-50%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nmw,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_smw{left:75%;transform:translateX(-75%)}.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_nme,.ck.ck-dropdown .ck-dropdown__panel.ck-dropdown__panel_sme{left:25%;transform:translateX(-25%)}.ck.ck-toolbar .ck-dropdown__panel{z-index:calc(var(--ck-z-panel) + 1)}:root{--ck-dropdown-arrow-size:calc(var(--ck-icon-size)*0.5)}.ck.ck-dropdown{font-size:inherit}.ck.ck-dropdown .ck-dropdown__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-dropdown .ck-dropdown__arrow{margin-left:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-dropdown .ck-dropdown__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}.ck.ck-dropdown.ck-disabled .ck-dropdown__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-dropdown .ck-button.ck-dropdown__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-dropdown .ck-button.ck-dropdown__button .ck-button__label{overflow:hidden;text-overflow:ellipsis;width:7em}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-disabled .ck-button__label{opacity:var(--ck-disabled-opacity)}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-dropdown__button_label-width_auto .ck-button__label{width:auto}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active{box-shadow:none}.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-off:active:focus,.ck.ck-dropdown .ck-button.ck-dropdown__button.ck-on:active:focus{box-shadow:var(--ck-focus-outer-shadow),0 0}.ck.ck-dropdown__panel{border-radius:0}.ck-rounded-corners .ck.ck-dropdown__panel,.ck.ck-dropdown__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-dropdown__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:0;box-shadow:var(--ck-drop-shadow),0 0;min-width:100%}.ck.ck-dropdown__panel.ck-dropdown__panel_se{border-top-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_sw{border-top-right-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_ne{border-bottom-left-radius:0}.ck.ck-dropdown__panel.ck-dropdown__panel_nw{border-bottom-right-radius:0}.ck.ck-dropdown__panel:focus{outline:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/dropdown/dropdown.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/dropdown.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,4BACD,CAEA,gBACC,oBAAqB,CACrB,iBA2ED,CAzEC,oCACC,mBAAoB,CACpB,2BACD,CAGA,+CACC,UACD,CAEA,oCACC,YAAa,CAEb,sCAAuC,CAEvC,iBAAkB,CAHlB,yBA4DD,CAvDC,+DACC,oBACD,CAEA,mSAKC,WACD,CAEA,mSAUC,WAAY,CADZ,QAED,CAEA,oHAEC,MACD,CAEA,oHAEC,OACD,CAEA,kHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAEA,sHAGC,QAAS,CACT,0BACD,CAQF,mCACC,mCACD,CCpFA,MACC,sDACD,CAEA,gBAEC,iBA2ED,CAzEC,oCACC,mCACD,CAGC,8CAIC,sCAAuC,CAHvC,gCAID,CAIA,8CACC,+BAAgC,CAGhC,oCACD,CAGD,gDC/BA,kCDiCA,CAIE,mFAEC,oCACD,CAIA,mFAEC,qCACD,CAID,iEAEC,eAAgB,CAChB,sBAAuB,CAFvB,SAGD,CAGA,6EC1DD,kCD4DC,CAGA,qDACC,2BAA4B,CAC5B,4BACD,CAEA,sGACC,UACD,CAGA,yHAEC,eAKD,CAHC,qIE7EF,2CF+EE,CAKH,uBGlFC,eHkHD,CAhCA,qFG9EE,qCH8GF,CAhCA,uBAIC,oDAAqD,CACrD,sDAAuD,CACvD,QAAS,CE1FT,oCAA8B,CF6F9B,cAuBD,CAnBC,6CACC,wBACD,CAEA,6CACC,yBACD,CAEA,6CACC,2BACD,CAEA,6CACC,4BACD,CAEA,6BACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-dropdown-max-width: 75vw;\\n}\\n\\n.ck.ck-dropdown {\\n\\tdisplay: inline-block;\\n\\tposition: relative;\\n\\n\\t& .ck-dropdown__arrow {\\n\\t\\tpointer-events: none;\\n\\t\\tz-index: var(--ck-z-default);\\n\\t}\\n\\n\\t/* Dropdown button should span horizontally, e.g. in vertical toolbars */\\n\\t& .ck-button.ck-dropdown__button {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t& .ck-dropdown__panel {\\n\\t\\tdisplay: none;\\n\\t\\tz-index: var(--ck-z-panel);\\n\\t\\tmax-width: var(--ck-dropdown-max-width);\\n\\n\\t\\tposition: absolute;\\n\\n\\t\\t&.ck-dropdown__panel-visible {\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_ne,\\n\\t\\t&.ck-dropdown__panel_nw,\\n\\t\\t&.ck-dropdown__panel_n,\\n\\t\\t&.ck-dropdown__panel_nmw,\\n\\t\\t&.ck-dropdown__panel_nme {\\n\\t\\t\\tbottom: 100%;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_se,\\n\\t\\t&.ck-dropdown__panel_sw,\\n\\t\\t&.ck-dropdown__panel_smw,\\n\\t\\t&.ck-dropdown__panel_sme,\\n\\t\\t&.ck-dropdown__panel_s {\\n\\t\\t\\t/*\\n\\t\\t\\t * Using transform: translate3d( 0, 100%, 0 ) causes blurry dropdown on Chrome 67-78+ on non-retina displays.\\n\\t\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/1053.\\n\\t\\t\\t */\\n\\t\\t\\ttop: 100%;\\n\\t\\t\\tbottom: auto;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_ne,\\n\\t\\t&.ck-dropdown__panel_se {\\n\\t\\t\\tleft: 0px;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_nw,\\n\\t\\t&.ck-dropdown__panel_sw {\\n\\t\\t\\tright: 0px;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_s,\\n\\t\\t&.ck-dropdown__panel_n {\\n\\t\\t\\t/* Positioning panels relative to the center of the button */\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\ttransform: translateX(-50%);\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_nmw,\\n\\t\\t&.ck-dropdown__panel_smw {\\n\\t\\t\\t/* Positioning panels relative to the middle-west of the button */\\n\\t\\t\\tleft: 75%;\\n\\t\\t\\ttransform: translateX(-75%);\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__panel_nme,\\n\\t\\t&.ck-dropdown__panel_sme {\\n\\t\\t\\t/* Positioning panels relative to the middle-east of the button */\\n\\t\\t\\tleft: 25%;\\n\\t\\t\\ttransform: translateX(-25%);\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * Toolbar dropdown panels should be always above the UI (eg. other dropdown panels) from the editor's content.\\n * See https://github.com/ckeditor/ckeditor5/issues/7874\\n */\\n.ck.ck-toolbar .ck-dropdown__panel {\\n\\tz-index: calc( var(--ck-z-panel) + 1 );\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n:root {\\n\\t--ck-dropdown-arrow-size: calc(0.5 * var(--ck-icon-size));\\n}\\n\\n.ck.ck-dropdown {\\n\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\tfont-size: inherit;\\n\\n\\t& .ck-dropdown__arrow {\\n\\t\\twidth: var(--ck-dropdown-arrow-size);\\n\\t}\\n\\n\\t@mixin ck-dir ltr {\\n\\t\\t& .ck-dropdown__arrow {\\n\\t\\t\\tright: var(--ck-spacing-standard);\\n\\n\\t\\t\\t/* A space to accommodate the triangle. */\\n\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-dir rtl {\\n\\t\\t& .ck-dropdown__arrow {\\n\\t\\t\\tleft: var(--ck-spacing-standard);\\n\\n\\t\\t\\t/* A space to accommodate the triangle. */\\n\\t\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-disabled .ck-dropdown__arrow {\\n\\t\\t@mixin ck-disabled;\\n\\t}\\n\\n\\t& .ck-button.ck-dropdown__button {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t&:not(.ck-button_with-text) {\\n\\t\\t\\t\\t/* Make sure dropdowns with just an icon have the right inner spacing */\\n\\t\\t\\t\\tpadding-left: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t&:not(.ck-button_with-text) {\\n\\t\\t\\t\\t/* Make sure dropdowns with just an icon have the right inner spacing */\\n\\t\\t\\t\\tpadding-right: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* #23 */\\n\\t\\t& .ck-button__label {\\n\\t\\t\\twidth: 7em;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/70 */\\n\\t\\t&.ck-disabled .ck-button__label {\\n\\t\\t\\t@mixin ck-disabled;\\n\\t\\t}\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5/issues/816 */\\n\\t\\t&.ck-on {\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t&.ck-dropdown__button_label-width_auto .ck-button__label {\\n\\t\\t\\twidth: auto;\\n\\t\\t}\\n\\n\\t\\t/* https://github.com/ckeditor/ckeditor5/issues/8699 */\\n\\t\\t&.ck-off:active,\\n\\t\\t&.ck-on:active {\\n\\t\\t\\tbox-shadow: none;\\n\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-dropdown__panel {\\n\\t@mixin ck-rounded-corners;\\n\\t@mixin ck-drop-shadow;\\n\\n\\tbackground: var(--ck-color-dropdown-panel-background);\\n\\tborder: 1px solid var(--ck-color-dropdown-panel-border);\\n\\tbottom: 0;\\n\\n\\t/* Make sure the panel is at least as wide as the drop-down's button. */\\n\\tmin-width: 100%;\\n\\n\\t/* Disabled corner border radius to be consistent with the .dropdown__button\\n\\thttps://github.com/ckeditor/ckeditor5/issues/816 */\\n\\t&.ck-dropdown__panel_se {\\n\\t\\tborder-top-left-radius: 0;\\n\\t}\\n\\n\\t&.ck-dropdown__panel_sw {\\n\\t\\tborder-top-right-radius: 0;\\n\\t}\\n\\n\\t&.ck-dropdown__panel_ne {\\n\\t\\tborder-bottom-left-radius: 0;\\n\\t}\\n\\n\\t&.ck-dropdown__panel_nw {\\n\\t\\tborder-bottom-right-radius: 0;\\n\\t}\\n\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A class which indicates that an element holding it is disabled.\\n */\\n@define-mixin ck-disabled {\\n\\topacity: var(--ck-disabled-opacity);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-dropdown>.ck-dropdown__panel>.ck-list{border-radius:0}.ck-rounded-corners .ck.ck-dropdown>.ck-dropdown__panel>.ck-list,.ck.ck-dropdown>.ck-dropdown__panel>.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0}.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:first-child>.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:first-child>.ck-button,.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:first-child>.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:0}.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:last-child>.ck-button{border-radius:0}.ck-rounded-corners .ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:last-child>.ck-button,.ck.ck-dropdown>.ck-dropdown__panel>.ck-list .ck-list__item:last-child>.ck-button.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/listdropdown.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAOA,6CCIC,eDqBD,CAzBA,iICQE,qCAAsC,CDJtC,wBAqBF,CAfE,mFCND,eDYC,CANA,6MCFA,qCAAsC,CDKpC,2BAA4B,CAC5B,4BAA6B,CAF7B,wBAIF,CAEA,kFCdD,eDmBC,CALA,2MCVA,qCAAsC,CDYpC,wBAAyB,CACzB,yBAEF\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n\\n.ck.ck-dropdown > .ck-dropdown__panel > .ck-list {\\n\\t/* Disabled radius of top-left border to be consistent with .dropdown__button\\n\\thttps://github.com/ckeditor/ckeditor5/issues/816 */\\n\\t@mixin ck-rounded-corners {\\n\\t\\tborder-top-left-radius: 0;\\n\\t}\\n\\n\\t/* Make sure the button belonging to the first/last child of the list goes well with the\\n\\tborder radius of the entire panel. */\\n\\t& .ck-list__item {\\n\\t\\t&:first-child > .ck-button {\\n\\t\\t\\t@mixin ck-rounded-corners {\\n\\t\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:last-child > .ck-button {\\n\\t\\t\\t@mixin ck-rounded-corners {\\n\\t\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-splitbutton{font-size:inherit}.ck.ck-splitbutton .ck-splitbutton__action:focus{z-index:calc(var(--ck-z-default) + 1)}:root{--ck-color-split-button-hover-background:#ebebeb;--ck-color-split-button-hover-border:#b3b3b3}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-right-radius:unset;border-top-right-radius:unset}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__action{border-bottom-left-radius:unset;border-top-left-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow{min-width:unset}[dir=ltr] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-left-radius:unset;border-top-left-radius:unset}[dir=rtl] .ck.ck-splitbutton>.ck-splitbutton__arrow{border-bottom-right-radius:unset;border-top-right-radius:unset}.ck.ck-splitbutton>.ck-splitbutton__arrow svg{width:var(--ck-dropdown-arrow-size)}.ck.ck-splitbutton>.ck-splitbutton__arrow:not(:focus){border-bottom-width:0;border-top-width:0}.ck.ck-splitbutton.ck-splitbutton_open>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover),.ck.ck-splitbutton:hover>.ck-button:not(.ck-on):not(.ck-disabled):not(:hover){background:var(--ck-color-split-button-hover-background)}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{background-color:var(--ck-color-split-button-hover-border);content:\\\"\\\";height:100%;position:absolute;width:1px}.ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:focus:after,.ck.ck-splitbutton:hover>.ck-splitbutton__arrow:focus:after{--ck-color-split-button-hover-border:var(--ck-color-focus-border)}[dir=ltr] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=ltr] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{left:-1px}[dir=rtl] .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow:not(.ck-disabled):after,[dir=rtl] .ck.ck-splitbutton:hover>.ck-splitbutton__arrow:not(.ck-disabled):after{right:-1px}.ck.ck-splitbutton.ck-splitbutton_open{border-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__action,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__action{border-bottom-left-radius:0}.ck-rounded-corners .ck.ck-splitbutton.ck-splitbutton_open>.ck-splitbutton__arrow,.ck.ck-splitbutton.ck-splitbutton_open.ck-rounded-corners>.ck-splitbutton__arrow{border-bottom-right-radius:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/dropdown/splitbutton.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/splitbutton.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAKA,mBAEC,iBAKD,CAHC,iDACC,qCACD,CCJD,MACC,gDAAyD,CACzD,4CACD,CAMC,oIAKE,gCAAiC,CADjC,6BASF,CAbA,oIAWE,+BAAgC,CADhC,4BAGF,CAEA,0CAGC,eAiBD,CApBA,oDAQE,+BAAgC,CADhC,4BAaF,CApBA,oDAcE,gCAAiC,CADjC,6BAOF,CAHC,8CACC,mCACD,CAKD,sDAEC,qBAAwB,CADxB,kBAED,CAQC,0KACC,wDACD,CAIA,8JAKC,0DAA2D,CAJ3D,UAAW,CAGX,WAAY,CAFZ,iBAAkB,CAClB,SAGD,CAGA,sIACC,iEACD,CAGC,kLACC,SACD,CAIA,kLACC,UACD,CAMF,uCCzFA,eDmGA,CAVA,qHCrFC,qCD+FD,CARE,qKACC,2BACD,CAEA,mKACC,4BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-splitbutton {\\n\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\tfont-size: inherit;\\n\\n\\t& .ck-splitbutton__action:focus {\\n\\t\\tz-index: calc(var(--ck-z-default) + 1);\\n\\t}\\n}\\n\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n\\n:root {\\n\\t--ck-color-split-button-hover-background: hsl(0, 0%, 92%);\\n\\t--ck-color-split-button-hover-border: hsl(0, 0%, 70%);\\n}\\n\\n.ck.ck-splitbutton {\\n\\t/*\\n\\t * Note: ck-rounded and ck-dir mixins don't go together (because they both use @nest).\\n\\t */\\n\\t&:hover > .ck-splitbutton__action,\\n\\t&.ck-splitbutton_open > .ck-splitbutton__action {\\n\\t\\t@nest [dir=\\\"ltr\\\"] & {\\n\\t\\t\\t/* Don't round the action button on the right side */\\n\\t\\t\\tborder-top-right-radius: unset;\\n\\t\\t\\tborder-bottom-right-radius: unset;\\n\\t\\t}\\n\\n\\t\\t@nest [dir=\\\"rtl\\\"] & {\\n\\t\\t\\t/* Don't round the action button on the left side */\\n\\t\\t\\tborder-top-left-radius: unset;\\n\\t\\t\\tborder-bottom-left-radius: unset;\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-splitbutton__arrow {\\n\\t\\t/* It's a text-less button and since the icon is positioned absolutely in such situation,\\n\\t\\tit must get some arbitrary min-width. */\\n\\t\\tmin-width: unset;\\n\\n\\t\\t@nest [dir=\\\"ltr\\\"] & {\\n\\t\\t\\t/* Don't round the arrow button on the left side */\\n\\t\\t\\tborder-top-left-radius: unset;\\n\\t\\t\\tborder-bottom-left-radius: unset;\\n\\t\\t}\\n\\n\\t\\t@nest [dir=\\\"rtl\\\"] & {\\n\\t\\t\\t/* Don't round the arrow button on the right side */\\n\\t\\t\\tborder-top-right-radius: unset;\\n\\t\\t\\tborder-bottom-right-radius: unset;\\n\\t\\t}\\n\\n\\t\\t& svg {\\n\\t\\t\\twidth: var(--ck-dropdown-arrow-size);\\n\\t\\t}\\n\\t}\\n\\n\\t/* Make sure the divider stretches 100% height of the button\\n\\thttps://github.com/ckeditor/ckeditor5/issues/10936 */\\n\\t& > .ck-splitbutton__arrow:not(:focus) {\\n\\t\\tborder-top-width: 0px;\\n\\t\\tborder-bottom-width: 0px;\\n\\t}\\n\\n\\t/* When the split button is \\\"open\\\" (the arrow is on) or being hovered, it should get some styling\\n\\tas a whole. The background of both buttons should stand out and there should be a visual\\n\\tseparation between both buttons. */\\n\\t&.ck-splitbutton_open,\\n\\t&:hover {\\n\\t\\t/* When the split button hovered as a whole, not as individual buttons. */\\n\\t\\t& > .ck-button:not(.ck-on):not(.ck-disabled):not(:hover) {\\n\\t\\t\\tbackground: var(--ck-color-split-button-hover-background);\\n\\t\\t}\\n\\n\\t\\t/* Splitbutton separator needs to be set with the ::after pseudoselector\\n\\t\\tto display properly the borders on focus */\\n\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\twidth: 1px;\\n\\t\\t\\theight: 100%;\\n\\t\\t\\tbackground-color: var(--ck-color-split-button-hover-border);\\n\\t\\t}\\n\\n\\t\\t/* Make sure the divider between the buttons looks fine when the button is focused */\\n\\t\\t& > .ck-splitbutton__arrow:focus::after {\\n\\t\\t\\t--ck-color-split-button-hover-border: var(--ck-color-focus-border);\\n\\t\\t}\\n\\n\\t\\t@nest [dir=\\\"ltr\\\"] & {\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\\n\\t\\t\\t\\tleft: -1px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t@nest [dir=\\\"rtl\\\"] & {\\n\\t\\t\\t& > .ck-splitbutton__arrow:not(.ck-disabled)::after {\\n\\t\\t\\t\\tright: -1px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/* Don't round the bottom left and right corners of the buttons when \\\"open\\\"\\n\\thttps://github.com/ckeditor/ckeditor5/issues/816 */\\n\\t&.ck-splitbutton_open {\\n\\t\\t@mixin ck-rounded-corners {\\n\\t\\t\\t& > .ck-splitbutton__action {\\n\\t\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > .ck-splitbutton__arrow {\\n\\t\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-toolbar-dropdown-max-width:60vw}.ck.ck-toolbar-dropdown>.ck-dropdown__panel{max-width:var(--ck-toolbar-dropdown-max-width);width:max-content}.ck.ck-toolbar-dropdown>.ck-dropdown__panel .ck-button:focus{z-index:calc(var(--ck-z-default) + 1)}.ck.ck-toolbar-dropdown .ck-toolbar{border:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/dropdown/toolbardropdown.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/dropdown/toolbardropdown.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,oCACD,CAEA,4CAGC,8CAA+C,CAD/C,iBAQD,CAJE,6DACC,qCACD,CCZF,oCACC,QACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-toolbar-dropdown-max-width: 60vw;\\n}\\n\\n.ck.ck-toolbar-dropdown > .ck-dropdown__panel {\\n\\t/* https://github.com/ckeditor/ckeditor5/issues/5586 */\\n\\twidth: max-content;\\n\\tmax-width: var(--ck-toolbar-dropdown-max-width);\\n\\n\\t& .ck-button {\\n\\t\\t&:focus {\\n\\t\\t\\tz-index: calc(var(--ck-z-default) + 1);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-toolbar-dropdown .ck-toolbar {\\n\\tborder: 0;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-accessibility-help-dialog-max-width:600px;--ck-accessibility-help-dialog-max-height:400px;--ck-accessibility-help-dialog-border-color:#ccced1;--ck-accessibility-help-dialog-code-background-color:#ededed;--ck-accessibility-help-dialog-kbd-shadow-color:#9c9c9c}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content{border:1px solid transparent;max-height:var(--ck-accessibility-help-dialog-max-height);max-width:var(--ck-accessibility-help-dialog-max-width);overflow:auto;padding:var(--ck-spacing-large);user-select:text}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content{*{white-space:normal}}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content .ck-label{display:none}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3{font-size:1.2em;font-weight:700}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4{font-size:1em;font-weight:700}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h3,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content h4,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content p,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content table{margin:1em 0}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl{border-bottom:none;border-top:1px solid var(--ck-accessibility-help-dialog-border-color);display:grid;grid-template-columns:2fr 1fr}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt{border-bottom:1px solid var(--ck-accessibility-help-dialog-border-color);padding:.4em 0}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dt{grid-column-start:1}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content dl dd{grid-column-start:2;text-align:right}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code,.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd{background:var(--ck-accessibility-help-dialog-code-background-color);border-radius:2px;display:inline-block;font-size:.9em;line-height:1;padding:.4em;text-align:center;vertical-align:middle}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content code{font-family:monospace}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd{box-shadow:0 1px 1px var(--ck-accessibility-help-dialog-kbd-shadow-color);margin:0 1px;min-width:1.8em}.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content kbd+kbd{margin-left:2px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/editorui/accessibilityhelp.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAQA,MACC,8CAA+C,CAC/C,+CAAgD,CAChD,mDAA8D,CAC9D,4DAAyE,CACzE,uDACD,CAEA,wEAOC,4BAA6B,CAJ7B,yDAA0D,CAD1D,uDAAwD,CAExD,aAAc,CAHd,+BAAgC,CAIhC,gBAgFD,CA5EC,8ECdA,2BAA2B,CCF3B,2CAA8B,CDC9B,YDkBA,CAZD,wEAcC,EACC,kBACD,CAqED,CAlEC,kFACC,YACD,CAEA,2EAEC,eAAgB,CADhB,eAED,CAEA,2EAEC,aAAc,CADd,eAED,CAEA,8SAIC,YACD,CAEA,2EAIC,kBAAmB,CADnB,qEAAsE,CAFtE,YAAa,CACb,6BAiBD,CAbC,4JACC,wEAAyE,CACzE,cACD,CAEA,8EACC,mBACD,CAEA,8EACC,mBAAoB,CACpB,gBACD,CAGD,yJAEC,oEAAqE,CAIrE,iBAAkB,CALlB,oBAAqB,CAOrB,cAAe,CAHf,aAAc,CAFd,YAAa,CAIb,iBAAkB,CAHlB,qBAKD,CAEA,6EACC,qBACD,CAEA,4EAEC,yEAA4E,CAC5E,YAAa,CAFb,eAOD,CAHC,gFACC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_focus.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-accessibility-help-dialog-max-width: 600px;\\n\\t--ck-accessibility-help-dialog-max-height: 400px;\\n\\t--ck-accessibility-help-dialog-border-color: hsl(220, 6%, 81%);\\n\\t--ck-accessibility-help-dialog-code-background-color: hsl(0deg 0% 92.94%);\\n\\t--ck-accessibility-help-dialog-kbd-shadow-color: hsl(0deg 0% 61%);\\n}\\n\\n.ck.ck-accessibility-help-dialog .ck-accessibility-help-dialog__content {\\n\\tpadding: var(--ck-spacing-large);\\n\\tmax-width: var(--ck-accessibility-help-dialog-max-width);\\n\\tmax-height: var(--ck-accessibility-help-dialog-max-height);\\n\\toverflow: auto;\\n\\tuser-select: text;\\n\\n\\tborder: 1px solid transparent;\\n\\n\\t&:focus {\\n\\t\\t@mixin ck-focus-ring;\\n\\t\\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\\n\\t}\\n\\n\\t* {\\n\\t\\twhite-space: normal;\\n\\t}\\n\\n\\t/* Hide the main label of the content container. */\\n\\t& .ck-label {\\n\\t\\tdisplay: none;\\n\\t}\\n\\n\\t& h3 {\\n\\t\\tfont-weight: bold;\\n\\t\\tfont-size: 1.2em;\\n\\t}\\n\\n\\t& h4 {\\n\\t\\tfont-weight: bold;\\n\\t\\tfont-size: 1em;\\n\\t}\\n\\n\\t& p,\\n\\t& h3,\\n\\t& h4,\\n\\t& table {\\n\\t\\tmargin: 1em 0;\\n\\t}\\n\\n\\t& dl {\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-template-columns: 2fr 1fr;\\n\\t\\tborder-top: 1px solid var(--ck-accessibility-help-dialog-border-color);\\n\\t\\tborder-bottom: none;\\n\\n\\t\\t& dt, & dd {\\n\\t\\t\\tborder-bottom: 1px solid var(--ck-accessibility-help-dialog-border-color);\\n\\t\\t\\tpadding: .4em 0;\\n\\t\\t}\\n\\n\\t\\t& dt {\\n\\t\\t\\tgrid-column-start: 1;\\n\\t\\t}\\n\\n\\t\\t& dd {\\n\\t\\t\\tgrid-column-start: 2;\\n\\t\\t\\ttext-align: right;\\n\\t\\t}\\n\\t}\\n\\n\\t& kbd, & code {\\n\\t\\tdisplay: inline-block;\\n\\t\\tbackground: var(--ck-accessibility-help-dialog-code-background-color);\\n\\t\\tpadding: .4em;\\n\\t\\tvertical-align: middle;\\n\\t\\tline-height: 1;\\n\\t\\tborder-radius: 2px;\\n\\t\\ttext-align: center;\\n\\t\\tfont-size: .9em;\\n\\t}\\n\\n\\t& code {\\n\\t\\tfont-family: monospace;\\n\\t}\\n\\n\\t& kbd {\\n\\t\\tmin-width: 1.8em;\\n\\t\\tbox-shadow: 0px 1px 1px var(--ck-accessibility-help-dialog-kbd-shadow-color);\\n\\t\\tmargin: 0 1px;\\n\\n\\t\\t& + kbd {\\n\\t\\t\\tmargin-left: 2px;\\n\\t\\t}\\n\\t}\\n}\\n\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-color-editable-blur-selection:#d9d9d9}.ck.ck-editor__editable:not(.ck-editor__nested-editable){border-radius:0}.ck-rounded-corners .ck.ck-editor__editable:not(.ck-editor__nested-editable),.ck.ck-editor__editable.ck-rounded-corners:not(.ck-editor__nested-editable){border-radius:var(--ck-border-radius)}.ck.ck-editor__editable.ck-focused:not(.ck-editor__nested-editable){border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}.ck.ck-editor__editable_inline{border:1px solid transparent;overflow:auto;padding:0 var(--ck-spacing-standard)}.ck.ck-editor__editable_inline[dir=ltr]{text-align:left}.ck.ck-editor__editable_inline[dir=rtl]{text-align:right}.ck.ck-editor__editable_inline>:first-child{margin-top:var(--ck-spacing-large)}.ck.ck-editor__editable_inline>:last-child{margin-bottom:var(--ck-spacing-large)}.ck.ck-editor__editable_inline.ck-blurred ::selection{background:var(--ck-color-editable-blur-selection)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_n]:after{border-bottom-color:var(--ck-color-panel-background)}.ck.ck-balloon-panel.ck-toolbar-container[class*=arrow_s]:after{border-top-color:var(--ck-color-panel-background)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/editorui/editorui.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAWA,MACC,0CACD,CAEA,yDCJC,eDWD,CAPA,yJCAE,qCDOF,CAJC,oEEPA,2BAA2B,CCF3B,qCAA8B,CDC9B,YFWA,CAGD,+BAGC,4BAA6B,CAF7B,aAAc,CACd,oCA6BD,CA1BC,wCACC,eACD,CAEA,wCACC,gBACD,CAGA,4CACC,kCACD,CAGA,2CAKC,qCACD,CAGA,sDACC,kDACD,CAKA,gEACC,oDACD,CAIA,gEACC,iDACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"../../../mixins/_focus.css\\\";\\n@import \\\"../../mixins/_button.css\\\";\\n\\n:root {\\n\\t--ck-color-editable-blur-selection: hsl(0, 0%, 85%);\\n}\\n\\n.ck.ck-editor__editable:not(.ck-editor__nested-editable) {\\n\\t@mixin ck-rounded-corners;\\n\\n\\t&.ck-focused {\\n\\t\\t@mixin ck-focus-ring;\\n\\t\\t@mixin ck-box-shadow var(--ck-inner-shadow);\\n\\t}\\n}\\n\\n.ck.ck-editor__editable_inline {\\n\\toverflow: auto;\\n\\tpadding: 0 var(--ck-spacing-standard);\\n\\tborder: 1px solid transparent;\\n\\n\\t&[dir=\\\"ltr\\\"] {\\n\\t\\ttext-align: left;\\n\\t}\\n\\n\\t&[dir=\\\"rtl\\\"] {\\n\\t\\ttext-align: right;\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/116 */\\n\\t& > *:first-child {\\n\\t\\tmargin-top: var(--ck-spacing-large);\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5/issues/847 */\\n\\t& > *:last-child {\\n\\t\\t/*\\n\\t\\t * This value should match with the default margins of the block elements (like .media or .image)\\n\\t\\t * to avoid a content jumping when the fake selection container shows up (See https://github.com/ckeditor/ckeditor5/issues/9825).\\n\\t\\t */\\n\\t\\tmargin-bottom: var(--ck-spacing-large);\\n\\t}\\n\\n\\t/* https://github.com/ckeditor/ckeditor5/issues/6517 */\\n\\t&.ck-blurred ::selection {\\n\\t\\tbackground: var(--ck-color-editable-blur-selection);\\n\\t}\\n}\\n\\n/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/111 */\\n.ck.ck-balloon-panel.ck-toolbar-container[class*=\\\"arrow_n\\\"] {\\n\\t&::after {\\n\\t\\tborder-bottom-color: var(--ck-color-panel-background);\\n\\t}\\n}\\n\\n.ck.ck-balloon-panel.ck-toolbar-container[class*=\\\"arrow_s\\\"] {\\n\\t&::after {\\n\\t\\tborder-top-color: var(--ck-color-panel-background);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-form__header{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between}.ck.ck-form__header h2.ck-form__header__label{flex-grow:1}:root{--ck-form-header-height:44px}.ck.ck-form__header{border-bottom:1px solid var(--ck-color-base-border);height:var(--ck-form-header-height);line-height:var(--ck-form-header-height);padding:var(--ck-spacing-small) var(--ck-spacing-large)}[dir=ltr] .ck.ck-form__header>.ck-icon{margin-right:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-form__header>.ck-icon{margin-left:var(--ck-spacing-medium)}.ck.ck-form__header .ck-form__header__label{--ck-font-size-base:15px;font-weight:700}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/formheader/formheader.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/formheader/formheader.css\"],\"names\":[],\"mappings\":\"AAKA,oBAIC,kBAAmB,CAHnB,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CAEjB,6BAKD,CAHC,8CACC,WACD,CCPD,MACC,4BACD,CAEA,oBAIC,mDAAoD,CAFpD,mCAAoC,CACpC,wCAAyC,CAFzC,uDAmBD,CAdC,uCAEE,qCAMF,CARA,uCAME,oCAEF,CAEA,4CACC,wBAAyB,CACzB,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-form__header {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\tflex-wrap: nowrap;\\n\\talign-items: center;\\n\\tjustify-content: space-between;\\n\\n\\t& h2.ck-form__header__label {\\n\\t\\tflex-grow: 1;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n:root {\\n\\t--ck-form-header-height: 44px;\\n}\\n\\n.ck.ck-form__header {\\n\\tpadding: var(--ck-spacing-small) var(--ck-spacing-large);\\n\\theight: var(--ck-form-header-height);\\n\\tline-height: var(--ck-form-header-height);\\n\\tborder-bottom: 1px solid var(--ck-color-base-border);\\n\\n\\t& > .ck-icon {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\tmargin-right: var(--ck-spacing-medium);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\tmargin-left: var(--ck-spacing-medium);\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-form__header__label {\\n\\t\\t--ck-font-size-base: 15px;\\n\\t\\tfont-weight: bold;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-highlighted-text mark{background:var(--ck-color-highlight-background);font-size:inherit;font-weight:inherit;line-height:inherit;vertical-align:initial}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/highlightedtext/highlightedtext.css\"],\"names\":[],\"mappings\":\"AAKA,6BACC,+CAAgD,CAIhD,iBAAkB,CAFlB,mBAAoB,CACpB,mBAAoB,CAFpB,sBAID\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-highlighted-text mark {\\n\\tbackground: var(--ck-color-highlight-background);\\n\\tvertical-align: initial;\\n\\tfont-weight: inherit;\\n\\tline-height: inherit;\\n\\tfont-size: inherit;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-icon{vertical-align:middle}:root{--ck-icon-size:calc(var(--ck-line-height-base)*var(--ck-font-size-normal))}.ck.ck-icon{font-size:.8333350694em;height:var(--ck-icon-size);width:var(--ck-icon-size);will-change:transform}.ck.ck-icon,.ck.ck-icon *{cursor:inherit}.ck.ck-icon.ck-icon_inherit-color,.ck.ck-icon.ck-icon_inherit-color *{color:inherit}.ck.ck-icon.ck-icon_inherit-color :not([fill]){fill:currentColor}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/icon/icon.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/icon/icon.css\"],\"names\":[],\"mappings\":\"AAKA,YACC,qBACD,CCFA,MACC,0EACD,CAEA,YAKC,uBAAwB,CAHxB,0BAA2B,CAD3B,yBAA0B,CAU1B,qBAoBD,CAlBC,0BALA,cAQA,CAMC,sEACC,aAMD,CAJC,+CAEC,iBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-icon {\\n\\tvertical-align: middle;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-icon-size: calc(var(--ck-line-height-base) * var(--ck-font-size-normal));\\n}\\n\\n.ck.ck-icon {\\n\\twidth: var(--ck-icon-size);\\n\\theight: var(--ck-icon-size);\\n\\n\\t/* Multiplied by the height of the line in \\\"px\\\" should give SVG \\\"viewport\\\" dimensions */\\n\\tfont-size: .8333350694em;\\n\\n\\t/* Inherit cursor style (#5). */\\n\\tcursor: inherit;\\n\\n\\t/* This will prevent blurry icons on Firefox. See #340. */\\n\\twill-change: transform;\\n\\n\\t& * {\\n\\t\\t/* Inherit cursor style (#5). */\\n\\t\\tcursor: inherit;\\n\\t}\\n\\n\\t/* Allows dynamic coloring of an icon by inheriting its color from the parent. */\\n\\t&.ck-icon_inherit-color {\\n\\t\\tcolor: inherit;\\n\\n\\t\\t& * {\\n\\t\\t\\tcolor: inherit;\\n\\n\\t\\t\\t&:not([fill]) {\\n\\t\\t\\t\\t/* Needed by FF. */\\n\\t\\t\\t\\tfill: currentColor;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-input-width:18em;--ck-input-text-width:var(--ck-input-width)}.ck.ck-input{border-radius:0}.ck-rounded-corners .ck.ck-input,.ck.ck-input.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-input{background:var(--ck-color-input-background);border:1px solid var(--ck-color-input-border);min-height:var(--ck-ui-component-min-height);min-width:var(--ck-input-width);padding:var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);transition:box-shadow .1s ease-in-out,border .1s ease-in-out}@media (prefers-reduced-motion:reduce){.ck.ck-input{transition:none}}.ck.ck-input:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-focus-outer-shadow),0 0;outline:none}.ck.ck-input[readonly]{background:var(--ck-color-input-disabled-background);border:1px solid var(--ck-color-input-disabled-border);color:var(--ck-color-input-disabled-text)}.ck.ck-input[readonly]:focus{box-shadow:var(--ck-focus-disabled-outer-shadow),0 0}.ck.ck-input.ck-error{animation:ck-input-shake .3s ease both;border-color:var(--ck-color-input-error-border)}@media (prefers-reduced-motion:reduce){.ck.ck-input.ck-error{animation:none}}.ck.ck-input.ck-error:focus{box-shadow:var(--ck-focus-error-outer-shadow),0 0}@keyframes ck-input-shake{20%{transform:translateX(-2px)}40%{transform:translateX(2px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/input/input.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AASA,MACC,qBAAsB,CAGtB,2CACD,CAEA,aCLC,eDmDD,CA9CA,iECDE,qCD+CF,CA9CA,aAGC,2CAA4C,CAC5C,6CAA8C,CAK9C,4CAA6C,CAH7C,+BAAgC,CADhC,6DAA8D,CAO9D,4DAkCD,CAhCC,uCAdD,aAeE,eA+BF,CA9BC,CAEA,mBEvBA,2BAA2B,CCF3B,2CAA8B,CDC9B,YF2BA,CAEA,uBAEC,oDAAqD,CADrD,sDAAuD,CAEvD,yCAMD,CAJC,6BGnCD,oDHsCC,CAGD,sBAEC,sCAAuC,CADvC,+CAUD,CAPC,uCAJD,sBAKE,cAMF,CALC,CAEA,4BGjDD,iDHmDC,CAIF,0BACC,IACC,0BACD,CAEA,IACC,yBACD,CAEA,IACC,0BACD,CAEA,IACC,yBACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_focus.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-input-width: 18em;\\n\\n\\t/* Backward compatibility. */\\n\\t--ck-input-text-width: var(--ck-input-width);\\n}\\n\\n.ck.ck-input {\\n\\t@mixin ck-rounded-corners;\\n\\n\\tbackground: var(--ck-color-input-background);\\n\\tborder: 1px solid var(--ck-color-input-border);\\n\\tpadding: var(--ck-spacing-extra-tiny) var(--ck-spacing-medium);\\n\\tmin-width: var(--ck-input-width);\\n\\n\\t/* This is important to stay of the same height as surrounding buttons */\\n\\tmin-height: var(--ck-ui-component-min-height);\\n\\n\\t/* Apply some smooth transition to the box-shadow and border. */\\n\\ttransition: box-shadow .1s ease-in-out, border .1s ease-in-out;\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t&:focus {\\n\\t\\t@mixin ck-focus-ring;\\n\\t\\t@mixin ck-box-shadow var(--ck-focus-outer-shadow);\\n\\t}\\n\\n\\t&[readonly] {\\n\\t\\tborder: 1px solid var(--ck-color-input-disabled-border);\\n\\t\\tbackground: var(--ck-color-input-disabled-background);\\n\\t\\tcolor: var(--ck-color-input-disabled-text);\\n\\n\\t\\t&:focus {\\n\\t\\t\\t/* The read-only input should have a slightly less visible shadow when focused. */\\n\\t\\t\\t@mixin ck-box-shadow var(--ck-focus-disabled-outer-shadow);\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-error {\\n\\t\\tborder-color: var(--ck-color-input-error-border);\\n\\t\\tanimation: ck-input-shake .3s ease both;\\n\\n\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\tanimation: none;\\n\\t\\t}\\n\\n\\t\\t&:focus {\\n\\t\\t\\t@mixin ck-box-shadow var(--ck-focus-error-outer-shadow);\\n\\t\\t}\\n\\t}\\n}\\n\\n@keyframes ck-input-shake {\\n\\t20% {\\n\\t\\ttransform: translateX(-2px);\\n\\t}\\n\\n\\t40% {\\n\\t\\ttransform: translateX(2px);\\n\\t}\\n\\n\\t60% {\\n\\t\\ttransform: translateX(-1px);\\n\\t}\\n\\n\\t80% {\\n\\t\\ttransform: translateX(1px);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-label{display:block}.ck.ck-voice-label{display:none}.ck.ck-label{font-weight:700}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/label/label.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/label/label.css\"],\"names\":[],\"mappings\":\"AAKA,aACC,aACD,CAEA,mBACC,YACD,CCNA,aACC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-label {\\n\\tdisplay: block;\\n}\\n\\n.ck.ck-voice-label {\\n\\tdisplay: none;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-label {\\n\\tfont-weight: bold;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{display:flex;position:relative}.ck.ck-labeled-field-view .ck.ck-label{display:block;position:absolute}:root{--ck-labeled-field-view-transition:.1s cubic-bezier(0,0,0.24,0.95);--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-spacing-medium);--ck-labeled-field-label-default-position-x:var(--ck-spacing-medium);--ck-labeled-field-label-default-position-y:calc(var(--ck-font-size-base)*0.6);--ck-color-labeled-field-label-background:var(--ck-color-base-background)}.ck.ck-labeled-field-view{border-radius:0}.ck-rounded-corners .ck.ck-labeled-field-view,.ck.ck-labeled-field-view.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper{width:100%}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{top:0}[dir=ltr] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{left:0;transform:translate(var(--ck-spacing-medium),-6px) scale(.75);transform-origin:0 0}[dir=rtl] .ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{right:0;transform:translate(calc(var(--ck-spacing-medium)*-1),-6px) scale(.75);transform-origin:100% 0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:var(--ck-color-labeled-field-label-background);font-weight:400;line-height:normal;max-width:100%;overflow:hidden;padding:0 calc(var(--ck-font-size-tiny)*.5);pointer-events:none;text-overflow:ellipsis;transition:transform var(--ck-labeled-field-view-transition),padding var(--ck-labeled-field-view-transition),background var(--ck-labeled-field-view-transition)}@media (prefers-reduced-motion:reduce){.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transition:none}}.ck.ck-labeled-field-view.ck-error .ck-input:not([readonly])+.ck.ck-label,.ck.ck-labeled-field-view.ck-error>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view .ck-labeled-field-view__status{font-size:var(--ck-font-size-small);margin-top:var(--ck-spacing-small);white-space:normal}.ck.ck-labeled-field-view .ck-labeled-field-view__status.ck-labeled-field-view__status_error{color:var(--ck-color-base-error)}.ck.ck-labeled-field-view.ck-disabled>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{color:var(--ck-color-input-disabled-text)}[dir=ltr] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=ltr] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(var(--ck-labeled-field-label-default-position-x),var(--ck-labeled-field-label-default-position-y)) scale(1)}[dir=rtl] .ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,[dir=rtl] .ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{transform:translate(calc(var(--ck-labeled-field-label-default-position-x)*-1),var(--ck-labeled-field-label-default-position-y)) scale(1)}.ck.ck-labeled-field-view.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label,.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error)>.ck.ck-labeled-field-view__input-wrapper>.ck.ck-label{background:transparent;max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width));padding:0}.ck.ck-labeled-field-view>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck.ck-button{background:transparent}.ck.ck-labeled-field-view.ck-labeled-field-view_empty>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown>.ck-button>.ck-button__label{opacity:0}.ck.ck-labeled-field-view.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder)>.ck.ck-labeled-field-view__input-wrapper>.ck-dropdown+.ck-label{max-width:calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard))}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/labeledfield/labeledfieldview.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/labeledfield/labeledfieldview.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAMC,mEACC,YAAa,CACb,iBACD,CAEA,uCACC,aAAc,CACd,iBACD,CCND,MACC,kEAAsE,CACtE,gFAAiF,CACjF,oEAAqE,CACrE,8EAAiF,CACjF,yEACD,CAEA,0BCLC,eDmHD,CA9GA,2FCDE,qCD+GF,CA3GC,mEACC,UAwCD,CAtCC,gFACC,KAoCD,CArCA,0FAIE,MAAS,CAGT,6DAA+D,CAF/D,oBAgCF,CArCA,0FAWE,OAAU,CAEV,sEAA0E,CAD1E,uBAyBF,CArCA,gFAkBC,yDAA0D,CAG1D,eAAmB,CADnB,kBAAoB,CAOpB,cAAe,CAFf,eAAgB,CANhB,2CAA8C,CAH9C,mBAAoB,CAQpB,sBAAuB,CAKvB,+JAQD,CAHC,uCAlCD,gFAmCE,eAEF,CADC,CASD,mKACC,gCACD,CAGD,yDACC,mCAAoC,CACpC,kCAAmC,CAInC,kBAKD,CAHC,6FACC,gCACD,CAID,4OAEC,yCACD,CAIA,2XAGE,+HAYF,CAfA,2XAOE,wIAQF,CAfA,uWAaC,sBAAuB,CAFvB,iEAAkE,CAGlE,SACD,CAKA,8FACC,sBACD,CAGA,yIACC,SACD,CAGA,kMACC,8HACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-labeled-field-view {\\n\\t& > .ck.ck-labeled-field-view__input-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t& .ck.ck-label {\\n\\t\\tdisplay: block;\\n\\t\\tposition: absolute;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n@import \\\"../../../mixins/_rounded.css\\\";\\n\\n:root {\\n\\t--ck-labeled-field-view-transition: .1s cubic-bezier(0, 0, 0.24, 0.95);\\n\\t--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-spacing-medium);\\n\\t--ck-labeled-field-label-default-position-x: var(--ck-spacing-medium);\\n\\t--ck-labeled-field-label-default-position-y: calc(0.6 * var(--ck-font-size-base));\\n\\t--ck-color-labeled-field-label-background: var(--ck-color-base-background);\\n}\\n\\n.ck.ck-labeled-field-view {\\n\\t@mixin ck-rounded-corners;\\n\\n\\t& > .ck.ck-labeled-field-view__input-wrapper {\\n\\t\\twidth: 100%;\\n\\n\\t\\t& > .ck.ck-label {\\n\\t\\t\\ttop: 0px;\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tleft: 0px;\\n\\t\\t\\t\\ttransform-origin: 0 0;\\n\\t\\t\\t\\t/* By default, display the label scaled down above the field. */\\n\\t\\t\\t\\ttransform: translate(var(--ck-spacing-medium), -6px) scale(.75);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tright: 0px;\\n\\t\\t\\t\\ttransform-origin: 100% 0;\\n\\t\\t\\t\\ttransform: translate(calc(-1 * var(--ck-spacing-medium)), -6px) scale(.75);\\n\\t\\t\\t}\\n\\n\\t\\t\\tpointer-events: none;\\n\\n\\t\\t\\tbackground: var(--ck-color-labeled-field-label-background);\\n\\t\\t\\tpadding: 0 calc(.5 * var(--ck-font-size-tiny));\\n\\t\\t\\tline-height: initial;\\n\\t\\t\\tfont-weight: normal;\\n\\n\\t\\t\\t/* Prevent overflow when the label is longer than the input */\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\n\\t\\t\\tmax-width: 100%;\\n\\n\\t\\t\\ttransition:\\n\\t\\t\\t\\ttransform var(--ck-labeled-field-view-transition),\\n\\t\\t\\t\\tpadding var(--ck-labeled-field-view-transition),\\n\\t\\t\\t\\tbackground var(--ck-labeled-field-view-transition);\\n\\n\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\ttransition: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-error {\\n\\t\\t& > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\\n\\t\\t\\tcolor: var(--ck-color-base-error);\\n\\t\\t}\\n\\n\\t\\t& .ck-input:not([readonly]) + .ck.ck-label {\\n\\t\\t\\tcolor: var(--ck-color-base-error);\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-labeled-field-view__status {\\n\\t\\tfont-size: var(--ck-font-size-small);\\n\\t\\tmargin-top: var(--ck-spacing-small);\\n\\n\\t\\t/* Let the info wrap to the next line to avoid stretching the layout horizontally.\\n\\t\\tThe status could be very long. */\\n\\t\\twhite-space: normal;\\n\\n\\t\\t&.ck-labeled-field-view__status_error {\\n\\t\\t\\tcolor: var(--ck-color-base-error);\\n\\t\\t}\\n\\t}\\n\\n\\t/* Disabled fields and fields that have no focus should fade out. */\\n\\t&.ck-disabled > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\\n\\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\\n\\t\\tcolor: var(--ck-color-input-disabled-text);\\n\\t}\\n\\n\\t/* Fields that are disabled or not focused and without a placeholder should have full-sized labels. */\\n\\t/* stylelint-disable-next-line no-descending-specificity */\\n\\t&.ck-disabled.ck-labeled-field-view_empty:not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label,\\n\\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder):not(.ck-error) > .ck.ck-labeled-field-view__input-wrapper > .ck.ck-label {\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\ttransform: translate(var(--ck-labeled-field-label-default-position-x), var(--ck-labeled-field-label-default-position-y)) scale(1);\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\ttransform: translate(calc(-1 * var(--ck-labeled-field-label-default-position-x)), var(--ck-labeled-field-label-default-position-y)) scale(1);\\n\\t\\t}\\n\\n\\t\\t/* Compensate for the default translate position. */\\n\\t\\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width));\\n\\n\\t\\tbackground: transparent;\\n\\t\\tpadding: 0;\\n\\t}\\n\\n\\t/*------ DropdownView integration ----------------------------------------------------------------------------------- */\\n\\n\\t/* Make sure dropdown' background color in any of dropdown's state does not collide with labeled field. */\\n\\t& > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck.ck-button {\\n\\t\\tbackground: transparent;\\n\\t}\\n\\n\\t/* When the dropdown is \\\"empty\\\", the labeled field label replaces its label. */\\n\\t&.ck-labeled-field-view_empty > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown > .ck-button > .ck-button__label {\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t/* Make sure the label of the empty, unfocused input does not cover the dropdown arrow. */\\n\\t&.ck-labeled-field-view_empty:not(.ck-labeled-field-view_focused):not(.ck-labeled-field-view_placeholder) > .ck.ck-labeled-field-view__input-wrapper > .ck-dropdown + .ck-label {\\n\\t\\tmax-width: calc(var(--ck-labeled-field-empty-unfocused-max-width) - var(--ck-dropdown-arrow-size) - var(--ck-spacing-standard));\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-list{display:flex;flex-direction:column;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-list .ck-list__item,.ck.ck-list .ck-list__separator{display:block}.ck.ck-list .ck-list__item>:focus{position:relative;z-index:var(--ck-z-default)}:root{--ck-list-button-padding:calc(var(--ck-line-height-base)*0.11*var(--ck-font-size-base)) calc(var(--ck-line-height-base)*0.4*var(--ck-font-size-base))}.ck.ck-list{border-radius:0}.ck-rounded-corners .ck.ck-list,.ck.ck-list.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-list{background:var(--ck-color-list-background);list-style-type:none}.ck.ck-list__item{cursor:default;min-width:12em}.ck.ck-list__item>.ck-button{border-radius:0;min-height:unset;width:100%}[dir=ltr] .ck.ck-list__item>.ck-button{text-align:left}[dir=rtl] .ck.ck-list__item>.ck-button{text-align:right}.ck.ck-list__item>.ck-button{padding:var(--ck-list-button-padding)}.ck.ck-list__item>.ck-button:active{box-shadow:none}.ck.ck-list__item>.ck-button.ck-on{background:var(--ck-color-list-button-on-background);color:var(--ck-color-list-button-on-text)}.ck.ck-list__item>.ck-button.ck-on:active{box-shadow:none}.ck.ck-list__item>.ck-button.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-on-background-focus)}.ck.ck-list__item>.ck-button.ck-on:focus:not(.ck-switchbutton):not(.ck-disabled){border-color:var(--ck-color-base-background)}.ck.ck-list__item>.ck-button:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background)}.ck.ck-list__item>.ck-switchbutton.ck-on{background:var(--ck-color-list-background);color:inherit}.ck.ck-list__item>.ck-switchbutton.ck-on:hover:not(.ck-disabled){background:var(--ck-color-list-button-hover-background);color:inherit}.ck-list .ck-list__group{padding-top:var(--ck-spacing-medium);:not(.ck-hidden)~&{border-top:1px solid var(--ck-color-base-border)}}.ck-list .ck-list__group>.ck-label{font-size:11px;font-weight:700;padding:var(--ck-spacing-medium) var(--ck-spacing-medium) 0 var(--ck-spacing-medium)}.ck.ck-list__separator{background:var(--ck-color-base-border);height:1px;width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/list/list.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/list/list.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAOA,YAGC,YAAa,CACb,qBAAsB,CCFtB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBDaD,CAZC,2DAEC,aACD,CAKA,kCACC,iBAAkB,CAClB,2BACD,CEdD,MACC,qJAGD,CAEA,YCLC,eDUD,CALA,+DCDE,qCDMF,CALA,YAIC,0CAA2C,CAD3C,oBAED,CAEA,kBACC,cAAe,CACf,cA2DD,CAzDC,6BAGC,eAAgB,CAFhB,gBAAiB,CACjB,UAwCD,CA1CA,uCAME,eAoCF,CA1CA,uCAUE,gBAgCF,CA1CA,6BAgBC,qCA0BD,CAxBC,oCACC,eACD,CAEA,mCACC,oDAAqD,CACrD,yCAaD,CAXC,0CACC,eACD,CAEA,2DACC,0DACD,CAEA,iFACC,4CACD,CAGD,qDACC,uDACD,CAMA,yCACC,0CAA2C,CAC3C,aAMD,CAJC,iEACC,uDAAwD,CACxD,aACD,CAKH,yBACC,oCAAqC,CAGrC,mBACC,gDACD,CAOD,CALC,mCACC,cAAe,CACf,eAAiB,CACjB,oFACD,CAGD,uBAGC,sCAAuC,CAFvC,UAAW,CACX,UAED\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../mixins/_unselectable.css\\\";\\n\\n.ck.ck-list {\\n\\t@mixin ck-unselectable;\\n\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\t& .ck-list__item,\\n\\t& .ck-list__separator {\\n\\t\\tdisplay: block;\\n\\t}\\n\\n\\t/* Make sure that whatever child of the list item gets focus, it remains on the\\n\\ttop. Thanks to that, styles like box-shadow, outline, etc. are not masked by\\n\\tadjacent list items. */\\n\\t& .ck-list__item > *:focus {\\n\\t\\tposition: relative;\\n\\t\\tz-index: var(--ck-z-default);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Makes element unselectable.\\n */\\n@define-mixin ck-unselectable {\\n\\t-moz-user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n:root {\\n\\t--ck-list-button-padding:\\n\\t\\tcalc(.11 * var(--ck-line-height-base) * var(--ck-font-size-base))\\n\\t\\tcalc(.4 * var(--ck-line-height-base) * var(--ck-font-size-base));\\n}\\n\\n.ck.ck-list {\\n\\t@mixin ck-rounded-corners;\\n\\n\\tlist-style-type: none;\\n\\tbackground: var(--ck-color-list-background);\\n}\\n\\n.ck.ck-list__item {\\n\\tcursor: default;\\n\\tmin-width: 12em;\\n\\n\\t& > .ck-button {\\n\\t\\tmin-height: unset;\\n\\t\\twidth: 100%;\\n\\t\\tborder-radius: 0;\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\ttext-align: right;\\n\\t\\t}\\n\\n\\t\\t/* List items should have the same height. Use absolute units to make sure it is so\\n\\t\\t because e.g. different heading styles may have different height\\n\\t\\t https://github.com/ckeditor/ckeditor5-heading/issues/63 */\\n\\t\\tpadding: var(--ck-list-button-padding);\\n\\n\\t\\t&:active {\\n\\t\\t\\tbox-shadow: none;\\n\\t\\t}\\n\\n\\t\\t&.ck-on {\\n\\t\\t\\tbackground: var(--ck-color-list-button-on-background);\\n\\t\\t\\tcolor: var(--ck-color-list-button-on-text);\\n\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\tbox-shadow: none;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:hover:not(.ck-disabled) {\\n\\t\\t\\t\\tbackground: var(--ck-color-list-button-on-background-focus);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:focus:not(.ck-switchbutton):not(.ck-disabled) {\\n\\t\\t\\t\\tborder-color: var(--ck-color-base-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:hover:not(.ck-disabled) {\\n\\t\\t\\tbackground: var(--ck-color-list-button-hover-background);\\n\\t\\t}\\n\\t}\\n\\n\\t/* It's unnecessary to change the background/text of a switch toggle; it has different ways\\n\\tof conveying its state (like the switcher) */\\n\\t& > .ck-switchbutton {\\n\\t\\t&.ck-on {\\n\\t\\t\\tbackground: var(--ck-color-list-background);\\n\\t\\t\\tcolor: inherit;\\n\\n\\t\\t\\t&:hover:not(.ck-disabled) {\\n\\t\\t\\t\\tbackground: var(--ck-color-list-button-hover-background);\\n\\t\\t\\t\\tcolor: inherit;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck-list .ck-list__group {\\n\\tpadding-top: var(--ck-spacing-medium);\\n\\n\\t/* The group should have a border when it's not the first item. */\\n\\t*:not(.ck-hidden) ~ & {\\n\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\t}\\n\\n\\t& > .ck-label {\\n\\t\\tfont-size: 11px;\\n\\t\\tfont-weight: bold;\\n\\t\\tpadding: var(--ck-spacing-medium) var(--ck-spacing-medium) 0 var(--ck-spacing-medium);\\n\\t}\\n}\\n\\n.ck.ck-list__separator {\\n\\theight: 1px;\\n\\twidth: 100%;\\n\\tbackground: var(--ck-color-base-border);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-menu-bar{background:var(--ck-color-base-background);border:1px solid var(--ck-color-toolbar-border);display:flex;flex-wrap:wrap;gap:var(--ck-spacing-small);justify-content:flex-start;padding:var(--ck-spacing-small);width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubar.css\"],\"names\":[],\"mappings\":\"AAKA,gBAIC,0CAA2C,CAG3C,+CAAgD,CANhD,YAAa,CACb,cAAe,CAIf,2BAA4B,CAH5B,0BAA2B,CAE3B,+BAAgC,CAGhC,UACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-menu-bar {\\n\\tdisplay: flex;\\n\\tflex-wrap: wrap;\\n\\tjustify-content: flex-start;\\n\\tbackground: var(--ck-color-base-background);\\n\\tpadding: var(--ck-spacing-small);\\n\\tgap: var(--ck-spacing-small);\\n\\tborder: 1px solid var(--ck-color-toolbar-border);\\n\\twidth: 100%;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-menu-bar__menu{display:block;font-size:inherit;position:relative}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level{max-width:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/menubar/menubarmenu.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenu.css\"],\"names\":[],\"mappings\":\"AAKA,sBACC,aAAc,CCCd,iBAAkB,CDAlB,iBACD,CCCC,kDACC,cACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-menu-bar__menu {\\n\\tdisplay: block;\\n\\tposition: relative;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-menu-bar__menu {\\n\\t/* Enable font size inheritance, which allows fluid UI scaling. */\\n\\tfont-size: inherit;\\n\\n\\t&.ck-menu-bar__menu_top-level {\\n\\t\\tmax-width: 100%;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-menu-bar__menu>.ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{pointer-events:none;z-index:var(--ck-z-default)}.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button{padding:var(--ck-list-button-padding);width:100%}.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button>.ck-button__label{flex-grow:1;overflow:hidden;text-overflow:ellipsis}.ck.ck-menu-bar__menu>.ck-menu-bar__menu__button.ck-disabled>.ck-button__label{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-menu-bar__menu>.ck-menu-bar__menu__button:not(.ck-button_with-text){padding-left:var(--ck-spacing-small)}[dir=rtl] .ck.ck-menu-bar__menu>.ck-menu-bar__menu__button:not(.ck-button_with-text){padding-right:var(--ck-spacing-small)}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button{min-height:unset;padding:var(--ck-spacing-small) var(--ck-spacing-medium)}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button .ck-button__label{line-height:unset;width:unset}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button.ck-on{border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__button .ck-icon{display:none}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button{border-radius:0}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button:focus{border-color:transparent;box-shadow:none}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button:focus:not(.ck-on){background:var(--ck-color-button-default-hover-background)}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button:not(:has(.ck-button__icon))>.ck-button__label{margin-left:calc(var(--ck-icon-size) - var(--ck-spacing-small))}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{width:var(--ck-dropdown-arrow-size)}[dir=ltr] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{transform:rotate(-90deg)}[dir=rtl] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{transform:rotate(90deg)}.ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button.ck-disabled>.ck-menu-bar__menu__button__arrow{opacity:var(--ck-disabled-opacity)}[dir=ltr] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{margin-left:var(--ck-spacing-standard);right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-menu-bar__menu:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button>.ck-menu-bar__menu__button__arrow{left:var(--ck-spacing-standard);margin-right:var(--ck-spacing-small)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/menubar/menubarmenubutton.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenubutton.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_disabled.css\"],\"names\":[],\"mappings\":\"AAMC,mFACC,mBAAoB,CACpB,2BACD,CCIA,iDACC,qCAAsC,CACtC,UAuBD,CArBC,mEACC,WAAY,CACZ,eAAgB,CAChB,sBACD,CAEA,+ECdD,kCDgBC,CAGC,qFACC,oCACD,CAIA,qFACC,qCACD,CAOF,6EAEC,gBAAiB,CADjB,wDAgBD,CAbC,+FAEC,iBAAkB,CADlB,WAED,CAEA,mFACC,2BAA4B,CAC5B,4BACD,CAEA,sFACC,YACD,CAMD,mFACC,eAiDD,CA/CC,yFACC,wBAAyB,CACzB,eAKD,CAHC,qGACC,0DACD,CAID,iIACC,+DACD,CAEA,qHACC,mCASD,CAVA,+HAIE,wBAMF,CAVA,+HAQE,uBAEF,CAEA,iICrFD,kCDuFC,CAGC,+HAIC,sCAAuC,CAHvC,gCAID,CAIA,+HACC,+BAAgC,CAGhC,oCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-menu-bar__menu {\\n\\t& > .ck-menu-bar__menu__button > .ck-menu-bar__menu__button__arrow {\\n\\t\\tpointer-events: none;\\n\\t\\tz-index: var(--ck-z-default);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_disabled.css\\\";\\n@import \\\"../../mixins/_button.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-menu-bar__menu {\\n\\t/*\\n\\t * All menu buttons.\\n\\t */\\n\\t& > .ck-menu-bar__menu__button {\\n\\t\\tpadding: var(--ck-list-button-padding);\\n\\t\\twidth: 100%;\\n\\n\\t\\t& > .ck-button__label {\\n\\t\\t\\tflex-grow: 1;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&.ck-disabled > .ck-button__label {\\n\\t\\t\\t@mixin ck-disabled;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t&:not(.ck-button_with-text) {\\n\\t\\t\\t\\tpadding-left: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t&:not(.ck-button_with-text) {\\n\\t\\t\\t\\tpadding-right: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Top-level menu buttons only.\\n\\t */\\n\\t&.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__button {\\n\\t\\tpadding: var(--ck-spacing-small) var(--ck-spacing-medium);\\n\\t\\tmin-height: unset;\\n\\n\\t\\t& .ck-button__label {\\n\\t\\t\\twidth: unset;\\n\\t\\t\\tline-height: unset;\\n\\t\\t}\\n\\n\\t\\t&.ck-on {\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Sub-menu buttons.\\n\\t */\\n\\t&:not(.ck-menu-bar__menu_top-level) .ck-menu-bar__menu__button {\\n\\t\\tborder-radius: 0;\\n\\n\\t\\t&:focus {\\n\\t\\t\\tborder-color: transparent;\\n\\t\\t\\tbox-shadow: none;\\n\\n\\t\\t\\t&:not(.ck-on) {\\n\\t\\t\\t\\tbackground: var(--ck-color-button-default-hover-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* Spacing in buttons that miss the icon. */\\n\\t\\t&:not(:has(.ck-button__icon)) > .ck-button__label {\\n\\t\\t\\tmargin-left: calc(var(--ck-icon-size) - var(--ck-spacing-small));\\n\\t\\t}\\n\\n\\t\\t& > .ck-menu-bar__menu__button__arrow {\\n\\t\\t\\twidth: var(--ck-dropdown-arrow-size);\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\ttransform: rotate(-90deg);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\ttransform: rotate(90deg);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&.ck-disabled > .ck-menu-bar__menu__button__arrow {\\n\\t\\t\\t@mixin ck-disabled;\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t& > .ck-menu-bar__menu__button__arrow {\\n\\t\\t\\t\\tright: var(--ck-spacing-standard);\\n\\n\\t\\t\\t\\t/* A space to accommodate the triangle. */\\n\\t\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t& > .ck-menu-bar__menu__button__arrow {\\n\\t\\t\\t\\tleft: var(--ck-spacing-standard);\\n\\n\\t\\t\\t\\t/* A space to accommodate the triangle. */\\n\\t\\t\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A class which indicates that an element holding it is disabled.\\n */\\n@define-mixin ck-disabled {\\n\\topacity: var(--ck-disabled-opacity);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-menu-bar-menu-item-min-width:18em}.ck.ck-menu-bar__menu .ck.ck-menu-bar__menu__item{min-width:var(--ck-menu-bar-menu-item-min-width)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenulistitem.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,sCACD,CAEA,kDACC,gDACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-menu-bar-menu-item-min-width: 18em;\\n}\\n\\n.ck.ck-menu-bar__menu .ck.ck-menu-bar__menu__item {\\n\\tmin-width: var(--ck-menu-bar-menu-item-min-width);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button{border-radius:0}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container,.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container .ck-spinner{--ck-toolbar-spinner-size:20px}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button>.ck-spinner-container{margin-left:calc(var(--ck-spacing-small)*-1);margin-right:var(--ck-spacing-small)}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button:focus{border-color:transparent;box-shadow:none}.ck.ck-menu-bar__menu .ck-button.ck-menu-bar__menu__item__button:focus:not(.ck-on){background:var(--ck-color-button-default-hover-background)}.ck.ck-menu-bar__menu.ck-menu-bar__menu_top-level>.ck-menu-bar__menu__panel>ul>.ck-menu-bar__menu__item>.ck-menu-bar__menu__item__button:not(:has(.ck-button__icon))>.ck-button__label{margin-left:calc(var(--ck-icon-size) - var(--ck-spacing-small))}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenulistitembutton.css\"],\"names\":[],\"mappings\":\"AASC,iEACC,eA0BD,CAxBC,0LAGC,8BACD,CAEA,uFAEC,4CAA+C,CAC/C,oCACD,CAMA,uEACC,wBAAyB,CACzB,eAKD,CAHC,mFACC,0DACD,CASD,uLACC,+DACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-menu-bar__menu {\\n\\t/*\\n\\t * List item buttons.\\n\\t */\\n\\t& .ck-button.ck-menu-bar__menu__item__button {\\n\\t\\tborder-radius: 0;\\n\\n\\t\\t& > .ck-spinner-container,\\n\\t\\t& > .ck-spinner-container .ck-spinner {\\n\\t\\t\\t/* These styles correspond to .ck-icon so that the spinner seamlessly replaces the icon. */\\n\\t\\t\\t--ck-toolbar-spinner-size: 20px;\\n\\t\\t}\\n\\n\\t\\t& > .ck-spinner-container {\\n\\t\\t\\t/* These margins are the same as for .ck-icon. */\\n\\t\\t\\tmargin-left: calc(-1 * var(--ck-spacing-small));\\n\\t\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\t}\\n\\n\\t\\t/*\\n\\t\\t * Hovered items automatically get focused. Default focus styles look odd\\n\\t\\t * while moving across a huge list of items so let's get rid of them\\n\\t\\t */\\n\\t\\t&:focus {\\n\\t\\t\\tborder-color: transparent;\\n\\t\\t\\tbox-shadow: none;\\n\\n\\t\\t\\t&:not(.ck-on) {\\n\\t\\t\\t\\tbackground: var(--ck-color-button-default-hover-background);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * First-level sub-menu item buttons.\\n\\t */\\n\\t&.ck-menu-bar__menu_top-level > .ck-menu-bar__menu__panel > ul > .ck-menu-bar__menu__item > .ck-menu-bar__menu__item__button {\\n\\t\\t/* Spacing in buttons that miss the icon. */\\n\\t\\t&:not(:has(.ck-button__icon)) > .ck-button__label {\\n\\t\\t\\tmargin-left: calc(var(--ck-icon-size) - var(--ck-spacing-small));\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-menu-bar-menu-max-width:75vw;--ck-menu-bar-nested-menu-horizontal-offset:5px}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel{max-width:var(--ck-menu-bar-menu-max-width);position:absolute;z-index:var(--ck-z-panel)}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw{bottom:100%}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw{bottom:auto;top:100%}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se{left:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw{right:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es{left:calc(100% - var(--ck-menu-bar-nested-menu-horizontal-offset))}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es{top:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en{bottom:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws{right:calc(100% - var(--ck-menu-bar-nested-menu-horizontal-offset))}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws{top:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn{bottom:0}:root{--ck-menu-bar-menu-panel-max-width:75vw}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel{border-radius:0}.ck-rounded-corners .ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel{background:var(--ck-color-dropdown-panel-background);border:1px solid var(--ck-color-dropdown-panel-border);bottom:0;box-shadow:var(--ck-drop-shadow),0 0;height:fit-content;max-width:var(--ck-menu-bar-menu-panel-max-width)}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_es,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_se{border-top-left-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_sw,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ws{border-top-right-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_en,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_ne{border-bottom-left-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_nw,.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel.ck-menu-bar__menu__panel_position_wn{border-bottom-right-radius:0}.ck.ck-menu-bar__menu>.ck.ck-menu-bar__menu__panel:focus{outline:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/menubar/menubarmenupanel.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/menubar/menubarmenupanel.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,iCAAkC,CAClC,+CACD,CAEA,mDAEC,2CAA4C,CAC5C,iBAAkB,CAFlB,yBAkDD,CA9CC,gLAEC,WACD,CAEA,gLAGC,WAAY,CADZ,QAED,CAEA,gLAEC,MACD,CAEA,gLAEC,OACD,CAEA,gLAEC,kEACD,CAEA,wFACC,KACD,CAEA,wFACC,QACD,CAEA,gLAEC,mEACD,CAEA,wFACC,KACD,CAEA,wFACC,QACD,CCpDD,MACC,uCACD,CAEA,mDCDC,eDmCD,CAlCA,6ICGE,qCD+BF,CAlCA,mDAIC,oDAAqD,CACrD,sDAAuD,CACvD,QAAS,CETT,oCAA8B,CFU9B,kBAAmB,CACnB,iDA0BD,CAvBC,gLAEC,wBACD,CAEA,gLAEC,yBACD,CAEA,gLAEC,2BACD,CAEA,gLAEC,4BACD,CAEA,yDACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-menu-bar-menu-max-width: 75vw;\\n\\t--ck-menu-bar-nested-menu-horizontal-offset: 5px;\\n}\\n\\n.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {\\n\\tz-index: var(--ck-z-panel);\\n\\tmax-width: var(--ck-menu-bar-menu-max-width);\\n\\tposition: absolute;\\n\\n\\t&.ck-menu-bar__menu__panel_position_ne,\\n\\t&.ck-menu-bar__menu__panel_position_nw {\\n\\t\\tbottom: 100%;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_se,\\n\\t&.ck-menu-bar__menu__panel_position_sw {\\n\\t\\ttop: 100%;\\n\\t\\tbottom: auto;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_ne,\\n\\t&.ck-menu-bar__menu__panel_position_se {\\n\\t\\tleft: 0px;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_nw,\\n\\t&.ck-menu-bar__menu__panel_position_sw {\\n\\t\\tright: 0px;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_es,\\n\\t&.ck-menu-bar__menu__panel_position_en {\\n\\t\\tleft: calc( 100% - var(--ck-menu-bar-nested-menu-horizontal-offset) );\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_es {\\n\\t\\ttop: 0px;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_en {\\n\\t\\tbottom: 0px;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_ws,\\n\\t&.ck-menu-bar__menu__panel_position_wn {\\n\\t\\tright: calc( 100% - var(--ck-menu-bar-nested-menu-horizontal-offset) );\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_ws {\\n\\t\\ttop: 0px;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_wn {\\n\\t\\tbottom: 0px;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-menu-bar-menu-panel-max-width: 75vw;\\n}\\n\\n.ck.ck-menu-bar__menu > .ck.ck-menu-bar__menu__panel {\\n\\t@mixin ck-rounded-corners;\\n\\t@mixin ck-drop-shadow;\\n\\n\\tbackground: var(--ck-color-dropdown-panel-background);\\n\\tborder: 1px solid var(--ck-color-dropdown-panel-border);\\n\\tbottom: 0;\\n\\theight: fit-content;\\n\\tmax-width: var(--ck-menu-bar-menu-panel-max-width);\\n\\n\\t/* Corner border radius consistent with the button. */\\n\\t&.ck-menu-bar__menu__panel_position_es,\\n\\t&.ck-menu-bar__menu__panel_position_se {\\n\\t\\tborder-top-left-radius: 0;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_ws,\\n\\t&.ck-menu-bar__menu__panel_position_sw {\\n\\t\\tborder-top-right-radius: 0;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_en,\\n\\t&.ck-menu-bar__menu__panel_position_ne {\\n\\t\\tborder-bottom-left-radius: 0;\\n\\t}\\n\\n\\t&.ck-menu-bar__menu__panel_position_wn,\\n\\t&.ck-menu-bar__menu__panel_position_nw {\\n\\t\\tborder-bottom-right-radius: 0;\\n\\t}\\n\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-balloon-panel-arrow-z-index:calc(var(--ck-z-default) - 3)}.ck.ck-balloon-panel{display:none;position:absolute;z-index:var(--ck-z-panel)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{content:\\\"\\\";position:absolute}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_n]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_n]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel[class*=arrow_s]:before{z-index:var(--ck-balloon-panel-arrow-z-index)}.ck.ck-balloon-panel[class*=arrow_s]:after{z-index:calc(var(--ck-balloon-panel-arrow-z-index) + 1)}.ck.ck-balloon-panel.ck-balloon-panel_visible{display:block}:root{--ck-balloon-border-width:1px;--ck-balloon-arrow-offset:2px;--ck-balloon-arrow-height:10px;--ck-balloon-arrow-half-width:8px;--ck-balloon-arrow-drop-shadow:0 2px 2px var(--ck-color-shadow-drop)}.ck.ck-balloon-panel{border-radius:0}.ck-rounded-corners .ck.ck-balloon-panel,.ck.ck-balloon-panel.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-balloon-panel{background:var(--ck-color-panel-background);border:var(--ck-balloon-border-width) solid var(--ck-color-panel-border);box-shadow:var(--ck-drop-shadow),0 0;min-height:15px}.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:after,.ck.ck-balloon-panel.ck-balloon-panel_with-arrow:before{border-style:solid;height:0;width:0}.ck.ck-balloon-panel[class*=arrow_n]:after,.ck.ck-balloon-panel[class*=arrow_n]:before{border-width:0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_n]:before{border-color:transparent transparent var(--ck-color-panel-border) transparent;margin-top:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_n]:after{border-color:transparent transparent var(--ck-color-panel-background) transparent;margin-top:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_s]:after,.ck.ck-balloon-panel[class*=arrow_s]:before{border-width:var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width)}.ck.ck-balloon-panel[class*=arrow_s]:before{border-color:var(--ck-color-panel-border) transparent transparent;filter:drop-shadow(var(--ck-balloon-arrow-drop-shadow));margin-bottom:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_s]:after{border-color:var(--ck-color-panel-background) transparent transparent transparent;margin-bottom:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_e]:after,.ck.ck-balloon-panel[class*=arrow_e]:before{border-width:var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height)}.ck.ck-balloon-panel[class*=arrow_e]:before{border-color:transparent transparent transparent var(--ck-color-panel-border);margin-right:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_e]:after{border-color:transparent transparent transparent var(--ck-color-panel-background);margin-right:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel[class*=arrow_w]:after,.ck.ck-balloon-panel[class*=arrow_w]:before{border-width:var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0}.ck.ck-balloon-panel[class*=arrow_w]:before{border-color:transparent var(--ck-color-panel-border) transparent transparent;margin-left:calc(var(--ck-balloon-border-width)*-1)}.ck.ck-balloon-panel[class*=arrow_w]:after{border-color:transparent var(--ck-color-panel-background) transparent transparent;margin-left:calc(var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width))}.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_n:before{left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nw:before{left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_ne:before{right:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_s:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:50%;margin-left:calc(var(--ck-balloon-arrow-half-width)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_se:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);right:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_sme:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_smw:before{bottom:calc(var(--ck-balloon-arrow-height)*-1);left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nme:before{margin-right:calc(var(--ck-balloon-arrow-half-width)*2);right:25%;top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_nmw:before{left:25%;margin-left:calc(var(--ck-balloon-arrow-half-width)*2);top:calc(var(--ck-balloon-arrow-height)*-1)}.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_e:before{margin-top:calc(var(--ck-balloon-arrow-half-width)*-1);right:calc(var(--ck-balloon-arrow-height)*-1);top:50%}.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:after,.ck.ck-balloon-panel.ck-balloon-panel_arrow_w:before{left:calc(var(--ck-balloon-arrow-height)*-1);margin-top:calc(var(--ck-balloon-arrow-half-width)*-1);top:50%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/panel/balloonpanel.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonpanel.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAKA,MAEC,8DACD,CAEA,qBACC,YAAa,CACb,iBAAkB,CAElB,yBAyCD,CAtCE,+GAEC,UAAW,CACX,iBACD,CAEA,wDACC,6CACD,CAEA,uDACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAIA,4CACC,6CACD,CAEA,2CACC,uDACD,CAGD,8CACC,aACD,CC9CD,MACC,6BAA8B,CAC9B,6BAA8B,CAC9B,8BAA+B,CAC/B,iCAAkC,CAClC,oEACD,CAEA,qBCLC,eDmMD,CA9LA,iFCDE,qCD+LF,CA9LA,qBAMC,2CAA4C,CAC5C,wEAAyE,CEdzE,oCAA8B,CFW9B,eA0LD,CApLE,+GAIC,kBAAmB,CADnB,QAAS,CADT,OAGD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,kDACD,CAEA,2CACC,iFAAkF,CAClF,gFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,iEAAkE,CAClE,uDAAwD,CACxD,qDACD,CAEA,2CACC,iFAAkF,CAClF,mFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,oDACD,CAEA,2CACC,iFAAkF,CAClF,kFACD,CAIA,uFAEC,mHACD,CAEA,4CACC,6EAA8E,CAC9E,mDACD,CAEA,2CACC,iFAAkF,CAClF,iFACD,CAIA,yGAEC,QAAS,CACT,uDAA0D,CAC1D,2CACD,CAIA,2GAEC,+CAAkD,CAClD,2CACD,CAIA,2GAEC,gDAAmD,CACnD,2CACD,CAIA,yGAIC,8CAAiD,CAFjD,QAAS,CACT,uDAED,CAIA,2GAGC,8CAAiD,CADjD,+CAED,CAIA,2GAGC,8CAAiD,CADjD,gDAED,CAIA,6GAIC,8CAAiD,CADjD,uDAA0D,CAD1D,SAGD,CAIA,6GAIC,8CAAiD,CAFjD,QAAS,CACT,sDAED,CAIA,6GAGC,uDAA0D,CAD1D,SAAU,CAEV,2CACD,CAIA,6GAEC,QAAS,CACT,sDAAyD,CACzD,2CACD,CAIA,yGAGC,sDAAyD,CADzD,6CAAgD,CAEhD,OACD,CAIA,yGAEC,4CAA+C,CAC/C,sDAAyD,CACzD,OACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t/* Make sure the balloon arrow does not float over its children. */\\n\\t--ck-balloon-panel-arrow-z-index: calc(var(--ck-z-default) - 3);\\n}\\n\\n.ck.ck-balloon-panel {\\n\\tdisplay: none;\\n\\tposition: absolute;\\n\\n\\tz-index: var(--ck-z-panel);\\n\\n\\t&.ck-balloon-panel_with-arrow {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\tposition: absolute;\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tz-index: var(--ck-balloon-panel-arrow-z-index);\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_n\\\"] {\\n\\t\\t&::before {\\n\\t\\t\\tz-index: var(--ck-balloon-panel-arrow-z-index);\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_s\\\"] {\\n\\t\\t&::before {\\n\\t\\t\\tz-index: var(--ck-balloon-panel-arrow-z-index);\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tz-index: calc(var(--ck-balloon-panel-arrow-z-index) + 1);\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_visible {\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-balloon-border-width: 1px;\\n\\t--ck-balloon-arrow-offset: 2px;\\n\\t--ck-balloon-arrow-height: 10px;\\n\\t--ck-balloon-arrow-half-width: 8px;\\n\\t--ck-balloon-arrow-drop-shadow: 0 2px 2px var(--ck-color-shadow-drop);\\n}\\n\\n.ck.ck-balloon-panel {\\n\\t@mixin ck-rounded-corners;\\n\\t@mixin ck-drop-shadow;\\n\\n\\tmin-height: 15px;\\n\\n\\tbackground: var(--ck-color-panel-background);\\n\\tborder: var(--ck-balloon-border-width) solid var(--ck-color-panel-border);\\n\\n\\t&.ck-balloon-panel_with-arrow {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\twidth: 0;\\n\\t\\t\\theight: 0;\\n\\t\\t\\tborder-style: solid;\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_n\\\"] {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tborder-width: 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width);\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tborder-color: transparent transparent var(--ck-color-panel-border) transparent;\\n\\t\\t\\tmargin-top: calc( -1 * var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: transparent transparent var(--ck-color-panel-background) transparent;\\n\\t\\t\\tmargin-top: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_s\\\"] {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tborder-width: var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width);\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tborder-color: var(--ck-color-panel-border) transparent transparent;\\n\\t\\t\\tfilter: drop-shadow(var(--ck-balloon-arrow-drop-shadow));\\n\\t\\t\\tmargin-bottom: calc( -1 * var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: var(--ck-color-panel-background) transparent transparent transparent;\\n\\t\\t\\tmargin-bottom: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_e\\\"] {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tborder-width: var(--ck-balloon-arrow-half-width) 0 var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height);\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tborder-color: transparent transparent transparent var(--ck-color-panel-border);\\n\\t\\t\\tmargin-right: calc( -1 * var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: transparent transparent transparent var(--ck-color-panel-background);\\n\\t\\t\\tmargin-right: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"arrow_w\\\"] {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tborder-width: var(--ck-balloon-arrow-half-width) var(--ck-balloon-arrow-height) var(--ck-balloon-arrow-half-width) 0;\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tborder-color: transparent var(--ck-color-panel-border) transparent transparent;\\n\\t\\t\\tmargin-left: calc( -1 * var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\n\\t\\t&::after {\\n\\t\\t\\tborder-color: transparent var(--ck-color-panel-background) transparent transparent;\\n\\t\\t\\tmargin-left: calc( var(--ck-balloon-arrow-offset) - var(--ck-balloon-border-width) );\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_n {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_nw {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_ne {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_s {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\tmargin-left: calc(-1 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_sw {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_se {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_sme {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: 25%;\\n\\t\\t\\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_smw {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: 25%;\\n\\t\\t\\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\tbottom: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_nme {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: 25%;\\n\\t\\t\\tmargin-right: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_nmw {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: 25%;\\n\\t\\t\\tmargin-left: calc(2 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_e {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tright: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t\\tmargin-top: calc(-1 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: 50%;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-balloon-panel_arrow_w {\\n\\t\\t&::before,\\n\\t\\t&::after {\\n\\t\\t\\tleft: calc(-1 * var(--ck-balloon-arrow-height));\\n\\t\\t\\tmargin-top: calc(-1 * var(--ck-balloon-arrow-half-width));\\n\\t\\t\\ttop: 50%;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-balloon-rotator__navigation{align-items:center;display:flex;justify-content:center}.ck .ck-balloon-rotator__content .ck-toolbar{justify-content:center}.ck .ck-balloon-rotator__navigation{background:var(--ck-color-toolbar-background);border-bottom:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation>*{margin-bottom:var(--ck-spacing-small);margin-right:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck .ck-balloon-rotator__navigation .ck-balloon-rotator__counter{margin-left:var(--ck-spacing-small);margin-right:var(--ck-spacing-standard)}.ck .ck-balloon-rotator__content .ck.ck-annotation-wrapper{box-shadow:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/panel/balloonrotator.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/balloonrotator.css\"],\"names\":[],\"mappings\":\"AAKA,oCAEC,kBAAmB,CADnB,YAAa,CAEb,sBACD,CAKA,6CACC,sBACD,CCXA,oCACC,6CAA8C,CAC9C,sDAAuD,CACvD,iCAgBD,CAbC,sCAGC,qCAAsC,CAFtC,oCAAqC,CACrC,kCAED,CAGA,iEAIC,mCAAoC,CAHpC,uCAID,CAMA,2DACC,eACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-balloon-rotator__navigation {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\\n/* Buttons inside a toolbar should be centered when rotator bar is wider.\\n * See: https://github.com/ckeditor/ckeditor5-ui/issues/495\\n */\\n.ck .ck-balloon-rotator__content .ck-toolbar {\\n\\tjustify-content: center;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-balloon-rotator__navigation {\\n\\tbackground: var(--ck-color-toolbar-background);\\n\\tborder-bottom: 1px solid var(--ck-color-toolbar-border);\\n\\tpadding: 0 var(--ck-spacing-small);\\n\\n\\t/* Let's keep similar appearance to `ck-toolbar`. */\\n\\t& > * {\\n\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\tmargin-top: var(--ck-spacing-small);\\n\\t\\tmargin-bottom: var(--ck-spacing-small);\\n\\t}\\n\\n\\t/* Gives counter more breath than buttons. */\\n\\t& .ck-balloon-rotator__counter {\\n\\t\\tmargin-right: var(--ck-spacing-standard);\\n\\n\\t\\t/* We need to use smaller margin because of previous button's right margin. */\\n\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t}\\n}\\n\\n.ck .ck-balloon-rotator__content {\\n\\n\\t/* Disable default annotation shadow inside rotator with fake panels. */\\n\\t& .ck.ck-annotation-wrapper {\\n\\t\\tbox-shadow: none;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-fake-panel{position:absolute;z-index:calc(var(--ck-z-panel) - 1)}.ck .ck-fake-panel div{position:absolute}.ck .ck-fake-panel div:first-child{z-index:2}.ck .ck-fake-panel div:nth-child(2){z-index:1}:root{--ck-balloon-fake-panel-offset-horizontal:6px;--ck-balloon-fake-panel-offset-vertical:6px}.ck .ck-fake-panel div{background:var(--ck-color-panel-background);border:1px solid var(--ck-color-panel-border);border-radius:var(--ck-border-radius);box-shadow:var(--ck-drop-shadow),0 0;height:100%;min-height:15px;width:100%}.ck .ck-fake-panel div:first-child{margin-left:var(--ck-balloon-fake-panel-offset-horizontal);margin-top:var(--ck-balloon-fake-panel-offset-vertical)}.ck .ck-fake-panel div:nth-child(2){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*2);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*2)}.ck .ck-fake-panel div:nth-child(3){margin-left:calc(var(--ck-balloon-fake-panel-offset-horizontal)*3);margin-top:calc(var(--ck-balloon-fake-panel-offset-vertical)*3)}.ck .ck-balloon-panel_arrow_s+.ck-fake-panel,.ck .ck-balloon-panel_arrow_se+.ck-fake-panel,.ck .ck-balloon-panel_arrow_sw+.ck-fake-panel{--ck-balloon-fake-panel-offset-vertical:-6px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/panel/fakepanel.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/fakepanel.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAKA,mBACC,iBAAkB,CAGlB,mCACD,CAEA,uBACC,iBACD,CAEA,mCACC,SACD,CAEA,oCACC,SACD,CCfA,MACC,6CAA8C,CAC9C,2CACD,CAGA,uBAKC,2CAA4C,CAC5C,6CAA8C,CAC9C,qCAAsC,CCXtC,oCAA8B,CDc9B,WAAY,CAPZ,eAAgB,CAMhB,UAED,CAEA,mCACC,0DAA2D,CAC3D,uDACD,CAEA,oCACC,kEAAqE,CACrE,+DACD,CACA,oCACC,kEAAqE,CACrE,+DACD,CAGA,yIAGC,4CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-fake-panel {\\n\\tposition: absolute;\\n\\n\\t/* Fake panels should be placed under main balloon content. */\\n\\tz-index: calc(var(--ck-z-panel) - 1);\\n}\\n\\n.ck .ck-fake-panel div {\\n\\tposition: absolute;\\n}\\n\\n.ck .ck-fake-panel div:nth-child( 1 ) {\\n\\tz-index: 2;\\n}\\n\\n.ck .ck-fake-panel div:nth-child( 2 ) {\\n\\tz-index: 1;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n:root {\\n\\t--ck-balloon-fake-panel-offset-horizontal: 6px;\\n\\t--ck-balloon-fake-panel-offset-vertical: 6px;\\n}\\n\\n/* Let's use `.ck-balloon-panel` appearance. See: balloonpanel.css. */\\n.ck .ck-fake-panel div {\\n\\t@mixin ck-drop-shadow;\\n\\n\\tmin-height: 15px;\\n\\n\\tbackground: var(--ck-color-panel-background);\\n\\tborder: 1px solid var(--ck-color-panel-border);\\n\\tborder-radius: var(--ck-border-radius);\\n\\n\\twidth: 100%;\\n\\theight: 100%;\\n}\\n\\n.ck .ck-fake-panel div:nth-child( 1 ) {\\n\\tmargin-left: var(--ck-balloon-fake-panel-offset-horizontal);\\n\\tmargin-top: var(--ck-balloon-fake-panel-offset-vertical);\\n}\\n\\n.ck .ck-fake-panel div:nth-child( 2 ) {\\n\\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 2);\\n\\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 2);\\n}\\n.ck .ck-fake-panel div:nth-child( 3 ) {\\n\\tmargin-left: calc(var(--ck-balloon-fake-panel-offset-horizontal) * 3);\\n\\tmargin-top: calc(var(--ck-balloon-fake-panel-offset-vertical) * 3);\\n}\\n\\n/* If balloon is positioned above element, we need to move fake panel to the top. */\\n.ck .ck-balloon-panel_arrow_s + .ck-fake-panel,\\n.ck .ck-balloon-panel_arrow_se + .ck-fake-panel,\\n.ck .ck-balloon-panel_arrow_sw + .ck-fake-panel {\\n\\t--ck-balloon-fake-panel-offset-vertical: -6px;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-sticky-panel .ck-sticky-panel__content_sticky{position:fixed;top:0;z-index:var(--ck-z-panel)}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit{position:absolute;top:auto}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky{border-top-left-radius:0;border-top-right-radius:0;border-width:0 1px 1px;box-shadow:var(--ck-drop-shadow),0 0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/panel/stickypanel.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/panel/stickypanel.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\"],\"names\":[],\"mappings\":\"AAMC,qDAEC,cAAe,CACf,KAAM,CAFN,yBAGD,CAEA,kEAEC,iBAAkB,CADlB,QAED,CCPA,qDAIC,wBAAyB,CACzB,yBAA0B,CAF1B,sBAAuB,CCFxB,oCDKA\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-sticky-panel {\\n\\t& .ck-sticky-panel__content_sticky {\\n\\t\\tz-index: var(--ck-z-panel); /* #315 */\\n\\t\\tposition: fixed;\\n\\t\\ttop: 0;\\n\\t}\\n\\n\\t& .ck-sticky-panel__content_sticky_bottom-limit {\\n\\t\\ttop: auto;\\n\\t\\tposition: absolute;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_shadow.css\\\";\\n\\n.ck.ck-sticky-panel {\\n\\t& .ck-sticky-panel__content_sticky {\\n\\t\\t@mixin ck-drop-shadow;\\n\\n\\t\\tborder-width: 0 1px 1px;\\n\\t\\tborder-top-left-radius: 0;\\n\\t\\tborder-top-right-radius: 0;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-vertical-form .ck-button:after{bottom:-1px;content:\\\"\\\";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck-vertical-form .ck-button:focus:after{display:none}@media screen and (max-width:600px){.ck.ck-responsive-form .ck-button:after{bottom:-1px;content:\\\"\\\";position:absolute;right:-1px;top:-1px;width:0;z-index:1}.ck.ck-responsive-form .ck-button:focus:after{display:none}}.ck-vertical-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form{padding:var(--ck-spacing-large)}.ck.ck-responsive-form:focus{outline:none}[dir=ltr] .ck.ck-responsive-form>:not(:first-child),[dir=rtl] .ck.ck-responsive-form>:not(:last-child){margin-left:var(--ck-spacing-standard)}@media screen and (max-width:600px){.ck.ck-responsive-form{padding:0;width:calc(var(--ck-input-width)*.8)}.ck.ck-responsive-form .ck-labeled-field-view{margin:var(--ck-spacing-large) var(--ck-spacing-large) 0}.ck.ck-responsive-form .ck-labeled-field-view .ck-input-number,.ck.ck-responsive-form .ck-labeled-field-view .ck-input-text{min-width:0;width:100%}.ck.ck-responsive-form .ck-labeled-field-view .ck-labeled-field-view__error{white-space:normal}.ck.ck-responsive-form>.ck-button:nth-last-child(2):after{border-right:1px solid var(--ck-color-base-border)}.ck.ck-responsive-form>.ck-button:last-child,.ck.ck-responsive-form>.ck-button:nth-last-child(2){border-radius:0;margin-top:var(--ck-spacing-large);padding:var(--ck-spacing-standard)}.ck.ck-responsive-form>.ck-button:last-child:not(:focus),.ck.ck-responsive-form>.ck-button:nth-last-child(2):not(:focus){border-top:1px solid var(--ck-color-base-border)}[dir=ltr] .ck.ck-responsive-form>.ck-button:last-child,[dir=ltr] .ck.ck-responsive-form>.ck-button:nth-last-child(2),[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2){margin-left:0}[dir=rtl] .ck.ck-responsive-form>.ck-button:last-child:last-of-type,[dir=rtl] .ck.ck-responsive-form>.ck-button:nth-last-child(2):last-of-type{border-right:1px solid var(--ck-color-base-border)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/responsive-form/responsiveform.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_rwd.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/responsive-form/responsiveform.css\"],\"names\":[],\"mappings\":\"AAQC,mCAMC,WAAY,CALZ,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,QAAS,CAHT,OAAQ,CAKR,SACD,CAEA,yCACC,YACD,CCdA,oCDoBE,wCAMC,WAAY,CALZ,UAAW,CAEX,iBAAkB,CAClB,UAAW,CACX,QAAS,CAHT,OAAQ,CAKR,SACD,CAEA,8CACC,YACD,CC9BF,CCAD,qDACC,kDACD,CAEA,uBACC,+BAoED,CAlEC,6BAEC,YACD,CASC,uGACC,sCACD,CDvBD,oCCMD,uBAqBE,SAAU,CACV,oCA+CF,CA7CE,8CACC,wDAYD,CAVC,4HAEC,WAAY,CACZ,UACD,CAGA,4EACC,kBACD,CAKA,0DACC,kDACD,CAGD,iGAIC,eAAgB,CADhB,kCAAmC,CADnC,kCAmBD,CAfC,yHACC,gDACD,CARD,0OAeE,aAMF,CAJE,+IACC,kDACD,CDrEH\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n\\n.ck-vertical-form .ck-button {\\n\\t&::after {\\n\\t\\tcontent: \\\"\\\";\\n\\t\\twidth: 0;\\n\\t\\tposition: absolute;\\n\\t\\tright: -1px;\\n\\t\\ttop: -1px;\\n\\t\\tbottom: -1px;\\n\\t\\tz-index: 1;\\n\\t}\\n\\n\\t&:focus::after {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\\n.ck.ck-responsive-form {\\n\\t@mixin ck-media-phone {\\n\\t\\t& .ck-button {\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\t\\twidth: 0;\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tright: -1px;\\n\\t\\t\\t\\ttop: -1px;\\n\\t\\t\\t\\tbottom: -1px;\\n\\t\\t\\t\\tz-index: 1;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:focus::after {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-phone {\\n\\t@media screen and (max-width: 600px) {\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck-vertical-form > .ck-button:nth-last-child(2)::after {\\n\\tborder-right: 1px solid var(--ck-color-base-border);\\n}\\n\\n.ck.ck-responsive-form {\\n\\tpadding: var(--ck-spacing-large);\\n\\n\\t&:focus {\\n\\t\\t/* See: https://github.com/ckeditor/ckeditor5/issues/4773 */\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t@mixin ck-dir ltr {\\n\\t\\t& > :not(:first-child) {\\n\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-dir rtl {\\n\\t\\t& > :not(:last-child) {\\n\\t\\t\\tmargin-left: var(--ck-spacing-standard);\\n\\t\\t}\\n\\t}\\n\\n\\t@mixin ck-media-phone {\\n\\t\\tpadding: 0;\\n\\t\\twidth: calc(.8 * var(--ck-input-width));\\n\\n\\t\\t& .ck-labeled-field-view {\\n\\t\\t\\tmargin: var(--ck-spacing-large) var(--ck-spacing-large) 0;\\n\\n\\t\\t\\t& .ck-input-text,\\n\\t\\t\\t& .ck-input-number {\\n\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t}\\n\\n\\t\\t\\t/* Let the long error messages wrap in the narrow form. */\\n\\t\\t\\t& .ck-labeled-field-view__error {\\n\\t\\t\\t\\twhite-space: normal;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* Styles for two last buttons in the form (save&cancel, edit&unlink, etc.). */\\n\\t\\t& > .ck-button:nth-last-child(2) {\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tborder-right: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& > .ck-button:nth-last-child(1),\\n\\t\\t& > .ck-button:nth-last-child(2) {\\n\\t\\t\\tpadding: var(--ck-spacing-standard);\\n\\t\\t\\tmargin-top: var(--ck-spacing-large);\\n\\t\\t\\tborder-radius: 0;\\n\\n\\t\\t\\t&:not(:focus) {\\n\\t\\t\\t\\tborder-top: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tmargin-left: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tmargin-left: 0;\\n\\n\\t\\t\\t\\t&:last-of-type {\\n\\t\\t\\t\\t\\tborder-right: 1px solid var(--ck-color-base-border);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-search>.ck-labeled-field-view>.ck-labeled-field-view__input-wrapper>.ck-icon{position:absolute;top:50%;transform:translateY(-50%)}[dir=ltr] .ck.ck-search>.ck-labeled-field-view>.ck-labeled-field-view__input-wrapper>.ck-icon{left:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-search>.ck-labeled-field-view>.ck-labeled-field-view__input-wrapper>.ck-icon{right:var(--ck-spacing-medium)}.ck.ck-search>.ck-labeled-field-view .ck-search__reset{position:absolute;top:50%;transform:translateY(-50%)}.ck.ck-search>.ck-search__results>.ck-search__info>span:first-child{display:block}.ck.ck-search>.ck-search__results>.ck-search__info:not(.ck-hidden)~*{display:none}:root{--ck-search-field-view-horizontal-spacing:calc(var(--ck-icon-size) + var(--ck-spacing-medium))}.ck.ck-search>.ck-labeled-field-view .ck-input{width:100%}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon{--ck-labeled-field-label-default-position-x:var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon>.ck-labeled-field-view__input-wrapper>.ck-icon{opacity:.5;pointer-events:none}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon .ck-input{width:100%}[dir=ltr] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon .ck-input,[dir=rtl] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-icon .ck-input:not(.ck-input-text_empty){padding-left:var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset{--ck-labeled-field-empty-unfocused-max-width:100% - 2 * var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset.ck-labeled-field-view_empty{--ck-labeled-field-empty-unfocused-max-width:100% - var(--ck-search-field-view-horizontal-spacing) - var(--ck-spacing-medium)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset{background:none;min-height:auto;min-width:auto;opacity:.5;padding:0}[dir=ltr] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset{right:var(--ck-spacing-medium)}[dir=rtl] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset{left:var(--ck-spacing-medium)}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-search__reset:hover{opacity:1}.ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-input{width:100%}[dir=ltr] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-input:not(.ck-input-text_empty),[dir=rtl] .ck.ck-search>.ck-labeled-field-view.ck-search__query_with-reset .ck-input{padding-right:var(--ck-search-field-view-horizontal-spacing)}.ck.ck-search>.ck-search__results{min-width:100%}.ck.ck-search>.ck-search__results>.ck-search__info{padding:var(--ck-spacing-medium) var(--ck-spacing-large);width:100%}.ck.ck-search>.ck-search__results>.ck-search__info *{white-space:normal}.ck.ck-search>.ck-search__results>.ck-search__info>span:first-child{font-weight:700}.ck.ck-search>.ck-search__results>.ck-search__info>span:last-child{margin-top:var(--ck-spacing-medium)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/search/search.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/search/search.css\"],\"names\":[],\"mappings\":\"AASE,oFACC,iBAAkB,CAClB,OAAQ,CACR,0BASD,CAZA,8FAME,6BAMF,CAZA,8FAUE,8BAEF,CAEA,uDACC,iBAAkB,CAClB,OAAQ,CACR,0BACD,CAKC,oEACC,aACD,CAGA,qEACC,YACD,CChCH,MACC,8FACD,CAIE,+CACC,UACD,CAEA,gEACC,0FAoBD,CAlBC,+GACC,UAAW,CACX,mBACD,CAEA,0EACC,UAWD,CAJE,kMACC,2DACD,CAKH,iEACC,sGAwCD,CAtCC,6FACC,6HACD,CAEA,mFAIC,eAAgB,CAFhB,eAAgB,CADhB,cAAe,CAIf,UAAW,CACX,SAaD,CAnBA,6FASE,8BAUF,CAnBA,6FAaE,6BAMF,CAHC,yFACC,SACD,CAGD,2EACC,UAWD,CAZA,oMAUE,4DAEF,CAIF,kCACC,cAkBD,CAhBC,mDAEC,wDAAyD,CADzD,UAcD,CAXC,qDACC,kBACD,CAEA,oEACC,eACD,CAEA,mEACC,mCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-search {\\n\\t& > .ck-labeled-field-view {\\n\\t\\t& > .ck-labeled-field-view__input-wrapper > .ck-icon {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 50%;\\n\\t\\t\\ttransform: translateY(-50%);\\n\\n\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\tleft: var(--ck-spacing-medium);\\n\\t\\t\\t}\\n\\n\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\tright: var(--ck-spacing-medium);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t& .ck-search__reset {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 50%;\\n\\t\\t\\ttransform: translateY(-50%);\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-search__results {\\n\\t\\t& > .ck-search__info {\\n\\t\\t\\t& > span:first-child {\\n\\t\\t\\t\\tdisplay: block;\\n\\t\\t\\t}\\n\\n\\t\\t\\t/* Hide the filtered view when nothing was found */\\n\\t\\t\\t&:not(.ck-hidden) ~ * {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n:root {\\n\\t--ck-search-field-view-horizontal-spacing: calc(var(--ck-icon-size) + var(--ck-spacing-medium));\\n}\\n\\n.ck.ck-search {\\n\\t& > .ck-labeled-field-view {\\n\\t\\t& .ck-input {\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&.ck-search__query_with-icon {\\n\\t\\t\\t--ck-labeled-field-label-default-position-x: var(--ck-search-field-view-horizontal-spacing);\\n\\n\\t\\t\\t& > .ck-labeled-field-view__input-wrapper > .ck-icon {\\n\\t\\t\\t\\topacity: .5;\\n\\t\\t\\t\\tpointer-events: none;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-input {\\n\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\tpadding-left: var(--ck-search-field-view-horizontal-spacing);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\t&:not(.ck-input-text_empty) {\\n\\t\\t\\t\\t\\t\\tpadding-left: var(--ck-search-field-view-horizontal-spacing);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&.ck-search__query_with-reset {\\n\\t\\t\\t--ck-labeled-field-empty-unfocused-max-width: 100% - 2 * var(--ck-search-field-view-horizontal-spacing);\\n\\n\\t\\t\\t&.ck-labeled-field-view_empty {\\n\\t\\t\\t\\t--ck-labeled-field-empty-unfocused-max-width: 100% - var(--ck-search-field-view-horizontal-spacing) - var(--ck-spacing-medium);\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-search__reset {\\n\\t\\t\\t\\tmin-width: auto;\\n\\t\\t\\t\\tmin-height: auto;\\n\\n\\t\\t\\t\\tbackground: none;\\n\\t\\t\\t\\topacity: .5;\\n\\t\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\tright: var(--ck-spacing-medium);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\tleft: var(--ck-spacing-medium);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t&:hover {\\n\\t\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t& .ck-input {\\n\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\t@mixin ck-dir ltr {\\n\\t\\t\\t\\t\\t&:not(.ck-input-text_empty) {\\n\\t\\t\\t\\t\\t\\tpadding-right: var(--ck-search-field-view-horizontal-spacing);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t@mixin ck-dir rtl {\\n\\t\\t\\t\\t\\tpadding-right: var(--ck-search-field-view-horizontal-spacing);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-search__results {\\n\\t\\tmin-width: 100%;\\n\\n\\t\\t& > .ck-search__info {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tpadding: var(--ck-spacing-medium) var(--ck-spacing-large);\\n\\n\\t\\t\\t& * {\\n\\t\\t\\t\\twhite-space: normal;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > span:first-child {\\n\\t\\t\\t\\tfont-weight: bold;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > span:last-child {\\n\\t\\t\\t\\tmargin-top: var(--ck-spacing-medium);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-spinner-container{display:block;position:relative}.ck.ck-spinner{left:0;margin:0 auto;position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:1}:root{--ck-toolbar-spinner-size:18px}.ck.ck-spinner-container{animation:rotate 1.5s linear infinite;height:var(--ck-toolbar-spinner-size);width:var(--ck-toolbar-spinner-size)}@media (prefers-reduced-motion:reduce){.ck.ck-spinner-container{animation-duration:3s}}.ck.ck-spinner{border:2px solid var(--ck-color-text);border-radius:50%;border-top:2px solid transparent;height:var(--ck-toolbar-spinner-size);width:var(--ck-toolbar-spinner-size)}@keyframes rotate{to{transform:rotate(1turn)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/spinner/spinner.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/spinner/spinner.css\"],\"names\":[],\"mappings\":\"AASA,yBACC,aAAc,CACd,iBACD,CAEA,eAGC,MAAO,CAEP,aAAc,CAJd,iBAAkB,CAGlB,OAAQ,CAFR,OAAQ,CAIR,0BAA2B,CAC3B,SACD,CCjBA,MACC,8BACD,CAEA,yBAGC,qCAAsC,CADtC,qCAAsC,CADtC,oCAOD,CAHC,uCALD,yBAME,qBAEF,CADC,CAGD,eAKC,qCAA6B,CAF7B,iBAAkB,CAElB,gCAA6B,CAH7B,qCAAsC,CADtC,oCAKD,CAEA,kBACC,GACC,uBACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-toolbar-spinner-size: 18px;\\n}\\n\\n.ck.ck-spinner-container {\\n\\tdisplay: block;\\n\\tposition: relative;\\n}\\n\\n.ck.ck-spinner {\\n\\tposition: absolute;\\n\\ttop: 50%;\\n\\tleft: 0;\\n\\tright: 0;\\n\\tmargin: 0 auto;\\n\\ttransform: translateY(-50%);\\n\\tz-index: 1;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-toolbar-spinner-size: 18px;\\n}\\n\\n.ck.ck-spinner-container {\\n\\twidth: var(--ck-toolbar-spinner-size);\\n\\theight: var(--ck-toolbar-spinner-size);\\n\\tanimation: 1.5s infinite rotate linear;\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\tanimation-duration: 3s;\\n\\t}\\n}\\n\\n.ck.ck-spinner {\\n\\twidth: var(--ck-toolbar-spinner-size);\\n\\theight: var(--ck-toolbar-spinner-size);\\n\\tborder-radius: 50%;\\n\\tborder: 2px solid var(--ck-color-text);\\n\\tborder-top-color: transparent;\\n}\\n\\n@keyframes rotate {\\n\\tto {\\n\\t\\ttransform: rotate(360deg)\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-textarea{overflow-x:hidden}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/textarea/textarea.css\"],\"names\":[],\"mappings\":\"AASA,aACC,iBACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/*\\n * This fixes a problem in Firefox when the initial height of the complement does not match the number of rows.\\n * This bug is especially visible when rows=1.\\n */\\n.ck-textarea {\\n\\toverflow-x: hidden\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-block-toolbar-button{position:absolute;z-index:var(--ck-z-default)}:root{--ck-color-block-toolbar-button:var(--ck-color-text);--ck-block-toolbar-button-size:var(--ck-font-size-normal)}.ck.ck-block-toolbar-button{color:var(--ck-color-block-toolbar-button);font-size:var(--ck-block-toolbar-size)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/toolbar/blocktoolbar.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/blocktoolbar.css\"],\"names\":[],\"mappings\":\"AAKA,4BACC,iBAAkB,CAClB,2BACD,CCHA,MACC,oDAAqD,CACrD,yDACD,CAEA,4BACC,0CAA2C,CAC3C,sCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck.ck-block-toolbar-button {\\n\\tposition: absolute;\\n\\tz-index: var(--ck-z-default);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-block-toolbar-button: var(--ck-color-text);\\n\\t--ck-block-toolbar-button-size: var(--ck-font-size-normal);\\n}\\n\\n.ck.ck-block-toolbar-button {\\n\\tcolor: var(--ck-color-block-toolbar-button);\\n\\tfont-size: var(--ck-block-toolbar-size);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-toolbar{align-items:center;display:flex;flex-flow:row nowrap;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ck.ck-toolbar>.ck-toolbar__items{align-items:center;display:flex;flex-flow:row wrap;flex-grow:1}.ck.ck-toolbar .ck.ck-toolbar__separator{display:inline-block}.ck.ck-toolbar .ck.ck-toolbar__separator:first-child,.ck.ck-toolbar .ck.ck-toolbar__separator:last-child{display:none}.ck.ck-toolbar .ck-toolbar__line-break{flex-basis:100%}.ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items{flex-direction:column}.ck.ck-toolbar.ck-toolbar_floating>.ck-toolbar__items{flex-wrap:nowrap}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck-dropdown__button .ck-dropdown__arrow{display:none}.ck.ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-toolbar,.ck.ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius)}.ck.ck-toolbar{background:var(--ck-color-toolbar-background);border:1px solid var(--ck-color-toolbar-border);padding:0 var(--ck-spacing-small)}.ck.ck-toolbar .ck.ck-toolbar__separator{align-self:stretch;background:var(--ck-color-toolbar-border);margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small);min-width:1px;width:1px}.ck.ck-toolbar .ck-toolbar__line-break{height:0}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break){margin-right:var(--ck-spacing-small)}.ck.ck-toolbar>.ck-toolbar__items:empty+.ck.ck-toolbar__separator{display:none}.ck.ck-toolbar>.ck-toolbar__items>:not(.ck-toolbar__line-break),.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown{margin-bottom:var(--ck-spacing-small);margin-top:var(--ck-spacing-small)}.ck.ck-toolbar.ck-toolbar_vertical{padding:0}.ck.ck-toolbar.ck-toolbar_vertical>.ck-toolbar__items>.ck{border-radius:0;margin:0;width:100%}.ck.ck-toolbar.ck-toolbar_compact{padding:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>*{margin:0}.ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>:not(:first-child):not(:last-child){border-radius:0}.ck.ck-toolbar>.ck.ck-toolbar__grouped-dropdown>.ck.ck-button.ck-dropdown__button{padding-left:var(--ck-spacing-tiny)}.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown>.ck-dropdown__panel{min-width:auto}.ck.ck-toolbar .ck-toolbar__nested-toolbar-dropdown>.ck-button>.ck-button__label{max-width:7em;width:auto}.ck.ck-toolbar:focus{outline:none}.ck-toolbar-container .ck.ck-toolbar{border:0}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck{margin-right:0}.ck.ck-toolbar[dir=rtl]:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck,[dir=rtl] .ck.ck-toolbar:not(.ck-toolbar_compact)>.ck-toolbar__items>.ck{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-left:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:first-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=rtl]>.ck-toolbar__items>.ck:last-child,[dir=rtl] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=rtl]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=rtl]>.ck.ck-toolbar__separator,[dir=rtl] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=rtl] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-left:var(--ck-spacing-small)}.ck.ck-toolbar[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar>.ck-toolbar__items>.ck:last-child{margin-right:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:first-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.ck.ck-toolbar.ck-toolbar_compact[dir=ltr]>.ck-toolbar__items>.ck:last-child,[dir=ltr] .ck.ck-toolbar.ck-toolbar_compact>.ck-toolbar__items>.ck:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.ck.ck-toolbar.ck-toolbar_grouping[dir=ltr]>.ck-toolbar__items:not(:empty):not(:only-child),.ck.ck-toolbar[dir=ltr]>.ck.ck-toolbar__separator,[dir=ltr] .ck.ck-toolbar.ck-toolbar_grouping>.ck-toolbar__items:not(:empty):not(:only-child),[dir=ltr] .ck.ck-toolbar>.ck.ck-toolbar__separator{margin-right:var(--ck-spacing-small)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/toolbar/toolbar.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/toolbar/toolbar.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_rounded.css\"],\"names\":[],\"mappings\":\"AAOA,eAKC,kBAAmB,CAFnB,YAAa,CACb,oBAAqB,CCFrB,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBD6CD,CA3CC,kCAGC,kBAAmB,CAFnB,YAAa,CACb,kBAAmB,CAEnB,WAED,CAEA,yCACC,oBAWD,CAJC,yGAEC,YACD,CAGD,uCACC,eACD,CAEA,sDACC,gBACD,CAEA,sDACC,qBACD,CAEA,sDACC,gBACD,CAGC,yFACC,YACD,CE/CF,eCGC,eDwGD,CA3GA,qECOE,qCDoGF,CA3GA,eAGC,6CAA8C,CAE9C,+CAAgD,CADhD,iCAuGD,CApGC,yCACC,kBAAmB,CAGnB,yCAA0C,CAO1C,qCAAsC,CADtC,kCAAmC,CAPnC,aAAc,CADd,SAUD,CAEA,uCACC,QACD,CAGC,gEAEC,oCACD,CAIA,kEACC,YACD,CAGD,gHAIC,qCAAsC,CADtC,kCAED,CAEA,mCAEC,SAaD,CAVC,0DAQC,eAAgB,CAHhB,QAAS,CAHT,UAOD,CAGD,kCAEC,SAWD,CATC,uDAEC,QAMD,CAHC,yFACC,eACD,CASD,kFACC,mCACD,CAMA,wEACC,cACD,CAEA,iFACC,aAAc,CACd,UACD,CAGD,qBACC,YACD,CAtGD,qCAyGE,QAEF,CAYC,+FACC,cACD,CAEA,iJAEC,mCACD,CAEA,qHACC,aACD,CAIC,6JAEC,2BAA4B,CAD5B,wBAED,CAGA,2JAEC,4BAA6B,CAD7B,yBAED,CASD,8RACC,mCACD,CAWA,qHACC,cACD,CAIC,6JAEC,4BAA6B,CAD7B,yBAED,CAGA,2JAEC,2BAA4B,CAD5B,wBAED,CASD,8RACC,oCACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../mixins/_unselectable.css\\\";\\n\\n.ck.ck-toolbar {\\n\\t@mixin ck-unselectable;\\n\\n\\tdisplay: flex;\\n\\tflex-flow: row nowrap;\\n\\talign-items: center;\\n\\n\\t& > .ck-toolbar__items {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-flow: row wrap;\\n\\t\\talign-items: center;\\n\\t\\tflex-grow: 1;\\n\\n\\t}\\n\\n\\t& .ck.ck-toolbar__separator {\\n\\t\\tdisplay: inline-block;\\n\\n\\t\\t/*\\n\\t\\t * A leading or trailing separator makes no sense (separates from nothing on one side).\\n\\t\\t * For instance, it can happen when toolbar items (also separators) are getting grouped one by one and\\n\\t\\t * moved to another toolbar in the dropdown.\\n\\t\\t */\\n\\t\\t&:first-child,\\n\\t\\t&:last-child {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t& .ck-toolbar__line-break {\\n\\t\\tflex-basis: 100%;\\n\\t}\\n\\n\\t&.ck-toolbar_grouping > .ck-toolbar__items {\\n\\t\\tflex-wrap: nowrap;\\n\\t}\\n\\n\\t&.ck-toolbar_vertical > .ck-toolbar__items {\\n\\t\\tflex-direction: column;\\n\\t}\\n\\n\\t&.ck-toolbar_floating > .ck-toolbar__items {\\n\\t\\tflex-wrap: nowrap;\\n\\t}\\n\\n\\t& > .ck.ck-toolbar__grouped-dropdown {\\n\\t\\t& > .ck-dropdown__button .ck-dropdown__arrow {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Makes element unselectable.\\n */\\n@define-mixin ck-unselectable {\\n\\t-moz-user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\\\";\\n\\n.ck.ck-toolbar {\\n\\t@mixin ck-rounded-corners;\\n\\n\\tbackground: var(--ck-color-toolbar-background);\\n\\tpadding: 0 var(--ck-spacing-small);\\n\\tborder: 1px solid var(--ck-color-toolbar-border);\\n\\n\\t& .ck.ck-toolbar__separator {\\n\\t\\talign-self: stretch;\\n\\t\\twidth: 1px;\\n\\t\\tmin-width: 1px;\\n\\t\\tbackground: var(--ck-color-toolbar-border);\\n\\n\\t\\t/*\\n\\t\\t * These margins make the separators look better in balloon toolbars (when aligned with the \\\"tip\\\").\\n\\t\\t * See https://github.com/ckeditor/ckeditor5/issues/7493.\\n\\t\\t */\\n\\t\\tmargin-top: var(--ck-spacing-small);\\n\\t\\tmargin-bottom: var(--ck-spacing-small);\\n\\t}\\n\\n\\t& .ck-toolbar__line-break {\\n\\t\\theight: 0;\\n\\t}\\n\\n\\t& > .ck-toolbar__items {\\n\\t\\t& > *:not(.ck-toolbar__line-break) {\\n\\t\\t\\t/* (#11) Separate toolbar items. */\\n\\t\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t\\t}\\n\\n\\t\\t/* Don't display a separator after an empty items container, for instance,\\n\\t\\twhen all items were grouped */\\n\\t\\t&:empty + .ck.ck-toolbar__separator {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck-toolbar__items > *:not(.ck-toolbar__line-break),\\n\\t& > .ck.ck-toolbar__grouped-dropdown {\\n\\t\\t/* Make sure items wrapped to the next line have v-spacing */\\n\\t\\tmargin-top: var(--ck-spacing-small);\\n\\t\\tmargin-bottom: var(--ck-spacing-small);\\n\\t}\\n\\n\\t&.ck-toolbar_vertical {\\n\\t\\t/* Items in a vertical toolbar span the entire width. */\\n\\t\\tpadding: 0;\\n\\n\\t\\t/* Specificity matters here. See https://github.com/ckeditor/ckeditor5-theme-lark/issues/168. */\\n\\t\\t& > .ck-toolbar__items > .ck {\\n\\t\\t\\t/* Items in a vertical toolbar should span the horizontal space. */\\n\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t/* Items in a vertical toolbar should have no margin. */\\n\\t\\t\\tmargin: 0;\\n\\n\\t\\t\\t/* Items in a vertical toolbar span the entire width so rounded corners are pointless. */\\n\\t\\t\\tborder-radius: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-toolbar_compact {\\n\\t\\t/* No spacing around items. */\\n\\t\\tpadding: 0;\\n\\n\\t\\t& > .ck-toolbar__items > * {\\n\\t\\t\\t/* Compact toolbar items have no spacing between them. */\\n\\t\\t\\tmargin: 0;\\n\\n\\t\\t\\t/* \\\"Middle\\\" children should have no rounded corners. */\\n\\t\\t\\t&:not(:first-child):not(:last-child) {\\n\\t\\t\\t\\tborder-radius: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t& > .ck.ck-toolbar__grouped-dropdown {\\n\\t\\t/*\\n\\t\\t * Dropdown button has asymmetric padding to fit the arrow.\\n\\t\\t * This button has no arrow so let's revert that padding back to normal.\\n\\t\\t */\\n\\t\\t& > .ck.ck-button.ck-dropdown__button {\\n\\t\\t\\tpadding-left: var(--ck-spacing-tiny);\\n\\t\\t}\\n\\t}\\n\\n\\t/* A drop-down containing the nested toolbar with configured items. */\\n\\t& .ck-toolbar__nested-toolbar-dropdown {\\n\\t\\t/* Prevent empty space in the panel when the dropdown label is visible and long but the toolbar has few items. */\\n\\t\\t& > .ck-dropdown__panel {\\n\\t\\t\\tmin-width: auto;\\n\\t\\t}\\n\\n\\t\\t& > .ck-button > .ck-button__label {\\n\\t\\t\\tmax-width: 7em;\\n\\t\\t\\twidth: auto;\\n\\t\\t}\\n\\t}\\n\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t@nest .ck-toolbar-container & {\\n\\t\\tborder: 0;\\n\\t}\\n}\\n\\n/* stylelint-disable */\\n\\n/*\\n * Styles for RTL toolbars.\\n *\\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own \\\"dir\\\"\\n * because its parent is not controlled by the editor framework.\\n */\\n[dir=\\\"rtl\\\"] .ck.ck-toolbar,\\n.ck.ck-toolbar[dir=\\\"rtl\\\"] {\\n\\t& > .ck-toolbar__items > .ck {\\n\\t\\tmargin-right: 0;\\n\\t}\\n\\n\\t&:not(.ck-toolbar_compact) > .ck-toolbar__items > .ck {\\n\\t\\t/* (#11) Separate toolbar items. */\\n\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t}\\n\\n\\t& > .ck-toolbar__items > .ck:last-child {\\n\\t\\tmargin-left: 0;\\n\\t}\\n\\n\\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\\n\\t\\t/* No rounded corners on the right side of the first child. */\\n\\t\\t&:first-child {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t}\\n\\n\\t\\t/* No rounded corners on the left side of the last child. */\\n\\t\\t&:last-child {\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\\n\\t& > .ck.ck-toolbar__separator {\\n\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t}\\n\\n\\t/* Some spacing between the items and the separator before the grouped items dropdown. */\\n\\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\\n\\t\\tmargin-left: var(--ck-spacing-small);\\n\\t}\\n}\\n\\n/*\\n * Styles for LTR toolbars.\\n *\\n * Note: In some cases (e.g. a decoupled editor), the toolbar has its own \\\"dir\\\"\\n * because its parent is not controlled by the editor framework.\\n */\\n[dir=\\\"ltr\\\"] .ck.ck-toolbar,\\n.ck.ck-toolbar[dir=\\\"ltr\\\"] {\\n\\t& > .ck-toolbar__items > .ck:last-child {\\n\\t\\tmargin-right: 0;\\n\\t}\\n\\n\\t&.ck-toolbar_compact > .ck-toolbar__items > .ck {\\n\\t\\t/* No rounded corners on the right side of the first child. */\\n\\t\\t&:first-child {\\n\\t\\t\\tborder-top-right-radius: 0;\\n\\t\\t\\tborder-bottom-right-radius: 0;\\n\\t\\t}\\n\\n\\t\\t/* No rounded corners on the left side of the last child. */\\n\\t\\t&:last-child {\\n\\t\\t\\tborder-top-left-radius: 0;\\n\\t\\t\\tborder-bottom-left-radius: 0;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Separate the the separator form the grouping dropdown when some items are grouped. */\\n\\t& > .ck.ck-toolbar__separator {\\n\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t}\\n\\n\\t/* Some spacing between the items and the separator before the grouped items dropdown. */\\n\\t&.ck-toolbar_grouping > .ck-toolbar__items:not(:empty):not(:only-child) {\\n\\t\\tmargin-right: var(--ck-spacing-small);\\n\\t}\\n}\\n\\n/* stylelint-enable */\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Implements rounded corner interface for .ck-rounded-corners class.\\n *\\n * @see $ck-border-radius\\n */\\n@define-mixin ck-rounded-corners {\\n\\tborder-radius: 0;\\n\\n\\t@nest .ck-rounded-corners &,\\n\\t&.ck-rounded-corners {\\n\\t\\tborder-radius: var(--ck-border-radius);\\n\\t\\t@mixin-content;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck.ck-balloon-panel.ck-tooltip{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;z-index:calc(var(--ck-z-dialog) + 100);--ck-balloon-border-width:0px;--ck-balloon-arrow-offset:0px;--ck-balloon-arrow-half-width:4px;--ck-balloon-arrow-height:4px;--ck-tooltip-text-padding:4px;--ck-color-panel-background:var(--ck-color-tooltip-background);padding:0 var(--ck-spacing-medium)}.ck.ck-balloon-panel.ck-tooltip .ck-tooltip__text{color:var(--ck-color-tooltip-text);font-size:.9em;line-height:1.5}.ck.ck-balloon-panel.ck-tooltip.ck-tooltip_multi-line .ck-tooltip__text{display:inline-block;max-width:200px;padding:var(--ck-tooltip-text-padding) 0;white-space:break-spaces}.ck.ck-balloon-panel.ck-tooltip{box-shadow:none}.ck.ck-balloon-panel.ck-tooltip:before{display:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/components/tooltip/tooltip.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_unselectable.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/components/tooltip/tooltip.css\"],\"names\":[],\"mappings\":\"AAOA,gCCEC,qBAAsB,CACtB,wBAAyB,CACzB,oBAAqB,CACrB,gBAAgB,CDFhB,sCAAyC,CEFzC,6BAA8B,CAC9B,6BAA8B,CAC9B,iCAAkC,CAClC,6BAA8B,CAC9B,6BAA8B,CAC9B,8DAA+D,CAE/D,kCFJD,CEMC,kDAGC,kCAAmC,CAFnC,cAAe,CACf,eAED,CAEA,wEAEC,oBAAqB,CAErB,eAAgB,CADhB,wCAAyC,CAFzC,wBAID,CArBD,gCAwBC,eAMD,CAHC,uCACC,YACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../mixins/_unselectable.css\\\";\\n\\n.ck.ck-balloon-panel.ck-tooltip {\\n\\t@mixin ck-unselectable;\\n\\n\\tz-index: calc( var(--ck-z-dialog) + 100 );\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Makes element unselectable.\\n */\\n@define-mixin ck-unselectable {\\n\\t-moz-user-select: none;\\n\\t-webkit-user-select: none;\\n\\t-ms-user-select: none;\\n\\tuser-select: none\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../../../mixins/_rounded.css\\\";\\n\\n.ck.ck-balloon-panel.ck-tooltip {\\n\\t--ck-balloon-border-width: 0px;\\n\\t--ck-balloon-arrow-offset: 0px;\\n\\t--ck-balloon-arrow-half-width: 4px;\\n\\t--ck-balloon-arrow-height: 4px;\\n\\t--ck-tooltip-text-padding: 4px;\\n\\t--ck-color-panel-background: var(--ck-color-tooltip-background);\\n\\n\\tpadding: 0 var(--ck-spacing-medium);\\n\\n\\t& .ck-tooltip__text {\\n\\t\\tfont-size: .9em;\\n\\t\\tline-height: 1.5;\\n\\t\\tcolor: var(--ck-color-tooltip-text);\\n\\t}\\n\\n\\t&.ck-tooltip_multi-line .ck-tooltip__text {\\n\\t\\twhite-space: break-spaces;\\n\\t\\tdisplay: inline-block;\\n\\t\\tpadding: var(--ck-tooltip-text-padding) 0;\\n\\t\\tmax-width: 200px;\\n\\t}\\n\\n\\t/* Reset balloon panel styles */\\n\\tbox-shadow: none;\\n\\n\\t/* Hide the default shadow of the .ck-balloon-panel tip */\\n\\t&::before {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck-hidden{display:none!important}:root{--ck-z-default:1;--ck-z-panel:calc(var(--ck-z-default) + 999);--ck-z-dialog:9999}.ck-transitions-disabled,.ck-transitions-disabled *{transition:none!important}:root{--ck-powered-by-line-height:10px;--ck-powered-by-padding-vertical:2px;--ck-powered-by-padding-horizontal:4px;--ck-powered-by-text-color:#4f4f4f;--ck-powered-by-border-radius:var(--ck-border-radius);--ck-powered-by-background:#fff;--ck-powered-by-border-color:var(--ck-color-focus-border)}.ck.ck-balloon-panel.ck-powered-by-balloon{--ck-border-radius:var(--ck-powered-by-border-radius);background:var(--ck-powered-by-background);box-shadow:none;min-height:unset;z-index:calc(var(--ck-z-panel) - 1)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by{line-height:var(--ck-powered-by-line-height)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by a{align-items:center;cursor:pointer;display:flex;filter:grayscale(80%);line-height:var(--ck-powered-by-line-height);opacity:.66;padding:var(--ck-powered-by-padding-vertical) var(--ck-powered-by-padding-horizontal)}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-powered-by__label{color:var(--ck-powered-by-text-color);cursor:pointer;font-size:7.5px;font-weight:700;letter-spacing:-.2px;line-height:normal;margin-right:4px;padding-left:2px;text-transform:uppercase}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by .ck-icon{cursor:pointer;display:block}.ck.ck-balloon-panel.ck-powered-by-balloon .ck.ck-powered-by:hover a{filter:grayscale(0);opacity:1}.ck.ck-balloon-panel.ck-powered-by-balloon[class*=position_inside]{border-color:transparent}.ck.ck-balloon-panel.ck-powered-by-balloon[class*=position_border]{border:var(--ck-focus-ring);border-color:var(--ck-powered-by-border-color)}:root{--ck-color-base-foreground:#fafafa;--ck-color-base-background:#fff;--ck-color-base-border:#ccced1;--ck-color-base-action:#53a336;--ck-color-base-focus:#6cb5f9;--ck-color-base-text:#333;--ck-color-base-active:#2977ff;--ck-color-base-active-focus:#0d65ff;--ck-color-base-error:#db3700;--ck-color-focus-border-coordinates:218,81.8%,56.9%;--ck-color-focus-border:hsl(var(--ck-color-focus-border-coordinates));--ck-color-focus-outer-shadow:#cae1fc;--ck-color-focus-disabled-shadow:rgba(119,186,248,.3);--ck-color-focus-error-shadow:rgba(255,64,31,.3);--ck-color-text:var(--ck-color-base-text);--ck-color-shadow-drop:rgba(0,0,0,.15);--ck-color-shadow-drop-active:rgba(0,0,0,.2);--ck-color-shadow-inner:rgba(0,0,0,.1);--ck-color-button-default-background:transparent;--ck-color-button-default-hover-background:#f0f0f0;--ck-color-button-default-active-background:#f0f0f0;--ck-color-button-default-disabled-background:transparent;--ck-color-button-on-background:#f0f7ff;--ck-color-button-on-hover-background:#dbecff;--ck-color-button-on-active-background:#dbecff;--ck-color-button-on-disabled-background:#f0f2f4;--ck-color-button-on-color:#2977ff;--ck-color-button-action-background:var(--ck-color-base-action);--ck-color-button-action-hover-background:#4d9d30;--ck-color-button-action-active-background:#4d9d30;--ck-color-button-action-disabled-background:#7ec365;--ck-color-button-action-text:var(--ck-color-base-background);--ck-color-button-save:#008a00;--ck-color-button-cancel:#db3700;--ck-color-switch-button-off-background:#939393;--ck-color-switch-button-off-hover-background:#7d7d7d;--ck-color-switch-button-on-background:var(--ck-color-button-action-background);--ck-color-switch-button-on-hover-background:#4d9d30;--ck-color-switch-button-inner-background:var(--ck-color-base-background);--ck-color-switch-button-inner-shadow:rgba(0,0,0,.1);--ck-color-dropdown-panel-background:var(--ck-color-base-background);--ck-color-dropdown-panel-border:var(--ck-color-base-border);--ck-color-dialog-background:var(--ck-custom-background);--ck-color-dialog-form-header-border:var(--ck-custom-border);--ck-color-input-background:var(--ck-color-base-background);--ck-color-input-border:var(--ck-color-base-border);--ck-color-input-error-border:var(--ck-color-base-error);--ck-color-input-text:var(--ck-color-base-text);--ck-color-input-disabled-background:#f2f2f2;--ck-color-input-disabled-border:var(--ck-color-base-border);--ck-color-input-disabled-text:#757575;--ck-color-list-background:var(--ck-color-base-background);--ck-color-list-button-hover-background:var(--ck-color-button-default-hover-background);--ck-color-list-button-on-background:var(--ck-color-button-on-color);--ck-color-list-button-on-background-focus:var(--ck-color-button-on-color);--ck-color-list-button-on-text:var(--ck-color-base-background);--ck-color-panel-background:var(--ck-color-base-background);--ck-color-panel-border:var(--ck-color-base-border);--ck-color-toolbar-background:var(--ck-color-base-background);--ck-color-toolbar-border:var(--ck-color-base-border);--ck-color-tooltip-background:var(--ck-color-base-text);--ck-color-tooltip-text:var(--ck-color-base-background);--ck-color-engine-placeholder-text:#707070;--ck-color-upload-bar-background:#6cb5f9;--ck-color-link-default:#0000f0;--ck-color-link-selected-background:rgba(31,176,255,.1);--ck-color-link-fake-selection:rgba(31,176,255,.3);--ck-color-highlight-background:#ff0;--ck-color-light-red:#fcc;--ck-disabled-opacity:.5;--ck-focus-outer-shadow-geometry:0 0 0 3px;--ck-focus-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);--ck-focus-disabled-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);--ck-focus-error-outer-shadow:var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);--ck-focus-ring:1px solid var(--ck-color-focus-border);--ck-font-size-base:13px;--ck-line-height-base:1.84615;--ck-font-face:Helvetica,Arial,Tahoma,Verdana,Sans-Serif;--ck-font-size-tiny:0.7em;--ck-font-size-small:0.75em;--ck-font-size-normal:1em;--ck-font-size-big:1.4em;--ck-font-size-large:1.8em;--ck-ui-component-min-height:2.3em}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset,.ck.ck-reset_all{background:transparent;border:0;box-sizing:border-box;height:auto;margin:0;padding:0;position:static;text-decoration:none;transition:none;vertical-align:middle;width:auto;word-wrap:break-word}.ck-reset_all :not(.ck-reset_all-excluded *),.ck.ck-reset_all{border-collapse:collapse;color:var(--ck-color-text);cursor:auto;float:none;font:normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);text-align:left;white-space:nowrap}.ck-reset_all .ck-rtl :not(.ck-reset_all-excluded *){text-align:right}.ck-reset_all iframe:not(.ck-reset_all-excluded *){vertical-align:inherit}.ck-reset_all textarea:not(.ck-reset_all-excluded *){white-space:pre-wrap}.ck-reset_all input[type=password]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text]:not(.ck-reset_all-excluded *),.ck-reset_all textarea:not(.ck-reset_all-excluded *){cursor:text}.ck-reset_all input[type=password][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all input[type=text][disabled]:not(.ck-reset_all-excluded *),.ck-reset_all textarea[disabled]:not(.ck-reset_all-excluded *){cursor:default}.ck-reset_all fieldset:not(.ck-reset_all-excluded *){border:2px groove #dfdee3;padding:10px}.ck-reset_all button:not(.ck-reset_all-excluded *)::-moz-focus-inner{border:0;padding:0}.ck[dir=rtl],.ck[dir=rtl] .ck{text-align:right}:root{--ck-border-radius:2px;--ck-inner-shadow:2px 2px 3px var(--ck-color-shadow-inner) inset;--ck-drop-shadow:0 1px 2px 1px var(--ck-color-shadow-drop);--ck-drop-shadow-active:0 3px 6px 1px var(--ck-color-shadow-drop-active);--ck-spacing-unit:0.6em;--ck-spacing-large:calc(var(--ck-spacing-unit)*1.5);--ck-spacing-standard:var(--ck-spacing-unit);--ck-spacing-medium:calc(var(--ck-spacing-unit)*0.8);--ck-spacing-small:calc(var(--ck-spacing-unit)*0.5);--ck-spacing-tiny:calc(var(--ck-spacing-unit)*0.3);--ck-spacing-extra-tiny:calc(var(--ck-spacing-unit)*0.16)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-ui/theme/globals/_hidden.css\",\"webpack://./../ckeditor5-ui/theme/globals/_zindex.css\",\"webpack://./../ckeditor5-ui/theme/globals/_transition.css\",\"webpack://./../ckeditor5-ui/theme/globals/_poweredby.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_colors.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_disabled.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_focus.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_fonts.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_reset.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_rounded.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_shadow.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-ui/globals/_spacing.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A class which hides an element in DOM.\\n */\\n.ck-hidden {\\n\\t/* Override selector specificity. Otherwise, all elements with some display\\n\\tstyle defined will override this one, which is not a desired result. */\\n\\tdisplay: none !important;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-z-default: 1;\\n\\t--ck-z-panel: calc( var(--ck-z-default) + 999 );\\n\\t--ck-z-dialog: 9999;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A class that disables all transitions of the element and its children.\\n */\\n.ck-transitions-disabled,\\n.ck-transitions-disabled * {\\n\\ttransition: none !important;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-powered-by-line-height: 10px;\\n\\t--ck-powered-by-padding-vertical: 2px;\\n\\t--ck-powered-by-padding-horizontal: 4px;\\n\\t--ck-powered-by-text-color: hsl(0, 0%, 31%);\\n\\t--ck-powered-by-border-radius: var(--ck-border-radius);\\n\\t--ck-powered-by-background: hsl(0, 0%, 100%);\\n\\t--ck-powered-by-border-color: var(--ck-color-focus-border);\\n}\\n\\n.ck.ck-balloon-panel.ck-powered-by-balloon {\\n\\t--ck-border-radius: var(--ck-powered-by-border-radius);\\n\\n\\tbox-shadow: none;\\n\\tbackground: var(--ck-powered-by-background);\\n\\tmin-height: unset;\\n\\tz-index: calc( var(--ck-z-panel) - 1 );\\n\\n\\t& .ck.ck-powered-by {\\n\\t\\tline-height: var(--ck-powered-by-line-height);\\n\\n\\t\\t& a {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\topacity: .66;\\n\\t\\t\\tfilter: grayscale(80%);\\n\\t\\t\\tline-height: var(--ck-powered-by-line-height);\\n\\t\\t\\tpadding: var(--ck-powered-by-padding-vertical) var(--ck-powered-by-padding-horizontal);\\n\\t\\t}\\n\\n\\t\\t& .ck-powered-by__label {\\n\\t\\t\\tfont-size: 7.5px;\\n\\t\\t\\tletter-spacing: -.2px;\\n\\t\\t\\tpadding-left: 2px;\\n\\t\\t\\ttext-transform: uppercase;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tmargin-right: 4px;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tline-height: normal;\\n\\t\\t\\tcolor: var(--ck-powered-by-text-color);\\n\\n\\t\\t}\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t}\\n\\n\\t\\t&:hover {\\n\\t\\t\\t& a {\\n\\t\\t\\t\\tfilter: grayscale(0%);\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&[class*=\\\"position_inside\\\"] {\\n\\t\\tborder-color: transparent;\\n\\t}\\n\\n\\t&[class*=\\\"position_border\\\"] {\\n\\t\\tborder: var(--ck-focus-ring);\\n\\t\\tborder-color: var(--ck-powered-by-border-color);\\n\\t}\\n}\\n\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-base-foreground: \\t\\t\\t\\t\\t\\t\\t\\thsl(0, 0%, 98%);\\n\\t--ck-color-base-background: \\t\\t\\t\\t\\t\\t\\t\\thsl(0, 0%, 100%);\\n\\t--ck-color-base-border: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(220, 6%, 81%);\\n\\t--ck-color-base-action: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(104, 50.2%, 42.5%);\\n\\t--ck-color-base-focus: \\t\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(209, 92%, 70%);\\n\\t--ck-color-base-text: \\t\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(0, 0%, 20%);\\n\\t--ck-color-base-active: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(218.1, 100%, 58%);\\n\\t--ck-color-base-active-focus:\\t\\t\\t\\t\\t\\t\\t\\thsl(218.2, 100%, 52.5%);\\n\\t--ck-color-base-error:\\t\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(15, 100%, 43%);\\n\\n\\t/* -- Generic colors ------------------------------------------------------------------------ */\\n\\n\\t--ck-color-focus-border-coordinates: \\t\\t\\t\\t\\t\\t218, 81.8%, 56.9%;\\n\\t--ck-color-focus-border: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(var(--ck-color-focus-border-coordinates));\\n\\t--ck-color-focus-outer-shadow:\\t\\t\\t\\t\\t\\t\\t\\thsl(212.4, 89.3%, 89%);\\n\\t--ck-color-focus-disabled-shadow:\\t\\t\\t\\t\\t\\t\\thsla(209, 90%, 72%,.3);\\n\\t--ck-color-focus-error-shadow:\\t\\t\\t\\t\\t\\t\\t\\thsla(9,100%,56%,.3);\\n\\t--ck-color-text: \\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-text);\\n\\t--ck-color-shadow-drop: \\t\\t\\t\\t\\t\\t\\t\\t\\thsla(0, 0%, 0%, 0.15);\\n\\t--ck-color-shadow-drop-active:\\t\\t\\t\\t\\t\\t\\t\\thsla(0, 0%, 0%, 0.2);\\n\\t--ck-color-shadow-inner: \\t\\t\\t\\t\\t\\t\\t\\t\\thsla(0, 0%, 0%, 0.1);\\n\\n\\t/* -- Buttons ------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-button-default-background: \\t\\t\\t\\t\\t\\ttransparent;\\n\\t--ck-color-button-default-hover-background: \\t\\t\\t\\thsl(0, 0%, 94.1%);\\n\\t--ck-color-button-default-active-background: \\t\\t\\t\\thsl(0, 0%, 94.1%);\\n\\t--ck-color-button-default-disabled-background: \\t\\t\\t\\ttransparent;\\n\\n\\t--ck-color-button-on-background: \\t\\t\\t\\t\\t\\t\\thsl(212, 100%, 97.1%);\\n\\t--ck-color-button-on-hover-background: \\t\\t\\t\\t\\t\\thsl(211.7, 100%, 92.9%);\\n\\t--ck-color-button-on-active-background: \\t\\t\\t\\t\\thsl(211.7, 100%, 92.9%);\\n\\t--ck-color-button-on-disabled-background: \\t\\t\\t\\t\\thsl(211, 15%, 95%);\\n\\t--ck-color-button-on-color:\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(218.1, 100%, 58%);\\n\\n\\n\\t--ck-color-button-action-background: \\t\\t\\t\\t\\t\\tvar(--ck-color-base-action);\\n\\t--ck-color-button-action-hover-background: \\t\\t\\t\\t\\thsl(104, 53.2%, 40.2%);\\n\\t--ck-color-button-action-active-background: \\t\\t\\t\\thsl(104, 53.2%, 40.2%);\\n\\t--ck-color-button-action-disabled-background: \\t\\t\\t\\thsl(104, 44%, 58%);\\n\\t--ck-color-button-action-text: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\n\\t--ck-color-button-save: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(120, 100%, 27%);\\n\\t--ck-color-button-cancel: \\t\\t\\t\\t\\t\\t\\t\\t\\thsl(15, 100%, 43%);\\n\\n\\t--ck-color-switch-button-off-background:\\t\\t\\t\\t\\thsl(0, 0%, 57.6%);\\n\\t--ck-color-switch-button-off-hover-background:\\t\\t\\t\\thsl(0, 0%, 49%);\\n\\t--ck-color-switch-button-on-background:\\t\\t\\t\\t\\t\\tvar(--ck-color-button-action-background);\\n\\t--ck-color-switch-button-on-hover-background:\\t\\t\\t\\thsl(104, 53.2%, 40.2%);\\n\\t--ck-color-switch-button-inner-background:\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-switch-button-inner-shadow:\\t\\t\\t\\t\\t\\thsla(0, 0%, 0%, 0.1);\\n\\n\\t/* -- Dropdown ------------------------------------------------------------------------------ */\\n\\n\\t--ck-color-dropdown-panel-background: \\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-dropdown-panel-border: \\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\n\\t/* -- Dialog -------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-dialog-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-custom-background);\\n\\t--ck-color-dialog-form-header-border: \\t\\t\\t\\t\\t\\tvar(--ck-custom-border);\\n\\n\\t/* -- Input --------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-input-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-input-border: \\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\t--ck-color-input-error-border:\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-error);\\n\\t--ck-color-input-text: \\t\\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-text);\\n\\t--ck-color-input-disabled-background: \\t\\t\\t\\t\\t\\thsl(0, 0%, 95%);\\n\\t--ck-color-input-disabled-border: \\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\t--ck-color-input-disabled-text: \\t\\t\\t\\t\\t\\t\\thsl(0, 0%, 46%);\\n\\n\\t/* -- List ---------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-list-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-list-button-hover-background: \\t\\t\\t\\t\\tvar(--ck-color-button-default-hover-background);\\n\\t--ck-color-list-button-on-background: \\t\\t\\t\\t\\t\\tvar(--ck-color-button-on-color);\\n\\t--ck-color-list-button-on-background-focus: \\t\\t\\t\\tvar(--ck-color-button-on-color);\\n\\t--ck-color-list-button-on-text:\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\n\\t/* -- Panel --------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-panel-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-panel-border: \\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\n\\t/* -- Toolbar ------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-toolbar-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\t--ck-color-toolbar-border: \\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-border);\\n\\n\\t/* -- Tooltip ------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-tooltip-background: \\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-text);\\n\\t--ck-color-tooltip-text: \\t\\t\\t\\t\\t\\t\\t\\t\\tvar(--ck-color-base-background);\\n\\n\\t/* -- Engine -------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-engine-placeholder-text: \\t\\t\\t\\t\\t\\thsl(0, 0%, 44%);\\n\\n\\t/* -- Upload -------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-upload-bar-background:\\t\\t \\t\\t\\t\\t\\thsl(209, 92%, 70%);\\n\\n\\t/* -- Link -------------------------------------------------------------------------------- */\\n\\n\\t--ck-color-link-default:\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(240, 100%, 47%);\\n\\t--ck-color-link-selected-background:\\t\\t\\t\\t\\t\\thsla(201, 100%, 56%, 0.1);\\n\\t--ck-color-link-fake-selection:\\t\\t\\t\\t\\t\\t\\t\\thsla(201, 100%, 56%, 0.3);\\n\\n\\t/* -- Search result highlight ---------------------------------------------------------------- */\\n\\n\\t--ck-color-highlight-background:\\t\\t\\t\\t\\t\\t\\thsl(60, 100%, 50%);\\n\\n\\t/* -- Generic colors ------------------------------------------------------------------------- */\\n\\n\\t--ck-color-light-red:\\t\\t\\t\\t\\t\\t\\t\\t\\t\\thsl(0, 100%, 90%);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t/**\\n\\t * An opacity value of disabled UI item.\\n\\t */\\n\\t--ck-disabled-opacity: .5;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t/**\\n\\t * The geometry of the of focused element's outer shadow.\\n\\t */\\n\\t--ck-focus-outer-shadow-geometry: 0 0 0 3px;\\n\\n\\t/**\\n\\t * A visual style of focused element's outer shadow.\\n\\t */\\n\\t--ck-focus-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-outer-shadow);\\n\\n\\t/**\\n\\t * A visual style of focused element's outer shadow (when disabled).\\n\\t */\\n\\t--ck-focus-disabled-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-disabled-shadow);\\n\\n\\t/**\\n\\t * A visual style of focused element's outer shadow (when has errors).\\n\\t */\\n\\t--ck-focus-error-outer-shadow: var(--ck-focus-outer-shadow-geometry) var(--ck-color-focus-error-shadow);\\n\\n\\t/**\\n\\t * A visual style of focused element's border or outline.\\n\\t */\\n\\t--ck-focus-ring: 1px solid var(--ck-color-focus-border);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-font-size-base: 13px;\\n\\t--ck-line-height-base: 1.84615;\\n\\t--ck-font-face: Helvetica, Arial, Tahoma, Verdana, Sans-Serif;\\n\\n\\t--ck-font-size-tiny: 0.7em;\\n\\t--ck-font-size-small: 0.75em;\\n\\t--ck-font-size-normal: 1em;\\n\\t--ck-font-size-big: 1.4em;\\n\\t--ck-font-size-large: 1.8em;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t/* This is super-important. This is **manually** adjusted so a button without an icon\\n\\tis never smaller than a button with icon, additionally making sure that text-less buttons\\n\\tare perfect squares. The value is also shared by other components which should stay \\\"in-line\\\"\\n\\twith buttons. */\\n\\t--ck-ui-component-min-height: 2.3em;\\n}\\n\\n/**\\n * Resets an element, ignoring its children.\\n */\\n.ck.ck-reset,\\n.ck.ck-reset_all,\\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\\n\\tbox-sizing: border-box;\\n\\twidth: auto;\\n\\theight: auto;\\n\\tposition: static;\\n\\n\\t/* Do not include inheritable rules here. */\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\tborder: 0;\\n\\tbackground: transparent;\\n\\ttext-decoration: none;\\n\\tvertical-align: middle;\\n\\ttransition: none;\\n\\n\\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/105 */\\n\\tword-wrap: break-word;\\n}\\n\\n/**\\n * Resets an element AND its children.\\n */\\n.ck.ck-reset_all,\\n.ck-reset_all *:not(.ck-reset_all-excluded *) {\\n\\t/* These are rule inherited by all children elements. */\\n\\tborder-collapse: collapse;\\n\\tfont: normal normal normal var(--ck-font-size-base)/var(--ck-line-height-base) var(--ck-font-face);\\n\\tcolor: var(--ck-color-text);\\n\\ttext-align: left;\\n\\twhite-space: nowrap;\\n\\tcursor: auto;\\n\\tfloat: none;\\n}\\n\\n.ck-reset_all {\\n\\t& .ck-rtl *:not(.ck-reset_all-excluded *) {\\n\\t\\ttext-align: right;\\n\\t}\\n\\n\\t& iframe:not(.ck-reset_all-excluded *) {\\n\\t\\t/* For IE */\\n\\t\\tvertical-align: inherit;\\n\\t}\\n\\n\\t& textarea:not(.ck-reset_all-excluded *) {\\n\\t\\twhite-space: pre-wrap;\\n\\t}\\n\\n\\t& textarea:not(.ck-reset_all-excluded *),\\n\\t& input[type=\\\"text\\\"]:not(.ck-reset_all-excluded *),\\n\\t& input[type=\\\"password\\\"]:not(.ck-reset_all-excluded *) {\\n\\t\\tcursor: text;\\n\\t}\\n\\n\\t& textarea[disabled]:not(.ck-reset_all-excluded *),\\n\\t& input[type=\\\"text\\\"][disabled]:not(.ck-reset_all-excluded *),\\n\\t& input[type=\\\"password\\\"][disabled]:not(.ck-reset_all-excluded *) {\\n\\t\\tcursor: default;\\n\\t}\\n\\n\\t& fieldset:not(.ck-reset_all-excluded *) {\\n\\t\\tpadding: 10px;\\n\\t\\tborder: 2px groove hsl(255, 7%, 88%);\\n\\t}\\n\\n\\t& button:not(.ck-reset_all-excluded *)::-moz-focus-inner {\\n\\t\\t/* See http://stackoverflow.com/questions/5517744/remove-extra-button-spacing-padding-in-firefox */\\n\\t\\tpadding: 0;\\n\\t\\tborder: 0\\n\\t}\\n}\\n\\n/**\\n * Default UI rules for RTL languages.\\n */\\n.ck[dir=\\\"rtl\\\"],\\n.ck[dir=\\\"rtl\\\"] .ck {\\n\\ttext-align: right;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * Default border-radius value.\\n */\\n:root{\\n\\t--ck-border-radius: 2px;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t/**\\n\\t * A visual style of element's inner shadow (i.e. input).\\n\\t */\\n\\t--ck-inner-shadow: 2px 2px 3px var(--ck-color-shadow-inner) inset;\\n\\n\\t/**\\n\\t * A visual style of element's drop shadow (i.e. panel).\\n\\t */\\n\\t--ck-drop-shadow: 0 1px 2px 1px var(--ck-color-shadow-drop);\\n\\n\\t/**\\n\\t * A visual style of element's active shadow (i.e. comment or suggestion).\\n\\t */\\n\\t--ck-drop-shadow-active: 0 3px 6px 1px var(--ck-color-shadow-drop-active);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-spacing-unit: \\t\\t\\t\\t\\t\\t0.6em;\\n\\t--ck-spacing-large: \\t\\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 1.5);\\n\\t--ck-spacing-standard: \\t\\t\\t\\t\\tvar(--ck-spacing-unit);\\n\\t--ck-spacing-medium: \\t\\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 0.8);\\n\\t--ck-spacing-small: \\t\\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 0.5);\\n\\t--ck-spacing-tiny: \\t\\t\\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 0.3);\\n\\t--ck-spacing-extra-tiny: \\t\\t\\t\\tcalc(var(--ck-spacing-unit) * 0.16);\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":root{--ck-color-resizer:var(--ck-color-focus-border);--ck-color-resizer-tooltip-background:#262626;--ck-color-resizer-tooltip-text:#f2f2f2;--ck-resizer-border-radius:var(--ck-border-radius);--ck-resizer-tooltip-offset:10px;--ck-resizer-tooltip-height:calc(var(--ck-spacing-small)*2 + 10px)}.ck .ck-widget,.ck .ck-widget.ck-widget_with-selection-handle{position:relative}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{position:absolute}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{display:block}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{visibility:visible}.ck .ck-size-view{background:var(--ck-color-resizer-tooltip-background);border:1px solid var(--ck-color-resizer-tooltip-text);border-radius:var(--ck-resizer-border-radius);color:var(--ck-color-resizer-tooltip-text);display:block;font-size:var(--ck-font-size-tiny);height:var(--ck-resizer-tooltip-height);line-height:var(--ck-resizer-tooltip-height);padding:0 var(--ck-spacing-small)}.ck .ck-size-view.ck-orientation-above-center,.ck .ck-size-view.ck-orientation-bottom-left,.ck .ck-size-view.ck-orientation-bottom-right,.ck .ck-size-view.ck-orientation-top-left,.ck .ck-size-view.ck-orientation-top-right{position:absolute}.ck .ck-size-view.ck-orientation-top-left{left:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-top-right{right:var(--ck-resizer-tooltip-offset);top:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-right{bottom:var(--ck-resizer-tooltip-offset);right:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-bottom-left{bottom:var(--ck-resizer-tooltip-offset);left:var(--ck-resizer-tooltip-offset)}.ck .ck-size-view.ck-orientation-above-center{left:50%;top:calc(var(--ck-resizer-tooltip-height)*-1);transform:translate(-50%)}:root{--ck-widget-outline-thickness:3px;--ck-widget-handler-icon-size:16px;--ck-widget-handler-animation-duration:200ms;--ck-widget-handler-animation-curve:ease;--ck-color-widget-blurred-border:#dedede;--ck-color-widget-hover-border:#ffc83d;--ck-color-widget-editable-focus-background:var(--ck-color-base-background);--ck-color-widget-drag-handler-icon-color:var(--ck-color-base-background)}.ck .ck-widget{outline-color:transparent;outline-style:solid;outline-width:var(--ck-widget-outline-thickness);transition:outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}@media (prefers-reduced-motion:reduce){.ck .ck-widget{transition:none}}.ck .ck-widget.ck-widget_selected,.ck .ck-widget.ck-widget_selected:hover{outline:var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border)}.ck .ck-widget:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-editor__nested-editable{border:1px solid transparent}.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{border:var(--ck-focus-ring);box-shadow:var(--ck-inner-shadow),0 0;outline:none}@media (forced-colors:none){.ck .ck-editor__nested-editable.ck-editor__nested-editable_focused,.ck .ck-editor__nested-editable:focus{background-color:var(--ck-color-widget-editable-focus-background)}}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{background-color:transparent;border-radius:var(--ck-border-radius) var(--ck-border-radius) 0 0;box-sizing:border-box;left:calc(0px - var(--ck-widget-outline-thickness));opacity:0;padding:4px;top:0;transform:translateY(-100%);transition:background-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),visibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve)}@media (prefers-reduced-motion:reduce){.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{transition:none}}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon{color:var(--ck-color-widget-drag-handler-icon-color);height:var(--ck-widget-handler-icon-size);width:var(--ck-widget-handler-icon-size)}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:0;transition:opacity .3s var(--ck-widget-handler-animation-curve)}@media (prefers-reduced-motion:reduce){.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{transition:none}}.ck .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover .ck-icon .ck-icon__selected-indicator{opacity:1}.ck .ck-widget.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle{background-color:var(--ck-color-widget-hover-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{background-color:var(--ck-color-focus-border);opacity:1}.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator,.ck .ck-widget.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle .ck-icon .ck-icon__selected-indicator{opacity:1}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle{left:auto;right:calc(0px - var(--ck-widget-outline-thickness))}.ck.ck-editor__editable.ck-read-only .ck-widget{transition:none}.ck.ck-editor__editable.ck-read-only .ck-widget:not(.ck-widget_selected){--ck-widget-outline-thickness:0px}.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle,.ck.ck-editor__editable.ck-read-only .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected:hover{outline-color:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle:hover>.ck-widget__selection-handle:hover,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle,.ck.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected.ck-widget_with-selection-handle>.ck-widget__selection-handle:hover{background:var(--ck-color-widget-blurred-border)}.ck.ck-editor__editable blockquote>.ck-widget.ck-widget_with-selection-handle:first-child,.ck.ck-editor__editable>.ck-widget.ck-widget_with-selection-handle:first-child{margin-top:calc(1em + var(--ck-widget-handler-icon-size))}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-widget/theme/widget.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-widget/widget.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_focus.css\",\"webpack://./../ckeditor5-theme-lark/theme/mixins/_shadow.css\",\"webpack://./../ckeditor5-ui/theme/mixins/_mediacolors.css\"],\"names\":[],\"mappings\":\"AAKA,MACC,+CAAgD,CAChD,6CAAsD,CACtD,uCAAgD,CAEhD,kDAAmD,CACnD,gCAAiC,CACjC,kEACD,CAOA,8DAEC,iBAqBD,CAnBC,4EACC,iBAOD,CALC,qFAGC,aACD,CASD,iLACC,kBACD,CAGD,kBACC,qDAAsD,CAEtD,qDAAsD,CACtD,6CAA8C,CAF9C,0CAA2C,CAI3C,aAAc,CADd,kCAAmC,CAGnC,uCAAwC,CACxC,4CAA6C,CAF7C,iCAsCD,CAlCC,8NAKC,iBACD,CAEA,0CAEC,qCAAsC,CADtC,oCAED,CAEA,2CAEC,sCAAuC,CADvC,oCAED,CAEA,8CACC,uCAAwC,CACxC,sCACD,CAEA,6CACC,uCAAwC,CACxC,qCACD,CAGA,8CAEC,QAAS,CADT,6CAAgD,CAEhD,yBACD,CChFD,MACC,iCAAkC,CAClC,kCAAmC,CACnC,4CAA6C,CAC7C,wCAAyC,CAEzC,wCAAiD,CACjD,sCAAkD,CAClD,2EAA4E,CAC5E,yEACD,CAEA,eAGC,yBAA0B,CAD1B,mBAAoB,CADpB,gDAAiD,CAGjD,6GAcD,CAZC,uCAND,eAOE,eAWF,CAVC,CAEA,0EAEC,6EACD,CAEA,qBACC,iDACD,CAGD,gCACC,4BAYD,CARC,yGCnCA,2BAA2B,CCF3B,qCAA8B,CDC9B,YD2CA,CGvCA,4BACC,yGHoCC,iEGlCD,CACD,CHuCA,4EAKC,4BAA6B,CAa7B,iEAAkE,CAhBlE,qBAAsB,CAoBtB,mDAAoD,CAhBpD,SAAU,CALV,WAAY,CAsBZ,KAAM,CAFN,2BAA4B,CAT5B,6SAwCD,CA3BC,uCAzBD,4EA0BE,eA0BF,CAzBC,CAEA,qFAIC,oDAAqD,CADrD,yCAA0C,CAD1C,wCAeD,CAVC,kHACC,SAAU,CAGV,+DAKD,CAHC,uCAND,kHAOE,eAEF,CADC,CAKF,wHACC,SACD,CAID,kFAEC,oDAAqD,CADrD,SAED,CAKC,oMAEC,6CAA8C,CAD9C,SAOD,CAHC,gRACC,SACD,CAOH,qFACC,SAAU,CACV,oDACD,CAGA,gDAEC,eAkBD,CAhBC,yEAOC,iCACD,CAGC,gOAEC,gDACD,CAOD,wIAEC,mDAQD,CALE,ghBAEC,gDACD,CAKH,yKAOC,yDACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-color-resizer: var(--ck-color-focus-border);\\n\\t--ck-color-resizer-tooltip-background: hsl(0, 0%, 15%);\\n\\t--ck-color-resizer-tooltip-text: hsl(0, 0%, 95%);\\n\\n\\t--ck-resizer-border-radius: var(--ck-border-radius);\\n\\t--ck-resizer-tooltip-offset: 10px;\\n\\t--ck-resizer-tooltip-height: calc(var(--ck-spacing-small) * 2 + 10px);\\n}\\n\\n.ck .ck-widget {\\n\\t/* This is neccessary for type around UI to be positioned properly. */\\n\\tposition: relative;\\n}\\n\\n.ck .ck-widget.ck-widget_with-selection-handle {\\n\\t/* Make the widget wrapper a relative positioning container for the drag handle. */\\n\\tposition: relative;\\n\\n\\t& .ck-widget__selection-handle {\\n\\t\\tposition: absolute;\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\t/* Make sure the icon in not a subject to font-size or line-height to avoid\\n\\t\\t\\tunnecessary spacing around it. */\\n\\t\\t\\tdisplay: block;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Show the selection handle on mouse hover over the widget, but not for nested widgets. */\\n\\t&:hover > .ck-widget__selection-handle {\\n\\t\\tvisibility: visible;\\n\\t}\\n\\n\\t/* Show the selection handle when the widget is selected, but not for nested widgets. */\\n\\t&.ck-widget_selected > .ck-widget__selection-handle {\\n\\t\\tvisibility: visible;\\n\\t}\\n}\\n\\n.ck .ck-size-view {\\n\\tbackground: var(--ck-color-resizer-tooltip-background);\\n\\tcolor: var(--ck-color-resizer-tooltip-text);\\n\\tborder: 1px solid var(--ck-color-resizer-tooltip-text);\\n\\tborder-radius: var(--ck-resizer-border-radius);\\n\\tfont-size: var(--ck-font-size-tiny);\\n\\tdisplay: block;\\n\\tpadding: 0 var(--ck-spacing-small);\\n\\theight: var(--ck-resizer-tooltip-height);\\n\\tline-height: var(--ck-resizer-tooltip-height);\\n\\n\\t&.ck-orientation-top-left,\\n\\t&.ck-orientation-top-right,\\n\\t&.ck-orientation-bottom-right,\\n\\t&.ck-orientation-bottom-left,\\n\\t&.ck-orientation-above-center {\\n\\t\\tposition: absolute;\\n\\t}\\n\\n\\t&.ck-orientation-top-left {\\n\\t\\ttop: var(--ck-resizer-tooltip-offset);\\n\\t\\tleft: var(--ck-resizer-tooltip-offset);\\n\\t}\\n\\n\\t&.ck-orientation-top-right {\\n\\t\\ttop: var(--ck-resizer-tooltip-offset);\\n\\t\\tright: var(--ck-resizer-tooltip-offset);\\n\\t}\\n\\n\\t&.ck-orientation-bottom-right {\\n\\t\\tbottom: var(--ck-resizer-tooltip-offset);\\n\\t\\tright: var(--ck-resizer-tooltip-offset);\\n\\t}\\n\\n\\t&.ck-orientation-bottom-left {\\n\\t\\tbottom: var(--ck-resizer-tooltip-offset);\\n\\t\\tleft: var(--ck-resizer-tooltip-offset);\\n\\t}\\n\\n\\t/* Class applied if the widget is too small to contain the size label */\\n\\t&.ck-orientation-above-center {\\n\\t\\ttop: calc(var(--ck-resizer-tooltip-height) * -1);\\n\\t\\tleft: 50%;\\n\\t\\ttransform: translate(-50%);\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@import \\\"../mixins/_focus.css\\\";\\n@import \\\"../mixins/_shadow.css\\\";\\n@import \\\"@ckeditor/ckeditor5-ui/theme/mixins/_mediacolors.css\\\";\\n\\n:root {\\n\\t--ck-widget-outline-thickness: 3px;\\n\\t--ck-widget-handler-icon-size: 16px;\\n\\t--ck-widget-handler-animation-duration: 200ms;\\n\\t--ck-widget-handler-animation-curve: ease;\\n\\n\\t--ck-color-widget-blurred-border: hsl(0, 0%, 87%);\\n\\t--ck-color-widget-hover-border: hsl(43, 100%, 62%);\\n\\t--ck-color-widget-editable-focus-background: var(--ck-color-base-background);\\n\\t--ck-color-widget-drag-handler-icon-color: var(--ck-color-base-background);\\n}\\n\\n.ck .ck-widget {\\n\\toutline-width: var(--ck-widget-outline-thickness);\\n\\toutline-style: solid;\\n\\toutline-color: transparent;\\n\\ttransition: outline-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\\n\\n\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\ttransition: none;\\n\\t}\\n\\n\\t&.ck-widget_selected,\\n\\t&.ck-widget_selected:hover {\\n\\t\\toutline: var(--ck-widget-outline-thickness) solid var(--ck-color-focus-border);\\n\\t}\\n\\n\\t&:hover {\\n\\t\\toutline-color: var(--ck-color-widget-hover-border);\\n\\t}\\n}\\n\\n.ck .ck-editor__nested-editable {\\n\\tborder: 1px solid transparent;\\n\\n\\t/* The :focus style is applied before .ck-editor__nested-editable_focused class is rendered in the view.\\n\\tThese styles show a different border for a blink of an eye, so `:focus` need to have same styles applied. */\\n\\t&.ck-editor__nested-editable_focused,\\n\\t&:focus {\\n\\t\\t@mixin ck-focus-ring;\\n\\t\\t@mixin ck-box-shadow var(--ck-inner-shadow);\\n\\t\\t@mixin ck-media-default-colors {\\n\\t\\t\\tbackground-color: var(--ck-color-widget-editable-focus-background);\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck .ck-widget.ck-widget_with-selection-handle {\\n\\t& .ck-widget__selection-handle {\\n\\t\\tpadding: 4px;\\n\\t\\tbox-sizing: border-box;\\n\\n\\t\\t/* Background and opacity will be animated as the handler shows up or the widget gets selected. */\\n\\t\\tbackground-color: transparent;\\n\\t\\topacity: 0;\\n\\n\\t\\t/* Transition:\\n\\t\\t * background-color for the .ck-widget_selected state change,\\n\\t\\t * visibility for hiding the handler,\\n\\t\\t * opacity for the proper look of the icon when the handler disappears. */\\n\\t\\ttransition:\\n\\t\\t\\tbackground-color var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\\n\\t\\t\\tvisibility var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),\\n\\t\\t\\topacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\\n\\n\\t\\t/* Make only top corners round. */\\n\\t\\tborder-radius: var(--ck-border-radius) var(--ck-border-radius) 0 0;\\n\\n\\t\\t/* Place the drag handler outside the widget wrapper. */\\n\\t\\ttransform: translateY(-100%);\\n\\t\\tleft: calc(0px - var(--ck-widget-outline-thickness));\\n\\t\\ttop: 0;\\n\\n\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\ttransition: none;\\n\\t\\t}\\n\\n\\t\\t& .ck-icon {\\n\\t\\t\\t/* Make sure the dimensions of the icon are independent of the fon-size of the content. */\\n\\t\\t\\twidth: var(--ck-widget-handler-icon-size);\\n\\t\\t\\theight: var(--ck-widget-handler-icon-size);\\n\\t\\t\\tcolor: var(--ck-color-widget-drag-handler-icon-color);\\n\\n\\t\\t\\t/* The \\\"selected\\\" part of the icon is invisible by default */\\n\\t\\t\\t& .ck-icon__selected-indicator {\\n\\t\\t\\t\\topacity: 0;\\n\\n\\t\\t\\t\\t/* Note: The animation is longer on purpose. Simply feels better. */\\n\\t\\t\\t\\ttransition: opacity 300ms var(--ck-widget-handler-animation-curve);\\n\\n\\t\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\t\\ttransition: none;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/* Advertise using the look of the icon that once clicked the handler, the widget will be selected. */\\n\\t\\t&:hover .ck-icon .ck-icon__selected-indicator {\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t/* Show the selection handler on mouse hover over the widget, but not for nested widgets. */\\n\\t&:hover > .ck-widget__selection-handle {\\n\\t\\topacity: 1;\\n\\t\\tbackground-color: var(--ck-color-widget-hover-border);\\n\\t}\\n\\n\\t/* Show the selection handler when the widget is selected, but not for nested widgets. */\\n\\t&.ck-widget_selected,\\n\\t&.ck-widget_selected:hover {\\n\\t\\t& > .ck-widget__selection-handle {\\n\\t\\t\\topacity: 1;\\n\\t\\t\\tbackground-color: var(--ck-color-focus-border);\\n\\n\\t\\t\\t/* When the widget is selected, notify the user using the proper look of the icon. */\\n\\t\\t\\t& .ck-icon .ck-icon__selected-indicator {\\n\\t\\t\\t\\topacity: 1;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n/* In a RTL environment, align the selection handler to the right side of the widget */\\n/* stylelint-disable-next-line no-descending-specificity */\\n.ck[dir=\\\"rtl\\\"] .ck-widget.ck-widget_with-selection-handle .ck-widget__selection-handle {\\n\\tleft: auto;\\n\\tright: calc(0px - var(--ck-widget-outline-thickness));\\n}\\n\\n/* https://github.com/ckeditor/ckeditor5/issues/6415 */\\n.ck.ck-editor__editable.ck-read-only .ck-widget {\\n\\t/* Prevent the :hover outline from showing up because of the used outline-color transition. */\\n\\ttransition: none;\\n\\n\\t&:not(.ck-widget_selected) {\\n\\t\\t/* Disable visual effects of hover/active widget when CKEditor is in readOnly mode.\\n\\t\\t * See: https://github.com/ckeditor/ckeditor5/issues/1261\\n\\t\\t *\\n\\t\\t * Leave the unit because this custom property is used in calc() by other features.\\n\\t\\t * See: https://github.com/ckeditor/ckeditor5/issues/6775\\n\\t\\t */\\n\\t\\t--ck-widget-outline-thickness: 0px;\\n\\t}\\n\\n\\t&.ck-widget_with-selection-handle {\\n\\t\\t& .ck-widget__selection-handle,\\n\\t\\t& .ck-widget__selection-handle:hover {\\n\\t\\t\\tbackground: var(--ck-color-widget-blurred-border);\\n\\t\\t}\\n\\t}\\n}\\n\\n/* Style the widget when it's selected but the editable it belongs to lost focus. */\\n/* stylelint-disable-next-line no-descending-specificity */\\n.ck.ck-editor__editable.ck-blurred .ck-widget {\\n\\t&.ck-widget_selected,\\n\\t&.ck-widget_selected:hover {\\n\\t\\toutline-color: var(--ck-color-widget-blurred-border);\\n\\n\\t\\t&.ck-widget_with-selection-handle {\\n\\t\\t\\t& > .ck-widget__selection-handle,\\n\\t\\t\\t& > .ck-widget__selection-handle:hover {\\n\\t\\t\\t\\tbackground: var(--ck-color-widget-blurred-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.ck.ck-editor__editable > .ck-widget.ck-widget_with-selection-handle:first-child,\\n.ck.ck-editor__editable blockquote > .ck-widget.ck-widget_with-selection-handle:first-child {\\n\\t/* Do not crop selection handler if a widget is a first-child in the blockquote or in the root editable.\\n\\tIn fact, anything with overflow: hidden.\\n\\thttps://github.com/ckeditor/ckeditor5-block-quote/issues/28\\n\\thttps://github.com/ckeditor/ckeditor5-widget/issues/44\\n\\thttps://github.com/ckeditor/ckeditor5-widget/issues/66 */\\n\\tmargin-top: calc(1em + var(--ck-widget-handler-icon-size));\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A visual style of focused element's border.\\n */\\n@define-mixin ck-focus-ring {\\n\\t/* Disable native outline. */\\n\\toutline: none;\\n\\tborder: var(--ck-focus-ring)\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n/**\\n * A helper to combine multiple shadows.\\n */\\n@define-mixin ck-box-shadow $shadowA, $shadowB: 0 0 {\\n\\tbox-shadow: $shadowA, $shadowB;\\n}\\n\\n/**\\n * Gives an element a drop shadow so it looks like a floating panel.\\n */\\n@define-mixin ck-drop-shadow {\\n\\t@mixin ck-box-shadow var(--ck-drop-shadow);\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n@define-mixin ck-media-forced-colors {\\n\\t@media (forced-colors: active) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\\n@define-mixin ck-media-default-colors {\\n\\t@media (forced-colors: none) {\\n\\t\\t& {\\n\\t\\t\\t@mixin-content;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-widget_with-resizer{position:relative}.ck .ck-widget__resizer{display:none;left:0;pointer-events:none;position:absolute;top:0}.ck-focused .ck-widget_with-resizer.ck-widget_selected>.ck-widget__resizer{display:block}.ck .ck-widget__resizer__handle{pointer-events:all;position:absolute}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{cursor:nwse-resize}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left,.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{cursor:nesw-resize}:root{--ck-resizer-size:10px;--ck-resizer-offset:calc(var(--ck-resizer-size)/-2 - 2px);--ck-resizer-border-width:1px}.ck .ck-widget__resizer{outline:1px solid var(--ck-color-resizer)}.ck .ck-widget__resizer__handle{background:var(--ck-color-focus-border);border:var(--ck-resizer-border-width) solid #fff;border-radius:var(--ck-resizer-border-radius);height:var(--ck-resizer-size);width:var(--ck-resizer-size)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-left{left:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-top-right{right:var(--ck-resizer-offset);top:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-right{bottom:var(--ck-resizer-offset);right:var(--ck-resizer-offset)}.ck .ck-widget__resizer__handle.ck-widget__resizer__handle-bottom-left{bottom:var(--ck-resizer-offset);left:var(--ck-resizer-offset)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-widget/theme/widgetresize.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-widget/widgetresize.css\"],\"names\":[],\"mappings\":\"AAKA,4BAEC,iBACD,CAEA,wBACC,YAAa,CAMb,MAAO,CAFP,mBAAoB,CAHpB,iBAAkB,CAMlB,KACD,CAGC,2EACC,aACD,CAGD,gCAIC,kBAAmB,CAHnB,iBAcD,CATC,4IAEC,kBACD,CAEA,4IAEC,kBACD,CCpCD,MACC,sBAAuB,CAGvB,yDAAiE,CACjE,6BACD,CAEA,wBACC,yCACD,CAEA,gCAGC,uCAAwC,CACxC,gDAA6D,CAC7D,6CAA8C,CAH9C,6BAA8B,CAD9B,4BAyBD,CAnBC,oEAEC,6BAA8B,CAD9B,4BAED,CAEA,qEAEC,8BAA+B,CAD/B,4BAED,CAEA,wEACC,+BAAgC,CAChC,8BACD,CAEA,uEACC,+BAAgC,CAChC,6BACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-widget_with-resizer {\\n\\t/* Make the widget wrapper a relative positioning container for the drag handle. */\\n\\tposition: relative;\\n}\\n\\n.ck .ck-widget__resizer {\\n\\tdisplay: none;\\n\\tposition: absolute;\\n\\n\\t/* The wrapper itself should not interfere with the pointer device, only the handles should. */\\n\\tpointer-events: none;\\n\\n\\tleft: 0;\\n\\ttop: 0;\\n}\\n\\n.ck-focused .ck-widget_with-resizer.ck-widget_selected {\\n\\t& > .ck-widget__resizer {\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\\n.ck .ck-widget__resizer__handle {\\n\\tposition: absolute;\\n\\n\\t/* Resizers are the only UI elements that should interfere with a pointer device. */\\n\\tpointer-events: all;\\n\\n\\t&.ck-widget__resizer__handle-top-left,\\n\\t&.ck-widget__resizer__handle-bottom-right {\\n\\t\\tcursor: nwse-resize;\\n\\t}\\n\\n\\t&.ck-widget__resizer__handle-top-right,\\n\\t&.ck-widget__resizer__handle-bottom-left {\\n\\t\\tcursor: nesw-resize;\\n\\t}\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-resizer-size: 10px;\\n\\n\\t/* Set the resizer with a 50% offset. */\\n\\t--ck-resizer-offset: calc( ( var(--ck-resizer-size) / -2 ) - 2px);\\n\\t--ck-resizer-border-width: 1px;\\n}\\n\\n.ck .ck-widget__resizer {\\n\\toutline: 1px solid var(--ck-color-resizer);\\n}\\n\\n.ck .ck-widget__resizer__handle {\\n\\twidth: var(--ck-resizer-size);\\n\\theight: var(--ck-resizer-size);\\n\\tbackground: var(--ck-color-focus-border);\\n\\tborder: var(--ck-resizer-border-width) solid hsl(0, 0%, 100%);\\n\\tborder-radius: var(--ck-resizer-border-radius);\\n\\n\\t&.ck-widget__resizer__handle-top-left {\\n\\t\\ttop: var(--ck-resizer-offset);\\n\\t\\tleft: var(--ck-resizer-offset);\\n\\t}\\n\\n\\t&.ck-widget__resizer__handle-top-right {\\n\\t\\ttop: var(--ck-resizer-offset);\\n\\t\\tright: var(--ck-resizer-offset);\\n\\t}\\n\\n\\t&.ck-widget__resizer__handle-bottom-right {\\n\\t\\tbottom: var(--ck-resizer-offset);\\n\\t\\tright: var(--ck-resizer-offset);\\n\\t}\\n\\n\\t&.ck-widget__resizer__handle-bottom-left {\\n\\t\\tbottom: var(--ck-resizer-offset);\\n\\t\\tleft: var(--ck-resizer-offset);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".ck .ck-widget .ck-widget__type-around__button{display:block;overflow:hidden;position:absolute;z-index:var(--ck-z-default)}.ck .ck-widget .ck-widget__type-around__button svg{left:50%;position:absolute;top:50%;z-index:calc(var(--ck-z-default) + 2)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_before{left:min(10%,30px);top:calc(var(--ck-widget-outline-thickness)*-.5);transform:translateY(-50%)}.ck .ck-widget .ck-widget__type-around__button.ck-widget__type-around__button_after{bottom:calc(var(--ck-widget-outline-thickness)*-.5);right:min(10%,30px);transform:translateY(50%)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{content:\\\"\\\";display:block;left:1px;position:absolute;top:1px;z-index:calc(var(--ck-z-default) + 1)}.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:none;left:0;position:absolute;right:0}.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__fake-caret{left:calc(var(--ck-widget-outline-thickness)*-1);right:calc(var(--ck-widget-outline-thickness)*-1)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__fake-caret{display:block;top:calc(var(--ck-widget-outline-thickness)*-1 - 1px)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__fake-caret{bottom:calc(var(--ck-widget-outline-thickness)*-1 - 1px);display:block}.ck.ck-editor__editable.ck-read-only .ck-widget__type-around,.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around,.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around{display:none}:root{--ck-widget-type-around-button-size:20px;--ck-color-widget-type-around-button-active:var(--ck-color-focus-border);--ck-color-widget-type-around-button-hover:var(--ck-color-widget-hover-border);--ck-color-widget-type-around-button-blurred-editable:var(--ck-color-widget-blurred-border);--ck-color-widget-type-around-button-radar-start-alpha:0;--ck-color-widget-type-around-button-radar-end-alpha:.3;--ck-color-widget-type-around-button-icon:var(--ck-color-base-background)}.ck .ck-widget .ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button);border-radius:100px;height:var(--ck-widget-type-around-button-size);opacity:0;pointer-events:none;transition:opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve),background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);width:var(--ck-widget-type-around-button-size)}@media (prefers-reduced-motion:reduce){.ck .ck-widget .ck-widget__type-around__button{transition:none}}.ck .ck-widget .ck-widget__type-around__button svg{height:8px;margin-top:1px;transform:translate(-50%,-50%);transition:transform .5s ease;width:10px}@media (prefers-reduced-motion:reduce){.ck .ck-widget .ck-widget__type-around__button svg{transition:none}}.ck .ck-widget .ck-widget__type-around__button svg *{stroke-dasharray:10;stroke-dashoffset:0;fill:none;stroke:var(--ck-color-widget-type-around-button-icon);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.ck .ck-widget .ck-widget__type-around__button svg line{stroke-dasharray:7}.ck .ck-widget .ck-widget__type-around__button:hover{animation:ck-widget-type-around-button-sonar 1s ease infinite}.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:ck-widget-type-around-arrow-dash 2s linear}.ck .ck-widget .ck-widget__type-around__button:hover svg line{animation:ck-widget-type-around-arrow-tip-dash 2s linear}@media (prefers-reduced-motion:reduce){.ck .ck-widget .ck-widget__type-around__button:hover,.ck .ck-widget .ck-widget__type-around__button:hover svg line,.ck .ck-widget .ck-widget__type-around__button:hover svg polyline{animation:none}}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:1;pointer-events:auto}.ck .ck-widget:not(.ck-widget_selected)>.ck-widget__type-around>.ck-widget__type-around__button{background:var(--ck-color-widget-type-around-button-hover)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover{background:var(--ck-color-widget-type-around-button-active)}.ck .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:after,.ck .ck-widget>.ck-widget__type-around>.ck-widget__type-around__button:hover:after{background:linear-gradient(135deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.3));border-radius:100px;height:calc(var(--ck-widget-type-around-button-size) - 2px);width:calc(var(--ck-widget-type-around-button-size) - 2px)}.ck .ck-widget.ck-widget_with-selection-handle>.ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:20px}.ck .ck-widget .ck-widget__type-around__fake-caret{animation:ck-widget-type-around-fake-caret-pulse 1s linear infinite normal forwards;background:var(--ck-color-base-text);height:1px;outline:1px solid hsla(0,0%,100%,.5);pointer-events:none}.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_after,.ck .ck-widget.ck-widget_selected.ck-widget_type-around_show-fake-caret_before{outline-color:transparent}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected:hover,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected:hover{outline-color:var(--ck-color-widget-hover-border)}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after>.ck-widget__type-around>.ck-widget__type-around__button,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_after.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_selected.ck-widget_with-resizer>.ck-widget__resizer,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected:hover>.ck-widget__selection-handle,.ck .ck-widget.ck-widget_type-around_show-fake-caret_before.ck-widget_with-selection-handle.ck-widget_selected>.ck-widget__selection-handle{opacity:0}.ck[dir=rtl] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around>.ck-widget__type-around__button_before{margin-left:0;margin-right:20px}.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button,.ck-editor__nested-editable.ck-editor__editable_selected .ck-widget:hover>.ck-widget__type-around>.ck-widget__type-around__button{opacity:0;pointer-events:none}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover){background:var(--ck-color-widget-type-around-button-blurred-editable)}.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected>.ck-widget__type-around>.ck-widget__type-around__button:not(:hover) svg *{stroke:#999}@keyframes ck-widget-type-around-arrow-dash{0%{stroke-dashoffset:10}20%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-arrow-tip-dash{0%,20%{stroke-dashoffset:7}40%,to{stroke-dashoffset:0}}@keyframes ck-widget-type-around-button-sonar{0%{box-shadow:0 0 0 0 hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}50%{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-end-alpha))}to{box-shadow:0 0 0 5px hsla(var(--ck-color-focus-border-coordinates),var(--ck-color-widget-type-around-button-radar-start-alpha))}}@keyframes ck-widget-type-around-fake-caret-pulse{0%{opacity:1}49%{opacity:1}50%{opacity:0}99%{opacity:0}to{opacity:1}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../ckeditor5-widget/theme/widgettypearound.css\",\"webpack://./../ckeditor5-theme-lark/theme/ckeditor5-widget/widgettypearound.css\"],\"names\":[],\"mappings\":\"AASC,+CACC,aAAc,CAEd,eAAgB,CADhB,iBAAkB,CAElB,2BAwBD,CAtBC,mDAGC,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAEA,qFAGC,kBAAoB,CADpB,gDAAoD,CAGpD,0BACD,CAEA,oFAEC,mDAAuD,CACvD,mBAAqB,CAErB,yBACD,CAUA,mLACC,UAAW,CACX,aAAc,CAGd,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qCACD,CAMD,2EACC,YAAa,CAEb,MAAO,CADP,iBAAkB,CAElB,OACD,CAOA,iFACC,gDAAqD,CACrD,iDACD,CAKA,wHAEC,aAAc,CADd,qDAED,CAKA,uHACC,wDAA6D,CAC7D,aACD,CAoBD,mOACC,YACD,CC3GA,MACC,wCAAyC,CACzC,wEAAyE,CACzE,8EAA+E,CAC/E,2FAA4F,CAC5F,wDAAyD,CACzD,uDAAwD,CACxD,yEACD,CAgBC,+CAGC,oDAAqD,CACrD,mBAAoB,CAFpB,+CAAgD,CAVjD,SAAU,CACV,mBAAoB,CAYnB,uMAAyM,CAJzM,8CAwED,CAhEC,uCATD,+CAUE,eA+DF,CA9DC,CAEA,mDAEC,UAAW,CAGX,cAAe,CAFf,8BAA+B,CAC/B,6BAA8B,CAH9B,UAwBD,CAlBC,uCAPD,mDAQE,eAiBF,CAhBC,CAEA,qDACC,mBAAoB,CACpB,mBAAoB,CAEpB,SAAU,CACV,qDAAsD,CACtD,kBAAmB,CACnB,oBAAqB,CACrB,qBACD,CAEA,wDACC,kBACD,CAGD,qDAIC,6DA4BD,CAtBE,kEACC,oDACD,CAEA,8DACC,wDACD,CAGD,uCAQE,qLACC,cACD,CAEF,CASD,uKA7FD,SAAU,CACV,mBA8FC,CAOD,gGACC,0DACD,CAOA,uKAEC,2DAQD,CANC,mLAIC,uEAAkF,CADlF,mBAAoB,CADpB,2DAA4D,CAD5D,0DAID,CAOD,8GACC,gBACD,CAKA,mDAGC,mFAAoF,CAOpF,oCAAqC,CARrC,UAAW,CAOX,oCAAwC,CARxC,mBAUD,CAOC,6JAEC,yBACD,CAUA,yKACC,iDACD,CAMA,uOAxKD,SAAU,CACV,mBAyKC,CAoBA,6yBACC,SACD,CASF,uHACC,aAAc,CACd,iBACD,CAYG,iRAxNF,SAAU,CACV,mBAyNE,CAQH,kIACC,qEAKD,CAHC,wIACC,WACD,CAGD,4CACC,GACC,oBACD,CACA,OACC,mBACD,CACD,CAEA,gDACC,OACC,mBACD,CACA,OACC,mBACD,CACD,CAEA,8CACC,GACC,6HACD,CACA,IACC,6HACD,CACA,GACC,+HACD,CACD,CAEA,kDACC,GACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,IACC,SACD,CACA,GACC,SACD,CACD\",\"sourcesContent\":[\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n.ck .ck-widget {\\n\\t/*\\n\\t * Styles of the type around buttons\\n\\t */\\n\\t& .ck-widget__type-around__button {\\n\\t\\tdisplay: block;\\n\\t\\tposition: absolute;\\n\\t\\toverflow: hidden;\\n\\t\\tz-index: var(--ck-z-default);\\n\\n\\t\\t& svg {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 50%;\\n\\t\\t\\tleft: 50%;\\n\\t\\t\\tz-index: calc(var(--ck-z-default) + 2);\\n\\t\\t}\\n\\n\\t\\t&.ck-widget__type-around__button_before {\\n\\t\\t\\t/* Place it in the middle of the outline */\\n\\t\\t\\ttop: calc(-0.5 * var(--ck-widget-outline-thickness));\\n\\t\\t\\tleft: min(10%, 30px);\\n\\n\\t\\t\\ttransform: translateY(-50%);\\n\\t\\t}\\n\\n\\t\\t&.ck-widget__type-around__button_after {\\n\\t\\t\\t/* Place it in the middle of the outline */\\n\\t\\t\\tbottom: calc(-0.5 * var(--ck-widget-outline-thickness));\\n\\t\\t\\tright: min(10%, 30px);\\n\\n\\t\\t\\ttransform: translateY(50%);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the buttons when:\\n\\t * - the widget is selected,\\n\\t * - or the button is being hovered (regardless of the widget state).\\n\\t */\\n\\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\\n\\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\\n\\t\\t&::after {\\n\\t\\t\\tcontent: \\\"\\\";\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\ttop: 1px;\\n\\t\\t\\tleft: 1px;\\n\\t\\t\\tz-index: calc(var(--ck-z-default) + 1);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the horizontal \\\"fake caret\\\" which is displayed when the user navigates using the keyboard.\\n\\t */\\n\\t& > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\\n\\t\\tdisplay: none;\\n\\t\\tposition: absolute;\\n\\t\\tleft: 0;\\n\\t\\tright: 0;\\n\\t}\\n\\n\\t/*\\n\\t * When the widget is hovered the \\\"fake caret\\\" would normally be narrower than the\\n\\t * extra outline displayed around the widget. Let's extend the \\\"fake caret\\\" to match\\n\\t * the full width of the widget.\\n\\t */\\n\\t&:hover > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\\n\\t\\tleft: calc( -1 * var(--ck-widget-outline-thickness) );\\n\\t\\tright: calc( -1 * var(--ck-widget-outline-thickness) );\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the horizontal \\\"fake caret\\\" when it should be displayed before the widget (backward keyboard navigation).\\n\\t */\\n\\t&.ck-widget_type-around_show-fake-caret_before > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\\n\\t\\ttop: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\\n\\t\\tdisplay: block;\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the horizontal \\\"fake caret\\\" when it should be displayed after the widget (forward keyboard navigation).\\n\\t */\\n\\t&.ck-widget_type-around_show-fake-caret_after > .ck-widget__type-around > .ck-widget__type-around__fake-caret {\\n\\t\\tbottom: calc( -1 * var(--ck-widget-outline-thickness) - 1px );\\n\\t\\tdisplay: block;\\n\\t}\\n}\\n\\n/*\\n * Integration with the read-only mode of the editor.\\n */\\n.ck.ck-editor__editable.ck-read-only .ck-widget__type-around {\\n\\tdisplay: none;\\n}\\n\\n/*\\n * Integration with the restricted editing mode (feature) of the editor.\\n */\\n.ck.ck-editor__editable.ck-restricted-editing_mode_restricted .ck-widget__type-around {\\n\\tdisplay: none;\\n}\\n\\n/*\\n * Integration with the #isEnabled property of the WidgetTypeAround plugin.\\n */\\n.ck.ck-editor__editable.ck-widget__type-around_disabled .ck-widget__type-around {\\n\\tdisplay: none;\\n}\\n\",\"/*\\n * Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\\n */\\n\\n:root {\\n\\t--ck-widget-type-around-button-size: 20px;\\n\\t--ck-color-widget-type-around-button-active: var(--ck-color-focus-border);\\n\\t--ck-color-widget-type-around-button-hover: var(--ck-color-widget-hover-border);\\n\\t--ck-color-widget-type-around-button-blurred-editable: var(--ck-color-widget-blurred-border);\\n\\t--ck-color-widget-type-around-button-radar-start-alpha: 0;\\n\\t--ck-color-widget-type-around-button-radar-end-alpha: .3;\\n\\t--ck-color-widget-type-around-button-icon: var(--ck-color-base-background);\\n}\\n\\n@define-mixin ck-widget-type-around-button-visible {\\n\\topacity: 1;\\n\\tpointer-events: auto;\\n}\\n\\n@define-mixin ck-widget-type-around-button-hidden {\\n\\topacity: 0;\\n\\tpointer-events: none;\\n}\\n\\n.ck .ck-widget {\\n\\t/*\\n\\t * Styles of the type around buttons\\n\\t */\\n\\t& .ck-widget__type-around__button {\\n\\t\\twidth: var(--ck-widget-type-around-button-size);\\n\\t\\theight: var(--ck-widget-type-around-button-size);\\n\\t\\tbackground: var(--ck-color-widget-type-around-button);\\n\\t\\tborder-radius: 100px;\\n\\t\\ttransition: opacity var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve), background var(--ck-widget-handler-animation-duration) var(--ck-widget-handler-animation-curve);\\n\\n\\t\\t@mixin ck-widget-type-around-button-hidden;\\n\\n\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\ttransition: none;\\n\\t\\t}\\n\\n\\t\\t& svg {\\n\\t\\t\\twidth: 10px;\\n\\t\\t\\theight: 8px;\\n\\t\\t\\ttransform: translate(-50%,-50%);\\n\\t\\t\\ttransition: transform .5s ease;\\n\\t\\t\\tmargin-top: 1px;\\n\\n\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\ttransition: none;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& * {\\n\\t\\t\\t\\tstroke-dasharray: 10;\\n\\t\\t\\t\\tstroke-dashoffset: 0;\\n\\n\\t\\t\\t\\tfill: none;\\n\\t\\t\\t\\tstroke: var(--ck-color-widget-type-around-button-icon);\\n\\t\\t\\t\\tstroke-width: 1.5px;\\n\\t\\t\\t\\tstroke-linecap: round;\\n\\t\\t\\t\\tstroke-linejoin: round;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& line {\\n\\t\\t\\t\\tstroke-dasharray: 7;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&:hover {\\n\\t\\t\\t/*\\n\\t\\t\\t * Display the \\\"sonar\\\" around the button when hovered.\\n\\t\\t\\t */\\n\\t\\t\\tanimation: ck-widget-type-around-button-sonar 1s ease infinite;\\n\\n\\t\\t\\t/*\\n\\t\\t\\t * Animate active button's icon.\\n\\t\\t\\t */\\n\\t\\t\\t& svg {\\n\\t\\t\\t\\t& polyline {\\n\\t\\t\\t\\t\\tanimation: ck-widget-type-around-arrow-dash 2s linear;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t& line {\\n\\t\\t\\t\\t\\tanimation: ck-widget-type-around-arrow-tip-dash 2s linear;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t@media (prefers-reduced-motion: reduce) {\\n\\t\\t\\t\\tanimation: none;\\n\\n\\t\\t\\t\\t& svg {\\n\\t\\t\\t\\t\\t& polyline {\\n\\t\\t\\t\\t\\t\\tanimation: none;\\n\\t\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t\\t& line {\\n\\t\\t\\t\\t\\t\\tanimation: none;\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Show type around buttons when the widget gets selected or being hovered.\\n\\t */\\n\\t&.ck-widget_selected,\\n\\t&:hover {\\n\\t\\t& > .ck-widget__type-around > .ck-widget__type-around__button {\\n\\t\\t\\t@mixin ck-widget-type-around-button-visible;\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the buttons when the widget is NOT selected (but the buttons are visible\\n\\t * and still can be hovered).\\n\\t */\\n\\t&:not(.ck-widget_selected) > .ck-widget__type-around > .ck-widget__type-around__button {\\n\\t\\tbackground: var(--ck-color-widget-type-around-button-hover);\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the buttons when:\\n\\t * - the widget is selected,\\n\\t * - or the button is being hovered (regardless of the widget state).\\n\\t */\\n\\t&.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button,\\n\\t& > .ck-widget__type-around > .ck-widget__type-around__button:hover {\\n\\t\\tbackground: var(--ck-color-widget-type-around-button-active);\\n\\n\\t\\t&::after {\\n\\t\\t\\twidth: calc(var(--ck-widget-type-around-button-size) - 2px);\\n\\t\\t\\theight: calc(var(--ck-widget-type-around-button-size) - 2px);\\n\\t\\t\\tborder-radius: 100px;\\n\\t\\t\\tbackground: linear-gradient(135deg, hsla(0,0%,100%,0) 0%, hsla(0,0%,100%,.3) 100%);\\n\\t\\t}\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the \\\"before\\\" button when the widget has a selection handle. Because some space\\n\\t * is consumed by the handle, the button must be moved slightly to the right to let it breathe.\\n\\t */\\n\\t&.ck-widget_with-selection-handle > .ck-widget__type-around > .ck-widget__type-around__button_before {\\n\\t\\tmargin-left: 20px;\\n\\t}\\n\\n\\t/*\\n\\t * Styles for the horizontal \\\"fake caret\\\" which is displayed when the user navigates using the keyboard.\\n\\t */\\n\\t& .ck-widget__type-around__fake-caret {\\n\\t\\tpointer-events: none;\\n\\t\\theight: 1px;\\n\\t\\tanimation: ck-widget-type-around-fake-caret-pulse linear 1s infinite normal forwards;\\n\\n\\t\\t/*\\n\\t\\t * The semi-transparent-outline+background combo improves the contrast\\n\\t\\t * when the background underneath the fake caret is dark.\\n\\t\\t */\\n\\t\\toutline: solid 1px hsla(0, 0%, 100%, .5);\\n\\t\\tbackground: var(--ck-color-base-text);\\n\\t}\\n\\n\\t/*\\n\\t * Styles of the widget when the \\\"fake caret\\\" is blinking (e.g. upon keyboard navigation).\\n\\t * Despite the widget being physically selected in the model, its outline should disappear.\\n\\t */\\n\\t&.ck-widget_selected {\\n\\t\\t&.ck-widget_type-around_show-fake-caret_before,\\n\\t\\t&.ck-widget_type-around_show-fake-caret_after {\\n\\t\\t\\toutline-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t&.ck-widget_type-around_show-fake-caret_before,\\n\\t&.ck-widget_type-around_show-fake-caret_after {\\n\\t\\t/*\\n\\t\\t * When the \\\"fake caret\\\" is visible we simulate that the widget is not selected\\n\\t\\t * (despite being physically selected), so the outline color should be for the\\n\\t\\t * unselected widget.\\n\\t\\t */\\n\\t\\t&.ck-widget_selected:hover {\\n\\t\\t\\toutline-color: var(--ck-color-widget-hover-border);\\n\\t\\t}\\n\\n\\t\\t/*\\n\\t\\t * Styles of the type around buttons when the \\\"fake caret\\\" is blinking (e.g. upon keyboard navigation).\\n\\t\\t * In this state, the type around buttons would collide with the fake carets so they should disappear.\\n\\t\\t */\\n\\t\\t& > .ck-widget__type-around > .ck-widget__type-around__button {\\n\\t\\t\\t@mixin ck-widget-type-around-button-hidden;\\n\\t\\t}\\n\\n\\t\\t/*\\n\\t\\t * Fake horizontal caret integration with the selection handle. When the caret is visible, simply\\n\\t\\t * hide the handle because it intersects with the caret (and does not make much sense anyway).\\n\\t\\t */\\n\\t\\t&.ck-widget_with-selection-handle {\\n\\t\\t\\t&.ck-widget_selected,\\n\\t\\t\\t&.ck-widget_selected:hover {\\n\\t\\t\\t\\t& > .ck-widget__selection-handle {\\n\\t\\t\\t\\t\\topacity: 0\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t/*\\n\\t\\t * Fake horizontal caret integration with the resize UI. When the caret is visible, simply\\n\\t\\t * hide the resize UI because it creates too much noise. It can be visible when the user\\n\\t\\t * hovers the widget, though.\\n\\t\\t */\\n\\t\\t&.ck-widget_selected.ck-widget_with-resizer > .ck-widget__resizer {\\n\\t\\t\\topacity: 0\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * Styles for the \\\"before\\\" button when the widget has a selection handle in an RTL environment.\\n * The selection handler is aligned to the right side of the widget so there is no need to create\\n * additional space for it next to the \\\"before\\\" button.\\n */\\n.ck[dir=\\\"rtl\\\"] .ck-widget.ck-widget_with-selection-handle .ck-widget__type-around > .ck-widget__type-around__button_before {\\n\\tmargin-left: 0;\\n\\tmargin-right: 20px;\\n}\\n\\n/*\\n * Hide type around buttons when the widget is selected as a child of a selected\\n * nested editable (e.g. mulit-cell table selection).\\n *\\n * See https://github.com/ckeditor/ckeditor5/issues/7263.\\n */\\n.ck-editor__nested-editable.ck-editor__editable_selected {\\n\\t& .ck-widget {\\n\\t\\t&.ck-widget_selected,\\n\\t\\t&:hover {\\n\\t\\t\\t& > .ck-widget__type-around > .ck-widget__type-around__button {\\n\\t\\t\\t\\t@mixin ck-widget-type-around-button-hidden;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n/*\\n * Styles for the buttons when the widget is selected but the user clicked outside of the editor (blurred the editor).\\n */\\n.ck-editor__editable.ck-blurred .ck-widget.ck-widget_selected > .ck-widget__type-around > .ck-widget__type-around__button:not(:hover) {\\n\\tbackground: var(--ck-color-widget-type-around-button-blurred-editable);\\n\\n\\t& svg * {\\n\\t\\tstroke: hsl(0,0%,60%);\\n\\t}\\n}\\n\\n@keyframes ck-widget-type-around-arrow-dash {\\n\\t0% {\\n\\t\\tstroke-dashoffset: 10;\\n\\t}\\n\\t20%, 100% {\\n\\t\\tstroke-dashoffset: 0;\\n\\t}\\n}\\n\\n@keyframes ck-widget-type-around-arrow-tip-dash {\\n\\t0%, 20% {\\n\\t\\tstroke-dashoffset: 7;\\n\\t}\\n\\t40%, 100% {\\n\\t\\tstroke-dashoffset: 0;\\n\\t}\\n}\\n\\n@keyframes ck-widget-type-around-button-sonar {\\n\\t0% {\\n\\t\\tbox-shadow: 0 0 0 0 hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\\n\\t}\\n\\t50% {\\n\\t\\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-end-alpha));\\n\\t}\\n\\t100% {\\n\\t\\tbox-shadow: 0 0 0 5px hsla(var(--ck-color-focus-border-coordinates), var(--ck-color-widget-type-around-button-radar-start-alpha));\\n\\t}\\n}\\n\\n@keyframes ck-widget-type-around-fake-caret-pulse {\\n\\t0% {\\n\\t\\topacity: 1;\\n\\t}\\n\\t49% {\\n\\t\\topacity: 1;\\n\\t}\\n\\t50% {\\n\\t\\topacity: 0;\\n\\t}\\n\\t99% {\\n\\t\\topacity: 0;\\n\\t}\\n\\t100% {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of `);\n const root = this.attachShadow({ mode: 'open' });\n root.appendChild(template.content.cloneNode(true));\n root.addEventListener('move', this);\n this[$parts] = this[$sliders].map((slider) => new slider(root));\n }\n connectedCallback() {\n // A user may set a property on an _instance_ of an element,\n // before its prototype has been connected to this class.\n // If so, we need to run it through the proper class setter.\n if (this.hasOwnProperty('color')) {\n const value = this.color;\n delete this['color'];\n this.color = value;\n }\n else if (!this.color) {\n this.color = this.colorModel.defaultColor;\n }\n }\n attributeChangedCallback(_attr, _oldVal, newVal) {\n const color = this.colorModel.fromAttr(newVal);\n if (!this[$isSame](color)) {\n this.color = color;\n }\n }\n handleEvent(event) {\n // Merge the current HSV color object with updated params.\n const oldHsva = this[$hsva];\n const newHsva = { ...oldHsva, ...event.detail };\n this[$update](newHsva);\n let newColor;\n if (!equalColorObjects(newHsva, oldHsva) &&\n !this[$isSame]((newColor = this.colorModel.fromHsva(newHsva)))) {\n this[$color] = newColor;\n fire(this, 'color-changed', { value: newColor });\n }\n }\n [$isSame](color) {\n return this.color && this.colorModel.equal(color, this.color);\n }\n [$update](hsva) {\n this[$hsva] = hsva;\n this[$parts].forEach((part) => part.update(hsva));\n }\n}\n//# sourceMappingURL=color-picker.js.map","export default `[part=hue]{flex:0 0 24px;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}[part=hue-pointer]{top:50%;z-index:2}`;\n//# sourceMappingURL=hue.js.map","export default `[part=saturation]{flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,rgba(255,255,255,0));box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}[part=saturation-pointer]{z-index:3}`;\n//# sourceMappingURL=saturation.js.map","import { ColorPicker } from '../components/color-picker.js';\nimport { hexToHsva, hsvaToHex } from '../utils/convert.js';\nimport { equalHex } from '../utils/compare.js';\nconst colorModel = {\n defaultColor: '#000',\n toHsva: hexToHsva,\n fromHsva: ({ h, s, v }) => hsvaToHex({ h, s, v, a: 1 }),\n equal: equalHex,\n fromAttr: (color) => color\n};\nexport class HexBase extends ColorPicker {\n get colorModel() {\n return colorModel;\n }\n}\n//# sourceMappingURL=hex.js.map","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./colorpicker.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/colorpicker/colorpickerview\n */\n\nimport { convertColor, convertToHex, registerCustomElement, type ColorPickerViewConfig } from './utils.js';\n\nimport type { HexColor } from '@ckeditor/ckeditor5-core';\nimport { type Locale, global, env } from '@ckeditor/ckeditor5-utils';\nimport { debounce, type DebouncedFunc } from 'lodash-es';\nimport View from '../view.js';\nimport type InputTextView from '../inputtext/inputtextview.js';\nimport type ViewCollection from '../viewcollection.js';\nimport LabeledFieldView from '../labeledfield/labeledfieldview.js';\nimport { createLabeledInputText } from '../labeledfield/utils.js';\n\n// Custom export due to https://github.com/ckeditor/ckeditor5/issues/15698.\nimport { HexBase } from 'vanilla-colorful/lib/entrypoints/hex';\nimport '../../theme/components/colorpicker/colorpicker.css';\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'hex-color-picker': HexBase;\n\t}\n}\n\nconst waitingTime = 150;\n\n/**\n * A class which represents a color picker with an input field for defining custom colors.\n */\nexport default class ColorPickerView extends View {\n\t/**\n\t * Element with saturation and hue sliders.\n\t */\n\tdeclare public picker: HexBase;\n\n\t/**\n\t * Container for a `#` sign prefix and an input for displaying and defining custom colors\n\t * in HEX format.\n\t */\n\tpublic hexInputRow: ColorPickerInputRowView;\n\n\t/**\n\t * Current color selected in the color picker. It can be set by the component itself\n\t * (through the palette or input) or from the outside (e.g. to reflect the current selection color).\n\t */\n\tdeclare public color: string;\n\n\t/**\n\t * List of slider views of the color picker.\n\t */\n\tdeclare public slidersView: ViewCollection;\n\n\t/**\n\t * An internal representation of a color.\n\t *\n\t * Since the picker uses a hex format, that's how we store it.\n\t *\n\t * Since this is unified color format it won't fire a change event if color is changed\n\t * from `#f00` to `#ff0000` (same value, different format).\n\t *\n\t * @observable\n\t * @private\n\t */\n\tdeclare public _hexColor: string;\n\n\t/**\n\t * Debounced function updating the `color` property in the component\n\t * and firing the `ColorPickerColorSelectedEvent`. Executed whenever color in component\n\t * is changed by the user interaction (through the palette or input).\n\t *\n\t * @private\n\t */\n\tprivate _debounceColorPickerEvent: DebouncedFunc<( arg: string ) => void>;\n\n\t/**\n\t * A reference to the configuration of the color picker specified in the constructor.\n\t *\n\t * @private\n\t */\n\tprivate _config: ColorPickerViewConfig;\n\n\t/**\n\t * Creates a view of color picker.\n\t *\n\t * @param locale\n\t * @param config\n\t */\n\tconstructor( locale: Locale | undefined, config: ColorPickerViewConfig = {} ) {\n\t\tsuper( locale );\n\n\t\tthis.set( {\n\t\t\tcolor: '',\n\t\t\t_hexColor: ''\n\t\t} );\n\n\t\tthis.hexInputRow = this._createInputRow();\n\t\tconst children = this.createCollection();\n\n\t\tif ( !config.hideInput ) {\n\t\t\tchildren.add( this.hexInputRow );\n\t\t}\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [ 'ck', 'ck-color-picker' ],\n\t\t\t\ttabindex: -1\n\t\t\t},\n\t\t\tchildren\n\t\t} );\n\n\t\tthis._config = config;\n\n\t\tthis._debounceColorPickerEvent = debounce( ( color: string ) => {\n\t\t\t// At first, set the color internally in the component. It's converted to the configured output format.\n\t\t\tthis.set( 'color', color );\n\n\t\t\t// Then let the outside world know that the user changed the color.\n\t\t\tthis.fire( 'colorSelected', { color: this.color } );\n\t\t}, waitingTime, {\n\t\t\tleading: true\n\t\t} );\n\n\t\t// The `color` property holds the color in the configured output format.\n\t\t// Ensure it before actually setting the value.\n\t\tthis.on( 'set:color', ( evt, propertyName, newValue ) => {\n\t\t\tevt.return = convertColor( newValue, this._config.format || 'hsl' );\n\t\t} );\n\n\t\t// The `_hexColor` property is bound to the `color` one, but requires conversion.\n\t\tthis.on( 'change:color', () => {\n\t\t\tthis._hexColor = convertColorToCommonHexFormat( this.color );\n\t\t} );\n\n\t\tthis.on( 'change:_hexColor', () => {\n\t\t\t// Update the selected color in the color picker palette when it's not focused.\n\t\t\t// It means the user typed the color in the input.\n\t\t\tif ( document.activeElement !== this.picker ) {\n\t\t\t\tthis.picker.setAttribute( 'color', this._hexColor );\n\t\t\t}\n\n\t\t\t// There has to be two way binding between properties.\n\t\t\t// Extra precaution has to be taken to trigger change back only when the color really changes.\n\t\t\tif ( convertColorToCommonHexFormat( this.color ) != convertColorToCommonHexFormat( this._hexColor ) ) {\n\t\t\t\tthis.color = this._hexColor;\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Renders color picker in the view.\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\t// Extracted to the helper to make it testable.\n\t\tregisterCustomElement( 'hex-color-picker', HexBase );\n\n\t\tthis.picker = global.document.createElement( 'hex-color-picker' );\n\t\tthis.picker.setAttribute( 'class', 'hex-color-picker' );\n\t\tthis.picker.setAttribute( 'tabindex', '-1' );\n\n\t\tthis._createSlidersView();\n\n\t\tif ( this.element ) {\n\t\t\tif ( this.hexInputRow.element ) {\n\t\t\t\tthis.element.insertBefore( this.picker, this.hexInputRow.element );\n\t\t\t} else {\n\t\t\t\tthis.element.appendChild( this.picker );\n\t\t\t}\n\n\t\t\t// Create custom stylesheet with a look of focused pointer in color picker and append it into the color picker shadowDom\n\t\t\tconst styleSheetForFocusedColorPicker = document.createElement( 'style' );\n\n\t\t\tstyleSheetForFocusedColorPicker.textContent = '[role=\"slider\"]:focus [part$=\"pointer\"] {' +\n\t\t\t\t'border: 1px solid #fff;' +\n\t\t\t\t'outline: 1px solid var(--ck-color-focus-border);' +\n\t\t\t\t'box-shadow: 0 0 0 2px #fff;' +\n\t\t\t\t'}';\n\t\t\tthis.picker.shadowRoot!.appendChild( styleSheetForFocusedColorPicker );\n\t\t}\n\n\t\tthis.picker.addEventListener( 'color-changed', event => {\n\t\t\tconst color = event.detail.value;\n\t\t\tthis._debounceColorPickerEvent( color );\n\t\t} );\n\t}\n\n\t/**\n\t * Focuses the first pointer in color picker.\n\t *\n\t */\n\tpublic focus(): void {\n\t\t// In some browsers we need to move the focus to the input first.\n\t\t// Otherwise, the color picker doesn't behave as expected.\n\t\t// In FF, after selecting the color via slider, it instantly moves back to the previous color.\n\t\t// In all iOS browsers and desktop Safari, once the saturation slider is moved for the first time,\n\t\t// editor collapses the selection and doesn't apply the color change.\n\t\t// See: https://github.com/cksource/ckeditor5-internal/issues/3245, https://github.com/ckeditor/ckeditor5/issues/14119,\n\t\t// https://github.com/cksource/ckeditor5-internal/issues/3268.\n\t\t/* istanbul ignore next -- @preserve */\n\t\tif ( !this._config.hideInput && ( env.isGecko || env.isiOS || env.isSafari ) ) {\n\t\t\tconst input: LabeledFieldView = this.hexInputRow!.children.get( 1 )! as LabeledFieldView;\n\n\t\t\tinput.focus();\n\t\t}\n\n\t\tconst firstSlider = this.slidersView.first!;\n\n\t\tfirstSlider.focus();\n\t}\n\n\t/**\n\t * Creates collection of sliders in color picker.\n\t *\n\t * @private\n\t */\n\tprivate _createSlidersView(): void {\n\t\tconst colorPickersChildren = [ ...this.picker.shadowRoot!.children ] as Array;\n\t\tconst sliders = colorPickersChildren.filter( item => item.getAttribute( 'role' ) === 'slider' );\n\n\t\tconst slidersView = sliders.map( slider => {\n\t\t\tconst view = new SliderView( slider );\n\n\t\t\treturn view;\n\t\t} );\n\n\t\tthis.slidersView = this.createCollection();\n\n\t\tslidersView.forEach( item => {\n\t\t\tthis.slidersView.add( item );\n\t\t} );\n\t}\n\n\t/**\n\t * Creates input row for defining custom colors in color picker.\n\t *\n\t * @private\n\t */\n\tprivate _createInputRow(): ColorPickerInputRowView {\n\t\tconst colorInput = this._createColorInput();\n\n\t\treturn new ColorPickerInputRowView( this.locale!, colorInput );\n\t}\n\n\t/**\n\t * Creates the input where user can type or paste the color in hex format.\n\t *\n\t * @private\n\t */\n\tprivate _createColorInput(): LabeledFieldView {\n\t\tconst labeledInput = new LabeledFieldView( this.locale, createLabeledInputText );\n\t\tconst { t } = this.locale!;\n\n\t\tlabeledInput.set( {\n\t\t\tlabel: t( 'HEX' ),\n\t\t\tclass: 'color-picker-hex-input'\n\t\t} );\n\n\t\tlabeledInput.fieldView.bind( 'value' ).to( this, '_hexColor', pickerColor => {\n\t\t\tif ( labeledInput.isFocused ) {\n\t\t\t\t// Text field shouldn't be updated with color change if the text field is focused.\n\t\t\t\t// Imagine user typing hex code and getting the value of field changed.\n\t\t\t\treturn labeledInput.fieldView.value;\n\t\t\t} else {\n\t\t\t\treturn pickerColor.startsWith( '#' ) ? pickerColor.substring( 1 ) : pickerColor;\n\t\t\t}\n\t\t} );\n\n\t\t// Only accept valid hex colors as input.\n\t\tlabeledInput.fieldView.on( 'input', () => {\n\t\t\tconst inputValue = labeledInput.fieldView.element!.value;\n\n\t\t\tif ( inputValue ) {\n\t\t\t\tconst maybeHexColor = tryParseHexColor( inputValue );\n\n\t\t\t\tif ( maybeHexColor ) {\n\t\t\t\t\t// If so, set the color.\n\t\t\t\t\t// Otherwise, do nothing.\n\t\t\t\t\tthis._debounceColorPickerEvent( maybeHexColor );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\treturn labeledInput;\n\t}\n\n\t/**\n\t * Validates the view and returns `false` when some fields are invalid.\n\t */\n\tpublic isValid(): boolean {\n\t\tconst { t } = this.locale!;\n\n\t\tthis.resetValidationStatus();\n\n\t\t// One error per field is enough.\n\t\tif ( !this.hexInputRow.getParsedColor() ) {\n\t\t\t// Apply updated error.\n\t\t\tthis.hexInputRow.inputView.errorText = t( 'Please enter a valid color (e.g. \"ff0000\").' );\n\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Cleans up the supplementary error and information text of input inside the {@link #hexInputRow}\n\t * bringing them back to the state when the form has been displayed for the first time.\n\t *\n\t * See {@link #isValid}.\n\t */\n\tpublic resetValidationStatus(): void {\n\t\tthis.hexInputRow.inputView.errorText = null;\n\t}\n}\n\n// Converts any color format to a unified hex format.\n//\n// @param inputColor\n// @returns An unified hex string.\nfunction convertColorToCommonHexFormat( inputColor: string ): string {\n\tlet ret = convertToHex( inputColor );\n\n\tif ( !ret ) {\n\t\tret = '#000';\n\t}\n\n\tif ( ret.length === 4 ) {\n\t\t// Unfold shortcut format.\n\t\tret = '#' + [ ret[ 1 ], ret[ 1 ], ret[ 2 ], ret[ 2 ], ret[ 3 ], ret[ 3 ] ].join( '' );\n\t}\n\n\treturn ret.toLowerCase();\n}\n\n// View abstraction over pointer in color picker.\nclass SliderView extends View {\n\t/**\n\t * @param element HTML element of slider in color picker.\n\t */\n\tconstructor( element: HTMLElement ) {\n\t\tsuper();\n\t\tthis.element = element;\n\t}\n\n\t/**\n\t * Focuses element.\n\t */\n\tpublic focus(): void {\n\t\tthis.element!.focus();\n\t}\n}\n\n// View abstraction over the `#` character before color input.\nclass HashView extends View {\n\tconstructor( locale?: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-color-picker__hash-view'\n\t\t\t\t]\n\t\t\t},\n\t\t\tchildren: '#'\n\t\t} );\n\t}\n}\n\n// The class representing a row containing hex color input field.\n// **Note**: For now this class is private. When more use cases appear (beyond `ckeditor5-table` and `ckeditor5-image`),\n// it will become a component in `ckeditor5-ui`.\n//\n// @private\nclass ColorPickerInputRowView extends View {\n\t/**\n\t * A collection of row items (buttons, dropdowns, etc.).\n\t */\n\tpublic readonly children: ViewCollection;\n\n\t/**\n\t * Hex input view element.\n\t */\n\tpublic readonly inputView: LabeledFieldView;\n\n\t/**\n\t * Creates an instance of the form row class.\n\t *\n\t * @param locale The locale instance.\n\t * @param inputView Hex color input element.\n\t */\n\tconstructor( locale: Locale, inputView: LabeledFieldView ) {\n\t\tsuper( locale );\n\n\t\tthis.inputView = inputView;\n\t\tthis.children = this.createCollection( [\n\t\t\tnew HashView(),\n\t\t\tthis.inputView\n\t\t] );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-color-picker__row'\n\t\t\t\t]\n\t\t\t},\n\t\t\tchildren: this.children\n\t\t} );\n\t}\n\n\t/**\n\t * Returns false if color input value is not in hex format.\n\t */\n\tpublic getParsedColor(): HexColor | null {\n\t\treturn tryParseHexColor( this.inputView.fieldView.element!.value );\n\t}\n}\n\n/**\n * An event fired whenever the color was selected through the color picker palette\n * or the color picker input.\n *\n * This even fires only when the user changes the color. It does not fire when the color\n * is changed programmatically, e.g. via\n * {@link module:ui/colorpicker/colorpickerview~ColorPickerView#color}.\n *\n * @eventName ~ColorPickerView#colorSelected\n */\nexport type ColorPickerColorSelectedEvent = {\n\tname: 'colorSelected';\n\targs: [ {\n\t\tcolor: string;\n\t} ];\n};\n\n/**\n * Trim spaces from provided color and check if hex is valid.\n *\n * @param color Unsafe color string.\n * @returns Null if provided color is not hex value.\n * @export\n */\nexport function tryParseHexColor( color: S | null | undefined ): HexColor | null {\n\tif ( !color ) {\n\t\treturn null;\n\t}\n\n\tconst hashLessColor = color.trim().replace( /^#/, '' );\n\n\t// Incorrect length.\n\tif ( ![ 3, 4, 6, 8 ].includes( hashLessColor.length ) ) {\n\t\treturn null;\n\t}\n\n\t// Incorrect characters.\n\tif ( !/^(([0-9a-fA-F]{2}){3,4}|([0-9a-fA-F]){3,4})$/.test( hashLessColor ) ) {\n\t\treturn null;\n\t}\n\n\treturn `#${ hashLessColor }` as `#${ S }`;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/colorselector/documentcolorcollection\n */\n\nimport type { ColorDefinition } from '../colorgrid/colorgridview.js';\nimport {\n\tCollection,\n\tObservableMixin,\n\ttype CollectionAddEvent,\n\ttype CollectionRemoveEvent,\n\ttype CollectionChangeEvent\n} from '@ckeditor/ckeditor5-utils';\n\n/**\n * A collection to store document colors. It enforces colors to be unique.\n */\nexport default class DocumentColorCollection extends /* #__PURE__ */ ObservableMixin( Collection ) {\n\t/**\n\t * Indicates whether the document color collection is empty.\n\t *\n\t * @observable\n\t */\n\tdeclare public readonly isEmpty: boolean;\n\n\tconstructor( options?: any ) {\n\t\tsuper( options );\n\n\t\tthis.set( 'isEmpty', true );\n\n\t\tthis.on( 'change', () => {\n\t\t\tthis.set( 'isEmpty', this.length === 0 );\n\t\t} );\n\t}\n\n\t/**\n\t * Adds a color to the document color collection.\n\t *\n\t * This method ensures that no color duplicates are inserted (compared using\n\t * the color value of the {@link module:ui/colorgrid/colorgridview~ColorDefinition}).\n\t *\n\t * If the item does not have an ID, it will be automatically generated and set on the item.\n\t *\n\t * @param index The position of the item in the collection. The item is pushed to the collection when `index` is not specified.\n\t * @fires add\n\t * @fires change\n\t */\n\tpublic override add( item: ColorDefinition, index?: number ): this {\n\t\tif ( this.find( element => element.color === item.color ) ) {\n\t\t\t// No duplicates are allowed.\n\t\t\treturn this;\n\t\t}\n\n\t\treturn super.add( item, index );\n\t}\n\n\t/**\n\t * Checks if an object with given colors is present in the document color collection.\n\t */\n\tpublic hasColor( color: string ): boolean {\n\t\treturn !!this.find( item => item.color === color );\n\t}\n}\n\n/**\n * Fired when the collection was changed due to adding or removing items.\n *\n * @eventName ~DocumentColorCollection#change\n * @param data Changed items.\n */\nexport type DocumentColorCollectionChangeEvent = CollectionChangeEvent;\n\n/**\n * Fired when an item is added to the collection.\n *\n * @eventName ~DocumentColorCollection#add\n * @param item The added item.\n * @param index An index where the addition occurred.\n */\nexport type DocumentColorCollectionAddEvent = CollectionAddEvent;\n\n/**\n * Fired when an item is removed from the collection.\n *\n * @eventName ~DocumentColorCollection#remove\n * @param item The removed item.\n * @param index Index from which item was removed.\n */\nexport type DocumentColorCollectionRemoveEvent = CollectionRemoveEvent;\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/colorselector/colorgridsfragmentview\n */\n\nimport View from '../view.js';\nimport ButtonView from '../button/buttonview.js';\nimport ColorGridView, { type ColorDefinition } from '../colorgrid/colorgridview.js';\nimport ColorTileView from '../colorgrid/colortileview.js';\nimport LabelView from '../label/labelview.js';\nimport Template from '../template.js';\n\nimport DocumentColorCollection from './documentcolorcollection.js';\n\nimport type { Model } from '@ckeditor/ckeditor5-engine';\nimport type { FocusTracker, Locale } from '@ckeditor/ckeditor5-utils';\nimport type ViewCollection from '../viewcollection.js';\nimport type { FocusableView } from '../focuscycler.js';\nimport type { ColorSelectorExecuteEvent, ColorSelectorColorPickerShowEvent } from './colorselectorview.js';\nimport { icons } from '@ckeditor/ckeditor5-core';\n\nconst { eraser: removeButtonIcon, colorPalette: colorPaletteIcon } = icons;\n\n/**\n * One of the fragments of {@link module:ui/colorselector/colorselectorview~ColorSelectorView}.\n *\n * It provides a UI that allows users to select colors from the a predefined set and from existing document colors.\n *\n * It consists of the following sub–components:\n *\n * * A \"Remove color\" button,\n * * A static {@link module:ui/colorgrid/colorgridview~ColorGridView} of colors defined in the configuration,\n * * A dynamic {@link module:ui/colorgrid/colorgridview~ColorGridView} of colors used in the document.\n * * If color picker is configured, the \"Color Picker\" button is visible too.\n */\nexport default class ColorGridsFragmentView extends View {\n\t/**\n\t * A collection of the children of the table.\n\t */\n\tpublic readonly items: ViewCollection;\n\n\t/**\n\t * An array with objects representing colors to be displayed in the grid.\n\t */\n\tpublic colorDefinitions: Array;\n\n\t/**\n\t * Tracks information about the DOM focus in the list.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * The number of columns in the color grid.\n\t */\n\tpublic columns: number;\n\n\t/**\n\t * Preserves the reference to {@link module:ui/colorselector/documentcolorcollection~DocumentColorCollection} used to collect\n\t * definitions that store the document colors.\n\t *\n\t * @readonly\n\t */\n\tpublic documentColors: DocumentColorCollection;\n\n\t/**\n\t * The maximum number of colors in the document colors section.\n\t * If it equals 0, the document colors section is not added.\n\t *\n\t * @readonly\n\t */\n\tpublic documentColorsCount?: number;\n\n\t/**\n\t * Keeps the value of the command associated with the table for the current selection.\n\t */\n\tdeclare public selectedColor: string;\n\n\t/**\n\t * Preserves the reference to {@link module:ui/colorgrid/colorgridview~ColorGridView} used to create\n\t * the default (static) color set.\n\t *\n\t * The property is loaded once the the parent dropdown is opened the first time.\n\t *\n\t * @readonly\n\t */\n\tpublic staticColorsGrid: ColorGridView | undefined;\n\n\t/**\n\t * Preserves the reference to {@link module:ui/colorgrid/colorgridview~ColorGridView} used to create\n\t * the document colors. It remains undefined if the document colors feature is disabled.\n\t *\n\t * The property is loaded once the the parent dropdown is opened the first time.\n\t *\n\t * @readonly\n\t */\n\tpublic documentColorsGrid: ColorGridView | undefined;\n\n\t/**\n\t * The \"Color picker\" button view.\n\t */\n\tpublic colorPickerButtonView?: ButtonView;\n\n\t/**\n\t * The \"Remove color\" button view.\n\t */\n\tpublic removeColorButtonView: ButtonView;\n\n\t/**\n\t * The property which is responsible for is component visible or not.\n\t */\n\tdeclare public isVisible: boolean;\n\n\t/**\n\t * A collection of views that can be focused in the view.\n\t *\n\t * @readonly\n\t */\n\tprotected _focusables: ViewCollection;\n\n\t/**\n\t * Document color section's label.\n\t *\n\t * @readonly\n\t */\n\tprivate _documentColorsLabel?: string;\n\n\t/**\n\t * The label of the button responsible for removing color attributes.\n\t */\n\tprivate _removeButtonLabel: string;\n\n\t/**\n\t * The label of the button responsible for switching to the color picker component.\n\t */\n\tprivate _colorPickerLabel: string;\n\n\t/**\n\t * Creates an instance of the view.\n\t *\n\t * @param locale The localization services instance.\n\t * @param colors An array with definitions of colors to be displayed in the table.\n\t * @param columns The number of columns in the color grid.\n\t * @param removeButtonLabel The label of the button responsible for removing the color.\n\t * @param colorPickerLabel The label of the button responsible for color picker appearing.\n\t * @param documentColorsLabel The label for the section with the document colors.\n\t * @param documentColorsCount The number of colors in the document colors section inside the color dropdown.\n\t * @param focusTracker Tracks information about the DOM focus in the list.\n\t * @param focusables A collection of views that can be focused in the view.\n\t */\n\tconstructor(\n\t\tlocale: Locale,\n\t\t{\n\t\t\tcolors, columns, removeButtonLabel, documentColorsLabel, documentColorsCount,\n\t\t\tcolorPickerLabel, focusTracker, focusables\n\t\t}: {\n\t\t\tcolors: Array;\n\t\t\tcolumns: number;\n\t\t\tremoveButtonLabel: string;\n\t\t\tcolorPickerLabel: string;\n\t\t\tdocumentColorsLabel?: string;\n\t\t\tdocumentColorsCount?: number;\n\t\t\tfocusTracker: FocusTracker;\n\t\t\tfocusables: ViewCollection;\n\t\t}\n\t) {\n\t\tsuper( locale );\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.set( 'isVisible', true );\n\n\t\tthis.focusTracker = focusTracker;\n\t\tthis.items = this.createCollection();\n\t\tthis.colorDefinitions = colors;\n\t\tthis.columns = columns;\n\t\tthis.documentColors = new DocumentColorCollection();\n\t\tthis.documentColorsCount = documentColorsCount;\n\n\t\tthis._focusables = focusables;\n\t\tthis._removeButtonLabel = removeButtonLabel;\n\t\tthis._colorPickerLabel = colorPickerLabel;\n\t\tthis._documentColorsLabel = documentColorsLabel;\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-color-grids-fragment',\n\t\t\t\t\tbind.if( 'isVisible', 'ck-hidden', value => !value )\n\t\t\t\t]\n\t\t\t},\n\t\t\tchildren: this.items\n\t\t} );\n\n\t\tthis.removeColorButtonView = this._createRemoveColorButton();\n\n\t\tthis.items.add( this.removeColorButtonView );\n\t}\n\n\t/**\n\t * Scans through the editor model and searches for text node attributes with the given attribute name.\n\t * Found entries are set as document colors.\n\t *\n\t * All the previously stored document colors will be lost in the process.\n\t *\n\t * @param model The model used as a source to obtain the document colors.\n\t * @param attributeName Determines the name of the related model's attribute for a given dropdown.\n\t */\n\tpublic updateDocumentColors( model: Model, attributeName: string ): void {\n\t\tconst document = model.document;\n\t\tconst maxCount = this.documentColorsCount;\n\n\t\tthis.documentColors.clear();\n\n\t\tfor ( const root of document.getRoots() ) {\n\t\t\tconst range = model.createRangeIn( root );\n\n\t\t\tfor ( const node of range.getItems() ) {\n\t\t\t\tif ( node.is( '$textProxy' ) && node.hasAttribute( attributeName ) ) {\n\t\t\t\t\tthis._addColorToDocumentColors( node.getAttribute( attributeName ) as string );\n\n\t\t\t\t\tif ( this.documentColors.length >= maxCount! ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Refreshes the state of the selected color in one or both {@link module:ui/colorgrid/colorgridview~ColorGridView}s\n\t * available in the {@link module:ui/colorselector/colorselectorview~ColorSelectorView}. It guarantees that the selection will\n\t * occur only in one of them.\n\t */\n\tpublic updateSelectedColors(): void {\n\t\tconst documentColorsGrid = this.documentColorsGrid;\n\t\tconst staticColorsGrid = this.staticColorsGrid!;\n\t\tconst selectedColor = this.selectedColor;\n\n\t\tstaticColorsGrid.selectedColor = selectedColor;\n\n\t\tif ( documentColorsGrid ) {\n\t\t\tdocumentColorsGrid.selectedColor = selectedColor;\n\t\t}\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.staticColorsGrid = this._createStaticColorsGrid();\n\n\t\tthis.items.add( this.staticColorsGrid );\n\n\t\tif ( this.documentColorsCount ) {\n\t\t\t// Create a label for document colors.\n\t\t\tconst bind = Template.bind( this.documentColors, this.documentColors );\n\t\t\tconst label = new LabelView( this.locale );\n\t\t\tlabel.text = this._documentColorsLabel;\n\t\t\tlabel.extendTemplate( {\n\t\t\t\tattributes: {\n\t\t\t\t\tclass: [\n\t\t\t\t\t\t'ck',\n\t\t\t\t\t\t'ck-color-grid__label',\n\t\t\t\t\t\tbind.if( 'isEmpty', 'ck-hidden' )\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t} );\n\t\t\tthis.items.add( label );\n\t\t\tthis.documentColorsGrid = this._createDocumentColorsGrid();\n\n\t\t\tthis.items.add( this.documentColorsGrid );\n\t\t}\n\t\tthis._createColorPickerButton();\n\n\t\tthis._addColorSelectorElementsToFocusTracker();\n\t}\n\n\t/**\n\t * Focuses the component.\n\t */\n\tpublic focus(): void {\n\t\tthis.removeColorButtonView.focus();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\t}\n\n\t/**\n\t * Handles displaying the color picker button (if it was previously created) and making it focusable.\n\t */\n\tpublic addColorPickerButton(): void {\n\t\tif ( this.colorPickerButtonView ) {\n\t\t\tthis.items.add( this.colorPickerButtonView );\n\t\t\tthis.focusTracker.add( this.colorPickerButtonView.element! );\n\t\t\tthis._focusables.add( this.colorPickerButtonView );\n\t\t}\n\t}\n\n\t/**\n\t * Adds color selector elements to focus tracker.\n\t */\n\tprivate _addColorSelectorElementsToFocusTracker(): void {\n\t\tthis.focusTracker.add( this.removeColorButtonView.element! );\n\t\tthis._focusables.add( this.removeColorButtonView );\n\n\t\tif ( this.staticColorsGrid ) {\n\t\t\tthis.focusTracker.add( this.staticColorsGrid.element! );\n\t\t\tthis._focusables.add( this.staticColorsGrid );\n\t\t}\n\n\t\tif ( this.documentColorsGrid ) {\n\t\t\tthis.focusTracker.add( this.documentColorsGrid.element! );\n\t\t\tthis._focusables.add( this.documentColorsGrid );\n\t\t}\n\t}\n\n\t/**\n\t * Creates the button responsible for displaying the color picker component.\n\t */\n\tprivate _createColorPickerButton(): void {\n\t\tthis.colorPickerButtonView = new ButtonView();\n\n\t\tthis.colorPickerButtonView.set( {\n\t\t\tlabel: this._colorPickerLabel,\n\t\t\twithText: true,\n\t\t\ticon: colorPaletteIcon,\n\t\t\tclass: 'ck-color-selector__color-picker'\n\t\t} );\n\n\t\tthis.colorPickerButtonView.on( 'execute', () => {\n\t\t\tthis.fire( 'colorPicker:show' );\n\t\t} );\n\t}\n\n\t/**\n\t * Adds the remove color button as a child of the current view.\n\t */\n\tprivate _createRemoveColorButton(): ButtonView {\n\t\tconst buttonView = new ButtonView();\n\n\t\tbuttonView.set( {\n\t\t\twithText: true,\n\t\t\ticon: removeButtonIcon,\n\t\t\tlabel: this._removeButtonLabel\n\t\t} );\n\n\t\tbuttonView.class = 'ck-color-selector__remove-color';\n\t\tbuttonView.on( 'execute', () => {\n\t\t\tthis.fire( 'execute', {\n\t\t\t\tvalue: null,\n\t\t\t\tsource: 'removeColorButton'\n\t\t\t} );\n\t\t} );\n\n\t\tbuttonView.render();\n\n\t\treturn buttonView;\n\t}\n\n\t/**\n\t * Creates a static color grid based on the editor configuration.\n\t */\n\tprivate _createStaticColorsGrid(): ColorGridView {\n\t\tconst colorGrid = new ColorGridView( this.locale, {\n\t\t\tcolorDefinitions: this.colorDefinitions,\n\t\t\tcolumns: this.columns\n\t\t} );\n\n\t\tcolorGrid.on( 'execute', ( evt, data ) => {\n\t\t\tthis.fire( 'execute', {\n\t\t\t\tvalue: data.value,\n\t\t\t\tsource: 'staticColorsGrid'\n\t\t\t} );\n\t\t} );\n\n\t\treturn colorGrid;\n\t}\n\n\t/**\n\t * Creates the document colors section view and binds it to {@link #documentColors}.\n\t */\n\tprivate _createDocumentColorsGrid(): ColorGridView {\n\t\tconst bind = Template.bind( this.documentColors, this.documentColors );\n\t\tconst documentColorsGrid = new ColorGridView( this.locale, {\n\t\t\tcolumns: this.columns\n\t\t} );\n\n\t\tdocumentColorsGrid.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: bind.if( 'isEmpty', 'ck-hidden' )\n\t\t\t}\n\t\t} );\n\n\t\tdocumentColorsGrid.items.bindTo( this.documentColors ).using(\n\t\t\tcolorObj => {\n\t\t\t\tconst colorTile = new ColorTileView();\n\n\t\t\t\tcolorTile.set( {\n\t\t\t\t\tcolor: colorObj.color,\n\t\t\t\t\thasBorder: colorObj.options && colorObj.options.hasBorder\n\t\t\t\t} );\n\n\t\t\t\tif ( colorObj.label ) {\n\t\t\t\t\tcolorTile.set( {\n\t\t\t\t\t\tlabel: colorObj.label,\n\t\t\t\t\t\ttooltip: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\tcolorTile.on( 'execute', () => {\n\t\t\t\t\tthis.fire( 'execute', {\n\t\t\t\t\t\tvalue: colorObj.color,\n\t\t\t\t\t\tsource: 'documentColorsGrid'\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t\treturn colorTile;\n\t\t\t}\n\t\t);\n\n\t\t// Selected color should be cleared when document colors became empty.\n\t\tthis.documentColors.on( 'change:isEmpty', ( evt, name, val ) => {\n\t\t\tif ( val ) {\n\t\t\t\tdocumentColorsGrid.selectedColor = null;\n\t\t\t}\n\t\t} );\n\n\t\treturn documentColorsGrid;\n\t}\n\n\t/**\n\t * Adds a given color to the document colors list. If possible, the method will attempt to use\n\t * data from the {@link #colorDefinitions} (label, color options).\n\t *\n\t * @param color A string that stores the value of the recently applied color.\n\t */\n\tprivate _addColorToDocumentColors( color: string ): void {\n\t\tconst predefinedColor = this.colorDefinitions\n\t\t\t.find( definition => definition.color === color );\n\n\t\tif ( !predefinedColor ) {\n\t\t\tthis.documentColors.add( {\n\t\t\t\tcolor,\n\t\t\t\tlabel: color,\n\t\t\t\toptions: {\n\t\t\t\t\thasBorder: false\n\t\t\t\t}\n\t\t\t} );\n\t\t} else {\n\t\t\tthis.documentColors.add( Object.assign( {}, predefinedColor ) );\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/colorselector/colorpickerfragmentview\n */\n\nimport View from '../view.js';\nimport ButtonView from '../button/buttonview.js';\nimport type ViewCollection from '../viewcollection.js';\nimport type { FocusableView } from '../focuscycler.js';\nimport type LabeledFieldView from '../labeledfield/labeledfieldview.js';\nimport type InputTextView from '../inputtext/inputtextview.js';\nimport {\n\tdefault as ColorPickerView,\n\ttype ColorPickerColorSelectedEvent\n} from '../colorpicker/colorpickerview.js';\n\nimport type { FocusTracker, KeystrokeHandler, Locale } from '@ckeditor/ckeditor5-utils';\nimport type { ColorPickerViewConfig } from '../colorpicker/utils.js';\nimport type { ColorSelectorColorPickerCancelEvent, ColorSelectorExecuteEvent } from './colorselectorview.js';\n\nimport { icons } from '@ckeditor/ckeditor5-core';\n\n/**\n * One of the fragments of {@link module:ui/colorselector/colorselectorview~ColorSelectorView}.\n *\n * It allows users to select a color from a color picker.\n *\n * It consists of the following sub–components:\n *\n * * A color picker saturation and hue sliders,\n * * A text input accepting colors in HEX format,\n * * \"Save\" and \"Cancel\" action buttons.\n */\nexport default class ColorPickerFragmentView extends View {\n\t/**\n\t * A collection of component's children.\n\t */\n\tpublic readonly items: ViewCollection;\n\n\t/**\n\t * A view with saturation and hue sliders and color input.\n\t */\n\tpublic colorPickerView?: ColorPickerView;\n\n\t/**\n\t * The \"Save\" button view.\n\t */\n\tpublic saveButtonView: ButtonView;\n\n\t/**\n\t * The \"Cancel\" button view.\n\t */\n\tpublic cancelButtonView: ButtonView;\n\n\t/**\n\t * The action bar where are \"Save\" button and \"Cancel\" button.\n\t */\n\tpublic actionBarView: View;\n\n\t/**\n\t * Tracks information about the DOM focus in the list.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes: KeystrokeHandler;\n\n\t/**\n\t * Indicates whether the component is visible or not.\n\t */\n\tdeclare public isVisible: boolean;\n\n\t/**\n\t * Keeps the value of the command associated with the component for the current selection.\n\t */\n\tdeclare public selectedColor?: string;\n\n\t/**\n\t * A collection of views that can be focused in the view.\n\t *\n\t * @readonly\n\t */\n\tprotected _focusables: ViewCollection;\n\n\t/**\n\t * A reference to the configuration of {@link #colorPickerView}. `false` when the view was\n\t * configured without a color picker.\n\t *\n\t * @readonly\n\t */\n\tprivate _colorPickerViewConfig: ColorPickerViewConfig | false;\n\n\t/**\n\t * Creates an instance of the view.\n\t *\n\t * @param locale The localization services instance.\n\t * @param focusTracker Tracks information about the DOM focus in the list.\n\t * @param focusables A collection of views that can be focused in the view..\n\t * @param keystrokes An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t * @param colorPickerViewConfig The configuration of color picker feature. If set to `false`, the color picker\n\t * will not be rendered.\n\t */\n\tconstructor(\n\t\tlocale: Locale,\n\t\t{\n\t\t\tfocusTracker,\n\t\t\tfocusables,\n\t\t\tkeystrokes,\n\t\t\tcolorPickerViewConfig\n\t\t}:\n\t\t{\n\t\t\tfocusTracker: FocusTracker;\n\t\t\tfocusables: ViewCollection;\n\t\t\tkeystrokes: KeystrokeHandler;\n\t\t\tcolorPickerViewConfig: ColorPickerViewConfig | false;\n\t\t}\n\t) {\n\t\tsuper( locale );\n\n\t\tthis.items = this.createCollection();\n\t\tthis.focusTracker = focusTracker;\n\t\tthis.keystrokes = keystrokes;\n\n\t\tthis.set( 'isVisible', false );\n\t\tthis.set( 'selectedColor', undefined );\n\n\t\tthis._focusables = focusables;\n\t\tthis._colorPickerViewConfig = colorPickerViewConfig;\n\n\t\tconst bind = this.bindTemplate;\n\t\tconst { saveButtonView, cancelButtonView } = this._createActionButtons();\n\n\t\tthis.saveButtonView = saveButtonView;\n\t\tthis.cancelButtonView = cancelButtonView;\n\t\tthis.actionBarView = this._createActionBarView( { saveButtonView, cancelButtonView } );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-color-picker-fragment',\n\t\t\t\t\tbind.if( 'isVisible', 'ck-hidden', value => !value )\n\t\t\t\t]\n\t\t\t},\n\t\t\tchildren: this.items\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tconst colorPickerView = new ColorPickerView( this.locale, {\n\t\t\t...this._colorPickerViewConfig\n\t\t} as ColorPickerViewConfig );\n\n\t\tthis.colorPickerView = colorPickerView;\n\t\tthis.colorPickerView.render();\n\n\t\tif ( this.selectedColor ) {\n\t\t\tcolorPickerView.color = this.selectedColor;\n\t\t}\n\n\t\tthis.listenTo( this, 'change:selectedColor', ( evt, name, value ) => {\n\t\t\tcolorPickerView.color = value;\n\t\t} );\n\n\t\tthis.items.add( this.colorPickerView );\n\t\tthis.items.add( this.actionBarView );\n\n\t\tthis._addColorPickersElementsToFocusTracker();\n\t\tthis._stopPropagationOnArrowsKeys();\n\t\tthis._executeOnEnterPress();\n\t\tthis._executeUponColorChange();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\t}\n\n\t/**\n\t * Focuses the color picker.\n\t */\n\tpublic focus(): void {\n\t\tthis.colorPickerView!.focus();\n\t}\n\n\t/**\n\t * Reset validation messages.\n\t */\n\tpublic resetValidationStatus(): void {\n\t\tthis.colorPickerView!.resetValidationStatus();\n\t}\n\n\t/**\n\t * When color picker is focused and \"enter\" is pressed it executes command.\n\t */\n\tprivate _executeOnEnterPress(): void {\n\t\tthis.keystrokes.set( 'enter', evt => {\n\t\t\tif ( this.isVisible && this.focusTracker.focusedElement !== this.cancelButtonView.element && this.colorPickerView!.isValid() ) {\n\t\t\t\tthis.fire( 'execute', {\n\t\t\t\t\tvalue: this.selectedColor!\n\t\t\t\t} );\n\n\t\t\t\tevt.stopPropagation();\n\t\t\t\tevt.preventDefault();\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Removes default behavior of arrow keys in dropdown.\n\t */\n\tprivate _stopPropagationOnArrowsKeys(): void {\n\t\tconst stopPropagation = ( data: KeyboardEvent ) => data.stopPropagation();\n\n\t\tthis.keystrokes.set( 'arrowright', stopPropagation );\n\t\tthis.keystrokes.set( 'arrowleft', stopPropagation );\n\t\tthis.keystrokes.set( 'arrowup', stopPropagation );\n\t\tthis.keystrokes.set( 'arrowdown', stopPropagation );\n\t}\n\n\t/**\n\t * Adds color picker elements to focus tracker.\n\t */\n\tprivate _addColorPickersElementsToFocusTracker(): void {\n\t\tfor ( const slider of this.colorPickerView!.slidersView ) {\n\t\t\tthis.focusTracker.add( slider.element! );\n\t\t\tthis._focusables.add( slider );\n\t\t}\n\n\t\tconst input = this.colorPickerView!.hexInputRow.children.get( 1 ) as LabeledFieldView;\n\n\t\tif ( input.element! ) {\n\t\t\tthis.focusTracker.add( input.element );\n\t\t\tthis._focusables.add( input );\n\t\t}\n\n\t\tthis.focusTracker.add( this.saveButtonView.element! );\n\t\tthis._focusables.add( this.saveButtonView );\n\n\t\tthis.focusTracker.add( this.cancelButtonView.element! );\n\t\tthis._focusables.add( this.cancelButtonView );\n\t}\n\n\t/**\n\t * Creates bar containing \"Save\" and \"Cancel\" buttons.\n\t */\n\tprivate _createActionBarView( { saveButtonView, cancelButtonView }: {\n\t\tsaveButtonView: ButtonView;\n\t\tcancelButtonView: ButtonView;\n\t} ): View {\n\t\tconst actionBarRow = new View();\n\t\tconst children = this.createCollection();\n\n\t\tchildren.add( saveButtonView );\n\t\tchildren.add( cancelButtonView );\n\n\t\tactionBarRow.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-color-selector_action-bar'\n\t\t\t\t]\n\t\t\t},\n\t\t\tchildren\n\t\t} );\n\n\t\treturn actionBarRow;\n\t}\n\n\t/**\n\t * Creates \"Save\" and \"Cancel\" buttons.\n\t */\n\tprivate _createActionButtons() {\n\t\tconst locale = this.locale;\n\t\tconst t = locale!.t;\n\t\tconst saveButtonView = new ButtonView( locale );\n\t\tconst cancelButtonView = new ButtonView( locale );\n\n\t\tsaveButtonView.set( {\n\t\t\ticon: icons.check,\n\t\t\tclass: 'ck-button-save',\n\t\t\ttype: 'button',\n\t\t\twithText: false,\n\t\t\tlabel: t( 'Accept' )\n\t\t} );\n\n\t\tcancelButtonView.set( {\n\t\t\ticon: icons.cancel,\n\t\t\tclass: 'ck-button-cancel',\n\t\t\ttype: 'button',\n\t\t\twithText: false,\n\t\t\tlabel: t( 'Cancel' )\n\t\t} );\n\n\t\tsaveButtonView.on( 'execute', () => {\n\t\t\tif ( this.colorPickerView!.isValid() ) {\n\t\t\t\tthis.fire( 'execute', {\n\t\t\t\t\tsource: 'colorPickerSaveButton',\n\t\t\t\t\tvalue: this.selectedColor!\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\tcancelButtonView.on( 'execute', () => {\n\t\t\tthis.fire( 'colorPicker:cancel' );\n\t\t} );\n\n\t\treturn {\n\t\t\tsaveButtonView, cancelButtonView\n\t\t};\n\t}\n\n\t/**\n\t * Fires the `execute` event if color in color picker has been changed\n\t * by the user.\n\t */\n\tprivate _executeUponColorChange() {\n\t\tthis.colorPickerView!.on( 'colorSelected', ( evt, data ) => {\n\t\t\tthis.fire( 'execute', {\n\t\t\t\tvalue: data.color,\n\t\t\t\tsource: 'colorPicker'\n\t\t\t} );\n\t\t\tthis.set( 'selectedColor', data.color );\n\t\t} );\n\t}\n}\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./colorselector.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/colorselector/colorselectorview\n */\n\nimport FocusCycler, { type FocusableView } from '../focuscycler.js';\nimport View from '../view.js';\nimport ViewCollection from '../viewcollection.js';\nimport { FocusTracker, KeystrokeHandler, type Locale } from '@ckeditor/ckeditor5-utils';\n\nimport type { ColorPickerViewConfig } from '../colorpicker/utils.js';\nimport type { ColorDefinition } from '../colorgrid/colorgridview.js';\nimport type { Model } from '@ckeditor/ckeditor5-engine';\n\nimport ColorGridsFragmentView from './colorgridsfragmentview.js';\nimport ColorPickerFragmentView from './colorpickerfragmentview.js';\n\nimport '../../theme/components/colorselector/colorselector.css';\n\n/**\n * The configurable color selector view class. It allows users to select colors from a predefined set of colors as well as from\n * a color picker.\n *\n * This meta-view is is made of two components (fragments):\n *\n * * {@link module:ui/colorselector/colorselectorview~ColorSelectorView#colorGridsFragmentView},\n * * {@link module:ui/colorselector/colorselectorview~ColorSelectorView#colorPickerFragmentView}.\n *\n * ```ts\n * const colorDefinitions = [\n * \t{ color: '#000', label: 'Black', options: { hasBorder: false } },\n * \t{ color: 'rgb(255, 255, 255)', label: 'White', options: { hasBorder: true } },\n * \t{ color: 'red', label: 'Red', options: { hasBorder: false } }\n * ];\n *\n * const selectorView = new ColorSelectorView( locale, {\n * \tcolors: colorDefinitions,\n * \tcolumns: 5,\n * \tremoveButtonLabel: 'Remove color',\n * \tdocumentColorsLabel: 'Document colors',\n * \tdocumentColorsCount: 4,\n * \tcolorPickerViewConfig: {\n * \t\tformat: 'hsl'\n * \t}\n * } );\n *\n * selectorView.appendUI();\n * selectorView.selectedColor = 'red';\n * selectorView.updateSelectedColors();\n *\n * selectorView.on( 'execute', ( evt, data ) => {\n * \tconsole.log( 'Color changed', data.value, data.source );\n * } );\n *\n * selectorView.on( 'colorPicker:show', ( evt ) => {\n * \tconsole.log( 'Color picker showed up', evt );\n * } );\n *\n * selectorView.on( 'colorPicker:cancel', ( evt ) => {\n * \tconsole.log( 'Color picker cancel', evt );\n * } );\n *\n * selectorView.render();\n *\n * document.body.appendChild( selectorView.element );\n * ```\n */\nexport default class ColorSelectorView extends View {\n\t/**\n\t * Tracks information about the DOM focus in the list.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n\t */\n\tpublic readonly keystrokes: KeystrokeHandler;\n\n\t/**\n\t * A collection of components.\n\t */\n\tpublic readonly items: ViewCollection;\n\n\t/**\n\t * A fragment that allows users to select colors from the a predefined set and from existing document colors.\n\t */\n\tpublic readonly colorGridsFragmentView: ColorGridsFragmentView;\n\n\t/**\n\t * A fragment that allows users to select a color from a color picker.\n\t */\n\tpublic readonly colorPickerFragmentView: ColorPickerFragmentView;\n\n\t/**\n\t * Keeps the value of the command associated with the component for the current selection.\n\t */\n\tdeclare public selectedColor?: string;\n\n\t/**\n\t * Reflects the visibility state of the color grids fragment.\n\t *\n\t * @internal\n\t */\n\tdeclare public _isColorGridsFragmentVisible: boolean;\n\n\t/**\n\t * Reflects the visibility state of the color picker fragment.\n\t *\n\t * @internal\n\t */\n\tdeclare public _isColorPickerFragmentVisible: boolean;\n\n\t/**\n\t * Helps cycling over focusable {@link #items} in the list.\n\t *\n\t * @readonly\n\t */\n\tprotected _focusCycler: FocusCycler;\n\n\t/**\n\t * A collection of views that can be focused in the view.\n\t *\n\t * @readonly\n\t */\n\tprotected _focusables: ViewCollection;\n\n\t/**\n\t * The configuration of color picker sub-component.\n\t */\n\tprivate _colorPickerViewConfig: ColorPickerViewConfig | false;\n\n\t/**\n\t * Creates a view to be inserted as a child of {@link module:ui/dropdown/dropdownview~DropdownView}.\n\t *\n\t * @param locale The localization services instance.\n\t * @param colors An array with definitions of colors to be displayed in the table.\n\t * @param columns The number of columns in the color grid.\n\t * @param removeButtonLabel The label of the button responsible for removing the color.\n\t * @param colorPickerLabel The label of the button responsible for color picker appearing.\n\t * @param documentColorsLabel The label for the section with the document colors.\n\t * @param documentColorsCount The number of colors in the document colors section inside the color dropdown.\n\t * @param colorPickerViewConfig The configuration of color picker feature. If set to `false`, the color picker will be hidden.\n\t */\n\tconstructor(\n\t\tlocale: Locale,\n\t\t{\n\t\t\tcolors,\n\t\t\tcolumns,\n\t\t\tremoveButtonLabel,\n\t\t\tdocumentColorsLabel,\n\t\t\tdocumentColorsCount,\n\t\t\tcolorPickerLabel,\n\t\t\tcolorPickerViewConfig\n\t\t}: {\n\t\t\tcolors: Array;\n\t\t\tcolumns: number;\n\t\t\tremoveButtonLabel: string;\n\t\t\tdocumentColorsLabel?: string;\n\t\t\tdocumentColorsCount?: number;\n\t\t\tcolorPickerLabel: string;\n\t\t\tcolorPickerViewConfig: ColorPickerViewConfig | false;\n\t\t}\n\t) {\n\t\tsuper( locale );\n\t\tthis.items = this.createCollection();\n\n\t\tthis.focusTracker = new FocusTracker();\n\t\tthis.keystrokes = new KeystrokeHandler();\n\n\t\tthis._focusables = new ViewCollection();\n\t\tthis._colorPickerViewConfig = colorPickerViewConfig;\n\t\tthis._focusCycler = new FocusCycler( {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokeHandler: this.keystrokes,\n\t\t\tactions: {\n\t\t\t\t// Navigate list items backwards using the Shift + Tab keystroke.\n\t\t\t\tfocusPrevious: 'shift + tab',\n\n\t\t\t\t// Navigate list items forwards using the Tab key.\n\t\t\t\tfocusNext: 'tab'\n\t\t\t}\n\t\t} );\n\n\t\tthis.colorGridsFragmentView = new ColorGridsFragmentView( locale, {\n\t\t\tcolors, columns, removeButtonLabel, documentColorsLabel, documentColorsCount, colorPickerLabel,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tfocusables: this._focusables\n\t\t} );\n\n\t\tthis.colorPickerFragmentView = new ColorPickerFragmentView( locale, {\n\t\t\tfocusables: this._focusables,\n\t\t\tfocusTracker: this.focusTracker,\n\t\t\tkeystrokes: this.keystrokes,\n\t\t\tcolorPickerViewConfig\n\t\t} );\n\n\t\tthis.set( '_isColorGridsFragmentVisible', true );\n\t\tthis.set( '_isColorPickerFragmentVisible', false );\n\n\t\tthis.set( 'selectedColor', undefined );\n\n\t\tthis.colorGridsFragmentView.bind( 'isVisible' ).to( this, '_isColorGridsFragmentVisible' );\n\t\tthis.colorPickerFragmentView.bind( 'isVisible' ).to( this, '_isColorPickerFragmentVisible' );\n\n\t\t/**\n\t\t * This is kind of bindings. Unfortunately we could not use this.bind() method because the same property\n\t\t * can not be bound twice. So this is work around how to bind 'selectedColor' property between components.\n\t\t */\n\t\tthis.on( 'change:selectedColor', ( evt, evtName, data ) => {\n\t\t\tthis.colorGridsFragmentView.set( 'selectedColor', data );\n\t\t\tthis.colorPickerFragmentView.set( 'selectedColor', data );\n\t\t} );\n\n\t\tthis.colorGridsFragmentView.on( 'change:selectedColor', ( evt, evtName, data ) => {\n\t\t\tthis.set( 'selectedColor', data );\n\t\t} );\n\n\t\tthis.colorPickerFragmentView.on( 'change:selectedColor', ( evt, evtName, data ) => {\n\t\t\tthis.set( 'selectedColor', data );\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-color-selector'\n\t\t\t\t]\n\t\t\t},\n\t\t\tchildren: this.items\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\t// Start listening for the keystrokes coming from #element.\n\t\tthis.keystrokes.listenTo( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.keystrokes.destroy();\n\t}\n\n\t/**\n\t * Renders the internals of the component on demand:\n\t * * {@link #colorPickerFragmentView},\n\t * * {@link #colorGridsFragmentView}.\n\t *\n\t * It allows for deferring component initialization to improve the performance.\n\t *\n\t * See {@link #showColorPickerFragment}, {@link #showColorGridsFragment}.\n\t */\n\tpublic appendUI(): void {\n\t\tthis._appendColorGridsFragment();\n\n\t\tif ( this._colorPickerViewConfig ) {\n\t\t\tthis._appendColorPickerFragment();\n\t\t}\n\t}\n\n\t/**\n\t * Shows the {@link #colorPickerFragmentView} and hides the {@link #colorGridsFragmentView}.\n\t *\n\t * **Note**: It requires {@link #appendUI} to be called first.\n\t *\n\t * See {@link #showColorGridsFragment}, {@link ~ColorSelectorView#event:colorPicker:show}.\n\t */\n\tpublic showColorPickerFragment(): void {\n\t\tif ( !this.colorPickerFragmentView.colorPickerView || this._isColorPickerFragmentVisible ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isColorPickerFragmentVisible = true;\n\t\tthis.colorPickerFragmentView.focus();\n\t\tthis.colorPickerFragmentView.resetValidationStatus();\n\t\tthis._isColorGridsFragmentVisible = false;\n\t}\n\n\t/**\n\t * Shows the {@link #colorGridsFragmentView} and hides the {@link #colorPickerFragmentView}.\n\t *\n\t * See {@link #showColorPickerFragment}.\n\t *\n\t * **Note**: It requires {@link #appendUI} to be called first.\n\t */\n\tpublic showColorGridsFragment(): void {\n\t\tif ( this._isColorGridsFragmentVisible ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isColorGridsFragmentVisible = true;\n\t\tthis.colorGridsFragmentView.focus();\n\t\tthis._isColorPickerFragmentVisible = false;\n\t}\n\n\t/**\n\t * Focuses the first focusable element in {@link #items}.\n\t */\n\tpublic focus(): void {\n\t\tthis._focusCycler.focusFirst();\n\t}\n\n\t/**\n\t * Focuses the last focusable element in {@link #items}.\n\t */\n\tpublic focusLast(): void {\n\t\tthis._focusCycler.focusLast();\n\t}\n\n\t/**\n\t * Scans through the editor model and searches for text node attributes with the given `attributeName`.\n\t * Found entries are set as document colors in {@link #colorGridsFragmentView}.\n\t *\n\t * All the previously stored document colors will be lost in the process.\n\t *\n\t * @param model The model used as a source to obtain the document colors.\n\t * @param attributeName Determines the name of the related model's attribute for a given dropdown.\n\t */\n\tpublic updateDocumentColors( model: Model, attributeName: string ): void {\n\t\tthis.colorGridsFragmentView.updateDocumentColors( model, attributeName );\n\t}\n\n\t/**\n\t * Refreshes the state of the selected color in one or both grids located in {@link #colorGridsFragmentView}.\n\t *\n\t * It guarantees that the selection will occur only in one of them.\n\t */\n\tpublic updateSelectedColors(): void {\n\t\tthis.colorGridsFragmentView.updateSelectedColors();\n\t}\n\n\t/**\n\t * Appends the view containing static and document color grid views.\n\t */\n\tprivate _appendColorGridsFragment(): void {\n\t\tif ( this.items.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.items.add( this.colorGridsFragmentView );\n\t\tthis.colorGridsFragmentView.delegate( 'execute' ).to( this );\n\t\tthis.colorGridsFragmentView.delegate( 'colorPicker:show' ).to( this );\n\t}\n\n\t/**\n\t * Appends the view with the color picker.\n\t */\n\tprivate _appendColorPickerFragment(): void {\n\t\tif ( this.items.length === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.items.add( this.colorPickerFragmentView );\n\n\t\tif ( this.colorGridsFragmentView.colorPickerButtonView ) {\n\t\t\tthis.colorGridsFragmentView.colorPickerButtonView.on( 'execute', () => {\n\t\t\t\tthis.showColorPickerFragment();\n\t\t\t} );\n\t\t}\n\n\t\tthis.colorGridsFragmentView.addColorPickerButton();\n\t\tthis.colorPickerFragmentView.delegate( 'execute' ).to( this );\n\t\tthis.colorPickerFragmentView.delegate( 'colorPicker:cancel' ).to( this );\n\t}\n}\n\n/**\n * Fired whenever the color was changed. There are multiple sources of this event and you can distinguish them\n * using the `source` property passed along this event.\n *\n * @eventName ~ColorSelectorView#execute\n */\nexport type ColorSelectorExecuteEvent = {\n\tname: 'execute';\n\targs: [ {\n\t\tvalue: string;\n\t\tsource: 'staticColorsGrid' | 'documentColorsGrid' | 'removeColorButton' | 'colorPicker' | 'colorPickerSaveButton';\n\t} ];\n};\n\n/**\n * Fired when the user pressed the \"Cancel\" button in the\n * {@link module:ui/colorselector/colorselectorview~ColorSelectorView#colorPickerFragmentView}.\n *\n * @eventName ~ColorSelectorView#colorPicker:cancel\n */\nexport type ColorSelectorColorPickerCancelEvent = {\n\tname: 'colorPicker:cancel';\n\targs: [];\n};\n\n/**\n * Fired whenever {@link module:ui/colorselector/colorselectorview~ColorSelectorView#colorPickerFragmentView} is shown.\n *\n * See {@link ~ColorSelectorView#showColorPickerFragment}.\n *\n * @eventName ~ColorSelectorView#colorPicker:show\n */\nexport type ColorSelectorColorPickerShowEvent = {\n\tname: 'colorPicker:show';\n\targs: [];\n};\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/componentfactory\n */\n\nimport { CKEditorError, type Locale } from '@ckeditor/ckeditor5-utils';\nimport type { Editor } from '@ckeditor/ckeditor5-core';\n\nimport type View from './view.js';\n\n/**\n * A helper class implementing the UI component ({@link module:ui/view~View view}) factory.\n *\n * It allows functions producing specific UI components to be registered under their unique names\n * in the factory. A registered component can be then instantiated by providing its name.\n * Note that the names are case insensitive.\n *\n * ```ts\n * // The editor provides localization tools for the factory.\n * const factory = new ComponentFactory( editor );\n *\n * factory.add( 'foo', locale => new FooView( locale ) );\n * factory.add( 'bar', locale => new BarView( locale ) );\n *\n * // An instance of FooView.\n * const fooInstance = factory.create( 'foo' );\n *\n * // Names are case insensitive so this is also allowed:\n * const barInstance = factory.create( 'Bar' );\n * ```\n *\n * The {@link module:core/editor/editor~Editor#locale editor locale} is passed to the factory\n * function when {@link module:ui/componentfactory~ComponentFactory#create} is called.\n */\nexport default class ComponentFactory {\n\t/**\n\t * The editor instance that the factory belongs to.\n\t */\n\tpublic readonly editor: Editor;\n\n\t/**\n\t * Registered component factories.\n\t */\n\tprivate readonly _components = new Map View }>();\n\n\t/**\n\t * Creates an instance of the factory.\n\t *\n\t * @param editor The editor instance.\n\t */\n\tconstructor( editor: Editor ) {\n\t\tthis.editor = editor;\n\t}\n\n\t/**\n\t * Returns an iterator of registered component names. Names are returned in lower case.\n\t */\n\tpublic* names(): IterableIterator {\n\t\tfor ( const value of this._components.values() ) {\n\t\t\tyield value.originalName;\n\t\t}\n\t}\n\n\t/**\n\t * Registers a component factory function that will be used by the\n\t * {@link #create create} method and called with the\n\t * {@link module:core/editor/editor~Editor#locale editor locale} as an argument,\n\t * allowing localization of the {@link module:ui/view~View view}.\n\t *\n\t * @param name The name of the component.\n\t * @param callback The callback that returns the component.\n\t */\n\tpublic add( name: string, callback: ( locale: Locale ) => View ): void {\n\t\tthis._components.set( getNormalized( name ), { callback, originalName: name } );\n\t}\n\n\t/**\n\t * Creates an instance of a component registered in the factory under a specific name.\n\t *\n\t * When called, the {@link module:core/editor/editor~Editor#locale editor locale} is passed to\n\t * the previously {@link #add added} factory function, allowing localization of the\n\t * {@link module:ui/view~View view}.\n\t *\n\t * @param name The name of the component.\n\t * @returns The instantiated component view.\n\t */\n\tpublic create( name: string ): View {\n\t\tif ( !this.has( name ) ) {\n\t\t\t/**\n\t\t\t * The required component is not registered in the component factory. Please make sure\n\t\t\t * the provided name is correct and the component has been correctly\n\t\t\t * {@link module:ui/componentfactory~ComponentFactory#add added} to the factory.\n\t\t\t *\n\t\t\t * @error componentfactory-item-missing\n\t\t\t * @param name The name of the missing component.\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'componentfactory-item-missing',\n\t\t\t\tthis,\n\t\t\t\t{ name }\n\t\t\t);\n\t\t}\n\n\t\treturn this._components.get( getNormalized( name ) )!.callback( this.editor.locale );\n\t}\n\n\t/**\n\t * Checks if a component of a given name is registered in the factory.\n\t *\n\t * @param name The name of the component.\n\t */\n\tpublic has( name: string ): boolean {\n\t\treturn this._components.has( getNormalized( name ) );\n\t}\n}\n\n/**\n * Ensures that the component name used as the key in the internal map is in lower case.\n */\nfunction getNormalized( name: unknown ) {\n\treturn String( name ).toLowerCase();\n}\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./balloonpanel.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/panel/balloon/balloonpanelview\n */\n\nimport View from '../../view.js';\nimport type ViewCollection from '../../viewcollection.js';\n\nimport {\n\tgetOptimalPosition,\n\tglobal,\n\tisRange,\n\ttoUnit,\n\ttype Locale,\n\ttype ObservableChangeEvent,\n\ttype DomPoint,\n\ttype PositionOptions,\n\ttype PositioningFunction,\n\ttype Rect\n} from '@ckeditor/ckeditor5-utils';\n\nimport { isElement } from 'lodash-es';\nimport '../../../theme/components/panel/balloonpanel.css';\n\nconst toPx = /* #__PURE__ */ toUnit( 'px' );\n\n// A static balloon panel positioning function that moves the balloon far off the viewport.\n// It is used as a fallback when there is no way to position the balloon using provided\n// positioning functions (see: `getOptimalPosition()`), for instance, when the target the\n// balloon should be attached to gets obscured by scrollable containers or the viewport.\n//\n// It prevents the balloon from being attached to the void and possible degradation of the UX.\n// At the same time, it keeps the balloon physically visible in the DOM so the focus remains\n// uninterrupted.\nconst POSITION_OFF_SCREEN: DomPoint = {\n\ttop: -99999,\n\tleft: -99999,\n\tname: 'arrowless',\n\tconfig: {\n\t\twithArrow: false\n\t}\n};\n\n/**\n * The balloon panel view class.\n *\n * A floating container which can\n * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#pin pin} to any\n * {@link module:utils/dom/position~Options#target target} in the DOM and remain in that position\n * e.g. when the web page is scrolled.\n *\n * The balloon panel can be used to display contextual, non-blocking UI like forms, toolbars and\n * the like in its {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#content} view\n * collection.\n *\n * There is a number of {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}\n * that the balloon can use, automatically switching from one to another when the viewport space becomes\n * scarce to keep the balloon visible to the user as long as it is possible. The balloon will also\n * accept any custom position set provided by the user compatible with the\n * {@link module:utils/dom/position~Options options}.\n *\n * ```ts\n * const panel = new BalloonPanelView( locale );\n * const childView = new ChildView();\n * const positions = BalloonPanelView.defaultPositions;\n *\n * panel.render();\n *\n * // Add a child view to the panel's content collection.\n * panel.content.add( childView );\n *\n * // Start pinning the panel to an element with the \"target\" id DOM.\n * // The balloon will remain pinned until unpin() is called.\n * panel.pin( {\n * \ttarget: document.querySelector( '#target' ),\n * \tpositions: [\n * \t\tpositions.northArrowSouth,\n * \t\tpositions.southArrowNorth\n * \t]\n * } );\n * ```\n */\nexport default class BalloonPanelView extends View {\n\t/**\n\t * A collection of the child views that creates the balloon panel contents.\n\t */\n\tpublic readonly content: ViewCollection;\n\n\t/**\n\t * The absolute top position of the balloon panel in pixels.\n\t *\n\t * @observable\n\t * @default 0\n\t */\n\tdeclare public top: number;\n\n\t/**\n\t * The absolute left position of the balloon panel in pixels.\n\t *\n\t * @observable\n\t * @default 0\n\t */\n\tdeclare public left: number;\n\n\t/**\n\t * The balloon panel's current position. The position name is reflected in the CSS class set\n\t * to the balloon, i.e. `.ck-balloon-panel_arrow_nw` for the \"arrow_nw\" position. The class\n\t * controls the minor aspects of the balloon's visual appearance like the placement\n\t * of an {@link #withArrow arrow}. To support a new position, an additional CSS must be created.\n\t *\n\t * Default position names correspond with\n\t * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.\n\t *\n\t * See the {@link #attachTo} and {@link #pin} methods to learn about custom balloon positions.\n\t *\n\t * @observable\n\t * @default 'arrow_nw'\n\t */\n\tdeclare public position: 'arrow_nw' | 'arrow_ne' | 'arrow_sw' | 'arrow_se';\n\n\t/**\n\t * Controls whether the balloon panel is visible or not.\n\t *\n\t * @observable\n\t * @default false\n\t */\n\tdeclare public isVisible: boolean;\n\n\t/**\n\t * Controls whether the balloon panel has an arrow. The presence of the arrow\n\t * is reflected in the `ck-balloon-panel_with-arrow` CSS class.\n\t *\n\t * @observable\n\t * @default true\n\t */\n\tdeclare public withArrow: boolean;\n\n\t/**\n\t * An additional CSS class added to the {@link #element}.\n\t *\n\t * @observable\n\t */\n\tdeclare public class: string | undefined;\n\n\t/**\n\t * A callback that starts pinning the panel when {@link #isVisible} gets\n\t * `true`. Used by {@link #pin}.\n\t *\n\t * @private\n\t */\n\tprivate _pinWhenIsVisibleCallback: ( () => void ) | null;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale?: Locale ) {\n\t\tsuper( locale );\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.set( 'top', 0 );\n\t\tthis.set( 'left', 0 );\n\t\tthis.set( 'position', 'arrow_nw' );\n\t\tthis.set( 'isVisible', false );\n\t\tthis.set( 'withArrow', true );\n\t\tthis.set( 'class', undefined );\n\n\t\tthis._pinWhenIsVisibleCallback = null;\n\t\tthis.content = this.createCollection();\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-balloon-panel',\n\t\t\t\t\tbind.to( 'position', value => `ck-balloon-panel_${ value }` ),\n\t\t\t\t\tbind.if( 'isVisible', 'ck-balloon-panel_visible' ),\n\t\t\t\t\tbind.if( 'withArrow', 'ck-balloon-panel_with-arrow' ),\n\t\t\t\t\tbind.to( 'class' )\n\t\t\t\t],\n\n\t\t\t\tstyle: {\n\t\t\t\t\ttop: bind.to( 'top', toPx ),\n\t\t\t\t\tleft: bind.to( 'left', toPx )\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tchildren: this.content\n\t\t} );\n\t}\n\n\t/**\n\t * Shows the panel.\n\t *\n\t * See {@link #isVisible}.\n\t */\n\tpublic show(): void {\n\t\tthis.isVisible = true;\n\t}\n\n\t/**\n\t * Hides the panel.\n\t *\n\t * See {@link #isVisible}.\n\t */\n\tpublic hide(): void {\n\t\tthis.isVisible = false;\n\t}\n\n\t/**\n\t * Attaches the panel to a specified {@link module:utils/dom/position~Options#target} with a\n\t * smart positioning heuristics that chooses from available positions to make sure the panel\n\t * is visible to the user i.e. within the limits of the viewport.\n\t *\n\t * This method accepts configuration {@link module:utils/dom/position~Options options}\n\t * to set the `target`, optional `limiter` and `positions` the balloon should choose from.\n\t *\n\t * ```ts\n\t * const panel = new BalloonPanelView( locale );\n\t * const positions = BalloonPanelView.defaultPositions;\n\t *\n\t * panel.render();\n\t *\n\t * // Attach the panel to an element with the \"target\" id DOM.\n\t * panel.attachTo( {\n\t * \ttarget: document.querySelector( '#target' ),\n\t * \tpositions: [\n\t * \t\tpositions.northArrowSouth,\n\t * \t\tpositions.southArrowNorth\n\t * \t]\n\t * } );\n\t * ```\n\t *\n\t * **Note**: Attaching the panel will also automatically {@link #show} it.\n\t *\n\t * **Note**: An attached panel will not follow its target when the window is scrolled or resized.\n\t * See the {@link #pin} method for a more permanent positioning strategy.\n\t *\n\t * @param options Positioning options compatible with {@link module:utils/dom/position~getOptimalPosition}.\n\t * Default `positions` array is {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.\n\t */\n\tpublic attachTo( options: Partial ): void {\n\t\tthis.show();\n\n\t\tconst defaultPositions = BalloonPanelView.defaultPositions;\n\t\tconst positionOptions = Object.assign( {}, {\n\t\t\telement: this.element,\n\t\t\tpositions: [\n\t\t\t\tdefaultPositions.southArrowNorth,\n\t\t\t\tdefaultPositions.southArrowNorthMiddleWest,\n\t\t\t\tdefaultPositions.southArrowNorthMiddleEast,\n\t\t\t\tdefaultPositions.southArrowNorthWest,\n\t\t\t\tdefaultPositions.southArrowNorthEast,\n\t\t\t\tdefaultPositions.northArrowSouth,\n\t\t\t\tdefaultPositions.northArrowSouthMiddleWest,\n\t\t\t\tdefaultPositions.northArrowSouthMiddleEast,\n\t\t\t\tdefaultPositions.northArrowSouthWest,\n\t\t\t\tdefaultPositions.northArrowSouthEast,\n\t\t\t\tdefaultPositions.viewportStickyNorth\n\t\t\t],\n\t\t\tlimiter: global.document.body,\n\t\t\tfitInViewport: true\n\t\t}, options ) as PositionOptions;\n\n\t\tconst optimalPosition = BalloonPanelView._getOptimalPosition( positionOptions ) || POSITION_OFF_SCREEN;\n\n\t\t// Usually browsers make some problems with super accurate values like 104.345px\n\t\t// so it is better to use int values.\n\t\tconst left = parseInt( optimalPosition.left as any );\n\t\tconst top = parseInt( optimalPosition.top as any );\n\n\t\tconst position = optimalPosition.name as this[ 'position' ];\n\t\tconst config: { withArrow?: boolean } = optimalPosition.config || {};\n\t\tconst { withArrow = true } = config;\n\n\t\tthis.top = top;\n\t\tthis.left = left;\n\t\tthis.position = position;\n\t\tthis.withArrow = withArrow;\n\t}\n\n\t/**\n\t * Works the same way as the {@link #attachTo} method except that the position of the panel is\n\t * continuously updated when:\n\t *\n\t * * any ancestor of the {@link module:utils/dom/position~Options#target}\n\t * or {@link module:utils/dom/position~Options#limiter} is scrolled,\n\t * * the browser window gets resized or scrolled.\n\t *\n\t * Thanks to that, the panel always sticks to the {@link module:utils/dom/position~Options#target}\n\t * and is immune to the changing environment.\n\t *\n\t * ```ts\n\t * const panel = new BalloonPanelView( locale );\n\t * const positions = BalloonPanelView.defaultPositions;\n\t *\n\t * panel.render();\n\t *\n\t * // Pin the panel to an element with the \"target\" id DOM.\n\t * panel.pin( {\n\t * \ttarget: document.querySelector( '#target' ),\n\t * \tpositions: [\n\t * \t\tpositions.northArrowSouth,\n\t * \t\tpositions.southArrowNorth\n\t * \t]\n\t * } );\n\t * ```\n\t *\n\t * To leave the pinned state, use the {@link #unpin} method.\n\t *\n\t * **Note**: Pinning the panel will also automatically {@link #show} it.\n\t *\n\t * @param options Positioning options compatible with {@link module:utils/dom/position~getOptimalPosition}.\n\t * Default `positions` array is {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.\n\t */\n\tpublic pin( options: Partial ): void {\n\t\tthis.unpin();\n\n\t\tthis._pinWhenIsVisibleCallback = () => {\n\t\t\tif ( this.isVisible ) {\n\t\t\t\tthis._startPinning( options );\n\t\t\t} else {\n\t\t\t\tthis._stopPinning();\n\t\t\t}\n\t\t};\n\n\t\tthis._startPinning( options );\n\n\t\t// Control the state of the listeners depending on whether the panel is visible\n\t\t// or not.\n\t\t// TODO: Use on() (https://github.com/ckeditor/ckeditor5-utils/issues/144).\n\t\tthis.listenTo( this, 'change:isVisible', this._pinWhenIsVisibleCallback );\n\t}\n\n\t/**\n\t * Stops pinning the panel, as set up by {@link #pin}.\n\t */\n\tpublic unpin(): void {\n\t\tif ( this._pinWhenIsVisibleCallback ) {\n\t\t\t// Deactivate listeners attached by pin().\n\t\t\tthis._stopPinning();\n\n\t\t\t// Deactivate the panel pin() control logic.\n\t\t\t// TODO: Use off() (https://github.com/ckeditor/ckeditor5-utils/issues/144).\n\t\t\tthis.stopListening( this, 'change:isVisible', this._pinWhenIsVisibleCallback );\n\n\t\t\tthis._pinWhenIsVisibleCallback = null;\n\n\t\t\tthis.hide();\n\t\t}\n\t}\n\n\t/**\n\t * Starts managing the pinned state of the panel. See {@link #pin}.\n\t *\n\t * @param options Positioning options compatible with {@link module:utils/dom/position~getOptimalPosition}.\n\t */\n\tprivate _startPinning( options: Partial ) {\n\t\tthis.attachTo( options );\n\n\t\tconst targetElement = getDomElement( options.target );\n\t\tconst limiterElement = options.limiter ? getDomElement( options.limiter ) : global.document.body;\n\n\t\t// Then we need to listen on scroll event of eny element in the document.\n\t\tthis.listenTo( global.document, 'scroll', ( evt, domEvt ) => {\n\t\t\tconst scrollTarget = domEvt.target as Element;\n\n\t\t\t// The position needs to be updated if the positioning target is within the scrolled element.\n\t\t\tconst isWithinScrollTarget = targetElement && scrollTarget.contains( targetElement );\n\n\t\t\t// The position needs to be updated if the positioning limiter is within the scrolled element.\n\t\t\tconst isLimiterWithinScrollTarget = limiterElement && scrollTarget.contains( limiterElement );\n\n\t\t\t// The positioning target and/or limiter can be a Rect, object etc..\n\t\t\t// There's no way to optimize the listener then.\n\t\t\tif ( isWithinScrollTarget || isLimiterWithinScrollTarget || !targetElement || !limiterElement ) {\n\t\t\t\tthis.attachTo( options );\n\t\t\t}\n\t\t}, { useCapture: true } );\n\n\t\t// We need to listen on window resize event and update position.\n\t\tthis.listenTo( global.window, 'resize', () => {\n\t\t\tthis.attachTo( options );\n\t\t} );\n\t}\n\n\t/**\n\t * Stops managing the pinned state of the panel. See {@link #pin}.\n\t */\n\tprivate _stopPinning(): void {\n\t\tthis.stopListening( global.document, 'scroll' );\n\t\tthis.stopListening( global.window, 'resize' );\n\t}\n\n\t/**\n\t * Returns available {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView}\n\t * {@link module:utils/dom/position~PositioningFunction positioning functions} adjusted by the specific offsets.\n\t *\n\t * @internal\n\t * @param options Options to generate positions. If not specified, this helper will simply return\n\t * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.\n\t * @param options.sideOffset A custom side offset (in pixels) of each position. If\n\t * not specified, {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.arrowSideOffset the default value}\n\t * will be used.\n\t * @param options.heightOffset A custom height offset (in pixels) of each position. If\n\t * not specified, {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.arrowHeightOffset the default value}\n\t * will be used.\n\t * @param options.stickyVerticalOffset A custom offset (in pixels) of the `viewportStickyNorth` positioning function.\n\t * If not specified, {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.stickyVerticalOffset the default value}\n\t * will be used.\n\t * @param options.config Additional configuration of the balloon balloon panel view.\n\t * Currently only {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#withArrow} is supported. Learn more\n\t * about {@link module:utils/dom/position~PositioningFunction positioning functions}.\n\t */\n\tpublic static generatePositions( options: {\n\t\tsideOffset?: number;\n\t\theightOffset?: number;\n\t\tstickyVerticalOffset?: number;\n\t\tconfig?: object;\n\t} = {} ): Record {\n\t\tconst {\n\t\t\tsideOffset = BalloonPanelView.arrowSideOffset,\n\t\t\theightOffset = BalloonPanelView.arrowHeightOffset,\n\t\t\tstickyVerticalOffset = BalloonPanelView.stickyVerticalOffset,\n\t\t\tconfig\n\t\t} = options;\n\n\t\treturn {\n\t\t\t// ------- North west\n\n\t\t\tnorthWestArrowSouthWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left - sideOffset,\n\t\t\t\tname: 'arrow_sw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthWestArrowSouthMiddleWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left - ( balloonRect.width * .25 ) - sideOffset,\n\t\t\t\tname: 'arrow_smw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthWestArrowSouth: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left - balloonRect.width / 2,\n\t\t\t\tname: 'arrow_s',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthWestArrowSouthMiddleEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left - ( balloonRect.width * .75 ) + sideOffset,\n\t\t\t\tname: 'arrow_sme',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthWestArrowSouthEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left - balloonRect.width + sideOffset,\n\t\t\t\tname: 'arrow_se',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\t// ------- North\n\n\t\t\tnorthArrowSouthWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - sideOffset,\n\t\t\t\tname: 'arrow_sw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthArrowSouthMiddleWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - ( balloonRect.width * .25 ) - sideOffset,\n\t\t\t\tname: 'arrow_smw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthArrowSouth: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - balloonRect.width / 2,\n\t\t\t\tname: 'arrow_s',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthArrowSouthMiddleEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - ( balloonRect.width * .75 ) + sideOffset,\n\t\t\t\tname: 'arrow_sme',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthArrowSouthEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - balloonRect.width + sideOffset,\n\t\t\t\tname: 'arrow_se',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\t// ------- North east\n\n\t\t\tnorthEastArrowSouthWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.right - sideOffset,\n\t\t\t\tname: 'arrow_sw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthEastArrowSouthMiddleWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.right - ( balloonRect.width * .25 ) - sideOffset,\n\t\t\t\tname: 'arrow_smw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthEastArrowSouth: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.right - balloonRect.width / 2,\n\t\t\t\tname: 'arrow_s',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthEastArrowSouthMiddleEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.right - ( balloonRect.width * .75 ) + sideOffset,\n\t\t\t\tname: 'arrow_sme',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tnorthEastArrowSouthEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getNorthTop( targetRect, balloonRect ),\n\t\t\t\tleft: targetRect.right - balloonRect.width + sideOffset,\n\t\t\t\tname: 'arrow_se',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\t// ------- South west\n\n\t\t\tsouthWestArrowNorthWest: targetRect => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left - sideOffset,\n\t\t\t\tname: 'arrow_nw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthWestArrowNorthMiddleWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left - ( balloonRect.width * .25 ) - sideOffset,\n\t\t\t\tname: 'arrow_nmw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthWestArrowNorth: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left - balloonRect.width / 2,\n\t\t\t\tname: 'arrow_n',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthWestArrowNorthMiddleEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left - ( balloonRect.width * .75 ) + sideOffset,\n\t\t\t\tname: 'arrow_nme',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthWestArrowNorthEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left - balloonRect.width + sideOffset,\n\t\t\t\tname: 'arrow_ne',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\t// ------- South\n\n\t\t\tsouthArrowNorthWest: targetRect => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - sideOffset,\n\t\t\t\tname: 'arrow_nw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthArrowNorthMiddleWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - ( balloonRect.width * 0.25 ) - sideOffset,\n\t\t\t\tname: 'arrow_nmw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthArrowNorth: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - balloonRect.width / 2,\n\t\t\t\tname: 'arrow_n',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthArrowNorthMiddleEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - ( balloonRect.width * 0.75 ) + sideOffset,\n\t\t\t\tname: 'arrow_nme',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthArrowNorthEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.left + targetRect.width / 2 - balloonRect.width + sideOffset,\n\t\t\t\tname: 'arrow_ne',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\t// ------- South east\n\n\t\t\tsouthEastArrowNorthWest: targetRect => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.right - sideOffset,\n\t\t\t\tname: 'arrow_nw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthEastArrowNorthMiddleWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.right - ( balloonRect.width * .25 ) - sideOffset,\n\t\t\t\tname: 'arrow_nmw',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthEastArrowNorth: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.right - balloonRect.width / 2,\n\t\t\t\tname: 'arrow_n',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthEastArrowNorthMiddleEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.right - ( balloonRect.width * .75 ) + sideOffset,\n\t\t\t\tname: 'arrow_nme',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\tsouthEastArrowNorthEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: getSouthTop( targetRect ),\n\t\t\t\tleft: targetRect.right - balloonRect.width + sideOffset,\n\t\t\t\tname: 'arrow_ne',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\t// ------- West\n\n\t\t\twestArrowEast: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: targetRect.top + targetRect.height / 2 - balloonRect.height / 2,\n\t\t\t\tleft: targetRect.left - balloonRect.width - heightOffset,\n\t\t\t\tname: 'arrow_e',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\t// ------- East\n\n\t\t\teastArrowWest: ( targetRect, balloonRect ) => ( {\n\t\t\t\ttop: targetRect.top + targetRect.height / 2 - balloonRect.height / 2,\n\t\t\t\tleft: targetRect.right + heightOffset,\n\t\t\t\tname: 'arrow_w',\n\t\t\t\t...( config && { config } )\n\t\t\t} ),\n\n\t\t\t// ------- Sticky\n\n\t\t\tviewportStickyNorth: ( targetRect, balloonRect, viewportRect, limiterRect ) => {\n\t\t\t\tconst boundaryRect = limiterRect || viewportRect;\n\n\t\t\t\tif ( !targetRect.getIntersection( boundaryRect ) ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\t// Engage when the target top and bottom edges are close or off the boundary.\n\t\t\t\t// By close, it means there's not enough space for the balloon arrow (offset).\n\t\t\t\tif ( boundaryRect.height - targetRect.height > stickyVerticalOffset ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\ttop: boundaryRect.top + stickyVerticalOffset,\n\t\t\t\t\tleft: targetRect.left + targetRect.width / 2 - balloonRect.width / 2,\n\t\t\t\t\tname: 'arrowless',\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\twithArrow: false,\n\t\t\t\t\t\t...config\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Returns the top coordinate for positions starting with `north*`.\n\t\t *\n\t\t * @param targetRect A rect of the target.\n\t\t * @param balloonRect A rect of the balloon.\n\t\t */\n\t\tfunction getNorthTop( targetRect: Rect, balloonRect: Rect ) {\n\t\t\treturn targetRect.top - balloonRect.height - heightOffset;\n\t\t}\n\n\t\t/**\n\t\t * Returns the top coordinate for positions starting with `south*`.\n\t\t *\n\t\t * @param targetRect A rect of the target.\n\t\t */\n\t\tfunction getSouthTop( targetRect: Rect ) {\n\t\t\treturn targetRect.bottom + heightOffset;\n\t\t}\n\t}\n\n\t/**\n\t * A side offset of the arrow tip from the edge of the balloon. Controlled by CSS.\n\t *\n\t * ```\n\t *\t\t ┌───────────────────────┐\n\t *\t\t │ │\n\t *\t\t │ Balloon │\n\t *\t\t │ Content │\n\t *\t\t │ │\n\t *\t\t └──+ +───────────────┘\n\t *\t\t | \\ /\n\t *\t\t | \\/\n\t *\t\t>┼─────┼< ─────────────────────── side offset\n\t *\n\t * ```\n\t *\n\t * @default 25\n\t */\n\tpublic static arrowSideOffset = 25;\n\n\t/**\n\t * A height offset of the arrow from the edge of the balloon. Controlled by CSS.\n\t *\n\t * ```\n\t *\t\t ┌───────────────────────┐\n\t *\t\t │ │\n\t *\t\t │ Balloon │\n\t *\t\t │ Content │ ╱-- arrow height offset\n\t *\t\t │ │ V\n\t *\t\t └──+ +───────────────┘ --- ─┼───────\n\t *\t\t \\ / │\n\t *\t\t \\/ │\n\t *\t\t────────────────────────────────┼───────\n\t *\t\t ^\n\t *\n\t *\n\t *\t\t>┼────┼< arrow height offset\n\t *\t\t │ │\n\t *\t\t │ ┌────────────────────────┐\n\t *\t\t │ │ │\n\t *\t\t │ ╱ │\n\t *\t\t │ ╱ Balloon │\n\t *\t\t │ ╲ Content │\n\t *\t\t │ ╲ │\n\t *\t\t │ │ │\n\t *\t\t │ └────────────────────────┘\n\t * ```\n\t *\n\t * @default 10\n\t*/\n\tpublic static arrowHeightOffset = 10;\n\n\t/**\n\t * A vertical offset of the balloon panel from the edge of the viewport if sticky.\n\t * It helps in accessing toolbar buttons underneath the balloon panel.\n\t *\n\t * ```\n\t *\t\t ┌───────────────────────────────────────────────────┐\n\t *\t\t │ Target │\n\t *\t\t │ │\n\t *\t\t │ /── vertical offset │\n\t *\t\t┌─────────────────────────────V─────────────────────────┐\n\t *\t\t│ Toolbar ┌─────────────┐ │\n\t *\t\t├────────────────────│ Balloon │────────────────────┤\n\t *\t\t│ │ └─────────────┘ │ │\n\t *\t\t│ │ │ │\n\t *\t\t│ │ │ │\n\t *\t\t│ │ │ │\n\t *\t\t│ └───────────────────────────────────────────────────┘ │\n\t *\t\t│ Viewport │\n\t *\t\t└───────────────────────────────────────────────────────┘\n\t * ```\n\t *\n\t * @default 20\n\t */\n\tpublic static stickyVerticalOffset = 20;\n\n\t/**\n\t * Function used to calculate the optimal position for the balloon.\n\t */\n\tprivate static _getOptimalPosition = getOptimalPosition;\n\n\t/**\n\t * A default set of positioning functions used by the balloon panel view\n\t * when attaching using the {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#attachTo} method.\n\t *\n\t * The available positioning functions are as follows:\n\t *\n\t * **North west**\n\t *\n\t * * `northWestArrowSouthWest`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * * `northWestArrowSouthMiddleWest`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * * `northWestArrowSouth`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * * `northWestArrowSouthMiddleEast`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * * `northWestArrowSouthEast`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * **North**\n\t *\n\t * * `northArrowSouthWest`\n\t *\n\t * ```\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t *\t\t V\n\t *\t\t[ Target ]\n\t * ```\n\t *\n\t * * `northArrowSouthMiddleWest`\n\t *\n\t * ```\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t *\t\t V\n\t *\t\t[ Target ]\n\t * ```\n\t * * `northArrowSouth`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * * `northArrowSouthMiddleEast`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * * `northArrowSouthEast`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * **North east**\n\t *\n\t * * `northEastArrowSouthWest`\n\t *\n\t * ```\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t *\t\t V\n\t *\t\t[ Target ]\n\t * ```\n\t *\n\t * * `northEastArrowSouthMiddleWest`\n\t *\n\t * ```\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t *\t\t V\n\t *\t\t[ Target ]\n\t * ```\n\t *\n\t * * `northEastArrowSouth`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t[ Target ]\n\t * ```\n\t *\n\t * * `northEastArrowSouthMiddleEast`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * * `northEastArrowSouthEast`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t *\t\t V\n\t *\t\t [ Target ]\n\t * ```\n\t *\n\t * **South**\n\t *\n\t * * `southArrowNorthWest`\n\t *\n\t * ```\n\t *\t\t[ Target ]\n\t *\t\t ^\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t * ```\n\t *\n\t * * `southArrowNorthMiddleWest`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t * ```\n\t *\n\t * * `southArrowNorth`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * * `southArrowNorthMiddleEast`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t * ```\n\t *\n\t * * `southArrowNorthEast`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * **South west**\n\t *\n\t * * `southWestArrowNorthWest`\n\t *\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * * `southWestArrowNorthMiddleWest`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t * ```\n\t *\n\t * * `southWestArrowNorth`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * * `southWestArrowNorthMiddleEast`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * * `southWestArrowNorthEast`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * **South east**\n\t *\n\t * * `southEastArrowNorthWest`\n\t *\n\t * ```\n\t *\t\t[ Target ]\n\t *\t\t ^\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t * ```\n\t *\n\t * * `southEastArrowNorthMiddleWest`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t +-----------------+\n\t *\t\t | Balloon |\n\t *\t\t +-----------------+\n\t * ```\n\t *\n\t * * `southEastArrowNorth`\n\t *\n\t * ```\n\t *\t\t[ Target ]\n\t *\t\t ^\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * * `southEastArrowNorthMiddleEast`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * * `southEastArrowNorthEast`\n\t *\n\t * ```\n\t *\t\t [ Target ]\n\t *\t\t ^\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * **West**\n\t *\n\t * * `westArrowEast`\n\t *\n\t * ```\n\t *\t\t+-----------------+\n\t *\t\t| Balloon |>[ Target ]\n\t *\t\t+-----------------+\n\t * ```\n\t *\n\t * **East**\n\t *\n\t * * `eastArrowWest`\n\t *\n\t * ```\n\t *\t\t +-----------------+\n\t *\t\t[ Target ]<| Balloon |\n\t *\t\t +-----------------+\n\t * ```\n\t *\n\t * **Sticky**\n\t *\n\t * * `viewportStickyNorth`\n\t *\n\t * ```\n\t *\t\t +---------------------------+\n\t *\t\t | [ Target ] |\n\t *\t\t | |\n\t *\t\t+-----------------------------------+\n\t *\t\t| | +-----------------+ | |\n\t *\t\t| | | Balloon | | |\n\t *\t\t| | +-----------------+ | |\n\t *\t\t| | | |\n\t *\t\t| | | |\n\t *\t\t| | | |\n\t *\t\t| | | |\n\t *\t\t| +---------------------------+ |\n\t *\t\t| Viewport |\n\t *\t\t+-----------------------------------+\n\t * ```\n\t *\n\t * See {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#attachTo}.\n\t *\n\t * Positioning functions must be compatible with {@link module:utils/dom/position~DomPoint}.\n\t *\n\t * Default positioning functions with customized offsets can be generated using\n\t * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.generatePositions}.\n\t *\n\t * The name that the position function returns will be reflected in the balloon panel's class that\n\t * controls the placement of the \"arrow\". See {@link #position} to learn more.\n\t */\n\tpublic static defaultPositions = /* #__PURE__ */ BalloonPanelView.generatePositions();\n}\n\n/**\n * Returns the DOM element for given object or null, if there is none,\n * e.g. when the passed object is a Rect instance or so.\n */\nfunction getDomElement( object: any ): HTMLElement | null {\n\tif ( isElement( object ) ) {\n\t\treturn object;\n\t}\n\n\tif ( isRange( object ) ) {\n\t\treturn object.commonAncestorContainer as any;\n\t}\n\n\tif ( typeof object == 'function' ) {\n\t\treturn getDomElement( object() );\n\t}\n\n\treturn null;\n}\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./tooltip.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/tooltipmanager\n */\n\nimport View from './view.js';\nimport BalloonPanelView from './panel/balloon/balloonpanelview.js';\nimport type { EditorUIUpdateEvent } from './editorui/editorui.js';\n\nimport {\n\tDomEmitterMixin,\n\tResizeObserver,\n\tfirst,\n\tglobal,\n\tisVisible,\n\ttype EventInfo,\n\ttype PositioningFunction\n} from '@ckeditor/ckeditor5-utils';\n\nimport type { Editor } from '@ckeditor/ckeditor5-core';\n\nimport { isElement, debounce, type DebouncedFunc } from 'lodash-es';\n\nimport '../theme/components/tooltip/tooltip.css';\n\nconst BALLOON_CLASS = 'ck-tooltip';\n\n/**\n * A tooltip manager class for the UI of the editor.\n *\n * **Note**: Most likely you do not have to use the `TooltipManager` API listed below in order to display tooltips. Popular\n * {@glink framework/architecture/ui-library UI components} support tooltips out-of-the-box via observable properties\n * (see {@link module:ui/button/buttonview~ButtonView#tooltip} and {@link module:ui/button/buttonview~ButtonView#tooltipPosition}).\n *\n * # Displaying tooltips\n *\n * To display a tooltip, set `data-cke-tooltip-text` attribute on any DOM element:\n *\n * ```ts\n * domElement.dataset.ckeTooltipText = 'My tooltip';\n * ```\n *\n * The tooltip will show up whenever the user moves the mouse over the element or the element gets focus in DOM.\n *\n * # Positioning tooltips\n *\n * To change the position of the tooltip, use the `data-cke-tooltip-position` attribute (`s`, `se`, `sw`, `n`, `e`, or `w`):\n *\n * ```ts\n * domElement.dataset.ckeTooltipText = 'Tooltip to the north';\n * domElement.dataset.ckeTooltipPosition = 'n';\n * ```\n *\n * # Disabling tooltips\n *\n * In order to disable the tooltip temporarily, use the `data-cke-tooltip-disabled` attribute:\n *\n * ```ts\n * domElement.dataset.ckeTooltipText = 'Disabled. For now.';\n * domElement.dataset.ckeTooltipDisabled = 'true';\n * ```\n *\n * # Styling tooltips\n *\n * By default, the tooltip has `.ck-tooltip` class and its text inner `.ck-tooltip__text`.\n *\n * If your tooltip requires custom styling, using `data-cke-tooltip-class` attribute will add additional class to the balloon\n * displaying the tooltip:\n *\n * ```ts\n * domElement.dataset.ckeTooltipText = 'Tooltip with a red text';\n * domElement.dataset.ckeTooltipClass = 'my-class';\n * ```\n *\n * ```css\n * .ck.ck-tooltip.my-class { color: red }\n * ```\n *\n * **Note**: This class is a singleton. All editor instances re-use the same instance loaded by\n * {@link module:ui/editorui/editorui~EditorUI} of the first editor.\n */\nexport default class TooltipManager extends /* #__PURE__ */ DomEmitterMixin() {\n\t/**\n\t * The view rendering text of the tooltip.\n\t */\n\tpublic readonly tooltipTextView!: View & { text: string };\n\n\t/**\n\t * The instance of the balloon panel that renders and positions the tooltip.\n\t */\n\tpublic readonly balloonPanelView!: BalloonPanelView;\n\n\t/**\n\t * A set of default {@link module:utils/dom/position~PositioningFunction positioning functions} used by the `TooltipManager`\n\t * to pin tooltips in different positions.\n\t */\n\tpublic static defaultBalloonPositions = /* #__PURE__ */ BalloonPanelView.generatePositions( {\n\t\theightOffset: 5,\n\t\tsideOffset: 13\n\t} );\n\n\t/**\n\t * Stores the reference to the DOM element the tooltip is attached to. `null` when there's no tooltip\n\t * in the UI.\n\t */\n\tprivate _currentElementWithTooltip: HTMLElement | null = null;\n\n\t/**\n\t * Stores the current tooltip position. `null` when there's no tooltip in the UI.\n\t */\n\tprivate _currentTooltipPosition: TooltipPosition | null = null;\n\n\t/**\n\t * An instance of the resize observer that keeps track on target element visibility,\n\t * when it hides the tooltip should also disappear.\n\t *\n\t * {@link module:core/editor/editorconfig~EditorConfig#balloonToolbar configuration}.\n\t */\n\tprivate _resizeObserver: ResizeObserver | null = null;\n\n\t/**\n\t * An instance of the mutation observer that keeps track on target element attributes changes.\n\t */\n\tprivate _mutationObserver: MutationObserverWrapper | null = null;\n\n\t/**\n\t * A debounced version of {@link #_pinTooltip}. Tooltips show with a delay to avoid flashing and\n\t * to improve the UX.\n\t */\n\tprivate _pinTooltipDebounced!: DebouncedFunc<( targetDomElement: HTMLElement, data: TooltipData ) => void>;\n\n\t/**\n\t * A debounced version of {@link #_unpinTooltip}. Tooltips hide with a delay to allow hovering of their titles.\n\t */\n\tprivate _unpinTooltipDebounced!: DebouncedFunc;\n\n\tprivate readonly _watchdogExcluded!: true;\n\n\t/**\n\t * A set of editors the single tooltip manager instance must listen to.\n\t * This is mostly to handle `EditorUI#update` listeners from individual editors.\n\t */\n\tprivate static _editors = new Set();\n\n\t/**\n\t * A reference to the `TooltipManager` instance. The class is a singleton and as such,\n\t * successive attempts at creating instances should return this instance.\n\t */\n\tprivate static _instance: TooltipManager | null = null;\n\n\t/**\n\t * Creates an instance of the tooltip manager.\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper();\n\n\t\tTooltipManager._editors.add( editor );\n\n\t\t// TooltipManager must be a singleton. Multiple instances would mean multiple tooltips attached\n\t\t// to the same DOM element with data-cke-tooltip-* attributes.\n\t\tif ( TooltipManager._instance ) {\n\t\t\treturn TooltipManager._instance;\n\t\t}\n\n\t\tTooltipManager._instance = this;\n\n\t\tthis.tooltipTextView = new View( editor.locale ) as any;\n\t\tthis.tooltipTextView.set( 'text', '' );\n\t\tthis.tooltipTextView.setTemplate( {\n\t\t\ttag: 'span',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-tooltip__text'\n\t\t\t\t]\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\ttext: this.tooltipTextView.bindTemplate.to( 'text' )\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\n\t\tthis.balloonPanelView = new BalloonPanelView( editor.locale );\n\t\tthis.balloonPanelView.class = BALLOON_CLASS;\n\t\tthis.balloonPanelView.content.add( this.tooltipTextView );\n\n\t\tthis._mutationObserver = createMutationObserver( () => {\n\t\t\tthis._updateTooltipPosition();\n\t\t} );\n\n\t\tthis._pinTooltipDebounced = debounce( this._pinTooltip, 600 );\n\t\tthis._unpinTooltipDebounced = debounce( this._unpinTooltip, 400 );\n\n\t\tthis.listenTo( global.document, 'keydown', this._onKeyDown.bind( this ), { useCapture: true } );\n\t\tthis.listenTo( global.document, 'mouseenter', this._onEnterOrFocus.bind( this ), { useCapture: true } );\n\t\tthis.listenTo( global.document, 'mouseleave', this._onLeaveOrBlur.bind( this ), { useCapture: true } );\n\n\t\tthis.listenTo( global.document, 'focus', this._onEnterOrFocus.bind( this ), { useCapture: true } );\n\t\tthis.listenTo( global.document, 'blur', this._onLeaveOrBlur.bind( this ), { useCapture: true } );\n\n\t\tthis.listenTo( global.document, 'scroll', this._onScroll.bind( this ), { useCapture: true } );\n\n\t\t// Because this class is a singleton, its only instance is shared across all editors and connects them through the reference.\n\t\t// This causes issues with the ContextWatchdog. When an error is thrown in one editor, the watchdog traverses the references\n\t\t// and (because of shared tooltip manager) figures that the error affects all editors and restarts them all.\n\t\t// This flag, excludes tooltip manager instance from the traversal and brings ContextWatchdog back to normal.\n\t\t// More in https://github.com/ckeditor/ckeditor5/issues/12292.\n\t\tthis._watchdogExcluded = true;\n\t}\n\n\t/**\n\t * Destroys the tooltip manager.\n\t *\n\t * **Note**: The manager singleton cannot be destroyed until all editors that use it are destroyed.\n\t *\n\t * @param editor The editor the manager was created for.\n\t */\n\tpublic destroy( editor: Editor ): void {\n\t\tconst editorBodyViewCollection = editor.ui.view && editor.ui.view.body;\n\n\t\tTooltipManager._editors.delete( editor );\n\t\tthis.stopListening( editor.ui );\n\n\t\t// Prevent the balloon panel from being destroyed in the EditorUI#destroy() cascade. It should be destroyed along\n\t\t// with the last editor only (https://github.com/ckeditor/ckeditor5/issues/12602).\n\t\tif ( editorBodyViewCollection && editorBodyViewCollection.has( this.balloonPanelView ) ) {\n\t\t\teditorBodyViewCollection.remove( this.balloonPanelView );\n\t\t}\n\n\t\tif ( !TooltipManager._editors.size ) {\n\t\t\tthis._unpinTooltip();\n\t\t\tthis.balloonPanelView.destroy();\n\t\t\tthis.stopListening();\n\n\t\t\tTooltipManager._instance = null;\n\t\t}\n\t}\n\n\t/**\n\t * Returns {@link #balloonPanelView} {@link module:utils/dom/position~PositioningFunction positioning functions} for a given position\n\t * name.\n\t *\n\t * @param position Name of the position (`s`, `se`, `sw`, `n`, `e`, or `w`).\n\t * @returns Positioning functions to be used by the {@link #balloonPanelView}.\n\t */\n\tpublic static getPositioningFunctions( position: TooltipPosition ): Array {\n\t\tconst defaultPositions = TooltipManager.defaultBalloonPositions;\n\n\t\treturn {\n\t\t\t// South is most popular. We can use positioning heuristics to avoid clipping by the viewport with the sane fallback.\n\t\t\ts: [\n\t\t\t\tdefaultPositions.southArrowNorth,\n\t\t\t\tdefaultPositions.southArrowNorthEast,\n\t\t\t\tdefaultPositions.southArrowNorthWest\n\t\t\t],\n\t\t\tn: [ defaultPositions.northArrowSouth ],\n\t\t\te: [ defaultPositions.eastArrowWest ],\n\t\t\tw: [ defaultPositions.westArrowEast ],\n\t\t\tsw: [ defaultPositions.southArrowNorthEast ],\n\t\t\tse: [ defaultPositions.southArrowNorthWest ]\n\t\t}[ position ];\n\t}\n\n\t/**\n\t * Handles hiding tooltips on `keydown` in DOM.\n\t *\n\t * @param evt An object containing information about the fired event.\n\t * @param domEvent The DOM event.\n\t */\n\tprivate _onKeyDown( evt: EventInfo, domEvent: KeyboardEvent ) {\n\t\tif ( domEvent.key === 'Escape' && this._currentElementWithTooltip ) {\n\t\t\tthis._unpinTooltip();\n\t\t\tdomEvent.stopPropagation();\n\t\t}\n\t}\n\n\t/**\n\t * Handles displaying tooltips on `mouseenter` and `focus` in DOM.\n\t *\n\t * @param evt An object containing information about the fired event.\n\t * @param domEvent The DOM event.\n\t */\n\tprivate _onEnterOrFocus( evt: EventInfo, { target }: any ) {\n\t\tconst elementWithTooltipAttribute = getDescendantWithTooltip( target );\n\n\t\t// Abort when there's no descendant needing tooltip.\n\t\tif ( !elementWithTooltipAttribute ) {\n\t\t\t// Unpin if element is focused, regardless of whether it contains a label or not.\n\t\t\t// It also prevents tooltips from overlapping the menu bar\n\t\t\tif ( evt.name === 'focus' ) {\n\t\t\t\tthis._unpinTooltip();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\t// Abort to avoid flashing when, for instance:\n\t\t// * a tooltip is displayed for a focused element, then the same element gets mouseentered,\n\t\t// * a tooltip is displayed for an element via mouseenter, then the focus moves to the same element.\n\t\tif ( elementWithTooltipAttribute === this._currentElementWithTooltip ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._unpinTooltip();\n\n\t\tif ( evt.name === 'focus' ) {\n\t\t\tthis._pinTooltip( elementWithTooltipAttribute, getTooltipData( elementWithTooltipAttribute ) );\n\t\t} else {\n\t\t\tthis._pinTooltipDebounced( elementWithTooltipAttribute, getTooltipData( elementWithTooltipAttribute ) );\n\t\t}\n\t}\n\n\t/**\n\t * Handles hiding tooltips on `mouseleave` and `blur` in DOM.\n\t *\n\t * @param evt An object containing information about the fired event.\n\t * @param domEvent The DOM event.\n\t */\n\tprivate _onLeaveOrBlur( evt: EventInfo, { target, relatedTarget }: any ) {\n\t\tif ( evt.name === 'mouseleave' ) {\n\t\t\t// Don't act when the event does not concern a DOM element (e.g. a mouseleave out of an entire document),\n\t\t\tif ( !isElement( target ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst balloonElement = this.balloonPanelView.element;\n\t\t\tconst isEnteringBalloon = balloonElement && ( balloonElement === relatedTarget || balloonElement.contains( relatedTarget ) );\n\t\t\tconst isLeavingBalloon = !isEnteringBalloon && target === balloonElement;\n\n\t\t\t// Do not hide the tooltip when the user moves the cursor over it.\n\t\t\tif ( isEnteringBalloon ) {\n\t\t\t\tthis._unpinTooltipDebounced.cancel();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a tooltip is currently visible, don't act for a targets other than the one it is attached to.\n\t\t\t// The only exception is leaving balloon, in this scenario tooltip should be closed.\n\t\t\t// For instance, a random mouseleave far away in the page should not unpin the tooltip that was pinned because\n\t\t\t// of a previous focus. Only leaving the same element should hide the tooltip.\n\t\t\tif ( !isLeavingBalloon && this._currentElementWithTooltip && target !== this._currentElementWithTooltip ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst descendantWithTooltip = getDescendantWithTooltip( target );\n\t\t\tconst relatedDescendantWithTooltip = getDescendantWithTooltip( relatedTarget );\n\n\t\t\t// Unpin when the mouse was leaving element with a tooltip to a place which does not have or has a different tooltip.\n\t\t\t// Note that this should happen whether the tooltip is already visible or not, for instance,\n\t\t\t// it could be invisible but queued (debounced): it should get canceled.\n\t\t\tif ( isLeavingBalloon || ( descendantWithTooltip && descendantWithTooltip !== relatedDescendantWithTooltip ) ) {\n\t\t\t\tthis._unpinTooltipDebounced();\n\t\t\t}\n\t\t} else {\n\t\t\t// If a tooltip is currently visible, don't act for a targets other than the one it is attached to.\n\t\t\t// For instance, a random blur in the web page should not unpin the tooltip that was pinned because of a previous mouseenter.\n\t\t\tif ( this._currentElementWithTooltip && target !== this._currentElementWithTooltip ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Note that unpinning should happen whether the tooltip is already visible or not, for instance, it could be invisible but\n\t\t\t// queued (debounced): it should get canceled (e.g. quick focus then quick blur using the keyboard).\n\t\t\tthis._unpinTooltipDebounced();\n\t\t}\n\t}\n\n\t/**\n\t * Handles hiding tooltips on `scroll` in DOM.\n\t *\n\t * @param evt An object containing information about the fired event.\n\t * @param domEvent The DOM event.\n\t */\n\tprivate _onScroll( evt: unknown, { target }: any ) {\n\t\t// No tooltip, no reason to react on scroll.\n\t\tif ( !this._currentElementWithTooltip ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// When scrolling a container that has both the balloon and the current element (common ancestor), the balloon can remain\n\t\t// visible (e.g. scrolling ≤body>). Otherwise, to avoid glitches (clipping, lagging) better just hide the tooltip.\n\t\t// Also, don't do anything when scrolling an unrelated DOM element that has nothing to do with the current element and the balloon.\n\t\tif ( target.contains( this.balloonPanelView.element ) && target.contains( this._currentElementWithTooltip ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._unpinTooltip();\n\t}\n\n\t/**\n\t * Pins the tooltip to a specific DOM element.\n\t *\n\t * @param options.text Text of the tooltip to display.\n\t * @param options.position The position of the tooltip.\n\t * @param options.cssClass Additional CSS class of the balloon with the tooltip.\n\t */\n\tprivate _pinTooltip(\n\t\ttargetDomElement: HTMLElement,\n\t\t{ text, position, cssClass }: TooltipData\n\t): void {\n\t\tthis._unpinTooltip();\n\n\t\t// Use the body collection of the first editor.\n\t\tconst bodyViewCollection = first( TooltipManager._editors.values() )!.ui.view.body;\n\n\t\tif ( !bodyViewCollection.has( this.balloonPanelView ) ) {\n\t\t\tbodyViewCollection.add( this.balloonPanelView );\n\t\t}\n\n\t\tthis.tooltipTextView.text = text;\n\n\t\tthis.balloonPanelView.pin( {\n\t\t\ttarget: targetDomElement,\n\t\t\tpositions: TooltipManager.getPositioningFunctions( position )\n\t\t} );\n\n\t\tthis._resizeObserver = new ResizeObserver( targetDomElement, () => {\n\t\t\t// The ResizeObserver will call its callback when the target element hides and the tooltip\n\t\t\t// should also disappear (https://github.com/ckeditor/ckeditor5/issues/12492).\n\t\t\tif ( !isVisible( targetDomElement ) ) {\n\t\t\t\tthis._unpinTooltip();\n\t\t\t}\n\t\t} );\n\n\t\tthis._mutationObserver!.attach( targetDomElement );\n\n\t\tthis.balloonPanelView.class = [ BALLOON_CLASS, cssClass ]\n\t\t\t.filter( className => className )\n\t\t\t.join( ' ' );\n\n\t\t// Start responding to changes in editor UI or content layout. For instance, when collaborators change content\n\t\t// and a contextual toolbar attached to a content starts to move (and so should move the tooltip).\n\t\t// Note: Using low priority to let other listeners that position contextual toolbars etc. to react first.\n\t\tfor ( const editor of TooltipManager._editors ) {\n\t\t\tthis.listenTo( editor.ui, 'update', this._updateTooltipPosition.bind( this ), { priority: 'low' } );\n\t\t}\n\n\t\tthis._currentElementWithTooltip = targetDomElement;\n\t\tthis._currentTooltipPosition = position;\n\t}\n\n\t/**\n\t * Unpins the tooltip and cancels all queued pinning.\n\t */\n\tprivate _unpinTooltip() {\n\t\tthis._unpinTooltipDebounced.cancel();\n\t\tthis._pinTooltipDebounced.cancel();\n\n\t\tthis.balloonPanelView.unpin();\n\n\t\tfor ( const editor of TooltipManager._editors ) {\n\t\t\tthis.stopListening( editor.ui, 'update' );\n\t\t}\n\n\t\tthis._currentElementWithTooltip = null;\n\t\tthis._currentTooltipPosition = null;\n\t\tthis.tooltipTextView.text = '';\n\n\t\tif ( this._resizeObserver ) {\n\t\t\tthis._resizeObserver.destroy();\n\t\t}\n\n\t\tthis._mutationObserver!.detach();\n\t}\n\n\t/**\n\t * Updates the position of the tooltip so it stays in sync with the element it is pinned to.\n\t *\n\t * Hides the tooltip when the element is no longer visible in DOM or the tooltip text was removed.\n\t */\n\tprivate _updateTooltipPosition() {\n\t\tconst tooltipData = getTooltipData( this._currentElementWithTooltip! );\n\n\t\t// This could happen if the tooltip was attached somewhere in a contextual content toolbar and the toolbar\n\t\t// disappeared (e.g. removed an image), or the tooltip text was removed.\n\t\tif ( !isVisible( this._currentElementWithTooltip ) || !tooltipData.text ) {\n\t\t\tthis._unpinTooltip();\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.balloonPanelView.pin( {\n\t\t\ttarget: this._currentElementWithTooltip!,\n\t\t\tpositions: TooltipManager.getPositioningFunctions( tooltipData.position )\n\t\t} );\n\t}\n}\n\nexport type TooltipPosition = 's' | 'n' | 'e' | 'w' | 'sw' | 'se';\n\nfunction getDescendantWithTooltip( element: HTMLElement ) {\n\tif ( !isElement( element ) ) {\n\t\treturn null;\n\t}\n\n\treturn element.closest( '[data-cke-tooltip-text]:not([data-cke-tooltip-disabled])' ) as HTMLElement;\n}\n\ninterface TooltipData {\n\ttext: string;\n\tposition: TooltipPosition;\n\tcssClass: string;\n}\n\nfunction getTooltipData( element: HTMLElement ): TooltipData {\n\treturn {\n\t\ttext: element.dataset.ckeTooltipText!,\n\t\tposition: ( element.dataset.ckeTooltipPosition || 's' ) as TooltipPosition,\n\t\tcssClass: element.dataset.ckeTooltipClass || ''\n\t};\n}\n\n// Creates a simple `MutationObserver` instance wrapper that observes changes in the tooltip-related attributes of the given element.\n// Used instead of the `MutationObserver` from the engine for simplicity.\nfunction createMutationObserver( callback: ( ...args: Array ) => unknown ): MutationObserverWrapper {\n\tconst mutationObserver = new MutationObserver( () => {\n\t\tcallback();\n\t} );\n\n\treturn {\n\t\tattach( element ) {\n\t\t\tmutationObserver.observe( element, {\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: [ 'data-cke-tooltip-text', 'data-cke-tooltip-position' ]\n\t\t\t} );\n\t\t},\n\n\t\tdetach() {\n\t\t\tmutationObserver.disconnect();\n\t\t}\n\t};\n}\n\ninterface MutationObserverWrapper {\n\tattach: ( element: Node ) => void;\n\tdetach: () => void;\n}\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/editorui/poweredby\n */\n\nimport type { Editor, UiConfig } from '@ckeditor/ckeditor5-core';\nimport {\n\tDomEmitterMixin,\n\tRect,\n\tverifyLicense,\n\ttype PositionOptions,\n\ttype Locale\n} from '@ckeditor/ckeditor5-utils';\nimport BalloonPanelView from '../panel/balloon/balloonpanelview.js';\nimport IconView from '../icon/iconview.js';\nimport View from '../view.js';\nimport { throttle, type DebouncedFunc } from 'lodash-es';\n\nimport poweredByIcon from '../../theme/icons/project-logo.svg';\n\nconst ICON_WIDTH = 53;\nconst ICON_HEIGHT = 10;\n// ⚠ Note, whenever changing the threshold, make sure to update the docs/support/managing-ckeditor-logo.md docs\n// as this information is also mentioned there ⚠.\nconst NARROW_ROOT_HEIGHT_THRESHOLD = 50;\nconst NARROW_ROOT_WIDTH_THRESHOLD = 350;\nconst DEFAULT_LABEL = 'Powered by';\n\ntype PoweredByConfig = Required[ 'poweredBy' ];\n\n/**\n * A helper that enables the \"powered by\" feature in the editor and renders a link to the project's\n * webpage next to the bottom of the editable element (editor root, source editing area, etc.) when the editor is focused.\n *\n * @private\n */\nexport default class PoweredBy extends /* #__PURE__ */ DomEmitterMixin() {\n\t/**\n\t * Editor instance the helper was created for.\n\t */\n\tprivate readonly editor: Editor;\n\n\t/**\n\t * A reference to the balloon panel hosting and positioning the \"powered by\" link and logo.\n\t */\n\tprivate _balloonView: BalloonPanelView | null;\n\n\t/**\n\t * A throttled version of the {@link #_showBalloon} method meant for frequent use to avoid performance loss.\n\t */\n\tprivate _showBalloonThrottled: DebouncedFunc<() => void>;\n\n\t/**\n\t * A reference to the last editable element (root, source editing area, etc.) focused by the user.\n\t * Since the focus can move to other focusable elements in the UI, this reference allows positioning the balloon over the\n\t * right element whether the user is typing or using the UI.\n\t */\n\tprivate _lastFocusedEditableElement: HTMLElement | null;\n\n\t/**\n\t * Creates a \"powered by\" helper for a given editor. The feature is initialized on Editor#ready\n\t * event.\n\t *\n\t * @param editor\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper();\n\n\t\tthis.editor = editor;\n\t\tthis._balloonView = null;\n\t\tthis._lastFocusedEditableElement = null;\n\t\tthis._showBalloonThrottled = throttle( this._showBalloon.bind( this ), 50, { leading: true } );\n\n\t\teditor.on( 'ready', this._handleEditorReady.bind( this ) );\n\t}\n\n\t/**\n\t * Destroys the \"powered by\" helper along with its view.\n\t */\n\tpublic destroy(): void {\n\t\tconst balloon = this._balloonView;\n\n\t\tif ( balloon ) {\n\t\t\t// Balloon gets destroyed by the body collection.\n\t\t\t// The powered by view gets destroyed by the balloon.\n\t\t\tballoon.unpin();\n\t\t\tthis._balloonView = null;\n\t\t}\n\n\t\tthis._showBalloonThrottled.cancel();\n\t\tthis.stopListening();\n\t}\n\n\t/**\n\t * Enables \"powered by\" label once the editor (ui) is ready.\n\t */\n\tprivate _handleEditorReady(): void {\n\t\tconst editor = this.editor;\n\t\tconst forceVisible = !!editor.config.get( 'ui.poweredBy.forceVisible' );\n\n\t\t/* istanbul ignore next -- @preserve */\n\t\tif ( !forceVisible && verifyLicense( editor.config.get( 'licenseKey' ) ) === 'VALID' ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// No view means no body collection to append the powered by balloon to.\n\t\tif ( !editor.ui.view ) {\n\t\t\treturn;\n\t\t}\n\n\t\teditor.ui.focusTracker.on( 'change:isFocused', ( evt, data, isFocused ) => {\n\t\t\tthis._updateLastFocusedEditableElement();\n\n\t\t\tif ( isFocused ) {\n\t\t\t\tthis._showBalloon();\n\t\t\t} else {\n\t\t\t\tthis._hideBalloon();\n\t\t\t}\n\t\t} );\n\n\t\teditor.ui.focusTracker.on( 'change:focusedElement', ( evt, data, focusedElement ) => {\n\t\t\tthis._updateLastFocusedEditableElement();\n\n\t\t\tif ( focusedElement ) {\n\t\t\t\tthis._showBalloon();\n\t\t\t}\n\t\t} );\n\n\t\teditor.ui.on( 'update', () => {\n\t\t\tthis._showBalloonThrottled();\n\t\t} );\n\t}\n\n\t/**\n\t * Creates an instance of the {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView balloon panel}\n\t * with the \"powered by\" view inside ready for positioning.\n\t */\n\tprivate _createBalloonView(): void {\n\t\tconst editor = this.editor;\n\t\tconst balloon = this._balloonView = new BalloonPanelView();\n\t\tconst poweredByConfig = getNormalizedConfig( editor );\n\t\tconst view = new PoweredByView( editor.locale, poweredByConfig.label );\n\n\t\tballoon.content.add( view );\n\t\tballoon.set( {\n\t\t\tclass: 'ck-powered-by-balloon'\n\t\t} );\n\n\t\teditor.ui.view.body.add( balloon );\n\t\teditor.ui.focusTracker.add( balloon.element! );\n\n\t\tthis._balloonView = balloon;\n\t}\n\n\t/**\n\t * Attempts to display the balloon with the \"powered by\" view.\n\t */\n\tprivate _showBalloon(): void {\n\t\tif ( !this._lastFocusedEditableElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst attachOptions = getBalloonAttachOptions( this.editor, this._lastFocusedEditableElement );\n\n\t\tif ( attachOptions ) {\n\t\t\tif ( !this._balloonView ) {\n\t\t\t\tthis._createBalloonView();\n\t\t\t}\n\n\t\t\tthis._balloonView!.pin( attachOptions );\n\t\t}\n\t}\n\n\t/**\n\t * Hides the \"powered by\" balloon if already visible.\n\t */\n\tprivate _hideBalloon(): void {\n\t\tif ( this._balloonView ) {\n\t\t\tthis._balloonView!.unpin();\n\t\t}\n\t}\n\n\t/**\n\t * Updates the {@link #_lastFocusedEditableElement} based on the state of the global focus tracker.\n\t */\n\tprivate _updateLastFocusedEditableElement(): void {\n\t\tconst editor = this.editor;\n\t\tconst isFocused = editor.ui.focusTracker.isFocused;\n\t\tconst focusedElement = editor.ui.focusTracker.focusedElement! as HTMLElement;\n\n\t\tif ( !isFocused || !focusedElement ) {\n\t\t\tthis._lastFocusedEditableElement = null;\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst editableEditorElements = Array.from( editor.ui.getEditableElementsNames() ).map( name => {\n\t\t\treturn editor.ui.getEditableElement( name );\n\t\t} );\n\n\t\tif ( editableEditorElements.includes( focusedElement ) ) {\n\t\t\tthis._lastFocusedEditableElement = focusedElement;\n\t\t} else {\n\t\t\t// If it's none of the editable element, then the focus is somewhere in the UI. Let's display powered by\n\t\t\t// over the first element then.\n\t\t\tthis._lastFocusedEditableElement = editableEditorElements[ 0 ]!;\n\t\t}\n\t}\n}\n\n/**\n * A view displaying a \"powered by\" label and project logo wrapped in a link.\n */\nclass PoweredByView extends View {\n\t/**\n\t * Created an instance of the \"powered by\" view.\n\t *\n\t * @param locale The localization services instance.\n\t * @param label The label text.\n\t */\n\tconstructor( locale: Locale, label: string | null ) {\n\t\tsuper( locale );\n\n\t\tconst iconView = new IconView();\n\t\tconst bind = this.bindTemplate;\n\n\t\ticonView.set( {\n\t\t\tcontent: poweredByIcon,\n\t\t\tisColorInherited: false\n\t\t} );\n\n\t\ticonView.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tstyle: {\n\t\t\t\t\twidth: ICON_WIDTH + 'px',\n\t\t\t\t\theight: ICON_HEIGHT + 'px'\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [ 'ck', 'ck-powered-by' ],\n\t\t\t\t'aria-hidden': true\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'a',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\thref: 'https://ckeditor.com/?utm_source=ckeditor&' +\n\t\t\t\t\t\t\t'utm_medium=referral&utm_campaign=701Dn000000hVgmIAE_powered_by_ckeditor_logo',\n\t\t\t\t\t\ttarget: '_blank',\n\t\t\t\t\t\ttabindex: '-1'\n\t\t\t\t\t},\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\t...label ? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttag: 'span',\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\tclass: [ 'ck', 'ck-powered-by__label' ]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tchildren: [ label ]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t] : [],\n\t\t\t\t\t\ticonView\n\t\t\t\t\t],\n\t\t\t\t\ton: {\n\t\t\t\t\t\tdragstart: bind.to( evt => evt.preventDefault() )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\t}\n}\n\nfunction getBalloonAttachOptions( editor: Editor, focusedEditableElement: HTMLElement ): Partial | null {\n\tconst poweredByConfig = getNormalizedConfig( editor )!;\n\tconst positioningFunction = poweredByConfig.side === 'right' ?\n\t\tgetLowerRightCornerPosition( focusedEditableElement, poweredByConfig ) :\n\t\tgetLowerLeftCornerPosition( focusedEditableElement, poweredByConfig );\n\n\treturn {\n\t\ttarget: focusedEditableElement,\n\t\tpositions: [ positioningFunction ]\n\t};\n}\n\nfunction getLowerRightCornerPosition( focusedEditableElement: HTMLElement, config: PoweredByConfig ) {\n\treturn getLowerCornerPosition( focusedEditableElement, config, ( rootRect, balloonRect ) => {\n\t\treturn rootRect.left + rootRect.width - balloonRect.width - config.horizontalOffset;\n\t} );\n}\n\nfunction getLowerLeftCornerPosition( focusedEditableElement: HTMLElement, config: PoweredByConfig ) {\n\treturn getLowerCornerPosition( focusedEditableElement, config, rootRect => rootRect.left + config.horizontalOffset );\n}\n\nfunction getLowerCornerPosition(\n\tfocusedEditableElement: HTMLElement,\n\tconfig: PoweredByConfig,\n\tgetBalloonLeft: ( visibleEditableElementRect: Rect, balloonRect: Rect ) => number\n) {\n\treturn ( visibleEditableElementRect: Rect, balloonRect: Rect ) => {\n\t\tconst editableElementRect = new Rect( focusedEditableElement );\n\n\t\tif ( editableElementRect.width < NARROW_ROOT_WIDTH_THRESHOLD || editableElementRect.height < NARROW_ROOT_HEIGHT_THRESHOLD ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet balloonTop;\n\n\t\tif ( config.position === 'inside' ) {\n\t\t\tballoonTop = editableElementRect.bottom - balloonRect.height;\n\t\t}\n\t\telse {\n\t\t\tballoonTop = editableElementRect.bottom - balloonRect.height / 2;\n\t\t}\n\n\t\tballoonTop -= config.verticalOffset;\n\n\t\tconst balloonLeft = getBalloonLeft( editableElementRect, balloonRect );\n\n\t\t// Clone the editable element rect and place it where the balloon would be placed.\n\t\t// This will allow getVisible() to work from editable element's perspective (rect source).\n\t\t// and yield a result as if the balloon was on the same (scrollable) layer as the editable element.\n\t\tconst newBalloonPositionRect = visibleEditableElementRect\n\t\t\t.clone()\n\t\t\t.moveTo( balloonLeft, balloonTop )\n\t\t\t.getIntersection( balloonRect.clone().moveTo( balloonLeft, balloonTop ) )!;\n\n\t\tconst newBalloonPositionVisibleRect = newBalloonPositionRect.getVisible();\n\n\t\tif ( !newBalloonPositionVisibleRect || newBalloonPositionVisibleRect.getArea() < balloonRect.getArea() ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn {\n\t\t\ttop: balloonTop,\n\t\t\tleft: balloonLeft,\n\t\t\tname: `position_${ config.position }-side_${ config.side }`,\n\t\t\tconfig: {\n\t\t\t\twithArrow: false\n\t\t\t}\n\t\t};\n\t};\n}\n\nfunction getNormalizedConfig( editor: Editor ): PoweredByConfig {\n\tconst userConfig = editor.config.get( 'ui.poweredBy' );\n\tconst position = userConfig && userConfig.position || 'border';\n\n\treturn {\n\t\tposition,\n\t\tlabel: DEFAULT_LABEL,\n\t\tverticalOffset: position === 'inside' ? 5 : 0,\n\t\thorizontalOffset: 5,\n\n\t\tside: editor.locale.contentLanguageDirection === 'ltr' ? 'right' : 'left',\n\t\t...userConfig\n\t};\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module utils/verifylicense\n */\n\nimport { releaseDate } from './version.js';\n\n/**\n * Possible states of the key after verification.\n */\nexport type VerifiedKeyStatus = 'VALID' | 'INVALID';\n\n/**\n * Checks whether the given string contains information that allows you to verify the license status.\n *\n * @param token The string to check.\n * @returns String that represents the state of given `token` parameter.\n */\nexport default function verifyLicense( token: string | undefined ): VerifiedKeyStatus {\n\t// This function implements naive and partial license key check mechanism,\n\t// used only to decide whether to show or hide the \"Powered by CKEditor\" logo.\n\t//\n\t// You can read the reasoning behind showing the logo to unlicensed (GPL) users\n\t// in this thread: https://github.com/ckeditor/ckeditor5/issues/14082.\n\t//\n\t// We firmly believe in the values behind creating open-source software, even when that\n\t// means keeping the license verification logic open for everyone to see.\n\t//\n\t// Please keep this code intact. Thank you for your understanding.\n\n\tfunction oldTokenCheck( token: string ): VerifiedKeyStatus {\n\t\tif ( token.length >= 40 && token.length <= 255 ) {\n\t\t\treturn 'VALID';\n\t\t} else {\n\t\t\treturn 'INVALID';\n\t\t}\n\t}\n\n\t// TODO: issue ci#3175\n\n\tif ( !token ) {\n\t\treturn 'INVALID';\n\t}\n\n\tlet decryptedData = '';\n\n\ttry {\n\t\tdecryptedData = atob( token );\n\t} catch ( e ) {\n\t\treturn 'INVALID';\n\t}\n\n\tconst splittedDecryptedData = decryptedData.split( '-' );\n\n\tconst firstElement = splittedDecryptedData[ 0 ];\n\tconst secondElement = splittedDecryptedData[ 1 ];\n\n\tif ( !secondElement ) {\n\t\treturn oldTokenCheck( token );\n\t}\n\n\ttry {\n\t\tatob( secondElement );\n\t} catch ( e ) {\n\t\ttry {\n\t\t\tatob( firstElement );\n\n\t\t\tif ( !atob( firstElement ).length ) {\n\t\t\t\treturn oldTokenCheck( token );\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\treturn oldTokenCheck( token );\n\t\t}\n\t}\n\n\tif ( firstElement.length < 40 || firstElement.length > 255 ) {\n\t\treturn 'INVALID';\n\t}\n\n\tlet decryptedSecondElement = '';\n\n\ttry {\n\t\tatob( firstElement );\n\t\tdecryptedSecondElement = atob( secondElement );\n\t} catch ( e ) {\n\t\treturn 'INVALID';\n\t}\n\n\tif ( decryptedSecondElement.length !== 8 ) {\n\t\treturn 'INVALID';\n\t}\n\n\tconst year = Number( decryptedSecondElement.substring( 0, 4 ) );\n\tconst monthIndex = Number( decryptedSecondElement.substring( 4, 6 ) ) - 1;\n\tconst day = Number( decryptedSecondElement.substring( 6, 8 ) );\n\n\tconst date = new Date( year, monthIndex, day );\n\n\tif ( date < releaseDate || isNaN( Number( date ) ) ) {\n\t\treturn 'INVALID';\n\t}\n\n\treturn 'VALID';\n}\n","export default \"\\n\";","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./arialiveannouncer.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/arialiveannouncer\n */\n\nimport type { DomConverter } from '@ckeditor/ckeditor5-engine';\nimport type { Editor } from '@ckeditor/ckeditor5-core';\nimport type { Locale } from '@ckeditor/ckeditor5-utils';\nimport type ViewCollection from './viewcollection.js';\nimport View from './view.js';\n\nimport '../theme/components/arialiveannouncer/arialiveannouncer.css';\n\n/**\n * The politeness level of an `aria-live` announcement.\n *\n * Available keys are:\n * * `AriaLiveAnnouncerPoliteness.POLITE`,\n * * `AriaLiveAnnouncerPoliteness.ASSERTIVE`\n *\n * [Learn more](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions#Politeness_levels).\n */\nexport const AriaLiveAnnouncerPoliteness = {\n\tPOLITE: 'polite',\n\tASSERTIVE: 'assertive'\n} as const;\n\n/**\n * An accessibility helper that manages all ARIA live regions associated with an editor instance. ARIA live regions announce changes\n * to the state of the editor features.\n *\n * These announcements are consumed and propagated by screen readers and give users a better understanding of the current\n * state of the editor.\n *\n * To announce a state change to an editor use the {@link #announce} method:\n *\n * ```ts\n * editor.ui.ariaLiveAnnouncer.announce( 'Text of an announcement.' );\n * ```\n */\nexport default class AriaLiveAnnouncer {\n\t/**\n\t * The editor instance.\n\t */\n\tpublic readonly editor: Editor;\n\n\t/**\n\t * The view that aggregates all `aria-live` regions.\n\t */\n\tpublic view?: AriaLiveAnnouncerView;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tthis.editor = editor;\n\n\t\t/**\n\t\t * Some screen readers only look at changes in the aria-live region.\n\t\t * They might not read a region that already has content when it is added.\n\t\t * To stop this problem, make sure to set up regions for all politeness settings when the editor starts.\n\t\t */\n\t\teditor.once( 'ready', () => {\n\t\t\tfor ( const politeness of Object.values( AriaLiveAnnouncerPoliteness ) ) {\n\t\t\t\tthis.announce( '', politeness );\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Sets an announcement text to an aria region that is then announced by a screen reader to the user.\n\t *\n\t * If the aria region of a specified politeness does not exist, it will be created and can be re-used later.\n\t *\n\t * The default announcement politeness level is `'polite'`.\n\t *\n\t * ```ts\n\t * // Most screen readers will queue announcements from multiple aria-live regions and read them out in the order they were emitted.\n \t * editor.ui.ariaLiveAnnouncer.announce( 'Image uploaded.' );\n \t * editor.ui.ariaLiveAnnouncer.announce( 'Connection lost. Reconnecting.' );\n \t * ```\n\t */\n\tpublic announce(\n\t\tannouncement: string,\n\t\tattributes: AriaLiveAnnouncerPolitenessValue | AriaLiveAnnounceConfig = AriaLiveAnnouncerPoliteness.POLITE\n\t): void {\n\t\tconst editor = this.editor;\n\n\t\tif ( !editor.ui.view ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !this.view ) {\n\t\t\tthis.view = new AriaLiveAnnouncerView( editor.locale );\n\t\t\teditor.ui.view.body.add( this.view );\n\t\t}\n\n\t\tconst { politeness, isUnsafeHTML }: AriaLiveAnnounceConfig = typeof attributes === 'string' ? {\n\t\t\tpoliteness: attributes\n\t\t} : attributes;\n\n\t\tlet politenessRegionView = this.view.regionViews.find( view => view.politeness === politeness );\n\n\t\tif ( !politenessRegionView ) {\n\t\t\tpolitenessRegionView = new AriaLiveAnnouncerRegionView( editor, politeness );\n\t\t\tthis.view.regionViews.add( politenessRegionView );\n\t\t}\n\n\t\tpolitenessRegionView.announce( {\n\t\t\tannouncement,\n\t\t\tisUnsafeHTML\n\t\t} );\n\t}\n}\n\n/**\n * The view that aggregates all `aria-live` regions.\n */\nexport class AriaLiveAnnouncerView extends View {\n\t/**\n\t * A collection of all views that represent individual `aria-live` regions.\n\t */\n\tpublic readonly regionViews: ViewCollection;\n\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.regionViews = this.createCollection();\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-aria-live-announcer'\n\t\t\t\t]\n\t\t\t},\n\t\t\tchildren: this.regionViews\n\t\t} );\n\t}\n}\n\n/**\n * The view that represents a single `aria-live`.\n */\nexport class AriaLiveAnnouncerRegionView extends View {\n\t/**\n\t * Current politeness level of the region.\n\t */\n\tpublic readonly politeness: AriaLiveAnnouncerPolitenessValue;\n\n\t/**\n\t * DOM converter used to sanitize unsafe HTML passed to {@link #announce} method.\n\t */\n\tprivate _domConverter: DomConverter;\n\n\t/**\n\t * Interval used to remove additions. It prevents accumulation of added nodes in region.\n\t */\n\tprivate _pruneAnnouncementsInterval: ReturnType | null;\n\n\tconstructor( editor: Editor, politeness: AriaLiveAnnouncerPolitenessValue ) {\n\t\tsuper( editor.locale );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\trole: 'region',\n\t\t\t\t'aria-live': politeness,\n\t\t\t\t'aria-relevant': 'additions'\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'ul',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tclass: [\n\t\t\t\t\t\t\t'ck',\n\t\t\t\t\t\t\t'ck-aria-live-region-list'\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\n\t\teditor.on( 'destroy', () => {\n\t\t\tif ( this._pruneAnnouncementsInterval !== null ) {\n\t\t\t\tclearInterval( this._pruneAnnouncementsInterval! );\n\t\t\t\tthis._pruneAnnouncementsInterval = null;\n\t\t\t}\n\t\t} );\n\n\t\tthis.politeness = politeness;\n\t\tthis._domConverter = editor.data.htmlProcessor.domConverter;\n\t\tthis._pruneAnnouncementsInterval = setInterval( () => {\n\t\t\tif ( this.element && this._listElement!.firstChild ) {\n\t\t\t\tthis._listElement!.firstChild!.remove();\n\t\t\t}\n\t\t}, 5000 );\n\t}\n\n\t/**\n\t * Appends new announcement to region.\n\t */\n\tpublic announce( { announcement, isUnsafeHTML }: AriaLiveAppendContentAttributes ): void {\n\t\tif ( !announcement.trim().length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst messageListItem = document.createElement( 'li' );\n\n\t\tif ( isUnsafeHTML ) {\n\t\t\tthis._domConverter.setContentOf( messageListItem, announcement );\n\t\t} else {\n\t\t\tmessageListItem.innerText = announcement;\n\t\t}\n\n\t\tthis._listElement!.appendChild( messageListItem );\n\t}\n\n\t/**\n\t * Return current announcements list HTML element.\n\t */\n\tprivate get _listElement(): HTMLElement | null {\n\t\treturn this.element!.querySelector( 'ul' )!;\n\t}\n}\n\ntype AriaLiveAnnouncerPolitenessValue = typeof AriaLiveAnnouncerPoliteness[ keyof typeof AriaLiveAnnouncerPoliteness ];\n\ntype AriaLiveAppendContentAttributes = {\n\tannouncement: string;\n\tisUnsafeHTML?: boolean;\n};\n\ntype AriaLiveAnnounceConfig = {\n\tpoliteness: AriaLiveAnnouncerPolitenessValue;\n\tisUnsafeHTML?: boolean;\n};\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/editorui/editorui\n */\n\n/* globals console */\n\nimport ComponentFactory from '../componentfactory.js';\nimport TooltipManager from '../tooltipmanager.js';\nimport PoweredBy from './poweredby.js';\nimport AriaLiveAnnouncer from '../arialiveannouncer.js';\n\nimport type EditorUIView from './editoruiview.js';\nimport type ToolbarView from '../toolbar/toolbarview.js';\nimport type { UIViewRenderEvent } from '../view.js';\n\nimport {\n\tObservableMixin,\n\tisVisible,\n\tFocusTracker,\n\ttype EventInfo\n} from '@ckeditor/ckeditor5-utils';\n\nimport type { Editor } from '@ckeditor/ckeditor5-core';\nimport type { ViewDocumentLayoutChangedEvent, ViewScrollToTheSelectionEvent } from '@ckeditor/ckeditor5-engine';\n\n/**\n * A class providing the minimal interface that is required to successfully bootstrap any editor UI.\n */\nexport default abstract class EditorUI extends /* #__PURE__ */ ObservableMixin() {\n\t/**\n\t * The editor that the UI belongs to.\n\t */\n\tpublic readonly editor: Editor;\n\n\t/**\n\t * An instance of the {@link module:ui/componentfactory~ComponentFactory}, a registry used by plugins\n\t * to register factories of specific UI components.\n\t */\n\tpublic readonly componentFactory: ComponentFactory;\n\n\t/**\n\t * Stores the information about the editor UI focus and propagates it so various plugins and components\n\t * are unified as a focus group.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * Manages the tooltips displayed on mouseover and focus across the UI.\n\t */\n\tpublic readonly tooltipManager: TooltipManager;\n\n\t/**\n\t * A helper that enables the \"powered by\" feature in the editor and renders a link to the project's webpage.\n\t */\n\tpublic readonly poweredBy: PoweredBy;\n\n\t/**\n\t * A helper that manages the content of an `aria-live` regions used by editor features to announce status changes\n\t * to screen readers.\n\t */\n\tpublic readonly ariaLiveAnnouncer: AriaLiveAnnouncer;\n\n\t/**\n\t * Indicates the UI is ready. Set `true` after {@link #event:ready} event is fired.\n\t *\n\t * @readonly\n\t * @default false\n\t */\n\tpublic isReady: boolean = false;\n\n\tpublic abstract get view(): EditorUIView;\n\n\t/**\n\t * Stores viewport offsets from every direction.\n\t *\n\t * Viewport offset can be used to constrain balloons or other UI elements into an element smaller than the viewport.\n\t * This can be useful if there are any other absolutely positioned elements that may interfere with editor UI.\n\t *\n\t * Example `editor.ui.viewportOffset` returns:\n\t *\n\t * ```js\n\t * {\n\t * \ttop: 50,\n\t * \tright: 50,\n\t * \tbottom: 50,\n\t * \tleft: 50\n\t * }\n\t * ```\n\t *\n\t * This property can be overriden after editor already being initialized:\n\t *\n\t * ```js\n\t * editor.ui.viewportOffset = {\n\t * \ttop: 100,\n\t * \tright: 0,\n\t * \tbottom: 0,\n\t * \tleft: 0\n\t * };\n\t * ```\n\t *\n\t * @observable\n\t */\n\tpublic declare viewportOffset: {\n\t\tleft?: number;\n\t\tright?: number;\n\t\ttop?: number;\n\t\tbottom?: number;\n\t};\n\n\t/**\n\t * Stores all editable elements used by the editor instance.\n\t */\n\tprivate _editableElementsMap = new Map();\n\n\t/**\n\t * All available & focusable toolbars.\n\t */\n\tprivate _focusableToolbarDefinitions: Array = [];\n\n\t/**\n\t * Creates an instance of the editor UI class.\n\t *\n\t * @param editor The editor instance.\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper();\n\n\t\tconst editingView = editor.editing.view;\n\n\t\tthis.editor = editor;\n\t\tthis.componentFactory = new ComponentFactory( editor );\n\t\tthis.focusTracker = new FocusTracker();\n\t\tthis.tooltipManager = new TooltipManager( editor );\n\t\tthis.poweredBy = new PoweredBy( editor );\n\t\tthis.ariaLiveAnnouncer = new AriaLiveAnnouncer( editor );\n\n\t\tthis.set( 'viewportOffset', this._readViewportOffsetFromConfig() );\n\n\t\tthis.once( 'ready', () => {\n\t\t\tthis.isReady = true;\n\t\t} );\n\n\t\t// Informs UI components that should be refreshed after layout change.\n\t\tthis.listenTo( editingView.document, 'layoutChanged', this.update.bind( this ) );\n\t\tthis.listenTo( editingView, 'scrollToTheSelection', this._handleScrollToTheSelection.bind( this ) );\n\n\t\tthis._initFocusTracking();\n\t}\n\n\t/**\n\t * The main (outermost) DOM element of the editor UI.\n\t *\n\t * For example, in {@link module:editor-classic/classiceditor~ClassicEditor} it is a `
` which\n\t * wraps the editable element and the toolbar. In {@link module:editor-inline/inlineeditor~InlineEditor}\n\t * it is the editable element itself (as there is no other wrapper). However, in\n\t * {@link module:editor-decoupled/decouplededitor~DecoupledEditor} it is set to `null` because this editor does not\n\t * come with a single \"main\" HTML element (its editable element and toolbar are separate).\n\t *\n\t * This property can be understood as a shorthand for retrieving the element that a specific editor integration\n\t * considers to be its main DOM element.\n\t */\n\tpublic get element(): HTMLElement | null {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Fires the {@link module:ui/editorui/editorui~EditorUI#event:update `update`} event.\n\t *\n\t * This method should be called when the editor UI (e.g. positions of its balloons) needs to be updated due to\n\t * some environmental change which CKEditor 5 is not aware of (e.g. resize of a container in which it is used).\n\t */\n\tpublic update(): void {\n\t\tthis.fire( 'update' );\n\t}\n\n\t/**\n\t * Destroys the UI.\n\t */\n\tpublic destroy(): void {\n\t\tthis.stopListening();\n\n\t\tthis.focusTracker.destroy();\n\t\tthis.tooltipManager.destroy( this.editor );\n\t\tthis.poweredBy.destroy();\n\n\t\t// Clean–up the references to the CKEditor instance stored in the native editable DOM elements.\n\t\tfor ( const domElement of this._editableElementsMap.values() ) {\n\t\t\t( domElement as any ).ckeditorInstance = null;\n\t\t\tthis.editor.keystrokes.stopListening( domElement );\n\t\t}\n\n\t\tthis._editableElementsMap = new Map();\n\t\tthis._focusableToolbarDefinitions = [];\n\t}\n\n\t/**\n\t * Stores the native DOM editable element used by the editor under a unique name.\n\t *\n\t * Also, registers the element in the editor to maintain the accessibility of the UI. When the user is editing text in a focusable\n\t * editable area, they can use the Alt + F10 keystroke to navigate over editor toolbars. See {@link #addToolbar}.\n\t *\n\t * @param rootName The unique name of the editable element.\n\t * @param domElement The native DOM editable element.\n\t */\n\tpublic setEditableElement( rootName: string, domElement: HTMLElement ): void {\n\t\tthis._editableElementsMap.set( rootName, domElement );\n\n\t\t// Put a reference to the CKEditor instance in the editable native DOM element.\n\t\t// It helps 3rd–party software (browser extensions, other libraries) access and recognize\n\t\t// CKEditor 5 instances (editing roots) and use their API (there is no global editor\n\t\t// instance registry).\n\t\tif ( !( domElement as any ).ckeditorInstance ) {\n\t\t\t( domElement as any ).ckeditorInstance = this.editor;\n\t\t}\n\n\t\t// Register the element, so it becomes available for Alt+F10 and Esc navigation.\n\t\tthis.focusTracker.add( domElement );\n\n\t\tconst setUpKeystrokeHandler = () => {\n\t\t\t// The editing view of the editor is already listening to keystrokes from DOM roots (see: KeyObserver).\n\t\t\t// Do not duplicate listeners.\n\t\t\tif ( this.editor.editing.view.getDomRoot( rootName ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.editor.keystrokes.listenTo( domElement );\n\t\t};\n\n\t\t// For editable elements set by features after EditorUI is ready (e.g. source editing).\n\t\tif ( this.isReady ) {\n\t\t\tsetUpKeystrokeHandler();\n\t\t}\n\t\t// For editable elements set while the editor is being created (e.g. DOM roots).\n\t\telse {\n\t\t\tthis.once( 'ready', setUpKeystrokeHandler );\n\t\t}\n\t}\n\n\t/**\n\t * Removes the editable from the editor UI. Removes all handlers added by {@link #setEditableElement}.\n\t *\n\t * @param rootName The name of the editable element to remove.\n\t */\n\tpublic removeEditableElement( rootName: string ): void {\n\t\tconst domElement = this._editableElementsMap.get( rootName );\n\n\t\tif ( !domElement ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._editableElementsMap.delete( rootName );\n\n\t\tthis.editor.keystrokes.stopListening( domElement );\n\t\tthis.focusTracker.remove( domElement );\n\n\t\t( domElement as any ).ckeditorInstance = null;\n\t}\n\n\t/**\n\t * Returns the editable editor element with the given name or null if editable does not exist.\n\t *\n\t * @param rootName The editable name.\n\t */\n\tpublic getEditableElement( rootName: string = 'main' ): HTMLElement | undefined {\n\t\treturn this._editableElementsMap.get( rootName );\n\t}\n\n\t/**\n\t * Returns array of names of all editor editable elements.\n\t */\n\tpublic getEditableElementsNames(): IterableIterator {\n\t\treturn this._editableElementsMap.keys();\n\t}\n\n\t/**\n\t * Adds a toolbar to the editor UI. Used primarily to maintain the accessibility of the UI.\n\t *\n\t * Focusable toolbars can be accessed (focused) by users by pressing the Alt + F10 keystroke.\n\t * Successive keystroke presses navigate over available toolbars.\n\t *\n\t * @param toolbarView A instance of the toolbar to be registered.\n\t */\n\tpublic addToolbar( toolbarView: ToolbarView, options: FocusableToolbarOptions = {} ): void {\n\t\tif ( toolbarView.isRendered ) {\n\t\t\tthis.focusTracker.add( toolbarView.element! );\n\t\t\tthis.editor.keystrokes.listenTo( toolbarView.element! );\n\t\t} else {\n\t\t\ttoolbarView.once( 'render', () => {\n\t\t\t\tthis.focusTracker.add( toolbarView.element! );\n\t\t\t\tthis.editor.keystrokes.listenTo( toolbarView.element! );\n\t\t\t} );\n\t\t}\n\n\t\tthis._focusableToolbarDefinitions.push( { toolbarView, options } );\n\t}\n\n\t/**\n\t * Stores all editable elements used by the editor instance.\n\t *\n\t * @deprecated\n\t */\n\tprotected get _editableElements(): unknown {\n\t\t/**\n\t\t * The {@link module:ui/editorui/editorui~EditorUI#_editableElements `EditorUI#_editableElements`} property has been\n\t\t * deprecated and will be removed in the near future. Please use\n\t\t * {@link module:ui/editorui/editorui~EditorUI#setEditableElement `setEditableElement()`} and\n\t\t * {@link module:ui/editorui/editorui~EditorUI#getEditableElement `getEditableElement()`} methods instead.\n\t\t *\n\t\t * @error editor-ui-deprecated-editable-elements\n\t\t * @param editorUI Editor UI instance the deprecated property belongs to.\n\t\t */\n\t\tconsole.warn(\n\t\t\t'editor-ui-deprecated-editable-elements: ' +\n\t\t\t'The EditorUI#_editableElements property has been deprecated and will be removed in the near future.',\n\t\t\t{ editorUI: this } );\n\n\t\treturn this._editableElementsMap;\n\t}\n\n\t/**\n\t * Returns viewport offsets object:\n\t *\n\t * ```js\n\t * {\n\t * \ttop: Number,\n\t * \tright: Number,\n\t * \tbottom: Number,\n\t * \tleft: Number\n\t * }\n\t * ```\n\t *\n\t * Only top property is currently supported.\n\t */\n\tprivate _readViewportOffsetFromConfig() {\n\t\tconst editor = this.editor;\n\t\tconst viewportOffsetConfig = editor.config.get( 'ui.viewportOffset' );\n\n\t\tif ( viewportOffsetConfig ) {\n\t\t\treturn viewportOffsetConfig;\n\t\t}\n\n\t\t// Not present in EditorConfig type, because it's legacy. Hence the `as` expression.\n\t\tconst legacyOffsetConfig = editor.config.get( 'toolbar.viewportTopOffset' ) as number | undefined;\n\n\t\t// Fall back to deprecated toolbar config.\n\t\tif ( legacyOffsetConfig ) {\n\t\t\t/**\n\t\t\t * The {@link module:core/editor/editorconfig~EditorConfig#toolbar `EditorConfig#toolbar.viewportTopOffset`}\n\t\t\t * property has been deprecated and will be removed in the near future. Please use\n\t\t\t * {@link module:core/editor/editorconfig~EditorConfig#ui `EditorConfig#ui.viewportOffset`} instead.\n\t\t\t *\n\t\t\t * @error editor-ui-deprecated-viewport-offset-config\n\t\t\t */\n\t\t\tconsole.warn(\n\t\t\t\t'editor-ui-deprecated-viewport-offset-config: ' +\n\t\t\t\t'The `toolbar.vieportTopOffset` configuration option is deprecated. ' +\n\t\t\t\t'It will be removed from future CKEditor versions. Use `ui.viewportOffset.top` instead.'\n\t\t\t);\n\n\t\t\treturn { top: legacyOffsetConfig };\n\t\t}\n\n\t\t// More keys to come in the future.\n\t\treturn { top: 0 };\n\t}\n\n\t/**\n\t * Starts listening for Alt + F10 and Esc keystrokes in the context of focusable\n\t * {@link #setEditableElement editable elements} and {@link #addToolbar toolbars}\n\t * to allow users navigate across the UI.\n\t */\n\tprivate _initFocusTracking(): void {\n\t\tconst editor = this.editor;\n\t\tconst editingView = editor.editing.view;\n\n\t\tlet lastFocusedForeignElement: HTMLElement | null;\n\t\tlet candidateDefinitions: Array;\n\n\t\t// Focus the next focusable toolbar on Alt + F10.\n\t\teditor.keystrokes.set( 'Alt+F10', ( data, cancel ) => {\n\t\t\tconst focusedElement = this.focusTracker.focusedElement as HTMLElement;\n\n\t\t\t// Focus moved out of a DOM element that\n\t\t\t// * is not a toolbar,\n\t\t\t// * does not belong to the editing view (e.g. source editing).\n\t\t\tif (\n\t\t\t\tArray.from( this._editableElementsMap.values() ).includes( focusedElement ) &&\n\t\t\t\t!Array.from( editingView.domRoots.values() ).includes( focusedElement )\n\t\t\t) {\n\t\t\t\tlastFocusedForeignElement = focusedElement;\n\t\t\t}\n\n\t\t\tconst currentFocusedToolbarDefinition = this._getCurrentFocusedToolbarDefinition();\n\n\t\t\t// * When focusing a toolbar for the first time, set the array of definitions for successive presses of Alt+F10.\n\t\t\t// This ensures, the navigation works always the same and no pair of toolbars takes over\n\t\t\t// (e.g. image and table toolbars when a selected image is inside a cell).\n\t\t\t// * It could be that the focus went to the toolbar by clicking a toolbar item (e.g. a dropdown). In this case,\n\t\t\t// there were no candidates so they must be obtained (#12339).\n\t\t\tif ( !currentFocusedToolbarDefinition || !candidateDefinitions ) {\n\t\t\t\tcandidateDefinitions = this._getFocusableCandidateToolbarDefinitions();\n\t\t\t}\n\n\t\t\t// In a single Alt+F10 press, check all candidates but if none were focused, don't go any further.\n\t\t\t// This prevents an infinite loop.\n\t\t\tfor ( let i = 0; i < candidateDefinitions.length; i++ ) {\n\t\t\t\tconst candidateDefinition = candidateDefinitions.shift()!;\n\n\t\t\t\t// Put the first definition to the back of the array. This allows circular navigation over all toolbars\n\t\t\t\t// on successive presses of Alt+F10.\n\t\t\t\tcandidateDefinitions.push( candidateDefinition );\n\n\t\t\t\t// Don't focus the same toolbar again. If you did, this would move focus from the nth focused toolbar item back to the\n\t\t\t\t// first item as per ToolbarView#focus() if the user navigated inside the toolbar.\n\t\t\t\tif (\n\t\t\t\t\tcandidateDefinition !== currentFocusedToolbarDefinition &&\n\t\t\t\t\tthis._focusFocusableCandidateToolbar( candidateDefinition )\n\t\t\t\t) {\n\t\t\t\t\t// Clean up after a current visible toolbar when switching to the next one.\n\t\t\t\t\tif ( currentFocusedToolbarDefinition && currentFocusedToolbarDefinition.options.afterBlur ) {\n\t\t\t\t\t\tcurrentFocusedToolbarDefinition.options.afterBlur();\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcancel();\n\t\t} );\n\n\t\t// Blur the focused toolbar on Esc and bring the focus back to its origin.\n\t\teditor.keystrokes.set( 'Esc', ( data, cancel ) => {\n\t\t\tconst focusedToolbarDef = this._getCurrentFocusedToolbarDefinition();\n\n\t\t\tif ( !focusedToolbarDef ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Bring focus back to where it came from before focusing the toolbar:\n\t\t\t// 1. If it came from outside the engine view (e.g. source editing), move it there.\n\t\t\tif ( lastFocusedForeignElement ) {\n\t\t\t\tlastFocusedForeignElement.focus();\n\t\t\t\tlastFocusedForeignElement = null;\n\t\t\t}\n\t\t\t// 2. There are two possibilities left:\n\t\t\t// 2.1. It could be that the focus went from an editable element in the view (root or nested).\n\t\t\t// 2.2. It could be the focus went straight to the toolbar before even focusing the editing area.\n\t\t\t// In either case, just focus the view editing. The focus will land where it belongs.\n\t\t\telse {\n\t\t\t\teditor.editing.view.focus();\n\t\t\t}\n\n\t\t\t// Clean up after the toolbar if there is anything to do there.\n\t\t\tif ( focusedToolbarDef.options.afterBlur ) {\n\t\t\t\tfocusedToolbarDef.options.afterBlur();\n\t\t\t}\n\n\t\t\tcancel();\n\t\t} );\n\t}\n\n\t/**\n\t * Returns definitions of toolbars that could potentially be focused, sorted by their importance for the user.\n\t *\n\t * Focusable toolbars candidates are either:\n\t * * already visible,\n\t * * have `beforeFocus()` set in their {@link module:ui/editorui/editorui~FocusableToolbarDefinition definition} that suggests that\n\t * they might show up when called. Keep in mind that determining whether a toolbar will show up (and become focusable) is impossible\n\t * at this stage because it depends on its implementation, that in turn depends on the editing context (selection).\n\t *\n\t * **Note**: Contextual toolbars take precedence over regular toolbars.\n\t */\n\tprivate _getFocusableCandidateToolbarDefinitions(): Array {\n\t\tconst definitions: Array = [];\n\n\t\tfor ( const toolbarDef of this._focusableToolbarDefinitions ) {\n\t\t\tconst { toolbarView, options } = toolbarDef;\n\n\t\t\tif ( isVisible( toolbarView.element ) || options.beforeFocus ) {\n\t\t\t\tdefinitions.push( toolbarDef );\n\t\t\t}\n\t\t}\n\n\t\t// Contextual and already visible toolbars have higher priority. If both are true, the toolbar will always focus first.\n\t\t// For instance, a selected widget toolbar vs inline editor toolbar: both are visible but the widget toolbar is contextual.\n\t\tdefinitions.sort( ( defA, defB ) => getToolbarDefinitionWeight( defA ) - getToolbarDefinitionWeight( defB ) );\n\n\t\treturn definitions;\n\t}\n\n\t/**\n\t * Returns a definition of the toolbar that is currently visible and focused (one of its children has focus).\n\t *\n\t * `null` is returned when no toolbar is currently focused.\n\t */\n\tprivate _getCurrentFocusedToolbarDefinition(): FocusableToolbarDefinition | null {\n\t\tfor ( const definition of this._focusableToolbarDefinitions ) {\n\t\t\tif ( definition.toolbarView.element && definition.toolbarView.element.contains( this.focusTracker.focusedElement ) ) {\n\t\t\t\treturn definition;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Focuses a focusable toolbar candidate using its definition.\n\t *\n\t * @param candidateToolbarDefinition A definition of the toolbar to focus.\n\t * @returns `true` when the toolbar candidate was focused. `false` otherwise.\n\t */\n\tprivate _focusFocusableCandidateToolbar( candidateToolbarDefinition: FocusableToolbarDefinition ): boolean {\n\t\tconst { toolbarView, options: { beforeFocus } } = candidateToolbarDefinition;\n\n\t\tif ( beforeFocus ) {\n\t\t\tbeforeFocus();\n\t\t}\n\n\t\t// If it didn't show up after beforeFocus(), it's not focusable at all.\n\t\tif ( !isVisible( toolbarView.element ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttoolbarView.focus();\n\n\t\treturn true;\n\t}\n\n\t/**\n\t * Provides an integration between {@link #viewportOffset} and {@link module:utils/dom/scroll~scrollViewportToShowTarget}.\n\t * It allows the UI-agnostic engine method to consider user-configured viewport offsets specific for the integration.\n\t *\n\t * @param evt The `scrollToTheSelection` event info.\n\t * @param data The payload carried by the `scrollToTheSelection` event.\n\t */\n\tprivate _handleScrollToTheSelection(\n\t\tevt: EventInfo<'scrollToTheSelection'>,\n\t\tdata: ViewScrollToTheSelectionEvent[ 'args' ][ 0 ]\n\t): void {\n\t\tconst configuredViewportOffset = {\n\t\t\ttop: 0,\n\t\t\tbottom: 0,\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\t...this.viewportOffset\n\t\t};\n\n\t\tdata.viewportOffset.top += configuredViewportOffset.top;\n\t\tdata.viewportOffset.bottom += configuredViewportOffset.bottom;\n\t\tdata.viewportOffset.left += configuredViewportOffset.left;\n\t\tdata.viewportOffset.right += configuredViewportOffset.right;\n\t}\n}\n\n/**\n * Fired when the editor UI is ready.\n *\n * Fired before {@link module:engine/controller/datacontroller~DataController#event:ready}.\n *\n * @eventName ~EditorUI#ready\n */\nexport type EditorUIReadyEvent = {\n\tname: 'ready';\n\targs: [];\n};\n\n/**\n * Fired whenever the UI (all related components) should be refreshed.\n *\n * **Note:**: The event is fired after each {@link module:engine/view/document~Document#event:layoutChanged}.\n * It can also be fired manually via the {@link module:ui/editorui/editorui~EditorUI#update} method.\n *\n * @eventName ~EditorUI#update\n */\nexport type EditorUIUpdateEvent = {\n\tname: 'update';\n\targs: [];\n};\n\n/**\n * A definition of a focusable toolbar. Used by {@link module:ui/editorui/editorui~EditorUI#addToolbar}.\n */\nexport interface FocusableToolbarDefinition {\n\n\t/**\n\t * An instance of a focusable toolbar view.\n\t */\n\ttoolbarView: ToolbarView;\n\n\t/**\n\t * Options of a focusable toolbar view:\n\t *\n\t * * `isContextual`: Marks the higher priority toolbar. For example when there are 2 visible toolbars,\n\t * it allows to distinguish which toolbar should be focused first after the `alt+f10` keystroke\n\t * * `beforeFocus`: A callback executed before the `ToolbarView` gains focus upon the `Alt+F10` keystroke.\n\t * * `afterBlur`: A callback executed after `ToolbarView` loses focus upon `Esc` keystroke but before\n\t * the focus goes back to the `origin`.\n\t */\n\toptions: FocusableToolbarOptions;\n}\n\nexport interface FocusableToolbarOptions {\n\n\t/**\n\t * Set `true` if the toolbar is attached to the content of the editor. Such toolbar takes\n\t * a precedence over other toolbars when a user pressed Alt + F10.\n\t */\n\tisContextual?: boolean;\n\n\t/**\n\t * Specify a callback executed before the toolbar instance DOM element gains focus\n\t * upon the Alt + F10 keystroke.\n\t */\n\tbeforeFocus?: () => void;\n\n\t/**\n\t * Specify a callback executed after the toolbar instance DOM element loses focus upon\n\t * Esc keystroke but before the focus goes back to the {@link ~EditorUI#setEditableElement editable element}.\n\t */\n\tafterBlur?: () => void;\n}\n\n/**\n * Returns a number (weight) for a toolbar definition. Visible toolbars have a higher priority and so do\n * contextual toolbars (displayed in the context of a content, for instance, an image toolbar).\n *\n * A standard invisible toolbar is the heaviest. A visible contextual toolbar is the lightest.\n *\n * @param toolbarDef A toolbar definition to be weighted.\n */\nfunction getToolbarDefinitionWeight( toolbarDef: FocusableToolbarDefinition ): number {\n\tconst { toolbarView, options } = toolbarDef;\n\tlet weight = 10;\n\n\t// Prioritize already visible toolbars. They should get focused first.\n\tif ( isVisible( toolbarView.element ) ) {\n\t\tweight--;\n\t}\n\n\t// Prioritize contextual toolbars. They are displayed at the selection.\n\tif ( options.isContextual ) {\n\t\tweight--;\n\t}\n\n\treturn weight;\n}\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./editorui.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/editorui/editoruiview\n */\n\nimport View from '../view.js';\nimport BodyCollection from './bodycollection.js';\nimport type EditableUIView from '../editableui/editableuiview.js';\n\nimport type { Locale, LocaleTranslate } from '@ckeditor/ckeditor5-utils';\n\nimport '../../theme/components/editorui/editorui.css';\n\n/**\n * The editor UI view class. Base class for the editor main views.\n */\nexport default abstract class EditorUIView extends View {\n\t/**\n\t * Collection of the child views, detached from the DOM\n\t * structure of the editor, like panels, icons etc.\n\t */\n\tpublic readonly body: BodyCollection;\n\n\tdeclare public locale: Locale;\n\tdeclare public t: LocaleTranslate;\n\n\tpublic abstract get editable(): EditableUIView;\n\n\t/**\n\t * Creates an instance of the editor UI view class.\n\t *\n\t * @param locale The locale instance.\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.body = new BodyCollection( locale );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.body.attachToDom();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tthis.body.detachFromDom();\n\n\t\treturn super.destroy();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/editorui/boxed/boxededitoruiview\n */\n\nimport EditorUIView from '../editoruiview.js';\nimport LabelView from '../../label/labelview.js';\nimport type ViewCollection from '../../viewcollection.js';\n\nimport type { Locale } from '@ckeditor/ckeditor5-utils';\n\n/**\n * The boxed editor UI view class. This class represents an editor interface\n * consisting of a toolbar and an editable area, enclosed within a box.\n */\nexport default abstract class BoxedEditorUIView extends EditorUIView {\n\t/**\n\t * Collection of the child views located in the top (`.ck-editor__top`)\n\t * area of the UI.\n\t */\n\tpublic readonly top: ViewCollection;\n\n\t/**\n\t * Collection of the child views located in the main (`.ck-editor__main`)\n\t * area of the UI.\n\t */\n\tpublic readonly main: ViewCollection;\n\n\t/**\n\t * Voice label of the UI.\n\t */\n\tprivate readonly _voiceLabelView: LabelView;\n\n\t/**\n\t * Creates an instance of the boxed editor UI view class.\n\t *\n\t * @param locale The locale instance..\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.top = this.createCollection();\n\t\tthis.main = this.createCollection();\n\t\tthis._voiceLabelView = this._createVoiceLabel();\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-reset',\n\t\t\t\t\t'ck-editor',\n\t\t\t\t\t'ck-rounded-corners'\n\t\t\t\t],\n\t\t\t\trole: 'application',\n\t\t\t\tdir: locale.uiLanguageDirection,\n\t\t\t\tlang: locale.uiLanguage,\n\t\t\t\t'aria-labelledby': this._voiceLabelView.id\n\t\t\t},\n\n\t\t\tchildren: [\n\t\t\t\tthis._voiceLabelView,\n\t\t\t\t{\n\t\t\t\t\ttag: 'div',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tclass: [\n\t\t\t\t\t\t\t'ck',\n\t\t\t\t\t\t\t'ck-editor__top',\n\t\t\t\t\t\t\t'ck-reset_all'\n\t\t\t\t\t\t],\n\t\t\t\t\t\trole: 'presentation'\n\t\t\t\t\t},\n\t\t\t\t\tchildren: this.top\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttag: 'div',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tclass: [\n\t\t\t\t\t\t\t'ck',\n\t\t\t\t\t\t\t'ck-editor__main'\n\t\t\t\t\t\t],\n\t\t\t\t\t\trole: 'presentation'\n\t\t\t\t\t},\n\t\t\t\t\tchildren: this.main\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\t}\n\n\t/**\n\t * Creates a voice label view instance.\n\t */\n\tprivate _createVoiceLabel() {\n\t\tconst t = this.t;\n\t\tconst voiceLabel = new LabelView();\n\n\t\tvoiceLabel.text = t( 'Rich Text Editor' );\n\n\t\tvoiceLabel.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: 'ck-voice-label'\n\t\t\t}\n\t\t} );\n\n\t\treturn voiceLabel;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/editableui/editableuiview\n */\n\nimport View from '../view.js';\n\nimport type { EditingView } from '@ckeditor/ckeditor5-engine';\nimport type { Locale, ObservableChangeEvent } from '@ckeditor/ckeditor5-utils';\n\n/**\n * The editable UI view class.\n */\nexport default class EditableUIView extends View {\n\t/**\n\t * The name of the editable UI view.\n\t */\n\tpublic name: string | null = null;\n\n\t/**\n\t * Controls whether the editable is focused, i.e. the user is typing in it.\n\t *\n\t * @observable\n\t */\n\tdeclare public isFocused: boolean;\n\n\t/**\n\t * The editing view instance the editable is related to. Editable uses the editing\n\t * view to dynamically modify its certain DOM attributes after {@link #render rendering}.\n\t *\n\t * **Note**: The DOM attributes are performed by the editing view and not UI\n\t * {@link module:ui/view~View#bindTemplate template bindings} because once rendered,\n\t * the editable DOM element must remain under the full control of the engine to work properly.\n\t */\n\tprotected _editingView: EditingView;\n\n\t/**\n\t * The element which is the main editable element (usually the one with `contentEditable=\"true\"`).\n\t */\n\tprivate _editableElement: HTMLElement | null | undefined;\n\n\t/**\n\t * Whether an external {@link #_editableElement} was passed into the constructor, which also means\n\t * the view will not render its {@link #template}.\n\t */\n\tprivate _hasExternalElement: boolean;\n\n\t/**\n\t * Creates an instance of EditableUIView class.\n\t *\n\t * @param locale The locale instance.\n\t * @param editingView The editing view instance the editable is related to.\n\t * @param editableElement The editable element. If not specified, this view\n\t * should create it. Otherwise, the existing element should be used.\n\t */\n\tconstructor(\n\t\tlocale: Locale,\n\t\teditingView: EditingView,\n\t\teditableElement?: HTMLElement\n\t) {\n\t\tsuper( locale );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-content',\n\t\t\t\t\t'ck-editor__editable',\n\t\t\t\t\t'ck-rounded-corners'\n\t\t\t\t],\n\t\t\t\tlang: locale.contentLanguage,\n\t\t\t\tdir: locale.contentLanguageDirection\n\t\t\t}\n\t\t} );\n\n\t\tthis.set( 'isFocused', false );\n\n\t\tthis._editableElement = editableElement;\n\t\tthis._hasExternalElement = !!this._editableElement;\n\t\tthis._editingView = editingView;\n\t}\n\n\t/**\n\t * Renders the view by either applying the {@link #template} to the existing\n\t * {@link module:ui/editableui/editableuiview~EditableUIView#_editableElement} or assigning {@link #element}\n\t * as {@link module:ui/editableui/editableuiview~EditableUIView#_editableElement}.\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tif ( this._hasExternalElement ) {\n\t\t\tthis.template!.apply( this.element = this._editableElement! );\n\t\t} else {\n\t\t\tthis._editableElement = this.element;\n\t\t}\n\n\t\tthis.on( 'change:isFocused', () => this._updateIsFocusedClasses() );\n\t\tthis._updateIsFocusedClasses();\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tif ( this._hasExternalElement ) {\n\t\t\tthis.template!.revert( this._editableElement! );\n\t\t}\n\n\t\tsuper.destroy();\n\t}\n\n\t/**\n\t * Whether an external {@link #_editableElement} was passed into the constructor, which also means\n\t * the view will not render its {@link #template}.\n\t */\n\tpublic get hasExternalElement(): boolean {\n\t\treturn this._hasExternalElement;\n\t}\n\n\t/**\n\t * Updates the `ck-focused` and `ck-blurred` CSS classes on the {@link #element} according to\n\t * the {@link #isFocused} property value using the {@link #_editingView editing view} API.\n\t */\n\tprivate _updateIsFocusedClasses() {\n\t\tconst editingView = this._editingView;\n\n\t\tif ( editingView.isRenderingInProgress ) {\n\t\t\tupdateAfterRender( this );\n\t\t} else {\n\t\t\tupdate( this );\n\t\t}\n\n\t\tfunction update( view: EditableUIView ) {\n\t\t\teditingView.change( writer => {\n\t\t\t\tconst viewRoot = editingView.document.getRoot( view.name! )!;\n\n\t\t\t\twriter.addClass( view.isFocused ? 'ck-focused' : 'ck-blurred', viewRoot );\n\t\t\t\twriter.removeClass( view.isFocused ? 'ck-blurred' : 'ck-focused', viewRoot );\n\t\t\t} );\n\t\t}\n\n\t\t// In a case of a multi-root editor, a callback will be attached more than once (one callback for each root).\n\t\t// While executing one callback the `isRenderingInProgress` observable is changing what causes executing another\n\t\t// callback and render is called inside the already pending render.\n\t\t// We need to be sure that callback is executed only when the value has changed from `true` to `false`.\n\t\t// See https://github.com/ckeditor/ckeditor5/issues/1676.\n\t\tfunction updateAfterRender( view: EditableUIView ) {\n\t\t\teditingView.once>( 'change:isRenderingInProgress', ( evt, name, value ) => {\n\t\t\t\tif ( !value ) {\n\t\t\t\t\tupdate( view );\n\t\t\t\t} else {\n\t\t\t\t\tupdateAfterRender( view );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/editableui/inline/inlineeditableuiview\n */\n\nimport EditableUIView from '../editableuiview.js';\n\nimport type { EditingView } from '@ckeditor/ckeditor5-engine';\nimport type { Locale } from '@ckeditor/ckeditor5-utils';\n\n/**\n * The inline editable UI class implementing an inline {@link module:ui/editableui/editableuiview~EditableUIView}.\n */\nexport default class InlineEditableUIView extends EditableUIView {\n\t/**\n\t * A function that gets called with the instance of this view as an argument and should return a string that\n\t * represents the label of the editable for assistive technologies.\n\t */\n\tprivate readonly _generateLabel: ( view: InlineEditableUIView ) => string;\n\n\t/**\n\t * Creates an instance of the InlineEditableUIView class.\n\t *\n\t * @param locale The locale instance.\n\t * @param editingView The editing view instance the editable is related to.\n\t * @param editableElement The editable element. If not specified, the\n\t * {@link module:ui/editableui/editableuiview~EditableUIView}\n\t * will create it. Otherwise, the existing element will be used.\n\t * @param options Additional configuration of the view.\n\t * @param options.label A function that gets called with the instance of this view as an argument\n\t * and should return a string that represents the label of the editable for assistive technologies. If not provided,\n\t * a default label generator is used.\n\t */\n\tconstructor(\n\t\tlocale: Locale,\n\t\teditingView: EditingView,\n\t\teditableElement?: HTMLElement,\n\t\toptions: { label?: ( view: InlineEditableUIView ) => string } = {}\n\t) {\n\t\tsuper( locale, editingView, editableElement );\n\n\t\tconst t = locale.t;\n\n\t\tthis.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\trole: 'textbox',\n\t\t\t\tclass: 'ck-editor__editable_inline'\n\t\t\t}\n\t\t} );\n\n\t\tthis._generateLabel = options.label || ( () => t( 'Editor editing area: %0', this.name! ) );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tconst editingView = this._editingView;\n\n\t\teditingView.change( writer => {\n\t\t\tconst viewRoot = editingView.document.getRoot( this.name! );\n\n\t\t\twriter.setAttribute( 'aria-label', this._generateLabel( this ), viewRoot! );\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/model\n */\n\nimport { ObservableMixin } from '@ckeditor/ckeditor5-utils';\nimport { extend } from 'lodash-es';\n\n/**\n * The base MVC model class.\n */\nexport default class Model extends /* #__PURE__ */ ObservableMixin() {\n\t[ x: string ]: unknown;\n\n\t/**\n\t * Creates a new Model instance.\n\t *\n\t * @param attributes The model state attributes to be defined during the instance creation.\n\t * @param properties The (out of state) properties to be appended to the instance during creation.\n\t */\n\tconstructor( attributes?: Record, properties?: Record ) {\n\t\tsuper();\n\n\t\t// Extend this instance with the additional (out of state) properties.\n\t\tif ( properties ) {\n\t\t\textend( this, properties );\n\t\t}\n\n\t\t// Initialize the attributes.\n\t\tif ( attributes ) {\n\t\t\tthis.set( attributes );\n\t\t}\n\t}\n}\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./balloonrotator.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./fakepanel.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/panel/balloon/contextualballoon\n */\n\nimport BalloonPanelView from './balloonpanelview.js';\nimport View from '../../view.js';\nimport ButtonView from '../../button/buttonview.js';\nimport type { ButtonExecuteEvent } from '../../button/button.js';\nimport type ViewCollection from '../../viewcollection.js';\n\nimport { Plugin, icons, type Editor } from '@ckeditor/ckeditor5-core';\nimport {\n\tCKEditorError,\n\tFocusTracker,\n\tRect,\n\ttoUnit,\n\ttype Locale,\n\ttype ObservableChangeEvent,\n\ttype PositionOptions\n} from '@ckeditor/ckeditor5-utils';\n\nimport '../../../theme/components/panel/balloonrotator.css';\nimport '../../../theme/components/panel/fakepanel.css';\n\nconst toPx = /* #__PURE__ */ toUnit( 'px' );\n\n/**\n * Provides the common contextual balloon for the editor.\n *\n * The role of this plugin is to unify the contextual balloons logic, simplify views management and help\n * avoid the unnecessary complexity of handling multiple {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView}\n * instances in the editor.\n *\n * This plugin allows for creating single or multiple panel stacks.\n *\n * Each stack may have multiple views, with the one on the top being visible. When the visible view is removed from the stack,\n * the previous view becomes visible.\n *\n * It might be useful to implement nested navigation in a balloon. For instance, a toolbar view may contain a link button.\n * When you click it, a link view (which lets you set the URL) is created and put on top of the toolbar view, so the link panel\n * is displayed. When you finish editing the link and close (remove) the link view, the toolbar view is visible again.\n *\n * However, there are cases when there are multiple independent balloons to be displayed, for instance, if the selection\n * is inside two inline comments at the same time. For such cases, you can create two independent panel stacks.\n * The contextual balloon plugin will create a navigation bar to let the users switch between these panel stacks using the \"Next\"\n * and \"Previous\" buttons.\n *\n * If there are no views in the current stack, the balloon panel will try to switch to the next stack. If there are no\n * panels in any stack, the balloon panel will be hidden.\n *\n * **Note**: To force the balloon panel to show only one view, even if there are other stacks, use the `singleViewMode=true` option\n * when {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon#add adding} a view to a panel.\n *\n * From the implementation point of view, the contextual ballon plugin is reusing a single\n * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView} instance to display multiple contextual balloon\n * panels in the editor. It also creates a special {@link module:ui/panel/balloon/contextualballoon~RotatorView rotator view},\n * used to manage multiple panel stacks. Rotator view is a child of the balloon panel view and the parent of the specific\n * view you want to display. If there is more than one panel stack to be displayed, the rotator view will add a\n * navigation bar. If there is only one stack, the rotator view is transparent (it does not add any UI elements).\n */\nexport default class ContextualBalloon extends Plugin {\n\t/**\n\t * The {@link module:utils/dom/position~Options#limiter position limiter}\n\t * for the {@link #view balloon}, used when no `limiter` has been passed into {@link #add}\n\t * or {@link #updatePosition}.\n\t *\n\t * By default, a function that obtains the farthest DOM\n\t * {@link module:engine/view/rooteditableelement~RootEditableElement}\n\t * of the {@link module:engine/view/document~Document#selection}.\n\t */\n\tpublic positionLimiter: PositionOptions[ 'limiter' ];\n\n\tpublic visibleStack?: string;\n\n\t/**\n\t * The currently visible view or `null` when there are no views in any stack.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public visibleView: View | null;\n\n\t/**\n\t * A total number of all stacks in the balloon.\n\t *\n\t * @private\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public _numberOfStacks: number;\n\n\t/**\n\t * A flag that controls the single view mode.\n\t *\n\t * @private\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public _singleViewMode: boolean;\n\n\t/**\n\t * The map of views and their stacks.\n\t */\n\tprivate _viewToStack = new Map();\n\n\t/**\n\t * The map of IDs and stacks.\n\t */\n\tprivate _idToStack = new Map();\n\n\t/**\n\t * The common balloon panel view.\n\t */\n\tprivate _view: BalloonPanelView | null = null;\n\n\t/**\n\t * Rotator view embedded in the contextual balloon.\n\t * Displays the currently visible view in the balloon and provides navigation for switching stacks.\n\t */\n\tprivate _rotatorView: RotatorView | null = null;\n\n\t/**\n\t * Displays fake panels under the balloon panel view when multiple stacks are added to the balloon.\n\t */\n\tprivate _fakePanelsView: FakePanelsView | null = null;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'ContextualBalloon' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis.positionLimiter = () => {\n\t\t\tconst view = this.editor.editing.view;\n\t\t\tconst viewDocument = view.document;\n\t\t\tconst editableElement = viewDocument.selection.editableElement;\n\n\t\t\tif ( editableElement ) {\n\t\t\t\treturn view.domConverter.mapViewToDom( editableElement.root ) as HTMLElement;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t};\n\n\t\tthis.set( 'visibleView', null );\n\t\tthis.set( '_numberOfStacks', 0 );\n\t\tthis.set( '_singleViewMode', false );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tif ( this._view ) {\n\t\t\tthis._view.destroy();\n\t\t}\n\n\t\tif ( this._rotatorView ) {\n\t\t\tthis._rotatorView.destroy();\n\t\t}\n\n\t\tif ( this._fakePanelsView ) {\n\t\t\tthis._fakePanelsView.destroy();\n\t\t}\n\t}\n\n\t/**\n\t * The common balloon panel view.\n\t */\n\tpublic get view(): BalloonPanelView {\n\t\tif ( !this._view ) {\n\t\t\tthis._createPanelView();\n\t\t}\n\n\t\treturn this._view!;\n\t}\n\n\t/**\n\t * Returns `true` when the given view is in one of the stacks. Otherwise returns `false`.\n\t */\n\tpublic hasView( view: View ): boolean {\n\t\treturn Array.from( this._viewToStack.keys() ).includes( view );\n\t}\n\n\t/**\n\t * Adds a new view to the stack and makes it visible if the current stack is visible\n\t * or it is the first view in the balloon.\n\t *\n\t * @param data The configuration of the view.\n\t * @param data.stackId The ID of the stack that the view is added to. Defaults to `'main'`.\n\t * @param data.view The content of the balloon.\n\t * @param data.position Positioning options.\n\t * @param data.balloonClassName An additional CSS class added to the {@link #view balloon} when visible.\n\t * @param data.withArrow Whether the {@link #view balloon} should be rendered with an arrow. Defaults to `true`.\n\t * @param data.singleViewMode Whether the view should be the only visible view even if other stacks were added. Defaults to `false`.\n\t */\n\tpublic add( data: ViewConfiguration ): void {\n\t\tif ( !this._view ) {\n\t\t\tthis._createPanelView();\n\t\t}\n\n\t\tif ( this.hasView( data.view ) ) {\n\t\t\t/**\n\t\t\t * Trying to add configuration of the same view more than once.\n\t\t\t *\n\t\t\t * @error contextualballoon-add-view-exist\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'contextualballoon-add-view-exist',\n\t\t\t\t[ this, data ]\n\t\t\t);\n\t\t}\n\n\t\tconst stackId = data.stackId || 'main';\n\n\t\t// If new stack is added, creates it and show view from this stack.\n\t\tif ( !this._idToStack.has( stackId ) ) {\n\t\t\tthis._idToStack.set( stackId, new Map( [ [ data.view, data ] ] ) );\n\t\t\tthis._viewToStack.set( data.view, this._idToStack.get( stackId )! );\n\t\t\tthis._numberOfStacks = this._idToStack.size;\n\n\t\t\tif ( !this._visibleStack || data.singleViewMode ) {\n\t\t\t\tthis.showStack( stackId );\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst stack = this._idToStack.get( stackId )!;\n\n\t\tif ( data.singleViewMode ) {\n\t\t\tthis.showStack( stackId );\n\t\t}\n\n\t\t// Add new view to the stack.\n\t\tstack.set( data.view, data );\n\t\tthis._viewToStack.set( data.view, stack );\n\n\t\t// And display it if is added to the currently visible stack.\n\t\tif ( stack === this._visibleStack ) {\n\t\t\tthis._showView( data );\n\t\t}\n\t}\n\n\t/**\n\t * Removes the given view from the stack. If the removed view was visible,\n\t * the view preceding it in the stack will become visible instead.\n\t * When there is no view in the stack, the next stack will be displayed.\n\t * When there are no more stacks, the balloon will hide.\n\t *\n\t * @param view A view to be removed from the balloon.\n\t */\n\tpublic remove( view: View ): void {\n\t\tif ( !this.hasView( view ) ) {\n\t\t\t/**\n\t\t\t * Trying to remove the configuration of the view not defined in the stack.\n\t\t\t *\n\t\t\t * @error contextualballoon-remove-view-not-exist\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'contextualballoon-remove-view-not-exist',\n\t\t\t\t[ this, view ]\n\t\t\t);\n\t\t}\n\n\t\tconst stack = this._viewToStack.get( view )!;\n\n\t\tif ( this._singleViewMode && this.visibleView === view ) {\n\t\t\tthis._singleViewMode = false;\n\t\t}\n\n\t\t// When visible view will be removed we need to show a preceding view or next stack\n\t\t// if a view is the only view in the stack.\n\t\tif ( this.visibleView === view ) {\n\t\t\tif ( stack.size === 1 ) {\n\t\t\t\tif ( this._idToStack.size > 1 ) {\n\t\t\t\t\tthis._showNextStack();\n\t\t\t\t} else {\n\t\t\t\t\tthis.view.hide();\n\t\t\t\t\tthis.visibleView = null;\n\t\t\t\t\tthis._rotatorView!.hideView();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._showView( Array.from( stack.values() )[ stack.size - 2 ] );\n\t\t\t}\n\t\t}\n\n\t\tif ( stack.size === 1 ) {\n\t\t\tthis._idToStack.delete( this._getStackId( stack ) );\n\t\t\tthis._numberOfStacks = this._idToStack.size;\n\t\t} else {\n\t\t\tstack.delete( view );\n\t\t}\n\n\t\tthis._viewToStack.delete( view );\n\t}\n\n\t/**\n\t * Updates the position of the balloon using the position data of the first visible view in the stack.\n\t * When new position data is given, the position data of the currently visible view will be updated.\n\t *\n\t * @param position Position options.\n\t */\n\tpublic updatePosition( position?: Partial ): void {\n\t\tif ( position ) {\n\t\t\tthis._visibleStack.get( this.visibleView! )!.position = position;\n\t\t}\n\n\t\tthis.view.pin( this._getBalloonPosition()! );\n\t\tthis._fakePanelsView!.updatePosition();\n\t}\n\n\t/**\n\t * Shows the last view from the stack of a given ID.\n\t */\n\tpublic showStack( id: string ): void {\n\t\tthis.visibleStack = id;\n\t\tconst stack = this._idToStack.get( id );\n\n\t\tif ( !stack ) {\n\t\t\t/**\n\t\t\t * Trying to show a stack that does not exist.\n\t\t\t *\n\t\t\t * @error contextualballoon-showstack-stack-not-exist\n\t\t\t */\n\t\t\tthrow new CKEditorError(\n\t\t\t\t'contextualballoon-showstack-stack-not-exist',\n\t\t\t\tthis\n\t\t\t);\n\t\t}\n\n\t\tif ( this._visibleStack === stack ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showView( Array.from( stack.values() ).pop()! );\n\t}\n\n\t/**\n\t * Initializes view instances.\n\t */\n\tprivate _createPanelView(): void {\n\t\tthis._view = new BalloonPanelView( this.editor.locale );\n\n\t\tthis.editor.ui.view.body.add( this._view );\n\t\tthis.editor.ui.focusTracker.add( this._view.element! );\n\n\t\tthis._rotatorView = this._createRotatorView();\n\t\tthis._fakePanelsView = this._createFakePanelsView();\n\t}\n\n\t/**\n\t * Returns the stack of the currently visible view.\n\t */\n\tprivate get _visibleStack() {\n\t\treturn this._viewToStack.get( this.visibleView! )!;\n\t}\n\n\t/**\n\t * Returns the ID of the given stack.\n\t */\n\tprivate _getStackId( stack: Stack ) {\n\t\tconst entry = Array.from( this._idToStack.entries() ).find( entry => entry[ 1 ] === stack )!;\n\n\t\treturn entry[ 0 ];\n\t}\n\n\t/**\n\t * Shows the last view from the next stack.\n\t */\n\tprivate _showNextStack() {\n\t\tconst stacks = Array.from( this._idToStack.values() );\n\n\t\tlet nextIndex = stacks.indexOf( this._visibleStack ) + 1;\n\n\t\tif ( !stacks[ nextIndex ] ) {\n\t\t\tnextIndex = 0;\n\t\t}\n\n\t\tthis.showStack( this._getStackId( stacks[ nextIndex ] ) );\n\t}\n\n\t/**\n\t * Shows the last view from the previous stack.\n\t */\n\tprivate _showPrevStack() {\n\t\tconst stacks = Array.from( this._idToStack.values() );\n\n\t\tlet nextIndex = stacks.indexOf( this._visibleStack ) - 1;\n\n\t\tif ( !stacks[ nextIndex ] ) {\n\t\t\tnextIndex = stacks.length - 1;\n\t\t}\n\n\t\tthis.showStack( this._getStackId( stacks[ nextIndex ] ) );\n\t}\n\n\t/**\n\t * Creates a rotator view.\n\t */\n\tprivate _createRotatorView() {\n\t\tconst view = new RotatorView( this.editor.locale );\n\t\tconst t = this.editor.locale.t;\n\n\t\tthis.view.content.add( view );\n\n\t\t// Hide navigation when there is only a one stack & not in single view mode.\n\t\tview.bind( 'isNavigationVisible' ).to( this, '_numberOfStacks', this, '_singleViewMode', ( value, isSingleViewMode ) => {\n\t\t\treturn !isSingleViewMode && value > 1;\n\t\t} );\n\n\t\t// Update balloon position after toggling navigation.\n\t\tview.on( 'change:isNavigationVisible', () => ( this.updatePosition() ), { priority: 'low' } );\n\n\t\t// Update stacks counter value.\n\t\tview.bind( 'counter' ).to( this, 'visibleView', this, '_numberOfStacks', ( visibleView, numberOfStacks ) => {\n\t\t\tif ( numberOfStacks < 2 ) {\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tconst current = Array.from( this._idToStack.values() ).indexOf( this._visibleStack ) + 1;\n\n\t\t\treturn t( '%0 of %1', [ current, numberOfStacks ] );\n\t\t} );\n\n\t\tview.buttonNextView.on( 'execute', () => {\n\t\t\t// When current view has a focus then move focus to the editable before removing it,\n\t\t\t// otherwise editor will lost focus.\n\t\t\tif ( view.focusTracker.isFocused ) {\n\t\t\t\tthis.editor.editing.view.focus();\n\t\t\t}\n\n\t\t\tthis._showNextStack();\n\t\t} );\n\n\t\tview.buttonPrevView.on( 'execute', () => {\n\t\t\t// When current view has a focus then move focus to the editable before removing it,\n\t\t\t// otherwise editor will lost focus.\n\t\t\tif ( view.focusTracker.isFocused ) {\n\t\t\t\tthis.editor.editing.view.focus();\n\t\t\t}\n\n\t\t\tthis._showPrevStack();\n\t\t} );\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Creates a fake panels view.\n\t */\n\tprivate _createFakePanelsView() {\n\t\tconst view = new FakePanelsView( this.editor.locale, this.view );\n\n\t\tview.bind( 'numberOfPanels' ).to( this, '_numberOfStacks', this, '_singleViewMode', ( number, isSingleViewMode ) => {\n\t\t\tconst showPanels = !isSingleViewMode && number >= 2;\n\n\t\t\treturn showPanels ? Math.min( number - 1, 2 ) : 0;\n\t\t} );\n\n\t\tview.listenTo( this.view, 'change:top', () => view.updatePosition() );\n\t\tview.listenTo( this.view, 'change:left', () => view.updatePosition() );\n\n\t\tthis.editor.ui.view.body.add( view );\n\n\t\treturn view;\n\t}\n\n\t/**\n\t * Sets the view as the content of the balloon and attaches the balloon using position\n\t * options of the first view.\n\t *\n\t * @param data Configuration.\n\t * @param data.view The view to show in the balloon.\n\t * @param data.balloonClassName Additional class name which will be added to the {@link #view balloon}.\n\t * @param data.withArrow Whether the {@link #view balloon} should be rendered with an arrow.\n\t */\n\tprivate _showView( { view, balloonClassName = '', withArrow = true, singleViewMode = false }: ViewConfiguration ) {\n\t\tthis.view.class = balloonClassName;\n\t\tthis.view.withArrow = withArrow;\n\n\t\tthis._rotatorView!.showView( view );\n\t\tthis.visibleView = view;\n\t\tthis.view.pin( this._getBalloonPosition()! );\n\t\tthis._fakePanelsView!.updatePosition();\n\n\t\tif ( singleViewMode ) {\n\t\t\tthis._singleViewMode = true;\n\t\t}\n\t}\n\n\t/**\n\t * Returns position options of the last view in the stack.\n\t * This keeps the balloon in the same position when the view is changed.\n\t */\n\tprivate _getBalloonPosition() {\n\t\tlet position = Array.from( this._visibleStack.values() ).pop()!.position;\n\n\t\tif ( position ) {\n\t\t\t// Use the default limiter if none has been specified.\n\t\t\tif ( !position.limiter ) {\n\t\t\t\t// Don't modify the original options object.\n\t\t\t\tposition = Object.assign( {}, position, {\n\t\t\t\t\tlimiter: this.positionLimiter\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Don't modify the original options object.\n\t\t\tposition = Object.assign( {}, position, {\n\t\t\t\tviewportOffsetConfig: this.editor.ui.viewportOffset\n\t\t\t} );\n\t\t}\n\n\t\treturn position;\n\t}\n}\n\n/**\n * The configuration of the view.\n */\nexport interface ViewConfiguration {\n\n\t/**\n\t * The ID of the stack that the view is added to.\n\t *\n\t * @default 'main'\n\t */\n\tstackId?: string;\n\n\t/**\n\t * The content of the balloon.\n\t */\n\tview: View;\n\n\t/**\n\t * Positioning options.\n\t */\n\tposition?: Partial;\n\n\t/**\n\t * An additional CSS class added to the {@link #view balloon} when visible.\n\t */\n\tballoonClassName?: string;\n\n\t/**\n\t * Whether the {@link #view balloon} should be rendered with an arrow.\n\t *\n\t * @default true\n\t */\n\twithArrow?: boolean;\n\n\t/**\n\t * Whether the view should be the only visible view even if other stacks were added.\n\t *\n\t * @default false\n\t */\n\tsingleViewMode?: boolean;\n}\n\ntype Stack = Map;\n\n/**\n * Rotator view is a helper class for the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon ContextualBalloon}.\n * It is used for displaying the last view from the current stack and providing navigation buttons for switching stacks.\n * See the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon ContextualBalloon} documentation to learn more.\n */\nexport class RotatorView extends View {\n\t/**\n\t * Used for checking if a view is focused or not.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * Navigation button for switching the stack to the previous one.\n\t */\n\tpublic readonly buttonPrevView: ButtonView;\n\n\t/**\n\t * Navigation button for switching the stack to the next one.\n\t */\n\tpublic readonly buttonNextView: ButtonView;\n\n\t/**\n\t * A collection of the child views that creates the rotator content.\n\t */\n\tpublic readonly content: ViewCollection;\n\n\t/**\n\t * Defines whether navigation is visible or not.\n\t *\n\t * @observable\n\t */\n\tdeclare public isNavigationVisible: boolean;\n\n\t/**\n\t * @observable\n\t */\n\tdeclare public counter: string;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tconst t = locale.t;\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.set( 'isNavigationVisible', true );\n\n\t\tthis.focusTracker = new FocusTracker();\n\t\tthis.buttonPrevView = this._createButtonView( t( 'Previous' ), icons.previousArrow );\n\t\tthis.buttonNextView = this._createButtonView( t( 'Next' ), icons.nextArrow );\n\t\tthis.content = this.createCollection();\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-balloon-rotator'\n\t\t\t\t],\n\t\t\t\t'z-index': '-1'\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'div',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tclass: [\n\t\t\t\t\t\t\t'ck-balloon-rotator__navigation',\n\t\t\t\t\t\t\tbind.to( 'isNavigationVisible', value => value ? '' : 'ck-hidden' )\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\tthis.buttonPrevView,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttag: 'span',\n\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\tclass: [\n\t\t\t\t\t\t\t\t\t'ck-balloon-rotator__counter'\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttext: bind.to( 'counter' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t\tthis.buttonNextView\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttag: 'div',\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tclass: 'ck-balloon-rotator__content'\n\t\t\t\t\t},\n\t\t\t\t\tchildren: this.content\n\t\t\t\t}\n\t\t\t]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.focusTracker.add( this.element! );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override destroy(): void {\n\t\tsuper.destroy();\n\n\t\tthis.focusTracker.destroy();\n\t}\n\n\t/**\n\t * Shows a given view.\n\t *\n\t * @param view The view to show.\n\t */\n\tpublic showView( view: View ): void {\n\t\tthis.hideView();\n\t\tthis.content.add( view );\n\t}\n\n\t/**\n\t * Hides the currently displayed view.\n\t */\n\tpublic hideView(): void {\n\t\tthis.content.clear();\n\t}\n\n\t/**\n\t * Creates a navigation button view.\n\t *\n\t * @param label The button label.\n\t * @param icon The button icon.\n\t */\n\tprivate _createButtonView( label: string, icon: string ) {\n\t\tconst view = new ButtonView( this.locale );\n\n\t\tview.set( {\n\t\t\tlabel,\n\t\t\ticon,\n\t\t\ttooltip: true\n\t\t} );\n\n\t\treturn view;\n\t}\n}\n\n/**\n * Displays additional layers under the balloon when multiple stacks are added to the balloon.\n */\nclass FakePanelsView extends View {\n\t/**\n\t * Collection of the child views which creates fake panel content.\n\t */\n\tpublic readonly content: ViewCollection;\n\n\t/**\n\t * Fake panels top offset.\n\t *\n\t * @observable\n\t */\n\tdeclare public top: number;\n\n\t/**\n\t * Fake panels left offset.\n\t *\n\t * @observable\n\t */\n\tdeclare public left: number;\n\n\t/**\n\t * Fake panels height.\n\t *\n\t * @observable\n\t */\n\tdeclare public height: number;\n\n\t/**\n\t * Fake panels width.\n\t *\n\t * @observable\n\t */\n\tdeclare public width: number;\n\n\t/**\n\t * Number of rendered fake panels.\n\t *\n\t * @observable\n\t */\n\tdeclare public numberOfPanels: number;\n\n\t/**\n\t * Context.\n\t */\n\tprivate readonly _balloonPanelView: BalloonPanelView;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale: Locale, balloonPanelView: BalloonPanelView ) {\n\t\tsuper( locale );\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.set( 'top', 0 );\n\t\tthis.set( 'left', 0 );\n\t\tthis.set( 'height', 0 );\n\t\tthis.set( 'width', 0 );\n\t\tthis.set( 'numberOfPanels', 0 );\n\n\t\tthis.content = this.createCollection();\n\t\tthis._balloonPanelView = balloonPanelView;\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-fake-panel',\n\t\t\t\t\tbind.to( 'numberOfPanels', number => number ? '' : 'ck-hidden' )\n\t\t\t\t],\n\t\t\t\tstyle: {\n\t\t\t\t\ttop: bind.to( 'top', toPx ),\n\t\t\t\t\tleft: bind.to( 'left', toPx ),\n\t\t\t\t\twidth: bind.to( 'width', toPx ),\n\t\t\t\t\theight: bind.to( 'height', toPx )\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildren: this.content\n\t\t} );\n\n\t\tthis.on>( 'change:numberOfPanels', ( evt, name, next, prev ) => {\n\t\t\tif ( next > prev ) {\n\t\t\t\tthis._addPanels( next - prev );\n\t\t\t} else {\n\t\t\t\tthis._removePanels( prev - next );\n\t\t\t}\n\n\t\t\tthis.updatePosition();\n\t\t} );\n\t}\n\n\tprivate _addPanels( number: number ) {\n\t\twhile ( number-- ) {\n\t\t\tconst view = new View();\n\n\t\t\tview.setTemplate( { tag: 'div' } );\n\n\t\t\tthis.content.add( view );\n\t\t\tthis.registerChild( view );\n\t\t}\n\t}\n\n\tprivate _removePanels( number: number ) {\n\t\twhile ( number-- ) {\n\t\t\tconst view = this.content.last!;\n\n\t\t\tthis.content.remove( view );\n\t\t\tthis.deregisterChild( view );\n\t\t\tview.destroy();\n\t\t}\n\t}\n\n\t/**\n\t * Updates coordinates of fake panels.\n\t */\n\tpublic updatePosition() {\n\t\tif ( this.numberOfPanels ) {\n\t\t\tconst { top, left } = this._balloonPanelView;\n\t\t\tconst { width, height } = new Rect( this._balloonPanelView.element! );\n\n\t\t\tObject.assign( this, { top, left, width, height } );\n\t\t}\n\t}\n}\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./stickypanel.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/panel/sticky/stickypanelview\n */\n\nimport View from '../../view.js';\nimport Template from '../../template.js';\n\nimport type ViewCollection from '../../viewcollection.js';\n\nimport {\n\ttype Locale,\n\ttype ObservableChangeEvent,\n\tglobal,\n\ttoUnit,\n\tRect\n} from '@ckeditor/ckeditor5-utils';\n\n// @if CK_DEBUG_STICKYPANEL // const {\n// @if CK_DEBUG_STICKYPANEL // \tdefault: RectDrawer,\n// @if CK_DEBUG_STICKYPANEL // \tdiagonalStylesBlack\n// @if CK_DEBUG_STICKYPANEL // } = require( '@ckeditor/ckeditor5-utils/tests/_utils/rectdrawer' );\n\nimport '../../../theme/components/panel/stickypanel.css';\n\nconst toPx = /* #__PURE__ */ toUnit( 'px' );\n\n/**\n * The sticky panel view class.\n */\nexport default class StickyPanelView extends View {\n\t/**\n\t * Collection of the child views which creates balloon panel contents.\n\t */\n\tpublic readonly content: ViewCollection;\n\n\t/**\n\t * Controls whether the sticky panel should be active.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public isActive: boolean;\n\n\t/**\n\t * Controls whether the sticky panel is in the \"sticky\" state.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public isSticky: boolean;\n\n\t/**\n\t * The limiter element for the sticky panel instance. Its bounding rect limits\n\t * the \"stickyness\" of the panel, i.e. when the panel reaches the bottom\n\t * edge of the limiter, it becomes sticky to that edge and does not float\n\t * off the limiter. It is mandatory for the panel to work properly and once\n\t * set, it cannot be changed.\n\t *\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public limiterElement: HTMLElement | null;\n\n\t/**\n\t * The offset from the bottom edge of {@link #limiterElement}\n\t * which stops the panel from stickying any further to prevent limiter's content\n\t * from being completely covered.\n\t *\n\t * @readonly\n\t * @observable\n\t * @default 50\n\t */\n\tdeclare public limiterBottomOffset: number;\n\n\t/**\n\t * The offset from the top edge of the web browser's viewport which makes the\n\t * panel become sticky. The default value is `0`, which means the panel becomes\n\t * sticky when it's upper edge touches the top of the page viewport.\n\t *\n\t * This attribute is useful when the web page has UI elements positioned to the top\n\t * either using `position: fixed` or `position: sticky`, which would cover the\n\t * sticky panel or vice–versa (depending on the `z-index` hierarchy).\n\t *\n\t * Bound to {@link module:ui/editorui/editorui~EditorUI#viewportOffset `EditorUI#viewportOffset`}.\n\t *\n\t * If {@link module:core/editor/editorconfig~EditorConfig#ui `EditorConfig#ui.viewportOffset.top`} is defined, then\n\t * it will override the default value.\n\t *\n\t * @observable\n\t * @default 0\n\t */\n\tdeclare public viewportTopOffset: number;\n\n\t/**\n\t * The panel which accepts children into {@link #content} collection.\n\t * Also an element which is positioned when {@link #isSticky}.\n\t */\n\tpublic contentPanelElement: HTMLElement;\n\n\t/**\n\t * Controls the `margin-left` CSS style of the panel.\n\t *\n\t * @private\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public _marginLeft: string | null;\n\n\t/**\n\t * Set `true` if the sticky panel reached the bottom edge of the\n\t * {@link #limiterElement}.\n\t *\n\t * @private\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public _isStickyToTheBottomOfLimiter: boolean;\n\n\t/**\n\t * The `top` CSS position of the panel when it is sticky to the top of the viewport or scrollable\n\t * ancestors of the {@link #limiterElement}.\n\t *\n\t * @private\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public _stickyTopOffset: number | null;\n\n\t/**\n\t * The `bottom` CSS position of the panel when it is sticky to the bottom of the {@link #limiterElement}.\n\t *\n\t * @private\n\t * @readonly\n\t * @observable\n\t */\n\tdeclare public _stickyBottomOffset: number | null;\n\n\t/**\n\t * A dummy element which visually fills the space as long as the\n\t * actual panel is sticky. It prevents flickering of the UI.\n\t */\n\tprivate _contentPanelPlaceholder: HTMLElement;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( locale?: Locale ) {\n\t\tsuper( locale );\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.set( 'isActive', false );\n\t\tthis.set( 'isSticky', false );\n\t\tthis.set( 'limiterElement', null );\n\t\tthis.set( 'limiterBottomOffset', 50 );\n\t\tthis.set( 'viewportTopOffset', 0 );\n\n\t\tthis.set( '_marginLeft', null );\n\t\tthis.set( '_isStickyToTheBottomOfLimiter', false );\n\n\t\tthis.set( '_stickyTopOffset', null );\n\t\tthis.set( '_stickyBottomOffset', null );\n\n\t\tthis.content = this.createCollection();\n\n\t\tthis._contentPanelPlaceholder = new Template( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-sticky-panel__placeholder'\n\t\t\t\t],\n\t\t\t\tstyle: {\n\t\t\t\t\tdisplay: bind.to( 'isSticky', isSticky => isSticky ? 'block' : 'none' ),\n\t\t\t\t\theight: bind.to( 'isSticky', isSticky => {\n\t\t\t\t\t\treturn isSticky ? toPx( this._contentPanelRect.height ) : null;\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t}\n\t\t} ).render() as HTMLElement;\n\n\t\tthis.contentPanelElement = new Template( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-sticky-panel__content',\n\t\t\t\t\t// Toggle class of the panel when \"sticky\" state changes in the view.\n\t\t\t\t\tbind.if( 'isSticky', 'ck-sticky-panel__content_sticky' ),\n\t\t\t\t\tbind.if( '_isStickyToTheBottomOfLimiter', 'ck-sticky-panel__content_sticky_bottom-limit' )\n\t\t\t\t],\n\t\t\t\tstyle: {\n\t\t\t\t\twidth: bind.to( 'isSticky', isSticky => {\n\t\t\t\t\t\treturn isSticky ? toPx( this._contentPanelPlaceholder.getBoundingClientRect().width ) : null;\n\t\t\t\t\t} ),\n\n\t\t\t\t\ttop: bind.to( '_stickyTopOffset', value => value ? toPx( value ) : value ),\n\t\t\t\t\tbottom: bind.to( '_stickyBottomOffset', value => value ? toPx( value ) : value ),\n\n\t\t\t\t\tmarginLeft: bind.to( '_marginLeft' )\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tchildren: this.content\n\t\t} ).render() as HTMLElement;\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-sticky-panel'\n\t\t\t\t]\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\tthis._contentPanelPlaceholder,\n\t\t\t\tthis.contentPanelElement\n\t\t\t]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\t// Check if the panel should go into the sticky state immediately.\n\t\tthis.checkIfShouldBeSticky();\n\n\t\t// Update sticky state of the panel as the window and ancestors are being scrolled.\n\t\tthis.listenTo( global.document, 'scroll', () => {\n\t\t\tthis.checkIfShouldBeSticky();\n\t\t}, { useCapture: true } );\n\n\t\t// Synchronize with `model.isActive` because sticking an inactive panel is pointless.\n\t\tthis.listenTo( this, 'change:isActive', () => {\n\t\t\tthis.checkIfShouldBeSticky();\n\t\t} );\n\t}\n\n\t/**\n\t * Analyzes the environment to decide whether the panel should be sticky or not.\n\t * Then handles the positioning of the panel.\n\t */\n\tpublic checkIfShouldBeSticky(): void {\n\t\t// @if CK_DEBUG_STICKYPANEL // RectDrawer.clear();\n\n\t\tif ( !this.limiterElement || !this.isActive ) {\n\t\t\tthis._unstick();\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst limiterRect = new Rect( this.limiterElement );\n\n\t\tlet visibleLimiterRect = limiterRect.getVisible();\n\n\t\tif ( visibleLimiterRect ) {\n\t\t\tconst windowRect = new Rect( global.window );\n\n\t\t\twindowRect.top += this.viewportTopOffset;\n\t\t\twindowRect.height -= this.viewportTopOffset;\n\n\t\t\tvisibleLimiterRect = visibleLimiterRect.getIntersection( windowRect );\n\t\t}\n\n\t\t// @if CK_DEBUG_STICKYPANEL // if ( visibleLimiterRect ) {\n\t\t// @if CK_DEBUG_STICKYPANEL // \tRectDrawer.draw( visibleLimiterRect,\n\t\t// @if CK_DEBUG_STICKYPANEL // \t\t{ outlineWidth: '3px', opacity: '.8', outlineColor: 'red', outlineOffset: '-3px' },\n\t\t// @if CK_DEBUG_STICKYPANEL // \t\t'Visible anc'\n\t\t// @if CK_DEBUG_STICKYPANEL // \t);\n\t\t// @if CK_DEBUG_STICKYPANEL // }\n\t\t// @if CK_DEBUG_STICKYPANEL //\n\t\t// @if CK_DEBUG_STICKYPANEL // RectDrawer.draw( limiterRect,\n\t\t// @if CK_DEBUG_STICKYPANEL // \t{ outlineWidth: '3px', opacity: '.8', outlineColor: 'green', outlineOffset: '-3px' },\n\t\t// @if CK_DEBUG_STICKYPANEL // \t'Limiter'\n\t\t// @if CK_DEBUG_STICKYPANEL // );\n\n\t\t// Stick the panel only if\n\t\t// * the limiter's ancestors are intersecting with each other so that some of their rects are visible,\n\t\t// * and the limiter's top edge is above the visible ancestors' top edge.\n\t\tif ( visibleLimiterRect && limiterRect.top < visibleLimiterRect.top ) {\n\t\t\t// @if CK_DEBUG_STICKYPANEL // RectDrawer.draw( visibleLimiterRect,\n\t\t\t// @if CK_DEBUG_STICKYPANEL // \t{ outlineWidth: '3px', opacity: '.8', outlineColor: 'fuchsia', outlineOffset: '-3px',\n\t\t\t// @if CK_DEBUG_STICKYPANEL // \t\tbackgroundColor: 'rgba(255, 0, 255, .3)' },\n\t\t\t// @if CK_DEBUG_STICKYPANEL // \t'Visible limiter'\n\t\t\t// @if CK_DEBUG_STICKYPANEL // );\n\n\t\t\tconst visibleLimiterTop = visibleLimiterRect.top;\n\n\t\t\t// Check if there's a change the panel can be sticky to the bottom of the limiter.\n\t\t\tif ( visibleLimiterTop + this._contentPanelRect.height + this.limiterBottomOffset > visibleLimiterRect.bottom ) {\n\t\t\t\tconst stickyBottomOffset = Math.max( limiterRect.bottom - visibleLimiterRect.bottom, 0 ) + this.limiterBottomOffset;\n\t\t\t\t// @if CK_DEBUG_STICKYPANEL // const stickyBottomOffsetRect = new Rect( {\n\t\t\t\t// @if CK_DEBUG_STICKYPANEL // \ttop: limiterRect.bottom - stickyBottomOffset, left: 0, right: 2000,\n\t\t\t\t// @if CK_DEBUG_STICKYPANEL // \tbottom: limiterRect.bottom - stickyBottomOffset, width: 2000, height: 1\n\t\t\t\t// @if CK_DEBUG_STICKYPANEL // } );\n\t\t\t\t// @if CK_DEBUG_STICKYPANEL // RectDrawer.draw( stickyBottomOffsetRect,\n\t\t\t\t// @if CK_DEBUG_STICKYPANEL // \t{ outlineWidth: '1px', opacity: '.8', outlineColor: 'black' },\n\t\t\t\t// @if CK_DEBUG_STICKYPANEL // \t'Sticky bottom offset'\n\t\t\t\t// @if CK_DEBUG_STICKYPANEL // );\n\n\t\t\t\t// Check if sticking the panel to the bottom of the limiter does not cause it to suddenly\n\t\t\t\t// move upwards if there's not enough space for it.\n\t\t\t\tif ( limiterRect.bottom - stickyBottomOffset > limiterRect.top + this._contentPanelRect.height ) {\n\t\t\t\t\tthis._stickToBottomOfLimiter( stickyBottomOffset );\n\t\t\t\t} else {\n\t\t\t\t\tthis._unstick();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ( this._contentPanelRect.height + this.limiterBottomOffset < limiterRect.height ) {\n\t\t\t\t\tthis._stickToTopOfAncestors( visibleLimiterTop );\n\t\t\t\t} else {\n\t\t\t\t\tthis._unstick();\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis._unstick();\n\t\t}\n\n\t\t// @if CK_DEBUG_STICKYPANEL // console.clear();\n\t\t// @if CK_DEBUG_STICKYPANEL // console.log( 'isSticky', this.isSticky );\n\t\t// @if CK_DEBUG_STICKYPANEL // console.log( '_isStickyToTheBottomOfLimiter', this._isStickyToTheBottomOfLimiter );\n\t\t// @if CK_DEBUG_STICKYPANEL // console.log( '_stickyTopOffset', this._stickyTopOffset );\n\t\t// @if CK_DEBUG_STICKYPANEL // console.log( '_stickyBottomOffset', this._stickyBottomOffset );\n\t\t// @if CK_DEBUG_STICKYPANEL // if ( visibleLimiterRect ) {\n\t\t// @if CK_DEBUG_STICKYPANEL // \tRectDrawer.draw( visibleLimiterRect,\n\t\t// @if CK_DEBUG_STICKYPANEL // \t\t{ ...diagonalStylesBlack,\n\t\t// @if CK_DEBUG_STICKYPANEL // \t\t\toutlineWidth: '3px', opacity: '.8', outlineColor: 'orange', outlineOffset: '-3px',\n\t\t// @if CK_DEBUG_STICKYPANEL // \t\t\tbackgroundColor: 'rgba(0, 0, 255, .2)' },\n\t\t// @if CK_DEBUG_STICKYPANEL // \t\t'visibleLimiterRect'\n\t\t// @if CK_DEBUG_STICKYPANEL // \t);\n\t\t// @if CK_DEBUG_STICKYPANEL // }\n\t}\n\n\t/**\n\t * Sticks the panel at the given CSS `top` offset.\n\t *\n\t * @private\n\t * @param topOffset\n\t */\n\tprivate _stickToTopOfAncestors( topOffset: number ) {\n\t\tthis.isSticky = true;\n\t\tthis._isStickyToTheBottomOfLimiter = false;\n\t\tthis._stickyTopOffset = topOffset;\n\t\tthis._stickyBottomOffset = null;\n\t\tthis._marginLeft = toPx( -global.window.scrollX );\n\t}\n\n\t/**\n\t * Sticks the panel at the bottom of the limiter with a given CSS `bottom` offset.\n\t *\n\t * @private\n\t * @param stickyBottomOffset\n\t */\n\tprivate _stickToBottomOfLimiter( stickyBottomOffset: number ) {\n\t\tthis.isSticky = true;\n\t\tthis._isStickyToTheBottomOfLimiter = true;\n\t\tthis._stickyTopOffset = null;\n\t\tthis._stickyBottomOffset = stickyBottomOffset;\n\t\tthis._marginLeft = toPx( -global.window.scrollX );\n\t}\n\n\t/**\n\t * Unsticks the panel putting it back to its original position.\n\t *\n\t * @private\n\t */\n\tprivate _unstick() {\n\t\tthis.isSticky = false;\n\t\tthis._isStickyToTheBottomOfLimiter = false;\n\t\tthis._stickyTopOffset = null;\n\t\tthis._stickyBottomOffset = null;\n\t\tthis._marginLeft = null;\n\t}\n\n\t/**\n\t * Returns the bounding rect of the {@link #contentPanelElement}.\n\t *\n\t * @private\n\t */\n\tprivate get _contentPanelRect(): Rect {\n\t\treturn new Rect( this.contentPanelElement );\n\t}\n}\n","import toString from './toString.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n}\n\nexport default escapeRegExp;\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./search.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./autocomplete.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map characters to HTML entities. */\nvar htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\n\n/**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\nvar escapeHtmlChar = basePropertyOf(htmlEscapes);\n\nexport default escapeHtmlChar;\n","import escapeHtmlChar from './_escapeHtmlChar.js';\nimport toString from './toString.js';\n\n/** Used to match HTML entities and HTML characters. */\nvar reUnescapedHtml = /[&<>\"']/g,\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n/**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\nfunction escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n}\n\nexport default escape;\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./highlightedtext.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./spinner.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./blocktoolbar.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./menubarmenubutton.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/menubar/menubarmenubuttonview\n */\n\nimport IconView from '../icon/iconview.js';\nimport ButtonView from '../button/buttonview.js';\nimport type { Locale } from '@ckeditor/ckeditor5-utils';\n\nimport dropdownArrowIcon from '../../theme/icons/dropdown-arrow.svg';\n\nimport '../../theme/components/menubar/menubarmenubutton.css';\n\n/**\n * A menu {@link module:ui/menubar/menubarmenuview~MenuBarMenuView#buttonView} class. Buttons like this one\n * open both top-level bar menus as well as sub-menus.\n */\nexport default class MenuBarMenuButtonView extends ButtonView {\n\t/**\n\t * An icon that displays an arrow to indicate a direction of the menu.\n\t */\n\tpublic readonly arrowView: IconView;\n\n\t/**\n\t * Creates an instance of the menu bar button view.\n\t *\n\t * @param locale The localization services instance.\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.set( {\n\t\t\twithText: true,\n\t\t\trole: 'menuitem'\n\t\t} );\n\n\t\tthis.arrowView = this._createArrowView();\n\n\t\tthis.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-menu-bar__menu__button'\n\t\t\t\t],\n\t\t\t\t'aria-haspopup': true,\n\t\t\t\t'aria-expanded': this.bindTemplate.to( 'isOn', value => String( value ) ),\n\t\t\t\t'data-cke-tooltip-disabled': bind.to( 'isOn' )\n\t\t\t},\n\t\t\ton: {\n\t\t\t\t'mouseenter': bind.to( 'mouseenter' )\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.children.add( this.arrowView );\n\t}\n\n\t/**\n\t * Creates the {@link #arrowView} instance.\n\t */\n\tprivate _createArrowView() {\n\t\tconst arrowView = new IconView();\n\n\t\tarrowView.content = dropdownArrowIcon;\n\t\tarrowView.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: 'ck-menu-bar__menu__button__arrow'\n\t\t\t}\n\t\t} );\n\n\t\treturn arrowView;\n\t}\n}\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./menubarmenulistitem.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/menubar/menubarmenulistitemview\n */\n\nimport type { Locale } from '@ckeditor/ckeditor5-utils';\nimport ListItemView from '../list/listitemview.js';\nimport type MenuBarMenuView from './menubarmenuview.js';\n\nimport '../../theme/components/menubar/menubarmenulistitem.css';\n\n/**\n * A menu bar list item view, a child of {@link module:ui/menubar/menubarmenulistview~MenuBarMenuListView}.\n *\n * Populate this item with a {@link module:ui/menubar/menubarmenulistitembuttonview~MenuBarMenuListItemButtonView} instance\n * or a {@link module:ui/menubar/menubarmenuview~MenuBarMenuView} instance to create a sub-menu.\n */\nexport default class MenuBarMenuListItemView extends ListItemView {\n\t/**\n\t * Creates an instance of the list item view.\n\t *\n\t * @param locale The localization services instance.\n\t */\n\tconstructor( locale: Locale, parentMenuView: MenuBarMenuView ) {\n\t\tsuper( locale );\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck-menu-bar__menu__item'\n\t\t\t\t]\n\t\t\t},\n\t\t\ton: {\n\t\t\t\t'mouseenter': bind.to( 'mouseenter' )\n\t\t\t}\n\t\t} );\n\n\t\tthis.delegate( 'mouseenter' ).to( parentMenuView );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/menubar/utils\n */\n\nimport MenuBarMenuListItemView from './menubarmenulistitemview.js';\nimport type MenuBarMenuView from './menubarmenuview.js';\nimport type {\n\tdefault as MenuBarView,\n\tMenuBarConfig,\n\tMenuBarMenuMouseEnterEvent,\n\tMenuBarMenuChangeIsOpenEvent,\n\tMenuBarMenuArrowRightEvent,\n\tMenuBarMenuArrowLeftEvent,\n\tMenuBarMenuDefinition,\n\tMenuBarConfigObject,\n\tMenuBarConfigAddedGroup,\n\tMenuBarConfigAddedMenu,\n\tMenuBarConfigAddedPosition,\n\tNormalizedMenuBarConfigObject\n} from './menubarview.js';\nimport clickOutsideHandler from '../bindings/clickoutsidehandler.js';\nimport type { ButtonExecuteEvent } from '../button/button.js';\nimport type ComponentFactory from '../componentfactory.js';\nimport type { FocusableView } from '../focuscycler.js';\nimport type { Editor } from '@ckeditor/ckeditor5-core';\nimport {\n\tlogWarning,\n\ttype Locale,\n\ttype ObservableChangeEvent,\n\ttype PositioningFunction\n} from '@ckeditor/ckeditor5-utils';\nimport { cloneDeep } from 'lodash-es';\n\nconst NESTED_PANEL_HORIZONTAL_OFFSET = 5;\n\ntype DeepReadonly = Readonly<{\n\t[K in keyof T]:\n\t\tT[K] extends string ? Readonly\n\t\t\t: T[K] extends Array ? Readonly>>\n\t\t\t\t: DeepReadonly;\n}>;\n\n/**\n * Behaviors of the {@link module:ui/menubar/menubarview~MenuBarView} component.\n */\nexport const MenuBarBehaviors = {\n\t/**\n\t * When the bar is already open:\n\t * * Opens the menu when the user hovers over its button.\n\t * * Closes open menu when another menu's button gets hovered.\n\t */\n\ttoggleMenusAndFocusItemsOnHover( menuBarView: MenuBarView ): void {\n\t\tmenuBarView.on( 'menu:mouseenter', evt => {\n\t\t\t// This works only when the menu bar has already been open and the user hover over the menu bar.\n\t\t\tif ( !menuBarView.isOpen ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfor ( const menuView of menuBarView.menus ) {\n\t\t\t\t// @if CK_DEBUG_MENU_BAR // const wasOpen = menuView.isOpen;\n\n\t\t\t\tconst pathLeaf = evt.path[ 0 ];\n\t\t\t\tconst isListItemContainingMenu = pathLeaf instanceof MenuBarMenuListItemView && pathLeaf.children.first === menuView;\n\n\t\t\t\tmenuView.isOpen = ( evt.path.includes( menuView ) || isListItemContainingMenu ) && menuView.isEnabled;\n\n\t\t\t\t// @if CK_DEBUG_MENU_BAR // if ( wasOpen !== menuView.isOpen ) {\n\t\t\t\t// @if CK_DEBUG_MENU_BAR // console.log( '[BEHAVIOR] toggleMenusAndFocusItemsOnHover(): Toggle',\n\t\t\t\t// @if CK_DEBUG_MENU_BAR // \tlogMenu( menuView ), 'isOpen', menuView.isOpen\n\t\t\t\t// @if CK_DEBUG_MENU_BAR // );\n\t\t\t\t// @if CK_DEBUG_MENU_BAR // }\n\t\t\t}\n\n\t\t\t( evt.source as FocusableView ).focus();\n\t\t} );\n\t},\n\n\t/**\n\t * Moves between top-level menus using the arrow left and right keys.\n\t *\n\t * If the menubar has already been open, the arrow keys move focus between top-level menu buttons and open them.\n\t * If the menubar is closed, the arrow keys only move focus between top-level menu buttons.\n\t */\n\tfocusCycleMenusOnArrows( menuBarView: MenuBarView ): void {\n\t\tconst isContentRTL = menuBarView.locale!.uiLanguageDirection === 'rtl';\n\n\t\tmenuBarView.on( 'menu:arrowright', evt => {\n\t\t\tcycleTopLevelMenus( evt.source as MenuBarMenuView, isContentRTL ? -1 : 1 );\n\t\t} );\n\n\t\tmenuBarView.on( 'menu:arrowleft', evt => {\n\t\t\tcycleTopLevelMenus( evt.source as MenuBarMenuView, isContentRTL ? 1 : -1 );\n\t\t} );\n\n\t\tfunction cycleTopLevelMenus( currentMenuView: MenuBarMenuView, step: number ) {\n\t\t\tconst currentIndex = menuBarView.children.getIndex( currentMenuView );\n\t\t\tconst isCurrentMenuViewOpen = currentMenuView.isOpen;\n\t\t\tconst menusCount = menuBarView.children.length;\n\t\t\tconst menuViewToOpen = menuBarView.children.get( ( currentIndex + menusCount + step ) % menusCount )!;\n\n\t\t\tcurrentMenuView.isOpen = false;\n\n\t\t\tif ( isCurrentMenuViewOpen ) {\n\t\t\t\tmenuViewToOpen.isOpen = true;\n\t\t\t}\n\n\t\t\tmenuViewToOpen.buttonView.focus();\n\t\t}\n\t},\n\n\t/**\n\t * Closes the entire sub-menu structure when the bar is closed. This prevents sub-menus from being open if the user\n\t * closes the entire bar, and then re-opens some top-level menu.\n\t */\n\tcloseMenusWhenTheBarCloses( menuBarView: MenuBarView ): void {\n\t\tmenuBarView.on>( 'change:isOpen', () => {\n\t\t\tif ( !menuBarView.isOpen ) {\n\t\t\t\tmenuBarView.menus.forEach( menuView => {\n\t\t\t\t\tmenuView.isOpen = false;\n\n\t\t\t\t\t// @if CK_DEBUG_MENU_BAR // console.log( '[BEHAVIOR] closeMenusWhenTheBarCloses(): Closing', logMenu( menuView ) );\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\t/**\n\t * Handles the following case:\n\t * 1. Hover to open a sub-menu (A). The button has focus.\n\t * 2. Press arrow up/down to move focus to another sub-menu (B) button.\n\t * 3. Press arrow right to open the sub-menu (B).\n\t * 4. The sub-menu (A) should close as it would with `toggleMenusAndFocusItemsOnHover()`.\n\t */\n\tcloseMenuWhenAnotherOnTheSameLevelOpens( menuBarView: MenuBarView ): void {\n\t\tmenuBarView.on( 'menu:change:isOpen', ( evt, name, isOpen ) => {\n\t\t\tif ( isOpen ) {\n\t\t\t\tmenuBarView.menus\n\t\t\t\t\t.filter( menuView => {\n\t\t\t\t\t\treturn ( evt.source as any ).parentMenuView === menuView.parentMenuView &&\n\t\t\t\t\t\t\tevt.source !== menuView &&\n\t\t\t\t\t\t\tmenuView.isOpen;\n\t\t\t\t\t} ).forEach( menuView => {\n\t\t\t\t\t\tmenuView.isOpen = false;\n\n\t\t\t\t\t\t// @if CK_DEBUG_MENU_BAR // console.log( '[BEHAVIOR] closeMenuWhenAnotherOpens(): Closing', logMenu( menuView ) );\n\t\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\t/**\n\t * Closes the bar when the user clicked outside of it (page body, editor root, etc.).\n\t */\n\tcloseOnClickOutside( menuBarView: MenuBarView ): void {\n\t\tclickOutsideHandler( {\n\t\t\temitter: menuBarView,\n\t\t\tactivator: () => menuBarView.isOpen,\n\t\t\tcallback: () => menuBarView.close(),\n\t\t\tcontextElements: () => menuBarView.children.map( child => child.element! )\n\t\t} );\n\t}\n};\n\n/**\n * Behaviors of the {@link module:ui/menubar/menubarmenuview~MenuBarMenuView} component.\n */\nexport const MenuBarMenuBehaviors = {\n\t/**\n\t * If the button of the menu is focused, pressing the arrow down key should open the panel and focus it.\n\t * This is analogous to the {@link module:ui/dropdown/dropdownview~DropdownView}.\n\t */\n\topenAndFocusPanelOnArrowDownKey( menuView: MenuBarMenuView ): void {\n\t\tmenuView.keystrokes.set( 'arrowdown', ( data, cancel ) => {\n\t\t\tif ( menuView.focusTracker.focusedElement === menuView.buttonView.element ) {\n\t\t\t\tif ( !menuView.isOpen ) {\n\t\t\t\t\tmenuView.isOpen = true;\n\t\t\t\t}\n\n\t\t\t\tmenuView.panelView.focus();\n\t\t\t\tcancel();\n\t\t\t}\n\t\t} );\n\t},\n\n\t/**\n\t * Open the menu on the right arrow key press. This allows for navigating to sub-menus using the keyboard.\n\t */\n\topenOnArrowRightKey( menuView: MenuBarMenuView ): void {\n\t\tconst keystroke = menuView.locale!.uiLanguageDirection === 'rtl' ? 'arrowleft' : 'arrowright';\n\n\t\tmenuView.keystrokes.set( keystroke, ( data, cancel ) => {\n\t\t\tif ( menuView.focusTracker.focusedElement !== menuView.buttonView.element || !menuView.isEnabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// @if CK_DEBUG_MENU_BAR // console.log( '[BEHAVIOR] openOnArrowRightKey(): Opening', logMenu( menuView ) );\n\n\t\t\tif ( !menuView.isOpen ) {\n\t\t\t\tmenuView.isOpen = true;\n\t\t\t}\n\n\t\t\tmenuView.panelView.focus();\n\t\t\tcancel();\n\t\t} );\n\t},\n\n\t/**\n\t * Opens the menu on its button click. Note that this behavior only opens but never closes the menu (unlike\n\t * {@link module:ui/dropdown/dropdownview~DropdownView}).\n\t */\n\topenOnButtonClick( menuView: MenuBarMenuView ): void {\n\t\tmenuView.buttonView.on( 'execute', () => {\n\t\t\tmenuView.isOpen = true;\n\t\t\tmenuView.panelView.focus();\n\t\t} );\n\t},\n\n\t/**\n\t * Toggles the menu on its button click. This behavior is analogous to {@link module:ui/dropdown/dropdownview~DropdownView}.\n\t */\n\ttoggleOnButtonClick( menuView: MenuBarMenuView ): void {\n\t\tmenuView.buttonView.on( 'execute', () => {\n\t\t\tmenuView.isOpen = !menuView.isOpen;\n\n\t\t\tif ( menuView.isOpen ) {\n\t\t\t\tmenuView.panelView.focus();\n\t\t\t}\n\t\t} );\n\t},\n\n\t/**\n\t * Closes the menu on the right left key press. This allows for navigating to sub-menus using the keyboard.\n\t */\n\tcloseOnArrowLeftKey( menuView: MenuBarMenuView ): void {\n\t\tconst keystroke = menuView.locale!.uiLanguageDirection === 'rtl' ? 'arrowright' : 'arrowleft';\n\n\t\tmenuView.keystrokes.set( keystroke, ( data, cancel ) => {\n\t\t\tif ( menuView.isOpen ) {\n\t\t\t\tmenuView.isOpen = false;\n\t\t\t\tmenuView.focus();\n\t\t\t\tcancel();\n\t\t\t}\n\t\t} );\n\t},\n\n\t/**\n\t * Closes the menu on the esc key press. This allows for navigating to sub-menus using the keyboard.\n\t */\n\tcloseOnEscKey( menuView: MenuBarMenuView ): void {\n\t\tmenuView.keystrokes.set( 'esc', ( data, cancel ) => {\n\t\t\tif ( menuView.isOpen ) {\n\t\t\t\tmenuView.isOpen = false;\n\t\t\t\tmenuView.focus();\n\t\t\t\tcancel();\n\t\t\t}\n\t\t} );\n\t},\n\n\t/**\n\t * Closes the menu when its parent menu also closed. This prevents from orphaned open menus when the parent menu re-opens.\n\t */\n\tcloseOnParentClose( menuView: MenuBarMenuView ): void {\n\t\tmenuView.parentMenuView!.on>( 'change:isOpen', ( evt, name, isOpen ) => {\n\t\t\tif ( !isOpen && evt.source === menuView.parentMenuView ) {\n\t\t\t\t// @if CK_DEBUG_MENU_BAR // console.log( '[BEHAVIOR] closeOnParentClose(): Closing', logMenu( menuView ) );\n\n\t\t\t\tmenuView.isOpen = false;\n\t\t\t}\n\t\t} );\n\t}\n};\n\n// @if CK_DEBUG_MENU_BAR // function logMenu( menuView: MenuBarMenuView ) {\n// @if CK_DEBUG_MENU_BAR //\treturn `\"${ menuView.buttonView.label }\"`;\n// @if CK_DEBUG_MENU_BAR // }\n\n/**\n * Contains every positioning function used by {@link module:ui/menubar/menubarmenuview~MenuBarMenuView} that decides where the\n * {@link module:ui/menubar/menubarmenuview~MenuBarMenuView#panelView} should be placed.\n *\n * Top-level menu positioning functions:\n *\n *\t┌──────┐\n *\t│ │\n *\t├──────┴────────┐\n *\t│ │\n *\t│ │\n *\t│ │\n *\t│ SE │\n *\t└───────────────┘\n *\n *\t ┌──────┐\n *\t │ │\n *\t┌────────┴──────┤\n *\t│ │\n *\t│ │\n *\t│ │\n *\t│ SW │\n *\t└───────────────┘\n *\n *\t┌───────────────┐\n *\t│ NW │\n *\t│ │\n *\t│ │\n *\t│ │\n *\t└────────┬──────┤\n *\t │ │\n *\t └──────┘\n *\n *\t┌───────────────┐\n *\t│ NE │\n *\t│ │\n *\t│ │\n *\t│ │\n *\t├──────┬────────┘\n *\t│ │\n *\t└──────┘\n *\n * Sub-menu positioning functions:\n *\n *\t┌──────┬───────────────┐\n *\t│ │ │\n *\t└──────┤ │\n *\t │ │\n *\t │ ES │\n *\t └───────────────┘\n *\n *\t┌───────────────┬──────┐\n *\t│ │ │\n *\t│ ├──────┘\n *\t│ │\n *\t│ WS │\n *\t└───────────────┘\n *\n *\t ┌───────────────┐\n *\t │ EN │\n *\t │ │\n *\t┌──────┤ │\n *\t│ │ │\n *\t└──────┴───────────────┘\n *\n *\t┌───────────────┐\n *\t│ WN │\n *\t│ │\n *\t│ ├──────┐\n *\t│ │ │\n *\t└───────────────┴──────┘\n */\nexport const MenuBarMenuViewPanelPositioningFunctions: Record = {\n\tsouthEast: buttonRect => {\n\t\treturn {\n\t\t\ttop: buttonRect.bottom,\n\t\t\tleft: buttonRect.left,\n\t\t\tname: 'se'\n\t\t};\n\t},\n\tsouthWest: ( buttonRect, panelRect ) => {\n\t\treturn {\n\t\t\ttop: buttonRect.bottom,\n\t\t\tleft: buttonRect.left - panelRect.width + buttonRect.width,\n\t\t\tname: 'sw'\n\t\t};\n\t},\n\tnorthEast: ( buttonRect, panelRect ) => {\n\t\treturn {\n\t\t\ttop: buttonRect.top - panelRect.height,\n\t\t\tleft: buttonRect.left,\n\t\t\tname: 'ne'\n\t\t};\n\t},\n\tnorthWest: ( buttonRect, panelRect ) => {\n\t\treturn {\n\t\t\ttop: buttonRect.top - panelRect.height,\n\t\t\tleft: buttonRect.left - panelRect.width + buttonRect.width,\n\t\t\tname: 'nw'\n\t\t};\n\t},\n\teastSouth: buttonRect => {\n\t\treturn {\n\t\t\ttop: buttonRect.top,\n\t\t\tleft: buttonRect.right - NESTED_PANEL_HORIZONTAL_OFFSET,\n\t\t\tname: 'es'\n\t\t};\n\t},\n\teastNorth: ( buttonRect, panelRect ) => {\n\t\treturn {\n\t\t\ttop: buttonRect.top - panelRect.height,\n\t\t\tleft: buttonRect.right - NESTED_PANEL_HORIZONTAL_OFFSET,\n\t\t\tname: 'en'\n\t\t};\n\t},\n\twestSouth: ( buttonRect, panelRect ) => {\n\t\treturn {\n\t\t\ttop: buttonRect.top,\n\t\t\tleft: buttonRect.left - panelRect.width + NESTED_PANEL_HORIZONTAL_OFFSET,\n\t\t\tname: 'ws'\n\t\t};\n\t},\n\twestNorth: ( buttonRect, panelRect ) => {\n\t\treturn {\n\t\t\ttop: buttonRect.top - panelRect.height,\n\t\t\tleft: buttonRect.left - panelRect.width + NESTED_PANEL_HORIZONTAL_OFFSET,\n\t\t\tname: 'wn'\n\t\t};\n\t}\n} as const;\n\n/**\n * The default items {@link module:core/editor/editorconfig~EditorConfig#menuBar configuration} of the\n * {@link module:ui/menubar/menubarview~MenuBarView} component. It contains names of all menu bar components\n * registered in the {@link module:ui/componentfactory~ComponentFactory component factory} (available in the project).\n *\n * **Note**: Menu bar component names provided by core editor features are prefixed with `menuBar:` in order to distinguish\n * them from components referenced by the {@link module:core/editor/editorconfig~EditorConfig#toolbar toolbar configuration}, for instance,\n * `'menuBar:bold'` is a menu bar button but `'bold'` is a toolbar button.\n *\n * Below is the preset menu bar structure (the default value of `config.menuBar.items` property):\n *\n * ```ts\n * [\n * \t{\n * \t\tmenuId: 'file',\n * \t\tlabel: 'File',\n * \t\tgroups: [\n * \t\t\t{\n * \t\t\t\tgroupId: 'export',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:exportPdf',\n * \t\t\t\t\t'menuBar:exportWord'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'import',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:importWord'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'revisionHistory',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:revisionHistory'\n * \t\t\t\t]\n * \t\t\t}\n * \t\t]\n * \t},\n * \t{\n * \t\tmenuId: 'edit',\n * \t\tlabel: 'Edit',\n * \t\tgroups: [\n * \t\t\t{\n * \t\t\t\tgroupId: 'undo',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:undo',\n * \t\t\t\t\t'menuBar:redo'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'selectAll',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:selectAll'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'findAndReplace',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:findAndReplace'\n * \t\t\t\t]\n * \t\t\t}\n * \t\t]\n * \t},\n * \t{\n * \t\tmenuId: 'view',\n * \t\tlabel: 'View',\n * \t\tgroups: [\n * \t\t\t{\n * \t\t\t\tgroupId: 'sourceEditing',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:sourceEditing'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'showBlocks',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:showBlocks'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'restrictedEditingException',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:restrictedEditingException'\n * \t\t\t\t]\n * \t\t\t}\n * \t\t]\n * \t},\n * \t{\n * \t\tmenuId: 'insert',\n * \t\tlabel: 'Insert',\n * \t\tgroups: [\n * \t\t\t{\n * \t\t\t\tgroupId: 'insertMainWidgets',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:uploadImage',\n * \t\t\t\t\t'menuBar:ckbox',\n * \t\t\t\t\t'menuBar:ckfinder',\n * \t\t\t\t\t'menuBar:insertTable'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'insertInline',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:link',\n * \t\t\t\t\t'menuBar:comment'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'insertMinorWidgets',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:insertTemplate',\n * \t\t\t\t\t'menuBar:blockQuote',\n * \t\t\t\t\t'menuBar:codeBlock',\n * \t\t\t\t\t'menuBar:htmlEmbed'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'insertStructureWidgets',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:horizontalLine',\n * \t\t\t\t\t'menuBar:pageBreak',\n * \t\t\t\t\t'menuBar:tableOfContents'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'restrictedEditing',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:restrictedEditing'\n * \t\t\t\t]\n * \t\t\t}\n * \t\t]\n * \t},\n * \t{\n * \t\tmenuId: 'format',\n * \t\tlabel: 'Format',\n * \t\tgroups: [\n * \t\t\t{\n * \t\t\t\tgroupId: 'textAndFont',\n * \t\t\t\titems: [\n * \t\t\t\t\t{\n * \t\t\t\t\t\tmenuId: 'text',\n * \t\t\t\t\t\tlabel: 'Text',\n * \t\t\t\t\t\tgroups: [\n * \t\t\t\t\t\t\t{\n * \t\t\t\t\t\t\t\tgroupId: 'basicStyles',\n * \t\t\t\t\t\t\t\titems: [\n * \t\t\t\t\t\t\t\t\t'menuBar:bold',\n * \t\t\t\t\t\t\t\t\t'menuBar:italic',\n * \t\t\t\t\t\t\t\t\t'menuBar:underline',\n * \t\t\t\t\t\t\t\t\t'menuBar:strikethrough',\n * \t\t\t\t\t\t\t\t\t'menuBar:superscript',\n * \t\t\t\t\t\t\t\t\t'menuBar:subscript',\n * \t\t\t\t\t\t\t\t\t'menuBar:code'\n * \t\t\t\t\t\t\t\t]\n * \t\t\t\t\t\t\t},\n * \t\t\t\t\t\t\t{\n * \t\t\t\t\t\t\t\tgroupId: 'textPartLanguage',\n * \t\t\t\t\t\t\t\titems: [\n * \t\t\t\t\t\t\t\t\t'menuBar:textPartLanguage'\n * \t\t\t\t\t\t\t\t]\n * \t\t\t\t\t\t\t}\n * \t\t\t\t\t\t]\n * \t\t\t\t\t},\n * \t\t\t\t\t{\n * \t\t\t\t\t\tmenuId: 'font',\n * \t\t\t\t\t\tlabel: 'Font',\n * \t\t\t\t\t\tgroups: [\n * \t\t\t\t\t\t\t{\n * \t\t\t\t\t\t\t\tgroupId: 'fontProperties',\n * \t\t\t\t\t\t\t\titems: [\n * \t\t\t\t\t\t\t\t\t'menuBar:fontSize',\n * \t\t\t\t\t\t\t\t\t'menuBar:fontFamily'\n * \t\t\t\t\t\t\t\t]\n * \t\t\t\t\t\t\t},\n * \t\t\t\t\t\t\t{\n * \t\t\t\t\t\t\t\tgroupId: 'fontColors',\n * \t\t\t\t\t\t\t\titems: [\n * \t\t\t\t\t\t\t\t\t'menuBar:fontColor',\n * \t\t\t\t\t\t\t\t\t'menuBar:fontBackgroundColor'\n * \t\t\t\t\t\t\t\t]\n * \t\t\t\t\t\t\t},\n * \t\t\t\t\t\t\t{\n * \t\t\t\t\t\t\t\tgroupId: 'highlight',\n * \t\t\t\t\t\t\t\titems: [\n * \t\t\t\t\t\t\t\t\t'menuBar:highlight'\n * \t\t\t\t\t\t\t\t]\n * \t\t\t\t\t\t\t}\n * \t\t\t\t\t\t]\n * \t\t\t\t\t},\n * \t\t\t\t\t'menuBar:heading'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'list',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:bulletedList',\n * \t\t\t\t\t'menuBar:numberedList',\n * \t\t\t\t\t'menuBar:todoList'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'indent',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:alignment',\n * \t\t\t\t\t'menuBar:indent',\n * \t\t\t\t\t'menuBar:outdent'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'caseChange',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:caseChange'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'removeFormat',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:removeFormat'\n * \t\t\t\t]\n * \t\t\t}\n * \t\t]\n * \t},\n * \t{\n * \t\tmenuId: 'tools',\n * \t\tlabel: 'Tools',\n * \t\tgroups: [\n * \t\t\t{\n * \t\t\t\tgroupId: 'aiTools',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:aiAssistant',\n * \t\t\t\t\t'menuBar:aiCommands'\n * \t\t\t\t]\n * \t\t\t},\n * \t\t\t{\n * \t\t\t\tgroupId: 'tools',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:trackChanges',\n * \t\t\t\t\t'menuBar:commentsArchive'\n * \t\t\t\t]\n * \t\t\t}\n * \t\t]\n * \t},\n * \t{\n * \t\tmenuId: 'help',\n * \t\tlabel: 'Help',\n * \t\tgroups: [\n * \t\t\t{\n * \t\t\t\tgroupId: 'help',\n * \t\t\t\titems: [\n * \t\t\t\t\t'menuBar:accessibilityHelp'\n * \t\t\t\t]\n * \t\t\t}\n * \t\t]\n * \t}\n * ];\n * ```\n *\n * The menu bar can be customized using the `config.menuBar.removeItems` and `config.menuBar.addItems` properties.\n */\n// **NOTE: Whenever you make changes to this value, reflect it in the documentation above!**\nexport const DefaultMenuBarItems: DeepReadonly = [\n\t{\n\t\tmenuId: 'file',\n\t\tlabel: 'File',\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tgroupId: 'export',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:exportPdf',\n\t\t\t\t\t'menuBar:exportWord'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'import',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:importWord'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'revisionHistory',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:revisionHistory'\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tmenuId: 'edit',\n\t\tlabel: 'Edit',\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tgroupId: 'undo',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:undo',\n\t\t\t\t\t'menuBar:redo'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'selectAll',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:selectAll'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'findAndReplace',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:findAndReplace'\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tmenuId: 'view',\n\t\tlabel: 'View',\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tgroupId: 'sourceEditing',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:sourceEditing'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'showBlocks',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:showBlocks'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'restrictedEditingException',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:restrictedEditingException'\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tmenuId: 'insert',\n\t\tlabel: 'Insert',\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tgroupId: 'insertMainWidgets',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:uploadImage',\n\t\t\t\t\t'menuBar:ckbox',\n\t\t\t\t\t'menuBar:ckfinder',\n\t\t\t\t\t'menuBar:insertTable'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'insertInline',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:link',\n\t\t\t\t\t'menuBar:comment'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'insertMinorWidgets',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:insertTemplate',\n\t\t\t\t\t'menuBar:blockQuote',\n\t\t\t\t\t'menuBar:codeBlock',\n\t\t\t\t\t'menuBar:htmlEmbed'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'insertStructureWidgets',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:horizontalLine',\n\t\t\t\t\t'menuBar:pageBreak',\n\t\t\t\t\t'menuBar:tableOfContents'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'restrictedEditing',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:restrictedEditing'\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tmenuId: 'format',\n\t\tlabel: 'Format',\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tgroupId: 'textAndFont',\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\tmenuId: 'text',\n\t\t\t\t\t\tlabel: 'Text',\n\t\t\t\t\t\tgroups: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tgroupId: 'basicStyles',\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t'menuBar:bold',\n\t\t\t\t\t\t\t\t\t'menuBar:italic',\n\t\t\t\t\t\t\t\t\t'menuBar:underline',\n\t\t\t\t\t\t\t\t\t'menuBar:strikethrough',\n\t\t\t\t\t\t\t\t\t'menuBar:superscript',\n\t\t\t\t\t\t\t\t\t'menuBar:subscript',\n\t\t\t\t\t\t\t\t\t'menuBar:code'\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tgroupId: 'textPartLanguage',\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t'menuBar:textPartLanguage'\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tmenuId: 'font',\n\t\t\t\t\t\tlabel: 'Font',\n\t\t\t\t\t\tgroups: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tgroupId: 'fontProperties',\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t'menuBar:fontSize',\n\t\t\t\t\t\t\t\t\t'menuBar:fontFamily'\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tgroupId: 'fontColors',\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t'menuBar:fontColor',\n\t\t\t\t\t\t\t\t\t'menuBar:fontBackgroundColor'\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tgroupId: 'highlight',\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t'menuBar:highlight'\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t},\n\t\t\t\t\t'menuBar:heading'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'list',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:bulletedList',\n\t\t\t\t\t'menuBar:numberedList',\n\t\t\t\t\t'menuBar:todoList'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'indent',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:alignment',\n\t\t\t\t\t'menuBar:indent',\n\t\t\t\t\t'menuBar:outdent'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'caseChange',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:caseChange'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'removeFormat',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:removeFormat'\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tmenuId: 'tools',\n\t\tlabel: 'Tools',\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tgroupId: 'aiTools',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:aiAssistant',\n\t\t\t\t\t'menuBar:aiCommands'\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\tgroupId: 'tools',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:trackChanges',\n\t\t\t\t\t'menuBar:commentsArchive'\n\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t},\n\t{\n\t\tmenuId: 'help',\n\t\tlabel: 'Help',\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tgroupId: 'help',\n\t\t\t\titems: [\n\t\t\t\t\t'menuBar:accessibilityHelp'\n\t\t\t\t]\n\t\t\t}\n\t\t]\n\t}\n];\n\n/**\n * Performs a cleanup and normalization of the menu bar configuration.\n */\nexport function normalizeMenuBarConfig( config: Readonly ): NormalizedMenuBarConfigObject {\n\tlet configObject: NormalizedMenuBarConfigObject;\n\n\t// The integrator specified the config as an object but without items. Let's give them defaults but respect their\n\t// additions and removals.\n\tif ( !( 'items' in config ) || !config.items ) {\n\t\tconfigObject = {\n\t\t\titems: cloneDeep( DefaultMenuBarItems ) as Array,\n\t\t\taddItems: [],\n\t\t\tremoveItems: [],\n\t\t\tisVisible: true,\n\t\t\tisUsingDefaultConfig: true,\n\t\t\t...config\n\t\t};\n\t}\n\t// The integrator specified the config as an object and there are items there. Let's take it as it is.\n\telse {\n\t\tconfigObject = {\n\t\t\titems: config.items,\n\t\t\tremoveItems: [],\n\t\t\taddItems: [],\n\t\t\tisVisible: true,\n\t\t\tisUsingDefaultConfig: false,\n\t\t\t...config\n\t\t};\n\t}\n\n\treturn configObject;\n}\n\n/**\n * Processes a normalized menu bar config and returns a config clone with the following modifications:\n *\n * * Removed components that are not available in the component factory,\n * * Removed obsolete separators,\n * * Purged empty menus,\n * * Localized top-level menu labels.\n */\nexport function processMenuBarConfig( {\n\tnormalizedConfig,\n\tlocale,\n\tcomponentFactory\n}: {\n\tnormalizedConfig: NormalizedMenuBarConfigObject;\n\tlocale: Locale;\n\tcomponentFactory: ComponentFactory;\n} ): NormalizedMenuBarConfigObject {\n\tconst configClone = cloneDeep( normalizedConfig ) as NormalizedMenuBarConfigObject;\n\n\thandleRemovals( normalizedConfig, configClone );\n\thandleAdditions( normalizedConfig, configClone );\n\tpurgeUnavailableComponents( normalizedConfig, configClone, componentFactory );\n\tpurgeEmptyMenus( normalizedConfig, configClone );\n\tlocalizeMenuLabels( configClone, locale );\n\n\treturn configClone;\n}\n\n/**\n * Removes items from the menu bar config based on user `removeItems` configuration. Users can remove\n * individual items, groups, or entire menus. For each removed item, a warning is logged if the item\n * was not found in the configuration.\n */\nfunction handleRemovals(\n\toriginalConfig: NormalizedMenuBarConfigObject,\n\tconfig: NormalizedMenuBarConfigObject\n) {\n\tconst itemsToBeRemoved = config.removeItems;\n\tconst successfullyRemovedItems: Array = [];\n\n\t// Remove top-level menus.\n\tconfig.items = config.items.filter( ( { menuId } ) => {\n\t\tif ( itemsToBeRemoved.includes( menuId ) ) {\n\t\t\tsuccessfullyRemovedItems.push( menuId );\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} );\n\n\twalkConfigMenus( config.items, menuDefinition => {\n\t\t// Remove groups from menus.\n\t\tmenuDefinition.groups = menuDefinition.groups.filter( ( { groupId } ) => {\n\t\t\tif ( itemsToBeRemoved.includes( groupId ) ) {\n\t\t\t\tsuccessfullyRemovedItems.push( groupId );\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t} );\n\n\t\t// Remove sub-menus and items from groups.\n\t\tfor ( const groupDefinition of menuDefinition.groups ) {\n\t\t\tgroupDefinition.items = groupDefinition.items.filter( item => {\n\t\t\t\tconst itemId = getIdFromGroupItem( item );\n\n\t\t\t\tif ( itemsToBeRemoved.includes( itemId ) ) {\n\t\t\t\t\tsuccessfullyRemovedItems.push( itemId );\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t} );\n\t\t}\n\t} );\n\n\tfor ( const itemName of itemsToBeRemoved ) {\n\t\tif ( !successfullyRemovedItems.includes( itemName ) ) {\n\t\t\t/**\n\t\t\t * There was a problem processing the configuration of the menu bar. The item with the given\n\t\t\t * name does could not be removed from the menu bar configuration.\n\t\t\t *\n\t\t\t * This warning usually shows up when the {@link module:core/plugin~Plugin} which is supposed\n\t\t\t * to provide a menu bar item has not been loaded or there is a typo in the\n\t\t\t * {@link module:core/editor/editorconfig~EditorConfig#menuBar menu bar configuration}.\n\t\t\t *\n\t\t\t * @error menu-bar-item-could-not-be-removed\n\t\t\t * @param menuBarConfig The full configuration of the menu bar.\n\t\t\t * @param itemName The name of the item that was not removed from the menu bar.\n\t\t\t */\n\t\t\tlogWarning( 'menu-bar-item-could-not-be-removed', {\n\t\t\t\tmenuBarConfig: originalConfig,\n\t\t\t\titemName\n\t\t\t} );\n\t\t}\n\t}\n}\n\n/**\n * Handles the `config.menuBar.addItems` configuration. It allows for adding menus, groups, and items at arbitrary\n * positions in the menu bar. If the position does not exist, a warning is logged.\n */\nfunction handleAdditions(\n\toriginalConfig: NormalizedMenuBarConfigObject,\n\tconfig: NormalizedMenuBarConfigObject\n) {\n\tconst itemsToBeAdded = config.addItems;\n\tconst successFullyAddedItems: typeof itemsToBeAdded = [];\n\n\tfor ( const itemToAdd of itemsToBeAdded ) {\n\t\tconst relation = getRelationFromPosition( itemToAdd.position );\n\t\tconst relativeId = getRelativeIdFromPosition( itemToAdd.position );\n\n\t\t// Adding a menu.\n\t\tif ( isMenuBarMenuAddition( itemToAdd ) ) {\n\t\t\tif ( !relativeId ) {\n\t\t\t\t// Adding a top-level menu at the beginning of the menu bar.\n\t\t\t\tif ( relation === 'start' ) {\n\t\t\t\t\tconfig.items.unshift( itemToAdd.menu );\n\t\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t\t}\n\t\t\t\t// Adding a top-level menu at the end of the menu bar.\n\t\t\t\telse if ( relation === 'end' ) {\n\t\t\t\t\tconfig.items.push( itemToAdd.menu );\n\t\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst topLevelMenuDefinitionIndex = config.items.findIndex( menuDefinition => menuDefinition.menuId === relativeId );\n\n\t\t\t\t// Adding a top-level menu somewhere between existing menu bar menus.\n\t\t\t\tif ( topLevelMenuDefinitionIndex != -1 ) {\n\t\t\t\t\tif ( relation === 'before' ) {\n\t\t\t\t\t\tconfig.items.splice( topLevelMenuDefinitionIndex, 0, itemToAdd.menu );\n\t\t\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t\t\t} else if ( relation === 'after' ) {\n\t\t\t\t\t\tconfig.items.splice( topLevelMenuDefinitionIndex + 1, 0, itemToAdd.menu );\n\t\t\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Adding a sub-menu to an existing items group.\n\t\t\t\telse {\n\t\t\t\t\tconst wasAdded = addMenuOrItemToGroup( config, itemToAdd.menu, relativeId, relation );\n\n\t\t\t\t\tif ( wasAdded ) {\n\t\t\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Adding a group.\n\t\telse if ( isMenuBarMenuGroupAddition( itemToAdd ) ) {\n\t\t\twalkConfigMenus( config.items, menuDefinition => {\n\t\t\t\tif ( menuDefinition.menuId === relativeId ) {\n\t\t\t\t\t// Add a group at the start of a menu.\n\t\t\t\t\tif ( relation === 'start' ) {\n\t\t\t\t\t\tmenuDefinition.groups.unshift( itemToAdd.group );\n\t\t\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t\t\t}\n\t\t\t\t\t// Add a group at the end of a menu.\n\t\t\t\t\telse if ( relation === 'end' ) {\n\t\t\t\t\t\tmenuDefinition.groups.push( itemToAdd.group );\n\t\t\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst relativeGroupIndex = menuDefinition.groups.findIndex( group => group.groupId === relativeId );\n\n\t\t\t\t\tif ( relativeGroupIndex !== -1 ) {\n\t\t\t\t\t\t// Add a group before an existing group in a menu.\n\t\t\t\t\t\tif ( relation === 'before' ) {\n\t\t\t\t\t\t\tmenuDefinition.groups.splice( relativeGroupIndex, 0, itemToAdd.group );\n\t\t\t\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Add a group after an existing group in a menu.\n\t\t\t\t\t\telse if ( relation === 'after' ) {\n\t\t\t\t\t\t\tmenuDefinition.groups.splice( relativeGroupIndex + 1, 0, itemToAdd.group );\n\t\t\t\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\t// Adding an item to an existing items group.\n\t\telse {\n\t\t\tconst wasAdded = addMenuOrItemToGroup( config, itemToAdd.item, relativeId, relation );\n\n\t\t\tif ( wasAdded ) {\n\t\t\t\tsuccessFullyAddedItems.push( itemToAdd );\n\t\t\t}\n\t\t}\n\t}\n\n\tfor ( const addedItemConfig of itemsToBeAdded ) {\n\t\tif ( !successFullyAddedItems.includes( addedItemConfig ) ) {\n\t\t\t/**\n\t\t\t * There was a problem processing the configuration of the menu bar. The configured item could not be added\n\t\t\t * because the position it was supposed to be added to does not exist.\n\t\t\t *\n\t\t\t * This warning usually shows up when the {@link module:core/plugin~Plugin} which is supposed\n\t\t\t * to provide a menu bar item has not been loaded or there is a typo in the\n\t\t\t * {@link module:core/editor/editorconfig~EditorConfig#menuBar menu bar configuration}.\n\t\t\t *\n\t\t\t * @error menu-bar-item-could-not-be-removed\n\t\t\t * @param menuBarConfig The full configuration of the menu bar.\n\t\t\t * @param itemName The name of the item that was not removed from the menu bar.\n\t\t\t */\n\t\t\tlogWarning( 'menu-bar-item-could-not-be-added', {\n\t\t\t\tmenuBarConfig: originalConfig,\n\t\t\t\taddedItemConfig\n\t\t\t} );\n\t\t}\n\t}\n}\n\n/**\n * Handles adding a sub-menu or an item into a group. The logic is the same for both cases.\n */\nfunction addMenuOrItemToGroup(\n\tconfig: NormalizedMenuBarConfigObject,\n\titemOrMenuToAdd: string | MenuBarMenuDefinition,\n\trelativeId: string | null,\n\trelation: 'start' | 'end' | 'before' | 'after'\n): boolean {\n\tlet wasAdded = false;\n\n\twalkConfigMenus( config.items, menuDefinition => {\n\t\tfor ( const { groupId, items: groupItems } of menuDefinition.groups ) {\n\t\t\t// Avoid infinite loops.\n\t\t\tif ( wasAdded ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( groupId === relativeId ) {\n\t\t\t\t// Adding an item/menu at the beginning of a group.\n\t\t\t\tif ( relation === 'start' ) {\n\t\t\t\t\tgroupItems.unshift( itemOrMenuToAdd );\n\t\t\t\t\twasAdded = true;\n\t\t\t\t}\n\t\t\t\t// Adding an item/menu at the end of a group.\n\t\t\t\telse if ( relation === 'end' ) {\n\t\t\t\t\tgroupItems.push( itemOrMenuToAdd );\n\t\t\t\t\twasAdded = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Adding an item/menu relative to an existing item/menu.\n\t\t\t\tconst relativeItemIndex = groupItems.findIndex( groupItem => {\n\t\t\t\t\treturn getIdFromGroupItem( groupItem ) === relativeId;\n\t\t\t\t} );\n\n\t\t\t\tif ( relativeItemIndex !== -1 ) {\n\t\t\t\t\tif ( relation === 'before' ) {\n\t\t\t\t\t\tgroupItems.splice( relativeItemIndex, 0, itemOrMenuToAdd );\n\t\t\t\t\t\twasAdded = true;\n\t\t\t\t\t} else if ( relation === 'after' ) {\n\t\t\t\t\t\tgroupItems.splice( relativeItemIndex + 1, 0, itemOrMenuToAdd );\n\t\t\t\t\t\twasAdded = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} );\n\n\treturn wasAdded;\n}\n\n/**\n * Removes components from the menu bar configuration that are not available in the factory and would\n * not be instantiated. Warns about missing components if the menu bar configuration was specified by the user.\n */\nfunction purgeUnavailableComponents(\n\toriginalConfig: DeepReadonly,\n\tconfig: NormalizedMenuBarConfigObject,\n\tcomponentFactory: ComponentFactory\n) {\n\twalkConfigMenus( config.items, menuDefinition => {\n\t\tfor ( const groupDefinition of menuDefinition.groups ) {\n\t\t\tgroupDefinition.items = groupDefinition.items.filter( item => {\n\t\t\t\tconst isItemUnavailable = typeof item === 'string' && !componentFactory.has( item );\n\n\t\t\t\t// The default configuration contains all possible editor features. But integrators' editors rarely load\n\t\t\t\t// every possible feature. This is why we do not want to log warnings about unavailable items for the default config\n\t\t\t\t// because they would show up in almost every integration. If the configuration has been provided by\n\t\t\t\t// the integrator, on the other hand, then these warnings bring value.\n\t\t\t\tif ( isItemUnavailable && !config.isUsingDefaultConfig ) {\n\t\t\t\t\t/**\n\t\t\t\t\t * There was a problem processing the configuration of the menu bar. The item with the given\n\t\t\t\t\t * name does not exist so it was omitted when rendering the menu bar.\n\t\t\t\t\t *\n\t\t\t\t\t * This warning usually shows up when the {@link module:core/plugin~Plugin} which is supposed\n\t\t\t\t\t * to provide a menu bar item has not been loaded or there is a typo in the\n\t\t\t\t\t * {@link module:core/editor/editorconfig~EditorConfig#menuBar menu bar configuration}.\n\t\t\t\t\t *\n\t\t\t\t\t * Make sure the plugin responsible for this menu bar item is loaded and the menu bar configuration\n\t\t\t\t\t * is correct, e.g. {@link module:basic-styles/bold/boldui~BoldUI} is loaded for the `'menuBar:bold'`\n\t\t\t\t\t * menu bar item.\n\t\t\t\t\t *\n\t\t\t\t\t * @error menu-bar-item-unavailable\n\t\t\t\t\t * @param menuBarConfig The full configuration of the menu bar.\n\t\t\t\t\t * @param parentMenuConfig The config of the menu the unavailable component was defined in.\n\t\t\t\t\t * @param componentName The name of the unavailable component.\n\t\t\t\t\t */\n\t\t\t\t\tlogWarning( 'menu-bar-item-unavailable', {\n\t\t\t\t\t\tmenuBarConfig: originalConfig,\n\t\t\t\t\t\tparentMenuConfig: cloneDeep( menuDefinition ),\n\t\t\t\t\t\tcomponentName: item\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn !isItemUnavailable;\n\t\t\t} );\n\t\t}\n\t} );\n}\n\n/**\n * Removes empty menus from the menu bar configuration to improve the visual UX. Such menus can occur\n * when some plugins responsible for providing menu bar items have not been loaded and some part of\n * the configuration populated menus using these components exclusively.\n */\nfunction purgeEmptyMenus(\n\toriginalConfig: NormalizedMenuBarConfigObject,\n\tconfig: NormalizedMenuBarConfigObject\n) {\n\tconst isUsingDefaultConfig = config.isUsingDefaultConfig;\n\tlet wasSubMenuPurged = false;\n\n\t// Purge top-level menus.\n\tconfig.items = config.items.filter( menuDefinition => {\n\t\tif ( !menuDefinition.groups.length ) {\n\t\t\twarnAboutEmptyMenu( originalConfig, menuDefinition, isUsingDefaultConfig );\n\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} );\n\n\t// Warn if there were no top-level menus left in the menu bar after purging.\n\tif ( !config.items.length ) {\n\t\twarnAboutEmptyMenu( originalConfig, originalConfig, isUsingDefaultConfig );\n\n\t\treturn;\n\t}\n\n\t// Purge sub-menus and groups.\n\twalkConfigMenus( config.items, menuDefinition => {\n\t\t// Get rid of empty groups.\n\t\tmenuDefinition.groups = menuDefinition.groups.filter( groupDefinition => {\n\t\t\tif ( !groupDefinition.items.length ) {\n\t\t\t\twasSubMenuPurged = true;\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t} );\n\n\t\t// Get rid of empty sub-menus.\n\t\tfor ( const groupDefinition of menuDefinition.groups ) {\n\t\t\tgroupDefinition.items = groupDefinition.items.filter( item => {\n\t\t\t\t// If no groups were left after removing empty ones.\n\t\t\t\tif ( isMenuDefinition( item ) && !item.groups.length ) {\n\t\t\t\t\twarnAboutEmptyMenu( originalConfig, item, isUsingDefaultConfig );\n\t\t\t\t\twasSubMenuPurged = true;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t} );\n\t\t}\n\t} );\n\n\tif ( wasSubMenuPurged ) {\n\t\t// The config is walked from the root to the leaves so if anything gets removed, we need to re-run the\n\t\t// whole process because it could've affected parents.\n\t\tpurgeEmptyMenus( originalConfig, config );\n\t}\n}\n\nfunction warnAboutEmptyMenu(\n\toriginalConfig: NormalizedMenuBarConfigObject,\n\temptyMenuConfig: MenuBarMenuDefinition | DeepReadonly,\n\tisUsingDefaultConfig: boolean\n) {\n\tif ( isUsingDefaultConfig ) {\n\t\treturn;\n\t}\n\n\t/**\n\t * There was a problem processing the configuration of the menu bar. One of the menus\n\t * is empty so it was omitted when rendering the menu bar.\n\t *\n\t * This warning usually shows up when some {@link module:core/plugin~Plugin plugins} responsible for\n\t * providing menu bar items have not been loaded and the\n\t * {@link module:core/editor/editorconfig~EditorConfig#menuBar menu bar configuration} was not updated.\n\t *\n\t * Make sure all necessary editor plugins are loaded and/or update the menu bar configuration\n\t * to account for the missing menu items.\n\t *\n\t * @error menu-bar-menu-empty\n\t * @param menuBarConfig The full configuration of the menu bar.\n\t * @param emptyMenuConfig The definition of the menu that has no child items.\n\t */\n\tlogWarning( 'menu-bar-menu-empty', {\n\t\tmenuBarConfig: originalConfig,\n\t\temptyMenuConfig\n\t} );\n}\n\n/**\n * Localizes the user-config using pre-defined localized category labels.\n */\nfunction localizeMenuLabels( config: NormalizedMenuBarConfigObject, locale: Locale ) {\n\tconst t = locale.t;\n\tconst localizedCategoryLabels: Record = {\n\t\t// Top-level categories.\n\t\t'File': t( {\n\t\t\tstring: 'File',\n\t\t\tid: 'MENU_BAR_MENU_FILE'\n\t\t} ),\n\t\t'Edit': t( {\n\t\t\tstring: 'Edit',\n\t\t\tid: 'MENU_BAR_MENU_EDIT'\n\t\t} ),\n\t\t'View': t( {\n\t\t\tstring: 'View',\n\t\t\tid: 'MENU_BAR_MENU_VIEW'\n\t\t} ),\n\t\t'Insert': t( {\n\t\t\tstring: 'Insert',\n\t\t\tid: 'MENU_BAR_MENU_INSERT'\n\t\t} ),\n\t\t'Format': t( {\n\t\t\tstring: 'Format',\n\t\t\tid: 'MENU_BAR_MENU_FORMAT'\n\t\t} ),\n\t\t'Tools': t( {\n\t\t\tstring: 'Tools',\n\t\t\tid: 'MENU_BAR_MENU_TOOLS'\n\t\t} ),\n\t\t'Help': t( {\n\t\t\tstring: 'Help',\n\t\t\tid: 'MENU_BAR_MENU_HELP'\n\t\t} ),\n\n\t\t// Sub-menus.\n\t\t'Text': t( {\n\t\t\tstring: 'Text',\n\t\t\tid: 'MENU_BAR_MENU_TEXT'\n\t\t} ),\n\t\t'Font': t( {\n\t\t\tstring: 'Font',\n\t\t\tid: 'MENU_BAR_MENU_FONT'\n\t\t} )\n\t};\n\n\twalkConfigMenus( config.items, definition => {\n\t\tif ( definition.label in localizedCategoryLabels ) {\n\t\t\tdefinition.label = localizedCategoryLabels[ definition.label ];\n\t\t}\n\t} );\n}\n\n/**\n * Recursively visits all menu definitions in the config and calls the callback for each of them.\n */\nfunction walkConfigMenus(\n\tdefinition: NormalizedMenuBarConfigObject[ 'items' ] | MenuBarMenuDefinition,\n\tcallback: ( definition: MenuBarMenuDefinition ) => void\n) {\n\tif ( Array.isArray( definition ) ) {\n\t\tfor ( const topLevelMenuDefinition of definition ) {\n\t\t\twalk( topLevelMenuDefinition );\n\t\t}\n\t}\n\n\tfunction walk( menuDefinition: MenuBarMenuDefinition ) {\n\t\tcallback( menuDefinition );\n\n\t\tfor ( const groupDefinition of menuDefinition.groups ) {\n\t\t\tfor ( const groupItem of groupDefinition.items ) {\n\t\t\t\tif ( isMenuDefinition( groupItem ) ) {\n\t\t\t\t\twalk( groupItem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction isMenuBarMenuAddition( definition: any ): definition is MenuBarConfigAddedMenu {\n\treturn typeof definition === 'object' && 'menu' in definition;\n}\n\nfunction isMenuBarMenuGroupAddition( definition: any ): definition is MenuBarConfigAddedGroup {\n\treturn typeof definition === 'object' && 'group' in definition;\n}\n\nfunction getRelationFromPosition( position: MenuBarConfigAddedPosition ): 'start' | 'end' | 'before' | 'after' {\n\tif ( position.startsWith( 'start' ) ) {\n\t\treturn 'start';\n\t} else if ( position.startsWith( 'end' ) ) {\n\t\treturn 'end';\n\t} else if ( position.startsWith( 'after' ) ) {\n\t\treturn 'after';\n\t} else {\n\t\treturn 'before';\n\t}\n}\n\nfunction getRelativeIdFromPosition( position: MenuBarConfigAddedPosition ): string | null {\n\tconst match = position.match( /^[^:]+:(.+)/ );\n\n\tif ( match ) {\n\t\treturn match[ 1 ];\n\t}\n\n\treturn null;\n}\n\nfunction getIdFromGroupItem( item: string | MenuBarMenuDefinition ): string {\n\treturn typeof item === 'string' ? item : item.menuId;\n}\n\nfunction isMenuDefinition( definition: any ): definition is MenuBarMenuDefinition {\n\treturn typeof definition === 'object' && 'menuId' in definition;\n}\n\n/**\n * Initializes menu bar for given editor.\n *\n * @internal\n */\nexport function _initMenuBar( editor: Editor, menuBarView: MenuBarView ): void {\n\tconst menuBarViewElement = menuBarView.element!;\n\n\teditor.ui.focusTracker.add( menuBarViewElement );\n\teditor.keystrokes.listenTo( menuBarViewElement );\n\n\tconst normalizedMenuBarConfig = normalizeMenuBarConfig( editor.config.get( 'menuBar' ) || {} );\n\n\tmenuBarView.fillFromConfig( normalizedMenuBarConfig, editor.ui.componentFactory );\n\n\teditor.keystrokes.set( 'Esc', ( data, cancel ) => {\n\t\tif ( menuBarViewElement.contains( editor.ui.focusTracker.focusedElement ) ) {\n\t\t\teditor.editing.view.focus();\n\t\t\tcancel();\n\t\t}\n\t} );\n\n\teditor.keystrokes.set( 'Alt+F9', ( data, cancel ) => {\n\t\tif ( !menuBarViewElement.contains( editor.ui.focusTracker.focusedElement ) ) {\n\t\t\tmenuBarView!.focus();\n\t\t\tcancel();\n\t\t}\n\t} );\n}\n\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./menubarmenupanel.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/menubar/menubarmenupanelview\n */\n\nimport { type Locale } from '@ckeditor/ckeditor5-utils';\nimport type { FocusableView } from '../focuscycler.js';\nimport type ViewCollection from '../viewcollection.js';\nimport View from '../view.js';\n\nimport '../../theme/components/menubar/menubarmenupanel.css';\n\n/**\n * A view representing a {@link module:ui/menubar/menubarmenuview~MenuBarMenuView#panelView} of a menu.\n */\nexport default class MenuBarMenuPanelView extends View implements FocusableView {\n\t/**\n\t * Collection of the child views in this panel.\n\t */\n\tpublic readonly children: ViewCollection;\n\n\t/**\n\t * Controls whether the panel is visible.\n\t *\n\t * @observable\n\t */\n\tdeclare public isVisible: boolean;\n\n\t/**\n\t * The name of the position of the panel, relative to the parent.\n\t *\n\t * This property is reflected in the CSS class suffix set to {@link #element} that controls\n\t * the position of the panel.\n\t *\n\t * @observable\n\t * @default 'se'\n\t */\n\tdeclare public position: MenuBarMenuPanelPosition;\n\n\t/**\n\t * Creates an instance of the menu panel view.\n\t *\n\t * @param locale The localization services instance.\n\t */\n\tconstructor( locale?: Locale ) {\n\t\tsuper( locale );\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.set( 'isVisible', false );\n\t\tthis.set( 'position', 'se' );\n\n\t\tthis.children = this.createCollection();\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-reset',\n\t\t\t\t\t'ck-menu-bar__menu__panel',\n\t\t\t\t\tbind.to( 'position', value => `ck-menu-bar__menu__panel_position_${ value }` ),\n\t\t\t\t\tbind.if( 'isVisible', 'ck-hidden', value => !value )\n\t\t\t\t],\n\t\t\t\ttabindex: '-1'\n\t\t\t},\n\n\t\t\tchildren: this.children,\n\n\t\t\ton: {\n\t\t\t\t// Drag and drop in the panel should not break the selection in the editor.\n\t\t\t\t// https://github.com/ckeditor/ckeditor5-ui/issues/228\n\t\t\t\tselectstart: bind.to( evt => {\n\t\t\t\t\tif ( ( evt.target as HTMLElement ).tagName.toLocaleLowerCase() === 'input' ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t} )\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Focuses the first child of the panel (default) or the last one if the `direction` is `-1`.\n\t */\n\tpublic focus( direction: -1 | 1 = 1 ): void {\n\t\tif ( this.children.length ) {\n\t\t\tif ( direction === 1 ) {\n\t\t\t\tthis.children.first!.focus();\n\t\t\t} else {\n\t\t\t\tthis.children.last!.focus();\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * The names of the positions of the {@link module:ui/menubar/menubarmenupanelview~MenuBarMenuPanelView}.\n *\n * They are reflected as CSS class suffixes on the panel view element.\n */\nexport type MenuBarMenuPanelPosition = 'se' | 'sw' | 'ne' | 'nw' | 'w' | 'e';\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./menubarmenu.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/menubar/menubarmenuview\n */\n\nimport {\n\tFocusTracker,\n\tKeystrokeHandler,\n\tgetOptimalPosition,\n\ttype Locale,\n\ttype PositioningFunction,\n\ttype ObservableChangeEvent\n} from '@ckeditor/ckeditor5-utils';\nimport MenuBarMenuButtonView from './menubarmenubuttonview.js';\nimport { MenuBarMenuBehaviors, MenuBarMenuViewPanelPositioningFunctions } from './utils.js';\nimport type { FocusableView } from '../focuscycler.js';\nimport View from '../view.js';\nimport {\n\tdefault as MenuBarMenuPanelView,\n\ttype MenuBarMenuPanelPosition\n} from './menubarmenupanelview.js';\n\nimport '../../theme/components/menubar/menubarmenu.css';\n\n/**\n * A menu view for the {@link module:ui/menubar/menubarview~MenuBarView}. Menus are building blocks of the menu bar,\n * they host other sub-menus and menu items (buttons) that users can interact with.\n */\nexport default class MenuBarMenuView extends View implements FocusableView {\n\t/**\n\t * Button of the menu view.\n\t */\n\tpublic readonly buttonView: MenuBarMenuButtonView;\n\n\t/**\n\t * Panel of the menu. It hosts children of the menu.\n\t */\n\tpublic readonly panelView: MenuBarMenuPanelView;\n\n\t/**\n\t * Tracks information about the DOM focus in the menu.\n\t */\n\tpublic readonly focusTracker: FocusTracker;\n\n\t/**\n\t * Instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}. It manages\n\t * keystrokes of the menu.\n\t */\n\tpublic readonly keystrokes: KeystrokeHandler;\n\n\t/**\n\t * Controls whether the menu is open, i.e. shows or hides the {@link #panelView panel}.\n\t *\n\t * @observable\n\t */\n\tdeclare public isOpen: boolean;\n\n\t/**\n\t * Controls whether the menu is enabled, i.e. its {@link #buttonView} can be clicked.\n\t *\n\t * @observable\n\t */\n\tdeclare public isEnabled: boolean;\n\n\t/**\n\t * (Optional) The additional CSS class set on the menu {@link #element}.\n\t *\n\t * @observable\n\t */\n\tdeclare public class: string | undefined;\n\n\t/**\n\t * The name of the position of the {@link #panelView}, relative to the menu.\n\t *\n\t * **Note**: The value is updated each time the panel gets {@link #isOpen open}.\n\t *\n\t * @observable\n\t * @default 'w'\n\t */\n\tdeclare public panelPosition: MenuBarMenuPanelPosition;\n\n\t/**\n\t * The parent menu view of the menu. It is `null` for top-level menus.\n\t *\n\t * See {@link module:ui/menubar/menubarview~MenuBarView#registerMenu}.\n\t */\n\tdeclare public parentMenuView: MenuBarMenuView | null;\n\n\t/**\n\t * Creates an instance of the menu view.\n\t *\n\t * @param locale The localization services instance.\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tconst bind = this.bindTemplate;\n\n\t\tthis.buttonView = new MenuBarMenuButtonView( locale );\n\t\tthis.buttonView.delegate( 'mouseenter' ).to( this );\n\t\tthis.buttonView.bind( 'isOn', 'isEnabled' ).to( this, 'isOpen', 'isEnabled' );\n\n\t\tthis.panelView = new MenuBarMenuPanelView( locale );\n\t\tthis.panelView.bind( 'isVisible' ).to( this, 'isOpen' );\n\n\t\tthis.keystrokes = new KeystrokeHandler();\n\t\tthis.focusTracker = new FocusTracker();\n\n\t\tthis.set( 'isOpen', false );\n\t\tthis.set( 'isEnabled', true );\n\t\tthis.set( 'panelPosition', 'w' );\n\t\tthis.set( 'class', undefined );\n\t\tthis.set( 'parentMenuView', null );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-menu-bar__menu',\n\t\t\t\t\tbind.to( 'class' ),\n\t\t\t\t\tbind.if( 'isEnabled', 'ck-disabled', value => !value ),\n\t\t\t\t\tbind.if( 'parentMenuView', 'ck-menu-bar__menu_top-level', value => !value )\n\t\t\t\t]\n\t\t\t},\n\n\t\t\tchildren: [\n\t\t\t\tthis.buttonView,\n\t\t\t\tthis.panelView\n\t\t\t]\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tthis.focusTracker.add( this.buttonView.element! );\n\t\tthis.focusTracker.add( this.panelView.element! );\n\n\t\t// Listen for keystrokes coming from within #element.\n\t\tthis.keystrokes.listenTo( this.element! );\n\n\t\tMenuBarMenuBehaviors.closeOnEscKey( this );\n\n\t\tthis._repositionPanelOnOpen();\n\t}\n\n\t// For now, this method cannot be called in the render process because the `parentMenuView` may be assigned\n\t// after the rendering process.\n\t//\n\t// TODO: We should reconsider the way we handle this logic.\n\t/**\n\t * Attach all keyboard behaviors for the menu bar view.\n\t *\n\t * @internal\n\t */\n\tpublic _attachBehaviors(): void {\n\t\t// Top-level menus.\n\t\tif ( !this.parentMenuView ) {\n\t\t\tthis._propagateArrowKeystrokeEvents();\n\n\t\t\tMenuBarMenuBehaviors.openAndFocusPanelOnArrowDownKey( this );\n\t\t\tMenuBarMenuBehaviors.toggleOnButtonClick( this );\n\t\t} else {\n\t\t\tMenuBarMenuBehaviors.openOnButtonClick( this );\n\t\t\tMenuBarMenuBehaviors.openOnArrowRightKey( this );\n\t\t\tMenuBarMenuBehaviors.closeOnArrowLeftKey( this );\n\t\t\tMenuBarMenuBehaviors.closeOnParentClose( this );\n\t\t}\n\t}\n\n\t/**\n\t * Fires `arrowright` and `arrowleft` events when the user pressed corresponding arrow keys.\n\t */\n\tprivate _propagateArrowKeystrokeEvents(): void {\n\t\tthis.keystrokes.set( 'arrowright', ( data, cancel ) => {\n\t\t\tthis.fire( 'arrowright' );\n\t\t\tcancel();\n\t\t} );\n\n\t\tthis.keystrokes.set( 'arrowleft', ( data, cancel ) => {\n\t\t\tthis.fire( 'arrowleft' );\n\t\t\tcancel();\n\t\t} );\n\t}\n\n\t/**\n\t * Sets the position of the panel when the menu opens. The panel is positioned\n\t * so that it optimally uses the available space in the viewport.\n\t */\n\tprivate _repositionPanelOnOpen(): void {\n\t\t// Let the menu control the position of the panel. The position must be updated every time the menu is open.\n\t\tthis.on>( 'change:isOpen', ( evt, name, isOpen ) => {\n\t\t\tif ( !isOpen ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst optimalPanelPosition = MenuBarMenuView._getOptimalPosition( {\n\t\t\t\telement: this.panelView.element!,\n\t\t\t\ttarget: this.buttonView.element!,\n\t\t\t\tfitInViewport: true,\n\t\t\t\tpositions: this._panelPositions\n\t\t\t} );\n\n\t\t\tthis.panelView.position = (\n\t\t\t\toptimalPanelPosition ? optimalPanelPosition.name : this._panelPositions[ 0 ].name\n\t\t\t) as MenuBarMenuPanelPosition;\n\t\t} );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic focus(): void {\n\t\tthis.buttonView.focus();\n\t}\n\n\t/**\n\t * Positioning functions for the {@link #panelView} . They change depending on the role of the menu (top-level vs sub-menu) in\n\t * the {@link module:ui/menubar/menubarview~MenuBarView menu bar} and the UI language direction.\n\t */\n\tpublic get _panelPositions(): Array {\n\t\tconst {\n\t\t\tsouthEast, southWest, northEast, northWest,\n\t\t\twestSouth, eastSouth, westNorth, eastNorth\n\t\t} = MenuBarMenuViewPanelPositioningFunctions;\n\n\t\tif ( this.locale!.uiLanguageDirection === 'ltr' ) {\n\t\t\tif ( this.parentMenuView ) {\n\t\t\t\treturn [ eastSouth, eastNorth, westSouth, westNorth ];\n\t\t\t} else {\n\t\t\t\treturn [ southEast, southWest, northEast, northWest ];\n\t\t\t}\n\t\t} else {\n\t\t\tif ( this.parentMenuView ) {\n\t\t\t\treturn [ westSouth, westNorth, eastSouth, eastNorth ];\n\t\t\t} else {\n\t\t\t\treturn [ southWest, southEast, northWest, northEast ];\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * A function used to calculate the optimal position for the dropdown panel.\n\t *\n\t * Referenced for unit testing purposes.\n\t */\n\tprivate static _getOptimalPosition = getOptimalPosition;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/menubar/menubarmenulistview\n */\n\nimport type { Locale } from '@ckeditor/ckeditor5-utils';\nimport ListView from '../list/listview.js';\n\n/**\n * A list of menu bar items, a child of {@link module:ui/menubar/menubarmenuview~MenuBarMenuView#panelView}.\n *\n * Use this class to create a list of items (options, buttons) to be displayed in a menu bar.\n *\n * To populate this list, use {@link module:ui/menubar/menubarmenulistitemview~MenuBarMenuListItemView} instances.\n */\nexport default class MenuBarMenuListView extends ListView {\n\t/**\n\t * Creates an instance of the list view.\n\t *\n\t * @param locale The localization services instance.\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.role = 'menu';\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/menubar/menubarmenulistitemfiledialogbuttonview\n */\n\nimport type { Locale } from '@ckeditor/ckeditor5-utils';\nimport FileDialogButtonView from '../button/filedialogbuttonview.js';\n\nimport '../../theme/components/menubar/menubarmenulistitembutton.css';\n\n/**\n * A menu bar list file dialog button view. Buttons like this one execute user actions.\n *\n * This component provides a button that opens the native file selection dialog.\n */\nexport default class MenuBarMenuListItemFileDialogButtonView extends FileDialogButtonView {\n\t/**\n\t * Creates an instance of the menu bar list button view.\n\t *\n\t * @param locale The localization services instance.\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tthis.set( {\n\t\t\twithText: true,\n\t\t\twithKeystroke: true,\n\t\t\ttooltip: false,\n\t\t\trole: 'menuitem'\n\t\t} );\n\n\t\tthis.extendTemplate( {\n\t\t\tattributes: {\n\t\t\t\tclass: [ 'ck-menu-bar__menu__item__button' ]\n\t\t\t}\n\t\t} );\n\t}\n}\n","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].use[2]!./menubar.css\";\n\nvar options = {\"injectType\":\"singletonStyleTag\",\"attributes\":{\"data-cke\":true}};\n\noptions.insert = \"head\";\noptions.singleton = true;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/menubar/menubarview\n */\n\nimport {\n\tlogWarning,\n\ttype BaseEvent,\n\ttype Locale,\n\ttype ObservableChangeEvent\n} from '@ckeditor/ckeditor5-utils';\nimport { type FocusableView } from '../focuscycler.js';\nimport View from '../view.js';\nimport { isObject } from 'lodash-es';\nimport ListItemView from '../list/listitemview.js';\nimport ListSeparatorView from '../list/listseparatorview.js';\nimport type ViewCollection from '../viewcollection.js';\nimport type ComponentFactory from '../componentfactory.js';\n\nimport MenuBarMenuView from './menubarmenuview.js';\nimport MenuBarMenuListView from './menubarmenulistview.js';\nimport MenuBarMenuListItemView from './menubarmenulistitemview.js';\nimport MenuBarMenuListItemButtonView from './menubarmenulistitembuttonview.js';\nimport MenuBarMenuListItemFileDialogButtonView from './menubarmenulistitemfiledialogbuttonview.js';\nimport {\n\tMenuBarBehaviors,\n\tprocessMenuBarConfig\n} from './utils.js';\n\nconst EVENT_NAME_DELEGATES = [ 'mouseenter', 'arrowleft', 'arrowright', 'change:isOpen' ] as const;\n\nimport '../../theme/components/menubar/menubar.css';\n\n/**\n * The application menu bar component. It brings a set of top-level menus (and sub-menus) that can be used\n * to organize and access a large number of buttons.\n */\nexport default class MenuBarView extends View implements FocusableView {\n\t/**\n\t * Collection of the child views inside the {@link #element}.\n\t */\n\tpublic children: ViewCollection;\n\n\t/**\n\t * Indicates whether any of top-level menus are open in the menu bar. To close\n\t * the menu bar use the {@link #close} method.\n\t *\n\t * @observable\n\t */\n\tdeclare public isOpen: boolean;\n\n\t/**\n\t * A list of {@link module:ui/menubar/menubarmenuview~MenuBarMenuView} instances registered in the menu bar.\n\t *\n\t * @observable\n\t */\n\tpublic menus: Array = [];\n\n\t/**\n\t * Creates an instance of the menu bar view.\n\t *\n\t * @param locale The localization services instance.\n\t */\n\tconstructor( locale: Locale ) {\n\t\tsuper( locale );\n\n\t\tconst t = locale.t;\n\n\t\tthis.set( 'isOpen', false );\n\t\tthis._setupIsOpenUpdater();\n\n\t\tthis.children = this.createCollection();\n\n\t\t// @if CK_DEBUG_MENU_BAR // // Logs events in the main event bus of the component.\n\t\t// @if CK_DEBUG_MENU_BAR // this.on( 'menu', ( evt, data ) => {\n\t\t// @if CK_DEBUG_MENU_BAR // \tconsole.log( `MenuBarView:${ evt.name }`, evt.path.map( view => view.element ) );\n\t\t// @if CK_DEBUG_MENU_BAR // } );\n\n\t\tthis.setTemplate( {\n\t\t\ttag: 'div',\n\t\t\tattributes: {\n\t\t\t\tclass: [\n\t\t\t\t\t'ck',\n\t\t\t\t\t'ck-menu-bar'\n\t\t\t\t],\n\t\t\t\t'aria-label': t( 'Editor menu bar' ),\n\t\t\t\trole: 'menubar'\n\t\t\t},\n\t\t\tchildren: this.children\n\t\t} );\n\t}\n\n\t/**\n\t * A utility that expands a plain menu bar configuration into a structure of menus (also: sub-menus)\n\t * and items using a given {@link module:ui/componentfactory~ComponentFactory component factory}.\n\t *\n\t * See the {@link module:core/editor/editorconfig~EditorConfig#menuBar menu bar} in the editor\n\t * configuration reference to learn how to configure the menu bar.\n\t */\n\tpublic fillFromConfig( config: NormalizedMenuBarConfigObject, componentFactory: ComponentFactory ): void {\n\t\tconst locale = this.locale!;\n\t\tconst processedConfig = processMenuBarConfig( {\n\t\t\tnormalizedConfig: config,\n\t\t\tlocale,\n\t\t\tcomponentFactory\n\t\t} );\n\n\t\tconst topLevelCategoryMenuViews = processedConfig.items.map( menuDefinition => this._createMenu( {\n\t\t\tcomponentFactory,\n\t\t\tmenuDefinition\n\t\t} ) );\n\n\t\tthis.children.addMany( topLevelCategoryMenuViews );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override render(): void {\n\t\tsuper.render();\n\n\t\tMenuBarBehaviors.toggleMenusAndFocusItemsOnHover( this );\n\t\tMenuBarBehaviors.closeMenusWhenTheBarCloses( this );\n\t\tMenuBarBehaviors.closeMenuWhenAnotherOnTheSameLevelOpens( this );\n\t\tMenuBarBehaviors.focusCycleMenusOnArrows( this );\n\t\tMenuBarBehaviors.closeOnClickOutside( this );\n\t}\n\n\t/**\n\t * Focuses the menu bar.\n\t */\n\tpublic focus(): void {\n\t\tif ( this.children.first ) {\n\t\t\tthis.children.first.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Closes all menus in the bar.\n\t */\n\tpublic close(): void {\n\t\tfor ( const topLevelCategoryMenuView of this.children ) {\n\t\t\ttopLevelCategoryMenuView.isOpen = false;\n\t\t}\n\t}\n\n\t/**\n\t * Registers a menu view in the menu bar. Every {@link module:ui/menubar/menubarmenuview~MenuBarMenuView} instance must be registered\n\t * in the menu bar to be properly managed.\n\t */\n\tpublic registerMenu( menuView: MenuBarMenuView, parentMenuView: MenuBarMenuView | null = null ): void {\n\t\tif ( parentMenuView ) {\n\t\t\tmenuView.delegate( ...EVENT_NAME_DELEGATES ).to( parentMenuView );\n\t\t\tmenuView.parentMenuView = parentMenuView;\n\t\t} else {\n\t\t\tmenuView.delegate( ...EVENT_NAME_DELEGATES ).to( this, name => 'menu:' + name );\n\t\t}\n\n\t\tmenuView._attachBehaviors();\n\n\t\tthis.menus.push( menuView );\n\t}\n\n\t/**\n\t * Creates a {@link module:ui/menubar/menubarmenuview~MenuBarMenuView} based on the given definition.\n\t */\n\tprivate _createMenu( { componentFactory, menuDefinition, parentMenuView }: {\n\t\tcomponentFactory: ComponentFactory;\n\t\tmenuDefinition: MenuBarMenuDefinition;\n\t\tparentMenuView?: MenuBarMenuView;\n\t} ) {\n\t\tconst locale = this.locale!;\n\t\tconst menuView = new MenuBarMenuView( locale );\n\n\t\tthis.registerMenu( menuView, parentMenuView );\n\n\t\tmenuView.buttonView.set( {\n\t\t\tlabel: menuDefinition.label\n\t\t} );\n\n\t\t// Defer the creation of the menu structure until it gets open. This is a performance optimization\n\t\t// that shortens the time needed to create the editor.\n\t\tmenuView.once>( 'change:isOpen', () => {\n\t\t\tconst listView = new MenuBarMenuListView( locale );\n\t\t\tlistView.ariaLabel = menuDefinition.label;\n\t\t\tmenuView.panelView.children.add( listView );\n\n\t\t\tlistView.items.addMany( this._createMenuItems( { menuDefinition, parentMenuView: menuView, componentFactory } ) );\n\t\t} );\n\n\t\treturn menuView;\n\t}\n\n\t/**\n\t * Creates a {@link module:ui/menubar/menubarmenuview~MenuBarMenuView} items based on the given definition.\n\t */\n\tprivate _createMenuItems( { menuDefinition, parentMenuView, componentFactory }: {\n\t\tmenuDefinition: MenuBarMenuDefinition;\n\t\tcomponentFactory: ComponentFactory;\n\t\tparentMenuView: MenuBarMenuView;\n\t} ): Array {\n\t\tconst locale = this.locale!;\n\t\tconst items = [];\n\n\t\tfor ( const menuGroupDefinition of menuDefinition.groups ) {\n\t\t\tfor ( const itemDefinition of menuGroupDefinition.items ) {\n\t\t\t\tconst menuItemView = new MenuBarMenuListItemView( locale, parentMenuView );\n\n\t\t\t\tif ( isObject( itemDefinition ) ) {\n\t\t\t\t\tmenuItemView.children.add( this._createMenu( {\n\t\t\t\t\t\tcomponentFactory,\n\t\t\t\t\t\tmenuDefinition: itemDefinition,\n\t\t\t\t\t\tparentMenuView\n\t\t\t\t\t} ) );\n\t\t\t\t} else {\n\t\t\t\t\tconst componentView = this._createMenuItemContentFromFactory( {\n\t\t\t\t\t\tcomponentName: itemDefinition,\n\t\t\t\t\t\tcomponentFactory,\n\t\t\t\t\t\tparentMenuView\n\t\t\t\t\t} );\n\n\t\t\t\t\tif ( !componentView ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tmenuItemView.children.add( componentView );\n\t\t\t\t}\n\n\t\t\t\titems.push( menuItemView );\n\t\t\t}\n\n\t\t\t// Separate groups with a separator.\n\t\t\tif ( menuGroupDefinition !== menuDefinition.groups[ menuDefinition.groups.length - 1 ] ) {\n\t\t\t\titems.push( new ListSeparatorView( locale ) );\n\t\t\t}\n\t\t}\n\n\t\treturn items;\n\t}\n\n\t/**\n\t * Uses the component factory to create a content of the menu item (a button or a sub-menu).\n\t */\n\tprivate _createMenuItemContentFromFactory( { componentName, parentMenuView, componentFactory }: {\n\t\tcomponentName: string;\n\t\tcomponentFactory: ComponentFactory;\n\t\tparentMenuView: MenuBarMenuView;\n\t} ): MenuBarMenuView | MenuBarMenuListItemButtonView | null {\n\t\tconst componentView = componentFactory.create( componentName );\n\n\t\tif ( !(\n\t\t\tcomponentView instanceof MenuBarMenuView ||\n\t\t\tcomponentView instanceof MenuBarMenuListItemButtonView ||\n\t\t\tcomponentView instanceof MenuBarMenuListItemFileDialogButtonView\n\t\t) ) {\n\t\t\t/**\n\t\t\t * Adding unsupported components to the {@link module:ui/menubar/menubarview~MenuBarView} is not possible.\n\t\t\t *\n\t\t\t * A component should be either a {@link module:ui/menubar/menubarmenuview~MenuBarMenuView} (sub-menu) or a\n\t\t\t * {@link module:ui/menubar/menubarmenulistitembuttonview~MenuBarMenuListItemButtonView} (button).\n\t\t\t *\n\t\t\t * @error menu-bar-component-unsupported\n\t\t\t * @param componentName A name of the unsupported component used in the configuration.\n\t\t\t * @param componentView An unsupported component view.\n\t\t\t */\n\t\t\tlogWarning( 'menu-bar-component-unsupported', {\n\t\t\t\tcomponentName,\n\t\t\t\tcomponentView\n\t\t\t} );\n\n\t\t\treturn null;\n\t\t}\n\n\t\tthis._registerMenuTree( componentView, parentMenuView );\n\n\t\t// Close the whole menu bar when a component is executed.\n\t\tcomponentView.on( 'execute', () => {\n\t\t\tthis.close();\n\t\t} );\n\n\t\treturn componentView;\n\t}\n\n\t/**\n\t * Checks component and its children recursively and calls {@link #registerMenu}\n\t * for each item that is {@link module:ui/menubar/menubarmenuview~MenuBarMenuView}.\n\t *\n\t * @internal\n\t */\n\tprivate _registerMenuTree( componentView: MenuBarMenuView | MenuBarMenuListItemButtonView, parentMenuView: MenuBarMenuView ) {\n\t\tif ( !( componentView instanceof MenuBarMenuView ) ) {\n\t\t\tcomponentView.delegate( 'mouseenter' ).to( parentMenuView );\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.registerMenu( componentView, parentMenuView );\n\n\t\tconst menuBarItemsList = componentView.panelView.children\n\t\t\t.filter( child => child instanceof MenuBarMenuListView )[ 0 ] as MenuBarMenuListView | undefined;\n\n\t\tif ( !menuBarItemsList ) {\n\t\t\tcomponentView.delegate( 'mouseenter' ).to( parentMenuView );\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst nonSeparatorItems = menuBarItemsList.items.filter( item => item instanceof ListItemView ) as Array;\n\n\t\tfor ( const item of nonSeparatorItems ) {\n\t\t\tthis._registerMenuTree(\n\t\t\t\titem.children.get( 0 ) as MenuBarMenuView | MenuBarMenuListItemButtonView,\n\t\t\t\tcomponentView\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Manages the state of the {@link #isOpen} property of the menu bar. Because the state is a sum of individual\n\t * top-level menus' states, it's necessary to listen to their changes and update the state accordingly.\n\t *\n\t * Additionally, it prevents from unnecessary changes of `isOpen` when one top-level menu opens and another closes\n\t * (regardless of in which order), maintaining a stable `isOpen === true` in that situation.\n\t */\n\tprivate _setupIsOpenUpdater() {\n\t\tlet closeTimeout: ReturnType;\n\n\t\t// TODO: This is not the prettiest approach but at least it's simple.\n\t\tthis.on( 'menu:change:isOpen', ( evt, name, isOpen ) => {\n\t\t\tclearTimeout( closeTimeout );\n\n\t\t\tif ( isOpen ) {\n\t\t\t\tthis.isOpen = true;\n\t\t\t} else {\n\t\t\t\tcloseTimeout = setTimeout( () => {\n\t\t\t\t\tthis.isOpen = Array.from( this.children ).some( menuView => menuView.isOpen );\n\t\t\t\t}, 0 );\n\t\t\t}\n\t\t} );\n\t}\n}\n\nexport type MenuBarConfig = MenuBarConfigObject;\n\nexport type MenuBarConfigObject = {\n\titems?: Array;\n\tremoveItems?: Array;\n\taddItems?: Array;\n\tisVisible?: boolean;\n};\n\nexport type NormalizedMenuBarConfigObject = Required & {\n\tisUsingDefaultConfig: boolean;\n};\n\nexport type MenuBarMenuGroupDefinition = {\n\tgroupId: string;\n\titems: Array;\n};\n\nexport type MenuBarMenuDefinition = {\n\tmenuId: string;\n\tlabel: string;\n\tgroups: Array;\n};\n\nexport type MenuBarConfigAddedPosition =\n\t`start:${ string }` | `end:${ string }` | 'start' | 'end' | `after:${ string }` | `before:${ string }`;\n\nexport type MenuBarConfigAddedItem = {\n\titem: string;\n\tposition: MenuBarConfigAddedPosition;\n};\n\nexport type MenuBarConfigAddedGroup = {\n\tgroup: MenuBarMenuGroupDefinition;\n\tposition: MenuBarConfigAddedPosition;\n};\n\nexport type MenuBarConfigAddedMenu = {\n\tmenu: MenuBarMenuDefinition;\n\tposition: MenuBarConfigAddedPosition;\n};\n\n/**\n * Any namespaced event fired by menu a {@link module:ui/menubar/menubarview~MenuBarView#menus menu view instance} of the\n * {@link module:ui/menubar/menubarview~MenuBarView menu bar}.\n */\ninterface MenuBarMenuEvent extends BaseEvent {\n\tname: `menu:${ string }` | `menu:change:${ string }`;\n}\n\n/**\n * A `mouseenter` event originating from a {@link module:ui/menubar/menubarview~MenuBarView#menus menu view instance} of the\n * {@link module:ui/menubar/menubarview~MenuBarView menu bar}.\n */\nexport interface MenuBarMenuMouseEnterEvent extends MenuBarMenuEvent {\n\tname: 'menu:mouseenter';\n}\n\n/**\n * An `arrowleft` event originating from a {@link module:ui/menubar/menubarview~MenuBarView#menus menu view instance} of the\n * {@link module:ui/menubar/menubarview~MenuBarView menu bar}.\n */\nexport interface MenuBarMenuArrowLeftEvent extends MenuBarMenuEvent {\n\tname: 'menu:arrowleft';\n}\n\n/**\n * An `arrowright` event originating from a {@link module:ui/menubar/menubarview~MenuBarView#menus menu view instance} of the\n * {@link module:ui/menubar/menubarview~MenuBarView menu bar}.\n */\nexport interface MenuBarMenuArrowRightEvent extends MenuBarMenuEvent {\n\tname: 'menu:arrowright';\n}\n\n/**\n * A `change:isOpen` event originating from a {@link module:ui/menubar/menubarview~MenuBarView#menus menu view instance} of the\n * {@link module:ui/menubar/menubarview~MenuBarView menu bar}.\n */\nexport interface MenuBarMenuChangeIsOpenEvent extends MenuBarMenuEvent {\n\tname: 'menu:change:isOpen';\n\targs: [ name: string, value: boolean, oldValue: boolean ];\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module editor-classic/classiceditorui\n */\n\nimport type { Editor, ElementApi } from 'ckeditor5/src/core.js';\nimport {\n\tEditorUI,\n\tDialogView,\n\tnormalizeToolbarConfig,\n\t_initMenuBar,\n\ttype DialogViewMoveToEvent,\n\ttype Dialog,\n\ttype EditorUIReadyEvent,\n\ttype EditorUIView,\n\ttype MenuBarView\n} from 'ckeditor5/src/ui.js';\nimport {\n\tenablePlaceholder,\n\ttype ViewScrollToTheSelectionEvent\n} from 'ckeditor5/src/engine.js';\nimport { ElementReplacer, Rect, type EventInfo } from 'ckeditor5/src/utils.js';\nimport type ClassicEditorUIView from './classiceditoruiview.js';\n\n/**\n * The classic editor UI class.\n */\nexport default class ClassicEditorUI extends EditorUI {\n\t/**\n\t * The main (top–most) view of the editor UI.\n\t */\n\tpublic readonly view: ClassicEditorUIView;\n\n\t/**\n\t * A normalized `config.toolbar` object.\n\t */\n\tprivate readonly _toolbarConfig: ReturnType;\n\n\t/**\n\t * The element replacer instance used to hide the editor's source element.\n\t */\n\tprivate readonly _elementReplacer: ElementReplacer;\n\n\t/**\n\t * Creates an instance of the classic editor UI class.\n\t *\n\t * @param editor The editor instance.\n\t * @param view The view of the UI.\n\t */\n\tconstructor( editor: Editor, view: ClassicEditorUIView ) {\n\t\tsuper( editor );\n\n\t\tthis.view = view;\n\t\tthis._toolbarConfig = normalizeToolbarConfig( editor.config.get( 'toolbar' ) );\n\n\t\tthis._elementReplacer = new ElementReplacer();\n\n\t\tthis.listenTo(\n\t\t\teditor.editing.view, 'scrollToTheSelection', this._handleScrollToTheSelectionWithStickyPanel.bind( this ) );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic override get element(): HTMLElement | null {\n\t\treturn this.view.element;\n\t}\n\n\t/**\n\t * Initializes the UI.\n\t *\n\t * @param replacementElement The DOM element that will be the source for the created editor.\n\t */\n\tpublic init( replacementElement: HTMLElement | null ): void {\n\t\tconst editor = this.editor;\n\t\tconst view = this.view;\n\t\tconst editingView = editor.editing.view;\n\t\tconst editable = view.editable;\n\t\tconst editingRoot = editingView.document.getRoot()!;\n\n\t\t// The editable UI and editing root should share the same name. Then name is used\n\t\t// to recognize the particular editable, for instance in ARIA attributes.\n\t\teditable.name = editingRoot.rootName;\n\n\t\tview.render();\n\n\t\t// The editable UI element in DOM is available for sure only after the editor UI view has been rendered.\n\t\t// But it can be available earlier if a DOM element has been passed to BalloonEditor.create().\n\t\tconst editableElement = editable.element!;\n\n\t\t// Register the editable UI view in the editor. A single editor instance can aggregate multiple\n\t\t// editable areas (roots) but the classic editor has only one.\n\t\tthis.setEditableElement( editable.name, editableElement );\n\n\t\t// Let the editable UI element respond to the changes in the global editor focus\n\t\t// tracker. It has been added to the same tracker a few lines above but, in reality, there are\n\t\t// many focusable areas in the editor, like balloons, toolbars or dropdowns and as long\n\t\t// as they have focus, the editable should act like it is focused too (although technically\n\t\t// it isn't), e.g. by setting the proper CSS class, visually announcing focus to the user.\n\t\t// Doing otherwise will result in editable focus styles disappearing, once e.g. the\n\t\t// toolbar gets focused.\n\t\tview.editable.bind( 'isFocused' ).to( this.focusTracker );\n\n\t\t// Bind the editable UI element to the editing view, making it an end– and entry–point\n\t\t// of the editor's engine. This is where the engine meets the UI.\n\t\teditingView.attachDomRoot( editableElement );\n\n\t\t// If an element containing the initial data of the editor was provided, replace it with\n\t\t// an editor instance's UI in DOM until the editor is destroyed. For instance, a - - - -

-

- - - - - - diff --git a/ui/src/vendor/ckeditor/samples/old/appendto.html b/ui/src/vendor/ckeditor/samples/old/appendto.html deleted file mode 100644 index 3661cd5846..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/appendto.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - Append To Page Element Using JavaScript Code — CKEditor Sample - - - - - -

- CKEditor Samples » Append To Page Element Using JavaScript Code -

-
- This sample is not maintained anymore. Check out the brand new samples in CKEditor Examples. -
-
-
-

- The CKEDITOR.appendTo() method serves to to place editors inside existing DOM elements. Unlike CKEDITOR.replace(), - a target container to be replaced is no longer necessary. A new editor - instance is inserted directly wherever it is desired. -

-
CKEDITOR.appendTo( 'container_id',
-	{ /* Configuration options to be used. */ }
-	'Editor content to be used.'
-);
-
- -
-
- - - diff --git a/ui/src/vendor/ckeditor/samples/old/assets/inlineall/logo.png b/ui/src/vendor/ckeditor/samples/old/assets/inlineall/logo.png deleted file mode 100644 index b4d5979e34..0000000000 Binary files a/ui/src/vendor/ckeditor/samples/old/assets/inlineall/logo.png and /dev/null differ diff --git a/ui/src/vendor/ckeditor/samples/old/assets/outputxhtml/outputxhtml.css b/ui/src/vendor/ckeditor/samples/old/assets/outputxhtml/outputxhtml.css deleted file mode 100644 index e262462475..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/assets/outputxhtml/outputxhtml.css +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license - * - * Styles used by the XHTML 1.1 sample page (xhtml.html). - */ - -/** - * Basic definitions for the editing area. - */ -body -{ - font-family: Arial, Verdana, sans-serif; - font-size: 80%; - color: #000000; - background-color: #ffffff; - padding: 5px; - margin: 0px; -} - -/** - * Core styles. - */ - -.Bold -{ - font-weight: bold; -} - -.Italic -{ - font-style: italic; -} - -.Underline -{ - text-decoration: underline; -} - -.StrikeThrough -{ - text-decoration: line-through; -} - -.Subscript -{ - vertical-align: sub; - font-size: smaller; -} - -.Superscript -{ - vertical-align: super; - font-size: smaller; -} - -/** - * Font faces. - */ - -.FontComic -{ - font-family: 'Comic Sans MS'; -} - -.FontCourier -{ - font-family: 'Courier New'; -} - -.FontTimes -{ - font-family: 'Times New Roman'; -} - -/** - * Font sizes. - */ - -.FontSmaller -{ - font-size: smaller; -} - -.FontLarger -{ - font-size: larger; -} - -.FontSmall -{ - font-size: 8pt; -} - -.FontBig -{ - font-size: 14pt; -} - -.FontDouble -{ - font-size: 200%; -} - -/** - * Font colors. - */ -.FontColor1 -{ - color: #ff9900; -} - -.FontColor2 -{ - color: #0066cc; -} - -.FontColor3 -{ - color: #ff0000; -} - -.FontColor1BG -{ - background-color: #ff9900; -} - -.FontColor2BG -{ - background-color: #0066cc; -} - -.FontColor3BG -{ - background-color: #ff0000; -} - -/** - * Indentation. - */ - -.Indent1 -{ - margin-left: 40px; -} - -.Indent2 -{ - margin-left: 80px; -} - -.Indent3 -{ - margin-left: 120px; -} - -/** - * Alignment. - */ - -.JustifyLeft -{ - text-align: left; -} - -.JustifyRight -{ - text-align: right; -} - -.JustifyCenter -{ - text-align: center; -} - -.JustifyFull -{ - text-align: justify; -} - -/** - * Other. - */ - -code -{ - font-family: courier, monospace; - background-color: #eeeeee; - padding-left: 1px; - padding-right: 1px; - border: #c0c0c0 1px solid; -} - -kbd -{ - padding: 0px 1px 0px 1px; - border-width: 1px 2px 2px 1px; - border-style: solid; -} - -blockquote -{ - color: #808080; -} diff --git a/ui/src/vendor/ckeditor/samples/old/assets/posteddata.php b/ui/src/vendor/ckeditor/samples/old/assets/posteddata.php deleted file mode 100644 index c4e06fe417..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/assets/posteddata.php +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - Sample — CKEditor - - - - -

- CKEditor — Posted Data -

- - - - - - - - - $value ) - { - if ( ( !is_string($value) && !is_numeric($value) ) || !is_string($key) ) - continue; - - if ( get_magic_quotes_gpc() ) - $value = htmlspecialchars( stripslashes((string)$value) ); - else - $value = htmlspecialchars( (string)$value ); -?> - - - - - -
Field NameValue
- - - diff --git a/ui/src/vendor/ckeditor/samples/old/assets/sample.jpg b/ui/src/vendor/ckeditor/samples/old/assets/sample.jpg deleted file mode 100644 index 9498271c60..0000000000 Binary files a/ui/src/vendor/ckeditor/samples/old/assets/sample.jpg and /dev/null differ diff --git a/ui/src/vendor/ckeditor/samples/old/assets/uilanguages/languages.js b/ui/src/vendor/ckeditor/samples/old/assets/uilanguages/languages.js deleted file mode 100644 index 0811c0210f..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/assets/uilanguages/languages.js +++ /dev/null @@ -1,7 +0,0 @@ -/* - Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. - For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license -*/ -var CKEDITOR_LANGS=function(){var c={af:"Afrikaans",ar:"Arabic",az:"Azerbaijani",bg:"Bulgarian",bn:"Bengali/Bangla",bs:"Bosnian",ca:"Catalan",cs:"Czech",cy:"Welsh",da:"Danish",de:"German","de-ch":"German (Switzerland)",el:"Greek",en:"English","en-au":"English (Australia)","en-ca":"English (Canadian)","en-gb":"English (United Kingdom)",eo:"Esperanto",es:"Spanish","es-mx":"Spanish (Mexico)",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fo:"Faroese",fr:"French","fr-ca":"French (Canada)",gl:"Galician", -gu:"Gujarati",he:"Hebrew",hi:"Hindi",hr:"Croatian",hu:"Hungarian",id:"Indonesian",is:"Icelandic",it:"Italian",ja:"Japanese",ka:"Georgian",km:"Khmer",ko:"Korean",ku:"Kurdish",lt:"Lithuanian",lv:"Latvian",mk:"Macedonian",mn:"Mongolian",ms:"Malay",nb:"Norwegian Bokmal",nl:"Dutch",no:"Norwegian",oc:"Occitan",pl:"Polish",pt:"Portuguese (Portugal)","pt-br":"Portuguese (Brazil)",ro:"Romanian",ru:"Russian",si:"Sinhala",sk:"Slovak",sq:"Albanian",sl:"Slovenian",sr:"Serbian (Cyrillic)","sr-latn":"Serbian (Latin)", -sv:"Swedish",th:"Thai",tr:"Turkish",tt:"Tatar",ug:"Uighur",uk:"Ukrainian",vi:"Vietnamese",zh:"Chinese Traditional","zh-cn":"Chinese Simplified"},b=[],a;for(a in CKEDITOR.lang.languages)b.push({code:a,name:c[a]||a});b.sort(function(a,b){return a.name - - - - - - - CKEditor CodeMirror Plugin - - - - - - - -

- Source Area -

-

- The CodeMirror plugin extends the source area of the framed CKEditor, with the source area you can edit the raw HTML content of an editor with Syntax Highlighting. -

-

- To enable this - plugin, basically add extraPlugins: 'codemirror' to editor's - config: -

-
-// Framed editor.
-CKEDITOR.replace( 'textarea_id', {
-                extraPlugins: 'codemirror'
-});
-
-
- - -
- - - - diff --git a/ui/src/vendor/ckeditor/samples/old/datafiltering.html b/ui/src/vendor/ckeditor/samples/old/datafiltering.html deleted file mode 100644 index 0db9a2c376..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/datafiltering.html +++ /dev/null @@ -1,509 +0,0 @@ - - - - - - Data Filtering — CKEditor Sample - - - - - - -

- CKEditor Samples » Data Filtering and Features Activation -

-
- This sample is not maintained anymore. Check out its brand new version in CKEditor Examples. -
-
-

- This sample page demonstrates the idea of Advanced Content Filter - (ACF), a sophisticated - tool that takes control over what kind of data is accepted by the editor and what - kind of output is produced. -

-

When and what is being filtered?

-

- ACF controls - every single source of data that comes to the editor. - It process both HTML that is inserted manually (i.e. pasted by the user) - and programmatically like: -

-
-editor.setData( '<p>Hello world!</p>' );
-
-

- ACF discards invalid, - useless HTML tags and attributes so the editor remains "clean" during - runtime. ACF behaviour - can be configured and adjusted for a particular case to prevent the - output HTML (i.e. in CMS systems) from being polluted. - - This kind of filtering is a first, client-side line of defense - against "tag soups", - the tool that precisely restricts which tags, attributes and styles - are allowed (desired). When properly configured, ACF - is an easy and fast way to produce a high-quality, intentionally filtered HTML. -

- -

How to configure or disable ACF?

-

- Advanced Content Filter is enabled by default, working in "automatic mode", yet - it provides a set of easy rules that allow adjusting filtering rules - and disabling the entire feature when necessary. The config property - responsible for this feature is config.allowedContent. -

-

- By "automatic mode" is meant that loaded plugins decide which kind - of content is enabled and which is not. For example, if the link - plugin is loaded it implies that <a> tag is - automatically allowed. Each plugin is given a set - of predefined ACF rules - that control the editor until - config.allowedContent - is defined manually. -

-

- Let's assume our intention is to restrict the editor to accept (produce) paragraphs - only: no attributes, no styles, no other tags. - With ACF - this is very simple. Basically set - config.allowedContent to 'p': -

-
-var editor = CKEDITOR.replace( textarea_id, {
-	allowedContent: 'p'
-} );
-
-

- Now try to play with allowed content: -

-
-// Trying to insert disallowed tag and attribute.
-editor.setData( '<p style="color: red">Hello <em>world</em>!</p>' );
-alert( editor.getData() );
-
-// Filtered data is returned.
-"<p>Hello world!</p>"
-
-

- What happened? Since config.allowedContent: 'p' is set the editor assumes - that only plain <p> are accepted. Nothing more. This is why - style attribute and <em> tag are gone. The same - filtering would happen if we pasted disallowed HTML into this editor. -

-

- This is just a small sample of what ACF - can do. To know more, please refer to the sample section below and - the official Advanced Content Filter guide. -

-

- You may, of course, want CKEditor to avoid filtering of any kind. - To get rid of ACF, - basically set - config.allowedContent to true like this: -

-
-CKEDITOR.replace( textarea_id, {
-	allowedContent: true
-} );
-
- -

Beyond data flow: Features activation

-

- ACF is far more than - I/O control: the entire - UI of the editor is adjusted to what - filters restrict. For example: if <a> tag is - disallowed - by ACF, - then accordingly link command, toolbar button and link dialog - are also disabled. Editor is smart: it knows which features must be - removed from the interface to match filtering rules. -

-

- CKEditor can be far more specific. If <a> tag is - allowed by filtering rules to be used but it is restricted - to have only one attribute (href) - config.allowedContent = 'a[!href]', then - "Target" tab of the link dialog is automatically disabled as target - attribute isn't included in ACF rules - for <a>. This behaviour applies to dialog fields, context - menus and toolbar buttons. -

- -

Sample configurations

-

- There are several editor instances below that present different - ACF setups. All of them, - except the inline instance, share the same HTML content to visualize - how different filtering rules affect the same input data. -

-
- -
- -
-

- This editor is using default configuration ("automatic mode"). It means that - - config.allowedContent is defined by loaded plugins. - Each plugin extends filtering rules to make it's own associated content - available for the user. -

-
- - - -
- -
- -
- -
-

- This editor is using a custom configuration for - ACF: -

-
-CKEDITOR.replace( 'editor2', {
-	allowedContent:
-		'h1 h2 h3 p blockquote strong em;' +
-		'a[!href];' +
-		'img(left,right)[!src,alt,width,height];' +
-		'table tr th td caption;' +
-		'span{!font-family};' +'
-		'span{!color};' +
-		'span(!marker);' +
-		'del ins'
-} );
-
-

- The following rules may require additional explanation: -

-
    -
  • - h1 h2 h3 p blockquote strong em - These tags - are accepted by the editor. Any tag attributes will be discarded. -
  • -
  • - a[!href] - href attribute is obligatory - for <a> tag. Tags without this attribute - are disarded. No other attribute will be accepted. -
  • -
  • - img(left,right)[!src,alt,width,height] - src - attribute is obligatory for <img> tag. - alt, width, height - and class attributes are accepted but - class must be either class="left" - or class="right" -
  • -
  • - table tr th td caption - These tags - are accepted by the editor. Any tag attributes will be discarded. -
  • -
  • - span{!font-family}, span{!color}, - span(!marker) - <span> tags - will be accepted if either font-family or - color style is set or class="marker" - is present. -
  • -
  • - del ins - These tags - are accepted by the editor. Any tag attributes will be discarded. -
  • -
-

- Please note that UI of the - editor is different. It's a response to what happened to the filters. - Since text-align isn't allowed, the align toolbar is gone. - The same thing happened to subscript/superscript, strike, underline - (<u>, <sub>, <sup> - are disallowed by - config.allowedContent) and many other buttons. -

-
- - -
- -
- -
- -
-

- This editor is using a custom configuration for - ACF. - Note that filters can be configured as an object literal - as an alternative to a string-based definition. -

-
-CKEDITOR.replace( 'editor3', {
-	allowedContent: {
-		'b i ul ol big small': true,
-		'h1 h2 h3 p blockquote li': {
-			styles: 'text-align'
-		},
-		a: { attributes: '!href,target' },
-		img: {
-			attributes: '!src,alt',
-			styles: 'width,height',
-			classes: 'left,right'
-		}
-	}
-} );
-
-
- - -
- -
- -
- -
-

- This editor is using a custom set of plugins and buttons. -

-
-CKEDITOR.replace( 'editor4', {
-	removePlugins: 'bidi,font,forms,flash,horizontalrule,iframe,justify,table,tabletools,smiley',
-	removeButtons: 'Anchor,Underline,Strike,Subscript,Superscript,Image',
-	format_tags: 'p;h1;h2;h3;pre;address'
-} );
-
-

- As you can see, removing plugins and buttons implies filtering. - Several tags are not allowed in the editor because there's no - plugin/button that is responsible for creating and editing this - kind of content (for example: the image is missing because - of removeButtons: 'Image'). The conclusion is that - ACF works "backwards" - as well: modifying UI - elements is changing allowed content rules. -

-
- - -
- -
- -
- -
-

- This editor is built on editable <h1> element. - ACF takes care of - what can be included in <h1>. Note that there - are no block styles in Styles combo. Also why lists, indentation, - blockquote, div, form and other buttons are missing. -

-

- ACF makes sure that - no disallowed tags will come to <h1> so the final - markup is valid. If the user tried to paste some invalid HTML - into this editor (let's say a list), it would be automatically - converted into plain text. -

-
-

- Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. -

-
- -
- -
- -
-

- This editor is using a custom configuration for ACF. - It's using the - Disallowed Content property of the filter to eliminate all title attributes. -

- -
-CKEDITOR.replace( 'editor6', {
-	allowedContent: {
-		'b i ul ol big small': true,
-		'h1 h2 h3 p blockquote li': {
-			styles: 'text-align'
-		},
-		a: {attributes: '!href,target'},
-		img: {
-			attributes: '!src,alt',
-			styles: 'width,height',
-			classes: 'left,right'
-		}
-	},
-	disallowedContent: '*{title*}'
-} );
-
-
- - -
- -
- -
- -
-

- This editor is using a custom configuration for ACF. - It's using the - Disallowed Content property of the filter to eliminate all a and img tags, - while allowing all other tags. -

-
-CKEDITOR.replace( 'editor7', {
-	allowedContent: {
-		// Allow all content.
-		$1: {
-			elements: CKEDITOR.dtd,
-			attributes: true,
-			styles: true,
-			classes: true
-		}
-	},
-	disallowedContent: 'img a'
-} );
-
-
- - -
- - - - diff --git a/ui/src/vendor/ckeditor/samples/old/dialog/assets/my_dialog.js b/ui/src/vendor/ckeditor/samples/old/dialog/assets/my_dialog.js deleted file mode 100644 index dc57d3c42a..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/dialog/assets/my_dialog.js +++ /dev/null @@ -1,48 +0,0 @@ -/** - * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license - */ - -CKEDITOR.dialog.add( 'myDialog', function() { - return { - title: 'My Dialog', - minWidth: 400, - minHeight: 200, - contents: [ - { - id: 'tab1', - label: 'First Tab', - title: 'First Tab', - elements: [ - { - id: 'input1', - type: 'text', - label: 'Text Field' - }, - { - id: 'select1', - type: 'select', - label: 'Select Field', - items: [ - [ 'option1', 'value1' ], - [ 'option2', 'value2' ] - ] - } - ] - }, - { - id: 'tab2', - label: 'Second Tab', - title: 'Second Tab', - elements: [ - { - id: 'button1', - type: 'button', - label: 'Button Field' - } - ] - } - ] - }; -} ); - diff --git a/ui/src/vendor/ckeditor/samples/old/dialog/dialog.html b/ui/src/vendor/ckeditor/samples/old/dialog/dialog.html deleted file mode 100644 index 5a7997fc48..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/dialog/dialog.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - Using API to Customize Dialog Windows — CKEditor Sample - - - - - - - - - - -

- CKEditor Samples » Using CKEditor Dialog API -

-
- This sample is not maintained anymore. Check out the brand new samples in CKEditor Examples. -
-
-

- This sample shows how to use the - CKEditor Dialog API - to customize CKEditor dialog windows without changing the original editor code. - The following customizations are being done in the example below: -

-

- For details on how to create this setup check the source code of this sample page. -

-
-

A custom dialog is added to the editors using the pluginsLoaded event, from an external dialog definition file:

-
    -
  1. Creating a custom dialog window – "My Dialog" dialog window opened with the "My Dialog" toolbar button.
  2. -
  3. Creating a custom button – Add button to open the dialog with "My Dialog" toolbar button.
  4. -
- - -

The below editor modify the dialog definition of the above added dialog using the dialogDefinition event:

-
    -
  1. Adding dialog tab – Add new tab "My Tab" to dialog window.
  2. -
  3. Removing a dialog window tab – Remove "Second Tab" page from the dialog window.
  4. -
  5. Adding dialog window fields – Add "My Custom Field" to the dialog window.
  6. -
  7. Removing dialog window field – Remove "Select Field" selection field from the dialog window.
  8. -
  9. Setting default values for dialog window fields – Set default value of "Text Field" text field.
  10. -
  11. Setup initial focus for dialog window – Put initial focus on "My Custom Field" text field.
  12. -
- - - - - diff --git a/ui/src/vendor/ckeditor/samples/old/divreplace.html b/ui/src/vendor/ckeditor/samples/old/divreplace.html deleted file mode 100644 index 1fd08dcbab..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/divreplace.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - Replace DIV — CKEditor Sample - - - - - - - -

- CKEditor Samples » Replace DIV with CKEditor on the Fly -

-
- This sample is not maintained anymore. Check out the brand new samples in CKEditor Examples. -
-
-

- This sample shows how to automatically replace <div> elements - with a CKEditor instance on the fly, following user's doubleclick. The content - that was previously placed inside the <div> element will now - be moved into CKEditor editing area. -

-

- For details on how to create this setup check the source code of this sample page. -

-
-

- Double-click any of the following <div> elements to transform them into - editor instances. -

-
-

- Part 1 -

-

- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi - semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna - rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla - nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce - eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. -

-
-
-

- Part 2 -

-

- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi - semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna - rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla - nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce - eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. -

-

- Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus - sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum - vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate. -

-
-
-

- Part 3 -

-

- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi - semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna - rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla - nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce - eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus. -

-
- - - diff --git a/ui/src/vendor/ckeditor/samples/old/enterkey/enterkey.html b/ui/src/vendor/ckeditor/samples/old/enterkey/enterkey.html deleted file mode 100644 index 767aa886c9..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/enterkey/enterkey.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - ENTER Key Configuration — CKEditor Sample - - - - - - - - - -

- CKEditor Samples » ENTER Key Configuration -

-
- This sample is not maintained anymore. Check out its brand new version in CKEditor Examples. -
-
-

- This sample shows how to configure the Enter and Shift+Enter keys - to perform actions specified in the - enterMode - and shiftEnterMode - parameters, respectively. - You can choose from the following options: -

-
    -
  • ENTER_P – new <p> paragraphs are created;
  • -
  • ENTER_BR – lines are broken with <br> elements;
  • -
  • ENTER_DIV – new <div> blocks are created.
  • -
-

- The sample code below shows how to configure CKEditor to create a <div> block when Enter key is pressed. -

-
-CKEDITOR.replace( 'textarea_id', {
-	enterMode: CKEDITOR.ENTER_DIV
-});
-

- Note that textarea_id in the code above is the id attribute of - the <textarea> element to be replaced. -

-
-
- When Enter is pressed:
- -
-
- When Shift+Enter is pressed:
- -
-
-
-

-
- -

-

- -

-
- - - diff --git a/ui/src/vendor/ckeditor/samples/old/htmlwriter/assets/outputforflash/outputforflash.fla b/ui/src/vendor/ckeditor/samples/old/htmlwriter/assets/outputforflash/outputforflash.fla deleted file mode 100644 index 27e68ccd1c..0000000000 Binary files a/ui/src/vendor/ckeditor/samples/old/htmlwriter/assets/outputforflash/outputforflash.fla and /dev/null differ diff --git a/ui/src/vendor/ckeditor/samples/old/htmlwriter/assets/outputforflash/outputforflash.swf b/ui/src/vendor/ckeditor/samples/old/htmlwriter/assets/outputforflash/outputforflash.swf deleted file mode 100644 index dbe17b6bce..0000000000 Binary files a/ui/src/vendor/ckeditor/samples/old/htmlwriter/assets/outputforflash/outputforflash.swf and /dev/null differ diff --git a/ui/src/vendor/ckeditor/samples/old/htmlwriter/assets/outputforflash/swfobject.js b/ui/src/vendor/ckeditor/samples/old/htmlwriter/assets/outputforflash/swfobject.js deleted file mode 100644 index 070092169d..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/htmlwriter/assets/outputforflash/swfobject.js +++ /dev/null @@ -1,19 +0,0 @@ -var swfobject=function(){function w(){if(!u){try{var a=d.getElementsByTagName("body")[0].appendChild(d.createElement("span"));a.parentNode.removeChild(a)}catch(b){return}u=!0;for(var a=z.length,c=0;cf){f++;setTimeout(arguments.callee,10);return}a.removeChild(b);c=null;E()})()}else E()} -function E(){var a=r.length;if(0e.wk)if(r[b].expressInstall&&F()){g={};g.data=r[b].expressInstall;g.width=d.getAttribute("width")||"0";g.height=d.getAttribute("height")||"0";d.getAttribute("class")&&(g.styleclass=d.getAttribute("class"));d.getAttribute("align")&&(g.align=d.getAttribute("align"));for(var h={},d=d.getElementsByTagName("param"),k=d.length,l=0;l< -k;l++)"movie"!=d[l].getAttribute("name").toLowerCase()&&(h[d[l].getAttribute("name")]=d[l].getAttribute("value"));G(g,h,c,f)}else W(d),f&&f(g);else v(c,!0),f&&(g.success=!0,g.ref=H(c),f(g))}else v(c,!0),f&&((c=H(c))&&"undefined"!=typeof c.SetVariable&&(g.success=!0,g.ref=c),f(g))}}function H(a){var b=null;(a=p(a))&&"OBJECT"==a.nodeName&&("undefined"!=typeof a.SetVariable?b=a:(a=a.getElementsByTagName("object")[0])&&(b=a));return b}function F(){return!B&&A("6.0.65")&&(e.win||e.mac)&&!(e.wk&&312>e.wk)} -function G(a,b,c,f){B=!0;I=f||null;O={success:!1,id:c};var g=p(c);if(g){"OBJECT"==g.nodeName?(y=J(g),C=null):(y=g,C=c);a.id="SWFObjectExprInst";if("undefined"==typeof a.width||!/%$/.test(a.width)&&310>parseInt(a.width,10))a.width="310";if("undefined"==typeof a.height||!/%$/.test(a.height)&&137>parseInt(a.height,10))a.height="137";d.title=d.title.slice(0,47)+" - Flash Player Installation";f=e.ie&&e.win?"ActiveX":"PlugIn";f="MMredirectURL\x3d"+n.location.toString().replace(/&/g,"%26")+"\x26MMplayerType\x3d"+ -f+"\x26MMdoctitle\x3d"+d.title;b.flashvars="undefined"!=typeof b.flashvars?b.flashvars+("\x26"+f):f;e.ie&&e.win&&4!=g.readyState&&(f=d.createElement("div"),c+="SWFObjectNew",f.setAttribute("id",c),g.parentNode.insertBefore(f,g),g.style.display="none",function(){4==g.readyState?g.parentNode.removeChild(g):setTimeout(arguments.callee,10)}());K(a,b,c)}}function W(a){if(e.ie&&e.win&&4!=a.readyState){var b=d.createElement("div");a.parentNode.insertBefore(b,a);b.parentNode.replaceChild(J(a),b);a.style.display= -"none";(function(){4==a.readyState?a.parentNode.removeChild(a):setTimeout(arguments.callee,10)})()}else a.parentNode.replaceChild(J(a),a)}function J(a){var b=d.createElement("div");if(e.win&&e.ie)b.innerHTML=a.innerHTML;else if(a=a.getElementsByTagName("object")[0])if(a=a.childNodes)for(var c=a.length,f=0;fe.wk)return f;if(g)if("undefined"==typeof a.id&& -(a.id=c),e.ie&&e.win){var q="",h;for(h in a)a[h]!=Object.prototype[h]&&("data"==h.toLowerCase()?b.movie=a[h]:"styleclass"==h.toLowerCase()?q+=' class\x3d"'+a[h]+'"':"classid"!=h.toLowerCase()&&(q+=" "+h+'\x3d"'+a[h]+'"'));h="";for(var k in b)b[k]!=Object.prototype[k]&&(h+='\x3cparam name\x3d"'+k+'" value\x3d"'+b[k]+'" /\x3e');g.outerHTML='\x3cobject classid\x3d"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+q+"\x3e"+h+"\x3c/object\x3e";D[D.length]=a.id;f=p(a.id)}else{k=d.createElement("object");k.setAttribute("type", -"application/x-shockwave-flash");for(var l in a)a[l]!=Object.prototype[l]&&("styleclass"==l.toLowerCase()?k.setAttribute("class",a[l]):"classid"!=l.toLowerCase()&&k.setAttribute(l,a[l]));for(q in b)b[q]!=Object.prototype[q]&&"movie"!=q.toLowerCase()&&(a=k,h=q,l=b[q],c=d.createElement("param"),c.setAttribute("name",h),c.setAttribute("value",l),a.appendChild(c));g.parentNode.replaceChild(k,g);f=k}return f}function P(a){var b=p(a);b&&"OBJECT"==b.nodeName&&(e.ie&&e.win?(b.style.display="none",function(){if(4== -b.readyState){var c=p(a);if(c){for(var f in c)"function"==typeof c[f]&&(c[f]=null);c.parentNode.removeChild(c)}}else setTimeout(arguments.callee,10)}()):b.parentNode.removeChild(b))}function p(a){var b=null;try{b=d.getElementById(a)}catch(c){}return b}function U(a,b,c){a.attachEvent(b,c);x[x.length]=[a,b,c]}function A(a){var b=e.pv;a=a.split(".");a[0]=parseInt(a[0],10);a[1]=parseInt(a[1],10)||0;a[2]=parseInt(a[2],10)||0;return b[0]>a[0]||b[0]==a[0]&&b[1]>a[1]||b[0]==a[0]&&b[1]==a[1]&&b[2]>=a[2]?!0: -!1}function Q(a,b,c,f){if(!e.ie||!e.mac){var g=d.getElementsByTagName("head")[0];g&&(c=c&&"string"==typeof c?c:"screen",f&&(L=m=null),m&&L==c||(f=d.createElement("style"),f.setAttribute("type","text/css"),f.setAttribute("media",c),m=g.appendChild(f),e.ie&&e.win&&"undefined"!=typeof d.styleSheets&&0\.;]/.exec(a)&&"undefined"!=typeof encodeURIComponent?encodeURIComponent(a):a}var n=window,d=document,t=navigator,T=!1,z=[function(){T?V():E()}],r=[],D=[],x=[],y,C,I,O,u=!1,B=!1,m,L,R=!0,e=function(){var a="undefined"!=typeof d.getElementById&&"undefined"!=typeof d.getElementsByTagName&&"undefined"!=typeof d.createElement,b=t.userAgent.toLowerCase(), -c=t.platform.toLowerCase(),f=c?/win/.test(c):/win/.test(b),c=c?/mac/.test(c):/mac/.test(b),b=/webkit/.test(b)?parseFloat(b.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):!1,g=!+"\v1",e=[0,0,0],h=null;if("undefined"!=typeof t.plugins&&"object"==typeof t.plugins["Shockwave Flash"])!(h=t.plugins["Shockwave Flash"].description)||"undefined"!=typeof t.mimeTypes&&t.mimeTypes["application/x-shockwave-flash"]&&!t.mimeTypes["application/x-shockwave-flash"].enabledPlugin||(T=!0,g=!1,h=h.replace(/^.*\s+(\S+\s+\S+$)/, -"$1"),e[0]=parseInt(h.replace(/^(.*)\..*$/,"$1"),10),e[1]=parseInt(h.replace(/^.*\.(.*)\s.*$/,"$1"),10),e[2]=/[a-zA-Z]/.test(h)?parseInt(h.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0);else if("undefined"!=typeof n.ActiveXObject)try{var k=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");k&&(h=k.GetVariable("$version"))&&(g=!0,h=h.split(" ")[1].split(","),e=[parseInt(h[0],10),parseInt(h[1],10),parseInt(h[2],10)])}catch(l){}return{w3:a,pv:e,wk:b,ie:g,win:f,mac:c}}();(function(){e.w3&&(("undefined"!=typeof d.readyState&& -"complete"==d.readyState||"undefined"==typeof d.readyState&&(d.getElementsByTagName("body")[0]||d.body))&&w(),u||("undefined"!=typeof d.addEventListener&&d.addEventListener("DOMContentLoaded",w,!1),e.ie&&e.win&&(d.attachEvent("onreadystatechange",function(){"complete"==d.readyState&&(d.detachEvent("onreadystatechange",arguments.callee),w())}),n==top&&function(){if(!u){try{d.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee,0);return}w()}}()),e.wk&&function(){u||(/loaded|complete/.test(d.readyState)? -w():setTimeout(arguments.callee,0))}(),N(w)))})();(function(){e.ie&&e.win&&window.attachEvent("onunload",function(){for(var a=x.length,b=0;be.wk)&&a&&b&&c&&d&&g?(v(b,!1),M(function(){c+="";d+="";var e={};if(l&&"object"===typeof l)for(var m in l)e[m]=l[m];e.data=a;e.width=c;e.height=d;m={};if(k&&"object"===typeof k)for(var r in k)m[r]=k[r];if(h&&"object"===typeof h)for(var t in h)m.flashvars="undefined"!=typeof m.flashvars?m.flashvars+("\x26"+t+"\x3d"+h[t]):t+"\x3d"+h[t];if(A(g))r=K(e,m,b),e.id==b&&v(b,!0),p.success=!0,p.ref=r;else{if(q&&F()){e.data=q;G(e, -m,b,n);return}v(b,!0)}n&&n(p)})):n&&n(p)},switchOffAutoHideShow:function(){R=!1},ua:e,getFlashPlayerVersion:function(){return{major:e.pv[0],minor:e.pv[1],release:e.pv[2]}},hasFlashPlayerVersion:A,createSWF:function(a,b,c){if(e.w3)return K(a,b,c)},showExpressInstall:function(a,b,c,d){e.w3&&F()&&G(a,b,c,d)},removeSWF:function(a){e.w3&&P(a)},createCSS:function(a,b,c,d){e.w3&&Q(a,b,c,d)},addDomLoadEvent:M,addLoadEvent:N,getQueryParamValue:function(a){var b=d.location.search||d.location.hash;if(b){/\?/.test(b)&& -(b=b.split("?")[1]);if(null==a)return S(b);for(var b=b.split("\x26"),c=0;c - - - - - Output for Flash — CKEditor Sample - - - - - - - - - - - - -

- CKEditor Samples » Producing Flash Compliant HTML Output -

-
- This sample is not maintained anymore. Check out the brand new samples in CKEditor Examples. -
-
-

- This sample shows how to configure CKEditor to output - HTML code that can be used with - - Adobe Flash. - The code will contain a subset of standard HTML elements like <b>, - <i>, and <p> as well as HTML attributes. -

-

- To add a CKEditor instance outputting Flash compliant HTML code, load the editor using a standard - JavaScript call, and define CKEditor features to use HTML elements and attributes. -

-

- For details on how to create this setup check the source code of this sample page. -

-
-

- To see how it works, create some content in the editing area of CKEditor on the left - and send it to the Flash object on the right side of the page by using the - Send to Flash button. -

- - - - - -
- - -

- -

-
-
-
- - - diff --git a/ui/src/vendor/ckeditor/samples/old/htmlwriter/outputhtml.html b/ui/src/vendor/ckeditor/samples/old/htmlwriter/outputhtml.html deleted file mode 100644 index 5ecfbece2c..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/htmlwriter/outputhtml.html +++ /dev/null @@ -1,225 +0,0 @@ - - - - - - HTML Compliant Output — CKEditor Sample - - - - - - - - - - -

- CKEditor Samples » Producing HTML Compliant Output -

-
- This sample is not maintained anymore. Check out the brand new samples in CKEditor Examples. -
-
-

- This sample shows how to configure CKEditor to output valid - HTML 4.01 code. - Traditional HTML elements like <b>, - <i>, and <font> are used in place of - <strong>, <em>, and CSS styles. -

-

- To add a CKEditor instance outputting legacy HTML 4.01 code, load the editor using a standard - JavaScript call, and define CKEditor features to use the HTML compliant elements and attributes. -

-

- A snippet of the configuration code can be seen below; check the source of this page for - full definition: -

-
-CKEDITOR.replace( 'textarea_id', {
-	coreStyles_bold: { element: 'b' },
-	coreStyles_italic: { element: 'i' },
-
-	fontSize_style: {
-		element: 'font',
-		attributes: { 'size': '#(size)' }
-	}
-
-	...
-});
-
-
-

- - - -

-

- -

-
- - - diff --git a/ui/src/vendor/ckeditor/samples/old/index.html b/ui/src/vendor/ckeditor/samples/old/index.html deleted file mode 100644 index cccfeb4b1d..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/index.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - CKEditor Samples - - - - -

- CKEditor Samples -

-
- These samples are not maintained anymore. Check out the brand new samples in CKEditor Examples. -
-
-
-

- Basic Samples -

-
-
Replace textarea elements by class name
-
Automatic replacement of all textarea elements of a given class with a CKEditor instance.
- -
Replace textarea elements by code
-
Replacement of textarea elements with CKEditor instances by using a JavaScript call.
- -
Create editors with jQuery
-
Creating standard and inline CKEditor instances with jQuery adapter.
-
- -

- Basic Customization -

-
-
User Interface color
-
Changing CKEditor User Interface color and adding a toolbar button that lets the user set the UI color.
- -
User Interface languages
-
Changing CKEditor User Interface language and adding a drop-down list that lets the user choose the UI language.
-
- - -

Plugins

-
-
Magicline plugin
-
Try the latest sample of CKEditor 4 and learn more about customizing your WYSIWYG editor with endless possibilities.
- -
Full page support
-
Try the latest sample of CKEditor 4 and learn more about customizing your WYSIWYG editor with endless possibilities.
-
-
-
-

- Inline Editing -

-
-
Massive inline editor creation
-
Turn all elements with contentEditable = true attribute into inline editors.
- -
Convert element into an inline editor by code
-
Conversion of DOM elements into inline CKEditor instances by using a JavaScript call.
- -
Replace textarea with inline editor New!
-
A form with a textarea that is replaced by an inline editor at runtime.
- - -
- -

- Advanced Samples -

-
-
Data filtering and features activation New!
-
Data filtering and automatic features activation basing on configuration.
- -
Replace DIV elements on the fly
-
Transforming a div element into an instance of CKEditor with a mouse click.
- -
Append editor instances
-
Appending editor instances to existing DOM elements.
- -
Create and destroy editor instances for Ajax applications
-
Creating and destroying CKEditor instances on the fly and saving the contents entered into the editor window.
- -
Basic usage of the API
-
Using the CKEditor JavaScript API to interact with the editor at runtime.
- -
XHTML-compliant style
-
Configuring CKEditor to produce XHTML 1.1 compliant attributes and styles.
- -
Read-only mode
-
Using the readOnly API to block introducing changes to the editor contents.
- -
"Tab" key-based navigation
-
Navigating among editor instances with tab key.
- - - -
Using the JavaScript API to customize dialog windows
-
Try the latest sample of CKEditor 4 and learn more about customizing your WYSIWYG editor with endless possibilities.
- -
Using the "Enter" key in CKEditor
-
Try the latest sample of CKEditor 4 and learn more about customizing your WYSIWYG editor with endless possibilities.
- -
Output for Flash
-
Try the latest sample of CKEditor 4 and learn more about customizing your WYSIWYG editor with endless possibilities.
- -
Output HTML
-
Try the latest sample of CKEditor 4 and learn more about customizing your WYSIWYG editor with endless possibilities.
- -
Toolbar Configurations
-
Try the latest sample of CKEditor 4 and learn more about customizing your WYSIWYG editor with endless possibilities.
- -
-
-
- - - diff --git a/ui/src/vendor/ckeditor/samples/old/inlineall.html b/ui/src/vendor/ckeditor/samples/old/inlineall.html deleted file mode 100644 index 4ba80f0fda..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/inlineall.html +++ /dev/null @@ -1,315 +0,0 @@ - - - - - - Massive inline editing — CKEditor Sample - - - - - - - -
-

CKEditor Samples » Massive inline editing

-
- This sample is not maintained anymore. Check out its brand new version in CKEditor Examples. -
-
-

This sample page demonstrates the inline editing feature - CKEditor instances will be created automatically from page elements with contentEditable attribute set to value true:

-
<div contenteditable="true" > ... </div>
-

Click inside of any element below to start editing.

-
-
-
- -
-
-
-

- Fusce vitae porttitor -

-

- - Lorem ipsum dolor sit amet dolor. Duis blandit vestibulum faucibus a, tortor. - -

-

- Proin nunc justo felis mollis tincidunt, risus risus pede, posuere cubilia Curae, Nullam euismod, enim. Etiam nibh ultricies dolor ac dignissim erat volutpat. Vivamus fermentum nisl nulla sem in metus. Maecenas wisi. Donec nec erat volutpat. -

-
-

- Fusce vitae porttitor a, euismod convallis nisl, blandit risus tortor, pretium. - Vehicula vitae, imperdiet vel, ornare enim vel sodales rutrum -

-
-
-

- Libero nunc, rhoncus ante ipsum non ipsum. Nunc eleifend pede turpis id sollicitudin fringilla. Phasellus ultrices, velit ac arcu. -

-
-

Pellentesque nunc. Donec suscipit erat. Pellentesque habitant morbi tristique ullamcorper.

-

Mauris mattis feugiat lectus nec mauris. Nullam vitae ante.

-
-
-
-
-

- Integer condimentum sit amet -

-

- Aenean nonummy a, mattis varius. Cras aliquet. - Praesent magna non mattis ac, rhoncus nunc, rhoncus eget, cursus pulvinar mollis.

-

Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.

-

Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.

-
-
-

- Praesent wisi accumsan sit amet nibh -

-

Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.

-

Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue. Fusce urna fringilla gravida.

-

In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.

-
-
-
-
-

- CKEditor logo -

-

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi.

-

- Nullam laoreet vel consectetuer tellus suscipit -

-
    -
  • Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis.
  • -
  • Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi.
  • -
  • Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.
  • -
-

Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus.

-

Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis.

-

Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi. Sed in nonummy faucibus turpis. Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.

-
-
-
-
- Tags of this article: -

- inline, editing, floating, CKEditor -

-
-
- - - diff --git a/ui/src/vendor/ckeditor/samples/old/inlinebycode.html b/ui/src/vendor/ckeditor/samples/old/inlinebycode.html deleted file mode 100644 index 1fb2999e93..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/inlinebycode.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - Inline Editing by Code — CKEditor Sample - - - - - - -

- CKEditor Samples » Inline Editing by Code -

-
- This sample is not maintained anymore. Check out its brand new version in CKEditor Examples. -
-
-

- This sample shows how to create an inline editor instance of CKEditor. It is created - with a JavaScript call using the following code: -

-
-// This property tells CKEditor to not activate every element with contenteditable=true element.
-CKEDITOR.disableAutoInline = true;
-
-var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );
-
-

- Note that editable in the code above is the id - attribute of the <div> element to be converted into an inline instance. -

-
-
-

Saturn V carrying Apollo 11 Apollo 11

- -

Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

- -

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.

- -

Broadcasting and quotes

- -

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

- -
-

One small step for [a] man, one giant leap for mankind.

-
- -

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

- -
-

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

-
- -

Technical details

- - - - - - - - - - - - - - - - - - - - - - - -
Mission crew
PositionAstronaut
CommanderNeil A. Armstrong
Command Module PilotMichael Collins
Lunar Module PilotEdwin "Buzz" E. Aldrin, Jr.
- -

Launched by a Saturn V rocket from Kennedy Space Center in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of NASA's Apollo program. The Apollo spacecraft had three parts:

- -
    -
  1. Command Module with a cabin for the three astronauts which was the only part which landed back on Earth
  2. -
  3. Service Module which supported the Command Module with propulsion, electrical power, oxygen and water
  4. -
  5. Lunar Module for landing on the Moon.
  6. -
- -

After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the Sea of Tranquility. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the Pacific Ocean on July 24.

- -
-

Source: Wikipedia.org

-
- - - - - diff --git a/ui/src/vendor/ckeditor/samples/old/inlinetextarea.html b/ui/src/vendor/ckeditor/samples/old/inlinetextarea.html deleted file mode 100644 index 98d9870941..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/inlinetextarea.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - Replace Textarea with Inline Editor — CKEditor Sample - - - - - - -

- CKEditor Samples » Replace Textarea with Inline Editor -

-
- This sample is not maintained anymore. Check out its brand new version in CKEditor Examples. -
-
-

- You can also create an inline editor from a textarea - element. In this case the textarea will be replaced - by a div element with inline editing enabled. -

-
-// "article-body" is the name of a textarea element.
-var editor = CKEDITOR.inline( 'article-body' );
-
-
-
-

This is a sample form with some fields

-

- Title:
-

-

- Article Body (Textarea converted to CKEditor):
- -

-

- -

-
- - - - - diff --git a/ui/src/vendor/ckeditor/samples/old/jquery.html b/ui/src/vendor/ckeditor/samples/old/jquery.html deleted file mode 100644 index e19fcd9a84..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/jquery.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - jQuery Adapter — CKEditor Sample - - - - - - - - - -

- CKEditor Samples » Create Editors with jQuery -

-
- This sample is not maintained anymore. Check out the brand new samples in CKEditor Examples. -
-
-
-

- This sample shows how to use the jQuery adapter. - Note that you have to include both CKEditor and jQuery scripts before including the adapter. -

- -
-<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
-<script src="/ckedit../../ckeditor.js"></script>
-<script src="/ckeditor/adapters/jquery.js"></script>
-
- -

Then you can replace HTML elements with a CKEditor instance using the ckeditor() method.

- -
-$( document ).ready( function() {
-	$( 'textarea#editor1' ).ckeditor();
-} );
-
-
- -

Inline Example

- -
-

Saturn V carrying Apollo 11Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.

-

Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins, piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth. -

Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:

-

One small step for [a] man, one giant leap for mankind.

Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:

[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.

-
- -
- -

Classic (iframe-based) Example

- - - -

- - - - - -

-
- - - diff --git a/ui/src/vendor/ckeditor/samples/old/magicline/magicline.html b/ui/src/vendor/ckeditor/samples/old/magicline/magicline.html deleted file mode 100644 index e2b2d65d14..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/magicline/magicline.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - Using Magicline plugin — CKEditor Sample - - - - - - - - -

- CKEditor Samples » Using Magicline plugin -

-
- This sample is not maintained anymore. Check out its brand new version in CKEditor Examples. -
-
-

- This sample shows the advantages of Magicline plugin - which is to enhance the editing process. Thanks to this plugin, - a number of difficult focus spaces which are inaccessible due to - browser issues can now be focused. -

-

- Magicline plugin shows a red line with a handler - which, when clicked, inserts a paragraph and allows typing. To see this, - focus an editor and move your mouse above the focus space you want - to access. The plugin is enabled by default so no additional - configuration is necessary. -

-
-
- -
-

- This editor uses a default Magicline setup. -

-
- - -
-
-
- -
-

- This editor is using a blue line. -

-
-CKEDITOR.replace( 'editor2', {
-	magicline_color: 'blue'
-});
-
- - -
- - - diff --git a/ui/src/vendor/ckeditor/samples/old/readonly.html b/ui/src/vendor/ckeditor/samples/old/readonly.html deleted file mode 100644 index d1c57670de..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/readonly.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - Using the CKEditor Read-Only API — CKEditor Sample - - - - - - -

- CKEditor Samples » Using the CKEditor Read-Only API -

-
- This sample is not maintained anymore. Check out its brand new version in CKEditor Examples. -
-
-

- This sample shows how to use the - setReadOnly - API to put editor into the read-only state that makes it impossible for users to change the editor contents. -

-

- For details on how to create this setup check the source code of this sample page. -

-
-
-

- -

-

- - -

-
- - - diff --git a/ui/src/vendor/ckeditor/samples/old/replacebyclass.html b/ui/src/vendor/ckeditor/samples/old/replacebyclass.html deleted file mode 100644 index 5b117cb402..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/replacebyclass.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - Replace Textareas by Class Name — CKEditor Sample - - - - - -

- CKEditor Samples » Replace Textarea Elements by Class Name -

-
- This sample is not maintained anymore. Check out the brand new samples in CKEditor Examples. -
-
-

- This sample shows how to automatically replace all <textarea> elements - of a given class with a CKEditor instance. -

-

- To replace a <textarea> element, simply assign it the ckeditor - class, as in the code below: -

-
-<textarea class="ckeditor" name="editor1"></textarea>
-
-

- Note that other <textarea> attributes (like id or name) need to be adjusted to your document. -

-
-
-

- - -

-

- -

-
- - - diff --git a/ui/src/vendor/ckeditor/samples/old/replacebycode.html b/ui/src/vendor/ckeditor/samples/old/replacebycode.html deleted file mode 100644 index 87fda73cde..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/replacebycode.html +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - Replace Textarea by Code — CKEditor Sample - - - - - -

- CKEditor Samples » Replace Textarea Elements Using JavaScript Code -

-
- This sample is not maintained anymore. Check out its brand new version in CKEditor Examples. -
-
-
-

- This editor is using an <iframe> element-based editing area, provided by the Wysiwygarea plugin. -

-
-CKEDITOR.replace( 'textarea_id' )
-
-
- - -

- -

-
- - - diff --git a/ui/src/vendor/ckeditor/samples/old/sample.css b/ui/src/vendor/ckeditor/samples/old/sample.css deleted file mode 100644 index 7adfc5bfc9..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/sample.css +++ /dev/null @@ -1,357 +0,0 @@ -/* -Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license -*/ - -html, body, h1, h2, h3, h4, h5, h6, div, span, blockquote, p, address, form, fieldset, img, ul, ol, dl, dt, dd, li, hr, table, td, th, strong, em, sup, sub, dfn, ins, del, q, cite, var, samp, code, kbd, tt, pre -{ - line-height: 1.5; -} - -body -{ - padding: 10px 30px; -} - -input, textarea, select, option, optgroup, button, td, th -{ - font-size: 100%; -} - -pre -{ - -moz-tab-size: 4; - tab-size: 4; -} - -pre, code, kbd, samp, tt -{ - font-family: monospace,monospace; - font-size: 1em; -} - -body { - width: 960px; - margin: 0 auto; -} - -code -{ - background: #f3f3f3; - border: 1px solid #ddd; - padding: 1px 4px; - border-radius: 3px; -} - -abbr -{ - border-bottom: 1px dotted #555; - cursor: pointer; -} - -.new, .beta -{ - text-transform: uppercase; - font-size: 10px; - font-weight: bold; - padding: 1px 4px; - margin: 0 0 0 5px; - color: #fff; - float: right; - border-radius: 3px; -} - -.new -{ - background: #FF7E00; - border: 1px solid #DA8028; - text-shadow: 0 1px 0 #C97626; - - box-shadow: 0 2px 3px 0 #FFA54E inset; -} - -.beta -{ - background: #18C0DF; - border: 1px solid #19AAD8; - text-shadow: 0 1px 0 #048CAD; - font-style: italic; - - box-shadow: 0 2px 3px 0 #50D4FD inset; -} - -h1.samples -{ - color: #0782C1; - font-size: 200%; - font-weight: normal; - margin: 0; - padding: 0; -} - -h1.samples a -{ - color: #0782C1; - text-decoration: none; - border-bottom: 1px dotted #0782C1; -} - -.samples a:hover -{ - border-bottom: 1px dotted #0782C1; -} - -h2.samples -{ - color: #000000; - font-size: 130%; - margin: 15px 0 0 0; - padding: 0; -} - -p, blockquote, address, form, pre, dl, h1.samples, h2.samples -{ - margin-bottom: 15px; -} - -ul.samples -{ - margin-bottom: 15px; -} - -.clear -{ - clear: both; -} - -fieldset -{ - margin: 0; - padding: 10px; -} - -body, input, textarea -{ - color: #333333; - font-family: Arial, Helvetica, sans-serif; -} - -body -{ - font-size: 75%; -} - -a.samples -{ - color: #189DE1; - text-decoration: none; -} - -form -{ - margin: 0; - padding: 0; -} - -pre.samples -{ - background-color: #F7F7F7; - border: 1px solid #D7D7D7; - overflow: auto; - padding: 0.25em; - white-space: pre-wrap; /* CSS 2.1 */ - word-wrap: break-word; /* IE7 */ -} - -#footer -{ - clear: both; - padding-top: 10px; -} - -#footer hr -{ - margin: 10px 0 15px 0; - height: 1px; - border: solid 1px gray; - border-bottom: none; -} - -#footer p -{ - margin: 0 10px 10px 10px; - float: left; -} - -#footer #copy -{ - float: right; -} - -#outputSample -{ - width: 100%; - table-layout: fixed; -} - -#outputSample thead th -{ - color: #dddddd; - background-color: #999999; - padding: 4px; - white-space: nowrap; -} - -#outputSample tbody th -{ - vertical-align: top; - text-align: left; -} - -#outputSample pre -{ - margin: 0; - padding: 0; -} - -.description -{ - border: 1px dotted #B7B7B7; - margin-bottom: 10px; - padding: 10px 10px 0; - overflow: hidden; -} - -label -{ - display: block; - margin-bottom: 6px; -} - -/** - * CKEditor editables are automatically set with the "cke_editable" class - * plus cke_editable_(inline|themed) depending on the editor type. - */ - -/* Style a bit the inline editables. */ -.cke_editable.cke_editable_inline -{ - cursor: pointer; -} - -/* Once an editable element gets focused, the "cke_focus" class is - added to it, so we can style it differently. */ -.cke_editable.cke_editable_inline.cke_focus -{ - box-shadow: inset 0px 0px 20px 3px #ddd, inset 0 0 1px #000; - outline: none; - background: #eee; - cursor: text; -} - -/* Avoid pre-formatted overflows inline editable. */ -.cke_editable_inline pre -{ - white-space: pre-wrap; - word-wrap: break-word; -} - -/** - * Samples index styles. - */ - -.twoColumns, -.twoColumnsLeft, -.twoColumnsRight -{ - overflow: hidden; -} - -.twoColumnsLeft, -.twoColumnsRight -{ - width: 45%; -} - -.twoColumnsLeft -{ - float: left; -} - -.twoColumnsRight -{ - float: right; -} - -dl.samples -{ - padding: 0 0 0 40px; -} -dl.samples > dt -{ - display: list-item; - list-style-type: disc; - list-style-position: outside; - margin: 0 0 3px; -} -dl.samples > dd -{ - margin: 0 0 3px; -} -.warning -{ - color: #ff0000; - background-color: #FFCCBA; - border: 2px dotted #ff0000; - padding: 15px 10px; - margin: 10px 0; -} - -.warning.deprecated { - font-size: 1.3em; -} - -/* Used on inline samples */ - -blockquote -{ - font-style: italic; - font-family: Georgia, Times, "Times New Roman", serif; - padding: 2px 0; - border-style: solid; - border-color: #ccc; - border-width: 0; -} - -.cke_contents_ltr blockquote -{ - padding-left: 20px; - padding-right: 8px; - border-left-width: 5px; -} - -.cke_contents_rtl blockquote -{ - padding-left: 8px; - padding-right: 20px; - border-right-width: 5px; -} - -img.right { - border: 1px solid #ccc; - float: right; - margin-left: 15px; - padding: 5px; -} - -img.left { - border: 1px solid #ccc; - float: left; - margin-right: 15px; - padding: 5px; -} - -.marker -{ - background-color: Yellow; -} diff --git a/ui/src/vendor/ckeditor/samples/old/sample.js b/ui/src/vendor/ckeditor/samples/old/sample.js deleted file mode 100644 index 10a8efd6c4..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/sample.js +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license - */ - -// Tool scripts for the sample pages. -// This file can be ignored and is not required to make use of CKEditor. - -( function() { - CKEDITOR.on( 'instanceReady', function( ev ) { - // Check for sample compliance. - var editor = ev.editor, - meta = CKEDITOR.document.$.getElementsByName( 'ckeditor-sample-required-plugins' ), - requires = meta.length ? CKEDITOR.dom.element.get( meta[ 0 ] ).getAttribute( 'content' ).split( ',' ) : [], - missing = [], - i; - - if ( requires.length ) { - for ( i = 0; i < requires.length; i++ ) { - if ( !editor.plugins[ requires[ i ] ] ) - missing.push( '' + requires[ i ] + '' ); - } - - if ( missing.length ) { - var warn = CKEDITOR.dom.element.createFromHtml( - '
' + - 'To fully experience this demo, the ' + missing.join( ', ' ) + ' plugin' + ( missing.length > 1 ? 's are' : ' is' ) + ' required.' + - '
' - ); - warn.insertBefore( editor.container ); - } - } - - // Set icons. - var doc = new CKEDITOR.dom.document( document ), - icons = doc.find( '.button_icon' ); - - for ( i = 0; i < icons.count(); i++ ) { - var icon = icons.getItem( i ), - name = icon.getAttribute( 'data-icon' ), - style = CKEDITOR.skin.getIconStyle( name, ( CKEDITOR.lang.dir == 'rtl' ) ); - - icon.addClass( 'cke_button_icon' ); - icon.addClass( 'cke_button__' + name + '_icon' ); - icon.setAttribute( 'style', style ); - icon.setStyle( 'float', 'none' ); - - } - } ); -} )(); diff --git a/ui/src/vendor/ckeditor/samples/old/sample_posteddata.php b/ui/src/vendor/ckeditor/samples/old/sample_posteddata.php deleted file mode 100644 index b179dd10d1..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/sample_posteddata.php +++ /dev/null @@ -1,16 +0,0 @@ -
-
--------------------------------------------------------------------------------------------
-  CKEditor - Posted Data
-
-  We are sorry, but your Web server does not support the PHP language used in this script.
-
-  Please note that CKEditor can be used with any other server-side language than just PHP.
-  To save the content created with CKEditor you need to read the POST data on the server
-  side and write it to a file or the database.
-
-  Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved.
-  For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
--------------------------------------------------------------------------------------------
-
-
*/ include "assets/posteddata.php"; ?> diff --git a/ui/src/vendor/ckeditor/samples/old/tabindex.html b/ui/src/vendor/ckeditor/samples/old/tabindex.html deleted file mode 100644 index fc2649150a..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/tabindex.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - TAB Key-Based Navigation — CKEditor Sample - - - - - - - -

- CKEditor Samples » TAB Key-Based Navigation -

-
- This sample is not maintained anymore. Check out its brand new version in CKEditor Examples. -
-
-

- This sample shows how tab key navigation among editor instances is - affected by the tabIndex attribute from - the original page element. Use TAB key to move between the editors. -

-
-

- -

-
-

- -

-

- -

- - - diff --git a/ui/src/vendor/ckeditor/samples/old/toolbar/toolbar.html b/ui/src/vendor/ckeditor/samples/old/toolbar/toolbar.html deleted file mode 100644 index cbbd143a83..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/toolbar/toolbar.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - Toolbar Configuration — CKEditor Sample - - - - - - - - -

- CKEditor Samples » Toolbar Configuration -

-
- This sample is not maintained anymore. Check out the brand new CKEditor Toolbar Configurator. -
-
-

- This sample page demonstrates editor with loaded full toolbar (all registered buttons) and, if - current editor's configuration modifies default settings, also editor with modified toolbar. -

- -

Since CKEditor 4 there are two ways to configure toolbar buttons.

- -

By config.toolbar

- -

- You can explicitly define which buttons are displayed in which groups and in which order. - This is the more precise setting, but less flexible. If newly added plugin adds its - own button you'll have to add it manually to your config.toolbar setting as well. -

- -

To add a CKEditor instance with custom toolbar setting, insert the following JavaScript call to your code:

- -
-CKEDITOR.replace( 'textarea_id', {
-	toolbar: [
-		{ name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] },	// Defines toolbar group with name (used to create voice label) and items in 3 subgroups.
-		[ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ],			// Defines toolbar group without name.
-		'/',																					// Line break - next group will be placed in new line.
-		{ name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
-	]
-});
- -

By config.toolbarGroups

- -

- You can define which groups of buttons (like e.g. basicstyles, clipboard - and forms) are displayed and in which order. Registered buttons are associated - with toolbar groups by toolbar property in their definition. - This setting's advantage is that you don't have to modify toolbar configuration - when adding/removing plugins which register their own buttons. -

- -

To add a CKEditor instance with custom toolbar groups setting, insert the following JavaScript call to your code:

- -
-CKEDITOR.replace( 'textarea_id', {
-	toolbarGroups: [
-		{ name: 'document',	   groups: [ 'mode', 'document' ] },			// Displays document group with its two subgroups.
- 		{ name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },			// Group's name will be used to create voice label.
- 		'/',																// Line break - next group will be placed in new line.
- 		{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
- 		{ name: 'links' }
-	]
-
-	// NOTE: Remember to leave 'toolbar' property with the default value (null).
-});
-
- - - -
-

Full toolbar configuration

-

Below you can see editor with full toolbar, generated automatically by the editor.

-

- Note: To create editor instance with full toolbar you don't have to set anything. - Just leave toolbar and toolbarGroups with the default, null values. -

- -

-	
- - - - - - diff --git a/ui/src/vendor/ckeditor/samples/old/uicolor.html b/ui/src/vendor/ckeditor/samples/old/uicolor.html deleted file mode 100644 index b2041c0d16..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/uicolor.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - UI Color Picker — CKEditor Sample - - - - - -

- CKEditor Samples » UI Color -

-
- This sample is not maintained anymore. Check out its brand new version in CKEditor Examples. -
-
-

- This sample shows how to automatically replace <textarea> elements - with a CKEditor instance with an option to change the color of its user interface.
- Note:The UI skin color feature depends on the CKEditor skin - compatibility. The Moono and Kama skins are examples of skins that work with it. -

-
-
-

- This editor instance has a UI color value defined in configuration to change the skin color, - To specify the color of the user interface, set the uiColor property: -

-
-CKEDITOR.replace( 'textarea_id', {
-	uiColor: '#14B8C4'
-});
-

- Note that textarea_id in the code above is the id attribute of - the <textarea> element to be replaced. -

-

- - -

-

- -

-
- - - diff --git a/ui/src/vendor/ckeditor/samples/old/uilanguages.html b/ui/src/vendor/ckeditor/samples/old/uilanguages.html deleted file mode 100644 index 770f28becf..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/uilanguages.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - User Interface Globalization — CKEditor Sample - - - - - - -

- CKEditor Samples » User Interface Languages -

-
- This sample is not maintained anymore. Check out its brand new version in CKEditor Examples. -
-
-

- This sample shows how to automatically replace <textarea> elements - with a CKEditor instance with an option to change the language of its user interface. -

-

- It pulls the language list from CKEditor _languages.js file that contains the list of supported languages and creates - a drop-down list that lets the user change the UI language. -

-

- By default, CKEditor automatically localizes the editor to the language of the user. - The UI language can be controlled with two configuration options: - language and - - defaultLanguage. The defaultLanguage setting specifies the - default CKEditor language to be used when a localization suitable for user's settings is not available. -

-

- To specify the user interface language that will be used no matter what language is - specified in user's browser or operating system, set the language property: -

-
-CKEDITOR.replace( 'textarea_id', {
-	// Load the German interface.
-	language: 'de'
-});
-

- Note that textarea_id in the code above is the id attribute of - the <textarea> element to be replaced. -

-
-
-

- Available languages ( languages!):
- -
- - (You may see strange characters if your system does not support the selected language) - -

-

- - -

-
- - - diff --git a/ui/src/vendor/ckeditor/samples/old/wysiwygarea/fullpage.html b/ui/src/vendor/ckeditor/samples/old/wysiwygarea/fullpage.html deleted file mode 100644 index 0eb1e91cf6..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/wysiwygarea/fullpage.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - Full Page Editing — CKEditor Sample - - - - - - - - - - -

- CKEditor Samples » Full Page Editing -

-
- This sample is not maintained anymore. Check out its brand new version in CKEditor Examples. -
-
-

- This sample shows how to configure CKEditor to edit entire HTML pages, from the - <html> tag to the </html> tag. -

-

- The CKEditor instance below is inserted with a JavaScript call using the following code: -

-
-CKEDITOR.replace( 'textarea_id', {
-	fullPage: true,
-	allowedContent: true
-});
-
-

- Note that textarea_id in the code above is the id attribute of - the <textarea> element to be replaced. -

-

- The allowedContent in the code above is set to true to disable content filtering. - Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations. -

-
-
- - - -

- -

-
- - - diff --git a/ui/src/vendor/ckeditor/samples/old/xhtmlstyle.html b/ui/src/vendor/ckeditor/samples/old/xhtmlstyle.html deleted file mode 100644 index dffcba9c77..0000000000 --- a/ui/src/vendor/ckeditor/samples/old/xhtmlstyle.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - XHTML Compliant Output — CKEditor Sample - - - - - - - -

- CKEditor Samples » Producing XHTML Compliant Output -

-
- This sample is not maintained anymore. Check out its brand new version in CKEditor Examples. -
-
-

- This sample shows how to configure CKEditor to output valid - XHTML 1.1 code. - Deprecated elements (<font>, <u>) or attributes - (size, face) will be replaced with XHTML compliant code. -

-

- To add a CKEditor instance outputting valid XHTML code, load the editor using a standard - JavaScript call and define CKEditor features to use the XHTML compliant elements and styles. -

-

- A snippet of the configuration code can be seen below; check the source of this page for - full definition: -

-
-CKEDITOR.replace( 'textarea_id', {
-	contentsCss: 'assets/outputxhtml.css',
-
-	coreStyles_bold: {
-		element: 'span',
-		attributes: { 'class': 'Bold' }
-	},
-	coreStyles_italic: {
-		element: 'span',
-		attributes: { 'class': 'Italic' }
-	},
-
-	...
-});
-
-
-

- - - -

-

- -

-
- - - diff --git a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/css/fontello.css b/ui/src/vendor/ckeditor/samples/toolbarconfigurator/css/fontello.css deleted file mode 100644 index af1d460853..0000000000 --- a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/css/fontello.css +++ /dev/null @@ -1,55 +0,0 @@ -@font-face { - font-family: 'fontello'; - src: url('../font/fontello.eot?89024372'); - src: url('../font/fontello.eot?89024372#iefix') format('embedded-opentype'), - url('../font/fontello.woff?89024372') format('woff'), - url('../font/fontello.ttf?89024372') format('truetype'), - url('../font/fontello.svg?89024372#fontello') format('svg'); - font-weight: normal; - font-style: normal; -} -/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ -/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ -/* -@media screen and (-webkit-min-device-pixel-ratio:0) { - @font-face { - font-family: 'fontello'; - src: url('../font/fontello.svg?89024372#fontello') format('svg'); - } -} -*/ - - [class^="icon-"]:before, [class*=" icon-"]:before { - font-family: "fontello"; - font-style: normal; - font-weight: normal; - speak: none; - - display: inline-block; - text-decoration: inherit; - width: 1em; - margin-right: .2em; - text-align: center; - /* opacity: .8; */ - - /* For safety - reset parent styles, that can break glyph codes*/ - font-variant: normal; - text-transform: none; - - /* fix buttons height, for twitter bootstrap */ - line-height: 1em; - - /* Animation center compensation - margins should be symmetric */ - /* remove if not needed */ - margin-left: .2em; - - /* you can be more comfortable with increased icons size */ - /* font-size: 120%; */ - - /* Uncomment for 3D effect */ - /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ -} - -.icon-trash:before { content: '\e802'; } /* '' */ -.icon-down-big:before { content: '\e800'; } /* '' */ -.icon-up-big:before { content: '\e801'; } /* '' */ diff --git a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/font/LICENSE.txt b/ui/src/vendor/ckeditor/samples/toolbarconfigurator/font/LICENSE.txt deleted file mode 100644 index 174b67a48a..0000000000 --- a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/font/LICENSE.txt +++ /dev/null @@ -1,10 +0,0 @@ -Font license info - - -## Font Awesome - - Copyright (C) 2012 by Dave Gandy - - Author: Dave Gandy - License: SIL () - Homepage: http://fortawesome.github.com/Font-Awesome/ diff --git a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/font/config.json b/ui/src/vendor/ckeditor/samples/toolbarconfigurator/font/config.json deleted file mode 100644 index 94809d70d1..0000000000 --- a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/font/config.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "", - "css_prefix_text": "icon-", - "css_use_suffix": false, - "hinting": true, - "units_per_em": 1000, - "ascent": 850, - "glyphs": [ - { - "uid": "f48ae54adfb27d8ada53d0fd9e34ee10", - "css": "trash-empty", - "code": 59392, - "src": "fontawesome" - }, - { - "uid": "1c4068ed75209e21af36017df8871802", - "css": "down-big", - "code": 59393, - "src": "fontawesome" - }, - { - "uid": "95376bf082bfec6ce06ea1cda7bd7ead", - "css": "up-big", - "code": 59394, - "src": "fontawesome" - } - ] -} \ No newline at end of file diff --git a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.eot b/ui/src/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.eot deleted file mode 100644 index 2732fad4b9..0000000000 Binary files a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.eot and /dev/null differ diff --git a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.svg b/ui/src/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.svg deleted file mode 100644 index 33d14ac833..0000000000 --- a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - -Copyright (C) 2014 by original authors @ fontello.com - - - - - - - - - - \ No newline at end of file diff --git a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.ttf b/ui/src/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.ttf deleted file mode 100644 index fbcbf06af5..0000000000 Binary files a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.ttf and /dev/null differ diff --git a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.woff b/ui/src/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.woff deleted file mode 100644 index e1d56472f8..0000000000 Binary files a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.woff and /dev/null differ diff --git a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/index.html b/ui/src/vendor/ckeditor/samples/toolbarconfigurator/index.html deleted file mode 100644 index aed6fa05f9..0000000000 --- a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/index.html +++ /dev/null @@ -1,447 +0,0 @@ - - - - - - - - Toolbar Configurator - - - - - - - - - - - - - -
-
-

- CKEditor Logo -

- -
-
- -
-
-
-
-
-

- Toolbar Configurator - Help -

- -
-
- Select configurator type - - - - - - - -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-

What Am I Doing Here?

- -
-
-
-

Arrange toolbar groups, toggle button visibility according to your needs and get your toolbar configuration.

-

You can replace the content of the config.js file with the generated configuration. If you already set some configuration options you will need to merge both configurations.

-
-
-

Read more about different ways of setting configuration and do not forget about clearing browser cache.

-

Arranging toolbar groups is the recommended way of configuring the toolbar, but if you need more freedom you can use the advanced configurator.

-
-
- -
- -

- -

-
-
-
-
- -
-

- CKEditor – The text editor for the Internet – https://ckeditor.com -

-

- Copyright © 2003-2021, CKSource – Frederico Knabben. All rights reserved. -

-
- - - - - - - - - - - - - - diff --git a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier.js b/ui/src/vendor/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier.js deleted file mode 100644 index 65f0b8753f..0000000000 --- a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier.js +++ /dev/null @@ -1,13 +0,0 @@ -"function"!=typeof Object.create&&function(){var a=function(){};Object.create=function(b){if(1 and others - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.css b/ui/src/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.css deleted file mode 100644 index ceacd13047..0000000000 --- a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.css +++ /dev/null @@ -1,325 +0,0 @@ -/* BASICS */ - -.CodeMirror { - /* Set height, width, borders, and global font properties here */ - font-family: monospace; - height: 300px; - color: black; -} - -/* PADDING */ - -.CodeMirror-lines { - padding: 4px 0; /* Vertical padding around content */ -} -.CodeMirror pre { - padding: 0 4px; /* Horizontal padding of content */ -} - -.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { - background-color: white; /* The little square between H and V scrollbars */ -} - -/* GUTTER */ - -.CodeMirror-gutters { - border-right: 1px solid #ddd; - background-color: #f7f7f7; - white-space: nowrap; -} -.CodeMirror-linenumbers {} -.CodeMirror-linenumber { - padding: 0 3px 0 5px; - min-width: 20px; - text-align: right; - color: #999; - white-space: nowrap; -} - -.CodeMirror-guttermarker { color: black; } -.CodeMirror-guttermarker-subtle { color: #999; } - -/* CURSOR */ - -.CodeMirror div.CodeMirror-cursor { - border-left: 1px solid black; -} -/* Shown when moving in bi-directional text */ -.CodeMirror div.CodeMirror-secondarycursor { - border-left: 1px solid silver; -} -.CodeMirror.cm-fat-cursor div.CodeMirror-cursor { - width: auto; - border: 0; - background: #7e7; -} -.CodeMirror.cm-fat-cursor div.CodeMirror-cursors { - z-index: 1; -} - -.cm-animate-fat-cursor { - width: auto; - border: 0; - -webkit-animation: blink 1.06s steps(1) infinite; - -moz-animation: blink 1.06s steps(1) infinite; - animation: blink 1.06s steps(1) infinite; -} -@-moz-keyframes blink { - 0% { background: #7e7; } - 50% { background: none; } - 100% { background: #7e7; } -} -@-webkit-keyframes blink { - 0% { background: #7e7; } - 50% { background: none; } - 100% { background: #7e7; } -} -@keyframes blink { - 0% { background: #7e7; } - 50% { background: none; } - 100% { background: #7e7; } -} - -/* Can style cursor different in overwrite (non-insert) mode */ -div.CodeMirror-overwrite div.CodeMirror-cursor {} - -.cm-tab { display: inline-block; text-decoration: inherit; } - -.CodeMirror-ruler { - border-left: 1px solid #ccc; - position: absolute; -} - -/* DEFAULT THEME */ - -.cm-s-default .cm-keyword {color: #708;} -.cm-s-default .cm-atom {color: #219;} -.cm-s-default .cm-number {color: #164;} -.cm-s-default .cm-def {color: #00f;} -.cm-s-default .cm-variable, -.cm-s-default .cm-punctuation, -.cm-s-default .cm-property, -.cm-s-default .cm-operator {} -.cm-s-default .cm-variable-2 {color: #05a;} -.cm-s-default .cm-variable-3 {color: #085;} -.cm-s-default .cm-comment {color: #a50;} -.cm-s-default .cm-string {color: #a11;} -.cm-s-default .cm-string-2 {color: #f50;} -.cm-s-default .cm-meta {color: #555;} -.cm-s-default .cm-qualifier {color: #555;} -.cm-s-default .cm-builtin {color: #30a;} -.cm-s-default .cm-bracket {color: #997;} -.cm-s-default .cm-tag {color: #170;} -.cm-s-default .cm-attribute {color: #00c;} -.cm-s-default .cm-header {color: blue;} -.cm-s-default .cm-quote {color: #090;} -.cm-s-default .cm-hr {color: #999;} -.cm-s-default .cm-link {color: #00c;} - -.cm-negative {color: #d44;} -.cm-positive {color: #292;} -.cm-header, .cm-strong {font-weight: bold;} -.cm-em {font-style: italic;} -.cm-link {text-decoration: underline;} -.cm-strikethrough {text-decoration: line-through;} - -.cm-s-default .cm-error {color: #f00;} -.cm-invalidchar {color: #f00;} - -.CodeMirror-composing { border-bottom: 2px solid; } - -/* Default styles for common addons */ - -div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;} -div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;} -.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); } -.CodeMirror-activeline-background {background: #e8f2ff;} - -/* STOP */ - -/* The rest of this file contains styles related to the mechanics of - the editor. You probably shouldn't touch them. */ - -.CodeMirror { - position: relative; - overflow: hidden; - background: white; -} - -.CodeMirror-scroll { - overflow: scroll !important; /* Things will break if this is overridden */ - /* 30px is the magic margin used to hide the element's real scrollbars */ - /* See overflow: hidden in .CodeMirror */ - margin-bottom: -30px; margin-right: -30px; - padding-bottom: 30px; - height: 100%; - outline: none; /* Prevent dragging from highlighting the element */ - position: relative; -} -.CodeMirror-sizer { - position: relative; - border-right: 30px solid transparent; -} - -/* The fake, visible scrollbars. Used to force redraw during scrolling - before actuall scrolling happens, thus preventing shaking and - flickering artifacts. */ -.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { - position: absolute; - z-index: 6; - display: none; -} -.CodeMirror-vscrollbar { - right: 0; top: 0; - overflow-x: hidden; - overflow-y: scroll; -} -.CodeMirror-hscrollbar { - bottom: 0; left: 0; - overflow-y: hidden; - overflow-x: scroll; -} -.CodeMirror-scrollbar-filler { - right: 0; bottom: 0; -} -.CodeMirror-gutter-filler { - left: 0; bottom: 0; -} - -.CodeMirror-gutters { - position: absolute; left: 0; top: 0; - z-index: 3; -} -.CodeMirror-gutter { - white-space: normal; - height: 100%; - display: inline-block; - margin-bottom: -30px; - /* Hack to make IE7 behave */ - *zoom:1; - *display:inline; -} -.CodeMirror-gutter-wrapper { - position: absolute; - z-index: 4; - height: 100%; -} -.CodeMirror-gutter-elt { - position: absolute; - cursor: default; - z-index: 4; -} -.CodeMirror-gutter-wrapper { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; -} - -.CodeMirror-lines { - cursor: text; - min-height: 1px; /* prevents collapsing before first draw */ -} -.CodeMirror pre { - /* Reset some styles that the rest of the page might have set */ - -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; - border-width: 0; - background: transparent; - font-family: inherit; - font-size: inherit; - margin: 0; - white-space: pre; - word-wrap: normal; - line-height: inherit; - color: inherit; - z-index: 2; - position: relative; - overflow: visible; - -webkit-tap-highlight-color: transparent; -} -.CodeMirror-wrap pre { - word-wrap: break-word; - white-space: pre-wrap; - word-break: normal; -} - -.CodeMirror-linebackground { - position: absolute; - left: 0; right: 0; top: 0; bottom: 0; - z-index: 0; -} - -.CodeMirror-linewidget { - position: relative; - z-index: 2; - overflow: auto; -} - -.CodeMirror-widget {} - -.CodeMirror-code { - outline: none; -} - -/* Force content-box sizing for the elements where we expect it */ -.CodeMirror-scroll, -.CodeMirror-sizer, -.CodeMirror-gutter, -.CodeMirror-gutters, -.CodeMirror-linenumber { - -moz-box-sizing: content-box; - box-sizing: content-box; -} - -.CodeMirror-measure { - position: absolute; - width: 100%; - height: 0; - overflow: hidden; - visibility: hidden; -} -.CodeMirror-measure pre { position: static; } - -.CodeMirror div.CodeMirror-cursor { - position: absolute; - border-right: none; - width: 0; -} - -div.CodeMirror-cursors { - visibility: hidden; - position: relative; - z-index: 3; -} -.CodeMirror-focused div.CodeMirror-cursors { - visibility: visible; -} - -.CodeMirror-selected { background: #d9d9d9; } -.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; } -.CodeMirror-crosshair { cursor: crosshair; } -.CodeMirror ::selection { background: #d7d4f0; } -.CodeMirror ::-moz-selection { background: #d7d4f0; } - -.cm-searching { - background: #ffa; - background: rgba(255, 255, 0, .4); -} - -/* IE7 hack to prevent it from returning funny offsetTops on the spans */ -.CodeMirror span { *vertical-align: text-bottom; } - -/* Used to force a border model for a node */ -.cm-force-border { padding-right: .1px; } - -@media print { - /* Hide the cursor when printing */ - .CodeMirror div.CodeMirror-cursors { - visibility: hidden; - } -} - -/* See issue #2901 */ -.cm-tab-wrap-hack:after { content: ''; } - -/* Help users use markselection to safely style text background */ -span.CodeMirror-selectedtext { background: none; } diff --git a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.js b/ui/src/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.js deleted file mode 100644 index 538493fe07..0000000000 --- a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.js +++ /dev/null @@ -1,288 +0,0 @@ -(function(q){if("object"==typeof exports&&"object"==typeof module)module.exports=q();else{if("function"==typeof define&&define.amd)return define([],q);this.CodeMirror=q()}})(function(){function q(a,b){if(!(this instanceof q))return new q(a,b);this.options=b=b?V(b):{};V(qf,b,!1);wc(b);var c=b.value;"string"==typeof c&&(c=new P(c,b.mode));this.doc=c;var d=new q.inputStyles[b.inputStyle](this),d=this.display=new rf(a,c,d);d.wrapper.CodeMirror=this;Ad(this);Bd(this);b.lineWrapping&&(this.display.wrapper.className+= -" CodeMirror-wrap");b.autofocus&&!ab&&d.input.focus();Cd(this);this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,draggingText:!1,highlight:new bb,keySeq:null,specialChars:null};var e=this;B&&11>C&&setTimeout(function(){e.display.input.reset(!0)},20);sf(this);Dd||(tf(),Dd=!0);Ja(this);this.curOp.forceUpdate=!0;Ed(this,c);b.autofocus&&!ab||e.hasFocus()?setTimeout(cb(xc,this),20):db(this);for(var f in Ka)if(Ka.hasOwnProperty(f))Ka[f](this, -b[f],Fd);Gd(this);b.finishInit&&b.finishInit(this);for(c=0;cC&&(this.gutters.style.zIndex=-1,this.scroller.style.paddingRight= -0);J||wa&&ab||(this.scroller.draggable=!0);a&&(a.appendChild?a.appendChild(this.wrapper):a(this.wrapper));this.reportedViewFrom=this.reportedViewTo=this.viewFrom=this.viewTo=b.first;this.view=[];this.externalMeasured=this.renderedView=null;this.lastWrapHeight=this.lastWrapWidth=this.viewOffset=0;this.updateLineNumbers=null;this.nativeBarWidth=this.barHeight=this.barWidth=0;this.scrollbarsClipped=!1;this.lineNumWidth=this.lineNumInnerWidth=this.lineNumChars=null;this.alignWidgets=!1;this.maxLine=this.cachedCharWidth= -this.cachedTextHeight=this.cachedPaddingH=null;this.maxLineLength=0;this.maxLineChanged=!1;this.wheelDX=this.wheelDY=this.wheelStartX=this.wheelStartY=null;this.shift=!1;this.activeTouch=this.selForContextMenu=null;c.init(this)}function zc(a){a.doc.mode=q.getMode(a.options,a.doc.modeOption);eb(a)}function eb(a){a.doc.iter(function(a){a.stateAfter&&(a.stateAfter=null);a.styles&&(a.styles=null)});a.doc.frontier=a.doc.first;fb(a,100);a.state.modeGen++;a.curOp&&Q(a)}function Id(a){var b=xa(a.display), -c=a.options.lineWrapping,d=c&&Math.max(5,a.display.scroller.clientWidth/gb(a.display)-3);return function(e){if(ya(a.doc,e))return 0;var f=0;if(e.widgets)for(var g=0;gb.maxLineLength&&(b.maxLineLength=d,b.maxLine=a)})}function wc(a){var b=D(a.gutters,"CodeMirror-linenumbers");-1==b&&a.lineNumbers?a.gutters=a.gutters.concat(["CodeMirror-linenumbers"]): --1C&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")}function Gc(){}function Cd(a){a.display.scrollbars&&(a.display.scrollbars.clear(), -a.display.scrollbars.addClass&&kb(a.display.wrapper,a.display.scrollbars.addClass));a.display.scrollbars=new q.scrollbarModel[a.options.scrollbarStyle](function(b){a.display.wrapper.insertBefore(b,a.display.scrollbarFiller);v(b,"mousedown",function(){a.state.focused&&setTimeout(function(){a.display.input.focus()},0)});b.setAttribute("cm-not-content","true")},function(b,c){"horizontal"==c?Ma(a,b):lb(a,b)},a);a.display.scrollbars.addClass&&mb(a.display.wrapper,a.display.scrollbars.addClass)}function Na(a, -b){b||(b=jb(a));var c=a.display.barWidth,d=a.display.barHeight;Jd(a,b);for(var e=0;4>e&&c!=a.display.barWidth||d!=a.display.barHeight;e++)c!=a.display.barWidth&&a.options.lineWrapping&&Lb(a),Jd(a,jb(a)),c=a.display.barWidth,d=a.display.barHeight}function Jd(a,b){var c=a.display,d=c.scrollbars.update(b);c.sizer.style.paddingRight=(c.barWidth=d.right)+"px";c.sizer.style.paddingBottom=(c.barHeight=d.bottom)+"px";d.right&&d.bottom?(c.scrollbarFiller.style.display="block",c.scrollbarFiller.style.height= -d.bottom+"px",c.scrollbarFiller.style.width=d.right+"px"):c.scrollbarFiller.style.display="";d.bottom&&a.options.coverGutterNextToScrollbar&&a.options.fixedGutter?(c.gutterFiller.style.display="block",c.gutterFiller.style.height=d.bottom+"px",c.gutterFiller.style.width=b.gutterWidth+"px"):c.gutterFiller.style.display=""}function Hc(a,b,c){var d=c&&null!=c.top?Math.max(0,c.top):a.scroller.scrollTop,d=Math.floor(d-a.lineSpace.offsetTop),e=c&&null!=c.bottom?c.bottom:d+a.wrapper.clientHeight,d=Ba(b,d), -e=Ba(b,e);if(c&&c.ensure){var f=c.ensure.from.line;c=c.ensure.to.line;f=e&&(d=Ba(b,ea(u(b,c))-a.wrapper.clientHeight),e=c)}return{from:d,to:Math.max(e,d+1)}}function Bc(a){var b=a.display,c=b.view;if(b.alignWidgets||b.gutters.firstChild&&a.options.fixedGutter){for(var d=Ic(b)-b.scroller.scrollLeft+a.doc.scrollLeft,e=b.gutters.offsetWidth,f=d+"px",g=0;g=c.viewFrom&&b.visible.to<=c.viewTo&&(null==c.updateLineNumbers||c.updateLineNumbers>=c.viewTo)&&c.renderedView==c.view&&0==Kd(a))return!1;Gd(a)&&(qa(a),b.dims=Kc(a));var e=d.first+d.size,f=Math.max(b.visible.from-a.options.viewportMargin,d.first),g=Math.min(e,b.visible.to+a.options.viewportMargin);c.viewFromf-c.viewFrom&& -(f=Math.max(d.first,c.viewFrom));c.viewTo>g&&20>c.viewTo-g&&(g=Math.min(e,c.viewTo));ra&&(f=Mc(a.doc,f),g=Ld(a.doc,g));d=f!=c.viewFrom||g!=c.viewTo||c.lastWrapHeight!=b.wrapperHeight||c.lastWrapWidth!=b.wrapperWidth;e=a.display;0==e.view.length||f>=e.viewTo||g<=e.viewFrom?(e.view=Nb(a,f,g),e.viewFrom=f):(e.viewFrom>f?e.view=Nb(a,f,e.viewFrom).concat(e.view):e.viewFromg&&(e.view=e.view.slice(0, -Ca(a,g))));e.viewTo=g;c.viewOffset=ea(u(a.doc,c.viewFrom));a.display.mover.style.top=c.viewOffset+"px";g=Kd(a);if(!d&&0==g&&!b.force&&c.renderedView==c.view&&(null==c.updateLineNumbers||c.updateLineNumbers>=c.viewTo))return!1;f=fa();4=a.display.viewFrom&&b.visible.to<=a.display.viewTo)break;if(!Lc(a,b))break;Lb(a);d=jb(a);nb(a);Oc(a,d);Na(a,d)}b.signal(a,"update",a);if(a.display.viewFrom!=a.display.reportedViewFrom||a.display.viewTo!=a.display.reportedViewTo)b.signal(a, -"viewportChange",a,a.display.viewFrom,a.display.viewTo),a.display.reportedViewFrom=a.display.viewFrom,a.display.reportedViewTo=a.display.viewTo}function Pc(a,b){var c=new Mb(a,b);if(Lc(a,c)){Lb(a);Md(a,c);var d=jb(a);nb(a);Oc(a,d);Na(a,d);c.finish()}}function Oc(a,b){a.display.sizer.style.minHeight=b.docHeight+"px";var c=b.docHeight+a.display.barHeight;a.display.heightForcer.style.top=c+"px";a.display.gutters.style.height=Math.max(c+da(a),b.clientHeight)+"px"}function Lb(a){a=a.display;for(var b= -a.lineDiv.offsetTop,c=0;cC){var f=d.node.offsetTop+d.node.offsetHeight;e=f-b;b=f}else e=d.node.getBoundingClientRect(),e=e.bottom-e.top;f=d.line.height-e;2>e&&(e=xa(a));if(.001f)if(ca(d.line,e),Nd(d.line),d.rest)for(e=0;eC&&(a.node.style.zIndex=2));return a.node}function Pd(a,b){var c=a.display.externalMeasured;return c&&c.line==b.line?(a.display.externalMeasured=null,b.measure=c.measure,c.built):Sd(a,b)}function Qc(a){var b=a.bgClass?a.bgClass+" "+(a.line.bgClass||""):a.line.bgClass;b&&(b+=" CodeMirror-linebackground");if(a.background)b?a.background.className=b:(a.background.parentNode.removeChild(a.background), -a.background=null);else if(b){var c=Ob(a);a.background=c.insertBefore(t("div",null,b),c.firstChild)}a.line.wrapClass?Ob(a).className=a.line.wrapClass:a.node!=a.text&&(a.node.className="");a.text.className=(a.textClass?a.textClass+" "+(a.line.textClass||""):a.line.textClass)||""}function Qd(a,b,c,d){b.gutter&&(b.node.removeChild(b.gutter),b.gutter=null);var e=b.line.gutterMarkers;if(a.options.lineNumbers||e){var f=Ob(b),g=b.gutter=t("div",null,"CodeMirror-gutter-wrapper","left: "+(a.options.fixedGutter? -d.fixedPos:-d.gutterTotalWidth)+"px; width: "+d.gutterTotalWidth+"px");a.display.input.setUneditable(g);f.insertBefore(g,b.text);b.line.gutterClass&&(g.className+=" "+b.line.gutterClass);!a.options.lineNumbers||e&&e["CodeMirror-linenumbers"]||(b.lineNumber=g.appendChild(t("div",Jc(a.options,c),"CodeMirror-linenumber CodeMirror-gutter-elt","left: "+d.gutterLeft["CodeMirror-linenumbers"]+"px; width: "+a.display.lineNumInnerWidth+"px")));if(e)for(b=0;by(a,b)?b:a}function Qb(a,b){return 0>y(a,b)?a:b}function Ud(a){a.state.focused||(a.display.input.focus(),xc(a))}function Rb(a){return a.options.readOnly||a.doc.cantEdit}function Sc(a,b,c,d,e){var f=a.doc;a.display.shift=!1;d||(d=f.sel);var g=sa(b),h=null;a.state.pasteIncoming&&1l.head.ch&&(!k||d.ranges[k-1].head.line!=l.head.line)){l=a.getModeAt(l.head);m=ta(m);p=!1;if(l.electricChars)for(var E=0;Ee?k.map:l[e],g=0;ge?a.line:a.rest[e]);e=f[g]+d;if(0>d||h!=b)e=f[g+(d?1:0)];return r(c,e)}}}var e=a.text.firstChild,f=!1;if(!b||!Wc(e,b))return Ra(r(F(a.line),0),!0);if(b==e&&(f=!0,b=e.childNodes[c],c=0,!b))return c=a.rest?A(a.rest):a.line,Ra(r(F(c),c.text.length),f);var g=3==b.nodeType?b:null,h=b;g||1!=b.childNodes.length||3!=b.firstChild.nodeType||(g=b.firstChild,c&&(c=g.nodeValue.length));for(;h.parentNode!=e;)h=h.parentNode; -var k=a.measure,l=k.maps;if(b=d(g,h,c))return Ra(b,f);e=h.nextSibling;for(g=g?g.nodeValue.length-c:0;e;e=e.nextSibling){if(b=d(e,e.firstChild,0))return Ra(r(b.line,b.ch-g),f);g+=e.textContent.length}h=h.previousSibling;for(g=c;h;h=h.previousSibling){if(b=d(h,h.firstChild,-1))return Ra(r(b.line,b.ch+g),f);g+=e.textContent.length}}function xf(a,b,c,d,e){function f(a){return function(b){return b.id==a}}function g(b){if(1==b.nodeType){var c=b.getAttribute("cm-text");if(null!=c)""==c&&(c=b.textContent.replace(/\u200b/g, -"")),h+=c;else{var c=b.getAttribute("cm-marker"),p;if(c)b=a.findMarks(r(d,0),r(e+1,0),f(+c)),b.length&&(p=b[0].find())&&(h+=Da(a.doc,p.from,p.to).join("\n"));else if("false"!=b.getAttribute("contenteditable")){for(p=0;pc)return r(c,u(a,c).text.length);var c= -u(a,b.line).text.length,d=b.ch,c=null==d||d>c?r(b.line,c):0>d?r(b.line,0):b;return c}function qb(a,b){return b>=a.first&&by(c,a),b!=0>y(d,a)?(a=c,c=d):b!=0>y(c,d)&&(c=d)),new z(a,c)):new z(d||c,c)}function Ub(a,b,c,d){H(a,new la([rb(a,a.sel.primary(),b,c)],0),d)}function ae(a,b,c){for(var d=[],e=0;ey(b.primary().head,a.sel.primary().head)?-1:1);de(a,ee(a,b,d,!0));c&&!1===c.scroll||!a.cm||Pa(a.cm)}function de(a,b){b.equals(a.sel)||(a.sel=b,a.cm&&(a.cm.curOp.updateInput=a.cm.curOp.selectionChanged=!0,fe(a.cm)),L(a,"cursorActivity",a))}function ge(a){de(a,ee(a,a.sel,null,!1),ha)}function ee(a,b,c,d){for(var e,f=0;f=f.ch:l.to>f.ch))){if(d&&(K(m,"beforeCursorEnter"),m.explicitlyCleared))if(h.markedSpans){--k;continue}else break;if(m.atomic){k= -m.find(0>g?-1:1);if(0==y(k,f)&&(k.ch+=g,0>k.ch?k=k.line>a.first?w(a,r(k.line-1)):null:k.ch>h.text.length&&(k=k.lineb&&(b=0);b=Math.round(b);d=Math.round(d);h.appendChild(t("div",null,"CodeMirror-selected","position: absolute; left: "+a+"px; top: "+b+"px; width: "+(null==c?m-a:c)+"px; height: "+(d-b)+"px"))}function e(b,c,e){var f=u(g,b),h=f.text.length,k,p;Af(Y(f),c||0,null==e?h:e,function(g,q,t){var u=Yb(a,r(b,g),"div",f,"left"),v,w;g==q?(v=u,t=w=u.left):(v=Yb(a,r(b,q-1),"div",f,"right"), -"rtl"==t&&(t=u,u=v,v=t),t=u.left,w=v.right);null==c&&0==g&&(t=l);3p.bottom||v.bottom==p.bottom&&v.right>p.right)p=v;ta.options.cursorBlinkRate&&(b.cursorDiv.style.visibility="hidden")}}function fb(a,b){a.doc.mode.startState&&a.doc.frontier=a.display.viewTo)){var c=+new Date+a.options.workTime,d=Sa(b.mode,sb(a,b.frontier)),e=[];b.iter(b.frontier,Math.min(b.first+b.size,a.display.viewTo+ -500),function(f){if(b.frontier>=a.display.viewFrom){var g=f.styles,h=je(a,f,d,!0);f.styles=h.styles;var k=f.styleClasses;(h=h.classes)?f.styleClasses=h:k&&(f.styleClasses=null);k=!g||g.length!=f.styles.length||k!=h&&(!k||!h||k.bgClass!=h.bgClass||k.textClass!=h.textClass);for(h=0;!k&&hc)return fb(a,a.options.workDelay),!0}); -e.length&&T(a,function(){for(var b=0;bg;--b){if(b<=f.first)return f.first;var h=u(f,b-1);if(h.stateAfter&&(!c||b<=f.frontier))return b;h=aa(h.text,null,a.options.tabSize);if(null==e||d>h)e=b-1,d=h}return e}function sb(a,b,c){var d=a.doc,e=a.display;if(!d.mode.startState)return!0;var f=Cf(a,b,c),g=f>d.first&&u(d,f-1).stateAfter,g=g?Sa(d.mode,g):Df(d.mode);d.iter(f,b,function(c){Zc(a, -c.text,g);c.stateAfter=f==b-1||0==f%5||f>=e.viewFrom&&fc)return{map:a.measure.maps[d],cache:a.measure.caches[d],before:!0}}function Vc(a,b){if(b>=a.display.viewFrom&&b=c.lineN&&bm;m++){for(;h&&tb(b.line.text.charAt(k.coverStart+h));)--h;for(;k.coverStart+lC&&0==h&&l==k.coverEnd-k.coverStart)n=d.parentNode.getBoundingClientRect();else if(B&&a.options.lineWrapping){var E=Ea(d,h,l).getClientRects();n=E.length?E["right"==g?E.length-1:0]:ad}else n=Ea(d,h,l).getBoundingClientRect()||ad;if(n.left||n.right||0==h)break;l=h;--h;c="right"}B&&11>C&&((E=!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI)|| -(null!=bd?E=bd:(m=U(a.display.measure,t("span","x")),E=m.getBoundingClientRect(),m=Ea(m,0,1).getBoundingClientRect(),E=bd=1C)||h||n&&(n.left||n.right)||(n=(n=d.parentNode.getClientRects()[0])? -{left:n.left,right:n.left+gb(a.display),top:n.top,bottom:n.bottom}:ad);E=n.top-b.rect.top;d=n.bottom-b.rect.top;h=(E+d)/2;g=b.view.measure.heights;for(m=0;mb)f=l-k,e=f-1,b>=l&&(g="right");if(null!=e){d=a[h+2];k==l&&c==(d.insertLeft?"left":"right")&&(g=c);if("left"==c&&0==e)for(;h&&a[h-2]==a[h-3]&&a[h-1].insertLeft;)d=a[(h-=3)+2],g="left";if("right"==c&&e==l-k)for(;hc.from?g(a-1):g(a,d)}d=d||u(a.doc,b.line);e||(e=Zb(a,d));var k=Y(d);b=b.ch;if(!k)return g(b);var l=Sb(k,b),l=h(b,l);null!=vb&&(l.other=h(b,vb));return l}function oe(a, -b){var c=0;b=w(a.doc,b);a.options.lineWrapping||(c=gb(a.display)*b.ch);var d=u(a.doc,b.line),e=ea(d)+a.display.lineSpace.offsetTop;return{left:c,right:c,top:e,bottom:e+d.height}}function $b(a,b,c,d){a=r(a,b);a.xRel=d;c&&(a.outside=!0);return a}function fd(a,b,c){var d=a.doc;c+=a.display.viewOffset;if(0>c)return $b(d.first,0,!0,-1);var e=Ba(d,c),f=d.first+d.size-1;if(e>f)return $b(d.first+d.size-1,u(d,f).text.length,!0,1);0>b&&(b=0);for(d=u(d,e);;)if(e=Ef(a,d,e,b,c),f=(d=Aa(d,!1))&&d.find(0,!0),d&& -(e.ch>f.from.ch||e.ch==f.from.ch&&0d.bottom)return d.left-k;if(gt)return $b(c,n,u,1);for(;;){if(m?n==e||n==gd(b,e,1):1>=n-e){m=d -d?-1:1d){n=w;t=x;if(u=h)t+=1E3;p=v}else e=w,E=x,q=h,p-=v}}function xa(a){if(null!=a.cachedTextHeight)return a.cachedTextHeight;if(null==Fa){Fa=t("pre");for(var b=0;49>b;++b)Fa.appendChild(document.createTextNode("x")),Fa.appendChild(t("br"));Fa.appendChild(document.createTextNode("x"))}U(a.measure,Fa);b=Fa.offsetHeight/50;3=d.viewTo)||d.maxLineChanged&&c.options.lineWrapping;e.update=e.mustUpdate&&new Mb(c,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}for(b= -0;bl;l++){var m=!1,p=ma(c,h),n=g&&g!=h?ma(c,g):p,n=cc(c,Math.min(p.left, -n.left),Math.min(p.top,n.top)-k,Math.max(p.left,n.left),Math.max(p.bottom,n.bottom)+k),q=c.doc.scrollTop,r=c.doc.scrollLeft;null!=n.scrollTop&&(lb(c,n.scrollTop),1g.top+l.top?h=!0:g.bottom+l.top>(window.innerHeight||document.documentElement.clientHeight)&& -(h=!1),null==h||Gf||(g=t("div","​",null,"position: absolute; top: "+(g.top-k.viewOffset-c.display.lineSpace.offsetTop)+"px; height: "+(g.bottom-g.top+da(c)+k.barHeight)+"px; left: "+g.left+"px; width: 2px;"),c.display.lineSpace.appendChild(g),g.scrollIntoView(h),c.display.lineSpace.removeChild(g))))}h=e.maybeHiddenMarkers;g=e.maybeUnhiddenMarkers;if(h)for(k=0;kb)&&(e.updateLineNumbers=b);a.curOp.viewChanged=!0;if(b>=e.viewTo)ra&&Mc(a.doc,b)e.viewFrom?qa(a):(e.viewFrom+=d,e.viewTo+=d);else if(b<=e.viewFrom&&c>=e.viewTo)qa(a);else if(b<=e.viewFrom){var f=dc(a,c,c+d,1);f?(e.view=e.view.slice(f.index),e.viewFrom=f.lineN,e.viewTo+=d):qa(a)}else if(c>=e.viewTo)(f=dc(a,b,b,-1))?(e.view=e.view.slice(0,f.index),e.viewTo=f.lineN):qa(a);else{var f=dc(a,b,b,-1),g=dc(a,c,c+d,1);f&&g?(e.view= -e.view.slice(0,f.index).concat(Nb(a,f.lineN,g.lineN)).concat(e.view.slice(g.index)),e.viewTo+=d):qa(a)}if(a=e.externalMeasured)c=e.lineN&&b=d.viewTo||(a=d.view[Ca(a,b)],null!=a.node&&(a=a.changes||(a.changes=[]),-1==D(a,c)&&a.push(c)))}function qa(a){a.display.viewFrom=a.display.viewTo= -a.doc.first;a.display.view=[];a.display.viewOffset=0}function Ca(a,b){if(b>=a.display.viewTo)return null;b-=a.display.viewFrom;if(0>b)return null;for(var c=a.display.view,d=0;db)return d}function dc(a,b,c,d){var e=Ca(a,b),f=a.display.view;if(!ra||c==a.doc.first+a.doc.size)return{index:e,lineN:c};for(var g=0,h=a.display.viewFrom;gd?0:f.length- -1))return null;c+=d*f[e-(0>d?1:0)].size;e+=d}return{index:e,lineN:c}}function Kd(a){a=a.display.view;for(var b=0,c=0;cC?v(d.scroller,"dblclick",G(a,function(b){if(!ja(a, -b)){var c=Ua(a,b);!c||hd(a,b,"gutterClick",!0,L)||oa(a.display,b)||(O(b),b=a.findWordAt(c),Ub(a.doc,b.anchor,b.head))}})):v(d.scroller,"dblclick",function(b){ja(a,b)||O(b)});id||v(d.scroller,"contextmenu",function(b){qe(a,b)});var e,f={end:0};v(d.scroller,"touchstart",function(a){var b;1!=a.touches.length?b=!1:(b=a.touches[0],b=1>=b.radiusX&&1>=b.radiusY);b||(clearTimeout(e),b=+new Date,d.activeTouch={start:b,moved:!1,prev:300>=b-f.end?f:null},1==a.touches.length&&(d.activeTouch.left=a.touches[0].pageX, -d.activeTouch.top=a.touches[0].pageY))});v(d.scroller,"touchmove",function(){d.activeTouch&&(d.activeTouch.moved=!0)});v(d.scroller,"touchend",function(e){var f=d.activeTouch;if(f&&!oa(d,e)&&null!=f.left&&!f.moved&&300>new Date-f.start){var g=a.coordsChar(d.activeTouch,"page"),f=!f.prev||c(f,f.prev)?new z(g,g):!f.prev.prev||c(f,f.prev.prev)?a.findWordAt(g):new z(r(g.line,0),w(a.doc,r(g.line+1,0)));a.setSelection(f.anchor,f.head);a.focus();O(e)}b()});v(d.scroller,"touchcancel",b);v(d.scroller,"scroll", -function(){d.scroller.clientHeight&&(lb(a,d.scroller.scrollTop),Ma(a,d.scroller.scrollLeft,!0),K(a,"scroll",a))});v(d.scroller,"mousewheel",function(b){re(a,b)});v(d.scroller,"DOMMouseScroll",function(b){re(a,b)});v(d.wrapper,"scroll",function(){d.wrapper.scrollTop=d.wrapper.scrollLeft=0});d.dragFunctions={simple:function(b){ja(a,b)||jd(b)},start:function(b){if(B&&(!a.state.draggingText||100>+new Date-se))jd(b);else if(!ja(a,b)&&!oa(a.display,b)&&(b.dataTransfer.setData("Text",a.getSelection()),b.dataTransfer.setDragImage&& -!te)){var c=t("img",null,null,"position: fixed; left: 0; top: 0;");c.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw\x3d\x3d";ba&&(c.width=c.height=1,a.display.wrapper.appendChild(c),c._top=c.offsetTop);b.dataTransfer.setDragImage(c,0,0);ba&&c.parentNode.removeChild(c)}},drop:G(a,Hf)};var g=d.input.getField();v(g,"keyup",function(b){ue.call(a,b)});v(g,"keydown",G(a,ve));v(g,"keypress",G(a,we));v(g,"focus",cb(xc,a));v(g,"blur",cb(db,a))}function If(a){var b=a.display; -if(b.lastWrapHeight!=b.wrapper.clientHeight||b.lastWrapWidth!=b.wrapper.clientWidth)b.cachedCharWidth=b.cachedTextHeight=b.cachedPaddingH=null,b.scrollbarsClipped=!1,a.setSize()}function oa(a,b){for(var c=b.target||b.srcElement;c!=a.wrapper;c=c.parentNode)if(!c||1==c.nodeType&&"true"==c.getAttribute("cm-ignore-events")||c.parentNode==a.sizer&&c!=a.mover)return!0}function Ua(a,b,c,d){var e=a.display;if(!c&&"true"==(b.target||b.srcElement).getAttribute("cm-not-content"))return null;var f,g;c=e.lineSpace.getBoundingClientRect(); -try{f=b.clientX-c.left,g=b.clientY-c.top}catch(h){return null}b=fd(a,f,g);var k;d&&1==b.xRel&&(k=u(a.doc,b.line).text).length==b.ch&&(d=aa(k,k.length,a.options.tabSize)-k.length,b=r(b.line,Math.max(0,Math.round((f-ie(a.display).left)/gb(a.display))-d)));return b}function pe(a){var b=this.display;if(!(b.activeTouch&&b.input.supportsTouch()||ja(this,a)))if(b.shift=a.shiftKey,oa(b,a))J||(b.scroller.draggable=!1,setTimeout(function(){b.scroller.draggable=!0},100));else if(!hd(this,a,"gutterClick",!0, -L)){var c=Ua(this,a);window.focus();switch(xe(a)){case 1:c?Jf(this,a,c):(a.target||a.srcElement)==b.scroller&&O(a);break;case 2:J&&(this.state.lastMiddleDown=+new Date);c&&Ub(this.doc,c);setTimeout(function(){b.input.focus()},20);O(a);break;case 3:id?qe(this,a):Kf(this)}}}function Jf(a,b,c){B?setTimeout(cb(Ud,a),0):a.curOp.focus=fa();var d=+new Date,e;ec&&ec.time>d-400&&0==y(ec.pos,c)?e="triple":fc&&fc.time>d-400&&0==y(fc.pos,c)?(e="double",ec={time:d,pos:c}):(e="single",fc={time:d,pos:c});var d= -a.doc.sel,f=W?b.metaKey:b.ctrlKey,g;a.options.dragDrop&&Lf&&!Rb(a)&&"single"==e&&-1<(g=d.contains(c))&&!d.ranges[g].empty()?Mf(a,b,c,f):Nf(a,b,c,e,f)}function Mf(a,b,c,d){var e=a.display,f=+new Date,g=G(a,function(h){J&&(e.scroller.draggable=!1);a.state.draggingText=!1;ka(document,"mouseup",g);ka(e.scroller,"drop",g);10>Math.abs(b.clientX-h.clientX)+Math.abs(b.clientY-h.clientY)&&(O(h),!d&&+new Date-200t&&e.push(new z(r(h, -t),r(h,ye(E,g,f))))}e.length||e.push(new z(c,c));H(l,Z(n.ranges.slice(0,p).concat(e),p),{origin:"*mouse",scroll:!1});a.scrollIntoView(b)}else e=m,f=e.anchor,k=b,"single"!=d&&(b="double"==d?a.findWordAt(b):new z(r(b.line,0),w(l,r(b.line+1,0))),0=h.to|| -e.lineB.bottom?20:0;m&&setTimeout(G(a,function(){A==c&&(k.scroller.scrollTop+=m,g(b))}),50)}}function h(a){A=Infinity;O(a);k.input.focus();ka(document,"mousemove",F);ka(document,"mouseup",C);l.history.lastSelOrigin=null}var k=a.display,l=a.doc;O(b);var m,p,n=l.sel,q=n.ranges;e&&!b.shiftKey?(p=l.sel.contains(c),m=-1=Math.floor(a.display.gutters.getBoundingClientRect().right))return!1;d&&O(b);d=a.display;var k=d.lineDiv.getBoundingClientRect();if(g>k.bottom||!S(a,c))return ld(b);g-=k.top-d.viewOffset;for(k=0;k=f)return f=Ba(a.doc,g),e(a, -c,a,f,a.options.gutters[k],b),ld(b)}}function Hf(a){var b=this;if(!ja(b,a)&&!oa(b.display,a)){O(a);B&&(se=+new Date);var c=Ua(b,a,!0),d=a.dataTransfer.files;if(c&&!Rb(b))if(d&&d.length&&window.FileReader&&window.File){var e=d.length,f=Array(e),g=0;a=function(a,d){var h=new FileReader;h.onload=G(b,function(){f[d]=h.result;if(++g==e){c=w(b.doc,c);var a={from:c,to:c,text:sa(f.join("\n")),origin:"paste"};Oa(b.doc,a);be(b.doc,ga(c,ta(a)))}});h.readAsText(a)};for(var h=0;hMath.abs(a.doc.scrollTop-b)||(a.doc.scrollTop=b,wa||Pc(a,{top:b}),a.display.scroller.scrollTop!=b&& -(a.display.scroller.scrollTop=b),a.display.scrollbars.setScrollTop(b),wa&&Pc(a),fb(a,100))}function Ma(a,b,c){(c?b==a.doc.scrollLeft:2>Math.abs(a.doc.scrollLeft-b))||(b=Math.min(b,a.display.scroller.scrollWidth-a.display.scroller.clientWidth),a.doc.scrollLeft=b,Bc(a),a.display.scroller.scrollLeft!=b&&(a.display.scroller.scrollLeft=b),a.display.scrollbars.setScrollLeft(b))}function re(a,b){var c=ze(b),d=c.x,c=c.y,e=a.display,f=e.scroller;if(d&&f.scrollWidth>f.clientWidth||c&&f.scrollHeight>f.clientHeight){if(c&& -W&&J){var g=b.target,h=e.view;a:for(;g!=f;g=g.parentNode)for(var k=0;kg?h=Math.max(0,h+g-50):k=Math.min(a.doc.height,k+g+50),Pc(a,{top:h,bottom:k})),20>gc&&(null==e.wheelStartX?(e.wheelStartX=f.scrollLeft,e.wheelStartY=f.scrollTop,e.wheelDX=d,e.wheelDY=c,setTimeout(function(){if(null!=e.wheelStartX){var a=f.scrollLeft-e.wheelStartX,b=f.scrollTop- -e.wheelStartY,a=b&&e.wheelDY&&b/e.wheelDY||a&&e.wheelDX&&a/e.wheelDX;e.wheelStartX=e.wheelStartY=null;a&&(R=(R*gc+a)/(gc+1),++gc)}},200)):(e.wheelDX+=d,e.wheelDY+=c))):(c&&lb(a,Math.max(0,Math.min(f.scrollTop+c*R,f.scrollHeight-f.clientHeight))),Ma(a,Math.max(0,Math.min(f.scrollLeft+d*R,f.scrollWidth-f.clientWidth))),O(b),e.wheelStartX=null)}}function hc(a,b,c){if("string"==typeof b&&(b=ic[b],!b))return!1;a.display.input.ensurePolled();var d=a.display.shift,e=!1;try{Rb(a)&&(a.state.suppressEdits= -!0),c&&(a.display.shift=!1),e=b(a)!=Ae}finally{a.display.shift=d,a.state.suppressEdits=!1}return e}function Of(a,b,c){for(var d=0;dC&&27==a.keyCode&&(a.returnValue=!1);var b=a.keyCode;this.display.shift=16==b||a.shiftKey;var c=Be(this,a);ba&&(md=c?b:null,!c&&88==b&&!Ce&&(W?a.metaKey:a.ctrlKey)&&this.replaceSelection("",null,"cut"));18!=b||/\bCodeMirror-crosshair\b/.test(this.display.lineDiv.className)||Tf(this)}}function Tf(a){function b(a){18!=a.keyCode&&a.altKey||(kb(c,"CodeMirror-crosshair"),ka(document,"keyup",b),ka(document,"mouseover",b))}var c=a.display.lineDiv;mb(c,"CodeMirror-crosshair");v(document,"keyup",b);v(document, -"mouseover",b)}function ue(a){16==a.keyCode&&(this.doc.sel.shift=!1);ja(this,a)}function we(a){if(!(oa(this.display,a)||ja(this,a)||a.ctrlKey&&!a.altKey||W&&a.metaKey)){var b=a.keyCode,c=a.charCode;if(ba&&b==md)md=null,O(a);else if(!ba||a.which&&!(10>a.which)||!Be(this,a))if(b=String.fromCharCode(null==c?b:c),!Sf(this,a,b))this.display.input.onKeyPress(a)}}function Kf(a){a.state.delayingBlurEvent=!0;setTimeout(function(){a.state.delayingBlurEvent&&(a.state.delayingBlurEvent=!1,db(a))},100)}function xc(a){a.state.delayingBlurEvent&& -(a.state.delayingBlurEvent=!1);"nocursor"!=a.options.readOnly&&(a.state.focused||(K(a,"focus",a),a.state.focused=!0,mb(a.display.wrapper,"CodeMirror-focused"),a.curOp||a.display.selForContextMenu==a.doc.sel||(a.display.input.reset(),J&&setTimeout(function(){a.display.input.reset(!0)},20)),a.display.input.receivedFocus()),Yc(a))}function db(a){a.state.delayingBlurEvent||(a.state.focused&&(K(a,"blur",a),a.state.focused=!1,kb(a.display.wrapper,"CodeMirror-focused")),clearInterval(a.display.blinker), -setTimeout(function(){a.state.focused||(a.display.shift=!1)},150))}function qe(a,b){var c;(c=oa(a.display,b))||(c=S(a,"gutterContextMenu")?hd(a,b,"gutterContextMenu",!1,K):!1);if(!c)a.display.input.onContextMenu(b)}function De(a,b){if(0>y(a,b.from))return a;if(0>=y(a,b.to))return ta(b);var c=a.line+b.text.length-(b.to.line-b.from.line)-1,d=a.ch;a.line==b.to.line&&(d+=ta(b).ch-b.to.ch);return r(c,d)}function nd(a,b){for(var c=[],d=0;da.lastLine())){if(b.from.linee&&(b= -{from:b.from,to:r(e,u(a,e).text.length),text:[b.text[0]],origin:b.origin});b.removed=Da(a,b.from,b.to);c||(c=nd(a,b));a.cm?Vf(a.cm,b,d):qd(a,b,d);Vb(a,c,ha)}}function Vf(a,b,c){var d=a.doc,e=a.display,f=b.from,g=b.to,h=!1,k=f.line;a.options.lineWrapping||(k=F(ia(u(d,f.line))),d.iter(k,g.line+1,function(a){if(a==e.maxLine)return h=!0}));-1e.maxLineLength&&(e.maxLine= -a,e.maxLineLength=b,e.maxLineChanged=!0,h=!1)}),h&&(a.curOp.updateMaxLine=!0));d.frontier=Math.min(d.frontier,f.line);fb(a,400);c=b.text.length-(g.line-f.line)-1;b.full?Q(a):f.line!=g.line||1!=b.text.length||Me(a.doc,b)?Q(a,f.line,g.line+1,c):na(a,f.line,"text");c=S(a,"changes");if((d=S(a,"change"))||c)b={from:f,to:g,text:b.text,removed:b.removed,origin:b.origin},d&&L(a,"change",a,b),c&&(a.curOp.changeObjs||(a.curOp.changeObjs=[])).push(b);a.display.selForContextMenu=null}function wb(a,b,c,d,e){d|| -(d=c);if(0>y(d,c)){var f=d;d=c;c=f}"string"==typeof b&&(b=sa(b));Oa(a,{from:c,to:d,text:b,origin:e})}function cc(a,b,c,d,e){var f=a.display,g=xa(a.display);0>c&&(c=0);var h=a.curOp&&null!=a.curOp.scrollTop?a.curOp.scrollTop:f.scroller.scrollTop,k=Nc(a),l={};e-c>k&&(e=c+k);var m=a.doc.height+Ec(f),p=cm-g;ch+k&&(c=Math.min(c,(g?m:e)-k),c!=h&&(l.scrollTop=c));h=a.curOp&&null!=a.curOp.scrollLeft?a.curOp.scrollLeft:f.scroller.scrollLeft;a=pa(a)-(a.options.fixedGutter?f.gutters.offsetWidth: -0);(f=d-b>a)&&(d=b+a);10>b?l.scrollLeft=0:ba+h-3&&(l.scrollLeft=d+(f?0:10)-a);return l}function lc(a,b,c){null==b&&null==c||mc(a);null!=b&&(a.curOp.scrollLeft=(null==a.curOp.scrollLeft?a.doc.scrollLeft:a.curOp.scrollLeft)+b);null!=c&&(a.curOp.scrollTop=(null==a.curOp.scrollTop?a.doc.scrollTop:a.curOp.scrollTop)+c)}function Pa(a){mc(a);var b=a.getCursor(),c=b,d=b;a.options.lineWrapping||(c=b.ch?r(b.line,b.ch-1):b,d=r(b.line,b.ch+1));a.curOp.scrollToPos={from:c, -to:d,margin:a.options.cursorScrollMargin,isCursor:!0}}function mc(a){var b=a.curOp.scrollToPos;if(b){a.curOp.scrollToPos=null;var c=oe(a,b.from),d=oe(a,b.to),b=cc(a,Math.min(c.left,d.left),Math.min(c.top,d.top)-b.margin,Math.max(c.right,d.right),Math.max(c.bottom,d.bottom)+b.margin);a.scrollTo(b.scrollLeft,b.scrollTop)}}function pb(a,b,c,d){var e=a.doc,f;null==c&&(c="add");"smart"==c&&(e.mode.indent?f=sb(a,b):c="prev");var g=a.options.tabSize,h=u(e,b),k=aa(h.text,null,g);h.stateAfter&&(h.stateAfter= -null);var l=h.text.match(/^\s*/)[0],m;if(!d&&!/\S/.test(h.text))m=0,c="not";else if("smart"==c&&(m=e.mode.indent(f,h.text.slice(l.length),h.text),m==Ae||150e.first?aa(u(e,b-1).text,null,g):0:"add"==c?m=k+a.options.indentUnit:"subtract"==c?m=k-a.options.indentUnit:"number"==typeof c&&(m=k+c);m=Math.max(0,m);c="";d=0;if(a.options.indentWithTabs)for(a=Math.floor(m/g);a;--a)d+=g,c+="\t";d=y(f.from,A(d).to);){var g=d.pop();if(0>y(g.from,f.from)){f.from=g.from;break}}d.push(f)}T(a, -function(){for(var b=d.length-1;0<=b;b--)wb(a.doc,"",d[b].from,d[b].to,"+delete");Pa(a)})}function rd(a,b,c,d,e){function f(b){var d=(e?gd:Oe)(l,h,c,!0);if(null==d){if(b=!b)b=g+c,b=a.first+a.size?b=m=!1:(g=b,b=l=u(a,b));if(b)h=e?(0>c?bc:ac)(l):0>c?l.text.length:0;else return m=!1}else h=d;return!0}var g=b.line,h=b.ch,k=c,l=u(a,g),m=!0;if("char"==d)f();else if("column"==d)f(!0);else if("word"==d||"group"==d){var p=null;d="group"==d;b=a.cm&&a.cm.getHelper(b,"wordChars");for(var n=!0;!(0> -c)||f(!n);n=!1){var q=l.text.charAt(h)||"\n",q=oc(q,b)?"w":d&&"\n"==q?"n":!d||/\s/.test(q)?null:"p";!d||n||q||(q="s");if(p&&p!=q){0>c&&(c=1,f());break}q&&(p=q);if(0c?1.5:.5)*xa(a.display))):"line"==d&&(g=0c?0>=g:g>=e.height){b.hitSide=!0;break}g+=5*c}return b}function x(a,b,c,d){q.defaults[a]=b;c&&(Ka[a]=d?function(a,b,d){d!=Fd&&c(a,b,d)}:c)}function Wf(a){var b=a.split(/-(?!$)/);a=b[b.length-1];for(var c,d,e,f,g=0;g=e:l.to>e);(k||(k=[])).push(new qc(m,l.from,p?null:l.to))}}c=k;if(d)for(var h=0,n;h=f:k.to>f)||k.from==f&&"bookmark"==l.type&&(!g||k.marker.insertLeft))m=null==k.from||(l.inclusiveLeft?k.from<=f:k.fromy(g.to,e.from)||0k||!c.inclusiveLeft&&!k)&&h.push({from:g.from,to:e.from});(0Ve(d,e.marker))&&(d=e.marker);return d}function Qe(a,b,c,d,e){a=u(a,b);if(a=ra&&a.markedSpans)for(b=0;b=k||0>=h&&0<=k)&&(0>=h&&(0y(g.from,d)||f.marker.inclusiveLeft&& -e.inclusiveRight)))return!0}}}function ia(a){for(var b;b=Aa(a,!0);)a=b.find(-1,!0).line;return a}function Mc(a,b){var c=u(a,b),d=ia(c);return c==d?b:F(d)}function Ld(a,b){if(b>a.lastLine())return b;var c=u(a,b),d;if(!ya(a,c))return b;for(;d=Aa(c,!1);)c=d.find(1,!0).line;return F(c)+1}function ya(a,b){var c=ra&&b.markedSpans;if(c)for(var d,e=0;ee;e++){d&&(d[0]=q.innerMode(a,c).mode);var f=a.token(b,c);if(b.pos>b.start)return f}throw Error("Mode "+a.name+" failed to advance stream.");}function Ye(a,b,c,d){function e(a){return{start:m.start,end:m.pos,string:m.current(),type:h||null,state:a?Sa(f.mode,l):l}}var f=a.doc,g=f.mode,h;b=w(f,b);var k=u(f,b.line),l=sb(a,b.line,c),m=new tc(k.text,a.options.tabSize),p;for(d&&(p=[]);(d||m.posa.options.maxHighlightLength?(h=!1,g&&Zc(a,b,d,m.pos),m.pos=b.length,p=null):p=We(ud(c,m,d,n),f);if(n){var q=n[0].name;q&&(p="m-"+(p?q+" "+p:q))}if(!h||l!=p){for(;ka&&e.splice(h,1,a,e[h+1],d);h+=2;k=Math.min(a,d)}if(b)if(g.opaque)e.splice(c,h-c,a,"cm-overlay "+b),h=c+2;else for(;cEa(g,1,2).getBoundingClientRect().right-h.right:!1}g&&(f=Y(e))&&(c.addToken=dg(c.addToken,f));c.map=[];h=b!= -a.display.externalMeasured&&F(e);a:{g=c;var h=$e(a,e,h),k=e.markedSpans,l=e.text,m=0;if(k)for(var p=l.length,n=0,q=1,r="",u=void 0,v=void 0,w=0,x=void 0,y=void 0,A=void 0,C=void 0,z=void 0;;){if(w==n){for(var x=y=A=C=v="",z=null,w=Infinity,G=[],H=0;Hn||D.collapsed&&I.to==n&&I.from==n)?(null!=I.to&&I.to!=n&&w>I.to&&(w=I.to,y=""),D.className&&(x+=" "+D.className),D.css&&(v=D.css), -D.startStyle&&I.from==n&&(A+=" "+D.startStyle),D.endStyle&&I.to==w&&(y+=" "+D.endStyle),D.title&&!C&&(C=D.title),D.collapsed&&(!z||0>Ve(z.marker,D))&&(z=I)):I.from>n&&w>I.from&&(w=I.from)}if(z&&(z.from||0)==n){bf(g,(null==z.to?p+1:z.to)-n,z.marker,null==z.from);if(null==z.to)break a;z.to==n&&(z=!1)}if(!z&&G.length)for(H=0;H=p)break;for(G=Math.min(p,w);;){if(r){H=n+r.length;z||(I=H>G?r.slice(0,G-n):r,g.addToken(g,I,u?u+x:x,A,n+I.length==w?y:"",C,v));if(H>=G){r=r.slice(G- -n);n=G;break}n=H;A=""}r=l.slice(m,m=h[q++]);u=af(h[q++],g.cm.options)}}else for(var q=1;qC?m.appendChild(t("span",[r])):m.appendChild(r);a.map.push(a.pos,a.pos+q,r);a.col+=q;a.pos+=q}if(!n)break;p+=q+1;"\t"==n[0]?(r=a.cm.options.tabSize,n=r-a.col%r,r=m.appendChild(t("span",Ne(n),"cm-tab")),r.setAttribute("role","presentation"),r.setAttribute("cm-text","\t"),a.col+=n):(r=a.cm.options.specialCharPlaceholder(n[0]),r.setAttribute("cm-text",n[0]),B&&9>C?m.appendChild(t("span",[r])):m.appendChild(r),a.col+=1);a.map.push(a.pos,a.pos+1,r);a.pos++}else{a.col+=b.length;var m=document.createTextNode(h); -a.map.push(a.pos,a.pos+b.length,m);B&&9>C&&(l=!0);a.pos+=b.length}if(c||d||e||l||g)return b=c||"",d&&(b+=d),e&&(b+=e),d=t("span",[m],b,g),f&&(d.title=f),a.content.appendChild(d);a.content.appendChild(m)}}function fg(a){for(var b=" ",c=0;cl&&n.from<=l)break}if(n.to>=m)return a(c,d,e,f,g, -h,k);a(c,d.slice(0,n.to-l),e,f,null,h,k);f=null;d=d.slice(n.to-l);l=n.to}}}function bf(a,b,c,d){var e=!d&&c.widgetNode;e&&a.map.push(a.pos,a.pos+b,e);!d&&a.cm.display.input.needsContentAttribute&&(e||(e=a.content.appendChild(document.createElement("span"))),e.setAttribute("cm-marker",c.id));e&&(a.cm.display.input.setUneditable(e),a.content.appendChild(e));a.pos+=b}function Me(a,b){return 0==b.from.ch&&0==b.to.ch&&""==A(b.text)&&(!a.cm||a.cm.options.wholeLineUpdateBefore)}function qd(a,b,c,d){function e(a, -c,e){a.text=c;a.stateAfter&&(a.stateAfter=null);a.styles&&(a.styles=null);null!=a.order&&(a.order=null);Te(a);Ue(a,e);c=d?d(a):1;c!=a.height&&ca(a,c);L(a,"change",a,b)}function f(a,b){for(var e=a,f=[];eb||b>=a.size)throw Error("There is no line "+(b+a.first)+" in the document.");for(var c=a;!c.lines;)for(var d=0;;++d){var e=c.children[d],f=e.chunkSize();if(bf-a.cm.options.historyEventDelay|| -"*"==b.origin.charAt(0)))e.lastOp==d?(ce(e.done),g=A(e.done)):e.done.length&&!A(e.done).ranges?g=A(e.done):1e.undoDepth;)e.done.shift(),e.done[0].ranges||e.done.shift();e.done.push(c);e.generation= -++e.maxGeneration;e.lastModTime=e.lastSelTime=f;e.lastOp=e.lastSelOp=d;e.lastOrigin=e.lastSelOrigin=b.origin;k||K(a,"historyAdded")}function Wb(a,b){var c=A(b);c&&c.ranges&&c.equals(a)||b.push(a)}function cf(a,b,c,d){var e=b["spans_"+a.id],f=0;a.iter(Math.max(a.first,c),Math.min(a.first+a.size,d),function(c){c.markedSpans&&((e||(e=b["spans_"+a.id]={}))[f]=c.markedSpans);++f})}function Zf(a){if(!a)return null;for(var b=0,c;b=b)return d+Math.min(g,b-e);e+=f-d;e+=c-e%c;d=f+1;if(e>=b)return d}}function Ne(a){for(;vc.length<=a;)vc.push(A(vc)+" ");return vc[a]}function A(a){return a[a.length-1]}function D(a,b){for(var c=0;c=b.offsetWidth&&2C))}a=yd?t("span", -"​"):t("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");a.setAttribute("cm-text","");return a}function Af(a,b,c,d){if(!a)return d(b,c,"ltr");for(var e=!1,f=0;fb||b==c&&g.to==b)d(Math.max(g.from,b),Math.min(g.to,c),1==g.level?"rtl":"ltr"),e=!0}e||d(b,c,"ltr")}function dd(a){return a.level%2?a.to:a.from}function ed(a){return a.level%2?a.from:a.to}function ac(a){return(a=Y(a))?dd(a[0]):0}function bc(a){var b=Y(a);return b?ed(A(b)):a.text.length} -function kf(a,b){var c=u(a.doc,b),d=ia(c);d!=c&&(b=F(d));d=(c=Y(d))?c[0].level%2?bc(d):ac(d):0;return r(b,d)}function lf(a,b){var c=kf(a,b.line),d=u(a.doc,c.line),e=Y(d);return e&&0!=e[0].level?c:(d=Math.max(0,d.text.search(/\S/)),r(c.line,b.line==c.line&&b.ch<=d&&b.ch?0:d))}function Sb(a,b){vb=null;for(var c=0,d;cb)return c;if(e.from==b||e.to==b)if(null==d)d=c;else{var f;f=e.level;var g=a[d].level,h=a[0].level;f=f==h?!0:g==h?!1:fg.from&&bb||b>a.text.length?null:b}var wa=/gecko\/\d/i.test(navigator.userAgent),mf=/MSIE \d/.test(navigator.userAgent),nf=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),B=mf||nf,C=B&&(mf?document.documentMode||6:nf[1]),J=/WebKit\//.test(navigator.userAgent),jg=J&&/Qt\/\d+\.\d+/.test(navigator.userAgent),kg=/Chrome\//.test(navigator.userAgent),ba=/Opera\//.test(navigator.userAgent),te=/Apple Computer/.test(navigator.vendor),lg=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent), -Gf=/PhantomJS/.test(navigator.userAgent),Qa=/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent),ab=Qa||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent),W=Qa||/Mac/.test(navigator.platform),mg=/win/i.test(navigator.platform),Ia=ba&&navigator.userAgent.match(/Version\/(\d*\.\d*)/);Ia&&(Ia=Number(Ia[1]));Ia&&15<=Ia&&(ba=!1,J=!0);var of=W&&(jg||ba&&(null==Ia||12.11>Ia)),id=wa||B&&9<=C,Ge=!1,ra=!1;Fc.prototype=V({update:function(a){var b= -a.scrollWidth>a.clientWidth+1,c=a.scrollHeight>a.clientHeight+1,d=a.nativeBarWidth;c?(this.vert.style.display="block",this.vert.style.bottom=b?d+"px":"0",this.vert.firstChild.style.height=Math.max(0,a.scrollHeight-a.clientHeight+(a.viewHeight-(b?d:0)))+"px"):(this.vert.style.display="",this.vert.firstChild.style.height="0");b?(this.horiz.style.display="block",this.horiz.style.right=c?d+"px":"0",this.horiz.style.left=a.barLeft+"px",this.horiz.firstChild.style.width=a.scrollWidth-a.clientWidth+(a.viewWidth- -a.barLeft-(c?d:0))+"px"):(this.horiz.style.display="",this.horiz.firstChild.style.width="0");!this.checkedOverlay&&0new Date-d.state.lastMiddleDown)){var a=f.selectionStart,b=f.selectionEnd;f.value+="$";f.selectionEnd=b;f.selectionStart= -a;d.state.fakedLastChar=!0}d.state.pasteIncoming=!0;c.fastPoll()});v(f,"cut",b);v(f,"copy",b);v(a.scroller,"paste",function(b){oa(a,b)||(d.state.pasteIncoming=!0,c.focus())});v(a.lineSpace,"selectstart",function(b){oa(a,b)||O(b)});v(f,"compositionstart",function(){var a=d.getCursor("from");c.composing={start:a,range:d.markText(a,d.getCursor("to"),{className:"CodeMirror-composing"})}});v(f,"compositionend",function(){c.composing&&(c.poll(),c.composing.range.clear(),c.composing=null)})},prepareSelection:function(){var a= -this.cm,b=a.display,c=a.doc,d=he(a);if(a.options.moveInputWithCursor){var a=ma(a,c.sel.primary().head,"div"),c=b.wrapper.getBoundingClientRect(),e=b.lineDiv.getBoundingClientRect();d.teTop=Math.max(0,Math.min(b.wrapper.clientHeight-10,a.top+e.top-c.top));d.teLeft=Math.max(0,Math.min(b.wrapper.clientWidth-10,a.left+e.left-c.left))}return d},showSelection:function(a){var b=this.cm.display;U(b.cursorDiv,a.cursors);U(b.selectionDiv,a.selection);null!=a.teTop&&(this.wrapper.style.top=a.teTop+"px",this.wrapper.style.left= -a.teLeft+"px")},reset:function(a){if(!this.contextMenuPending){var b,c,d=this.cm,e=d.doc;d.somethingSelected()?(this.prevInput="",b=e.sel.primary(),c=(b=Ce&&(100C&&f.scrollbars.setScrollTop(f.scroller.scrollTop= -k);if(null!=g.selectionStart){(!B||B&&9>C)&&b();var a=0,c=function(){f.selForContextMenu==e.doc.sel&&0==g.selectionStart&&0a++?f.detectingSelectAll=setTimeout(c,500):f.input.reset()};f.detectingSelectAll=setTimeout(c,200)}}var d=this,e=d.cm,f=e.display,g=d.textarea,h=Ua(e,a),k=f.scroller.scrollTop;if(h&&!ba){e.options.resetSelectionOnContextMenu&&-1==e.doc.sel.contains(h)&&G(e,H)(e.doc,ga(h),ha);var l=g.style.cssText;d.wrapper.style.position= -"absolute";g.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(a.clientY-5)+"px; left: "+(a.clientX-5)+"px; z-index: 1000; background: "+(B?"rgba(255, 255, 255, .05)":"transparent")+"; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity\x3d5);";if(J)var m=window.scrollY;f.input.focus();J&&window.scrollTo(null,m);f.input.reset();e.somethingSelected()||(g.value=d.prevInput=" ");d.contextMenuPending=!0;f.selForContextMenu=e.doc.sel;clearTimeout(f.detectingSelectAll); -B&&9<=C&&b();if(id){jd(a);var p=function(){ka(window,"mouseup",p);setTimeout(c,20)};v(window,"mouseup",p)}else setTimeout(c,50)}},setUneditable:Eb,needsContentAttribute:!1},Tc.prototype);Uc.prototype=V({init:function(a){function b(a){if(d.somethingSelected())X=d.getSelections(),"cut"==a.type&&d.replaceSelection("",null,"cut");else if(d.options.lineWiseCopyCut){var b=Vd(d);X=b.text;"cut"==a.type&&d.operation(function(){d.setSelections(b.ranges,0,ha);d.replaceSelection("",null,"cut")})}else return; -if(a.clipboardData&&!Qa)a.preventDefault(),a.clipboardData.clearData(),a.clipboardData.setData("text/plain",X.join("\n"));else{var c=Xd();a=c.firstChild;d.display.lineSpace.insertBefore(c,d.display.lineSpace.firstChild);a.value=X.join("\n");var h=document.activeElement;Za(a);setTimeout(function(){d.display.lineSpace.removeChild(c);h.focus()},50)}}var c=this,d=c.cm;a=c.div=a.lineDiv;a.contentEditable="true";Wd(a);v(a,"paste",function(a){var b=a.clipboardData&&a.clipboardData.getData("text/plain"); -b&&(a.preventDefault(),d.replaceSelection(b,null,"paste"))});v(a,"compositionstart",function(a){a=a.data;c.composing={sel:d.doc.sel,data:a,startData:a};if(a){var b=d.doc.sel.primary(),g=d.getLine(b.head.line).indexOf(a,Math.max(0,b.head.ch-a.length));-1b.viewTo-1)return!1;var e;d.line==b.viewFrom||0==(e=Ca(a,d.line))?(d=F(b.view[0].line),e=b.view[0].node):(d=F(b.view[e].line),e=b.view[e-1].node.nextSibling);var f= -Ca(a,c.line);f==b.view.length-1?(c=b.viewTo-1,b=b.view[f].node):(c=F(b.view[f+1].line)-1,b=b.view[f+1].node.previousSibling);b=sa(xf(a,e,b,d,c));for(e=Da(a.doc,r(d,0),r(c,u(a.doc,c).text.length));1=y(a,d.to()))return c}return-1}};z.prototype={from:function(){return Qb(this.anchor,this.head)},to:function(){return Pb(this.anchor,this.head)},empty:function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch}};var ad={left:0,right:0,top:0,bottom:0},Fa,Ta=null,Ff=0,fc,ec,se=0,gc=0,R=null;B?R=-.53:wa?R=15:kg?R=-.7:te&&(R=-1/3);var ze=function(a){var b=a.wheelDeltaX,c=a.wheelDeltaY;null==b&&a.detail&& -a.axis==a.HORIZONTAL_AXIS&&(b=a.detail);null==c&&a.detail&&a.axis==a.VERTICAL_AXIS?c=a.detail:null==c&&(c=a.wheelDelta);return{x:b,y:c}};q.wheelEventPixels=function(a){a=ze(a);a.x*=R;a.y*=R;return a};var Qf=new bb,md=null,ta=q.changeEnd=function(a){return a.text?r(a.from.line+a.text.length-1,A(a.text).length+(1==a.text.length?a.from.ch:0)):a.to};q.prototype={constructor:q,focus:function(){window.focus();this.display.input.focus()},setOption:function(a,b){var c=this.options,d=c[a];if(c[a]!=b||"mode"== -a)c[a]=b,Ka.hasOwnProperty(a)&&G(this,Ka[a])(this,b,d)},getOption:function(a){return this.options[a]},getDoc:function(){return this.doc},addKeyMap:function(a,b){this.state.keyMaps[b?"push":"unshift"](pc(a))},removeKeyMap:function(a){for(var b=this.state.keyMaps,c=0;cc&&(pb(this,e.head.line,a,!0),c=e.head.line,d==this.doc.sel.primIndex&&Pa(this));else{for(var f=e.from(),e=e.to(),g=Math.max(c,f.line),c=Math.min(this.lastLine(),e.line-(e.ch?0:1))+1,e=g;e>1;if((e?b[2*e-1]:0)>=a)d=e;else if(b[2*e+1]c?b:0==c?null:b.slice(0,c-1)},getModeAt:function(a){var b=this.doc.mode;return b.innerMode?q.innerMode(b,this.getTokenAt(a).state).mode:b},getHelper:function(a,b){return this.getHelpers(a,b)[0]},getHelpers:function(a,b){var c=[];if(!$a.hasOwnProperty(b))return c;var d=$a[b],e=this.getModeAt(a);if("string"== -typeof e[b])d[e[b]]&&c.push(d[e[b]]);else if(e[b])for(var f=0;fd&&(a=d,c=!0),d=u(this.doc, -a)):d=a;return cd(this,d,{top:0,left:0},b||"page").top+(c?this.doc.height-ea(d):0)},defaultTextHeight:function(){return xa(this.display)},defaultCharWidth:function(){return gb(this.display)},setGutterMarker:M(function(a,b,c){return nc(this.doc,a,"gutter",function(a){var e=a.gutterMarkers||(a.gutterMarkers={});e[b]=c;!c&&hf(e)&&(a.gutterMarkers=null);return!0})}),clearGutter:M(function(a){var b=this,c=b.doc,d=c.first;c.iter(function(c){c.gutterMarkers&&c.gutterMarkers[a]&&(c.gutterMarkers[a]=null, -na(b,d,"gutter"),hf(c.gutterMarkers)&&(c.gutterMarkers=null));++d})}),lineInfo:function(a){if("number"==typeof a){if(!qb(this.doc,a))return null;var b=a;a=u(this.doc,a);if(!a)return null}else if(b=F(a),null==b)return null;return{line:b,handle:a,text:a.text,gutterMarkers:a.gutterMarkers,textClass:a.textClass,bgClass:a.bgClass,wrapClass:a.wrapClass,widgets:a.widgets}},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(a,b,c,d,e){var f=this.display;a= -ma(this,w(this.doc,a));var g=a.bottom,h=a.left;b.style.position="absolute";b.setAttribute("cm-ignore-events","true");this.display.input.setUneditable(b);f.sizer.appendChild(b);if("over"==d)g=a.top;else if("above"==d||"near"==d){var k=Math.max(f.wrapper.clientHeight,this.doc.height),l=Math.max(f.sizer.clientWidth,f.lineSpace.clientWidth);("above"==d||a.bottom+b.offsetHeight>k)&&a.top>b.offsetHeight?g=a.top-b.offsetHeight:a.bottom+b.offsetHeight<=k&&(g=a.bottom);h+b.offsetWidth>l&&(h=l-b.offsetWidth)}b.style.top= -g+"px";b.style.left=b.style.right="";"right"==e?(h=f.sizer.clientWidth-b.offsetWidth,b.style.right="0px"):("left"==e?h=0:"middle"==e&&(h=(f.sizer.clientWidth-b.offsetWidth)/2),b.style.left=h+"px");c&&(a=cc(this,h,g,h+b.offsetWidth,g+b.offsetHeight),null!=a.scrollTop&&lb(this,a.scrollTop),null!=a.scrollLeft&&Ma(this,a.scrollLeft))},triggerOnKeyDown:M(ve),triggerOnKeyPress:M(we),triggerOnKeyUp:ue,execCommand:function(a){if(ic.hasOwnProperty(a))return ic[a](this)},findPosH:function(a,b,c,d){var e=1; -0>b&&(e=-1,b=-b);var f=0;for(a=w(this.doc,a);fa?d.from():d.to()},Gb)}),deleteH:M(function(a,b){var c=this.doc;this.doc.sel.somethingSelected()?c.replaceSelection("",null,"+delete"):Va(this,function(d){var e=rd(c,d.head,a,b,!1);return 0>a?{from:e,to:d.head}:{from:d.head,to:e}})}),findPosV:function(a, -b,c,d){var e=1;0>b&&(e=-1,b=-b);var f=0;for(a=w(this.doc,a);fa?g.from():g.to();var k=ma(c,g.head,"div");null!=g.goalColumn&&(k.left=g.goalColumn);e.push(k.left);var l=Pe(c,k,a,b);"page"==b&&g==d.sel.primary()&&lc(c,null,Yb(c,l,"div").top-k.top);return l}, -Gb);if(e.length)for(var g=0;ga.xRel||d==b.length)&&c?--c:++d;for(var f=b.charAt(c),f=oc(f,e)?function(a){return oc(a,e)}:/\s/.test(f)?function(a){return/\s/.test(a)}:function(a){return!/\s/.test(a)&&!oc(a)};0a.doc.first){var g=u(a.doc,e.line-1).text;g&&a.replaceRange(f.charAt(0)+"\n"+g.charAt(g.length-1),r(e.line-1,g.length-1),r(e.line,1),"+transpose")}c.push(new z(e, -e))}a.setSelections(c)})},newlineAndIndent:function(a){T(a,function(){for(var b=a.listSelections().length,c=0;c=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){if(this.pos -b},eatSpace:function(){for(var a=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>a},skipToEnd:function(){this.pos=this.string.length},skipTo:function(a){a=this.string.indexOf(a,this.pos);if(-1a.display.maxLineLength&&(a.display.maxLine=f,a.display.maxLineLength=g,a.display.maxLineChanged=!0);null!=c&&a&&this.collapsed&&Q(a,c,d+1);this.lines.length=0;this.explicitlyCleared= -!0;this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,a&&ge(a.doc));a&&L(a,"markerCleared",a,this);b&&La(a);this.parent&&this.parent.clear()}};Ha.prototype.find=function(a,b){null==a&&"bookmark"==this.type&&(a=1);for(var c,d,e=0;ethis.size-b&&(1=this.children.length)){var a=this;do{var b=a.children.splice(a.children.length-5,5),b=new Cb(b);if(a.parent){a.size-=b.size;a.height-=b.height;var c=D(a.parent.children,a);a.parent.children.splice(c+1,0,b)}else c=new Cb(a.children), -c.parent=a,a.children=[c,b],a=c;b.parent=a.parent}while(10y(h.head,h.anchor),f[e]=new z(h?k:g,h?g:k)):f[e]=new z(g,g)}f=new la(f,this.sel.primIndex)}b=f;for(f=d.length-1;0<=f;f--)Oa(this,d[f]);b?be(this,b):this.cm&&Pa(this.cm)}),undo:N(function(){kc(this,"undo")}),redo:N(function(){kc(this,"redo")}),undoSelection:N(function(){kc(this,"undo",!0)}),redoSelection:N(function(){kc(this,"redo",!0)}),setExtending:function(a){this.extend=a},getExtending:function(){return this.extend},historySize:function(){for(var a= -this.history,b=0,c=0,d=0;d=a.ch)&&b.push(e.marker.parent||e.marker)}return b},findMarks:function(a,b,c){a=w(this,a); -b=w(this,b);var d=[],e=a.line;this.iter(a.line,b.line+1,function(f){if(f=f.markedSpans)for(var g=0;gh.to||null==h.from&&e!=a.line||e==b.line&&h.from>b.ch||c&&!c(h.marker)||d.push(h.marker.parent||h.marker)}++e});return d},getAllMarks:function(){var a=[];this.iter(function(b){if(b=b.markedSpans)for(var c=0;c -a)return b=a,!0;a-=d;++c});return w(this,r(c,b))},indexFromPos:function(a){a=w(this,a);var b=a.ch;if(a.linea.ch)return 0;this.iter(this.first,a.line,function(a){b+=a.text.length+1});return b},copy:function(a){var b=new P(xd(this,this.first,this.first+this.size),this.modeOption,this.first);b.scrollTop=this.scrollTop;b.scrollLeft=this.scrollLeft;b.sel=this.sel;b.extend=!1;a&&(b.history.undoDepth=this.history.undoDepth,b.setHistory(this.getHistory()));return b},linkedDoc:function(a){a|| -(a={});var b=this.first,c=this.first+this.size;null!=a.from&&a.from>b&&(b=a.from);null!=a.to&&a.toD(pg,Jb)&&(q.prototype[Jb]=function(a){return function(){return a.apply(this.doc,arguments)}}(P.prototype[Jb]));Ya(P);var O=q.e_preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},qg=q.e_stopPropagation=function(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0},jd=q.e_stop=function(a){O(a);qg(a)},v=q.on=function(a,b,c){a.addEventListener? -a.addEventListener(b,c,!1):a.attachEvent?a.attachEvent("on"+b,c):(a=a._handlers||(a._handlers={}),(a[b]||(a[b]=[])).push(c))},ka=q.off=function(a,b,c){if(a.removeEventListener)a.removeEventListener(b,c,!1);else if(a.detachEvent)a.detachEvent("on"+b,c);else if(a=a._handlers&&a._handlers[b])for(b=0;bf||f>=b)return e+(b-d);e+=f-d;e+=c-e%c;d=f+1}},vc=[""],Za=function(a){a.select()};Qa?Za=function(a){a.selectionStart=0;a.selectionEnd=a.value.length}:B&& -(Za=function(a){try{a.select()}catch(b){}});var rg=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,gf=q.isWordChar=function(a){return/\w/.test(a)||"€"C&&(fa=function(){try{return document.activeElement}catch(a){return document.body}}); -var kb=q.rmClass=function(a,b){var c=a.className,d=Fb(b).exec(c);if(d){var e=c.slice(d.index+d[0].length);a.className=c.slice(0,d.index)+(e?d[1]+e:"")}},mb=q.addClass=function(a,b){var c=a.className;Fb(b).test(c)||(a.className+=(c?" ":"")+b)},Dd=!1,Lf=function(){if(B&&9>C)return!1;var a=t("div");return"draggable"in a||"dragDrop"in a}(),yd,vd,sa=q.splitLines=3!="\n\nb".split(/\n/).length?function(a){for(var b=0,c=[],d=a.length;b<=d;){var e=a.indexOf("\n",b);-1==e&&(e=a.length);var f=a.slice(b,"\r"== -a.charAt(e-1)?e-1:e),g=f.indexOf("\r");-1!=g?(c.push(f.slice(0,g)),b+=g+1):(c.push(f),b=e+1)}return c}:function(a){return a.split(/\r\n?|\n/)},ng=window.getSelection?function(a){try{return a.selectionStart!=a.selectionEnd}catch(b){return!1}}:function(a){try{var b=a.ownerDocument.selection.createRange()}catch(c){}return b&&b.parentElement()==a?0!=b.compareEndPoints("StartToEnd",b):!1},Ce=function(){var a=t("div");if("oncopy"in a)return!0;a.setAttribute("oncopy","return;");return"function"==typeof a.oncopy}(), -bd=null,va={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"\x3d",91:"Mod",92:"Mod",93:"Mod",107:"\x3d",109:"-",127:"Delete",173:"-",186:";",187:"\x3d",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home", -63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"};q.keyNames=va;(function(){for(var a=0;10>a;a++)va[a+48]=va[a+96]=String(a);for(a=65;90>=a;a++)va[a]=String.fromCharCode(a);for(a=1;12>=a;a++)va[a+111]=va[a+63235]="F"+a})();var vb,gg=function(){function a(a){return 247>=a?"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN".charAt(a): -1424<=a&&1524>=a?"R":1536<=a&&1773>=a?"rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm".charAt(a-1536):1774<=a&&2220>=a?"r":8192<=a&&8203>=a?"w":8204==a?"b":"L"}function b(a,b,c){this.level=a;this.from=b;this.to=c}var c=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,d=/[stwN]/,e=/[LRr]/,f=/[Lb1n]/,g=/[1n]/;return function(h){if(!c.test(h))return!1; -for(var k=h.length,l=[],m=0,p;me)){for(var d=0,b=!1,e=e-1;0<=e;--e){var f=a.string.charAt(e),g="([{}])".indexOf(f);if(0<=g&&3>g){if(!d){++e;break}if(0==--d)break}else if(3<=g&&6>g)++d;else if(R.test(f))b=!0;else{if(/["'\/]/.test(f))return;if(b&&!d){++e;break}}}b&&!d&&(c.fatArrowAt=e)}}function ca(a,c,b,d,f,h){this.indented=a;this.column=c;this.type=b;this.prev=f;this.info=h;null!=d&&(this.align=d)}function g(){for(var a=arguments.length-1;0<=a;a--)f.cc.push(arguments[a])} -function b(){g.apply(null,arguments);return!0}function x(a){function c(c){for(;c;c=c.next)if(c.name==a)return!0;return!1}var b=f.state;b.context?(f.marked="def",c(b.localVars)||(b.localVars={name:a,next:b.localVars})):!c(b.globalVars)&&t.globalVars&&(b.globalVars={name:a,next:b.globalVars})}function y(){f.state.context={prev:f.state.context,vars:f.state.localVars};f.state.localVars=ra}function z(){f.state.localVars=f.state.context.vars;f.state.context=f.state.context.prev}function l(a,c){var b=function(){var b= -f.state,e=b.indented;if("stat"==b.lexical.type)e=b.lexical.indented;else for(var h=b.lexical;h&&")"==h.type&&h.align;h=h.prev)e=h.indented;b.lexical=new ca(e,f.stream.column(),a,null,b.lexical,c)};b.lex=!0;return b}function k(){var a=f.state;a.lexical.prev&&(")"==a.lexical.type&&(a.indented=a.lexical.indented),a.lexical=a.lexical.prev)}function m(a){function c(e){return e==a?b():";"==a?g():b(c)}return c}function r(a,c){return"var"==a?b(l("vardef",c.length),T,m(";"),k):"keyword a"==a?b(l("form"),n, -r,k):"keyword b"==a?b(l("form"),r,k):"{"==a?b(l("}"),U,k):";"==a?b():"if"==a?("else"==f.state.lexical.info&&f.state.cc[f.state.cc.length-1]==k&&f.state.cc.pop()(),b(l("form"),n,r,k,da)):"function"==a?b(v):"for"==a?b(l("form"),ea,r,k):"variable"==a?b(l("stat"),sa):"switch"==a?b(l("form"),n,l("}","switch"),m("{"),U,k,k):"case"==a?b(n,m(":")):"default"==a?b(m(":")):"catch"==a?b(l("form"),y,m("("),V,m(")"),r,k,z):"module"==a?b(l("form"),y,ta,z,k):"class"==a?b(l("form"),ua,k):"export"==a?b(l("form"),va, -k):"import"==a?b(l("form"),wa,k):g(l("stat"),n,m(";"),k)}function n(a){return fa(a,!1)}function u(a){return fa(a,!0)}function fa(a,c){if(f.state.fatArrowAt==f.stream.start){var e=c?ga:ha;if("("==a)return b(y,l(")"),F(A,")"),k,m("\x3d\x3e"),e,z);if("variable"==a)return g(y,A,m("\x3d\x3e"),e,z)}e=c?W:M;return xa.hasOwnProperty(a)?b(e):"function"==a?b(v,e):"keyword c"==a?b(c?ia:X):"("==a?b(l(")"),X,N,m(")"),k,e):"operator"==a||"spread"==a?b(c?u:n):"["==a?b(l("]"),ya,k,e):"{"==a?G(za,"}",null,e):"quasi"== -a?g(O,e):b()}function X(a){return a.match(/[;\}\)\],]/)?g():g(n)}function ia(a){return a.match(/[;\}\)\],]/)?g():g(u)}function M(a,c){return","==a?b(n):W(a,c,!1)}function W(a,c,e){var d=0==e?M:W,f=0==e?n:u;if("\x3d\x3e"==a)return b(y,e?ga:ha,z);if("operator"==a)return/\+\+|--/.test(c)?b(d):"?"==c?b(n,m(":"),f):b(f);if("quasi"==a)return g(O,d);if(";"!=a){if("("==a)return G(u,")","call",d);if("."==a)return b(Aa,d);if("["==a)return b(l("]"),X,m("]"),k,d)}}function O(a,c){return"quasi"!=a?g():"${"!=c.slice(c.length- -2)?b(O):b(n,Ba)}function Ba(a){if("}"==a)return f.marked="string-2",f.state.tokenize=Q,b(O)}function ha(a){S(f.stream,f.state);return g("{"==a?r:n)}function ga(a){S(f.stream,f.state);return g("{"==a?r:u)}function sa(a){return":"==a?b(k,r):g(M,m(";"),k)}function Aa(a){if("variable"==a)return f.marked="property",b()}function za(a,c){if("variable"==a||"keyword"==f.style)return f.marked="property","get"==c||"set"==c?b(Ca):b(H);if("number"==a||"string"==a)return f.marked=L?"property":f.style+" property", -b(H);if("jsonld-keyword"==a)return b(H);if("["==a)return b(n,m("]"),H)}function Ca(a){if("variable"!=a)return g(H);f.marked="property";return b(v)}function H(a){if(":"==a)return b(u);if("("==a)return g(v)}function F(a,c){function e(d){return","==d?(d=f.state.lexical,"call"==d.info&&(d.pos=(d.pos||0)+1),b(a,e)):d==c?b():b(m(c))}return function(d){return d==c?b():g(a,e)}}function G(a,c,e){for(var d=3;d!?|~^]/,qa=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,E,I,xa={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,"this":!0,"jsonld-keyword":!0},f={state:null,column:null,marked:null,cc:null},ra={name:"this", -next:{name:"arguments"}};k.lex=!0;return{startState:function(a){a={tokenize:w,lastType:"sof",cc:[],lexical:new ca((a||0)-C,0,"block",!1),localVars:t.localVars,context:t.localVars&&{vars:t.localVars},indented:0};t.globalVars&&"object"==typeof t.globalVars&&(a.globalVars=t.globalVars);return a},token:function(a,b){a.sol()&&(b.lexical.hasOwnProperty("align")||(b.lexical.align=!1),b.indented=a.indentation(),S(a,b));if(b.tokenize!=J&&a.eatSpace())return null;var e=b.tokenize(a,b);if("comment"==E)return e; -b.lastType="operator"!=E||"++"!=I&&"--"!=I?E:"incdec";a:{var d=E,g=I,h=b.cc;f.state=b;f.stream=a;f.marked=null;f.cc=h;f.style=e;b.lexical.hasOwnProperty("align")||(b.lexical.align=!0);for(;;)if((h.length?h.pop():D?n:r)(d,g)){for(;h.length&&h[h.length-1].lex;)h.pop()();if(f.marked){e=f.marked;break a}if(d="variable"==d)b:{for(d=b.localVars;d;d=d.next)if(d.name==g){d=!0;break b}for(h=b.context;h;h=h.prev)for(d=h.vars;d;d=d.next)if(d.name==g){d=!0;break b}d=void 0}if(d){e="variable-2";break a}break a}}return e}, -indent:function(a,b){if(a.tokenize==J)return p.Pass;if(a.tokenize!=w)return 0;var e=b&&b.charAt(0),d=a.lexical;if(!/^\s*else\b/.test(b))for(var f=a.cc.length-1;0<=f;--f){var g=a.cc[f];if(g==k)d=d.prev;else if(g!=da)break}"stat"==d.type&&"}"==e&&(d=d.prev);na&&")"==d.type&&"stat"==d.prev.type&&(d=d.prev);f=d.type;g=e==f;return"vardef"==f?d.indented+("operator"==a.lastType||","==a.lastType?d.info+1:0):"form"==f&&"{"==e?d.indented:"form"==f?d.indented+C:"stat"==f?(e=d.indented,d="operator"==a.lastType|| -","==a.lastType||K.test(b.charAt(0))||/[,.]/.test(b.charAt(0)),e+(d?na||C:0)):"switch"!=d.info||g||0==t.doubleIndentSwitch?d.align?d.column+(g?0:1):d.indented+(g?0:C):d.indented+(/^(?:case|default)\b/.test(b)?C:2*C)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:D?null:"/*",blockCommentEnd:D?null:"*/",lineComment:D?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:D?"json":"javascript",jsonldMode:L,jsonMode:D}});p.registerHelper("wordChars","javascript",/[\w$]/); -p.defineMIME("text/javascript","javascript");p.defineMIME("text/ecmascript","javascript");p.defineMIME("application/javascript","javascript");p.defineMIME("application/x-javascript","javascript");p.defineMIME("application/ecmascript","javascript");p.defineMIME("application/json",{name:"javascript",json:!0});p.defineMIME("application/x-json",{name:"javascript",json:!0});p.defineMIME("application/ld+json",{name:"javascript",jsonld:!0});p.defineMIME("text/typescript",{name:"javascript",typescript:!0}); -p.defineMIME("application/typescript",{name:"javascript",typescript:!0})}); \ No newline at end of file diff --git a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/neo.css b/ui/src/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/neo.css deleted file mode 100644 index d019aab88b..0000000000 --- a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/neo.css +++ /dev/null @@ -1,36 +0,0 @@ -/* neo theme for codemirror */ - -/* Color scheme */ - -.cm-s-neo.CodeMirror { - background-color:#ffffff; - color:#2e383c; - line-height:1.4375; -} -.cm-s-neo .cm-comment {color:#75787b} -.cm-s-neo .cm-keyword, .cm-s-neo .cm-property {color:#1d75b3} -.cm-s-neo .cm-atom,.cm-s-neo .cm-number {color:#75438a} -.cm-s-neo .cm-node,.cm-s-neo .cm-tag {color:#9c3328} -.cm-s-neo .cm-string {color:#b35e14} -.cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier {color:#047d65} - - -/* Editor styling */ - -.cm-s-neo pre { - padding:0; -} - -.cm-s-neo .CodeMirror-gutters { - border:none; - border-right:10px solid transparent; - background-color:transparent; -} - -.cm-s-neo .CodeMirror-linenumber { - padding:0; - color:#e0e2e5; -} - -.cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; } -.cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; } diff --git a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.css b/ui/src/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.css deleted file mode 100644 index 924e638f7f..0000000000 --- a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.css +++ /dev/null @@ -1,38 +0,0 @@ -.CodeMirror-hints { - position: absolute; - z-index: 10; - overflow: hidden; - list-style: none; - - margin: 0; - padding: 2px; - - -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); - -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); - box-shadow: 2px 3px 5px rgba(0,0,0,.2); - border-radius: 3px; - border: 1px solid silver; - - background: white; - font-size: 90%; - font-family: monospace; - - max-height: 20em; - overflow-y: auto; -} - -.CodeMirror-hint { - margin: 0; - padding: 0 4px; - border-radius: 2px; - max-width: 19em; - overflow: hidden; - white-space: pre; - color: black; - cursor: pointer; -} - -li.CodeMirror-hint-active { - background: #08f; - color: white; -} diff --git a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.js b/ui/src/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.js deleted file mode 100644 index 072359c2f2..0000000000 --- a/ui/src/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.js +++ /dev/null @@ -1,16 +0,0 @@ -(function(f){"object"==typeof exports&&"object"==typeof module?f(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],f):f(CodeMirror)})(function(f){function p(a,b){this.cm=a;this.options=this.buildOptions(b);this.widget=null;this.tick=this.debounce=0;this.startPos=this.cm.getCursor();this.startLen=this.cm.getLine(this.startPos.line).length;var c=this;a.on("cursorActivity",this.activityFunc=function(){c.cursorActivity()})}function w(a,b){function c(a, -c){var d;d="string"!=typeof c?function(a){return c(a,b)}:e.hasOwnProperty(c)?e[c]:c;f[a]=d}var e={Up:function(){b.moveFocus(-1)},Down:function(){b.moveFocus(1)},PageUp:function(){b.moveFocus(-b.menuSize()+1,!0)},PageDown:function(){b.moveFocus(b.menuSize()-1,!0)},Home:function(){b.setFocus(0)},End:function(){b.setFocus(b.length-1)},Enter:b.pick,Tab:b.pick,Esc:b.close},d=a.options.customKeys,f=d?{}:e;if(d)for(var g in d)d.hasOwnProperty(g)&&c(g,d[g]);if(d=a.options.extraKeys)for(g in d)d.hasOwnProperty(g)&& -c(g,d[g]);return f}function v(a,b){for(;b&&b!=a;){if("LI"===b.nodeName.toUpperCase()&&b.parentNode==a)return b;b=b.parentNode}}function n(a,b){this.completion=a;this.data=b;this.picked=!1;var c=this,e=a.cm,d=this.hints=document.createElement("ul");d.className="CodeMirror-hints";this.selectedHint=b.selectedHint||0;for(var m=b.list,g=0;gk&&(d.style.height=k-5+"px",d.style.top=(t=g.bottom-h.top)+"px",k=e.getCursor(),b.from.ch!=k.ch&&(g=e.cursorCoords(k),d.style.left=(r=g.left)+"px",h=d.getBoundingClientRect()))}k=h.right-l;0l&&(d.style.width=l-5+"px",k-=h.right-h.left-l),d.style.left=(r=g.left-k)+"px");e.addKeyMap(this.keyMap=w(a,{moveFocus:function(a,b){c.changeActive(c.selectedHint+ -a,b)},setFocus:function(a){c.changeActive(a)},menuSize:function(){return c.screenAmount()},length:m.length,close:function(){a.close()},pick:function(){c.pick()},data:b}));if(a.options.closeOnUnfocus){var p;e.on("blur",this.onBlur=function(){p=setTimeout(function(){a.close()},100)});e.on("focus",this.onFocus=function(){clearTimeout(p)})}var q=e.getScrollInfo();e.on("scroll",this.onScroll=function(){var c=e.getScrollInfo(),b=e.getWrapperElement().getBoundingClientRect(),f=t+q.top-c.top,g=f-(window.pageYOffset|| -(document.documentElement||document.body).scrollTop);n||(g+=d.offsetHeight);if(g<=b.top||g>=b.bottom)return a.close();d.style.top=f+"px";d.style.left=r+q.left-c.left+"px"});f.on(d,"dblclick",function(a){(a=v(d,a.target||a.srcElement))&&null!=a.hintId&&(c.changeActive(a.hintId),c.pick())});f.on(d,"click",function(b){(b=v(d,b.target||b.srcElement))&&null!=b.hintId&&(c.changeActive(b.hintId),a.options.completeOnSingleClick&&c.pick())});f.on(d,"mousedown",function(){setTimeout(function(){e.focus()},20)}); -f.signal(b,"select",m[0],d.firstChild);return!0}f.showHint=function(a,b,c){if(!b)return a.showHint(c);c&&c.async&&(b.async=!0);b={hint:b};if(c)for(var e in c)b[e]=c[e];return a.showHint(b)};f.defineExtension("showHint",function(a){1=this.data.list.length?a=b?this.data.list.length-1:0:0>a&&(a=b?0:this.data.list.length-1); -if(this.selectedHint!=a){var c=this.hints.childNodes[this.selectedHint];c.className=c.className.replace(" CodeMirror-hint-active","");c=this.hints.childNodes[this.selectedHint=a];c.className+=" CodeMirror-hint-active";c.offsetTopthis.hints.scrollTop+this.hints.clientHeight&&(this.hints.scrollTop=c.offsetTop+c.offsetHeight-this.hints.clientHeight+3);f.signal(this.data,"select",this.data.list[this.selectedHint],c)}}, -screenAmount:function(){return Math.floor(this.hints.clientHeight/this.hints.firstChild.offsetHeight)||1}};f.registerHelper("hint","auto",function(a,b){var c=a.getHelpers(a.getCursor(),"hint");if(c.length)for(var e=0;e,]/,closeOnUnfocus:!0,completeOnSingleClick:!1,container:null,customKeys:null,extraKeys:null};f.defineOption("hintOptions",null)}); \ No newline at end of file diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/dialog.css b/ui/src/vendor/ckeditor/skins/moono-lisa/dialog.css deleted file mode 100644 index a84955c017..0000000000 --- a/ui/src/vendor/ckeditor/skins/moono-lisa/dialog.css +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license -*/ -.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,input.cke_dialog_ui_input_tel:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:3px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:1px solid #bcbcbc;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last,.cke_dialog_flash_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px} \ No newline at end of file diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/dialog_ie.css b/ui/src/vendor/ckeditor/skins/moono-lisa/dialog_ie.css deleted file mode 100644 index e170145c4c..0000000000 --- a/ui/src/vendor/ckeditor/skins/moono-lisa/dialog_ie.css +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license -*/ -.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,input.cke_dialog_ui_input_tel:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:3px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:1px solid #bcbcbc;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last,.cke_dialog_flash_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password,.cke_rtl input.cke_dialog_ui_input_tel{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password,.cke_rtl div.cke_dialog_ui_input_tel{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0} \ No newline at end of file diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/dialog_ie8.css b/ui/src/vendor/ckeditor/skins/moono-lisa/dialog_ie8.css deleted file mode 100644 index 9294abae20..0000000000 --- a/ui/src/vendor/ckeditor/skins/moono-lisa/dialog_ie8.css +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license -*/ -.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,input.cke_dialog_ui_input_tel:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:3px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:1px solid #bcbcbc;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last,.cke_dialog_flash_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password,.cke_rtl input.cke_dialog_ui_input_tel{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password,.cke_rtl div.cke_dialog_ui_input_tel{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}a.cke_dialog_ui_button{min-height:18px}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{min-height:18px}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus{padding-top:4px;padding-bottom:2px}select.cke_dialog_ui_input_select{width:100%!important}select.cke_dialog_ui_input_select:focus{margin-left:1px;width:100%!important;padding-top:2px;padding-bottom:2px} \ No newline at end of file diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/dialog_iequirks.css b/ui/src/vendor/ckeditor/skins/moono-lisa/dialog_iequirks.css deleted file mode 100644 index 33314412be..0000000000 --- a/ui/src/vendor/ckeditor/skins/moono-lisa/dialog_iequirks.css +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license -*/ -.cke_dialog{visibility:visible}.cke_dialog_body{z-index:1;background:#fff}.cke_dialog strong{font-weight:bold}.cke_dialog_title{font-weight:bold;font-size:12px;cursor:move;position:relative;color:#484848;border-bottom:1px solid #d1d1d1;padding:12px 19px 12px 12px;background:#f8f8f8;letter-spacing:.3px}.cke_dialog_spinner{border-radius:50%;width:12px;height:12px;overflow:hidden;text-indent:-9999em;border:2px solid rgba(102,102,102,0.2);border-left-color:rgba(102,102,102,1);-webkit-animation:dialog_spinner 1s infinite linear;animation:dialog_spinner 1s infinite linear}.cke_browser_ie8 .cke_dialog_spinner,.cke_browser_ie9 .cke_dialog_spinner{background:url(images/spinner.gif) center top no-repeat;width:16px;height:16px;border:0}@-webkit-keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes dialog_spinner{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.cke_dialog_contents{background-color:#fff;overflow:auto;padding:15px 10px 5px 10px;margin-top:43px;border-top:1px solid #d1d1d1}.cke_dialog_contents_body{overflow:auto;padding:9px 10px 5px 10px;margin-top:22px}.cke_dialog_footer{text-align:right;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_rtl .cke_dialog_footer{text-align:left}.cke_hc .cke_dialog_footer{outline:0;border-top:1px solid #fff}.cke_dialog .cke_resizer{margin-top:22px}.cke_dialog .cke_resizer_rtl{margin-left:5px}.cke_dialog .cke_resizer_ltr{margin-right:5px}.cke_dialog_tabs{height:33px;display:inline-block;margin:9px 0 0;position:absolute;z-index:2;left:11px}.cke_rtl .cke_dialog_tabs{left:auto;right:11px}a.cke_dialog_tab{height:25px;padding:4px 8px;display:inline-block;cursor:pointer;line-height:26px;outline:0;color:#484848;border:1px solid #d1d1d1;border-radius:3px 3px 0 0;background:#f8f8f8;min-width:90px;text-align:center;margin-left:-1px;letter-spacing:.3px}a.cke_dialog_tab:hover{background-color:#fff}a.cke_dialog_tab:focus{border:2px solid #139ff7;border-bottom-color:#d1d1d1;padding:3px 7px;position:relative;z-index:1}a.cke_dialog_tab_selected{background:#fff;border-bottom-color:#fff;cursor:default;filter:none}a.cke_dialog_tab_selected:hover,a.cke_dialog_tab_selected:focus{border-bottom-color:#fff}.cke_hc a.cke_dialog_tab:hover,.cke_hc a.cke_dialog_tab:focus,.cke_hc a.cke_dialog_tab_selected{border:3px solid;padding:2px 6px}a.cke_dialog_tab_disabled{color:#bababa;cursor:default}.cke_single_page .cke_dialog_tabs{display:none}.cke_single_page .cke_dialog_contents{padding-top:5px;margin-top:0;border-top:0}a.cke_dialog_close_button{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:16px;width:16px;top:11px;z-index:5;opacity:.7;filter:alpha(opacity = 70)}.cke_rtl .cke_dialog_close_button{left:12px}.cke_ltr .cke_dialog_close_button{right:12px}.cke_hc a.cke_dialog_close_button{background-image:none}.cke_hidpi a.cke_dialog_close_button{background-image:url(images/hidpi/close.png);background-size:16px}a.cke_dialog_close_button:hover{opacity:1;filter:alpha(opacity = 100)}a.cke_dialog_close_button span{display:none}.cke_hc a.cke_dialog_close_button span{display:inline;cursor:pointer;font-weight:bold;position:relative;top:3px}div.cke_disabled .cke_dialog_ui_labeled_content div *{background-color:#ddd;cursor:default}.cke_dialog_ui_vbox table,.cke_dialog_ui_hbox table{margin:auto}.cke_dialog_ui_vbox_child{padding:5px 0}.cke_dialog_ui_hbox{width:100%;margin-top:12px}.cke_dialog_ui_hbox_first,.cke_dialog_ui_hbox_child,.cke_dialog_ui_hbox_last{vertical-align:top}.cke_ltr .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_ui_hbox_child{padding-right:10px}.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_child{padding-left:10px}.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_ltr .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-right:5px}.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_footer_buttons .cke_dialog_ui_hbox_child{padding-left:5px;padding-right:0}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:1px solid}textarea.cke_dialog_ui_input_textarea{overflow:auto;resize:none}input.cke_dialog_ui_input_text,input.cke_dialog_ui_input_password,input.cke_dialog_ui_input_tel,textarea.cke_dialog_ui_input_textarea{background-color:#fff;border:1px solid #bcbcbc;padding:4px 6px;outline:0;width:100%;*width:95%;box-sizing:border-box;border-radius:2px;min-height:28px;margin-left:1px}input.cke_dialog_ui_input_text:hover,input.cke_dialog_ui_input_password:hover,input.cke_dialog_ui_input_tel:hover,textarea.cke_dialog_ui_input_textarea:hover{border:1px solid #aeb3b9}input.cke_dialog_ui_input_text:focus,input.cke_dialog_ui_input_password:focus,input.cke_dialog_ui_input_tel:focus,textarea.cke_dialog_ui_input_textarea:focus,select.cke_dialog_ui_input_select:focus{outline:0;border:2px solid #139ff7}input.cke_dialog_ui_input_text:focus{padding-left:5px}textarea.cke_dialog_ui_input_textarea:focus{padding:3px 5px}select.cke_dialog_ui_input_select:focus{margin:0;width:100%!important}input.cke_dialog_ui_checkbox_input,input.cke_dialog_ui_radio_input{margin-left:1px;margin-right:2px}input.cke_dialog_ui_checkbox_input:focus,input.cke_dialog_ui_checkbox_input:active,input.cke_dialog_ui_radio_input:focus,input.cke_dialog_ui_radio_input:active{border:0;outline:2px solid #139ff7}a.cke_dialog_ui_button{display:inline-block;*display:inline;*zoom:1;padding:4px 1px;margin:0;text-align:center;color:#484848;vertical-align:middle;cursor:pointer;border:1px solid #bcbcbc;border-radius:2px;background:#f8f8f8;letter-spacing:.3px;line-height:18px;box-sizing:border-box}.cke_hc a.cke_dialog_ui_button{border-width:3px}span.cke_dialog_ui_button{padding:0 10px;cursor:pointer}a.cke_dialog_ui_button:hover{background:#fff}a.cke_dialog_ui_button:focus,a.cke_dialog_ui_button:active{border:2px solid #139ff7;outline:0;padding:3px 0}.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button:focus,.cke_hc a.cke_dialog_ui_button:active{border:3px solid}.cke_dialog_footer_buttons a.cke_dialog_ui_button span{color:inherit;font-size:12px;font-weight:bold;padding:0 12px}a.cke_dialog_ui_button_ok{color:#fff;background:#09863e;border:1px solid #09863e}.cke_hc a.cke_dialog_ui_button{border:3px solid #bcbcbc}a.cke_dialog_ui_button_ok:hover{background:#53aa78;border-color:#53aa78}a.cke_dialog_ui_button_ok:focus{box-shadow:inset 0 0 0 2px #FFF}a.cke_dialog_ui_button_ok:focus,a.cke_dialog_ui_button_ok:active{border-color:#139ff7}.cke_hc a.cke_dialog_ui_button_ok:hover,.cke_hc a.cke_dialog_ui_button_ok:focus,.cke_hc a.cke_dialog_ui_button_ok:active{border-color:#484848}a.cke_dialog_ui_button_ok.cke_disabled{background:#d1d1d1;border-color:#d1d1d1;cursor:default}a.cke_dialog_ui_button_ok.cke_disabled span{cursor:default}.cke_dialog_footer_buttons{display:inline-table;margin:5px;width:auto;position:relative;vertical-align:middle}div.cke_dialog_ui_input_select{display:table}select.cke_dialog_ui_input_select{height:28px;line-height:28px;background-color:#fff;border:1px solid #bcbcbc;padding:3px 3px 3px 6px;outline:0;border-radius:2px;margin:0 1px;box-sizing:border-box;width:calc(100% - 2px)!important}.cke_dialog_ui_input_file{width:100%;height:25px}.cke_hc .cke_dialog_ui_labeled_content input:focus,.cke_hc .cke_dialog_ui_labeled_content select:focus,.cke_hc .cke_dialog_ui_labeled_content textarea:focus{outline:1px dotted}.cke_dialog_ui_labeled_label{margin-left:1px}.cke_dialog .cke_dark_background{background-color:transparent}.cke_dialog .cke_light_background{background-color:#ebebeb}.cke_dialog .cke_centered{text-align:center}.cke_dialog a.cke_btn_reset{float:right;background:url(images/refresh.png) top left no-repeat;width:16px;height:16px;border:1px none;font-size:1px}.cke_hidpi .cke_dialog a.cke_btn_reset{background-size:16px;background-image:url(images/hidpi/refresh.png)}.cke_rtl .cke_dialog a.cke_btn_reset{float:left}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked{float:left;width:16px;height:16px;background-repeat:no-repeat;border:none 1px;font-size:1px}.cke_dialog a.cke_btn_locked,.cke_dialog a.cke_btn_unlocked,.cke_dialog a.cke_btn_reset{margin:2px}.cke_dialog a.cke_btn_locked{background-image:url(images/lock.png)}.cke_dialog a.cke_btn_unlocked{background-image:url(images/lock-open.png)}.cke_rtl .cke_dialog a.cke_btn_locked,.cke_rtl .cke_dialog a.cke_btn_unlocked{float:right}.cke_hidpi .cke_dialog a.cke_btn_unlocked,.cke_hidpi .cke_dialog a.cke_btn_locked{background-size:16px}.cke_hidpi .cke_dialog a.cke_btn_locked{background-image:url(images/hidpi/lock.png)}.cke_hidpi .cke_dialog a.cke_btn_unlocked{background-image:url(images/hidpi/lock-open.png)}.cke_dialog a.cke_btn_locked .cke_icon{display:none}.cke_dialog a.cke_btn_over,.cke_dialog a.cke_btn_locked:hover,.cke_dialog a.cke_btn_locked:focus,.cke_dialog a.cke_btn_locked:active,.cke_dialog a.cke_btn_unlocked:hover,.cke_dialog a.cke_btn_unlocked:focus,.cke_dialog a.cke_btn_unlocked:active,.cke_dialog a.cke_btn_reset:hover,.cke_dialog a.cke_btn_reset:focus,.cke_dialog a.cke_btn_reset:active{cursor:pointer;outline:0;margin:0;border:2px solid #139ff7}.cke_dialog fieldset{border:1px solid #bcbcbc}.cke_dialog fieldset legend{padding:0 6px}.cke_dialog_ui_checkbox,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{display:inline-block}.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox{padding-top:5px}.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input,.cke_dialog fieldset .cke_dialog_ui_vbox .cke_dialog_ui_checkbox .cke_dialog_ui_checkbox_input+label{vertical-align:middle}.cke_dialog .ImagePreviewBox{border:1px ridge #bcbcbc;overflow:scroll;height:200px;width:300px;padding:2px;background-color:white}.cke_dialog .ImagePreviewBox table td{white-space:normal}.cke_dialog .ImagePreviewLoader{position:absolute;white-space:normal;overflow:hidden;height:160px;width:230px;margin:2px;padding:2px;opacity:.9;filter:alpha(opacity = 90);background-color:#e4e4e4}.cke_dialog .FlashPreviewBox{white-space:normal;border:1px solid #bcbcbc;overflow:auto;height:160px;width:390px;padding:2px;background-color:white}.cke_dialog .cke_pastetext{width:346px;height:170px}.cke_dialog .cke_pastetext textarea{width:340px;height:170px;resize:none}.cke_dialog iframe.cke_pasteframe{width:346px;height:130px;background-color:white;border:1px solid #aeb3b9;border-radius:3px}.cke_dialog .cke_hand{cursor:pointer}.cke_disabled{color:#a0a0a0}.cke_dialog_body .cke_label{display:none}.cke_dialog_body label{display:inline;cursor:default;letter-spacing:.3px}.cke_dialog_body label+.cke_dialog_ui_labeled_content{margin-top:2px}.cke_dialog_contents_body .cke_dialog_ui_text,.cke_dialog_contents_body .cke_dialog_ui_select,.cke_dialog_contents_body .cke_dialog_ui_hbox_last>a.cke_dialog_ui_button{margin-top:4px}a.cke_smile{overflow:hidden;display:block;text-align:center;padding:.3em 0}a.cke_smile img{vertical-align:middle}a.cke_specialchar{cursor:inherit;display:block;height:1.25em;padding:.2em .3em;text-align:center}a.cke_smile,a.cke_specialchar{border:2px solid transparent}a.cke_smile:hover,a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:hover,a.cke_specialchar:focus,a.cke_specialchar:active{background:#fff;outline:0}a.cke_smile:hover,a.cke_specialchar:hover{border-color:#888}a.cke_smile:focus,a.cke_smile:active,a.cke_specialchar:focus,a.cke_specialchar:active{border-color:#139ff7}.cke_dialog_contents a.colorChooser{display:block;margin-top:6px;margin-left:10px;width:80px}.cke_rtl .cke_dialog_contents a.colorChooser{margin-right:10px}.cke_iframe_shim{display:block;position:absolute;top:0;left:0;z-index:-1;filter:alpha(opacity = 0);width:100%;height:100%}.cke_dialog_contents_body .cke_accessibility_legend{margin:2px 7px 2px 2px}.cke_dialog_contents_body .cke_accessibility_legend:focus,.cke_dialog_contents_body .cke_accessibility_legend:active{outline:0;border:2px solid #139ff7;margin:0 5px 0 0}.cke_dialog_contents_body input[type=file]:focus,.cke_dialog_contents_body input[type=file]:active{border:2px solid #139ff7}.cke_dialog_find_fieldset{margin-top:10px!important}.cke_dialog_image_ratiolock{margin-top:52px!important}.cke_dialog_forms_select_order label.cke_dialog_ui_labeled_label{margin-left:0}.cke_dialog_forms_select_order div.cke_dialog_ui_input_select{width:100%}.cke_dialog_forms_select_order_txtsize .cke_dialog_ui_hbox_last{padding-top:4px}.cke_dialog_image_url .cke_dialog_ui_hbox_last,.cke_dialog_flash_url .cke_dialog_ui_hbox_last{vertical-align:bottom}a.cke_dialog_ui_button.cke_dialog_image_browse{margin-top:10px}.cke_dialog_contents_body .cke_tpl_list{border:#bcbcbc 1px solid;margin:1px}.cke_dialog_contents_body .cke_tpl_list:focus,.cke_dialog_contents_body .cke_tpl_list:active{outline:0;margin:0;border:2px solid #139ff7}.cke_dialog_contents_body .cke_tpl_list a:focus,.cke_dialog_contents_body .cke_tpl_list a:active{outline:0}.cke_dialog_contents_body .cke_tpl_list a:focus .cke_tpl_item,.cke_dialog_contents_body .cke_tpl_list a:active .cke_tpl_item{border:2px solid #139ff7;padding:6px}.cke_rtl input.cke_dialog_ui_input_text,.cke_rtl input.cke_dialog_ui_input_password,.cke_rtl input.cke_dialog_ui_input_tel{padding-right:2px}.cke_rtl div.cke_dialog_ui_input_text,.cke_rtl div.cke_dialog_ui_input_password,.cke_rtl div.cke_dialog_ui_input_tel{padding-left:2px}.cke_rtl div.cke_dialog_ui_input_text{padding-right:1px}.cke_rtl .cke_dialog_ui_vbox_child,.cke_rtl .cke_dialog_ui_hbox_child,.cke_rtl .cke_dialog_ui_hbox_first,.cke_rtl .cke_dialog_ui_hbox_last{padding-right:2px!important}.cke_hc .cke_dialog_title,.cke_hc .cke_dialog_footer,.cke_hc a.cke_dialog_tab,.cke_hc a.cke_dialog_ui_button,.cke_hc a.cke_dialog_ui_button:hover,.cke_hc a.cke_dialog_ui_button_ok,.cke_hc a.cke_dialog_ui_button_ok:hover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_hc div.cke_dialog_ui_input_text,.cke_hc div.cke_dialog_ui_input_password,.cke_hc div.cke_dialog_ui_input_tel,.cke_hc div.cke_dialog_ui_input_textarea,.cke_hc div.cke_dialog_ui_input_select,.cke_hc div.cke_dialog_ui_input_file{border:0}.cke_dialog_footer{filter:""} \ No newline at end of file diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/editor.css b/ui/src/vendor/ckeditor/skins/moono-lisa/editor.css deleted file mode 100644 index 64bc371755..0000000000 --- a/ui/src/vendor/ckeditor/skins/moono-lisa/editor.css +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license -*/ -.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_button__about_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -144px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -168px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -192px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -216px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -240px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -264px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -288px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -312px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -336px !important;}.cke_button__image_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -360px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -384px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -408px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -432px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -456px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -480px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -504px !important;}.cke_button__link_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -528px !important;}.cke_button__unlink_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -552px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -576px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -600px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -624px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -648px !important;}.cke_button__maximize_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -672px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -696px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -720px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -744px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -768px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -792px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -816px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -840px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -864px !important;}.cke_button__scayt_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -888px !important;}.cke_button__table_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -912px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -936px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -960px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -984px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1008px !important;}.cke_button__autocomplete_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1032px !important;}.cke_button__autoformat_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1056px !important;}.cke_button__commentselectedrange_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1080px !important;}.cke_button__searchcode_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1104px !important;}.cke_button__uncommentselectedrange_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1128px !important;}.cke_button__creatediv_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1152px !important;}.cke_button__iframe_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1176px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1200px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1224px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1248px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1272px !important;}.cke_button__mediaembed_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1296px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1320px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1344px !important;}.cke_button__spellchecker_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1368px !important;}.cke_button__bgcolor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1392px !important;}.cke_button__textcolor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1416px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_hidpi .cke_button__autocomplete_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2064px !important;}.cke_hidpi .cke_button__autoformat_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2112px !important;}.cke_hidpi .cke_button__commentselectedrange_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2160px !important;}.cke_hidpi .cke_button__searchcode_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2208px !important;}.cke_hidpi .cke_button__uncommentselectedrange_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2256px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_hidpi .cke_button__mediaembed_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1416px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/editor_gecko.css b/ui/src/vendor/ckeditor/skins/moono-lisa/editor_gecko.css deleted file mode 100644 index 29e1068dda..0000000000 --- a/ui/src/vendor/ckeditor/skins/moono-lisa/editor_gecko.css +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license -*/ -.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}.cke_bottom{padding-bottom:3px}.cke_combo_text{margin-bottom:-1px;margin-top:1px}.cke_button__about_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -144px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -168px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -192px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -216px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -240px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -264px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -288px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -312px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -336px !important;}.cke_button__image_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -360px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -384px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -408px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -432px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -456px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -480px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -504px !important;}.cke_button__link_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -528px !important;}.cke_button__unlink_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -552px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -576px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -600px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -624px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -648px !important;}.cke_button__maximize_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -672px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -696px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -720px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -744px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -768px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -792px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -816px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -840px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -864px !important;}.cke_button__scayt_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -888px !important;}.cke_button__table_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -912px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -936px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -960px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -984px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1008px !important;}.cke_button__autocomplete_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1032px !important;}.cke_button__autoformat_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1056px !important;}.cke_button__commentselectedrange_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1080px !important;}.cke_button__searchcode_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1104px !important;}.cke_button__uncommentselectedrange_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1128px !important;}.cke_button__creatediv_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1152px !important;}.cke_button__iframe_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1176px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1200px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1224px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1248px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1272px !important;}.cke_button__mediaembed_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1296px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1320px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1344px !important;}.cke_button__spellchecker_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1368px !important;}.cke_button__bgcolor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1392px !important;}.cke_button__textcolor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1416px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_hidpi .cke_button__autocomplete_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2064px !important;}.cke_hidpi .cke_button__autoformat_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2112px !important;}.cke_hidpi .cke_button__commentselectedrange_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2160px !important;}.cke_hidpi .cke_button__searchcode_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2208px !important;}.cke_hidpi .cke_button__uncommentselectedrange_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2256px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_hidpi .cke_button__mediaembed_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1416px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/editor_ie.css b/ui/src/vendor/ckeditor/skins/moono-lisa/editor_ie.css deleted file mode 100644 index dfba182269..0000000000 --- a/ui/src/vendor/ckeditor/skins/moono-lisa/editor_ie.css +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license -*/ -.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_button__about_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -144px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -168px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -192px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -216px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -240px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -264px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -288px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -312px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -336px !important;}.cke_button__image_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -360px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -384px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -408px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -432px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -456px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -480px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -504px !important;}.cke_button__link_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -528px !important;}.cke_button__unlink_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -552px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -576px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -600px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -624px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -648px !important;}.cke_button__maximize_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -672px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -696px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -720px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -744px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -768px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -792px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -816px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -840px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -864px !important;}.cke_button__scayt_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -888px !important;}.cke_button__table_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -912px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -936px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -960px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -984px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1008px !important;}.cke_button__autocomplete_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1032px !important;}.cke_button__autoformat_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1056px !important;}.cke_button__commentselectedrange_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1080px !important;}.cke_button__searchcode_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1104px !important;}.cke_button__uncommentselectedrange_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1128px !important;}.cke_button__creatediv_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1152px !important;}.cke_button__iframe_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1176px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1200px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1224px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1248px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1272px !important;}.cke_button__mediaembed_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1296px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1320px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1344px !important;}.cke_button__spellchecker_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1368px !important;}.cke_button__bgcolor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1392px !important;}.cke_button__textcolor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1416px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_hidpi .cke_button__autocomplete_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2064px !important;}.cke_hidpi .cke_button__autoformat_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2112px !important;}.cke_hidpi .cke_button__commentselectedrange_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2160px !important;}.cke_hidpi .cke_button__searchcode_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2208px !important;}.cke_hidpi .cke_button__uncommentselectedrange_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2256px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_hidpi .cke_button__mediaembed_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1416px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/editor_ie8.css b/ui/src/vendor/ckeditor/skins/moono-lisa/editor_ie8.css deleted file mode 100644 index 4fea324130..0000000000 --- a/ui/src/vendor/ckeditor/skins/moono-lisa/editor_ie8.css +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license -*/ -.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_toolbox_collapser .cke_arrow{border-width:4px}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{border-width:3px}.cke_toolbox_collapser .cke_arrow{margin-top:0}.cke_toolbar{position:relative}.cke_rtl .cke_toolbar_end{right:auto;left:0}.cke_toolbar_end:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:1px;right:2px}.cke_rtl .cke_toolbar_end:after{right:auto;left:2px}.cke_hc .cke_toolbar_end:after{top:2px;right:5px;border-color:#000}.cke_hc.cke_rtl .cke_toolbar_end:after{right:auto;left:5px}.cke_combo+.cke_toolbar_end:after,.cke_toolbar.cke_toolbar_last .cke_toolbar_end:after{content:none;border:0}.cke_combo+.cke_toolgroup+.cke_toolbar_end:after{right:0}.cke_rtl .cke_combo+.cke_toolgroup+.cke_toolbar_end:after{right:auto;left:0}.cke_button__about_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -144px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -168px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -192px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -216px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -240px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -264px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -288px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -312px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -336px !important;}.cke_button__image_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -360px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -384px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -408px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -432px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -456px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -480px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -504px !important;}.cke_button__link_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -528px !important;}.cke_button__unlink_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -552px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -576px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -600px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -624px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -648px !important;}.cke_button__maximize_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -672px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -696px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -720px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -744px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -768px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -792px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -816px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -840px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -864px !important;}.cke_button__scayt_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -888px !important;}.cke_button__table_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -912px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -936px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -960px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -984px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1008px !important;}.cke_button__autocomplete_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1032px !important;}.cke_button__autoformat_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1056px !important;}.cke_button__commentselectedrange_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1080px !important;}.cke_button__searchcode_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1104px !important;}.cke_button__uncommentselectedrange_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1128px !important;}.cke_button__creatediv_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1152px !important;}.cke_button__iframe_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1176px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1200px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1224px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1248px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1272px !important;}.cke_button__mediaembed_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1296px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1320px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1344px !important;}.cke_button__spellchecker_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1368px !important;}.cke_button__bgcolor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1392px !important;}.cke_button__textcolor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1416px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_hidpi .cke_button__autocomplete_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2064px !important;}.cke_hidpi .cke_button__autoformat_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2112px !important;}.cke_hidpi .cke_button__commentselectedrange_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2160px !important;}.cke_hidpi .cke_button__searchcode_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2208px !important;}.cke_hidpi .cke_button__uncommentselectedrange_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2256px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_hidpi .cke_button__mediaembed_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1416px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/editor_iequirks.css b/ui/src/vendor/ckeditor/skins/moono-lisa/editor_iequirks.css deleted file mode 100644 index 9af57a8b91..0000000000 --- a/ui/src/vendor/ckeditor/skins/moono-lisa/editor_iequirks.css +++ /dev/null @@ -1,5 +0,0 @@ -/* -Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. -For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license -*/ -.cke_reset{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none}.cke_reset_all,.cke_reset_all *,.cke_reset_all a,.cke_reset_all textarea{margin:0;padding:0;border:0;background:transparent;text-decoration:none;width:auto;height:auto;vertical-align:baseline;box-sizing:content-box;position:static;transition:none;border-collapse:collapse;font:normal normal normal 12px Arial,Helvetica,Tahoma,Verdana,Sans-Serif;color:#000;text-align:left;white-space:nowrap;cursor:auto;float:none}.cke_reset_all .cke_rtl *{text-align:right}.cke_reset_all iframe{vertical-align:inherit}.cke_reset_all textarea{white-space:pre-wrap}.cke_reset_all textarea,.cke_reset_all input[type="text"],.cke_reset_all input[type="password"]{cursor:text}.cke_reset_all textarea[disabled],.cke_reset_all input[type="text"][disabled],.cke_reset_all input[type="password"][disabled]{cursor:default}.cke_reset_all fieldset{padding:10px;border:2px groove #e0dfe3}.cke_reset_all select{box-sizing:border-box}.cke_reset_all table{table-layout:auto}.cke_chrome{display:block;border:1px solid #d1d1d1;padding:0}.cke_inner{display:block;background:#fff;padding:0;-webkit-touch-callout:none}.cke_float{border:0}.cke_float .cke_inner{padding-bottom:0}.cke_top,.cke_contents,.cke_bottom{display:block;overflow:hidden}.cke_top{border-bottom:1px solid #d1d1d1;background:#f8f8f8;padding:6px 8px 2px;white-space:normal}.cke_float .cke_top{border:1px solid #d1d1d1}.cke_bottom{padding:6px 8px 2px;position:relative;border-top:1px solid #d1d1d1;background:#f8f8f8}.cke_browser_ios .cke_contents{overflow-y:auto;-webkit-overflow-scrolling:touch}.cke_resizer{width:0;height:0;overflow:hidden;border-width:10px 10px 0 0;border-color:transparent #bcbcbc transparent transparent;border-style:dashed solid dashed dashed;font-size:0;vertical-align:bottom;margin-top:6px;margin-bottom:2px}.cke_hc .cke_resizer{font-size:15px;width:auto;height:auto;border-width:0}.cke_resizer_ltr{cursor:se-resize;float:right;margin-right:-4px}.cke_resizer_rtl{border-width:10px 0 0 10px;border-color:transparent transparent transparent #bcbcbc;border-style:dashed dashed dashed solid;cursor:sw-resize;float:left;margin-left:-4px;right:auto}.cke_wysiwyg_div{display:block;height:100%;overflow:auto;padding:0 8px;outline-style:none;box-sizing:border-box}.cke_panel{visibility:visible;width:120px;height:100px;overflow:hidden;background-color:#fff;border:1px solid #d1d1d1}.cke_menu_panel{padding:0;margin:0}.cke_combopanel{width:150px;height:170px}.cke_panel_frame{width:100%;height:100%;font-size:12px;overflow:auto;overflow-x:hidden}.cke_panel_container{overflow-y:auto;overflow-x:hidden}.cke_panel_block:focus{outline:0}.cke_panel_list{margin:0;padding:0;list-style-type:none;white-space:nowrap}.cke_panel_listItem{margin:0;padding:0}.cke_panel_listItem a{padding:6px 7px;display:block;color:inherit!important;text-decoration:none;overflow:hidden;text-overflow:ellipsis}.cke_hc .cke_panel_listItem a{border-style:none}.cke_panel_listItem.cke_selected a,.cke_panel_listItem a:hover,.cke_panel_listItem a:focus,.cke_panel_listItem a:active{background-color:#e9e9e9}.cke_panel_listItem a:focus{outline:1px dotted #000}.cke_hc .cke_panel_listItem a:hover,.cke_hc .cke_panel_listItem a:focus,.cke_hc .cke_panel_listItem a:active{border:2px solid;padding:4px 5px}.cke_panel_listItem p,.cke_panel_listItem h1,.cke_panel_listItem h2,.cke_panel_listItem h3,.cke_panel_listItem h4,.cke_panel_listItem h5,.cke_panel_listItem h6,.cke_panel_listItem pre{margin-top:0;margin-bottom:0}.cke_panel_grouptitle{cursor:default;font-size:11px;font-weight:bold;white-space:nowrap;margin:0;padding:6px 6px 7px 6px;color:#484848;border-bottom:1px solid #d1d1d1;background:#f8f8f8}.cke_colorblock{padding:10px;font-size:11px;font-family:'Microsoft Sans Serif',Tahoma,Arial,Verdana,Sans-Serif}.cke_colorblock,.cke_colorblock a{text-decoration:none;color:#000}a.cke_colorbox{padding:2px;float:left;width:20px;height:20px}.cke_rtl a.cke_colorbox{float:right}a:hover.cke_colorbox,a:focus.cke_colorbox,a:active.cke_colorbox{outline:0;padding:0;border:2px solid #139ff7}a:hover.cke_colorbox{border-color:#bcbcbc}span.cke_colorbox{width:20px;height:20px;float:left}.cke_rtl span.cke_colorbox{float:right}a.cke_colorauto,a.cke_colormore{border:#fff 1px solid;padding:3px;display:block;cursor:pointer}a.cke_colorauto{padding:0;border:1px solid transparent;margin-bottom:6px;height:26px;line-height:26px}a.cke_colormore{margin-top:10px;height:20px;line-height:19px}a:hover.cke_colorauto,a:hover.cke_colormore,a:focus.cke_colorauto,a:focus.cke_colormore,a:active.cke_colorauto,a:active.cke_colormore{outline:0;border:#139ff7 1px solid;background-color:#f8f8f8}a:hover.cke_colorauto,a:hover.cke_colormore{border-color:#bcbcbc}.cke_colorauto span.cke_colorbox{width:18px;height:18px;border:1px solid #808080;margin-left:1px;margin-top:3px}.cke_rtl .cke_colorauto span.cke_colorbox{margin-left:0;margin-right:1px}span.cke_colorbox[style*="#ffffff"],span.cke_colorbox[style*="#FFFFFF"],span.cke_colorbox[style="background-color:#fff"],span.cke_colorbox[style="background-color:#FFF"],span.cke_colorbox[style*="rgb(255,255,255)"],span.cke_colorbox[style*="rgb(255, 255, 255)"]{border:1px solid #808080;width:18px;height:18px}.cke_toolbar{float:left}.cke_rtl .cke_toolbar{float:right}.cke_toolgroup{border:0;float:left;margin:1px 2px 6px 0;padding-right:3px}.cke_rtl .cke_toolgroup{float:right;margin:1px 0 6px 2px;padding-left:3px;padding-right:0}.cke_hc .cke_toolgroup{margin-right:5px;margin-bottom:5px}.cke_hc.cke_rtl .cke_toolgroup{margin-right:0;margin-left:5px}a.cke_button{display:inline-block;height:18px;padding:4px 6px;outline:0;cursor:default;float:left;border:0;position:relative}a.cke_button_expandable{padding:4px 5px}.cke_rtl a.cke_button{float:right}.cke_hc a.cke_button{border:1px solid black;padding:3px 5px;margin:0 3px 5px 0}.cke_hc.cke_rtl a.cke_button{margin:0 0 5px 3px}a.cke_button_on{background:#fff;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_on{padding:3px 4px}a.cke_button_off:hover,a.cke_button_off:focus,a.cke_button_off:active{background:#e5e5e5;border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_off:hover,a.cke_button_expandable.cke_button_off:focus,a.cke_button_expandable.cke_button_off:active{padding:3px 4px}.cke_hc a.cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active{background:#e5e5e5;border:3px solid #000;padding:1px 3px}a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{border:0;padding:4px 6px;background-color:transparent}a.cke_button_expandable.cke_button_disabled:hover,a.cke_button_expandable.cke_button_disabled:active{padding:4px 5px}a.cke_button_disabled:focus{border:1px #bcbcbc solid;padding:3px 5px}a.cke_button_expandable.cke_button_disabled:focus{padding:3px 4px}.cke_hc a.cke_button_disabled:hover,.cke_hc a.cke_button_disabled:focus,.cke_hc a.cke_button_disabled:active{border:1px solid #acacac;padding:3px 5px;margin:0 3px 5px 0}.cke_hc a.cke_button_disabled:focus{border:3px solid #000;padding:1px 3px}.cke_hc.cke_rtl a.cke_button_disabled:hover,.cke_hc.cke_rtl a.cke_button_disabled:focus,.cke_hc.cke_rtl a.cke_button_disabled:active{margin:0 0 5px 3px}a.cke_button_disabled .cke_button_icon,a.cke_button_disabled .cke_button_arrow{opacity:.3}.cke_hc a.cke_button_disabled{border-color:#acacac}.cke_hc a.cke_button_disabled .cke_button_icon,.cke_hc a.cke_button_disabled .cke_button_label{opacity:.5}.cke_toolgroup a.cke_button:last-child:after,.cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:4px;top:0;right:-3px}.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-right:0;right:auto;border-left:1px solid #bcbcbc;top:0;left:-3px}.cke_hc .cke_toolgroup a.cke_button:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{border-color:#000;top:0;right:-7px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_disabled:hover:last-child:after{top:0;right:auto;left:-7px}.cke_toolgroup a.cke_button:hover:last-child:after,.cke_toolgroup a.cke_button:focus:last-child:after,.cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:-4px}.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_rtl .cke_toolgroup a.cke_button:focus:last-child:after,.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-1px;right:auto;left:-4px}.cke_hc .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:-9px}.cke_hc.cke_rtl .cke_toolgroup a.cke_button:hover:last-child:after,.cke_hc.cke_rtl .cke_toolgroup a.cke_button.cke_button_on:last-child:after{top:-2px;right:auto;left:-9px}.cke_toolbar.cke_toolbar_last .cke_toolgroup a.cke_button:last-child:after{content:none;border:0;width:0;height:0}.cke_button_icon{cursor:inherit;background-repeat:no-repeat;margin-top:1px;width:16px;height:16px;float:left;display:inline-block}.cke_rtl .cke_button_icon{float:right}.cke_hc .cke_button_icon{display:none}.cke_button_label{display:none;padding-left:3px;margin-top:1px;line-height:17px;vertical-align:middle;float:left;cursor:default;color:#484848}.cke_rtl .cke_button_label{padding-right:3px;padding-left:0;float:right}.cke_hc .cke_button_label{padding:0;display:inline-block;font-size:12px}.cke_button_arrow{display:inline-block;margin:8px 0 0 3px;width:0;height:0;cursor:default;vertical-align:top;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_rtl .cke_button_arrow{margin-right:5px;margin-left:0}.cke_hc .cke_button_arrow{font-size:10px;margin:3px 0 0 3px;width:auto;border:0}.cke_toolbar_separator{float:left;background-color:#bcbcbc;margin:4px 2px 0 2px;height:18px;width:1px}.cke_rtl .cke_toolbar_separator{float:right}.cke_hc .cke_toolbar_separator{background-color:#000;margin-left:2px;margin-right:5px;margin-bottom:9px}.cke_hc.cke_rtl .cke_toolbar_separator{margin-left:5px;margin-right:2px}.cke_toolbar_break{display:block;clear:left}.cke_rtl .cke_toolbar_break{clear:right}a.cke_toolbox_collapser{width:12px;height:11px;float:right;margin:11px 0 0;font-size:0;cursor:default;text-align:center;border:1px solid #bcbcbc}.cke_rtl .cke_toolbox_collapser{float:left}.cke_toolbox_collapser:hover{background:#e5e5e5}.cke_toolbox_collapser.cke_toolbox_collapser_min{margin:0 2px 4px}.cke_toolbox_collapser .cke_arrow{display:inline-block;height:0;width:0;font-size:0;margin-top:1px;border:3px solid transparent;border-bottom-color:#484848}.cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow{margin-top:4px;border-bottom-color:transparent;border-top-color:#484848}.cke_hc .cke_toolbox_collapser .cke_arrow{font-size:8px;width:auto;border:0;margin-top:0}.cke_menuitem span{cursor:default}.cke_menubutton{display:block}.cke_hc .cke_menubutton{padding:2px}.cke_menubutton:hover,.cke_menubutton:focus,.cke_menubutton:active{background-color:#e9e9e9;display:block;outline:1px dotted}.cke_menubutton:hover{outline:0}.cke_hc .cke_menubutton:hover,.cke_hc .cke_menubutton:focus,.cke_hc .cke_menubutton:active{border:2px solid;padding:0}.cke_menubutton_disabled:hover,.cke_menubutton_disabled:focus,.cke_menubutton_disabled:active{background-color:transparent;outline:0}.cke_menubutton_inner{display:table-row}.cke_menubutton_icon,.cke_menubutton_label,.cke_menuarrow{display:table-cell}.cke_menubutton_icon{background-color:#f8f8f8;padding:6px 4px}.cke_hc .cke_menubutton_icon{height:16px;width:0;padding:4px 0}.cke_menubutton:hover .cke_menubutton_icon,.cke_menubutton:focus .cke_menubutton_icon,.cke_menubutton:active .cke_menubutton_icon{background-color:#e9e9e9}.cke_menubutton_disabled:hover .cke_menubutton_icon,.cke_menubutton_disabled:focus .cke_menubutton_icon,.cke_menubutton_disabled:active .cke_menubutton_icon{background-color:#f8f8f8;outline:0}.cke_menuitem .cke_menubutton_on{background-color:#e9e9e9;border:1px solid #dedede;outline:0}.cke_menubutton_on .cke_menubutton_icon{padding-right:3px;background-color:#e9e9e9}.cke_menubutton_label{padding:0 5px;background-color:transparent;width:100%;vertical-align:middle}.cke_menubutton_shortcut{color:#979797}.cke_menubutton_disabled .cke_menubutton_label{opacity:.3;filter:alpha(opacity=30)}.cke_panel_frame .cke_menubutton_label{display:none}.cke_menuseparator{background-color:#d1d1d1;height:1px}.cke_menuarrow{background:transparent url(images/arrow.png) no-repeat 0 10px;padding:0 5px}.cke_rtl .cke_menuarrow{background-position:5px -13px;background-repeat:no-repeat}.cke_hc .cke_menuarrow{background-image:none}.cke_menuarrow span{display:none}.cke_hc .cke_menuarrow span{vertical-align:middle;display:inline}.cke_combo{display:inline-block;float:left;position:relative;margin-bottom:5px}.cke_rtl .cke_combo{float:right}.cke_hc .cke_combo{margin-top:1px;margin-bottom:10px}.cke_combo:after{content:"";position:absolute;height:18px;width:0;border-right:1px solid #bcbcbc;margin-top:5px;top:0;right:0}.cke_rtl .cke_combo:after{border-right:0;border-left:1px solid #bcbcbc;right:auto;left:0}.cke_hc .cke_combo:after{border-color:#000}a.cke_combo_button{cursor:default;display:inline-block;float:left;margin:0;padding:1px}.cke_rtl a.cke_combo_button{float:right}.cke_hc a.cke_combo_button{padding:4px}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:hover,.cke_combo_off a.cke_combo_button:focus,.cke_combo_off a.cke_combo_button:active{background:#e5e5e5;border:1px solid #bcbcbc;padding:0 0 0 1px;margin-left:-1px}.cke_combo_off a.cke_combo_button:focus{outline:0}.cke_combo_on a.cke_combo_button,.cke_combo_off a.cke_combo_button:active{background:#fff}.cke_rtl .cke_combo_on a.cke_combo_button,.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:0 1px 0 0;margin-left:0;margin-right:-1px}.cke_hc .cke_combo_on a.cke_combo_button,.cke_hc .cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_combo_off a.cke_combo_button:active{border:3px solid #000;padding:1px 1px 1px 2px}.cke_hc.cke_rtl .cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_combo_off a.cke_combo_button:active{padding:1px 2px 1px 1px}.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 0 0 3px;margin-left:-3px}.cke_rtl .cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_rtl .cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0 3px 0 0;margin-left:0;margin-right:-3px}.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 1px 1px 7px;margin-left:-6px}.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc.cke_rtl .cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px 7px 1px 1px;margin-left:0;margin-right:-6px}.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:0;margin:0}.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbox .cke_toolbar:first-child>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_on a.cke_combo_button,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:hover,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:focus,.cke_hc .cke_toolbar_break+.cke_toolbar>.cke_toolbar_start+.cke_combo_off a.cke_combo_button:active{padding:1px;margin:0}.cke_toolbar .cke_combo+.cke_toolbar_end,.cke_toolbar .cke_combo+.cke_toolgroup{margin-right:0;margin-left:2px}.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:2px}.cke_hc .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:5px}.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolbar_end,.cke_hc.cke_rtl .cke_toolbar .cke_combo+.cke_toolgroup{margin-left:0;margin-right:5px}.cke_toolbar.cke_toolbar_last .cke_combo:nth-last-child(-n+2):after{content:none;border:0;width:0;height:0}.cke_combo_text{line-height:26px;padding-left:10px;text-overflow:ellipsis;overflow:hidden;float:left;cursor:default;color:#484848;width:60px}.cke_rtl .cke_combo_text{float:right;text-align:right;padding-left:0;padding-right:10px}.cke_hc .cke_combo_text{line-height:18px;font-size:12px}.cke_combo_open{cursor:default;display:inline-block;font-size:0;height:19px;line-height:17px;margin:1px 10px 1px;width:5px}.cke_hc .cke_combo_open{height:12px}.cke_combo_arrow{cursor:default;margin:11px 0 0;float:left;height:0;width:0;font-size:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:3px solid #484848}.cke_hc .cke_combo_arrow{font-size:10px;width:auto;border:0;margin-top:3px}.cke_combo_label{display:none;float:left;line-height:26px;vertical-align:top;margin-right:5px}.cke_rtl .cke_combo_label{float:right;margin-left:5px;margin-right:0}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{opacity:.3}.cke_path{float:left;margin:-2px 0 2px}a.cke_path_item,span.cke_path_empty{display:inline-block;float:left;padding:3px 4px;margin-right:2px;cursor:default;text-decoration:none;outline:0;border:0;color:#484848;font-weight:bold;font-size:11px}.cke_rtl .cke_path,.cke_rtl .cke_path_item,.cke_rtl .cke_path_empty{float:right}a.cke_path_item:hover,a.cke_path_item:focus,a.cke_path_item:active{background-color:#e5e5e5}.cke_hc a.cke_path_item:hover,.cke_hc a.cke_path_item:focus,.cke_hc a.cke_path_item:active{border:2px solid;padding:1px 2px}.cke_button__source_label,.cke_button__sourcedialog_label{display:inline}.cke_combopanel__fontsize{width:135px}textarea.cke_source{font-family:'Courier New',Monospace;font-size:small;background-color:#fff;white-space:pre-wrap;border:0;padding:0;margin:0;display:block}.cke_wysiwyg_frame,.cke_wysiwyg_div{background-color:#fff}.cke_notifications_area{pointer-events:none}.cke_notification{pointer-events:auto;position:relative;margin:10px;width:300px;color:white;text-align:center;opacity:.95;filter:alpha(opacity = 95);-webkit-animation:fadeIn .7s;animation:fadeIn .7s}.cke_notification_message a{color:#12306f}@-webkit-keyframes fadeIn{from{opacity:.4}to{opacity:.95}}@keyframes fadeIn{from{opacity:.4}to{opacity:.95}}.cke_notification_success{background:#72b572;border:1px solid #63a563}.cke_notification_warning{background:#c83939;border:1px solid #902b2b}.cke_notification_info{background:#2e9ad0;border:1px solid #0f74a8}.cke_notification_info span.cke_notification_progress{background-color:#0f74a8;display:block;padding:0;margin:0;height:100%;overflow:hidden;position:absolute;z-index:1}.cke_notification_message{position:relative;margin:4px 23px 3px;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;z-index:4;text-overflow:ellipsis;overflow:hidden}.cke_notification_close{background-image:url(images/close.png);background-repeat:no-repeat;background-position:50%;position:absolute;cursor:pointer;text-align:center;height:20px;width:20px;top:1px;right:1px;padding:0;margin:0;z-index:5;opacity:.6;filter:alpha(opacity = 60)}.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_notification_close span{display:none}.cke_notification_warning a.cke_notification_close{opacity:.8;filter:alpha(opacity = 80)}.cke_notification_warning a.cke_notification_close:hover{opacity:1;filter:alpha(opacity = 100)}.cke_chrome{visibility:inherit}.cke_voice_label{display:none}legend.cke_voice_label{display:none}a.cke_button_disabled,a.cke_button_disabled:hover,a.cke_button_disabled:focus,a.cke_button_disabled:active{filter:alpha(opacity = 30)}.cke_button_disabled .cke_button_icon{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff,endColorstr=#00ffffff)}.cke_button_off:hover,.cke_button_off:focus,.cke_button_off:active{filter:alpha(opacity = 100)}.cke_combo_disabled .cke_combo_inlinelabel,.cke_combo_disabled .cke_combo_open{filter:alpha(opacity = 30)}.cke_toolbox_collapser{border:1px solid #a6a6a6}.cke_toolbox_collapser .cke_arrow{margin-top:1px}.cke_hc .cke_top,.cke_hc .cke_bottom,.cke_hc .cke_combo_button,.cke_hc a.cke_combo_button:hover,.cke_hc a.cke_combo_button:focus,.cke_hc .cke_toolgroup,.cke_hc .cke_button_on,.cke_hc a.cke_button_off:hover,.cke_hc a.cke_button_off:focus,.cke_hc a.cke_button_off:active,.cke_hc .cke_toolbox_collapser,.cke_hc .cke_toolbox_collapser:hover,.cke_hc .cke_panel_grouptitle{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.cke_top,.cke_contents,.cke_bottom{width:100%}.cke_button_arrow{font-size:0}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_button,.cke_rtl .cke_button *,.cke_rtl .cke_combo,.cke_rtl .cke_combo *,.cke_rtl .cke_path_item,.cke_rtl .cke_path_item *,.cke_rtl .cke_path_empty{float:none}.cke_rtl .cke_toolgroup,.cke_rtl .cke_toolbar_separator,.cke_rtl .cke_combo_button,.cke_rtl .cke_combo_button *,.cke_rtl .cke_button,.cke_rtl .cke_button_icon{display:inline-block;vertical-align:top}.cke_rtl .cke_button_icon{float:none}.cke_resizer{width:10px}.cke_source{white-space:normal}.cke_bottom{position:static}.cke_colorbox{font-size:0}.cke_button__about_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -0px !important;}.cke_button__bold_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -24px !important;}.cke_button__italic_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -48px !important;}.cke_button__strike_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -72px !important;}.cke_button__subscript_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -96px !important;}.cke_button__superscript_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -120px !important;}.cke_button__underline_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -144px !important;}.cke_button__blockquote_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -168px !important;}.cke_rtl .cke_button__copy_icon, .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -192px !important;}.cke_ltr .cke_button__copy_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -216px !important;}.cke_rtl .cke_button__cut_icon, .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -240px !important;}.cke_ltr .cke_button__cut_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -264px !important;}.cke_rtl .cke_button__paste_icon, .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -288px !important;}.cke_ltr .cke_button__paste_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -312px !important;}.cke_button__horizontalrule_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -336px !important;}.cke_button__image_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -360px !important;}.cke_rtl .cke_button__indent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -384px !important;}.cke_ltr .cke_button__indent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -408px !important;}.cke_rtl .cke_button__outdent_icon, .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -432px !important;}.cke_ltr .cke_button__outdent_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -456px !important;}.cke_rtl .cke_button__anchor_icon, .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -480px !important;}.cke_ltr .cke_button__anchor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -504px !important;}.cke_button__link_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -528px !important;}.cke_button__unlink_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -552px !important;}.cke_rtl .cke_button__bulletedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -576px !important;}.cke_ltr .cke_button__bulletedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -600px !important;}.cke_rtl .cke_button__numberedlist_icon, .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -624px !important;}.cke_ltr .cke_button__numberedlist_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -648px !important;}.cke_button__maximize_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -672px !important;}.cke_rtl .cke_button__pastetext_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -696px !important;}.cke_ltr .cke_button__pastetext_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -720px !important;}.cke_rtl .cke_button__pastefromword_icon, .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -744px !important;}.cke_ltr .cke_button__pastefromword_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -768px !important;}.cke_button__removeformat_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -792px !important;}.cke_rtl .cke_button__source_icon, .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -816px !important;}.cke_ltr .cke_button__source_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -840px !important;}.cke_button__specialchar_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -864px !important;}.cke_button__scayt_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -888px !important;}.cke_button__table_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -912px !important;}.cke_rtl .cke_button__redo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -936px !important;}.cke_ltr .cke_button__redo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -960px !important;}.cke_rtl .cke_button__undo_icon, .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -984px !important;}.cke_ltr .cke_button__undo_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1008px !important;}.cke_button__autocomplete_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1032px !important;}.cke_button__autoformat_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1056px !important;}.cke_button__commentselectedrange_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1080px !important;}.cke_button__searchcode_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1104px !important;}.cke_button__uncommentselectedrange_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1128px !important;}.cke_button__creatediv_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1152px !important;}.cke_button__iframe_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1176px !important;}.cke_button__justifyblock_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1200px !important;}.cke_button__justifycenter_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1224px !important;}.cke_button__justifyleft_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1248px !important;}.cke_button__justifyright_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1272px !important;}.cke_button__mediaembed_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1296px !important;}.cke_rtl .cke_button__showblocks_icon, .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1320px !important;}.cke_ltr .cke_button__showblocks_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1344px !important;}.cke_button__spellchecker_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1368px !important;}.cke_button__bgcolor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1392px !important;}.cke_button__textcolor_icon {background: url(icons.png?t=17a1555f7f) no-repeat 0 -1416px !important;}.cke_hidpi .cke_button__about_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -0px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bold_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -24px !important;background-size: 16px !important;}.cke_hidpi .cke_button__italic_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -48px !important;background-size: 16px !important;}.cke_hidpi .cke_button__strike_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -72px !important;background-size: 16px !important;}.cke_hidpi .cke_button__subscript_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -96px !important;background-size: 16px !important;}.cke_hidpi .cke_button__superscript_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -120px !important;background-size: 16px !important;}.cke_hidpi .cke_button__underline_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -144px !important;background-size: 16px !important;}.cke_hidpi .cke_button__blockquote_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -168px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__copy_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__copy_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -192px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__copy_icon,.cke_ltr.cke_hidpi .cke_button__copy_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -216px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__cut_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__cut_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -240px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__cut_icon,.cke_ltr.cke_hidpi .cke_button__cut_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -264px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__paste_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__paste_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -288px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__paste_icon,.cke_ltr.cke_hidpi .cke_button__paste_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -312px !important;background-size: 16px !important;}.cke_hidpi .cke_button__horizontalrule_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -336px !important;background-size: 16px !important;}.cke_hidpi .cke_button__image_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -360px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__indent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__indent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -384px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__indent_icon,.cke_ltr.cke_hidpi .cke_button__indent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -408px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__outdent_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__outdent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -432px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__outdent_icon,.cke_ltr.cke_hidpi .cke_button__outdent_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -456px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__anchor_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__anchor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -480px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__anchor_icon,.cke_ltr.cke_hidpi .cke_button__anchor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -504px !important;background-size: 16px !important;}.cke_hidpi .cke_button__link_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -528px !important;background-size: 16px !important;}.cke_hidpi .cke_button__unlink_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -552px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__bulletedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -576px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__bulletedlist_icon,.cke_ltr.cke_hidpi .cke_button__bulletedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -600px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__numberedlist_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -624px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__numberedlist_icon,.cke_ltr.cke_hidpi .cke_button__numberedlist_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -648px !important;background-size: 16px !important;}.cke_hidpi .cke_button__maximize_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -672px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastetext_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -696px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastetext_icon,.cke_ltr.cke_hidpi .cke_button__pastetext_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -720px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__pastefromword_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -744px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__pastefromword_icon,.cke_ltr.cke_hidpi .cke_button__pastefromword_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -768px !important;background-size: 16px !important;}.cke_hidpi .cke_button__removeformat_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -792px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__source_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__source_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -816px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__source_icon,.cke_ltr.cke_hidpi .cke_button__source_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -840px !important;background-size: 16px !important;}.cke_hidpi .cke_button__specialchar_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -864px !important;background-size: 16px !important;}.cke_hidpi .cke_button__scayt_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -888px !important;background-size: 16px !important;}.cke_hidpi .cke_button__table_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -912px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__redo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__redo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -936px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__redo_icon,.cke_ltr.cke_hidpi .cke_button__redo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -960px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__undo_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__undo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -984px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__undo_icon,.cke_ltr.cke_hidpi .cke_button__undo_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1008px !important;background-size: 16px !important;}.cke_hidpi .cke_button__autocomplete_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2064px !important;}.cke_hidpi .cke_button__autoformat_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2112px !important;}.cke_hidpi .cke_button__commentselectedrange_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2160px !important;}.cke_hidpi .cke_button__searchcode_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2208px !important;}.cke_hidpi .cke_button__uncommentselectedrange_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -2256px !important;}.cke_hidpi .cke_button__creatediv_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1152px !important;background-size: 16px !important;}.cke_hidpi .cke_button__iframe_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1176px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyblock_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1200px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifycenter_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1224px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyleft_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1248px !important;background-size: 16px !important;}.cke_hidpi .cke_button__justifyright_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1272px !important;background-size: 16px !important;}.cke_hidpi .cke_button__mediaembed_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1296px !important;background-size: 16px !important;}.cke_rtl.cke_hidpi .cke_button__showblocks_icon, .cke_hidpi .cke_mixed_dir_content .cke_rtl .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1320px !important;background-size: 16px !important;}.cke_hidpi .cke_ltr .cke_button__showblocks_icon,.cke_ltr.cke_hidpi .cke_button__showblocks_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1344px !important;background-size: 16px !important;}.cke_hidpi .cke_button__spellchecker_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1368px !important;background-size: 16px !important;}.cke_hidpi .cke_button__bgcolor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1392px !important;background-size: 16px !important;}.cke_hidpi .cke_button__textcolor_icon {background: url(icons_hidpi.png?t=17a1555f7f) no-repeat 0 -1416px !important;background-size: 16px !important;} \ No newline at end of file diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/icons.png b/ui/src/vendor/ckeditor/skins/moono-lisa/icons.png deleted file mode 100644 index e1e8a8fd60..0000000000 Binary files a/ui/src/vendor/ckeditor/skins/moono-lisa/icons.png and /dev/null differ diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/icons_hidpi.png b/ui/src/vendor/ckeditor/skins/moono-lisa/icons_hidpi.png deleted file mode 100644 index b3009a04ed..0000000000 Binary files a/ui/src/vendor/ckeditor/skins/moono-lisa/icons_hidpi.png and /dev/null differ diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/images/arrow.png b/ui/src/vendor/ckeditor/skins/moono-lisa/images/arrow.png deleted file mode 100644 index d72b5f3b88..0000000000 Binary files a/ui/src/vendor/ckeditor/skins/moono-lisa/images/arrow.png and /dev/null differ diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/images/close.png b/ui/src/vendor/ckeditor/skins/moono-lisa/images/close.png deleted file mode 100644 index 40caa6ddfd..0000000000 Binary files a/ui/src/vendor/ckeditor/skins/moono-lisa/images/close.png and /dev/null differ diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/images/hidpi/close.png b/ui/src/vendor/ckeditor/skins/moono-lisa/images/hidpi/close.png deleted file mode 100644 index fa00f4fce6..0000000000 Binary files a/ui/src/vendor/ckeditor/skins/moono-lisa/images/hidpi/close.png and /dev/null differ diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/images/hidpi/lock-open.png b/ui/src/vendor/ckeditor/skins/moono-lisa/images/hidpi/lock-open.png deleted file mode 100644 index c89978907d..0000000000 Binary files a/ui/src/vendor/ckeditor/skins/moono-lisa/images/hidpi/lock-open.png and /dev/null differ diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/images/hidpi/lock.png b/ui/src/vendor/ckeditor/skins/moono-lisa/images/hidpi/lock.png deleted file mode 100644 index 25ad0f4a31..0000000000 Binary files a/ui/src/vendor/ckeditor/skins/moono-lisa/images/hidpi/lock.png and /dev/null differ diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/images/hidpi/refresh.png b/ui/src/vendor/ckeditor/skins/moono-lisa/images/hidpi/refresh.png deleted file mode 100644 index 117a2d4a47..0000000000 Binary files a/ui/src/vendor/ckeditor/skins/moono-lisa/images/hidpi/refresh.png and /dev/null differ diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/images/lock-open.png b/ui/src/vendor/ckeditor/skins/moono-lisa/images/lock-open.png deleted file mode 100644 index 42df5f4111..0000000000 Binary files a/ui/src/vendor/ckeditor/skins/moono-lisa/images/lock-open.png and /dev/null differ diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/images/lock.png b/ui/src/vendor/ckeditor/skins/moono-lisa/images/lock.png deleted file mode 100644 index bde67727d7..0000000000 Binary files a/ui/src/vendor/ckeditor/skins/moono-lisa/images/lock.png and /dev/null differ diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/images/refresh.png b/ui/src/vendor/ckeditor/skins/moono-lisa/images/refresh.png deleted file mode 100644 index e363764e3d..0000000000 Binary files a/ui/src/vendor/ckeditor/skins/moono-lisa/images/refresh.png and /dev/null differ diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/images/spinner.gif b/ui/src/vendor/ckeditor/skins/moono-lisa/images/spinner.gif deleted file mode 100644 index d898d41fa7..0000000000 Binary files a/ui/src/vendor/ckeditor/skins/moono-lisa/images/spinner.gif and /dev/null differ diff --git a/ui/src/vendor/ckeditor/skins/moono-lisa/readme.md b/ui/src/vendor/ckeditor/skins/moono-lisa/readme.md deleted file mode 100644 index feb086a7ed..0000000000 --- a/ui/src/vendor/ckeditor/skins/moono-lisa/readme.md +++ /dev/null @@ -1,46 +0,0 @@ -"Moono-lisa" Skin -================= - -This skin has been made a **default skin** starting from CKEditor 4.6.0 and is maintained by the core developers. - -For more information about skins, please check the [CKEditor Skin SDK](https://ckeditor.com/docs/ckeditor4/latest/guide/skin_sdk_intro.html) -documentation. - -Features -------------------- -"Moono-lisa" is a monochromatic skin, which offers a modern, flat and minimalistic look which blends very well in modern design. -It comes with the following features: - -- Chameleon feature with brightness. -- High-contrast compatibility. -- Graphics source provided in SVG. - -Directory Structure -------------------- - -CSS parts: -- **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, -- **mainui.css**: the file contains styles of entire editor outline structures, -- **toolbar.css**: the file contains styles of the editor toolbar space (top), -- **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, -- **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded -until the first panel open up, -- **elementspath.css**: the file contains styles of the editor elements path bar (bottom), -- **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, -it's not loaded until the first menu open up, -- **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, -- **reset.css**: the file defines the basis of style resets among all editor UI spaces, -- **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, -- **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. - -Other parts: -- **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, -- **images/**: contains a fill general used images, -- **dev/**: contains SVG and PNG source of the skin icons. - -License -------- - -Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. - -For licensing, see LICENSE.md or [https://ckeditor.com/legal/ckeditor-oss-license](https://ckeditor.com/legal/ckeditor-oss-license) diff --git a/ui/src/vendor/ckeditor/src/ckeditor.ts b/ui/src/vendor/ckeditor/src/ckeditor.ts new file mode 100644 index 0000000000..528dec5056 --- /dev/null +++ b/ui/src/vendor/ckeditor/src/ckeditor.ts @@ -0,0 +1,154 @@ +/** + * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license + */ + +// The editor creator to use. +import { ClassicEditor as ClassicEditorBase } from '@ckeditor/ckeditor5-editor-classic'; +import { InlineEditor as InlineEditorBase } from '@ckeditor/ckeditor5-editor-inline'; + + +import { Alignment } from '@ckeditor/ckeditor5-alignment'; +import { Autoformat } from '@ckeditor/ckeditor5-autoformat'; +import { + Bold, + Italic, + Strikethrough, + Subscript, + Superscript, + Underline +} from '@ckeditor/ckeditor5-basic-styles'; +import { BlockQuote } from '@ckeditor/ckeditor5-block-quote'; +import { CloudServices } from '@ckeditor/ckeditor5-cloud-services'; +import type { EditorConfig } from '@ckeditor/ckeditor5-core'; +import { Essentials } from '@ckeditor/ckeditor5-essentials'; +import { FontBackgroundColor, FontColor, FontFamily, FontSize } from '@ckeditor/ckeditor5-font'; +import { Heading } from '@ckeditor/ckeditor5-heading'; +import { HorizontalLine } from '@ckeditor/ckeditor5-horizontal-line'; +import { + Image, + ImageCaption, + ImageResize, + ImageStyle, + ImageToolbar, + ImageUpload +} from '@ckeditor/ckeditor5-image'; +import { Indent } from '@ckeditor/ckeditor5-indent'; +import { List, ListProperties } from '@ckeditor/ckeditor5-list'; +import { Paragraph } from '@ckeditor/ckeditor5-paragraph'; +import { PasteFromOffice } from '@ckeditor/ckeditor5-paste-from-office'; +import { ShowBlocks } from '@ckeditor/ckeditor5-show-blocks'; +import { SourceEditing } from '@ckeditor/ckeditor5-source-editing'; +import { + SpecialCharacters, + SpecialCharactersCurrency, + SpecialCharactersEssentials, + SpecialCharactersLatin, + SpecialCharactersText +} from '@ckeditor/ckeditor5-special-characters'; +import { Table, TableProperties, TableToolbar } from '@ckeditor/ckeditor5-table'; +import { TextTransformation } from '@ckeditor/ckeditor5-typing'; +import { Undo } from '@ckeditor/ckeditor5-undo'; + +class ClassicEditor extends ClassicEditorBase {} +class InlineEditor extends InlineEditorBase {} + +const plugins = [ + Alignment, + Autoformat, + BlockQuote, + Bold, + CloudServices, + Essentials, + FontBackgroundColor, + FontColor, + FontFamily, + FontSize, + Heading, + HorizontalLine, + Image, + ImageCaption, + ImageResize, + ImageStyle, + ImageToolbar, + Indent, + Italic, + List, + ListProperties, + Paragraph, + SpecialCharacters, + SpecialCharactersCurrency, + SpecialCharactersEssentials, + SpecialCharactersLatin, + SpecialCharactersText, + Strikethrough, + Subscript, + Superscript, + Table, + TableProperties, + TableToolbar, + TextTransformation, + Underline, + Undo +]; + +const config = { + toolbar: { + items: [ + 'undo', + 'redo', + 'fontFamily', + 'fontSize', + 'fontColor', + 'fontBackgroundColor', + 'alignment', + 'outdent', + 'indent', + '|', + 'bold', + 'italic', + 'underline', + 'strikethrough', + 'subscript', + 'superscript', + '|', + 'bulletedList', + 'numberedList', + 'blockQuote', + 'insertTable', + 'horizontalLine', + 'specialCharacters', + '|', + 'heading' + ], + shouldNotGroupWhenFull: true + }, + language: 'en-gb', + image: { + toolbar: [ + 'imageTextAlternative', + 'toggleImageCaption', + 'imageStyle:inline', + 'imageStyle:block', + 'imageStyle:side' + ] + }, + table: { + contentToolbar: [ + 'tableColumn', + 'tableRow', + 'mergeTableCells', + 'tableProperties' + ] + } +}; + +ClassicEditor.builtinPlugins = plugins; +ClassicEditor.defaultConfig = config; +InlineEditor.builtinPlugins = plugins; +InlineEditor.defaultConfig = config; + +export default { + ClassicEditor, + InlineEditor +}; diff --git a/ui/src/vendor/ckeditor/styles.js b/ui/src/vendor/ckeditor/styles.js deleted file mode 100644 index 3500ef84ee..0000000000 --- a/ui/src/vendor/ckeditor/styles.js +++ /dev/null @@ -1,137 +0,0 @@ -/** - * Copyright (c) 2003-2021, CKSource - Frederico Knabben. All rights reserved. - * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license - */ - -// This file contains style definitions that can be used by CKEditor plugins. -// -// The most common use for it is the "stylescombo" plugin which shows the Styles drop-down -// list containing all styles in the editor toolbar. Other plugins, like -// the "div" plugin, use a subset of the styles for their features. -// -// If you do not have plugins that depend on this file in your editor build, you can simply -// ignore it. Otherwise it is strongly recommended to customize this file to match your -// website requirements and design properly. -// -// For more information refer to: https://ckeditor.com/docs/ckeditor4/latest/guide/dev_styles.html#style-rules - -CKEDITOR.stylesSet.add( 'default', [ - /* Block styles */ - - // These styles are already available in the "Format" drop-down list ("format" plugin), - // so they are not needed here by default. You may enable them to avoid - // placing the "Format" combo in the toolbar, maintaining the same features. - /* - { name: 'Paragraph', element: 'p' }, - { name: 'Heading 1', element: 'h1' }, - { name: 'Heading 2', element: 'h2' }, - { name: 'Heading 3', element: 'h3' }, - { name: 'Heading 4', element: 'h4' }, - { name: 'Heading 5', element: 'h5' }, - { name: 'Heading 6', element: 'h6' }, - { name: 'Preformatted Text',element: 'pre' }, - { name: 'Address', element: 'address' }, - */ - - { name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } }, - { name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } }, - { - name: 'Special Container', - element: 'div', - styles: { - padding: '5px 10px', - background: '#eee', - border: '1px solid #ccc' - } - }, - - /* Inline styles */ - - // These are core styles available as toolbar buttons. You may opt enabling - // some of them in the Styles drop-down list, removing them from the toolbar. - // (This requires the "stylescombo" plugin.) - /* - { name: 'Strong', element: 'strong', overrides: 'b' }, - { name: 'Emphasis', element: 'em' , overrides: 'i' }, - { name: 'Underline', element: 'u' }, - { name: 'Strikethrough', element: 'strike' }, - { name: 'Subscript', element: 'sub' }, - { name: 'Superscript', element: 'sup' }, - */ - - { name: 'Marker', element: 'span', attributes: { 'class': 'marker' } }, - - { name: 'Big', element: 'big' }, - { name: 'Small', element: 'small' }, - { name: 'Typewriter', element: 'tt' }, - - { name: 'Computer Code', element: 'code' }, - { name: 'Keyboard Phrase', element: 'kbd' }, - { name: 'Sample Text', element: 'samp' }, - { name: 'Variable', element: 'var' }, - - { name: 'Deleted Text', element: 'del' }, - { name: 'Inserted Text', element: 'ins' }, - - { name: 'Cited Work', element: 'cite' }, - { name: 'Inline Quotation', element: 'q' }, - - { name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } }, - { name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } }, - - /* Object styles */ - - { - name: 'Styled Image (left)', - element: 'img', - attributes: { 'class': 'left' } - }, - - { - name: 'Styled Image (right)', - element: 'img', - attributes: { 'class': 'right' } - }, - - { - name: 'Compact Table', - element: 'table', - attributes: { - cellpadding: '5', - cellspacing: '0', - border: '1', - bordercolor: '#ccc' - }, - styles: { - 'border-collapse': 'collapse' - } - }, - - { name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } }, - { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } }, - - /* Widget styles */ - - { name: 'Clean Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-clean' } }, - { name: 'Grayscale Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-grayscale' } }, - - { name: 'Featured Snippet', type: 'widget', widget: 'codeSnippet', attributes: { 'class': 'code-featured' } }, - - { name: 'Featured Formula', type: 'widget', widget: 'mathjax', attributes: { 'class': 'math-featured' } }, - - { name: '240p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-240p' }, group: 'size' }, - { name: '360p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-360p' }, group: 'size' }, - { name: '480p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-480p' }, group: 'size' }, - { name: '720p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-720p' }, group: 'size' }, - { name: '1080p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-1080p' }, group: 'size' }, - - // Adding space after the style name is an intended workaround. For now, there - // is no option to create two styles with the same name for different widget types. See https://dev.ckeditor.com/ticket/16664. - { name: '240p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-240p' }, group: 'size' }, - { name: '360p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-360p' }, group: 'size' }, - { name: '480p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-480p' }, group: 'size' }, - { name: '720p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-720p' }, group: 'size' }, - { name: '1080p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-1080p' }, group: 'size' } - -] ); - diff --git a/ui/src/vendor/ckeditor/tsconfig.json b/ui/src/vendor/ckeditor/tsconfig.json new file mode 100644 index 0000000000..204c648409 --- /dev/null +++ b/ui/src/vendor/ckeditor/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "ckeditor5/tsconfig.json", + "include": [ + "src", + "../../typings" + ] +} diff --git a/ui/src/vendor/ckeditor/vendor/promise.js b/ui/src/vendor/ckeditor/vendor/promise.js deleted file mode 100644 index c4d99120dc..0000000000 --- a/ui/src/vendor/ckeditor/vendor/promise.js +++ /dev/null @@ -1,13 +0,0 @@ -(function(v,w){"object"===typeof exports&&"undefined"!==typeof module?module.exports=w():"function"===typeof define&&define.amd?define(w):v.ES6Promise=w()})(this,function(){function v(a){return"function"===typeof a}function w(){return function(){return process.nextTick(n)}}function R(){return"undefined"!==typeof B?function(){B(n)}:C()}function S(){var a=0,b=new J(n),c=document.createTextNode("");b.observe(c,{characterData:!0});return function(){c.data=a=++a%2}}function T(){var a=new MessageChannel; -a.port1.onmessage=n;return function(){return a.port2.postMessage(0)}}function C(){var a=setTimeout;return function(){return a(n,1)}}function n(){for(var a=0;a +
{% endblock %} @@ -89,7 +90,7 @@ {% endblock %} {% block javaScript %} - {% endverbatim %} - {% verbatim %} - + @@ -50,7 +50,7 @@
- - + + \ No newline at end of file diff --git a/views/base.twig b/views/base.twig index f3a6cae4f6..ec3f3b32f2 100644 --- a/views/base.twig +++ b/views/base.twig @@ -10,7 +10,7 @@ {# Import CSS bundle from dist #} - + {# Import user made CSS from theme #} @@ -20,55 +20,53 @@ - + {% block headContent %}{% endblock %} {% block content %}{% endblock %} - {# Import JS bundle from dist #} - + {# Import JS system tools #} - + {# Import JS templates #} - + {# Import libraries copied to dist #} - - - + {# Import XIBO js files #} - - - - - + + + + + {# Dates #} {% if settings.CALENDAR_TYPE == "Jalali" %} - - + {% else %} - + {% endif %} {# Handle the inclusion of i18n #} {% set calendarTranslation %}dist/vendor/calendar/js/language/{{ translate.jsShortLocale }}.js{% endset %} {% if theme.fileExists(calendarTranslation) %} - + {% endif %} - - + - - + + {% endblock %} \ No newline at end of file diff --git a/views/common.twig b/views/common.twig index 101d31e1da..2fe86d6faf 100644 --- a/views/common.twig +++ b/views/common.twig @@ -3,7 +3,7 @@ Add by including in another twig file javaScript block: {% include "common.twig" %} #} {% block javaScript %} - +{% endblock %} diff --git a/views/dataset-data-connector-test-page.twig b/views/dataset-data-connector-test-page.twig new file mode 100644 index 0000000000..041a84deb7 --- /dev/null +++ b/views/dataset-data-connector-test-page.twig @@ -0,0 +1,138 @@ +{# +/* + * Copyright (C) 2024 Xibo Signage Ltd + * + * Xibo - Digital Signage - https://xibosignage.com + * + * This file is part of Xibo. + * + * Xibo is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * Xibo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Xibo. If not, see . + */ +#} + + + + Data Connector Test + + + + + + + + + + + + + diff --git a/views/dataset-dataentry-page.twig b/views/dataset-dataentry-page.twig index 5815051bbc..4436a310ba 100644 --- a/views/dataset-dataentry-page.twig +++ b/views/dataset-dataentry-page.twig @@ -32,6 +32,7 @@ + {% endblock %} @@ -76,7 +77,7 @@ {% endblock %} {% block javaScript %} - + + + + + + + + + + + + + + + + + {% endverbatim %} + + +{% endblock %} \ No newline at end of file diff --git a/views/developer-template-form-add.twig b/views/developer-template-form-add.twig new file mode 100644 index 0000000000..a683c22eb4 --- /dev/null +++ b/views/developer-template-form-add.twig @@ -0,0 +1,88 @@ +{# +/* + * Copyright (C) 2023 Xibo Signage Ltd + * + * Xibo - Digital Signage - https://xibosignage.com + * + * This file is part of Xibo. + * + * Xibo is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * Xibo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Xibo. If not, see . + */ +#} + +{% extends "form-base.twig" %} +{% import "forms.twig" as forms %} + +{% block formTitle %} + {% trans "Add Module Template" %} +{% endblock %} + +{% block formButtons %} + {% trans "Cancel" %}, XiboDialogClose() + {% trans "Save" %}, $("#form-module-template").submit(); +{% endblock %} + +{% block callBack %}moduleTemplateAddFormOpen{% endblock %} + +{% block formHtml %} +
+
+
+ + {% set title %}{% trans "ID" %}{% endset %} + {% set helpText %}{% trans "A unique ID for the module template" %}{% endset %} + {{ forms.input("templateId", title, "custom_", helpText) }} + + {% set title %}{% trans "Title" %}{% endset %} + {% set helpText %}{% trans "A title for the module template" %}{% endset %} + {{ forms.input("title", title, "Custom Template", helpText) }} + + {% set attributes = [ + { name: "data-search-url", value: url_for("developer.templates.datatypes.search") }, + { name: "data-search-term", value: "name" }, + { name: "data-id-property", value: "id" }, + { name: "data-text-property", value: "name" }, + { name: "data-hide-search", value: 1}, + ] %} + {% set title %}{% trans "Data Type" %}{% endset %} + {% set helpText %}{% trans "Which data type does this template need?" %}{% endset %} + {{ forms.dropdown("dataType", "single", title, null, null, "id", "id", helpText, "pagedSelect", "", "", "", attributes) }} + + {% set attributes = [ + { name: "data-search-term", value: "title" }, + { name: "data-id-property", value: "templateId" }, + { name: "data-text-property", value: "title" }, + { name: "data-hide-search", value: 1}, + { name: "data-filter-options", value: '{"type":"static"}' }, + ] %} + {% set title %}{% trans "Template" %}{% endset %} + {% set helpText %}{% trans "Optionally select existing template to use as a base for this Template" %}{% endset %} + {{ forms.dropdown("copyTemplateId", "single", title, null, null, "templateId", "title", helpText, "d-none", "", "", "", attributes) }} + + {% set title %}{% trans "Show In" %}{% endset %} + {% set helpText %}{% trans "Which Editor should this template be available in?" %}{% endset %} + {% set options = [ + { id: "none", name: "None"|trans }, + { id: "layout", name: "Layout Editor"|trans }, + { id: "playlist", name: "Playlist Editor"|trans }, + { id: "both", name: "Both"|trans }, + ] %} + {{ forms.dropdown("showIn", "single", title, "layout", options, "id", "name", helpText) }} +
+
+
+{% endblock %} diff --git a/views/developer-template-form-copy.twig b/views/developer-template-form-copy.twig new file mode 100644 index 0000000000..9af9fb6b42 --- /dev/null +++ b/views/developer-template-form-copy.twig @@ -0,0 +1,48 @@ +{# +/* + * Copyright (C) 2024 Xibo Signage Ltd + * + * Xibo - Digital Signage - https://xibosignage.com + * + * This file is part of Xibo. + * + * Xibo is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * Xibo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Xibo. If not, see . + */ +#} + +{% extends "form-base.twig" %} +{% import "forms.twig" as forms %} + +{% block formTitle %} + {% set name = template.templateId %} + {% trans %}Copy {{ name }}{% endtrans %} +{% endblock %} + +{% block formButtons %} + {% trans "Cancel" %}, XiboDialogClose() + {% trans "Copy" %}, $("#form-module-template-copy").submit() +{% endblock %} + +{% block formHtml %} +
+
+
+ {% set title %}{% trans "ID" %}{% endset %} + {% set helpText %}{% trans "A unique ID for the module template" %}{% endset %} + {% set copyName %}{{ template.templateId }}_copy{% endset %} + {{ forms.input("templateId", title, copyName , helpText) }} +
+
+
+{% endblock %} \ No newline at end of file diff --git a/views/developer-template-form-delete.twig b/views/developer-template-form-delete.twig new file mode 100644 index 0000000000..0a2e4f9abe --- /dev/null +++ b/views/developer-template-form-delete.twig @@ -0,0 +1,45 @@ +{# +/** + * Copyright (C) 2024 Xibo Signage Ltd + * + * Xibo - Digital Signage - https://xibosignage.com + * + * This file is part of Xibo. + * + * Xibo is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * Xibo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Xibo. If not, see . + */ +#} + +{% extends "form-base.twig" %} +{% import "forms.twig" as forms %} + +{% block formTitle %} + {% trans "Delete Module Template" %} +{% endblock %} + +{% block formButtons %} + {% trans "Cancel" %}, XiboDialogClose() + {% trans "Yes" %}, $("#form-module-template-delete").submit() +{% endblock %} + +{% block formHtml %} +
+
+
+ {% set message %}{% trans "Are you sure you want to delete this Template? This cannot be undone" %}{% endset %} + {{ forms.message(message) }} +
+
+
+{% endblock %} \ No newline at end of file diff --git a/views/developer-template-page.twig b/views/developer-template-page.twig new file mode 100644 index 0000000000..f542e8b702 --- /dev/null +++ b/views/developer-template-page.twig @@ -0,0 +1,298 @@ +{# +/* + * Copyright (C) 2023 Xibo Signage Ltd + * + * Xibo - Digital Signage - https://xibosignage.com + * + * This file is part of Xibo. + * + * Xibo is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * Xibo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Xibo. If not, see . + */ +#} +{% extends "authed.twig" %} +{% import "inline.twig" as inline %} + +{% block title %}{{ "Module Templates"|trans }} | {% endblock %} + +{% block actionMenu %} +
+ + + +
+{% endblock %} + +{% block pageContent %} +
+
{% trans "Module Templates" %}
+
+
+
+
+
+ {% set title %}{% trans "ID" %}{% endset %} + {{ inline.number('id', title) }} + + {% set title %}{% trans "Title" %}{% endset %} + {{ inline.input('templateId', title) }} + + {% set attributes = [ + { name: "data-placeholder--id", value: null }, + { name: "data-placeholder--value", value: "" }, + { name: "data-width", value: "200px" }, + { name: "data-search-url", value: url_for("developer.templates.datatypes.search") }, + { name: "data-search-term", value: "name" }, + { name: "data-id-property", value: "id" }, + { name: "data-text-property", value: "name" }, + { name: "data-initial-key", value: "dataType" }, + { name: "data-allow-clear", value: "true"}, + { name: "data-hide-search", value: 1} + ] %} + {% set title %}{% trans "Data Type" %}{% endset %} + {% set helpText %}{% trans "Which data type does this template need?" %}{% endset %} + {{ inline.dropdown("dataType", "single", title, null, null, "id", "id", helpText, "pagedSelect", "", "", "", attributes) }} +
+
+
+
+ + + + + + + + + + + + + + + +
{% trans "ID" %}{% trans "Template ID" %}{% trans "Data Type" %}{% trans "Title" %}{% trans "Type" %}{% trans "Sharing" %}
+
+
+
+
+{% endblock %} + +{% block javaScript %} + +{% endblock %} + +{% block javaScriptTemplates %} + {{ parent() }} + + {% verbatim %} + + + + + {% endverbatim %} +{% endblock %} diff --git a/views/display-page-manage.twig b/views/display-page-manage.twig index 9df387ddfa..b96df41c25 100644 --- a/views/display-page-manage.twig +++ b/views/display-page-manage.twig @@ -280,7 +280,7 @@ {% endblock %} {% block javaScript %} - - {% endblock %} \ No newline at end of file diff --git a/views/include-file-upload.twig b/views/include-file-upload.twig index 8363b410e8..4766597f4d 100644 --- a/views/include-file-upload.twig +++ b/views/include-file-upload.twig @@ -1,22 +1,22 @@ {# All client side file upload stuff #} {# we use blueimp jquery-file-upload #} - - - - - - - - - - - + + + + + + + + + + + {# Our implementation of blueimp #} - + {# Max image resize size from settings #} - @@ -160,6 +160,17 @@ +
+
+
+
+ + +
+
+
{{/if}} {{#if showWidgetDates }}
diff --git a/views/layout-designer-page.twig b/views/layout-designer-page.twig index 2cb4273322..a0fa2cad7a 100644 --- a/views/layout-designer-page.twig +++ b/views/layout-designer-page.twig @@ -43,9 +43,9 @@ {# Add common file #} {% include "common.twig" %} - - - + + - +