@syncfusion/ej2-splitbuttons 25.2.4 → 26.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +3 -2
- package/dist/ej2-splitbuttons.min.js +2 -2
- package/dist/ej2-splitbuttons.umd.min.js +2 -2
- package/dist/ej2-splitbuttons.umd.min.js.map +1 -1
- package/dist/es6/ej2-splitbuttons.es2015.js +29 -48
- package/dist/es6/ej2-splitbuttons.es2015.js.map +1 -1
- package/dist/es6/ej2-splitbuttons.es5.js +30 -45
- package/dist/es6/ej2-splitbuttons.es5.js.map +1 -1
- package/dist/global/ej2-splitbuttons.min.js +2 -2
- package/dist/global/ej2-splitbuttons.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +8 -8
- package/src/drop-down-button/drop-down-button.js +6 -1
- package/src/progress-button/progress-button.js +3 -3
- package/src/split-button/split-button.js +2 -1
- package/styles/bootstrap-dark.css +263 -97
- package/styles/bootstrap-dark.scss +14 -4
- package/styles/bootstrap.css +263 -97
- package/styles/bootstrap.scss +14 -4
- package/styles/bootstrap4.css +227 -80
- package/styles/bootstrap4.scss +14 -4
- package/styles/bootstrap5-dark.css +227 -174
- package/styles/bootstrap5-dark.scss +14 -4
- package/styles/bootstrap5.css +227 -174
- package/styles/bootstrap5.scss +14 -4
- package/styles/button-group/_bootstrap-dark-definition.scss +0 -2
- package/styles/button-group/_bootstrap5.3-definition.scss +31 -0
- package/styles/button-group/_fabric-dark-definition.scss +0 -2
- package/styles/button-group/_fluent2-definition.scss +31 -0
- package/styles/button-group/_group-button-mixin.scss +21 -0
- package/styles/button-group/_highcontrast-light-definition.scss +0 -2
- package/styles/button-group/_layout.scss +5 -13
- package/styles/button-group/_material-dark-definition.scss +0 -2
- package/styles/button-group/_theme.scss +30 -84
- package/styles/button-group/bootstrap-dark.css +93 -57
- package/styles/button-group/bootstrap.css +93 -57
- package/styles/button-group/bootstrap4.css +69 -46
- package/styles/button-group/bootstrap5-dark.css +69 -46
- package/styles/button-group/bootstrap5.css +69 -46
- package/styles/button-group/fabric-dark.css +93 -57
- package/styles/button-group/fabric.css +98 -62
- package/styles/button-group/fluent-dark.css +109 -65
- package/styles/button-group/fluent.css +109 -65
- package/styles/button-group/fluent2.css +1849 -0
- package/styles/button-group/fluent2.scss +4 -0
- package/styles/button-group/highcontrast-light.css +93 -57
- package/styles/button-group/highcontrast.css +93 -57
- package/styles/button-group/material-dark.css +107 -64
- package/styles/button-group/material.css +109 -65
- package/styles/button-group/material3-dark.css +151 -77
- package/styles/button-group/material3.css +151 -77
- package/styles/button-group/tailwind-dark.css +91 -57
- package/styles/button-group/tailwind.css +91 -57
- package/styles/drop-down-button/_bds-definition.scss +5 -5
- package/styles/drop-down-button/_bootstrap-dark-definition.scss +0 -3
- package/styles/drop-down-button/_bootstrap5-definition.scss +0 -1
- package/styles/drop-down-button/_bootstrap5.3-definition.scss +49 -0
- package/styles/drop-down-button/_fabric-dark-definition.scss +0 -3
- package/styles/drop-down-button/_fluent-definition.scss +0 -1
- package/styles/drop-down-button/_fluent2-definition.scss +48 -0
- package/styles/drop-down-button/_fusionnew-definition.scss +0 -1
- package/styles/drop-down-button/_highcontrast-light-definition.scss +0 -3
- package/styles/drop-down-button/_layout.scss +51 -6
- package/styles/drop-down-button/_material-dark-definition.scss +0 -3
- package/styles/drop-down-button/_material3-definition.scss +0 -1
- package/styles/drop-down-button/_tailwind-definition.scss +0 -1
- package/styles/drop-down-button/_theme.scss +8 -8
- package/styles/drop-down-button/bootstrap-dark.css +27 -14
- package/styles/drop-down-button/bootstrap.css +27 -14
- package/styles/drop-down-button/bootstrap4.css +23 -12
- package/styles/drop-down-button/bootstrap5-dark.css +23 -12
- package/styles/drop-down-button/bootstrap5.css +23 -12
- package/styles/drop-down-button/fabric-dark.css +27 -14
- package/styles/drop-down-button/fabric.css +27 -14
- package/styles/drop-down-button/fluent-dark.css +27 -14
- package/styles/drop-down-button/fluent.css +27 -14
- package/styles/drop-down-button/fluent2.css +1308 -0
- package/styles/drop-down-button/fluent2.scss +6 -0
- package/styles/drop-down-button/highcontrast-light.css +27 -14
- package/styles/drop-down-button/highcontrast.css +27 -14
- package/styles/drop-down-button/icons/_bootstrap5.3.scss +10 -0
- package/styles/drop-down-button/icons/_fluent2.scss +10 -0
- package/styles/drop-down-button/material-dark.css +27 -14
- package/styles/drop-down-button/material.css +27 -14
- package/styles/drop-down-button/material3-dark.css +33 -17
- package/styles/drop-down-button/material3.css +33 -17
- package/styles/drop-down-button/tailwind-dark.css +27 -14
- package/styles/drop-down-button/tailwind.css +27 -14
- package/styles/fabric-dark.css +263 -97
- package/styles/fabric-dark.scss +14 -4
- package/styles/fabric.css +268 -102
- package/styles/fabric.scss +14 -4
- package/styles/fluent-dark.css +271 -102
- package/styles/fluent-dark.scss +14 -4
- package/styles/fluent.css +271 -102
- package/styles/fluent.scss +14 -4
- package/styles/fluent2.css +3068 -0
- package/styles/fluent2.scss +14 -0
- package/styles/highcontrast-light.css +263 -97
- package/styles/highcontrast-light.scss +14 -4
- package/styles/highcontrast.css +263 -97
- package/styles/highcontrast.scss +14 -4
- package/styles/material-dark.css +277 -104
- package/styles/material-dark.scss +14 -4
- package/styles/material.css +279 -105
- package/styles/material.scss +14 -4
- package/styles/material3-dark.css +357 -134
- package/styles/material3-dark.scss +14 -4
- package/styles/material3.css +353 -132
- package/styles/material3.scss +14 -4
- package/styles/progress-button/_bds-definition.scss +0 -5
- package/styles/progress-button/_bootstrap-dark-definition.scss +0 -3
- package/styles/progress-button/_bootstrap5-definition.scss +0 -1
- package/styles/progress-button/_bootstrap5.3-definition.scss +20 -0
- package/styles/progress-button/_fabric-dark-definition.scss +0 -3
- package/styles/progress-button/_fluent-definition.scss +0 -1
- package/styles/progress-button/_fluent2-definition.scss +21 -0
- package/styles/progress-button/_fusionnew-definition.scss +0 -1
- package/styles/progress-button/_layout.scss +0 -2
- package/styles/progress-button/_material-dark-definition.scss +0 -3
- package/styles/progress-button/_material3-definition.scss +0 -1
- package/styles/progress-button/_tailwind-definition.scss +0 -1
- package/styles/progress-button/_theme.scss +115 -50
- package/styles/progress-button/bootstrap-dark.css +118 -13
- package/styles/progress-button/bootstrap.css +118 -13
- package/styles/progress-button/bootstrap4.css +118 -13
- package/styles/progress-button/bootstrap5-dark.css +118 -106
- package/styles/progress-button/bootstrap5.css +118 -106
- package/styles/progress-button/fabric-dark.css +118 -13
- package/styles/progress-button/fabric.css +118 -13
- package/styles/progress-button/fluent-dark.css +118 -13
- package/styles/progress-button/fluent.css +118 -13
- package/styles/progress-button/fluent2.css +1632 -0
- package/styles/progress-button/fluent2.scss +5 -0
- package/styles/progress-button/highcontrast-light.css +118 -13
- package/styles/progress-button/highcontrast.css +118 -13
- package/styles/progress-button/material-dark.css +118 -13
- package/styles/progress-button/material.css +118 -13
- package/styles/progress-button/material3-dark.css +119 -14
- package/styles/progress-button/material3.css +119 -14
- package/styles/progress-button/tailwind-dark.css +118 -13
- package/styles/progress-button/tailwind.css +118 -13
- package/styles/split-button/_bds-definition.scss +0 -1
- package/styles/split-button/_bootstrap-dark-definition.scss +0 -3
- package/styles/split-button/_bootstrap4-definition.scss +0 -3
- package/styles/split-button/_bootstrap5-definition.scss +0 -1
- package/styles/split-button/_bootstrap5.3-definition.scss +23 -0
- package/styles/split-button/_fabric-dark-definition.scss +0 -3
- package/styles/split-button/_fluent-definition.scss +0 -1
- package/styles/split-button/_fluent2-definition.scss +23 -0
- package/styles/split-button/_fusionnew-definition.scss +0 -1
- package/styles/split-button/_highcontrast-light-definition.scss +0 -3
- package/styles/split-button/_layout.scss +16 -4
- package/styles/split-button/_theme.scss +0 -2
- package/styles/split-button/bootstrap-dark.css +25 -13
- package/styles/split-button/bootstrap.css +25 -13
- package/styles/split-button/bootstrap4.css +17 -9
- package/styles/split-button/bootstrap5-dark.css +17 -9
- package/styles/split-button/bootstrap5.css +17 -9
- package/styles/split-button/fabric-dark.css +25 -13
- package/styles/split-button/fabric.css +25 -13
- package/styles/split-button/fluent-dark.css +17 -9
- package/styles/split-button/fluent.css +17 -9
- package/styles/split-button/fluent2.css +1379 -0
- package/styles/split-button/fluent2.scss +6 -0
- package/styles/split-button/highcontrast-light.css +25 -13
- package/styles/split-button/highcontrast.css +25 -13
- package/styles/split-button/material-dark.css +25 -13
- package/styles/split-button/material.css +25 -13
- package/styles/split-button/material3-dark.css +57 -28
- package/styles/split-button/material3.css +53 -26
- package/styles/split-button/tailwind-dark.css +25 -13
- package/styles/split-button/tailwind.css +25 -13
- package/styles/tailwind-dark.css +261 -98
- package/styles/tailwind-dark.scss +14 -4
- package/styles/tailwind.css +261 -98
- package/styles/tailwind.scss +14 -4
- package/CHANGELOG.md +0 -373
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ej2-splitbuttons.es5.js","sources":["../../src/common/common.js","../../src/common/index.js","../../src/drop-down-button/drop-down-button.js","../../src/drop-down-button/index.js","../../src/split-button/split-button.js","../../src/split-button/index.js","../../src/button-group/button-group.js","../../src/button-group/index.js","../../src/progress-button/progress-button.js","../../src/progress-button/index.js","../../src/index.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, extend, deleteObject, Property, addClass, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @param {Object} props - Specifies the properties\n * @param {string[]} model - Specifies the model\n * @returns {Object} Component Model\n */\nexport function getModel(props, model) {\n var obj = extend({}, props);\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((model).indexOf(prop) < 0) {\n deleteObject(obj, prop);\n }\n }\n return obj;\n}\n/** @hidden\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {number} keyCode - Specifies the keycode\n * @returns {void}\n */\nexport function upDownKeyHandler(ul, keyCode) {\n var defaultIdx = keyCode === 40 ? 0 : ul.childElementCount - 1;\n var liIdx = defaultIdx;\n var li;\n var selectedLi = ul.querySelector('.e-selected');\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains('e-focused')) {\n li = ul.children[i];\n liIdx = i;\n li.classList.remove('e-focused');\n if (keyCode === 40) {\n liIdx++;\n }\n else {\n liIdx--;\n }\n if (liIdx === (keyCode === 40 ? ul.childElementCount : -1)) {\n liIdx = defaultIdx;\n }\n }\n }\n li = ul.children[liIdx];\n liIdx = isValidLI(ul, li, liIdx, keyCode);\n if (liIdx !== -1) {\n addClass([ul.children[liIdx]], 'e-focused');\n ul.children[liIdx].focus();\n }\n}\n/**\n * Get Valid LI element\n *\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {Element} li - Specifies the LI element\n * @param {number} index - Specifies the index\n * @param {number} keyCode - Specifies the keycode\n * @param {number} count - Specifies the count\n * @returns {number} - Index\n */\nfunction isValidLI(ul, li, index, keyCode, count) {\n if (count === void 0) { count = 0; }\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n if (index === (keyCode === 40 ? ul.childElementCount - 1 : 0)) {\n index = keyCode === 40 ? 0 : ul.childElementCount - 1;\n }\n else {\n if (keyCode === 40) {\n index++;\n }\n else {\n index--;\n }\n }\n }\n li = ul.children[index];\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n count++;\n if (count === ul.childElementCount) {\n return index = -1;\n }\n index = isValidLI(ul, li, index, keyCode, count);\n }\n return index;\n}\n/** @hidden\n * @param {HTMLElement} popup - Specifies the popup element.\n * @returns {void}\n */\nexport function setBlankIconStyle(popup, blankIcon) {\n var blankIconList = [].slice.call(popup.getElementsByClassName('e-blank-icon'));\n if (blankIcon) {\n var menuItem = [].slice.call(popup.getElementsByClassName('e-item'));\n menuItem.forEach(function (li) {\n if (li.style.paddingLeft || li.style.paddingRight) {\n li.removeAttribute('style');\n }\n });\n }\n if (!blankIconList.length) {\n return;\n }\n var iconLi = popup.querySelector('.e-item:not(.e-blank-icon):not(.e-separator)');\n if (isNullOrUndefined(iconLi)) {\n return;\n }\n if (iconLi.classList.contains('e-url')) {\n iconLi = iconLi.querySelector('.e-menu-url');\n }\n var icon = iconLi.querySelector('.e-menu-icon');\n var cssProp;\n var enableRtl = popup.classList.contains('e-rtl');\n if (enableRtl) {\n cssProp = { padding: 'paddingRight', margin: 'marginLeft' };\n }\n else {\n cssProp = { padding: 'paddingLeft', margin: 'marginRight' };\n }\n /* eslint-disable */\n var size = parseInt(getComputedStyle(icon).fontSize, 10) + parseInt((enableRtl ? getComputedStyle(icon)[cssProp.margin] : getComputedStyle(icon)[cssProp.margin]), 10)\n + parseInt(getComputedStyle(iconLi).paddingLeft, 10) + \"px\";\n blankIconList.forEach(function (li) {\n if (li.classList.contains('e-url')) {\n li.querySelector('.e-menu-url').style[cssProp.padding] = size;\n }\n else {\n li.style[cssProp.padding] = size;\n }\n });\n /* eslint-enable */\n}\n/**\n * Defines the items of Split Button/DropDownButton.\n */\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Item.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"id\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"separator\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"url\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"disabled\", void 0);\n return Item;\n}(ChildProperty));\nexport { Item };\n","/**\n * Common modules\n */\nexport * from './common';\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Collection, Event, NotifyPropertyChanges, detach, Property, EventHandler, isRippleEnabled, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { addClass, getUniqueID, rippleEffect, getComponent } from '@syncfusion/ej2-base';\nimport { attributes, Component, closest, select, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { classList, removeClass } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { upDownKeyHandler } from './../common/common';\nimport { getModel, Item, setBlankIconStyle } from './../common/common';\nvar classNames = {\n DISABLED: 'e-disabled',\n FOCUS: 'e-focused',\n ICON: 'e-menu-icon',\n ITEM: 'e-item',\n POPUP: 'e-dropdown-popup',\n RTL: 'e-rtl',\n SEPARATOR: 'e-separator',\n VERTICAL: 'e-vertical'\n};\n/**\n * DropDownButton component is used to toggle contextual overlays for displaying list of action items.\n * It can contain both text and images.\n * ```html\n * <button id=\"element\">DropDownButton</button>\n * ```\n * ```typescript\n * <script>\n * var dropDownButtonObj = new DropDownButton({items: [{ text: 'Action1' }, { text: 'Action2' },{ text: 'Action3' }]);\n * dropDownButtonObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar DropDownButton = /** @class */ (function (_super) {\n __extends(DropDownButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {DropDownButtonModel} options - Specifies dropdown button model\n * @param {string|HTMLButtonElement} element - Specifies element\n * @hidden\n */\n function DropDownButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isPopupCreated = true;\n return _this;\n }\n DropDownButton.prototype.preRender = function () {\n /** */\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n DropDownButton.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * To open/close DropDownButton popup based on current state of the DropDownButton.\n *\n * @returns {void}\n */\n DropDownButton.prototype.toggle = function () {\n if (this.canOpen()) {\n this.openPopUp();\n }\n else if (this.createPopupOnClick && !this.isPopupCreated) {\n this.createPopup();\n this.openPopUp();\n }\n else {\n this.closePopup();\n }\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.render = function () {\n this.initialize();\n if (!this.disabled) {\n this.wireEvents();\n }\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n DropDownButton.prototype.addItems = function (items, text) {\n var newItem;\n var idx = this.items.length;\n for (var j = 0, len = this.items.length; j < len; j++) {\n if (text === this.items[j].text) {\n idx = j;\n break;\n }\n }\n for (var i = items.length - 1; i >= 0; i--) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newItem = new Item(this, 'items', items[i], true);\n this.items.splice(idx, 0, newItem);\n }\n if (!this.canOpen()) {\n this.createItems();\n }\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n DropDownButton.prototype.removeItems = function (items, isUniqueId) {\n var refresh = false;\n for (var i = 0, len = items.length; i < len; i++) {\n for (var j = 0, len_1 = this.items.length; j < len_1; j++) {\n if (items[i] === (isUniqueId ? this.items[j].id : this.items[j].text)) {\n this.items.splice(j, 1);\n refresh = true;\n break;\n }\n }\n }\n if (refresh && this.getULElement()) {\n this.createItems();\n }\n };\n DropDownButton.prototype.createPopup = function () {\n var _a;\n var div = this.createElement('div', {\n className: classNames.POPUP,\n id: this.element.id + '-popup'\n });\n document.body.appendChild(div);\n this.dropDown = new Popup(div, {\n relateTo: this.element,\n collision: { X: 'fit', Y: 'flip' },\n position: { X: 'left', Y: 'bottom' },\n targetType: 'relative',\n content: this.target ? this.getTargetElement() : '',\n enableRtl: this.enableRtl\n });\n this.dropDown.element.setAttribute('role', 'dialog');\n this.dropDown.element.setAttribute('aria-label', 'dropdown menu');\n if (!isNullOrUndefined(this.popupContent)) {\n this.popupContent.style.display = '';\n }\n if (this.dropDown.element.style.position === 'fixed') {\n this.dropDown.refreshPosition(this.element);\n }\n this.dropDown.hide();\n attributes(this.element, (_a = {},\n _a['aria-haspopup'] = this.items.length || this.target ? 'true' : 'false',\n _a['aria-expanded'] = 'false',\n _a['type'] = 'button',\n _a));\n if (this.cssClass) {\n addClass([div], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n this.isPopupCreated = true;\n };\n DropDownButton.prototype.getTargetElement = function () {\n if (this.createPopupOnClick && !this.isColorPicker() && !isNullOrUndefined(this.popupContent)) {\n return this.popupContent;\n }\n return typeof (this.target) === 'string' ? select(this.target) : this.target;\n };\n DropDownButton.prototype.createItems = function (appendItems) {\n var items = this.items;\n var showIcon = this.hasIcon(this.items, 'iconCss');\n var span;\n var item;\n var li;\n var eventArgs;\n var ul = this.getULElement();\n if (ul) {\n ul.innerHTML = '';\n }\n else {\n ul = this.createElement('ul', {\n attrs: { 'role': 'menu', 'tabindex': '0' }\n });\n }\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n var tempItem = item.text;\n li = this.createElement('li', {\n innerHTML: item.url ? '' : tempItem,\n className: item.separator ? classNames.ITEM + ' ' + classNames.SEPARATOR : classNames.ITEM,\n attrs: item.separator ? { 'role': 'separator', 'tabindex': '-1', 'aria-label': 'separator', 'aria-hidden': 'true' } : { 'role': 'menuitem', 'tabindex': '-1', 'aria-label': tempItem },\n id: item.id ? item.id : getUniqueID('e-' + this.getModuleName() + '-item')\n });\n if (this.enableHtmlSanitizer) {\n li.textContent = item.url ? '' : tempItem;\n }\n else {\n li.innerHTML = item.url ? '' : tempItem;\n }\n if (item.url) {\n li.appendChild(this.createAnchor(item));\n li.classList.add('e-url');\n }\n if (item.iconCss) {\n span = this.createElement('span', { className: classNames.ICON + ' ' + item.iconCss });\n if (item.url) {\n li.childNodes[0].appendChild(span);\n }\n else {\n li.insertBefore(span, li.childNodes[0]);\n }\n }\n else {\n if (showIcon && !item.separator) {\n li.classList.add('e-blank-icon');\n }\n }\n var beforeDisabled = item.disabled;\n if (item.disabled) {\n li.classList.add('e-disabled');\n }\n eventArgs = { item: item, element: li };\n this.trigger('beforeItemRender', eventArgs);\n var afterDisabled = eventArgs.item.disabled;\n if (beforeDisabled !== afterDisabled) {\n if (eventArgs.item.disabled) {\n li.classList.add('e-disabled');\n }\n else {\n li.classList.remove('e-disabled');\n }\n }\n ul.appendChild(li);\n }\n if (appendItems) {\n this.getPopUpElement().appendChild(ul);\n }\n if (showIcon) {\n setBlankIconStyle(this.getPopUpElement());\n }\n };\n DropDownButton.prototype.hasIcon = function (items, field) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (items[i][\"\" + field]) {\n return true;\n }\n }\n return false;\n };\n DropDownButton.prototype.createAnchor = function (item) {\n var tempItem = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(item.text) : item.text;\n return this.createElement('a', { className: 'e-menu-text e-menu-url', innerHTML: tempItem, attrs: { 'href': item.url } });\n };\n DropDownButton.prototype.initialize = function () {\n this.button = new Button({\n iconCss: this.iconCss, iconPosition: this.iconPosition, cssClass: this.cssClass, content: this.content,\n disabled: this.disabled, enableRtl: this.enableRtl, enablePersistence: this.enablePersistence\n });\n this.button.createElement = this.createElement;\n this.button.appendTo(this.element);\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.appendArrowSpan();\n this.setActiveElem([this.element]);\n this.element.setAttribute('tabindex', '0');\n this.element.setAttribute('aria-label', this.element.textContent ? this.element.textContent : 'dropdownbutton');\n if ((this.target && !this.isColorPicker() && !this.createPopupOnClick) || !this.createPopupOnClick) {\n this.createPopup();\n }\n else {\n this.isPopupCreated = false;\n if (this.target && !this.isColorPicker() && this.createPopupOnClick) {\n this.popupContent = this.getTargetElement();\n this.popupContent.style.display = 'none';\n }\n }\n };\n DropDownButton.prototype.isColorPicker = function () {\n if (!this.element) {\n return false;\n }\n var prevElem = this.element.previousSibling;\n if (prevElem && prevElem.classList && prevElem.classList.contains('e-split-colorpicker')) {\n return true;\n }\n return false;\n };\n DropDownButton.prototype.appendArrowSpan = function () {\n this.element.appendChild(this.createElement('span', {\n className: 'e-btn-icon e-icons ' + 'e-icon-' + (this.cssClass.indexOf(classNames.VERTICAL) > -1\n ? 'bottom' : 'right') + ' e-caret'\n }));\n };\n DropDownButton.prototype.setActiveElem = function (elem) {\n this.activeElem = elem;\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n DropDownButton.prototype.getModuleName = function () {\n return 'dropdown-btn';\n };\n DropDownButton.prototype.canOpen = function () {\n var val = false;\n if (this.isPopupCreated) {\n val = this.getPopUpElement().classList.contains('e-popup-close');\n }\n return val;\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n DropDownButton.prototype.destroy = function () {\n var _this = this;\n _super.prototype.destroy.call(this);\n if (this.getModuleName() === 'dropdown-btn') {\n var classList_1;\n if (this.element.querySelector('span.e-caret')) {\n detach(this.element.querySelector('span.e-caret'));\n }\n if (this.cssClass) {\n classList_1 = this.cssClass.split(' ');\n }\n this.button.destroy();\n if (classList_1) {\n removeClass([this.element], classList_1);\n }\n removeClass(this.activeElem, ['e-active']);\n var attrList = this.element.getAttribute('class') ? ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type']\n : ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type', 'class'];\n attrList.forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n this.popupUnWireEvents();\n this.destroyPopup();\n this.isPopupCreated = false;\n if (!this.disabled) {\n this.unWireEvents();\n }\n }\n };\n DropDownButton.prototype.destroyPopup = function () {\n if (this.isPopupCreated) {\n this.dropDown.destroy();\n if (this.getPopUpElement()) {\n var popupEle = document.getElementById(this.getPopUpElement().id);\n if (popupEle) {\n removeClass([popupEle], ['e-popup-open', 'e-popup-close']);\n detach(popupEle);\n }\n }\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated && this.dropDown) {\n this.dropDown.element = null;\n this.dropDown = undefined;\n }\n }\n this.isPopupCreated = false;\n };\n DropDownButton.prototype.getPopUpElement = function () {\n var val = null;\n if (!this.dropDown && this.activeElem[0].classList.contains('e-split-btn')) {\n var dropDownBtn = getComponent(this.activeElem[1], 'dropdown-btn');\n if (dropDownBtn) {\n this.dropDown = dropDownBtn.dropDown;\n }\n }\n if (this.dropDown) {\n val = this.dropDown.element;\n }\n return val;\n };\n DropDownButton.prototype.getULElement = function () {\n var val = null;\n if (this.getPopUpElement()) {\n val = this.getPopUpElement().children[0];\n }\n return val;\n };\n DropDownButton.prototype.wireEvents = function () {\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\n if (!this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'keydown', this.keyBoardHandler, this);\n EventHandler.add(window, 'resize', this.windowResize, this);\n };\n DropDownButton.prototype.windowResize = function () {\n if (!this.canOpen() && this.dropDown) {\n this.dropDown.refreshPosition(this.element);\n }\n };\n DropDownButton.prototype.popupWireEvents = function () {\n if (!this.delegateMousedownHandler) {\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\n }\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n if (popupElement) {\n EventHandler.add(popupElement, 'click', this.clickHandler, this);\n EventHandler.add(popupElement, 'keydown', this.keyBoardHandler, this);\n if (this.closeActionEvents) {\n EventHandler.add(popupElement, this.closeActionEvents, this.focusoutHandler, this);\n }\n }\n this.rippleFn = rippleEffect(popupElement, { selector: '.' + classNames.ITEM });\n };\n DropDownButton.prototype.popupUnWireEvents = function () {\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n if (popupElement && popupElement.parentElement) {\n EventHandler.remove(popupElement, 'click', this.clickHandler);\n EventHandler.remove(popupElement, 'keydown', this.keyBoardHandler);\n if (this.closeActionEvents) {\n EventHandler.remove(popupElement, this.closeActionEvents, this.focusoutHandler);\n }\n }\n if (isRippleEnabled && this.rippleFn) {\n this.rippleFn();\n }\n };\n /**\n * Handles the keyboard interactions.\n *\n * @param {KeyboardEventArgs} e - Specifies keyboard event args.\n * @returns {void}\n * @hidden\n */\n DropDownButton.prototype.keyBoardHandler = function (e) {\n if (e.target === this.element && (e.keyCode === 9 || (!e.altKey && e.keyCode === 40) || e.keyCode === 38)) {\n return;\n }\n switch (e.keyCode) {\n case 38:\n case 40:\n if (e.altKey && (e.keyCode === 38 || e.keyCode === 40)) {\n this.keyEventHandler(e);\n }\n else {\n this.upDownKeyHandler(e);\n }\n break;\n case 9:\n case 13:\n case 27:\n case 32:\n this.keyEventHandler(e);\n break;\n }\n };\n DropDownButton.prototype.upDownKeyHandler = function (e) {\n if (this.target && (e.keyCode === 38 || e.keyCode === 40)) {\n return;\n }\n e.preventDefault();\n upDownKeyHandler(this.getULElement(), e.keyCode);\n };\n DropDownButton.prototype.keyEventHandler = function (e) {\n if (this.target && (e.keyCode === 13 || e.keyCode === 9)) {\n return;\n }\n if (e.keyCode === 13 && this.activeElem[0].classList.contains('e-split-btn')) {\n this.triggerSelect(e);\n this.activeElem[0].focus();\n return;\n }\n if (e.target && e.target.className.indexOf('e-edit-template') > -1 && e.keyCode === 32) {\n return;\n }\n if (e.keyCode !== 9) {\n e.preventDefault();\n }\n if (e.keyCode === 27 || e.keyCode === 38 || e.keyCode === 9) {\n if (!this.canOpen()) {\n this.closePopup(e, this.element);\n }\n }\n else {\n this.clickHandler(e);\n }\n };\n DropDownButton.prototype.getLI = function (elem) {\n return elem.tagName === 'LI' ? elem : closest(elem, 'li');\n };\n DropDownButton.prototype.mousedownHandler = function (e) {\n var trgt = e.target;\n if (this.dropDown && !this.canOpen() && !(closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')\n || closest(trgt, '[id=\"' + this.element.id + '\"]'))) {\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.focusoutHandler = function (e) {\n if (this.isPopupCreated && !this.canOpen()) {\n var liTarget = e.relatedTarget;\n if (liTarget && liTarget.className.indexOf('e-item') > -1) {\n var li = this.getLI(liTarget);\n if (li) {\n var liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n var item = this.items[liIdx];\n if (item) {\n var selectEventArgs = { element: li, item: item, event: e };\n this.trigger('select', selectEventArgs);\n }\n }\n }\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.clickHandler = function (e) {\n var trgt = e.target;\n if (closest(trgt, '[id=\"' + this.element.id + '\"]')) {\n if (!this.createPopupOnClick || (this.target && this.target !== '' && !this.isColorPicker() && !this.createPopupOnClick)) {\n if (this.getPopUpElement().classList.contains('e-popup-close')) {\n this.openPopUp(e);\n }\n else {\n this.closePopup(e);\n }\n }\n else if (this.isPopupCreated) {\n this.closePopup(e, this.activeElem[0]);\n }\n else {\n this.createPopup();\n this.openPopUp(e);\n }\n }\n else {\n if (closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')) {\n var li = this.getLI(e.target);\n if (li) {\n this.triggerSelect(e);\n this.closePopup(e, this.activeElem[0]);\n }\n }\n }\n };\n DropDownButton.prototype.triggerSelect = function (e) {\n var eventArgs;\n var liIdx;\n var item;\n var li = this.getLI(e.target);\n if (li) {\n liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n item = this.items[liIdx];\n if (item) {\n eventArgs = { element: li, item: item, event: e };\n this.trigger('select', eventArgs);\n }\n }\n };\n DropDownButton.prototype.openPopUp = function (e) {\n var _this = this;\n if (e === void 0) { e = null; }\n var isReact = false;\n var popupElem = this.getPopUpElement();\n if (!this.target) {\n this.createItems(true);\n }\n else {\n if (this.activeElem.length > 1) {\n var splitButton = getComponent(this.activeElem[0], 'split-btn');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (splitButton.isReact && popupElem.childNodes.length < 1) {\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n splitButton.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n this.renderReactTemplates();\n }\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && popupElem.childNodes.length < 1) {\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n this.renderReactTemplates();\n }\n }\n }\n var ul = this.getULElement();\n this.popupWireEvents();\n var beforeOpenArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeOpen', beforeOpenArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var ul_1 = _this.getULElement();\n _this.dropDown.show(null, _this.element);\n addClass([_this.element], 'e-active');\n _this.element.setAttribute('aria-expanded', 'true');\n _this.element.setAttribute('aria-owns', _this.getPopUpElement().id);\n if (ul_1) {\n ul_1.focus();\n }\n if (_this.enableRtl && ul_1.parentElement.style.left !== '0px') {\n var wrapperWidth = void 0;\n if (_this.element.parentElement && _this.element.parentElement.classList.contains('e-split-btn-wrapper')) {\n wrapperWidth = _this.element.parentElement.offsetWidth;\n }\n else {\n wrapperWidth = _this.element.offsetWidth;\n }\n var popupRect = ul_1.parentElement.offsetWidth - wrapperWidth;\n var popupLeft = parseFloat(ul_1.parentElement.style.left) - popupRect;\n if (popupLeft < 0) {\n popupLeft = 0;\n }\n ul_1.parentElement.style.left = popupLeft + \"px\";\n }\n var openArgs = { element: ul_1, items: _this.items };\n _this.trigger('open', openArgs);\n }\n });\n };\n DropDownButton.prototype.closePopup = function (e, focusEle) {\n var _this = this;\n if (e === void 0) { e = null; }\n var ul = this.getULElement();\n var beforeCloseArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var popupElement = _this.getPopUpElement();\n if (popupElement) {\n EventHandler.remove(popupElement, 'keydown', _this.keyBoardHandler);\n }\n _this.popupUnWireEvents();\n var ul_2 = _this.getULElement();\n var selectedLi = void 0;\n if (ul_2) {\n selectedLi = ul_2.querySelector('.e-selected');\n }\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n _this.dropDown.hide();\n removeClass(_this.activeElem, 'e-active');\n _this.element.setAttribute('aria-expanded', 'false');\n _this.element.removeAttribute('aria-owns');\n if (focusEle) {\n focusEle.focus();\n }\n var closeArgs = { element: ul_2, items: _this.items };\n _this.trigger('close', closeArgs);\n if (!_this.target && ul_2) {\n detach(ul_2);\n }\n if (!_this.target || _this.isColorPicker() || (_this.target && !_this.isColorPicker())) {\n if (_this.createPopupOnClick) {\n _this.destroyPopup();\n }\n }\n }\n else {\n if (ul) {\n ul.focus();\n }\n }\n });\n };\n DropDownButton.prototype.unWireEvents = function () {\n if (!this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n EventHandler.remove(this.element, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated) {\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n }\n EventHandler.remove(window, 'resize', this.windowResize);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {DropDownButtonModel} newProp - Specifies new properties\n * @param {DropDownButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var btnModel = ['content', 'cssClass', 'iconCss', 'iconPosition', 'disabled', 'enableRtl'];\n this.button.setProperties(getModel(newProp, btnModel));\n var popupElement;\n if (this.isPopupCreated) {\n popupElement = this.getPopUpElement();\n this.dropDown.setProperties(getModel(newProp, ['enableRtl']));\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n this.unWireEvents();\n if (this.isPopupCreated && !this.canOpen()) {\n this.closePopup();\n }\n }\n else {\n this.wireEvents();\n }\n break;\n case 'cssClass':\n if (newProp.cssClass.indexOf(classNames.VERTICAL) > -1 || oldProp.cssClass.indexOf(classNames.VERTICAL) > -1) {\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n var arrowSpan = this.element.querySelector('span.e-caret');\n newProp.cssClass.indexOf(classNames.VERTICAL) > -1 ? classList(arrowSpan, ['e-icon-bottom'], ['e-icon-right'])\n : classList(arrowSpan, ['e-icon-right'], ['e-icon-bottom']);\n }\n if (this.isPopupCreated) {\n if (oldProp.cssClass) {\n removeClass([popupElement], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([popupElement], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n }\n break;\n case 'target':\n this.dropDown.content = this.getTargetElement();\n this.dropDown.dataBind();\n break;\n case 'items':\n if (this.isPopupCreated && this.getULElement()) {\n this.createItems();\n }\n break;\n case 'createPopupOnClick':\n if (newProp.createPopupOnClick) {\n this.destroyPopup();\n }\n else {\n this.createPopup();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to DropDownButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n DropDownButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], DropDownButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(true)\n ], DropDownButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Collection([], Item)\n ], DropDownButton.prototype, \"items\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"closeActionEvents\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"created\", void 0);\n DropDownButton = __decorate([\n NotifyPropertyChanges\n ], DropDownButton);\n return DropDownButton;\n}(Component));\nexport { DropDownButton };\n","/**\n * DropDownButton modules\n */\nexport * from './drop-down-button';\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path='../drop-down-button/drop-down-button-model.d.ts'/>\nimport { Event, remove, addClass, removeClass, detach, getValue, setValue } from '@syncfusion/ej2-base';\nimport { EventHandler, Collection, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { attributes, getUniqueID, getInstance, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { getModel, Item } from './../common/common';\nimport { DropDownButton } from '../drop-down-button/drop-down-button';\nvar RTL = 'e-rtl';\nvar TAGNAME = 'EJS-SPLITBUTTON';\n/**\n * SplitButton component has primary and secondary button. Primary button is used to select\n * default action and secondary button is used to toggle contextual overlays for displaying list of\n * action items. It can contain both text and images.\n * ```html\n * <button id=\"element\"></button>\n * ```\n * ```typescript\n * <script>\n * var splitBtnObj = new SplitButton({content: 'SplitButton'});\n * splitBtnObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar SplitButton = /** @class */ (function (_super) {\n __extends(SplitButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {SplitButtonModel} options - Specifies the splitbutton model\n * @param {string|HTMLButtonElement} element - Specifies the element\n * @hidden\n */\n function SplitButton(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize Angular support.\n *\n * @private\n * @returns {void}\n */\n SplitButton.prototype.preRender = function () {\n var ele = this.element;\n if (ele.tagName === TAGNAME) {\n var ejInstance = getValue('ej2_instances', ele);\n var btn = this.createElement('button', { attrs: { 'type': 'button' } });\n var wrapper = this.createElement(TAGNAME, { className: 'e-' + this.getModuleName() + '-wrapper' });\n for (var idx = 0, len = ele.attributes.length; idx < len; idx++) {\n btn.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue);\n }\n ele.parentNode.insertBefore(wrapper, ele);\n detach(ele);\n ele = btn;\n wrapper.appendChild(ele);\n setValue('ej2_instances', ejInstance, ele);\n this.wrapper = wrapper;\n this.element = ele;\n }\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n };\n /**\n * Initialize the Component rendering.\n *\n * @returns {void}\n * @private\n */\n SplitButton.prototype.render = function () {\n this.initWrapper();\n this.createPrimaryButton();\n this.renderControl();\n };\n SplitButton.prototype.renderControl = function () {\n this.createSecondaryButton();\n this.setActiveElem([this.element, this.secondaryBtnObj.element]);\n this.setAria();\n this.wireEvents();\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n SplitButton.prototype.addItems = function (items, text) {\n _super.prototype.addItems.call(this, items, text);\n this.secondaryBtnObj.items = this.items;\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n SplitButton.prototype.removeItems = function (items, isUniqueId) {\n _super.prototype.removeItems.call(this, items, isUniqueId);\n this.secondaryBtnObj.items = this.items;\n };\n SplitButton.prototype.initWrapper = function () {\n if (!this.wrapper) {\n this.wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n this.element.parentNode.insertBefore(this.wrapper, this.element);\n }\n this.element.classList.remove('e-' + this.getModuleName());\n if (this.enableRtl) {\n this.wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([this.wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n };\n SplitButton.prototype.createPrimaryButton = function () {\n var btnModel = {\n cssClass: this.cssClass,\n enableRtl: this.enableRtl,\n iconCss: this.iconCss,\n iconPosition: this.iconPosition,\n content: this.content,\n disabled: this.disabled\n };\n this.primaryBtnObj = new Button(btnModel);\n this.primaryBtnObj.createElement = this.createElement;\n this.primaryBtnObj.appendTo(this.element);\n this.element.classList.add('e-' + this.getModuleName());\n this.element.type = 'button';\n this.wrapper.appendChild(this.element);\n };\n SplitButton.prototype.createSecondaryButton = function () {\n var _this = this;\n var btnElem = this.createElement('button', {\n className: 'e-icon-btn',\n attrs: { 'tabindex': '-1' },\n id: this.element.id + '_dropdownbtn'\n });\n this.wrapper.appendChild(btnElem);\n var dropDownBtnModel = {\n cssClass: this.cssClass,\n disabled: this.disabled,\n enableRtl: this.enableRtl,\n items: this.items,\n target: this.target,\n createPopupOnClick: this.createPopupOnClick\n };\n dropDownBtnModel.beforeItemRender = function (args) {\n if (_this.createPopupOnClick) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n _this.trigger('beforeItemRender', args);\n };\n dropDownBtnModel.open = function (args) {\n _this.trigger('open', args);\n };\n dropDownBtnModel.close = function (args) {\n _this.trigger('close', args);\n };\n dropDownBtnModel.select = function (args) {\n _this.trigger('select', args);\n };\n dropDownBtnModel.beforeOpen = function (args) {\n if (_this.createPopupOnClick && _this.items.length == 0) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n var callBackPromise = new Deferred();\n _this.trigger('beforeOpen', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n dropDownBtnModel.beforeClose = function (args) {\n var callBackPromise = new Deferred();\n _this.trigger('beforeClose', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n this.secondaryBtnObj = new DropDownButton(dropDownBtnModel);\n this.secondaryBtnObj.createElement = this.createElement;\n this.secondaryBtnObj.appendTo(btnElem);\n if (!this.createPopupOnClick) {\n this.secondaryBtnObj.dropDown.relateTo = this.wrapper;\n this.dropDown = this.secondaryBtnObj.dropDown;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.isPopupCreated = this.secondaryBtnObj.isPopupCreated;\n this.secondaryBtnObj.activeElem = [this.element, this.secondaryBtnObj.element];\n this.secondaryBtnObj.element.querySelector('.e-btn-icon').classList.remove('e-icon-right');\n if (this.disabled) {\n this.wrapper.classList.add('e-splitbtn-disabled');\n }\n };\n SplitButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-expanded': 'false', 'aria-haspopup': 'true',\n 'aria-label': this.element.textContent ? this.element.textContent + ' splitbutton' : 'splitbutton', 'aria-owns': this.element.id + '_dropdownbtn-popup'\n });\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n SplitButton.prototype.getModuleName = function () {\n return 'split-btn';\n };\n /**\n * To open/close SplitButton popup based on current state of the SplitButton.\n *\n * @returns {void}\n */\n SplitButton.prototype.toggle = function () {\n this.secondaryBtnObj.toggle();\n };\n SplitButton.prototype.destroy = function () {\n var _this = this;\n var classList = [RTL];\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n if (this.element) {\n var element = document.getElementById(this.element.id);\n if (element && element.parentElement === this.wrapper) {\n if (this.wrapper.tagName === TAGNAME) {\n this.wrapper.innerHTML = '';\n removeClass([this.wrapper], ['e-rtl', 'e-' + this.getModuleName() + '-wrapper']);\n removeClass([this.wrapper], this.cssClass.split(' '));\n }\n else {\n removeClass([this.element], classList);\n ['aria-label', 'aria-haspopup', 'aria-expanded', 'aria-owns', 'type'].forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n this.wrapper.parentNode.insertBefore(this.element, this.wrapper);\n remove(this.wrapper);\n }\n this.unWireEvents();\n }\n }\n this.primaryBtnObj.destroy();\n this.secondaryBtnObj.destroy();\n _super.prototype.destroy.call(this);\n if (this.element && !this.element.getAttribute('class')) {\n this.element.removeAttribute('class');\n }\n if (this.refreshing && this.isAngular) {\n this.element = this.wrapper;\n ['e-control', 'e-split-btn', 'e-lib'].forEach(function (key) {\n _this.element.classList.add(key);\n });\n setValue('ej2_instances', [this], this.element);\n }\n this.wrapper = null;\n };\n SplitButton.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.primaryBtnClickHandler, this);\n new KeyboardEvents(this.element, {\n keyAction: this.btnKeyBoardHandler.bind(this),\n keyConfigs: {\n altdownarrow: 'alt+downarrow',\n enter: 'enter'\n }\n });\n };\n SplitButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.primaryBtnClickHandler);\n getInstance(this.element, KeyboardEvents).destroy();\n };\n SplitButton.prototype.primaryBtnClickHandler = function () {\n this.trigger('click', { element: this.element });\n };\n SplitButton.prototype.btnKeyBoardHandler = function (e) {\n switch (e.action) {\n case 'altdownarrow':\n this.clickHandler(e);\n break;\n case 'enter':\n this.clickHandler(e);\n if (this.getPopUpElement() && !this.getPopUpElement().classList.contains('e-popup-close')) {\n this.element.classList.remove('e-active');\n this.secondaryBtnObj.element.classList.add('e-active');\n }\n else {\n this.secondaryBtnObj.element.classList.remove('e-active');\n }\n break;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {SplitButtonModel} newProp - Specifies new properties\n * @param {SplitButtonModel} oldProp - Specifies old properties\n * @returns {void}\n */\n SplitButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var model = ['content', 'iconCss', 'iconPosition', 'cssClass', 'disabled', 'enableRtl'];\n this.primaryBtnObj.setProperties(getModel(newProp, model));\n model = ['beforeOpen', 'beforeItemRender', 'select', 'open',\n 'close', 'cssClass', 'disabled', 'enableRtl', 'createPopupOnClick'];\n if (Object.keys(newProp).indexOf('items') > -1) {\n this.secondaryBtnObj.items = newProp.items;\n this.secondaryBtnObj.dataBind();\n }\n this.secondaryBtnObj.setProperties(getModel(newProp, model));\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.wrapper], oldProp.cssClass.split(' '));\n }\n addClass([this.wrapper], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n addClass([this.wrapper], RTL);\n }\n else {\n removeClass([this.wrapper], RTL);\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n addClass([this.wrapper], 'e-splitbtn-disabled');\n }\n else {\n removeClass([this.wrapper], 'e-splitbtn-disabled');\n }\n }\n }\n };\n /**\n * Sets the focus to SplitButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n SplitButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], SplitButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], SplitButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Collection([], Item)\n ], SplitButton.prototype, \"items\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"target\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"click\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"created\", void 0);\n SplitButton = __decorate([\n NotifyPropertyChanges\n ], SplitButton);\n return SplitButton;\n}(DropDownButton));\nexport { SplitButton };\n/**\n * Deferred is used to handle asynchronous operation.\n */\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n var _this = this;\n /**\n * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future.\n */\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n /**\n * Defines the callback function triggers when the Deferred object is rejected.\n */\n this.catch = this.promise.catch.bind(this.promise);\n /**\n * Defines the callback function triggers when the Deferred object is resolved.\n */\n this.then = this.promise.then.bind(this.promise);\n }\n return Deferred;\n}());\nexport { Deferred };\n","/**\n * Split Button modules\n */\nexport * from './split-button';\n","import { addClass, createElement as internalCreateElement, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\n/**\n * Initialize ButtonGroup CSS component with specified properties.\n * ```html\n * <div id='buttongroup'>\n * <button></button>\n * <button></button>\n * <button></button>\n * </div>\n * ```\n * ```typescript\n * createButtonGroup('#buttongroup', {\n * cssClass: 'e-outline',\n * buttons: [\n * { content: 'Day' },\n * { content: 'Week' },\n * { content: 'Work Week'}\n * ]\n * });\n * ```\n *\n * @param {string} selector\n * @param {CreateButtonGroupModel} options\n * @returns HTMLElement\n */\n/**\n * Creates button group.\n *\n * @param {string} selector - Specifies the selector.\n * @param {CreateButtonGroupModel} options - Specifies the button group model.\n * @param {Function} createElement - Specifies the element.\n * @returns {HTMLElement} - Button group element.\n */\nexport function createButtonGroup(selector, options, createElement) {\n if (options === void 0) { options = {}; }\n var child;\n var btnElem;\n var nextChild;\n var btnModel;\n if (isNullOrUndefined(createElement)) {\n createElement = internalCreateElement;\n }\n var wrapper = document.querySelector(selector);\n addClass([wrapper], ['e-btn-group', 'e-css']);\n wrapper.setAttribute('role', 'group');\n var childs = wrapper.children;\n options.buttons = options.buttons || [];\n for (var i = 0, j = 0; j < childs.length; i++, j++) {\n child = childs[j];\n btnModel = options.buttons[i];\n if (btnModel !== null) {\n if (child.tagName === 'BUTTON') {\n btnElem = child;\n }\n else {\n btnElem = createElement('label');\n nextChild = childs[j + 1];\n if (nextChild) {\n wrapper.insertBefore(btnElem, nextChild);\n }\n else {\n wrapper.appendChild(btnElem);\n }\n if (child.id) {\n btnElem.setAttribute('for', child.id);\n }\n if (btnModel && btnModel.disabled) {\n child.disabled = true;\n }\n j++;\n }\n if (options.cssClass && btnModel && !btnModel.cssClass) {\n btnModel.cssClass = options.cssClass;\n }\n new Button(btnModel || {}, btnElem);\n }\n }\n return wrapper;\n}\n","/**\n * ButtonGroup modules\n */\nexport * from './button-group';\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { EventHandler, Property, NotifyPropertyChanges, Animation, attributes, animationMode } from '@syncfusion/ej2-base';\nimport { Event, remove, removeClass } from '@syncfusion/ej2-base';\nimport { Complex, ChildProperty, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nvar HIDESPINNER = 'e-hide-spinner';\nvar PROGRESS = 'e-progress';\nvar PROGRESSACTIVE = 'e-progress-active';\nvar CONTENTCLS = 'e-btn-content';\n/**\n * Defines the spin settings.\n */\nvar SpinSettings = /** @class */ (function (_super) {\n __extends(SpinSettings, _super);\n function SpinSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], SpinSettings.prototype, \"template\", void 0);\n __decorate([\n Property(16)\n ], SpinSettings.prototype, \"width\", void 0);\n __decorate([\n Property('Left')\n ], SpinSettings.prototype, \"position\", void 0);\n return SpinSettings;\n}(ChildProperty));\nexport { SpinSettings };\n/**\n * Defines the animation settings.\n */\nvar AnimationSettings = /** @class */ (function (_super) {\n __extends(AnimationSettings, _super);\n function AnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(400)\n ], AnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('None')\n ], AnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property('ease')\n ], AnimationSettings.prototype, \"easing\", void 0);\n return AnimationSettings;\n}(ChildProperty));\nexport { AnimationSettings };\n/**\n * The ProgressButton visualizes the progression of an operation to indicate the user\n * that a process is happening in the background with visual representation.\n * ```html\n * <button id=\"element\"></button>\n * ```\n * ```typescript\n * <script>\n * var progressButtonObj = new ProgressButton({ content: 'Progress Button' });\n * progressButtonObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar ProgressButton = /** @class */ (function (_super) {\n __extends(ProgressButton, _super);\n /**\n * Constructor for creating the widget.\n *\n * @param {ProgressButtonModel} options - Specifies progress button model\n * @param {string|HTMLButtonElement} element - Specifies element\n */\n function ProgressButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.step = 1;\n return _this;\n }\n ProgressButton.prototype.preRender = function () {\n _super.prototype.preRender.call(this);\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n ProgressButton.prototype.render = function () {\n _super.prototype.render.call(this);\n this.init();\n this.wireEvents();\n this.setAria();\n this.renderComplete();\n };\n /**\n * Starts the button progress at the specified percent.\n *\n * @param {number} percent - Starts the button progress at this percent.\n * @returns {void}\n */\n ProgressButton.prototype.start = function (percent) {\n this.isPaused = false;\n this.startProgress(percent ? percent : this.percent, this.progressTime);\n };\n /**\n * Stops the button progress.\n *\n * @returns {void}\n */\n ProgressButton.prototype.stop = function () {\n this.isPaused = true;\n cancelAnimationFrame(this.timerId);\n };\n /**\n * Complete the button progress.\n *\n * @returns {void}\n */\n ProgressButton.prototype.progressComplete = function () {\n this.isPaused = false;\n this.finishProgress();\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n ProgressButton.prototype.getModuleName = function () {\n return 'progress-btn';\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n ProgressButton.prototype.destroy = function () {\n var _this = this;\n var classList = [HIDESPINNER, PROGRESSACTIVE, 'e-round-corner', 'e-' + _super.prototype.getModuleName.call(this),\n 'e-spin-' + this.spinSettings.position.toLowerCase()];\n _super.prototype.destroy.call(this);\n this.unWireEvents();\n this.element.innerHTML = '';\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n removeClass([this.element], classList);\n var css = this.element.getAttribute('class') ? ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow']\n : ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow', 'class'];\n css.forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n if (this.disabled) {\n this.element.removeAttribute('disabled');\n }\n };\n ProgressButton.prototype.init = function () {\n this.element.classList.add('e-' + _super.prototype.getModuleName.call(this));\n this.setContent();\n this.createSpinner();\n if (this.enableProgress) {\n this.createProgress();\n }\n };\n ProgressButton.prototype.createSpinner = function () {\n var spinner = this.createElement('span', { className: 'e-spinner' });\n this.setSpinPosition(spinner);\n createSpinner({\n target: spinner, width: this.spinSettings.width || 16, template: this.spinSettings.template\n }, this.createElement);\n };\n ProgressButton.prototype.getSpinner = function () {\n return this.element.getElementsByClassName('e-spinner')[0];\n };\n ProgressButton.prototype.getProgress = function () {\n return this.element.getElementsByClassName(PROGRESS)[0];\n };\n ProgressButton.prototype.setSpinPosition = function (ele) {\n var position = this.spinSettings.position || 'Left';\n if (position === 'Left' || position === 'Top') {\n this.element.insertBefore(ele, this.element.getElementsByClassName(CONTENTCLS)[0]);\n }\n else {\n this.element.appendChild(ele);\n }\n this.element.classList.add('e-spin-' + position.toLowerCase());\n };\n ProgressButton.prototype.createProgress = function () {\n this.element.appendChild(this.createElement('span', { className: PROGRESS }));\n };\n ProgressButton.prototype.setContent = function () {\n var cont;\n cont = this.element.innerHTML;\n if (this.enableHtmlSanitizer) {\n cont = SanitizeHtmlHelper.sanitize(this.element.innerHTML);\n }\n this.element.innerHTML = '';\n this.element.appendChild(this.createElement('span', { className: CONTENTCLS, innerHTML: cont }));\n };\n ProgressButton.prototype.setContentIcon = function (content) {\n var contElem = this.createElement('span', { className: CONTENTCLS, innerHTML: content });\n if (this.iconCss) {\n var span = this.createElement('span', { className: 'e-btn-icon ' + this.iconCss });\n if (!this.element.textContent.trim()) {\n this.element.classList.add('e-icon-btn');\n }\n else {\n span.classList.add('e-icon-' + this.iconPosition.toLowerCase());\n if (this.iconPosition === 'Top' || this.iconPosition === 'Bottom') {\n this.element.classList.add('e-' + this.iconPosition.toLowerCase() + '-icon-btn');\n }\n }\n var node = contElem.childNodes[0];\n if (node && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n contElem.insertBefore(span, node);\n }\n else {\n contElem.appendChild(span);\n }\n }\n this.element.appendChild(contElem);\n };\n ProgressButton.prototype.clickHandler = function () {\n if (this.element.classList.contains(PROGRESSACTIVE)) {\n return;\n }\n this.startProgress();\n };\n ProgressButton.prototype.startProgress = function (percent, progressTime) {\n var clsList = this.element.classList;\n var isVertical = clsList.contains('e-vertical');\n clsList.add(PROGRESSACTIVE);\n if (!(clsList.contains(HIDESPINNER))) {\n showSpinner(this.element.querySelector(\".e-spinner\"));\n }\n this.startAnimate(Date.now(), progressTime ? progressTime : 0, progressTime ? Date.now() - (this.duration * 1 / 100) : Date.now(), percent ? percent : 0, 0, this.step, 0, isVertical);\n this.startContAnimate();\n };\n ProgressButton.prototype.startAnimate = function (timestamp, progressTime, prevTime, percent, prevPercent, step, prevProgressTime, isVertical) {\n var _this = this;\n try {\n var timeDiff = timestamp - prevTime;\n var stepTime = this.duration * step / 100;\n var timeDiffBuffer_1 = timeDiff ? (timeDiff < stepTime ? timeDiff - stepTime : timeDiff % stepTime) : 0;\n this.progressTime = progressTime = progressTime + timeDiff - timeDiffBuffer_1;\n prevTime = timestamp - timeDiffBuffer_1;\n percent = percent + (timeDiff - timeDiffBuffer_1) / this.duration * 100;\n prevPercent = ((progressTime - prevProgressTime) % stepTime === 0 || percent === 100) ? percent : prevPercent;\n var args = { percent: prevPercent, currentDuration: progressTime, step: step };\n this.eIsVertical = isVertical;\n if (percent === 0) {\n this.trigger('begin', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n else if (percent === 100 || progressTime === this.duration) {\n this.trigger('end', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n else {\n this.trigger('progress', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n }\n catch (e) {\n cancelAnimationFrame(this.timerId);\n this.trigger('fail', e);\n }\n };\n ProgressButton.prototype.successCallback = function (args, perc, pPerc, prgTim, pPrgTim, timDif, pTim) {\n var _this = this;\n var percent = perc;\n var prevPercent = pPerc;\n var timeDiffBuffer = timDif;\n var progressTime = prgTim;\n var prevProgressTime = pPrgTim;\n var prevTime = pTim;\n var isVertical = this.eIsVertical;\n if (percent !== args.percent && args.percent !== prevPercent) {\n percent = args.percent;\n }\n this.percent = percent;\n this.step = args.step;\n if ((progressTime - prevProgressTime) % (this.duration * args.step / 100) === 0 || percent === 100) {\n this.timerId = requestAnimationFrame(function () {\n if (_this.enableProgress && _this.getProgress()) {\n _this.getProgress().style[isVertical ? 'height' : 'width'] = percent + '%';\n }\n _this.element.setAttribute('aria-valuenow', percent.toString());\n });\n prevPercent = percent;\n prevProgressTime = progressTime;\n }\n if (!this.isPaused) {\n if (progressTime < this.duration && percent < 100) {\n this.interval = window.setTimeout(function () {\n _this.startAnimate(Date.now(), progressTime, prevTime, percent, prevPercent, args.step, prevProgressTime, isVertical);\n }, (this.duration / 100) - timeDiffBuffer);\n }\n else {\n this.interval = window.setTimeout(function () {\n _this.progressTime = _this.percent = 0;\n if (_this.enableProgress && _this.getProgress()) {\n _this.getProgress().style[isVertical ? 'height' : 'width'] = '0%';\n }\n _this.element.setAttribute('aria-valuenow', '0');\n _this.hideSpin();\n }, 100);\n }\n }\n };\n ProgressButton.prototype.startContAnimate = function () {\n var _this = this;\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\n if (this.animationSettings.effect !== 'None') {\n (new Animation({})).animate(ele, {\n duration: (this.animationSettings.duration === 0 && animationMode === 'Enable') ? 400 : this.animationSettings.duration,\n name: 'Progress' + this.animationSettings.effect,\n timingFunction: this.animationSettings.easing,\n begin: function () {\n if (_this.spinSettings.position === 'Center') {\n _this.setSpinnerSize();\n }\n },\n end: function () {\n ele.classList.add('e-animate-end');\n }\n });\n }\n else if (this.spinSettings.position === 'Center') {\n this.setSpinnerSize();\n }\n };\n ProgressButton.prototype.finishProgress = function () {\n var clsList = this.element.classList;\n var isVertical = clsList.contains('e-vertical');\n clsList.add(PROGRESSACTIVE);\n var count = 100;\n for (var i = this.percent; i < count; i++) {\n i += 10;\n if (i > 100) {\n i = 100;\n }\n if (this.enableProgress && this.getProgress()) {\n this.getProgress().style[isVertical ? 'height' : 'width'] = (this.percent < 100) ? (i + '%') : '100%';\n }\n }\n this.element.setAttribute('aria-valuenow', '0');\n this.hideSpin();\n var args = { step: this.step, currentDuration: this.progressTime, percent: 100 };\n clearTimeout(this.interval);\n this.trigger('end', args);\n this.progressTime = this.percent = 0;\n };\n ProgressButton.prototype.setSpinnerSize = function () {\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\n var spinner = this.getSpinner();\n spinner.style.width = Math.max(spinner.offsetWidth, ele.offsetWidth) + 'px';\n spinner.style.height = Math.max(spinner.offsetHeight, ele.offsetHeight) + 'px';\n ele.classList.add('e-cont-animate');\n };\n ProgressButton.prototype.hideSpin = function () {\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\n if (!(this.element.classList.contains(HIDESPINNER))) {\n hideSpinner(this.element.querySelector(\".e-spinner\"));\n }\n this.element.classList.remove(PROGRESSACTIVE);\n if (this.animationSettings.effect !== 'None') {\n cont.classList.remove('e-animate-end');\n }\n if (this.spinSettings.position === 'Center') {\n var ele = this.getSpinner();\n cont.classList.remove('e-cont-animate');\n ele.style.width = 'auto';\n ele.style.height = 'auto';\n }\n };\n ProgressButton.prototype.setIconSpan = function () {\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\n var iconSpan = this.element.getElementsByClassName('e-btn-icon')[0];\n if (cont.childNodes[0] && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n cont.insertBefore(iconSpan, cont.childNodes[0]);\n }\n else {\n cont.appendChild(iconSpan);\n }\n };\n ProgressButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-label': this.element.textContent + ' progress'\n });\n };\n ProgressButton.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n };\n ProgressButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ProgressButtonModel} newProp - Specifies new properties\n * @param {ProgressButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n ProgressButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var ele = this.element;\n var isSpinning = false;\n var clsList = this.element.querySelector('.e-spinner-pane').classList;\n if (clsList.contains('e-spin-show')) {\n isSpinning = true;\n }\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n this.setContent();\n this.createSpinner();\n if (isSpinning) {\n showSpinner(this.element.querySelector(\".e-spinner\"));\n isSpinning = false;\n }\n if (this.enableProgress) {\n this.createProgress();\n }\n ele.setAttribute('aria-label', ele.textContent + ' progress');\n break;\n case 'iconCss':\n if (!oldProp.iconCss) {\n this.setIconSpan();\n }\n break;\n case 'iconPosition':\n this.setIconSpan();\n break;\n case 'enableProgress':\n if (newProp.enableProgress) {\n this.createProgress();\n }\n else {\n remove(this.getProgress());\n }\n break;\n case 'spinSettings':\n if (newProp.spinSettings.position) {\n ele.classList.remove('e-spin-' + oldProp.spinSettings.position.toLowerCase());\n this.setSpinPosition(this.getSpinner());\n }\n if (newProp.spinSettings.template || newProp.spinSettings.width) {\n ele.removeChild(this.getSpinner());\n this.createSpinner();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to ProgressButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n ProgressButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"enableProgress\", void 0);\n __decorate([\n Property(2000)\n ], ProgressButton.prototype, \"duration\", void 0);\n __decorate([\n Property('Left')\n ], ProgressButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"isPrimary\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"content\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"isToggle\", void 0);\n __decorate([\n Property(true)\n ], ProgressButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({}, SpinSettings)\n ], ProgressButton.prototype, \"spinSettings\", void 0);\n __decorate([\n Complex({}, AnimationSettings)\n ], ProgressButton.prototype, \"animationSettings\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"begin\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"progress\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"end\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"fail\", void 0);\n ProgressButton = __decorate([\n NotifyPropertyChanges\n ], ProgressButton);\n return ProgressButton;\n}(Button));\nexport { ProgressButton };\n","/**\n * ProgressButton modules\n */\nexport * from './progress-button';\n","/**\n * SplitButton all module\n */\nexport * from './common/index';\nexport * from './drop-down-button/index';\nexport * from './split-button/index';\nexport * from './button-group/index';\nexport * from './progress-button/index';\n"],"names":["this","__extends","__decorate","classList","createElement","internalCreateElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ej2-splitbuttons.es5.js","sources":["../../src/common/common.js","../../src/drop-down-button/drop-down-button.js","../../src/split-button/split-button.js","../../src/button-group/button-group.js","../../src/progress-button/progress-button.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, extend, deleteObject, Property, addClass, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @param {Object} props - Specifies the properties\n * @param {string[]} model - Specifies the model\n * @returns {Object} Component Model\n */\nexport function getModel(props, model) {\n var obj = extend({}, props);\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((model).indexOf(prop) < 0) {\n deleteObject(obj, prop);\n }\n }\n return obj;\n}\n/** @hidden\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {number} keyCode - Specifies the keycode\n * @returns {void}\n */\nexport function upDownKeyHandler(ul, keyCode) {\n var defaultIdx = keyCode === 40 ? 0 : ul.childElementCount - 1;\n var liIdx = defaultIdx;\n var li;\n var selectedLi = ul.querySelector('.e-selected');\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains('e-focused')) {\n li = ul.children[i];\n liIdx = i;\n li.classList.remove('e-focused');\n if (keyCode === 40) {\n liIdx++;\n }\n else {\n liIdx--;\n }\n if (liIdx === (keyCode === 40 ? ul.childElementCount : -1)) {\n liIdx = defaultIdx;\n }\n }\n }\n li = ul.children[liIdx];\n liIdx = isValidLI(ul, li, liIdx, keyCode);\n if (liIdx !== -1) {\n addClass([ul.children[liIdx]], 'e-focused');\n ul.children[liIdx].focus();\n }\n}\n/**\n * Get Valid LI element\n *\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {Element} li - Specifies the LI element\n * @param {number} index - Specifies the index\n * @param {number} keyCode - Specifies the keycode\n * @param {number} count - Specifies the count\n * @returns {number} - Index\n */\nfunction isValidLI(ul, li, index, keyCode, count) {\n if (count === void 0) { count = 0; }\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n if (index === (keyCode === 40 ? ul.childElementCount - 1 : 0)) {\n index = keyCode === 40 ? 0 : ul.childElementCount - 1;\n }\n else {\n if (keyCode === 40) {\n index++;\n }\n else {\n index--;\n }\n }\n }\n li = ul.children[index];\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n count++;\n if (count === ul.childElementCount) {\n return index = -1;\n }\n index = isValidLI(ul, li, index, keyCode, count);\n }\n return index;\n}\n/** @hidden\n * @param {HTMLElement} popup - Specifies the popup element.\n * @returns {void}\n */\nexport function setBlankIconStyle(popup, blankIcon) {\n var blankIconList = [].slice.call(popup.getElementsByClassName('e-blank-icon'));\n if (blankIcon) {\n var menuItem = [].slice.call(popup.getElementsByClassName('e-item'));\n menuItem.forEach(function (li) {\n if (li.style.paddingLeft || li.style.paddingRight) {\n li.removeAttribute('style');\n }\n });\n }\n if (!blankIconList.length) {\n return;\n }\n var iconLi = popup.querySelector('.e-item:not(.e-blank-icon):not(.e-separator)');\n if (isNullOrUndefined(iconLi)) {\n return;\n }\n if (iconLi.classList.contains('e-url')) {\n iconLi = iconLi.querySelector('.e-menu-url');\n }\n var icon = iconLi.querySelector('.e-menu-icon');\n var cssProp;\n var enableRtl = popup.classList.contains('e-rtl');\n if (enableRtl) {\n cssProp = { padding: 'paddingRight', margin: 'marginLeft' };\n }\n else {\n cssProp = { padding: 'paddingLeft', margin: 'marginRight' };\n }\n /* eslint-disable */\n var size = parseInt(getComputedStyle(icon).fontSize, 10) + parseInt((enableRtl ? getComputedStyle(icon)[cssProp.margin] : getComputedStyle(icon)[cssProp.margin]), 10)\n + parseInt(getComputedStyle(iconLi).paddingLeft, 10) + \"px\";\n blankIconList.forEach(function (li) {\n if (li.classList.contains('e-url')) {\n li.querySelector('.e-menu-url').style[cssProp.padding] = size;\n }\n else {\n li.style[cssProp.padding] = size;\n }\n });\n /* eslint-enable */\n}\n/**\n * Defines the items of Split Button/DropDownButton.\n */\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Item.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"id\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"separator\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"url\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"disabled\", void 0);\n return Item;\n}(ChildProperty));\nexport { Item };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Collection, Event, NotifyPropertyChanges, detach, Property, EventHandler, isRippleEnabled, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { addClass, getUniqueID, rippleEffect, getComponent } from '@syncfusion/ej2-base';\nimport { attributes, Component, closest, select, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { classList, removeClass } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { upDownKeyHandler } from './../common/common';\nimport { getModel, Item, setBlankIconStyle } from './../common/common';\nvar classNames = {\n DISABLED: 'e-disabled',\n FOCUS: 'e-focused',\n ICON: 'e-menu-icon',\n ITEM: 'e-item',\n POPUP: 'e-dropdown-popup',\n RTL: 'e-rtl',\n SEPARATOR: 'e-separator',\n VERTICAL: 'e-vertical'\n};\n/**\n * DropDownButton component is used to toggle contextual overlays for displaying list of action items.\n * It can contain both text and images.\n * ```html\n * <button id=\"element\">DropDownButton</button>\n * ```\n * ```typescript\n * <script>\n * var dropDownButtonObj = new DropDownButton({items: [{ text: 'Action1' }, { text: 'Action2' },{ text: 'Action3' }]);\n * dropDownButtonObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar DropDownButton = /** @class */ (function (_super) {\n __extends(DropDownButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {DropDownButtonModel} options - Specifies dropdown button model\n * @param {string|HTMLButtonElement} element - Specifies element\n * @hidden\n */\n function DropDownButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isPopupCreated = true;\n return _this;\n }\n DropDownButton.prototype.preRender = function () {\n /** */\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n DropDownButton.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * To open/close DropDownButton popup based on current state of the DropDownButton.\n *\n * @returns {void}\n */\n DropDownButton.prototype.toggle = function () {\n if (this.canOpen()) {\n this.openPopUp();\n }\n else if (this.createPopupOnClick && !this.isPopupCreated) {\n this.createPopup();\n this.openPopUp();\n }\n else {\n this.closePopup();\n }\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.render = function () {\n this.initialize();\n if (!this.disabled) {\n this.wireEvents();\n }\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n DropDownButton.prototype.addItems = function (items, text) {\n var newItem;\n var idx = this.items.length;\n for (var j = 0, len = this.items.length; j < len; j++) {\n if (text === this.items[j].text) {\n idx = j;\n break;\n }\n }\n for (var i = items.length - 1; i >= 0; i--) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newItem = new Item(this, 'items', items[i], true);\n this.items.splice(idx, 0, newItem);\n }\n if (!this.canOpen()) {\n this.createItems();\n }\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n DropDownButton.prototype.removeItems = function (items, isUniqueId) {\n var refresh = false;\n for (var i = 0, len = items.length; i < len; i++) {\n for (var j = 0, len_1 = this.items.length; j < len_1; j++) {\n if (items[i] === (isUniqueId ? this.items[j].id : this.items[j].text)) {\n this.items.splice(j, 1);\n refresh = true;\n break;\n }\n }\n }\n if (refresh && this.getULElement()) {\n this.createItems();\n }\n };\n DropDownButton.prototype.createPopup = function () {\n var _a;\n var div = this.createElement('div', {\n className: classNames.POPUP,\n id: this.element.id + '-popup'\n });\n document.body.appendChild(div);\n this.dropDown = new Popup(div, {\n relateTo: this.element,\n collision: { X: 'fit', Y: 'flip' },\n position: { X: 'left', Y: 'bottom' },\n targetType: 'relative',\n content: this.target ? this.getTargetElement() : '',\n enableRtl: this.enableRtl\n });\n this.dropDown.element.setAttribute('role', 'dialog');\n this.dropDown.element.setAttribute('aria-label', 'dropdown menu');\n if (!isNullOrUndefined(this.popupContent)) {\n this.popupContent.style.display = '';\n }\n if (this.dropDown.element.style.position === 'fixed') {\n this.dropDown.refreshPosition(this.element);\n }\n this.dropDown.hide();\n attributes(this.element, (_a = {},\n _a['aria-haspopup'] = this.items.length || this.target ? 'true' : 'false',\n _a['aria-expanded'] = 'false',\n _a['type'] = 'button',\n _a));\n if (this.cssClass) {\n addClass([div], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n this.isPopupCreated = true;\n };\n DropDownButton.prototype.getTargetElement = function () {\n if (this.createPopupOnClick && !this.isColorPicker() && !isNullOrUndefined(this.popupContent)) {\n return this.popupContent;\n }\n return typeof (this.target) === 'string' ? select(this.target) : this.target;\n };\n DropDownButton.prototype.createItems = function (appendItems) {\n var items = this.items;\n var showIcon = this.hasIcon(this.items, 'iconCss');\n var span;\n var item;\n var li;\n var eventArgs;\n var ul = this.getULElement();\n if (ul) {\n ul.innerHTML = '';\n }\n else {\n ul = this.createElement('ul', {\n attrs: { 'role': 'menu', 'tabindex': '0' }\n });\n }\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n var tempItem = item.text;\n li = this.createElement('li', {\n innerHTML: item.url ? '' : tempItem,\n className: item.separator ? classNames.ITEM + ' ' + classNames.SEPARATOR : classNames.ITEM,\n attrs: item.separator ? { 'role': 'separator', 'tabindex': '-1', 'aria-label': 'separator', 'aria-hidden': 'true' } : { 'role': 'menuitem', 'tabindex': '-1', 'aria-label': tempItem },\n id: item.id ? item.id : getUniqueID('e-' + this.getModuleName() + '-item')\n });\n if (this.enableHtmlSanitizer) {\n li.textContent = item.url ? '' : tempItem;\n }\n else {\n li.innerHTML = item.url ? '' : tempItem;\n }\n if (item.url) {\n li.appendChild(this.createAnchor(item));\n li.classList.add('e-url');\n }\n if (item.iconCss) {\n span = this.createElement('span', { className: classNames.ICON + ' ' + item.iconCss });\n if (item.url) {\n li.childNodes[0].appendChild(span);\n }\n else {\n li.insertBefore(span, li.childNodes[0]);\n }\n }\n else {\n if (showIcon && !item.separator) {\n li.classList.add('e-blank-icon');\n }\n }\n var beforeDisabled = item.disabled;\n if (item.disabled) {\n li.classList.add('e-disabled');\n }\n eventArgs = { item: item, element: li };\n this.trigger('beforeItemRender', eventArgs);\n var afterDisabled = eventArgs.item.disabled;\n if (beforeDisabled !== afterDisabled) {\n if (eventArgs.item.disabled) {\n li.classList.add('e-disabled');\n }\n else {\n li.classList.remove('e-disabled');\n }\n }\n ul.appendChild(li);\n }\n if (appendItems) {\n this.getPopUpElement().appendChild(ul);\n }\n if (showIcon) {\n setBlankIconStyle(this.getPopUpElement());\n }\n };\n DropDownButton.prototype.hasIcon = function (items, field) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (items[i][\"\" + field]) {\n return true;\n }\n }\n return false;\n };\n DropDownButton.prototype.createAnchor = function (item) {\n var tempItem = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(item.text) : item.text;\n return this.createElement('a', { className: 'e-menu-text e-menu-url', innerHTML: tempItem, attrs: { 'href': item.url } });\n };\n DropDownButton.prototype.initialize = function () {\n this.button = new Button({\n iconCss: this.iconCss, iconPosition: this.iconPosition, cssClass: this.cssClass, content: this.content,\n disabled: this.disabled, enableRtl: this.enableRtl, enablePersistence: this.enablePersistence\n });\n this.button.createElement = this.createElement;\n this.button.appendTo(this.element);\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.appendArrowSpan();\n this.setActiveElem([this.element]);\n this.element.setAttribute('tabindex', '0');\n this.element.setAttribute('aria-label', this.element.textContent ? this.element.textContent : 'dropdownbutton');\n if ((this.target && !this.isColorPicker() && !this.createPopupOnClick) || !this.createPopupOnClick) {\n this.createPopup();\n }\n else {\n this.isPopupCreated = false;\n if (this.target && !this.isColorPicker() && this.createPopupOnClick) {\n this.popupContent = this.getTargetElement();\n this.popupContent.style.display = 'none';\n }\n }\n };\n DropDownButton.prototype.isColorPicker = function () {\n if (!this.element) {\n return false;\n }\n var prevElem = this.element.previousSibling;\n if (prevElem && prevElem.classList && prevElem.classList.contains('e-split-colorpicker')) {\n return true;\n }\n return false;\n };\n DropDownButton.prototype.appendArrowSpan = function () {\n this.cssClass = isNullOrUndefined(this.cssClass) ? '' : this.cssClass;\n this.element.appendChild(this.createElement('span', {\n className: 'e-btn-icon e-icons ' + 'e-icon-' + (this.cssClass.indexOf(classNames.VERTICAL) > -1\n ? 'bottom' : 'right') + ' e-caret'\n }));\n };\n DropDownButton.prototype.setActiveElem = function (elem) {\n this.activeElem = elem;\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n DropDownButton.prototype.getModuleName = function () {\n return 'dropdown-btn';\n };\n DropDownButton.prototype.canOpen = function () {\n var val = false;\n if (this.isPopupCreated) {\n val = this.getPopUpElement().classList.contains('e-popup-close');\n }\n return val;\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n DropDownButton.prototype.destroy = function () {\n var _this = this;\n _super.prototype.destroy.call(this);\n if (this.getModuleName() === 'dropdown-btn') {\n var classList_1;\n if (this.element.querySelector('span.e-caret')) {\n detach(this.element.querySelector('span.e-caret'));\n }\n if (this.cssClass) {\n classList_1 = this.cssClass.split(' ');\n }\n this.button.destroy();\n if (classList_1) {\n removeClass([this.element], classList_1);\n }\n removeClass(this.activeElem, ['e-active']);\n var attrList = this.element.getAttribute('class') ? ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type']\n : ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type', 'class'];\n attrList.forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n this.popupUnWireEvents();\n this.destroyPopup();\n this.isPopupCreated = false;\n if (!this.disabled) {\n this.unWireEvents();\n }\n }\n };\n DropDownButton.prototype.destroyPopup = function () {\n if (this.isPopupCreated) {\n this.dropDown.destroy();\n if (this.getPopUpElement()) {\n var popupEle = document.getElementById(this.getPopUpElement().id);\n if (popupEle) {\n removeClass([popupEle], ['e-popup-open', 'e-popup-close']);\n detach(popupEle);\n }\n }\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated && this.dropDown) {\n this.dropDown.element = null;\n this.dropDown = undefined;\n }\n }\n this.isPopupCreated = false;\n };\n DropDownButton.prototype.getPopUpElement = function () {\n var val = null;\n if (!this.dropDown && this.activeElem[0].classList.contains('e-split-btn')) {\n var dropDownBtn = getComponent(this.activeElem[1], 'dropdown-btn');\n if (dropDownBtn) {\n this.dropDown = dropDownBtn.dropDown;\n }\n }\n if (this.dropDown) {\n val = this.dropDown.element;\n }\n return val;\n };\n DropDownButton.prototype.getULElement = function () {\n var val = null;\n if (this.getPopUpElement()) {\n val = this.getPopUpElement().children[0];\n }\n return val;\n };\n DropDownButton.prototype.wireEvents = function () {\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\n if (!this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'keydown', this.keyBoardHandler, this);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n EventHandler.add(window, 'resize', this.windowResize, this);\n };\n DropDownButton.prototype.windowResize = function () {\n if (!this.canOpen() && this.dropDown) {\n this.dropDown.refreshPosition(this.element);\n }\n };\n DropDownButton.prototype.popupWireEvents = function () {\n if (!this.delegateMousedownHandler) {\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\n }\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n if (popupElement) {\n EventHandler.add(popupElement, 'click', this.clickHandler, this);\n EventHandler.add(popupElement, 'keydown', this.keyBoardHandler, this);\n if (this.closeActionEvents) {\n EventHandler.add(popupElement, this.closeActionEvents, this.focusoutHandler, this);\n }\n }\n this.rippleFn = rippleEffect(popupElement, { selector: '.' + classNames.ITEM });\n };\n DropDownButton.prototype.popupUnWireEvents = function () {\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n if (popupElement && popupElement.parentElement) {\n EventHandler.remove(popupElement, 'click', this.clickHandler);\n EventHandler.remove(popupElement, 'keydown', this.keyBoardHandler);\n if (this.closeActionEvents) {\n EventHandler.remove(popupElement, this.closeActionEvents, this.focusoutHandler);\n }\n }\n if (isRippleEnabled && this.rippleFn) {\n this.rippleFn();\n }\n };\n /**\n * Handles the keyboard interactions.\n *\n * @param {KeyboardEventArgs} e - Specifies keyboard event args.\n * @returns {void}\n * @hidden\n */\n DropDownButton.prototype.keyBoardHandler = function (e) {\n if (e.target === this.element && (e.keyCode === 9 || (!e.altKey && e.keyCode === 40) || e.keyCode === 38)) {\n return;\n }\n switch (e.keyCode) {\n case 38:\n case 40:\n if (e.altKey && (e.keyCode === 38 || e.keyCode === 40)) {\n this.keyEventHandler(e);\n }\n else {\n this.upDownKeyHandler(e);\n }\n break;\n case 9:\n case 13:\n case 27:\n case 32:\n this.keyEventHandler(e);\n break;\n }\n };\n DropDownButton.prototype.upDownKeyHandler = function (e) {\n if (this.target && (e.keyCode === 38 || e.keyCode === 40)) {\n return;\n }\n e.preventDefault();\n upDownKeyHandler(this.getULElement(), e.keyCode);\n };\n DropDownButton.prototype.keyEventHandler = function (e) {\n if (this.target && (e.keyCode === 13 || e.keyCode === 9)) {\n return;\n }\n if (e.keyCode === 13 && this.activeElem[0].classList.contains('e-split-btn')) {\n this.triggerSelect(e);\n this.activeElem[0].focus();\n return;\n }\n if (e.target && e.target.className.indexOf('e-edit-template') > -1 && e.keyCode === 32) {\n return;\n }\n if (e.keyCode !== 9) {\n e.preventDefault();\n }\n if (e.keyCode === 27 || e.keyCode === 38 || e.keyCode === 9) {\n if (!this.canOpen()) {\n this.closePopup(e, this.element);\n }\n }\n else {\n this.clickHandler(e);\n }\n };\n DropDownButton.prototype.getLI = function (elem) {\n return elem.tagName === 'LI' ? elem : closest(elem, 'li');\n };\n DropDownButton.prototype.mousedownHandler = function (e) {\n var trgt = e.target;\n if (this.dropDown && !this.canOpen() && !(closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')\n || closest(trgt, '[id=\"' + this.element.id + '\"]'))) {\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.focusoutHandler = function (e) {\n if (this.isPopupCreated && !this.canOpen()) {\n var liTarget = e.relatedTarget;\n if (liTarget && liTarget.className.indexOf('e-item') > -1) {\n var li = this.getLI(liTarget);\n if (li) {\n var liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n var item = this.items[liIdx];\n if (item) {\n var selectEventArgs = { element: li, item: item, event: e };\n this.trigger('select', selectEventArgs);\n }\n }\n }\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.clickHandler = function (e) {\n var trgt = e.target;\n if (closest(trgt, '[id=\"' + this.element.id + '\"]')) {\n if (!this.createPopupOnClick || (this.target && this.target !== '' && !this.isColorPicker() && !this.createPopupOnClick)) {\n if (this.getPopUpElement().classList.contains('e-popup-close')) {\n this.openPopUp(e);\n }\n else {\n this.closePopup(e);\n }\n }\n else if (this.isPopupCreated) {\n this.closePopup(e, this.activeElem[0]);\n }\n else {\n this.createPopup();\n this.openPopUp(e);\n }\n }\n else {\n if (closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')) {\n var li = this.getLI(e.target);\n if (li) {\n this.triggerSelect(e);\n this.closePopup(e, this.activeElem[0]);\n }\n }\n }\n };\n DropDownButton.prototype.triggerSelect = function (e) {\n var eventArgs;\n var liIdx;\n var item;\n var li = this.getLI(e.target);\n if (li) {\n liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n item = this.items[liIdx];\n if (item) {\n eventArgs = { element: li, item: item, event: e };\n this.trigger('select', eventArgs);\n }\n }\n };\n DropDownButton.prototype.openPopUp = function (e) {\n var _this = this;\n if (e === void 0) { e = null; }\n var isReact = false;\n var popupElem = this.getPopUpElement();\n if (!this.target) {\n this.createItems(true);\n }\n else {\n if (this.activeElem.length > 1) {\n var splitButton = getComponent(this.activeElem[0], 'split-btn');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (splitButton.isReact && popupElem.childNodes.length < 1) {\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n splitButton.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n this.renderReactTemplates();\n }\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && popupElem.childNodes.length < 1) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n this.renderReactTemplates();\n }\n }\n }\n var ul = this.getULElement();\n this.popupWireEvents();\n var beforeOpenArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeOpen', beforeOpenArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var ul_1 = _this.getULElement();\n _this.dropDown.show(null, _this.element);\n addClass([_this.element], 'e-active');\n _this.element.setAttribute('aria-expanded', 'true');\n _this.element.setAttribute('aria-owns', _this.getPopUpElement().id);\n if (ul_1) {\n ul_1.focus();\n }\n if (_this.enableRtl && ul_1.parentElement.style.left !== '0px') {\n var wrapperWidth = void 0;\n if (_this.element.parentElement && _this.element.parentElement.classList.contains('e-split-btn-wrapper')) {\n wrapperWidth = _this.element.parentElement.offsetWidth;\n }\n else {\n wrapperWidth = _this.element.offsetWidth;\n }\n var popupRect = ul_1.parentElement.offsetWidth - wrapperWidth;\n var popupLeft = parseFloat(ul_1.parentElement.style.left) - popupRect;\n if (popupLeft < 0) {\n popupLeft = 0;\n }\n ul_1.parentElement.style.left = popupLeft + 'px';\n }\n var openArgs = { element: ul_1, items: _this.items };\n _this.trigger('open', openArgs);\n }\n });\n };\n DropDownButton.prototype.closePopup = function (e, focusEle) {\n var _this = this;\n if (e === void 0) { e = null; }\n var ul = this.getULElement();\n var beforeCloseArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var popupElement = _this.getPopUpElement();\n if (popupElement) {\n EventHandler.remove(popupElement, 'keydown', _this.keyBoardHandler);\n }\n _this.popupUnWireEvents();\n var ul_2 = _this.getULElement();\n var selectedLi = void 0;\n if (ul_2) {\n selectedLi = ul_2.querySelector('.e-selected');\n }\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n _this.dropDown.hide();\n removeClass(_this.activeElem, 'e-active');\n _this.element.setAttribute('aria-expanded', 'false');\n _this.element.removeAttribute('aria-owns');\n if (focusEle) {\n focusEle.focus();\n }\n var closeArgs = { element: ul_2, items: _this.items };\n _this.trigger('close', closeArgs);\n if (!_this.target && ul_2) {\n detach(ul_2);\n }\n if (!_this.target || _this.isColorPicker() || (_this.target && !_this.isColorPicker())) {\n if (_this.createPopupOnClick) {\n _this.destroyPopup();\n }\n }\n }\n else {\n if (ul) {\n ul.focus();\n }\n }\n });\n };\n DropDownButton.prototype.unWireEvents = function () {\n if (!this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n EventHandler.remove(this.element, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated) {\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n EventHandler.remove(window, 'resize', this.windowResize);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {DropDownButtonModel} newProp - Specifies new properties\n * @param {DropDownButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var btnModel = ['content', 'cssClass', 'iconCss', 'iconPosition', 'disabled', 'enableRtl'];\n this.button.setProperties(getModel(newProp, btnModel));\n var popupElement;\n if (this.isPopupCreated) {\n popupElement = this.getPopUpElement();\n this.dropDown.setProperties(getModel(newProp, ['enableRtl']));\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n this.unWireEvents();\n if (this.isPopupCreated && !this.canOpen()) {\n this.closePopup();\n }\n }\n else {\n this.wireEvents();\n }\n break;\n case 'cssClass':\n if (newProp.cssClass.indexOf(classNames.VERTICAL) > -1 || oldProp.cssClass.indexOf(classNames.VERTICAL) > -1) {\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n var arrowSpan = this.element.querySelector('span.e-caret');\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n newProp.cssClass.indexOf(classNames.VERTICAL) > -1 ? classList(arrowSpan, ['e-icon-bottom'], ['e-icon-right'])\n : classList(arrowSpan, ['e-icon-right'], ['e-icon-bottom']);\n }\n if (this.isPopupCreated) {\n if (oldProp.cssClass) {\n removeClass([popupElement], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([popupElement], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n }\n break;\n case 'target':\n this.dropDown.content = this.getTargetElement();\n this.dropDown.dataBind();\n break;\n case 'items':\n if (this.isPopupCreated && this.getULElement()) {\n this.createItems();\n }\n break;\n case 'createPopupOnClick':\n if (newProp.createPopupOnClick) {\n this.destroyPopup();\n }\n else {\n this.createPopup();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to DropDownButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n DropDownButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], DropDownButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(true)\n ], DropDownButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Collection([], Item)\n ], DropDownButton.prototype, \"items\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"closeActionEvents\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"created\", void 0);\n DropDownButton = __decorate([\n NotifyPropertyChanges\n ], DropDownButton);\n return DropDownButton;\n}(Component));\nexport { DropDownButton };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path='../drop-down-button/drop-down-button-model.d.ts'/>\nimport { Event, remove, addClass, removeClass, detach, getValue, setValue } from '@syncfusion/ej2-base';\nimport { EventHandler, Collection, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { attributes, getUniqueID, getInstance, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { getModel, Item } from './../common/common';\nimport { DropDownButton } from '../drop-down-button/drop-down-button';\nvar RTL = 'e-rtl';\nvar TAGNAME = 'EJS-SPLITBUTTON';\n/**\n * SplitButton component has primary and secondary button. Primary button is used to select\n * default action and secondary button is used to toggle contextual overlays for displaying list of\n * action items. It can contain both text and images.\n * ```html\n * <button id=\"element\"></button>\n * ```\n * ```typescript\n * <script>\n * var splitBtnObj = new SplitButton({content: 'SplitButton'});\n * splitBtnObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar SplitButton = /** @class */ (function (_super) {\n __extends(SplitButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {SplitButtonModel} options - Specifies the splitbutton model\n * @param {string|HTMLButtonElement} element - Specifies the element\n * @hidden\n */\n function SplitButton(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize Angular support.\n *\n * @private\n * @returns {void}\n */\n SplitButton.prototype.preRender = function () {\n var ele = this.element;\n if (ele.tagName === TAGNAME) {\n var ejInstance = getValue('ej2_instances', ele);\n var btn = this.createElement('button', { attrs: { 'type': 'button' } });\n var wrapper = this.createElement(TAGNAME, { className: 'e-' + this.getModuleName() + '-wrapper' });\n for (var idx = 0, len = ele.attributes.length; idx < len; idx++) {\n btn.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue);\n }\n ele.parentNode.insertBefore(wrapper, ele);\n detach(ele);\n ele = btn;\n wrapper.appendChild(ele);\n setValue('ej2_instances', ejInstance, ele);\n this.wrapper = wrapper;\n this.element = ele;\n }\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n };\n /**\n * Initialize the Component rendering.\n *\n * @returns {void}\n * @private\n */\n SplitButton.prototype.render = function () {\n this.initWrapper();\n this.createPrimaryButton();\n this.renderControl();\n };\n SplitButton.prototype.renderControl = function () {\n this.createSecondaryButton();\n this.setActiveElem([this.element, this.secondaryBtnObj.element]);\n this.setAria();\n this.wireEvents();\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n SplitButton.prototype.addItems = function (items, text) {\n _super.prototype.addItems.call(this, items, text);\n this.secondaryBtnObj.items = this.items;\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n SplitButton.prototype.removeItems = function (items, isUniqueId) {\n _super.prototype.removeItems.call(this, items, isUniqueId);\n this.secondaryBtnObj.items = this.items;\n };\n SplitButton.prototype.initWrapper = function () {\n if (!this.wrapper) {\n this.wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n this.element.parentNode.insertBefore(this.wrapper, this.element);\n }\n this.element.classList.remove('e-' + this.getModuleName());\n if (this.enableRtl) {\n this.wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([this.wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n };\n SplitButton.prototype.createPrimaryButton = function () {\n var btnModel = {\n cssClass: this.cssClass,\n enableRtl: this.enableRtl,\n iconCss: this.iconCss,\n iconPosition: this.iconPosition,\n content: this.content,\n disabled: this.disabled\n };\n this.primaryBtnObj = new Button(btnModel);\n this.primaryBtnObj.createElement = this.createElement;\n this.primaryBtnObj.appendTo(this.element);\n this.element.classList.add('e-' + this.getModuleName());\n this.element.type = 'button';\n this.wrapper.appendChild(this.element);\n };\n SplitButton.prototype.createSecondaryButton = function () {\n var _this = this;\n var btnElem = this.createElement('button', {\n className: 'e-icon-btn',\n attrs: { 'tabindex': '-1' },\n id: this.element.id + '_dropdownbtn'\n });\n this.wrapper.appendChild(btnElem);\n var dropDownBtnModel = {\n cssClass: this.cssClass,\n disabled: this.disabled,\n enableRtl: this.enableRtl,\n items: this.items,\n target: this.target,\n createPopupOnClick: this.createPopupOnClick\n };\n dropDownBtnModel.beforeItemRender = function (args) {\n if (_this.createPopupOnClick) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n _this.trigger('beforeItemRender', args);\n };\n dropDownBtnModel.open = function (args) {\n _this.trigger('open', args);\n };\n dropDownBtnModel.close = function (args) {\n _this.trigger('close', args);\n };\n dropDownBtnModel.select = function (args) {\n _this.trigger('select', args);\n };\n dropDownBtnModel.beforeOpen = function (args) {\n if (_this.createPopupOnClick && _this.items.length === 0) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n var callBackPromise = new Deferred();\n _this.trigger('beforeOpen', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n dropDownBtnModel.beforeClose = function (args) {\n var callBackPromise = new Deferred();\n _this.trigger('beforeClose', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n this.secondaryBtnObj = new DropDownButton(dropDownBtnModel);\n this.secondaryBtnObj.createElement = this.createElement;\n this.secondaryBtnObj.appendTo(btnElem);\n if (!this.createPopupOnClick) {\n this.secondaryBtnObj.dropDown.relateTo = this.wrapper;\n this.dropDown = this.secondaryBtnObj.dropDown;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.isPopupCreated = this.secondaryBtnObj.isPopupCreated;\n this.secondaryBtnObj.activeElem = [this.element, this.secondaryBtnObj.element];\n this.secondaryBtnObj.element.querySelector('.e-btn-icon').classList.remove('e-icon-right');\n if (this.disabled) {\n this.wrapper.classList.add('e-splitbtn-disabled');\n }\n };\n SplitButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-expanded': 'false', 'aria-haspopup': 'true',\n 'aria-label': this.element.textContent ? this.element.textContent + ' splitbutton' : 'splitbutton', 'aria-owns': this.element.id + '_dropdownbtn-popup'\n });\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n SplitButton.prototype.getModuleName = function () {\n return 'split-btn';\n };\n /**\n * To open/close SplitButton popup based on current state of the SplitButton.\n *\n * @returns {void}\n */\n SplitButton.prototype.toggle = function () {\n this.secondaryBtnObj.toggle();\n };\n SplitButton.prototype.destroy = function () {\n var _this = this;\n var classList = [RTL];\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n if (this.element) {\n var element = document.getElementById(this.element.id);\n if (element && element.parentElement === this.wrapper) {\n if (this.wrapper.tagName === TAGNAME) {\n this.wrapper.innerHTML = '';\n removeClass([this.wrapper], ['e-rtl', 'e-' + this.getModuleName() + '-wrapper']);\n removeClass([this.wrapper], this.cssClass.split(' '));\n }\n else {\n removeClass([this.element], classList);\n ['aria-label', 'aria-haspopup', 'aria-expanded', 'aria-owns', 'type'].forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n this.wrapper.parentNode.insertBefore(this.element, this.wrapper);\n remove(this.wrapper);\n }\n this.unWireEvents();\n }\n }\n this.primaryBtnObj.destroy();\n this.secondaryBtnObj.destroy();\n _super.prototype.destroy.call(this);\n if (this.element && !this.element.getAttribute('class')) {\n this.element.removeAttribute('class');\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.refreshing && this.isAngular) {\n this.element = this.wrapper;\n ['e-control', 'e-split-btn', 'e-lib'].forEach(function (key) {\n _this.element.classList.add(key);\n });\n setValue('ej2_instances', [this], this.element);\n }\n this.wrapper = null;\n };\n SplitButton.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.primaryBtnClickHandler, this);\n new KeyboardEvents(this.element, {\n keyAction: this.btnKeyBoardHandler.bind(this),\n keyConfigs: {\n altdownarrow: 'alt+downarrow',\n enter: 'enter'\n }\n });\n };\n SplitButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.primaryBtnClickHandler);\n getInstance(this.element, KeyboardEvents).destroy();\n };\n SplitButton.prototype.primaryBtnClickHandler = function () {\n this.trigger('click', { element: this.element });\n };\n SplitButton.prototype.btnKeyBoardHandler = function (e) {\n switch (e.action) {\n case 'altdownarrow':\n this.clickHandler(e);\n break;\n case 'enter':\n this.clickHandler(e);\n if (this.getPopUpElement() && !this.getPopUpElement().classList.contains('e-popup-close')) {\n this.element.classList.remove('e-active');\n this.secondaryBtnObj.element.classList.add('e-active');\n }\n else {\n this.secondaryBtnObj.element.classList.remove('e-active');\n }\n break;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {SplitButtonModel} newProp - Specifies new properties\n * @param {SplitButtonModel} oldProp - Specifies old properties\n * @returns {void}\n */\n SplitButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var model = ['content', 'iconCss', 'iconPosition', 'cssClass', 'disabled', 'enableRtl'];\n this.primaryBtnObj.setProperties(getModel(newProp, model));\n model = ['beforeOpen', 'beforeItemRender', 'select', 'open',\n 'close', 'cssClass', 'disabled', 'enableRtl', 'createPopupOnClick'];\n if (Object.keys(newProp).indexOf('items') > -1) {\n this.secondaryBtnObj.items = newProp.items;\n this.secondaryBtnObj.dataBind();\n }\n this.secondaryBtnObj.setProperties(getModel(newProp, model));\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.wrapper], oldProp.cssClass.split(' '));\n }\n addClass([this.wrapper], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n addClass([this.wrapper], RTL);\n }\n else {\n removeClass([this.wrapper], RTL);\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n addClass([this.wrapper], 'e-splitbtn-disabled');\n }\n else {\n removeClass([this.wrapper], 'e-splitbtn-disabled');\n }\n }\n }\n };\n /**\n * Sets the focus to SplitButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n SplitButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], SplitButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], SplitButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Collection([], Item)\n ], SplitButton.prototype, \"items\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"target\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"click\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"created\", void 0);\n SplitButton = __decorate([\n NotifyPropertyChanges\n ], SplitButton);\n return SplitButton;\n}(DropDownButton));\nexport { SplitButton };\n/**\n * Deferred is used to handle asynchronous operation.\n */\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n var _this = this;\n /**\n * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future.\n */\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n /**\n * Defines the callback function triggers when the Deferred object is rejected.\n */\n this.catch = this.promise.catch.bind(this.promise);\n /**\n * Defines the callback function triggers when the Deferred object is resolved.\n */\n this.then = this.promise.then.bind(this.promise);\n }\n return Deferred;\n}());\nexport { Deferred };\n","import { addClass, createElement as internalCreateElement, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\n/**\n * Initialize ButtonGroup CSS component with specified properties.\n * ```html\n * <div id='buttongroup'>\n * <button></button>\n * <button></button>\n * <button></button>\n * </div>\n * ```\n * ```typescript\n * createButtonGroup('#buttongroup', {\n * cssClass: 'e-outline',\n * buttons: [\n * { content: 'Day' },\n * { content: 'Week' },\n * { content: 'Work Week'}\n * ]\n * });\n * ```\n *\n * @param {string} selector\n * @param {CreateButtonGroupModel} options\n * @returns HTMLElement\n */\n/**\n * Creates button group.\n *\n * @param {string} selector - Specifies the selector.\n * @param {CreateButtonGroupModel} options - Specifies the button group model.\n * @param {Function} createElement - Specifies the element.\n * @returns {HTMLElement} - Button group element.\n */\nexport function createButtonGroup(selector, options, createElement) {\n if (options === void 0) { options = {}; }\n var child;\n var btnElem;\n var nextChild;\n var btnModel;\n if (isNullOrUndefined(createElement)) {\n createElement = internalCreateElement;\n }\n var wrapper = document.querySelector(selector);\n addClass([wrapper], ['e-btn-group', 'e-css']);\n wrapper.setAttribute('role', 'group');\n var childs = wrapper.children;\n options.buttons = options.buttons || [];\n for (var i = 0, j = 0; j < childs.length; i++, j++) {\n child = childs[j];\n btnModel = options.buttons[i];\n if (btnModel !== null) {\n if (child.tagName === 'BUTTON') {\n btnElem = child;\n }\n else {\n btnElem = createElement('label');\n nextChild = childs[j + 1];\n if (nextChild) {\n wrapper.insertBefore(btnElem, nextChild);\n }\n else {\n wrapper.appendChild(btnElem);\n }\n if (child.id) {\n btnElem.setAttribute('for', child.id);\n }\n if (btnModel && btnModel.disabled) {\n child.disabled = true;\n }\n j++;\n }\n if (options.cssClass && btnModel && !btnModel.cssClass) {\n btnModel.cssClass = options.cssClass;\n }\n new Button(btnModel || {}, btnElem);\n }\n }\n return wrapper;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { EventHandler, Property, NotifyPropertyChanges, Animation, attributes, animationMode } from '@syncfusion/ej2-base';\nimport { Event, remove, removeClass } from '@syncfusion/ej2-base';\nimport { Complex, ChildProperty, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nvar HIDESPINNER = 'e-hide-spinner';\nvar PROGRESS = 'e-progress';\nvar PROGRESSACTIVE = 'e-progress-active';\nvar CONTENTCLS = 'e-btn-content';\n/**\n * Defines the spin settings.\n */\nvar SpinSettings = /** @class */ (function (_super) {\n __extends(SpinSettings, _super);\n function SpinSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], SpinSettings.prototype, \"template\", void 0);\n __decorate([\n Property(16)\n ], SpinSettings.prototype, \"width\", void 0);\n __decorate([\n Property('Left')\n ], SpinSettings.prototype, \"position\", void 0);\n return SpinSettings;\n}(ChildProperty));\nexport { SpinSettings };\n/**\n * Defines the animation settings.\n */\nvar AnimationSettings = /** @class */ (function (_super) {\n __extends(AnimationSettings, _super);\n function AnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(400)\n ], AnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('None')\n ], AnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property('ease')\n ], AnimationSettings.prototype, \"easing\", void 0);\n return AnimationSettings;\n}(ChildProperty));\nexport { AnimationSettings };\n/**\n * The ProgressButton visualizes the progression of an operation to indicate the user\n * that a process is happening in the background with visual representation.\n * ```html\n * <button id=\"element\"></button>\n * ```\n * ```typescript\n * <script>\n * var progressButtonObj = new ProgressButton({ content: 'Progress Button' });\n * progressButtonObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar ProgressButton = /** @class */ (function (_super) {\n __extends(ProgressButton, _super);\n /**\n * Constructor for creating the widget.\n *\n * @param {ProgressButtonModel} options - Specifies progress button model\n * @param {string|HTMLButtonElement} element - Specifies element\n */\n function ProgressButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.step = 1;\n return _this;\n }\n ProgressButton.prototype.preRender = function () {\n _super.prototype.preRender.call(this);\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n ProgressButton.prototype.render = function () {\n _super.prototype.render.call(this);\n this.init();\n this.wireEvents();\n this.setAria();\n this.renderComplete();\n };\n /**\n * Starts the button progress at the specified percent.\n *\n * @param {number} percent - Starts the button progress at this percent.\n * @returns {void}\n */\n ProgressButton.prototype.start = function (percent) {\n this.isPaused = false;\n this.startProgress(percent ? percent : this.percent, this.progressTime);\n };\n /**\n * Stops the button progress.\n *\n * @returns {void}\n */\n ProgressButton.prototype.stop = function () {\n this.isPaused = true;\n cancelAnimationFrame(this.timerId);\n };\n /**\n * Complete the button progress.\n *\n * @returns {void}\n */\n ProgressButton.prototype.progressComplete = function () {\n this.isPaused = false;\n this.finishProgress();\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n ProgressButton.prototype.getModuleName = function () {\n return 'progress-btn';\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n ProgressButton.prototype.destroy = function () {\n var _this = this;\n var classList = [HIDESPINNER, PROGRESSACTIVE, 'e-round-corner', 'e-' + _super.prototype.getModuleName.call(this),\n 'e-spin-' + this.spinSettings.position.toLowerCase()];\n _super.prototype.destroy.call(this);\n this.unWireEvents();\n this.element.innerHTML = '';\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n removeClass([this.element], classList);\n var css = this.element.getAttribute('class') ? ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow']\n : ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow', 'class'];\n css.forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n if (this.disabled) {\n this.element.removeAttribute('disabled');\n }\n };\n ProgressButton.prototype.init = function () {\n this.element.classList.add('e-' + _super.prototype.getModuleName.call(this));\n this.setContent();\n this.createSpinner();\n if (this.enableProgress) {\n this.createProgress();\n }\n };\n ProgressButton.prototype.createSpinner = function () {\n var spinner = this.createElement('span', { className: 'e-spinner' });\n this.setSpinPosition(spinner);\n createSpinner({\n target: spinner, width: this.spinSettings.width || 16, template: this.spinSettings.template\n }, this.createElement);\n };\n ProgressButton.prototype.getSpinner = function () {\n return this.element.getElementsByClassName('e-spinner')[0];\n };\n ProgressButton.prototype.getProgress = function () {\n return this.element.getElementsByClassName(PROGRESS)[0];\n };\n ProgressButton.prototype.setSpinPosition = function (ele) {\n var position = this.spinSettings.position || 'Left';\n if (position === 'Left' || position === 'Top') {\n this.element.insertBefore(ele, this.element.getElementsByClassName(CONTENTCLS)[0]);\n }\n else {\n this.element.appendChild(ele);\n }\n this.element.classList.add('e-spin-' + position.toLowerCase());\n };\n ProgressButton.prototype.createProgress = function () {\n this.element.appendChild(this.createElement('span', { className: PROGRESS }));\n };\n ProgressButton.prototype.setContent = function () {\n var cont;\n cont = this.element.innerHTML;\n if (this.enableHtmlSanitizer) {\n cont = SanitizeHtmlHelper.sanitize(this.element.innerHTML);\n }\n this.element.innerHTML = '';\n this.element.appendChild(this.createElement('span', { className: CONTENTCLS, innerHTML: cont }));\n };\n ProgressButton.prototype.setContentIcon = function (content) {\n var contElem = this.createElement('span', { className: CONTENTCLS, innerHTML: content });\n if (this.iconCss) {\n var span = this.createElement('span', { className: 'e-btn-icon ' + this.iconCss });\n if (!this.element.textContent.trim()) {\n this.element.classList.add('e-icon-btn');\n }\n else {\n span.classList.add('e-icon-' + this.iconPosition.toLowerCase());\n if (this.iconPosition === 'Top' || this.iconPosition === 'Bottom') {\n this.element.classList.add('e-' + this.iconPosition.toLowerCase() + '-icon-btn');\n }\n }\n var node = contElem.childNodes[0];\n if (node && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n contElem.insertBefore(span, node);\n }\n else {\n contElem.appendChild(span);\n }\n }\n this.element.appendChild(contElem);\n };\n ProgressButton.prototype.clickHandler = function () {\n if (this.element.classList.contains(PROGRESSACTIVE)) {\n return;\n }\n this.startProgress();\n };\n ProgressButton.prototype.startProgress = function (percent, progressTime) {\n var clsList = this.element.classList;\n var isVertical = clsList.contains('e-vertical');\n clsList.add(PROGRESSACTIVE);\n if (!(clsList.contains(HIDESPINNER))) {\n showSpinner(this.element.querySelector('.e-spinner'));\n }\n this.startAnimate(Date.now(), progressTime ? progressTime : 0, progressTime ? Date.now() - (this.duration * 1 / 100) : Date.now(), percent ? percent : 0, 0, this.step, 0, isVertical);\n this.startContAnimate();\n };\n ProgressButton.prototype.startAnimate = function (timestamp, progressTime, prevTime, percent, prevPercent, step, prevProgressTime, isVertical) {\n var _this = this;\n try {\n var timeDiff = timestamp - prevTime;\n var stepTime = this.duration * step / 100;\n var timeDiffBuffer_1 = timeDiff ? (timeDiff < stepTime ? timeDiff - stepTime : timeDiff % stepTime) : 0;\n this.progressTime = progressTime = progressTime + timeDiff - timeDiffBuffer_1;\n prevTime = timestamp - timeDiffBuffer_1;\n percent = percent + (timeDiff - timeDiffBuffer_1) / this.duration * 100;\n prevPercent = ((progressTime - prevProgressTime) % stepTime === 0 || percent === 100) ? percent : prevPercent;\n var args = { percent: prevPercent, currentDuration: progressTime, step: step };\n this.eIsVertical = isVertical;\n if (percent === 0) {\n this.trigger('begin', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n else if (percent === 100 || progressTime === this.duration) {\n this.trigger('end', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n else {\n this.trigger('progress', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n }\n catch (e) {\n cancelAnimationFrame(this.timerId);\n this.trigger('fail', e);\n }\n };\n ProgressButton.prototype.successCallback = function (args, perc, pPerc, prgTim, pPrgTim, timDif, pTim) {\n var _this = this;\n var percent = perc;\n var prevPercent = pPerc;\n var timeDiffBuffer = timDif;\n var progressTime = prgTim;\n var prevProgressTime = pPrgTim;\n var prevTime = pTim;\n var isVertical = this.eIsVertical;\n if (percent !== args.percent && args.percent !== prevPercent) {\n percent = args.percent;\n }\n this.percent = percent;\n this.step = args.step;\n if ((progressTime - prevProgressTime) % (this.duration * args.step / 100) === 0 || percent === 100) {\n this.timerId = requestAnimationFrame(function () {\n if (_this.enableProgress && _this.getProgress()) {\n _this.getProgress().style[isVertical ? 'height' : 'width'] = percent + '%';\n }\n _this.element.setAttribute('aria-valuenow', percent.toString());\n });\n prevPercent = percent;\n prevProgressTime = progressTime;\n }\n if (!this.isPaused) {\n if (progressTime < this.duration && percent < 100) {\n this.interval = window.setTimeout(function () {\n _this.startAnimate(Date.now(), progressTime, prevTime, percent, prevPercent, args.step, prevProgressTime, isVertical);\n }, (this.duration / 100) - timeDiffBuffer);\n }\n else {\n this.interval = window.setTimeout(function () {\n _this.progressTime = _this.percent = 0;\n if (_this.enableProgress && _this.getProgress()) {\n _this.getProgress().style[isVertical ? 'height' : 'width'] = '0%';\n }\n _this.element.setAttribute('aria-valuenow', '0');\n _this.hideSpin();\n }, 100);\n }\n }\n };\n ProgressButton.prototype.startContAnimate = function () {\n var _this = this;\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\n if (this.animationSettings.effect !== 'None') {\n (new Animation({})).animate(ele, {\n duration: (this.animationSettings.duration === 0 && animationMode === 'Enable') ? 400 : this.animationSettings.duration,\n name: 'Progress' + this.animationSettings.effect,\n timingFunction: this.animationSettings.easing,\n begin: function () {\n if (_this.spinSettings.position === 'Center') {\n _this.setSpinnerSize();\n }\n },\n end: function () {\n ele.classList.add('e-animate-end');\n }\n });\n }\n else if (this.spinSettings.position === 'Center') {\n this.setSpinnerSize();\n }\n };\n ProgressButton.prototype.finishProgress = function () {\n var clsList = this.element.classList;\n var isVertical = clsList.contains('e-vertical');\n clsList.add(PROGRESSACTIVE);\n var count = 100;\n for (var i = this.percent; i < count; i++) {\n i += 10;\n if (i > 100) {\n i = 100;\n }\n if (this.enableProgress && this.getProgress()) {\n this.getProgress().style[isVertical ? 'height' : 'width'] = (this.percent < 100) ? (i + '%') : '100%';\n }\n }\n this.element.setAttribute('aria-valuenow', '0');\n this.hideSpin();\n var args = { step: this.step, currentDuration: this.progressTime, percent: 100 };\n clearTimeout(this.interval);\n this.trigger('end', args);\n this.progressTime = this.percent = 0;\n };\n ProgressButton.prototype.setSpinnerSize = function () {\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\n var spinner = this.getSpinner();\n spinner.style.width = Math.max(spinner.offsetWidth, ele.offsetWidth) + 'px';\n spinner.style.height = Math.max(spinner.offsetHeight, ele.offsetHeight) + 'px';\n ele.classList.add('e-cont-animate');\n };\n ProgressButton.prototype.hideSpin = function () {\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\n if (!(this.element.classList.contains(HIDESPINNER))) {\n hideSpinner(this.element.querySelector('.e-spinner'));\n }\n this.element.classList.remove(PROGRESSACTIVE);\n if (this.animationSettings.effect !== 'None') {\n cont.classList.remove('e-animate-end');\n }\n if (this.spinSettings.position === 'Center') {\n var ele = this.getSpinner();\n cont.classList.remove('e-cont-animate');\n ele.style.width = 'auto';\n ele.style.height = 'auto';\n }\n };\n ProgressButton.prototype.setIconSpan = function () {\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\n var iconSpan = this.element.getElementsByClassName('e-btn-icon')[0];\n if (cont.childNodes[0] && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n cont.insertBefore(iconSpan, cont.childNodes[0]);\n }\n else {\n cont.appendChild(iconSpan);\n }\n };\n ProgressButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-label': this.element.textContent + ' progress'\n });\n };\n ProgressButton.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n };\n ProgressButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ProgressButtonModel} newProp - Specifies new properties\n * @param {ProgressButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n ProgressButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var ele = this.element;\n var isSpinning = false;\n var clsList = this.element.querySelector('.e-spinner-pane').classList;\n if (clsList.contains('e-spin-show')) {\n isSpinning = true;\n }\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n this.setContent();\n this.createSpinner();\n if (isSpinning) {\n showSpinner(this.element.querySelector('.e-spinner'));\n isSpinning = false;\n }\n if (this.enableProgress) {\n this.createProgress();\n }\n ele.setAttribute('aria-label', ele.textContent + ' progress');\n break;\n case 'iconCss':\n if (!oldProp.iconCss) {\n this.setIconSpan();\n }\n break;\n case 'iconPosition':\n this.setIconSpan();\n break;\n case 'enableProgress':\n if (newProp.enableProgress) {\n this.createProgress();\n }\n else {\n remove(this.getProgress());\n }\n break;\n case 'spinSettings':\n if (newProp.spinSettings.position) {\n ele.classList.remove('e-spin-' + oldProp.spinSettings.position.toLowerCase());\n this.setSpinPosition(this.getSpinner());\n }\n if (newProp.spinSettings.template || newProp.spinSettings.width) {\n ele.removeChild(this.getSpinner());\n this.createSpinner();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to ProgressButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n ProgressButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"enableProgress\", void 0);\n __decorate([\n Property(2000)\n ], ProgressButton.prototype, \"duration\", void 0);\n __decorate([\n Property('Left')\n ], ProgressButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"isPrimary\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"content\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"isToggle\", void 0);\n __decorate([\n Property(true)\n ], ProgressButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({}, SpinSettings)\n ], ProgressButton.prototype, \"spinSettings\", void 0);\n __decorate([\n Complex({}, AnimationSettings)\n ], ProgressButton.prototype, \"animationSettings\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"begin\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"progress\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"end\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"fail\", void 0);\n ProgressButton = __decorate([\n NotifyPropertyChanges\n ], ProgressButton);\n return ProgressButton;\n}(Button));\nexport { ProgressButton };\n"],"names":["this","__extends","__decorate","createElement","internalCreateElement"],"mappings":";;;;AAAA,IAAI,SAAS,GAAG,CAACA,SAAI,IAAIA,SAAI,CAAC,SAAS,KAAK,CAAC,YAAY;AACzD,IAAI,IAAI,aAAa,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AACxC,QAAQ,aAAa,GAAG,MAAM,CAAC,cAAc;AAC7C,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;AACxF,YAAY,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvF,QAAQ,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,KAAK,CAAC;AACN,IAAI,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE;AAC3B,QAAQ,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAQ,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;AAC/C,QAAQ,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAC7F,KAAK,CAAC;AACN,CAAC,GAAG,CAAC;AACL,IAAI,UAAU,GAAG,CAACA,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;AACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AACjI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACnI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AACtJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC;AAEF;AACA;AACA;AACA;AACA;AACO,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AACvC,IAAI,IAAI,GAAG,GAAG,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AAChC,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAClE,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1B,QAAQ,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACvC,YAAY,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACpC,SAAS;AACT,KAAK;AACL,IAAI,OAAO,GAAG,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA;AACA;AACO,SAAS,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE;AAC9C,IAAI,IAAI,UAAU,GAAG,OAAO,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,iBAAiB,GAAG,CAAC,CAAC;AACnE,IAAI,IAAI,KAAK,GAAG,UAAU,CAAC;AAC3B,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;AACrD,IAAI,IAAI,UAAU,EAAE;AACpB,QAAQ,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAClD,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAC5D,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AAC5D,YAAY,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAChC,YAAY,KAAK,GAAG,CAAC,CAAC;AACtB,YAAY,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC7C,YAAY,IAAI,OAAO,KAAK,EAAE,EAAE;AAChC,gBAAgB,KAAK,EAAE,CAAC;AACxB,aAAa;AACb,iBAAiB;AACjB,gBAAgB,KAAK,EAAE,CAAC;AACxB,aAAa;AACb,YAAY,IAAI,KAAK,MAAM,OAAO,KAAK,EAAE,GAAG,EAAE,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,EAAE;AACxE,gBAAgB,KAAK,GAAG,UAAU,CAAC;AACnC,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5B,IAAI,KAAK,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC9C,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AACtB,QAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AACpD,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;AACnC,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;AAClD,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE;AACxC,IAAI,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AACrF,QAAQ,IAAI,KAAK,MAAM,OAAO,KAAK,EAAE,GAAG,EAAE,CAAC,iBAAiB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AACvE,YAAY,KAAK,GAAG,OAAO,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,iBAAiB,GAAG,CAAC,CAAC;AAClE,SAAS;AACT,aAAa;AACb,YAAY,IAAI,OAAO,KAAK,EAAE,EAAE;AAChC,gBAAgB,KAAK,EAAE,CAAC;AACxB,aAAa;AACb,iBAAiB;AACjB,gBAAgB,KAAK,EAAE,CAAC;AACxB,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5B,IAAI,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AACrF,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,IAAI,KAAK,KAAK,EAAE,CAAC,iBAAiB,EAAE;AAC5C,YAAY,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC;AAC9B,SAAS;AACT,QAAQ,KAAK,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACzD,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,CAAC;AACD;AACA;AACA;AACA;AACO,SAAS,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE;AACpD,IAAI,IAAI,aAAa,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC,CAAC;AACpF,IAAI,IAAI,SAAS,EAAE;AACnB,QAAQ,IAAI,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7E,QAAQ,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;AACvC,YAAY,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE;AAC/D,gBAAgB,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC5C,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;AAC/B,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,8CAA8C,CAAC,CAAC;AACrF,IAAI,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE;AACnC,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC5C,QAAQ,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;AACpD,IAAI,IAAI,OAAO,CAAC;AAChB,IAAI,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACtD,IAAI,IAAI,SAAS,EAAE;AACnB,QAAQ,OAAO,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AACpE,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;AACpE,KAAK;AACL;AACA,IAAI,IAAI,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,QAAQ,EAAE,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AAC1K,UAAU,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;AACpE,IAAI,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;AACxC,QAAQ,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC5C,YAAY,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AAC1E,SAAS;AACT,aAAa;AACb,YAAY,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AAC7C,SAAS;AACT,KAAK,CAAC,CAAC;AACP;AACA,CAAC;AACD;AACA;AACA;AACG,IAAC,IAAI,kBAAkB,UAAU,MAAM,EAAE;AAC5C,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5B,IAAI,SAAS,IAAI,GAAG;AACpB,QAAQ,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC;AACxE,KAAK;AACL,IAAI,UAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,EAAE,CAAC;AACpB,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AAC1C,IAAI,UAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,EAAE,CAAC;AACpB,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACrC,IAAI,UAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,KAAK,CAAC;AACvB,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5C,IAAI,UAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,EAAE,CAAC;AACpB,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AACvC,IAAI,UAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,EAAE,CAAC;AACpB,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACtC,IAAI,UAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,KAAK,CAAC;AACvB,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3C,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC,aAAa,CAAC;;ACnLhB,IAAIC,WAAS,GAAG,CAACD,SAAI,IAAIA,SAAI,CAAC,SAAS,KAAK,CAAC,YAAY;AACzD,IAAI,IAAI,aAAa,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AACxC,QAAQ,aAAa,GAAG,MAAM,CAAC,cAAc;AAC7C,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;AACxF,YAAY,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvF,QAAQ,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,KAAK,CAAC;AACN,IAAI,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE;AAC3B,QAAQ,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAQ,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;AAC/C,QAAQ,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAC7F,KAAK,CAAC;AACN,CAAC,GAAG,CAAC;AACL,IAAIE,YAAU,GAAG,CAACF,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;AACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AACjI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACnI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AACtJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC;AACF,AAQA,IAAI,UAAU,GAAG;AACjB,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,KAAK,EAAE,WAAW;AACtB,IAAI,IAAI,EAAE,aAAa;AACvB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,KAAK,EAAE,kBAAkB;AAC7B,IAAI,GAAG,EAAE,OAAO;AAChB,IAAI,SAAS,EAAE,aAAa;AAC5B,IAAI,QAAQ,EAAE,YAAY;AAC1B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AAAG,IAAC,cAAc,kBAAkB,UAAU,MAAM,EAAE;AACtD,IAAIC,WAAS,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE;AAC9C,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC;AAChE,QAAQ,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;AACpC,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,cAAc,CAAC,SAAS,CAAC,SAAS,GAAG,YAAY;AACrD;AACA,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,CAAC,cAAc,GAAG,YAAY;AAC1D,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACrC,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AAClD,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAC5B,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;AAC7B,SAAS;AACT,aAAa,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AAClE,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;AAC/B,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;AAC7B,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC;AAC9B,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AAClD,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1B,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5B,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC;AAC9B,SAAS;AACT,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,KAAK,EAAE,IAAI,EAAE;AAC/D,QAAQ,IAAI,OAAO,CAAC;AACpB,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACpC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAC/D,YAAY,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC7C,gBAAgB,GAAG,GAAG,CAAC,CAAC;AACxB,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS;AACT,QAAQ,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACpD;AACA,YAAY,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9D,YAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AAC/C,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AAC7B,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;AAC/B,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE;AACxE,QAAQ,IAAI,OAAO,GAAG,KAAK,CAAC;AAC5B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAC1D,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AACvE,gBAAgB,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AACvF,oBAAoB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,oBAAoB,OAAO,GAAG,IAAI,CAAC;AACnC,oBAAoB,MAAM;AAC1B,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AAC5C,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;AAC/B,SAAS;AACT,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,WAAW,GAAG,YAAY;AACvD,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC5C,YAAY,SAAS,EAAE,UAAU,CAAC,KAAK;AACvC,YAAY,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,QAAQ;AAC1C,SAAS,CAAC,CAAC;AACX,QAAQ,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACvC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE;AACvC,YAAY,QAAQ,EAAE,IAAI,CAAC,OAAO;AAClC,YAAY,SAAS,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE;AAC9C,YAAY,QAAQ,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE;AAChD,YAAY,UAAU,EAAE,UAAU;AAClC,YAAY,OAAO,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE;AAC/D,YAAY,SAAS,EAAE,IAAI,CAAC,SAAS;AACrC,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC7D,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;AAC1E,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACnD,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;AACjD,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC9D,YAAY,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxD,SAAS;AACT,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC7B,QAAQ,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE;AACzC,YAAY,EAAE,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO;AACrF,YAAY,EAAE,CAAC,eAAe,CAAC,GAAG,OAAO;AACzC,YAAY,EAAE,CAAC,MAAM,CAAC,GAAG,QAAQ;AACjC,YAAY,EAAE,EAAE,CAAC;AACjB,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAClF,SAAS;AACT,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AACnC,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,gBAAgB,GAAG,YAAY;AAC5D,QAAQ,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACvG,YAAY,OAAO,IAAI,CAAC,YAAY,CAAC;AACrC,SAAS;AACT,QAAQ,OAAO,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AACrF,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,WAAW,EAAE;AAClE,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAC/B,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAC3D,QAAQ,IAAI,IAAI,CAAC;AACjB,QAAQ,IAAI,IAAI,CAAC;AACjB,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,IAAI,SAAS,CAAC;AACtB,QAAQ,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACrC,QAAQ,IAAI,EAAE,EAAE;AAChB,YAAY,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC;AAC9B,SAAS;AACT,aAAa;AACb,YAAY,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AAC1C,gBAAgB,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE;AAC1D,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,YAAY,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5B,YAAY,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;AACrC,YAAY,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AAC1C,gBAAgB,SAAS,EAAE,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,QAAQ;AACnD,gBAAgB,SAAS,EAAE,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,GAAG,GAAG,GAAG,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI;AAC1G,gBAAgB,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE;AACtM,gBAAgB,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,OAAO,CAAC;AAC1F,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC1C,gBAAgB,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,QAAQ,CAAC;AAC1D,aAAa;AACb,iBAAiB;AACjB,gBAAgB,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,QAAQ,CAAC;AACxD,aAAa;AACb,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE;AAC1B,gBAAgB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AACxD,gBAAgB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC1C,aAAa;AACb,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;AAC9B,gBAAgB,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACvG,gBAAgB,IAAI,IAAI,CAAC,GAAG,EAAE;AAC9B,oBAAoB,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACvD,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,iBAAiB;AACjB,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjD,oBAAoB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACrD,iBAAiB;AACjB,aAAa;AACb,YAAY,IAAI,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC/C,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC/B,gBAAgB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC/C,aAAa;AACb,YAAY,SAAS,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACpD,YAAY,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;AACxD,YAAY,IAAI,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AACxD,YAAY,IAAI,cAAc,KAAK,aAAa,EAAE;AAClD,gBAAgB,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC7C,oBAAoB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnD,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACtD,iBAAiB;AACjB,aAAa;AACb,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAC/B,SAAS;AACT,QAAQ,IAAI,WAAW,EAAE;AACzB,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACnD,SAAS;AACT,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,iBAAiB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;AACtD,SAAS;AACT,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE,KAAK,EAAE;AAC/D,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAC1D,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE;AACtC,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,IAAI,EAAE;AAC5D,QAAQ,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;AACvG,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,wBAAwB,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAClI,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,UAAU,GAAG,YAAY;AACtD,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;AACjC,YAAY,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO;AAClH,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;AACzG,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;AACvD,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3C,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;AAC9B,YAAY,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AACvE,SAAS;AACT,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3C,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACnD,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,gBAAgB,CAAC,CAAC;AACxH,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC5G,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC;AAC/B,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AACxC,YAAY,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACjF,gBAAgB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC5D,gBAAgB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AACzD,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,aAAa,GAAG,YAAY;AACzD,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;AACpD,QAAQ,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE;AAClG,YAAY,OAAO,IAAI,CAAC;AACxB,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,YAAY;AAC3D,QAAQ,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC9E,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;AAC5D,YAAY,SAAS,EAAE,qBAAqB,GAAG,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC3G,kBAAkB,QAAQ,GAAG,OAAO,CAAC,GAAG,UAAU;AAClD,SAAS,CAAC,CAAC,CAAC;AACZ,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,IAAI,EAAE;AAC7D,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC/B,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,CAAC,aAAa,GAAG,YAAY;AACzD,QAAQ,OAAO,cAAc,CAAC;AAC9B,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AACnD,QAAQ,IAAI,GAAG,GAAG,KAAK,CAAC;AACxB,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;AACjC,YAAY,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC7E,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AACnD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,cAAc,EAAE;AACrD,YAAY,IAAI,WAAW,CAAC;AAC5B,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE;AAC5D,gBAAgB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;AACnE,aAAa;AACb,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC/B,gBAAgB,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvD,aAAa;AACb,YAAY,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AAClC,YAAY,IAAI,WAAW,EAAE;AAC7B,gBAAgB,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;AACzD,aAAa;AACb,YAAY,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AACvD,YAAY,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,CAAC;AACvH,kBAAkB,CAAC,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACnF,YAAY,QAAQ,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AAC5C,gBAAgB,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AACnD,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACrC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;AAChC,YAAY,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AACxC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChC,gBAAgB,IAAI,CAAC,YAAY,EAAE,CAAC;AACpC,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY;AACxD,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;AACjC,YAAY,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AACpC,YAAY,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AACxC,gBAAgB,IAAI,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC;AAClF,gBAAgB,IAAI,QAAQ,EAAE;AAC9B,oBAAoB,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;AAC/E,oBAAoB,MAAM,CAAC,QAAQ,CAAC,CAAC;AACrC,iBAAiB;AACjB,aAAa;AACb,YAAY,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACpF,YAAY,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACzF,YAAY,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,QAAQ,EAAE;AACtD,gBAAgB,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;AAC7C,gBAAgB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;AAC1C,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AACpC,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,YAAY;AAC3D,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC;AACvB,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;AACpF,YAAY,IAAI,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;AAC/E,YAAY,IAAI,WAAW,EAAE;AAC7B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;AACrD,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AACxC,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY;AACxD,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC;AACvB,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AACpC,YAAY,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrD,SAAS;AACT,QAAQ,OAAO,GAAG,CAAC;AACnB,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,UAAU,GAAG,YAAY;AACtD,QAAQ,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzE,QAAQ,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AACtC,YAAY,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,sBAAsB,EAAE,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;AACpG,SAAS;AACT,QAAQ,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACzE,QAAQ,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AAC9E;AACA,QAAQ,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACpE,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY;AACxD,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC9C,YAAY,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxD,SAAS;AACT,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,YAAY;AAC3D,QAAQ,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;AAC5C,YAAY,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7E,SAAS;AACT,QAAQ,IAAI,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;AAClD,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACrC,YAAY,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,sBAAsB,EAAE,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;AACpG,SAAS;AACT,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAC7E,YAAY,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AAClF,YAAY,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxC,gBAAgB,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AACnG,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AACxF,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,iBAAiB,GAAG,YAAY;AAC7D,QAAQ,IAAI,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;AAClD,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACrC,YAAY,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,sBAAsB,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;AACjG,SAAS;AACT,QAAQ,IAAI,YAAY,IAAI,YAAY,CAAC,aAAa,EAAE;AACxD,YAAY,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAC1E,YAAY,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAC/E,YAAY,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxC,gBAAgB,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAChG,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,eAAe,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC9C,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC5B,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,CAAC,EAAE;AAC5D,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,EAAE;AACnH,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,QAAQ,CAAC,CAAC,OAAO;AACzB,YAAY,KAAK,EAAE,CAAC;AACpB,YAAY,KAAK,EAAE;AACnB,gBAAgB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,EAAE;AACxE,oBAAoB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAC5C,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC7C,iBAAiB;AACjB,gBAAgB,MAAM;AACtB,YAAY,KAAK,CAAC,CAAC;AACnB,YAAY,KAAK,EAAE,CAAC;AACpB,YAAY,KAAK,EAAE,CAAC;AACpB,YAAY,KAAK,EAAE;AACnB,gBAAgB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AACxC,gBAAgB,MAAM;AACtB,SAAS;AACT,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAU,CAAC,EAAE;AAC7D,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,EAAE;AACnE,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3B,QAAQ,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AACzD,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,CAAC,EAAE;AAC5D,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,EAAE;AAClE,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;AACtF,YAAY,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAClC,YAAY,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AACvC,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE,EAAE;AAChG,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,EAAE;AAC7B,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC;AAC/B,SAAS;AACT,QAAQ,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,EAAE;AACrE,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AACjC,gBAAgB,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACjD,aAAa;AACb,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACjC,SAAS;AACT,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE;AACrD,QAAQ,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAClE,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAU,CAAC,EAAE;AAC7D,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;AAC5B,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;AAC3G,eAAe,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE;AACjE,YAAY,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/B,SAAS;AACT,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,CAAC,EAAE;AAC5D,QAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AACpD,YAAY,IAAI,QAAQ,GAAG,CAAC,CAAC,aAAa,CAAC;AAC3C,YAAY,IAAI,QAAQ,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AACvE,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC9C,gBAAgB,IAAI,EAAE,EAAE;AACxB,oBAAoB,IAAI,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC/F,oBAAoB,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACjD,oBAAoB,IAAI,IAAI,EAAE;AAC9B,wBAAwB,IAAI,eAAe,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACpF,wBAAwB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;AAChE,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/B,SAAS;AACT,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,CAAC,EAAE;AACzD,QAAQ,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;AAC5B,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;AAC7D,YAAY,IAAI,CAAC,IAAI,CAAC,kBAAkB,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;AACtI,gBAAgB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;AAChF,oBAAoB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACtC,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACvC,iBAAiB;AACjB,aAAa;AACb,iBAAiB,IAAI,IAAI,CAAC,cAAc,EAAE;AAC1C,gBAAgB,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,WAAW,EAAE,CAAC;AACnC,gBAAgB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAClC,aAAa;AACb,SAAS;AACT,aAAa;AACb,YAAY,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;AAC3E,gBAAgB,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9C,gBAAgB,IAAI,EAAE,EAAE;AACxB,oBAAoB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAC1C,oBAAoB,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,CAAC,EAAE;AAC1D,QAAQ,IAAI,SAAS,CAAC;AACtB,QAAQ,IAAI,KAAK,CAAC;AAClB,QAAQ,IAAI,IAAI,CAAC;AACjB,QAAQ,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACtC,QAAQ,IAAI,EAAE,EAAE;AAChB,YAAY,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACnF,YAAY,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACrC,YAAY,IAAI,IAAI,EAAE;AACtB,gBAAgB,SAAS,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAClE,gBAAgB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAClD,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,CAAC,EAAE;AACtD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;AACvC,AACA,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;AAC/C,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC1B,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACnC,SAAS;AACT,aAAa;AACb,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5C,gBAAgB,IAAI,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AAChF;AACA,gBAAgB,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5E,AACA;AACA,oBAAoB,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;AACpG,oBAAoB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAChD,iBAAiB;AACjB,aAAa;AACb,iBAAiB;AACjB;AACA,gBAAgB,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACrE,AAEA;AACA,oBAAoB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;AAC7F,oBAAoB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAChD,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACrC,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;AAC/B,QAAQ,IAAI,cAAc,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACzF,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,cAAc,EAAE,UAAU,YAAY,EAAE;AAC3E,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AACtC,gBAAgB,IAAI,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;AAChD,gBAAgB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AACzD,gBAAgB,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC;AACtD,gBAAgB,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AACpE,gBAAgB,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC;AACpF,gBAAgB,IAAI,IAAI,EAAE;AAC1B,oBAAoB,IAAI,CAAC,KAAK,EAAE,CAAC;AACjC,iBAAiB;AACjB,gBAAgB,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;AAChF,oBAAoB,IAAI,YAAY,GAAG,KAAK,CAAC,CAAC;AAC9C,oBAAoB,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE;AAC9H,wBAAwB,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC;AAC/E,qBAAqB;AACrB,yBAAyB;AACzB,wBAAwB,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;AACjE,qBAAqB;AACrB,oBAAoB,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,YAAY,CAAC;AAClF,oBAAoB,IAAI,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAC1F,oBAAoB,IAAI,SAAS,GAAG,CAAC,EAAE;AACvC,wBAAwB,SAAS,GAAG,CAAC,CAAC;AACtC,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;AACrE,iBAAiB;AACjB,gBAAgB,IAAI,QAAQ,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;AACrE,gBAAgB,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAChD,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC,EAAE,QAAQ,EAAE;AACjE,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;AACvC,QAAQ,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AACrC,QAAQ,IAAI,eAAe,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC1F,QAAQ,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,eAAe,EAAE,UAAU,YAAY,EAAE;AAC7E,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AACtC,gBAAgB,IAAI,YAAY,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;AAC3D,gBAAgB,IAAI,YAAY,EAAE;AAClC,oBAAoB,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;AACxF,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,iBAAiB,EAAE,CAAC;AAC1C,gBAAgB,IAAI,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;AAChD,gBAAgB,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC;AACxC,gBAAgB,IAAI,IAAI,EAAE;AAC1B,oBAAoB,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;AACnE,iBAAiB;AACjB,gBAAgB,IAAI,UAAU,EAAE;AAChC,oBAAoB,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC9D,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACtC,gBAAgB,WAAW,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAC1D,gBAAgB,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;AACrE,gBAAgB,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AAC3D,gBAAgB,IAAI,QAAQ,EAAE;AAC9B,oBAAoB,QAAQ,CAAC,KAAK,EAAE,CAAC;AACrC,iBAAiB;AACjB,gBAAgB,IAAI,SAAS,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;AACtE,gBAAgB,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAClD,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE;AAC3C,oBAAoB,MAAM,CAAC,IAAI,CAAC,CAAC;AACjC,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,aAAa,EAAE,KAAK,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,EAAE;AACxG,oBAAoB,IAAI,KAAK,CAAC,kBAAkB,EAAE;AAClD,wBAAwB,KAAK,CAAC,YAAY,EAAE,CAAC;AAC7C,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,EAAE,EAAE;AACxB,oBAAoB,EAAE,CAAC,KAAK,EAAE,CAAC;AAC/B,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY;AACxD,QAAQ,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AACtC,YAAY,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,sBAAsB,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;AACjG,SAAS;AACT,QAAQ,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACtE,QAAQ,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAC3E,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;AACjC,YAAY,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACpF,YAAY,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACzF,SAAS;AACT;AACA,QAAQ,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACjE,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,CAAC,iBAAiB,GAAG,UAAU,OAAO,EAAE,OAAO,EAAE;AAC7E,QAAQ,IAAI,QAAQ,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AACnG,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC/D,QAAQ,IAAI,YAAY,CAAC;AACzB,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;AACjC,YAAY,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;AAClD,YAAY,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC1E,SAAS;AACT,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAC1E,YAAY,IAAI,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9B,YAAY,QAAQ,IAAI;AACxB,gBAAgB,KAAK,SAAS;AAC9B,oBAAoB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE;AACrE,wBAAwB,IAAI,CAAC,eAAe,EAAE,CAAC;AAC/C,qBAAqB;AACrB,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,UAAU;AAC/B,oBAAoB,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC1C,wBAAwB,IAAI,CAAC,YAAY,EAAE,CAAC;AAC5C,wBAAwB,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AACpE,4BAA4B,IAAI,CAAC,UAAU,EAAE,CAAC;AAC9C,yBAAyB;AACzB,qBAAqB;AACrB,yBAAyB;AACzB,wBAAwB,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1C,qBAAqB;AACrB,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,UAAU;AAC/B,oBAAoB,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;AAClI,wBAAwB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE;AACzE,4BAA4B,IAAI,CAAC,eAAe,EAAE,CAAC;AACnD,yBAAyB;AACzB,wBAAwB,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;AACnF;AACA,wBAAwB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;AACtI,8BAA8B,SAAS,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;AACxF,qBAAqB;AACrB,oBAAoB,IAAI,IAAI,CAAC,cAAc,EAAE;AAC7C,wBAAwB,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC9C,4BAA4B,WAAW,CAAC,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACrF,yBAAyB;AACzB,wBAAwB,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC9C,4BAA4B,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9G,yBAAyB;AACzB,qBAAqB;AACrB,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,QAAQ;AAC7B,oBAAoB,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACpE,oBAAoB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAC7C,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,OAAO;AAC5B,oBAAoB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACpE,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3C,qBAAqB;AACrB,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,oBAAoB;AACzC,oBAAoB,IAAI,OAAO,CAAC,kBAAkB,EAAE;AACpD,wBAAwB,IAAI,CAAC,YAAY,EAAE,CAAC;AAC5C,qBAAqB;AACrB,yBAAyB;AACzB,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3C,qBAAqB;AACrB,oBAAoB,MAAM;AAC1B,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AACnD,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AAC7B,KAAK,CAAC;AACN,IAAIC,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,EAAE,CAAC;AACpB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AACpD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,EAAE,CAAC;AACpB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AACrD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,KAAK,CAAC;AACvB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AACrD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,EAAE,CAAC;AACpB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AACpD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,MAAM,CAAC;AACxB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;AACzD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,IAAI,CAAC;AACtB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC;AAChE,IAAIA,YAAU,CAAC;AACf,QAAQ,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC;AAC5B,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAClD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,KAAK,CAAC;AACvB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/D,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,EAAE,CAAC;AACpB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AACnD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,EAAE,CAAC;AACpB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9D,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7D,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;AACvD,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;AACxD,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAClD,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AACjD,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AACnD,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AACpD,IAAI,cAAc,GAAGA,YAAU,CAAC;AAChC,QAAQ,qBAAqB;AAC7B,KAAK,EAAE,cAAc,CAAC,CAAC;AACvB,IAAI,OAAO,cAAc,CAAC;AAC1B,CAAC,CAAC,SAAS,CAAC,CAAC;;ACl1Bb,IAAID,WAAS,GAAG,CAACD,SAAI,IAAIA,SAAI,CAAC,SAAS,KAAK,CAAC,YAAY;AACzD,IAAI,IAAI,aAAa,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AACxC,QAAQ,aAAa,GAAG,MAAM,CAAC,cAAc;AAC7C,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;AACxF,YAAY,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvF,QAAQ,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,KAAK,CAAC;AACN,IAAI,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE;AAC3B,QAAQ,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAQ,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;AAC/C,QAAQ,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAC7F,KAAK,CAAC;AACN,CAAC,GAAG,CAAC;AACL,IAAIE,YAAU,GAAG,CAACF,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;AACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AACjI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACnI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AACtJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC;AACF,AAQA,IAAI,GAAG,GAAG,OAAO,CAAC;AAClB,IAAI,OAAO,GAAG,iBAAiB,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AAAG,IAAC,WAAW,kBAAkB,UAAU,MAAM,EAAE;AACnD,IAAIC,WAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE;AAC3C,QAAQ,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,YAAY;AAClD,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;AAC/B,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE;AACrC,YAAY,IAAI,UAAU,GAAG,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AAC5D,YAAY,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpF,YAAY,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;AAC/G,YAAY,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE;AAC7E,gBAAgB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;AAC9F,aAAa;AACb,YAAY,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACtD,YAAY,MAAM,CAAC,GAAG,CAAC,CAAC;AACxB,YAAY,GAAG,GAAG,GAAG,CAAC;AACtB,YAAY,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACrC,YAAY,QAAQ,CAAC,eAAe,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;AACvD,YAAY,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACnC,YAAY,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;AAC/B,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;AAC9B,YAAY,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AACvE,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AAC/C,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,QAAQ,IAAI,CAAC,mBAAmB,EAAE,CAAC;AACnC,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;AAC7B,KAAK,CAAC;AACN,IAAI,WAAW,CAAC,SAAS,CAAC,aAAa,GAAG,YAAY;AACtD,QAAQ,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACrC,QAAQ,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AACzE,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;AACvB,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1B,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,KAAK,EAAE,IAAI,EAAE;AAC5D,QAAQ,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC1D,QAAQ,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAChD,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE;AACrE,QAAQ,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AACnE,QAAQ,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAChD,KAAK,CAAC;AACN,IAAI,WAAW,CAAC,SAAS,CAAC,WAAW,GAAG,YAAY;AACpD,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3B,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;AAC9G,YAAY,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7E,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AACnE,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5C,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3F,SAAS;AACT,KAAK,CAAC;AACN,IAAI,WAAW,CAAC,SAAS,CAAC,mBAAmB,GAAG,YAAY;AAC5D,QAAQ,IAAI,QAAQ,GAAG;AACvB,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,YAAY,SAAS,EAAE,IAAI,CAAC,SAAS;AACrC,YAAY,OAAO,EAAE,IAAI,CAAC,OAAO;AACjC,YAAY,YAAY,EAAE,IAAI,CAAC,YAAY;AAC3C,YAAY,OAAO,EAAE,IAAI,CAAC,OAAO;AACjC,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;AAC9D,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AAChE,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;AACrC,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/C,KAAK,CAAC;AACN,IAAI,WAAW,CAAC,SAAS,CAAC,qBAAqB,GAAG,YAAY;AAC9D,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;AACnD,YAAY,SAAS,EAAE,YAAY;AACnC,YAAY,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;AACvC,YAAY,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,cAAc;AAChD,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC1C,QAAQ,IAAI,gBAAgB,GAAG;AAC/B,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnC,YAAY,SAAS,EAAE,IAAI,CAAC,SAAS;AACrC,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK;AAC7B,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;AAC/B,YAAY,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;AACvD,SAAS,CAAC;AACV,QAAQ,gBAAgB,CAAC,gBAAgB,GAAG,UAAU,IAAI,EAAE;AAC5D,YAAY,IAAI,KAAK,CAAC,kBAAkB,EAAE;AAC1C,gBAAgB,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;AACxE,gBAAgB,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC;AAChE,aAAa;AACb,YAAY,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;AACpD,SAAS,CAAC;AACV,QAAQ,gBAAgB,CAAC,IAAI,GAAG,UAAU,IAAI,EAAE;AAChD,YAAY,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACxC,SAAS,CAAC;AACV,QAAQ,gBAAgB,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE;AACjD,YAAY,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACzC,SAAS,CAAC;AACV,QAAQ,gBAAgB,CAAC,MAAM,GAAG,UAAU,IAAI,EAAE;AAClD,YAAY,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC1C,SAAS,CAAC;AACV,QAAQ,gBAAgB,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE;AACtD,YAAY,IAAI,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACtE,gBAAgB,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;AACxE,gBAAgB,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC;AAChE,aAAa;AACb,YAAY,IAAI,eAAe,GAAG,IAAI,QAAQ,EAAE,CAAC;AACjD,YAAY,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,UAAU,YAAY,EAAE;AACtE,gBAAgB,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACtD,aAAa,CAAC,CAAC;AACf,YAAY,OAAO,eAAe,CAAC;AACnC,SAAS,CAAC;AACV,QAAQ,gBAAgB,CAAC,WAAW,GAAG,UAAU,IAAI,EAAE;AACvD,YAAY,IAAI,eAAe,GAAG,IAAI,QAAQ,EAAE,CAAC;AACjD,YAAY,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,UAAU,YAAY,EAAE;AACvE,gBAAgB,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACtD,aAAa,CAAC,CAAC;AACf,YAAY,OAAO,eAAe,CAAC;AACnC,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,gBAAgB,CAAC,CAAC;AACpE,QAAQ,IAAI,CAAC,eAAe,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;AAChE,QAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC/C,QAAQ,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AACtC,YAAY,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;AAClE,YAAY,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;AAC1D,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC;AAClE,QAAQ,IAAI,CAAC,eAAe,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACvF,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACnG,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAC9D,SAAS;AACT,KAAK,CAAC;AACN,IAAI,WAAW,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AAChD,QAAQ,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE;AACjC,YAAY,eAAe,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM;AAC7D,YAAY,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,cAAc,GAAG,aAAa,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,oBAAoB;AACnK,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,SAAS,CAAC,aAAa,GAAG,YAAY;AACtD,QAAQ,OAAO,WAAW,CAAC;AAC3B,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AAC/C,QAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;AACtC,KAAK,CAAC;AACN,IAAI,WAAW,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AAChD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAY,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACnE,YAAY,IAAI,OAAO,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,CAAC,OAAO,EAAE;AACnE,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE;AACtD,oBAAoB,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AAChD,oBAAoB,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;AACrG,oBAAoB,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1E,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;AAC3D,oBAAoB,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACjH,wBAAwB,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAC3D,qBAAqB,CAAC,CAAC;AACvB,oBAAoB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACrF,oBAAoB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACzC,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,YAAY,EAAE,CAAC;AACpC,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;AACrC,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;AACvC,QAAQ,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;AACjE,YAAY,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAClD,SAAS;AACT;AACA,QAAQ,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE;AAC/C,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AACxC,YAAY,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACzE,gBAAgB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjD,aAAa,CAAC,CAAC;AACf,YAAY,QAAQ,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5D,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC5B,KAAK,CAAC;AACN,IAAI,WAAW,CAAC,SAAS,CAAC,UAAU,GAAG,YAAY;AACnD,QAAQ,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;AACnF,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE;AACzC,YAAY,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;AACzD,YAAY,UAAU,EAAE;AACxB,gBAAgB,YAAY,EAAE,eAAe;AAC7C,gBAAgB,KAAK,EAAE,OAAO;AAC9B,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,IAAI,WAAW,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY;AACrD,QAAQ,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAChF,QAAQ,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC;AAC5D,KAAK,CAAC;AACN,IAAI,WAAW,CAAC,SAAS,CAAC,sBAAsB,GAAG,YAAY;AAC/D,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACzD,KAAK,CAAC;AACN,IAAI,WAAW,CAAC,SAAS,CAAC,kBAAkB,GAAG,UAAU,CAAC,EAAE;AAC5D,QAAQ,QAAQ,CAAC,CAAC,MAAM;AACxB,YAAY,KAAK,cAAc;AAC/B,gBAAgB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACrC,gBAAgB,MAAM;AACtB,YAAY,KAAK,OAAO;AACxB,gBAAgB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACrC,gBAAgB,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;AAC3G,oBAAoB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9D,oBAAoB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC3E,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9E,iBAAiB;AACjB,gBAAgB,MAAM;AACtB,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,SAAS,CAAC,iBAAiB,GAAG,UAAU,OAAO,EAAE,OAAO,EAAE;AAC1E,QAAQ,IAAI,KAAK,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAChG,QAAQ,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AACnE,QAAQ,KAAK,GAAG,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM;AACnE,YAAY,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC;AAChF,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AACxD,YAAY,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AACvD,YAAY,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;AAC5C,SAAS;AACT,QAAQ,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AACrE,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAC1E,YAAY,IAAI,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9B,YAAY,QAAQ,IAAI;AACxB,gBAAgB,KAAK,UAAU;AAC/B,oBAAoB,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC1C,wBAAwB,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACjF,qBAAqB;AACrB,oBAAoB,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACtG,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,WAAW;AAChC,oBAAoB,IAAI,OAAO,CAAC,SAAS,EAAE;AAC3C,wBAAwB,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;AACtD,qBAAqB;AACrB,yBAAyB;AACzB,wBAAwB,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;AACzD,qBAAqB;AACrB,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,UAAU;AAC/B,oBAAoB,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC1C,wBAAwB,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC;AACxE,qBAAqB;AACrB,yBAAyB;AACzB,wBAAwB,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC,CAAC;AAC3E,qBAAqB;AACrB,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AAChD,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AAC7B,KAAK,CAAC;AACN,IAAIC,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,EAAE,CAAC;AACpB,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AACjD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,EAAE,CAAC;AACpB,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AAClD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,KAAK,CAAC;AACvB,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AAClD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,EAAE,CAAC;AACpB,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AACjD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,MAAM,CAAC;AACxB,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;AACtD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,KAAK,CAAC;AACvB,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5D,IAAIA,YAAU,CAAC;AACf,QAAQ,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC;AAC5B,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/C,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,EAAE,CAAC;AACpB,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAChD,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC;AAC1D,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;AACpD,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;AACrD,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/C,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/C,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9C,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAChD,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AACjD,IAAI,WAAW,GAAGA,YAAU,CAAC;AAC7B,QAAQ,qBAAqB;AAC7B,KAAK,EAAE,WAAW,CAAC,CAAC;AACpB,IAAI,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;AACnB,AACA;AACA;AACA;AACA,AAAG,IAAC,QAAQ,kBAAkB,YAAY;AAC1C,IAAI,SAAS,QAAQ,GAAG;AACxB,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE;AAC9D,YAAY,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;AACpC,YAAY,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AAClC,SAAS,CAAC,CAAC;AACX;AACA;AACA;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3D;AACA;AACA;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACzD,KAAK;AACL,IAAI,OAAO,QAAQ,CAAC;AACpB,CAAC,EAAE,CAAC;;AC5bJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AAAO,SAAS,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAEC,eAAa,EAAE;AACpE,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,EAAE;AAC7C,IAAI,IAAI,KAAK,CAAC;AACd,IAAI,IAAI,OAAO,CAAC;AAChB,IAAI,IAAI,SAAS,CAAC;AAClB,IAAI,IAAI,QAAQ,CAAC;AACjB,IAAI,IAAI,iBAAiB,CAACA,eAAa,CAAC,EAAE;AAC1C,QAAQA,eAAa,GAAGC,aAAqB,CAAC;AAC9C,KAAK;AACL,IAAI,IAAI,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACnD,IAAI,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;AAClD,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1C,IAAI,IAAI,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;AAC5C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;AACxD,QAAQ,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAQ,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtC,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC/B,YAAY,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE;AAC5C,gBAAgB,OAAO,GAAG,KAAK,CAAC;AAChC,aAAa;AACb,iBAAiB;AACjB,gBAAgB,OAAO,GAAGD,eAAa,CAAC,OAAO,CAAC,CAAC;AACjD,gBAAgB,SAAS,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1C,gBAAgB,IAAI,SAAS,EAAE;AAC/B,oBAAoB,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC7D,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACjD,iBAAiB;AACjB,gBAAgB,IAAI,KAAK,CAAC,EAAE,EAAE;AAC9B,oBAAoB,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;AAC1D,iBAAiB;AACjB,gBAAgB,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE;AACnD,oBAAoB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC1C,iBAAiB;AACjB,gBAAgB,CAAC,EAAE,CAAC;AACpB,aAAa;AACb,YAAY,IAAI,OAAO,CAAC,QAAQ,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACpE,gBAAgB,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AACrD,aAAa;AACb,YAAY,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;AAChD,SAAS;AACT,KAAK;AACL,IAAI,OAAO,OAAO,CAAC;AACnB,CAAC;;AC/ED,IAAIF,WAAS,GAAG,CAACD,SAAI,IAAIA,SAAI,CAAC,SAAS,KAAK,CAAC,YAAY;AACzD,IAAI,IAAI,aAAa,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AACxC,QAAQ,aAAa,GAAG,MAAM,CAAC,cAAc;AAC7C,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;AACxF,YAAY,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvF,QAAQ,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACnC,KAAK,CAAC;AACN,IAAI,OAAO,UAAU,CAAC,EAAE,CAAC,EAAE;AAC3B,QAAQ,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAQ,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;AAC/C,QAAQ,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAC7F,KAAK,CAAC;AACN,CAAC,GAAG,CAAC;AACL,IAAIE,YAAU,GAAG,CAACF,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;AACvF,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;AACjI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACnI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AACtJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC;AACF,AAKA,IAAI,WAAW,GAAG,gBAAgB,CAAC;AACnC,IAAI,QAAQ,GAAG,YAAY,CAAC;AAC5B,IAAI,cAAc,GAAG,mBAAmB,CAAC;AACzC,IAAI,UAAU,GAAG,eAAe,CAAC;AACjC;AACA;AACA;AACA,AAAG,IAAC,YAAY,kBAAkB,UAAU,MAAM,EAAE;AACpD,IAAIC,WAAS,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AACpC,IAAI,SAAS,YAAY,GAAG;AAC5B,QAAQ,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC;AACxE,KAAK;AACL,IAAIC,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,IAAI,CAAC;AACtB,KAAK,EAAE,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AACnD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,EAAE,CAAC;AACpB,KAAK,EAAE,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAChD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,MAAM,CAAC;AACxB,KAAK,EAAE,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AACnD,IAAI,OAAO,YAAY,CAAC;AACxB,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAClB,AACA;AACA;AACA;AACA,AAAG,IAAC,iBAAiB,kBAAkB,UAAU,MAAM,EAAE;AACzD,IAAID,WAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;AACzC,IAAI,SAAS,iBAAiB,GAAG;AACjC,QAAQ,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC;AACxE,KAAK;AACL,IAAIC,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,GAAG,CAAC;AACrB,KAAK,EAAE,iBAAiB,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AACxD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,MAAM,CAAC;AACxB,KAAK,EAAE,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AACtD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,MAAM,CAAC;AACxB,KAAK,EAAE,iBAAiB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AACtD,IAAI,OAAO,iBAAiB,CAAC;AAC7B,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAClB,AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AAAG,IAAC,cAAc,kBAAkB,UAAU,MAAM,EAAE;AACtD,IAAID,WAAS,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE;AAC9C,QAAQ,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC;AAChE,QAAQ,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;AACvB,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,cAAc,CAAC,SAAS,CAAC,SAAS,GAAG,YAAY;AACrD,QAAQ,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AAClD,QAAQ,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;AACpB,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1B,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;AACvB,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,OAAO,EAAE;AACxD,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAChF,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,CAAC,IAAI,GAAG,YAAY;AAChD,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7B,QAAQ,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3C,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,CAAC,gBAAgB,GAAG,YAAY;AAC5D,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,CAAC,aAAa,GAAG,YAAY;AACzD,QAAQ,OAAO,cAAc,CAAC;AAC9B,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AACnD,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,SAAS,GAAG,CAAC,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AACxH,YAAY,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;AAClE,QAAQ,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;AAC5B,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,SAAS;AACT,QAAQ,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;AAC/C,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC;AACxH,cAAc,CAAC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;AACzF,QAAQ,GAAG,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACnC,YAAY,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAC/C,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AACrD,SAAS;AACT,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,IAAI,GAAG,YAAY;AAChD,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACrF,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;AAC1B,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;AAC7B,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;AACjC,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;AAClC,SAAS;AACT,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,aAAa,GAAG,YAAY;AACzD,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;AAC7E,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACtC,QAAQ,aAAa,CAAC;AACtB,YAAY,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ;AACvG,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/B,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,UAAU,GAAG,YAAY;AACtD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,WAAW,GAAG,YAAY;AACvD,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,GAAG,EAAE;AAC9D,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,MAAM,CAAC;AAC5D,QAAQ,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,KAAK,EAAE;AACvD,YAAY,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/F,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC1C,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;AACvE,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,cAAc,GAAG,YAAY;AAC1D,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AACtF,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,UAAU,GAAG,YAAY;AACtD,QAAQ,IAAI,IAAI,CAAC;AACjB,QAAQ,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AACtC,QAAQ,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACtC,YAAY,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACvE,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;AACpC,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzG,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU,OAAO,EAAE;AACjE,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;AACjG,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAY,IAAI,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AAC/F,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE;AAClD,gBAAgB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACzD,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;AAChF,gBAAgB,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;AACnF,oBAAoB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,WAAW,CAAC,CAAC;AACrG,iBAAiB;AACjB,aAAa;AACb,YAAY,IAAI,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9C,YAAY,IAAI,IAAI,KAAK,IAAI,CAAC,YAAY,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,EAAE;AACvF,gBAAgB,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAClD,aAAa;AACb,iBAAiB;AACjB,gBAAgB,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3C,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC3C,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY;AACxD,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;AAC7D,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;AAC7B,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,aAAa,GAAG,UAAU,OAAO,EAAE,YAAY,EAAE;AAC9E,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAC7C,QAAQ,IAAI,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACxD,QAAQ,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACpC,QAAQ,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE;AAC9C,YAAY,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;AAClE,SAAS;AACT,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,GAAG,YAAY,GAAG,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;AAC/L,QAAQ,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAChC,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE;AACnJ,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI;AACZ,YAAY,IAAI,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAChD,YAAY,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;AACtD,YAAY,IAAI,gBAAgB,GAAG,QAAQ,IAAI,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC;AACpH,YAAY,IAAI,CAAC,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAC1F,YAAY,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAAC;AACpD,YAAY,OAAO,GAAG,OAAO,GAAG,CAAC,QAAQ,GAAG,gBAAgB,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;AACpF,YAAY,WAAW,GAAG,CAAC,CAAC,YAAY,GAAG,gBAAgB,IAAI,QAAQ,KAAK,CAAC,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,GAAG,WAAW,CAAC;AAC1H,YAAY,IAAI,IAAI,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC3F,YAAY,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AAC1C,YAAY,IAAI,OAAO,KAAK,CAAC,EAAE;AAC/B,gBAAgB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,YAAY,EAAE;AACpE,oBAAoB,KAAK,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AAC1I,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,iBAAiB,IAAI,OAAO,KAAK,GAAG,IAAI,YAAY,KAAK,IAAI,CAAC,QAAQ,EAAE;AACxE,gBAAgB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,YAAY,EAAE;AAClE,oBAAoB,KAAK,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AAC1I,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,YAAY,EAAE;AACvE,oBAAoB,KAAK,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AAC1I,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,CAAC,EAAE;AAClB,YAAY,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/C,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACpC,SAAS;AACT,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,eAAe,GAAG,UAAU,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;AAC3G,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC;AAC3B,QAAQ,IAAI,WAAW,GAAG,KAAK,CAAC;AAChC,QAAQ,IAAI,cAAc,GAAG,MAAM,CAAC;AACpC,QAAQ,IAAI,YAAY,GAAG,MAAM,CAAC;AAClC,QAAQ,IAAI,gBAAgB,GAAG,OAAO,CAAC;AACvC,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC;AAC5B,QAAQ,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;AAC1C,QAAQ,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE;AACtE,YAAY,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AACnC,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC9B,QAAQ,IAAI,CAAC,YAAY,GAAG,gBAAgB,KAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,GAAG,EAAE;AAC5G,YAAY,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC,YAAY;AAC7D,gBAAgB,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;AACjE,oBAAoB,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC,GAAG,OAAO,GAAG,GAAG,CAAC;AAC/F,iBAAiB;AACjB,gBAAgB,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChF,aAAa,CAAC,CAAC;AACf,YAAY,WAAW,GAAG,OAAO,CAAC;AAClC,YAAY,gBAAgB,GAAG,YAAY,CAAC;AAC5C,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5B,YAAY,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,GAAG,GAAG,EAAE;AAC/D,gBAAgB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY;AAC9D,oBAAoB,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;AAC1I,iBAAiB,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,IAAI,cAAc,CAAC,CAAC;AAC3D,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY;AAC9D,oBAAoB,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;AAC3D,oBAAoB,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;AACrE,wBAAwB,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC;AAC1F,qBAAqB;AACrB,oBAAoB,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AACrE,oBAAoB,KAAK,CAAC,QAAQ,EAAE,CAAC;AACrC,iBAAiB,EAAE,GAAG,CAAC,CAAC;AACxB,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,gBAAgB,GAAG,YAAY;AAC5D,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,MAAM,EAAE;AACtD,YAAY,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE;AAC7C,gBAAgB,QAAQ,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,KAAK,CAAC,IAAI,aAAa,KAAK,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ;AACvI,gBAAgB,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM;AAChE,gBAAgB,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM;AAC7D,gBAAgB,KAAK,EAAE,YAAY;AACnC,oBAAoB,IAAI,KAAK,CAAC,YAAY,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAClE,wBAAwB,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/C,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,GAAG,EAAE,YAAY;AACjC,oBAAoB,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACvD,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,SAAS;AACT,aAAa,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC1D,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;AAClC,SAAS;AACT,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,cAAc,GAAG,YAAY;AAC1D,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAC7C,QAAQ,IAAI,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACxD,QAAQ,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACpC,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;AACxB,QAAQ,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AACnD,YAAY,CAAC,IAAI,EAAE,CAAC;AACpB,YAAY,IAAI,CAAC,GAAG,GAAG,EAAE;AACzB,gBAAgB,CAAC,GAAG,GAAG,CAAC;AACxB,aAAa;AACb,YAAY,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AAC3D,gBAAgB,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC;AACtH,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;AACxB,QAAQ,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AACzF,QAAQ,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpC,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAClC,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AAC7C,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,cAAc,GAAG,YAAY;AAC1D,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AACxC,QAAQ,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;AACpF,QAAQ,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;AACvF,QAAQ,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC5C,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;AACpD,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,QAAQ,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAAE;AAC7D,YAAY,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;AAClE,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACtD,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,MAAM,EAAE;AACtD,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACnD,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACrD,YAAY,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AACxC,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACpD,YAAY,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;AACrC,YAAY,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AACtC,SAAS;AACT,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,WAAW,GAAG,YAAY;AACvD,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,EAAE;AACjG,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACvC,SAAS;AACT,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AACnD,QAAQ,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE;AACjC,YAAY,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,WAAW;AAChE,SAAS,CAAC,CAAC;AACX,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,UAAU,GAAG,YAAY;AACtD,QAAQ,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACzE,KAAK,CAAC;AACN,IAAI,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY;AACxD,QAAQ,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACtE,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,CAAC,iBAAiB,GAAG,UAAU,OAAO,EAAE,OAAO,EAAE;AAC7E,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;AAC/B,QAAQ,IAAI,UAAU,GAAG,KAAK,CAAC;AAC/B,QAAQ,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC;AAC9E,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;AAC7C,YAAY,UAAU,GAAG,IAAI,CAAC;AAC9B,SAAS;AACT,QAAQ,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxE,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;AAC1E,YAAY,IAAI,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9B,YAAY,QAAQ,IAAI;AACxB,gBAAgB,KAAK,SAAS;AAC9B,oBAAoB,IAAI,CAAC,UAAU,EAAE,CAAC;AACtC,oBAAoB,IAAI,CAAC,aAAa,EAAE,CAAC;AACzC,oBAAoB,IAAI,UAAU,EAAE;AACpC,wBAAwB,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;AAC9E,wBAAwB,UAAU,GAAG,KAAK,CAAC;AAC3C,qBAAqB;AACrB,oBAAoB,IAAI,IAAI,CAAC,cAAc,EAAE;AAC7C,wBAAwB,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9C,qBAAqB;AACrB,oBAAoB,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC;AAClF,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,SAAS;AAC9B,oBAAoB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AAC1C,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3C,qBAAqB;AACrB,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,cAAc;AACnC,oBAAoB,IAAI,CAAC,WAAW,EAAE,CAAC;AACvC,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,gBAAgB;AACrC,oBAAoB,IAAI,OAAO,CAAC,cAAc,EAAE;AAChD,wBAAwB,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9C,qBAAqB;AACrB,yBAAyB;AACzB,wBAAwB,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACnD,qBAAqB;AACrB,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,cAAc;AACnC,oBAAoB,IAAI,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE;AACvD,wBAAwB,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;AACtG,wBAAwB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AAChE,qBAAqB;AACrB,oBAAoB,IAAI,OAAO,CAAC,YAAY,CAAC,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE;AACrF,wBAAwB,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AAC3D,wBAAwB,IAAI,CAAC,aAAa,EAAE,CAAC;AAC7C,qBAAqB;AACrB,oBAAoB,MAAM;AAC1B,aAAa;AACb,SAAS;AACT,KAAK,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AACnD,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AAC7B,KAAK,CAAC;AACN,IAAIC,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,KAAK,CAAC;AACvB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3D,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,IAAI,CAAC;AACtB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AACrD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,MAAM,CAAC;AACxB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;AACzD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,EAAE,CAAC;AACpB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AACpD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,KAAK,CAAC;AACvB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AACrD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,KAAK,CAAC;AACvB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;AACtD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,EAAE,CAAC;AACpB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AACrD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,EAAE,CAAC;AACpB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AACpD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,KAAK,CAAC;AACvB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AACrD,IAAIA,YAAU,CAAC;AACf,QAAQ,QAAQ,CAAC,IAAI,CAAC;AACtB,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC;AAChE,IAAIA,YAAU,CAAC;AACf,QAAQ,OAAO,CAAC,EAAE,EAAE,YAAY,CAAC;AACjC,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;AACzD,IAAIA,YAAU,CAAC;AACf,QAAQ,OAAO,CAAC,EAAE,EAAE,iBAAiB,CAAC;AACtC,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9D,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AACpD,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAClD,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AACrD,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAChD,IAAIA,YAAU,CAAC;AACf,QAAQ,KAAK,EAAE;AACf,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AACjD,IAAI,cAAc,GAAGA,YAAU,CAAC;AAChC,QAAQ,qBAAqB;AAC7B,KAAK,EAAE,cAAc,CAAC,CAAC;AACvB,IAAI,OAAO,cAAc,CAAC;AAC1B,CAAC,CAAC,MAAM,CAAC,CAAC;;;;"}
|