Your IP : 172.70.127.68


Current Path : /var/www/element/data/www/revenuestory.ru/bitrix/js/landing/provider/map/dist/
Upload File :
Current File : /var/www/element/data/www/revenuestory.ru/bitrix/js/landing/provider/map/dist/map.bundle.js.map

{"version":3,"file":"map.bundle.js","sources":["../src/base_provider.js","../src/google_map/theme/aubergine.js","../src/google_map/theme/dark.js","../src/google_map/theme/night.js","../src/google_map/theme/retro.js","../src/google_map/theme/silver.js","../src/google_map/theme/themes.js","../src/google_map/settings.js","../src/google_map.js","../src/yandex_map.js","../src/map.js"],"sourcesContent":["import {Type, Tag, Loc, Cache, Runtime} from 'main.core';\nimport {EventEmitter} from 'main.core.events';\nimport {BaseCollection} from 'landing.collection.basecollection';\n\nexport class BaseProvider extends EventEmitter\n{\n\t/**\n\t * Implements base interface for works with any map providers\n\t * @param {object} options\n\t * @param {function} [options.onChange]\n\t * @param {function} [options.onMapClick]\n\t * @param {function} [options.onAddMarker]\n\t * @param {function} [options.onApiLoaded]\n\t * @param {HTMLElement|Element} [options.mapContainer]\n\t * @param {Object} [options.mapOptions]\n\t * @param {Number|String} [options.mapOptions.zoom]\n\t * @param {{lat: String|Number, lng: String|Number}} [options.mapOptions.center]\n\t * @param {{\n\t * \t\tlatLng: {lat: String|Number, lng: String|Number},\n\t * \t\ttitle: String,\n\t * \t\tdescription: String,\n\t * \t\tshowByDefault: String,\n\t * \t}[]} [options.mapOptions.markers]\n\t * @constructor\n\t */\n\tconstructor(options: {})\n\t{\n\t\tsuper();\n\t\t/**\n\t\t * Must be implemented by subclass\n\t\t * @type {string}\n\t\t */\n\t\tthis.code = '';\n\n\t\tthis.onChangeHandler = Type.isFunction(options.onChange) ? options.onChange : (() => {});\n\t\tthis.onMapClickHandler = Type.isFunction(options.onMapClick) ? options.onMapClick : (() => {});\n\t\tthis.onAddMarkerHandler = Type.isFunction(options.onAddMarker) ? options.onAddMarker : (() => {});\n\t\tthis.onApiLoadedHandler = Type.isFunction(options.onApiLoaded) ? options.onApiLoaded : (() => {});\n\t\tthis.onInitHandler = Type.isFunction(options.onProviderInit) ? options.onProviderInit : (() => {});\n\t\tthis.options = options;\n\t\tthis.mapOptions = this.prepareMapOptions(options.mapOptions);\n\t\tthis.mapContainer = options.mapContainer;\n\t\tthis.markers = new BaseCollection();\n\t\tthis.mapInstance = null;\n\n\t\tthis.cache = new Cache.MemoryCache();\n\n\t\tthis.handleApiLoad();\n\n\t\tthis.onChange = Runtime.debounce(this.onChange.bind(this), 666);\n\t}\n\n\n\n\t/**\n\t * Default options for map\n\t * @type {{}}\n\t */\n\tgetDefaultMapOptions()\n\t{\n\t\treturn {\n\t\t\tcenter: this.getDefaultCenter(),\n\t\t\tzoom: 17,\n\t\t\tmarkers: [\n\t\t\t\t{\n\t\t\t\t\tlatLng: this.getDefaultCenter(),\n\t\t\t\t\t// todo: desc to lang message\n\t\t\t\t\ttitle: \"Bitrix24\",\n\t\t\t\t\tdescription: \"Bitrix24 - Your company. United.\",\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t}\n\n\t/**\n\t * Check if map options have required fields\n\t * @param mapOptions\n\t * @return {{center: ([]|{lng: number, lat: number}), zoom: number, markers: [{description: string, title: string, latLng: (*|{lng: number, lat: number})}]}|*}\n\t */\n\tprepareMapOptions(mapOptions: {}): {}\n\t{\n\t\tif (!Type.isPlainObject(mapOptions))\n\t\t{\n\t\t\treturn this.getDefaultMapOptions();\n\t\t}\n\n\t\tlet preparedOptions = mapOptions;\n\t\tif (!this.isPoint(preparedOptions.center))\n\t\t{\n\t\t\tpreparedOptions.center = this.getDefaultCenter();\n\n\t\t\tif (\n\t\t\t\tType.isArray(mapOptions.markers)\n\t\t\t\t&& mapOptions.markers.length > 0\n\t\t\t)\n\t\t\t{\n\t\t\t\tconst firstMarker = mapOptions.markers[0];\n\n\t\t\t\tif (\n\t\t\t\t\tType.isPlainObject(firstMarker)\n\t\t\t\t\t&& this.isPoint(firstMarker.latLng)\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tpreparedOptions.center = firstMarker.latLng;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn preparedOptions;\n\t}\n\n\t/**\n\t * Return a default center point by language\n\t * @return {{lng: number, lat: number}}\n\t */\n\tgetDefaultCenter(): {lat: number, lng: number}\n\t{\n\t\tlet point;\n\t\tswitch (Loc.getMessage('LANGUAGE_ID'))\n\t\t{\n\t\t\tcase 'ru':\n\t\t\t\tpoint = {\n\t\t\t\t\tlat: 54.71916849999999,\n\t\t\t\t\tlng: 20.48854240000003,\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tcase 'ua':\n\t\t\t\tpoint = {\n\t\t\t\t\tlat: 50.440333,\n\t\t\t\t\tlng: 30.526835,\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t//default - en\n\t\t\t\tpoint = {\n\t\t\t\t\tlat: 38.814089,\n\t\t\t\t\tlng: -77.042356,\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn point;\n\t}\n\n\t/**\n\t * Check is current variable is a geo point\n\t * @param point\n\t * @return {boolean}\n\t */\n\tisPoint(point): boolean\n\t{\n\t\treturn Type.isObjectLike(point) && Object.keys(point).length === 2;\n\t}\n\n\t/**\n\t * Extract coords from map events (f.e. click)\n\t * @param event\n\t */\n\tgetPointByEvent(event): {lat: number, lng: number}\n\t{\n\t\tthrow new Error(\"Must be implemented by subclass\");\n\t}\n\n\tgetCode(): string\n\t{\n\t\treturn this.code;\n\t}\n\n\t/**\n\t * Check is provider API was loaded\n\t * @return {boolean}\n\t */\n\tisApiLoaded(): boolean\n\t{\n\t\tthrow new Error(\"Must be implemented by subclass\");\n\t}\n\n\t/**\n\t * Initializes map\n\t * Must be implemented by subclass\n\t * @abstract\n\t */\n\tinit()\n\t{\n\t\tthis.onInitHandler();\n\t\tthis.emit('onInit');\n\t}\n\n\t/**\n\t * Pass new options and reinit map\n\t * @param options\n\t */\n\treinit(options: {})\n\t{\n\t\t// todo: add options type and validation\n\t\tthis.options = options;\n\t\tthis.emit('onInit');\n\t}\n\n\t/**\n\t * Set api load handle function\n\t * @abstract\n\t */\n\thandleApiLoad(): void\n\t{\n\t\tthrow new Error(\"Must be implemented by subclass\");\n\t}\n\n\t/**\n\t *\n\t */\n\tonChange()\n\t{\n\t\tthis.onChangeHandler(this.preventChangeEvent);\n\t\tthis.preventChangeEvent = false;\n\t}\n\n\t/**\n\t * Adds marker on map\n\t * @abstract\n\t * @param {Object} options\n\t * @param {Object} options.latLng\n\t * @param {Object} options.latLng\n\t * @param {String|Number} options.latLng.lat\n\t * @param {String|Number} options.latLng.lng\n\t * @param {String} [options.title]\n\t * @param {String} [options.description]\n\t * @param {boolean} [options.showByDefault = false]\n\t * @param {boolean} [options.editable = false]\n\t * @param {boolean} [options.draggable = false]\n\t * @return {void}\n\t */\n\taddMarker(options): void\n\t{\n\t\tthrow new Error(\"Must be implemented by subclass\");\n\t}\n\n\t/**\n\t * When marker clicked\n\t * @param item\n\t */\n\tonMarkerClick(item): void\n\t{\n\t\tthrow new Error(\"Must be implemented by subclass\");\n\t}\n\n\t/**\n\t * Removes marker from map\n\t * @abstract\n\t * @param options\n\t */\n\tremoveMarker(options): void\n\t{\n\t\tthrow new Error(\"Must be implemented by subclass\");\n\t}\n\n\t/**\n\t * Removes all markers from map\n\t * @abstract\n\t * @param options\n\t */\n\tclearMarkers(): void\n\t{\n\t\tthrow new Error(\"Must be implemented by subclass\");\n\t}\n\n\t/**\n\t * Gets map value\n\t * @abstract\n\t */\n\tgetValue(): {}\n\t{\n\t\tthrow new Error(\"Must be implemented by subclass\");\n\t}\n\n\t/**\n\t * Set values\n\t * @param value\n\t * @param preventChangeEvent\n\t */\n\tsetValue(value, preventChangeEvent): void\n\t{\n\t\tthis.preventChangeEvent = preventChangeEvent;\n\n\t\tthis.clearMarkers();\n\n\t\tif (Type.isPlainObject(value))\n\t\t{\n\t\t\tif (Type.isArray(value.markers))\n\t\t\t{\n\t\t\t\tvalue.markers.forEach(this.addMarker, this);\n\t\t\t}\n\n\t\t\tif (!BX.Landing.Utils.isEmpty(value.center))\n\t\t\t{\n\t\t\t\tthis.setCenter(value.center);\n\t\t\t}\n\n\t\t\tif (value.zoom && Type.isNumber(value.zoom))\n\t\t\t{\n\t\t\t\tthis.setZoom(value.zoom);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @abstract\n\t */\n\tonEditFormApplyClick(event): void\n\t{\n\t\tthrow new Error(\"Must be implemented by subclass\");\n\t}\n\n\t/**\n\t * @abstract\n\t * @param event\n\t */\n\tonEditFormRemoveClick(event): void\n\t{\n\t\tthrow new Error(\"Must be implemented by subclass\");\n\t}\n\n\t/**\n\t * Creates balloon edit forms\n\t * @param options\n\t * @param [event]\n\t * @return {BX.Landing.UI.Form.BalloonForm}\n\t */\n\tcreateBalloonEditForm(options, event)\n\t{\n\t\tconst form = new BX.Landing.UI.Form.BalloonForm({\n\t\t\ttitle: Loc.getMessage(\"LANDING_NODE_MAP_FORM_HEADER\"),\n\t\t});\n\n\t\tconst applyButton = new BX.Landing.UI.Button.BaseButton({\n\t\t\ttext: Loc.getMessage(\"LANDING_NODE_MAP_FORM_SHOW_BUTTON_APPLY\"),\n\t\t\tclassName: [\"ui-btn\", \"ui-btn-success\", \"ui-btn-sm\"],\n\t\t\tonClick: this.onEditFormApplyClick.bind(this, event),\n\t\t});\n\n\t\tconst removeButton = new BX.Landing.UI.Button.BaseButton({\n\t\t\ttext: Loc.getMessage(\"LANDING_NODE_MAP_FORM_SHOW_BUTTON_REMOVE\"),\n\t\t\tclassName: [\"ui-btn\", \"ui-btn-danger\", \"ui-btn-sm\"],\n\t\t\tonClick: this.onEditFormRemoveClick.bind(this, event),\n\t\t});\n\n\t\tapplyButton.layout.classList.remove(\"landing-ui-button\");\n\t\tremoveButton.layout.classList.remove(\"landing-ui-button\");\n\n\t\tconst footer = Tag.render`\n\t\t\t<div class=\"ui-btn-container ui-btn-container-center\">\n\t\t\t\t${applyButton.layout}\n\t\t\t\t${removeButton.layout}\n\t\t\t</div>\n\t\t`;\n\n\t\tform.addField(\n\t\t\tnew BX.Landing.UI.Field.Text({\n\t\t\t\ttitle: Loc.getMessage(\"LANDING_NODE_MAP_FORM_TITLE\"),\n\t\t\t\ttextOnly: true,\n\t\t\t\tcontent: options.title,\n\t\t\t}),\n\t\t);\n\n\t\tform.addField(\n\t\t\tnew BX.Landing.UI.Field.Text({\n\t\t\t\ttitle: Loc.getMessage(\"LANDING_NODE_MAP_FORM_DESCRIPTION\"),\n\t\t\t\tclassName: \"landing-ui-field-map-description\",\n\t\t\t\tcontent: options.description,\n\t\t\t}),\n\t\t);\n\n\t\tform.addField(\n\t\t\tnew BX.Landing.UI.Field.Checkbox({\n\t\t\t\tclassName: \"landing-ui-field-map-show-by-default\",\n\t\t\t\tcompact: true,\n\t\t\t\titems: [\n\t\t\t\t\t{name: Loc.getMessage(\"LANDING_NODE_MAP_FORM_SHOW_BY_DEFAULT\"), \"value\": true},\n\t\t\t\t],\n\t\t\t\tvalue: [options.showByDefault],\n\t\t\t}),\n\t\t);\n\n\t\tform.layout.appendChild(footer);\n\n\t\treturn form;\n\t}\n\n\t/**\n\t * Creates balloon content\n\t * @param {{title: string, description: string}} options\n\t * @return {HTMLElement}\n\t */\n\tcreateBalloonContent(options): HTMLDivElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"landing-map-balloon-content\">\n\t\t\t\t<div class=\"landing-map-balloon-content-header\">${options.title}</div>\t\n\t\t\t\t<div class=\"landing-map-balloon-content-description\">${options.description}</div>\t\n\t\t\t</div>\n\t\t`;\n\t}\n}","export const AUBERGINE = [\n\t{\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#1d2c4d\"},\n\t\t],\n\t},\n\t{\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#8ec3b9\"},\n\t\t],\n\t},\n\t{\n\t\t\"elementType\": \"labels.text.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#1a3646\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"administrative.country\",\n\t\t\"elementType\": \"geometry.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#4b6878\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"administrative.land_parcel\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#64779e\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"administrative.province\",\n\t\t\"elementType\": \"geometry.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#4b6878\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"landscape.man_made\",\n\t\t\"elementType\": \"geometry.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#334e87\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"landscape.natural\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#023e58\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#283d6a\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#6f9ba5\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi\",\n\t\t\"elementType\": \"labels.text.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#1d2c4d\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi.park\",\n\t\t\"elementType\": \"geometry.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#023e58\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi.park\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#3c7680\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#304a7d\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#98a5be\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road\",\n\t\t\"elementType\": \"labels.text.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#1d2c4d\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.highway\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#2c6675\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.highway\",\n\t\t\"elementType\": \"geometry.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#255763\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.highway\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#b0d5ce\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.highway\",\n\t\t\"elementType\": \"labels.text.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#023e58\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"transit\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#98a5be\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"transit\",\n\t\t\"elementType\": \"labels.text.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#1d2c4d\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"transit.line\",\n\t\t\"elementType\": \"geometry.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#283d6a\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"transit.station\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#3a4762\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"water\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#0e1626\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"water\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#4e6d70\"},\n\t\t],\n\t},\n];\n","export const DARK = [\n\t{\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#212121\"},\n\t\t],\n\t},\n\t{\n\t\t\"elementType\": \"labels.icon\",\n\t\t\"stylers\": [\n\t\t\t{\"visibility\": \"off\"},\n\t\t],\n\t},\n\t{\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#757575\"},\n\t\t],\n\t},\n\t{\n\t\t\"elementType\": \"labels.text.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#212121\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"administrative\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#757575\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"administrative.country\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#9e9e9e\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"administrative.land_parcel\",\n\t\t\"stylers\": [\n\t\t\t{\"visibility\": \"off\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"administrative.locality\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#bdbdbd\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#757575\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi.park\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#181818\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi.park\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#616161\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi.park\",\n\t\t\"elementType\": \"labels.text.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#1b1b1b\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road\",\n\t\t\"elementType\": \"geometry.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#2c2c2c\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#8a8a8a\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.arterial\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#373737\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.highway\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#3c3c3c\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.highway.controlled_access\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#4e4e4e\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.local\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#616161\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"transit\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#757575\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"water\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#000000\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"water\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#3d3d3d\"},\n\t\t],\n\t},\n];\n","export const NIGHT = [\n\t{\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#242f3e\"},\n\t\t],\n\t},\n\t{\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#746855\"},\n\t\t],\n\t},\n\t{\n\t\t\"elementType\": \"labels.text.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#242f3e\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"administrative.locality\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#d59563\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#d59563\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi.park\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#263c3f\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi.park\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#6b9a76\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#38414e\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road\",\n\t\t\"elementType\": \"geometry.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#212a37\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#9ca5b3\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.highway\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#746855\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.highway\",\n\t\t\"elementType\": \"geometry.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#1f2835\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.highway\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#f3d19c\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"transit\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#2f3948\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"transit.station\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#d59563\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"water\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#17263c\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"water\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#515c6d\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"water\",\n\t\t\"elementType\": \"labels.text.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#17263c\"},\n\t\t],\n\t},\n];\n","export const RETRO = [\n\t{\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#ebe3cd\"},\n\t\t],\n\t},\n\t{\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#523735\"},\n\t\t],\n\t},\n\t{\n\t\t\"elementType\": \"labels.text.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#f5f1e6\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"administrative\",\n\t\t\"elementType\": \"geometry.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#c9b2a6\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"administrative.land_parcel\",\n\t\t\"elementType\": \"geometry.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#dcd2be\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"administrative.land_parcel\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#ae9e90\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"landscape.natural\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#dfd2ae\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#dfd2ae\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#93817c\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi.park\",\n\t\t\"elementType\": \"geometry.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#a5b076\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi.park\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#447530\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#f5f1e6\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.arterial\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#fdfcf8\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.highway\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#f8c967\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.highway\",\n\t\t\"elementType\": \"geometry.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#e9bc62\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.highway.controlled_access\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#e98d58\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.highway.controlled_access\",\n\t\t\"elementType\": \"geometry.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#db8555\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.local\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#806b63\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"transit.line\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#dfd2ae\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"transit.line\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#8f7d77\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"transit.line\",\n\t\t\"elementType\": \"labels.text.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#ebe3cd\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"transit.station\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#dfd2ae\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"water\",\n\t\t\"elementType\": \"geometry.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#b9d3c2\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"water\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#92998d\"},\n\t\t],\n\t},\n];\n","export const SILVER = [\n\t{\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#f5f5f5\"},\n\t\t],\n\t},\n\t{\n\t\t\"elementType\": \"labels.icon\",\n\t\t\"stylers\": [\n\t\t\t{\"visibility\": \"off\"},\n\t\t],\n\t},\n\t{\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#616161\"},\n\t\t],\n\t},\n\t{\n\t\t\"elementType\": \"labels.text.stroke\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#f5f5f5\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"administrative.land_parcel\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#bdbdbd\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#eeeeee\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#757575\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi.park\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#e5e5e5\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"poi.park\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#9e9e9e\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#ffffff\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.arterial\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#757575\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.highway\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#dadada\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.highway\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#616161\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"road.local\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#9e9e9e\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"transit.line\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\n\t\t\t\t\"color\": \"#e5e5e5\",\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"transit.station\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#eeeeee\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"water\",\n\t\t\"elementType\": \"geometry\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#c9c9c9\"},\n\t\t],\n\t},\n\t{\n\t\t\"featureType\": \"water\",\n\t\t\"elementType\": \"labels.text.fill\",\n\t\t\"stylers\": [\n\t\t\t{\"color\": \"#9e9e9e\"},\n\t\t],\n\t},\n];\n","import {AUBERGINE} from './aubergine';\nimport {DARK} from './dark';\nimport {NIGHT} from './night';\nimport {RETRO} from './retro';\nimport {SILVER} from './silver';\n\nexport const themes = {\n\tAUBERGINE: AUBERGINE,\n\tDARK: DARK,\n\tNIGHT: NIGHT,\n\tRETRO: RETRO,\n\tSILVER: SILVER,\n};","export const roads = {\n\t'': [],\n\t'off': [\n\t\t{\n\t\t\t\"featureType\": \"road\",\n\t\t\t\"stylers\": [\n\t\t\t\t{\"visibility\": \"off\" }\n\t\t\t]\n\t\t}\n\t]\n};\n\nexport const landmarks = {\n\t'': [],\n\t'off': [\n\t\t{\n\t\t\t\"featureType\": \"administrative\",\n\t\t\t\"elementType\": \"geometry\",\n\t\t\t\"stylers\": [{\"visibility\": \"off\"}]\n\t\t},\n\t\t{\n\t\t\t\"featureType\": \"poi\",\n\t\t\t\"stylers\": [{\"visibility\": \"off\"}]},\n\t\t{\n\t\t\t\"featureType\": \"road\",\n\t\t\t\"elementType\": \"labels.icon\",\n\t\t\t\"stylers\": [{\"visibility\": \"off\"}]\n\t\t},\n\t\t{\n\t\t\t\"featureType\": \"transit\",\n\t\t\t\"stylers\": [{\"visibility\": \"off\"}]\n\t\t}\n\t]\n};\n\nexport const labels = {\n\t'': [],\n\t'off': [\n\t\t{\n\t\t\t\"elementType\": \"labels\",\n\t\t\t\"stylers\": [{\"visibility\": \"off\"}]\n\t\t},\n\t\t{\n\t\t\t\"featureType\": \"administrative.land_parcel\",\n\t\t\t\"stylers\": [{\"visibility\": \"off\"}]\n\t\t},\n\t\t{\n\t\t\t\"featureType\": \"administrative.neighborhood\",\n\t\t\t\"stylers\": [{\"visibility\": \"off\"}]\n\t\t}\n\t]\n};","import {Type} from 'main.core';\nimport {BaseProvider} from './base_provider';\nimport {themes} from './google_map/theme/themes';\nimport {roads, landmarks, labels} from './google_map/settings';\n\nexport class GoogleMap extends BaseProvider\n{\n\tconstructor(options: {})\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.Provider.Map.GoogleMap');\n\t\tthis.code = 'google';\n\t\tthis.themes = themes;\n\t}\n\n\t/**\n\t * Extract coords from map events (f.e. click)\n\t * @param event\n\t */\n\tgetPointByEvent(event): {lat: number, lng: number}\n\t{\n\t\tconst point = event.latLng;\n\t\treturn this.isPoint(point) ? point : {};\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit()\n\t{\n\t\tthis.preventChangeEvent = true;\n\n\t\tlet opts = this.options;\n\n\t\tthis.mapInstance = new google.maps.Map(this.mapContainer, {\n\t\t\tzoom: this.mapOptions.zoom,\n\t\t\tcenter: this.mapOptions.center,\n\t\t\tzoomControl: Type.isBoolean(opts.zoomControl) ? opts.zoomControl : true,\n\t\t\tmapTypeControl: Type.isBoolean(opts.mapTypeControl) ? opts.mapTypeControl : true,\n\t\t\tmapTypeControlOptions: Type.isPlainObject(opts.mapTypeControlOptions) ? opts.mapTypeControlOptions : null,\n\t\t\tscaleControl: Type.isBoolean(opts.scaleControl) ? opts.scaleControl : true,\n\t\t\tstreetViewControl: Type.isBoolean(opts.streetViewControl) ? opts.streetViewControl : true,\n\t\t\trotateControl: Type.isBoolean(opts.rotateControl) ? opts.rotateControl : true,\n\t\t\tfullscreenControl: Type.isBoolean(opts.fullscreenControl) ? opts.fullscreenControl : true,\n\t\t\tstyles: this.getStylesFromOptions(opts),\n\t\t});\n\n\t\tif (this.mapOptions.markers)\n\t\t{\n\t\t\tthis.mapOptions.markers.forEach(function (markerItem)\n\t\t\t{\n\t\t\t\tmarkerItem.editable = BX.Landing.getMode() === \"edit\";\n\t\t\t\tmarkerItem.draggable = BX.Landing.getMode() === \"edit\";\n\t\t\t\tthis.addMarker(markerItem);\n\t\t\t}, this);\n\t\t}\n\n\t\tthis.mapInstance.addListener(\"bounds_changed\", this.onChange);\n\t\tthis.mapInstance.addListener(\"center_changed\", this.onChange);\n\t\tthis.mapInstance.addListener(\"zoom_changed\", this.onChange);\n\t\tthis.mapInstance.addListener(\"click\", this.onMapClickHandler);\n\n\t\tsuper.init();\n\t}\n\n\treinit(options: {})\n\t{\n\t\tthis.preventChangeEvent = true;\n\t\tthis.mapInstance.setOptions({\n\t\t\tstyles: this.getStylesFromOptions(options)\n\t\t});\n\t\tsuper.reinit();\n\t}\n\n\tgetStylesFromOptions(options)\n\t{\n\t\treturn (options.theme && options.theme in this.themes ? this.themes[options.theme] : [])\n\t\t\t.concat(roads[options.roads] || [], landmarks[options.landmarks] || [], labels[options.labels] || []);\n\t}\n\n\t/**\n\t * Check is provider API was loaded\n\t * @return {boolean}\n\t */\n\tisApiLoaded()\n\t{\n\t\treturn (typeof google !== \"undefined\");\n\t}\n\n\t/**\n\t * Set api load handle function\n\t * @abstract\n\t */\n\thandleApiLoad()\n\t{\n\t\twindow.onGoogleMapApiLoaded = () =>\n\t\t{\n\t\t\tthis.onApiLoadedHandler(this.getCode());\n\t\t};\n\t}\n\n\t/**\n\t * @inheritDoc\n\t * @param options\n\t */\n\taddMarker(options): void\n\t{\n\t\tlet item = {};\n\t\titem.marker = new google.maps.Marker({\n\t\t\tposition: options.latLng,\n\t\t\tmap: this.mapInstance,\n\t\t\tdraggable: options.draggable,\n\t\t});\n\n\t\titem.form = BX.Landing.getMode() === \"edit\" ? this.createBalloonEditForm(options, item) : null;\n\t\titem.content = this.createBalloonContent(options);\n\n\t\titem.infoWindow = new google.maps.InfoWindow({\n\t\t\tcontent: options.editable && BX.Landing.getMode() === \"edit\" ? item.form.layout : item.content,\n\t\t});\n\n\t\tif (options.showByDefault && BX.Landing.getMode() !== \"edit\")\n\t\t{\n\t\t\titem.infoWindow.open(this.mapInstance, item.marker);\n\t\t\tthis.activeMarker = item;\n\t\t}\n\n\t\tthis.markers.add(item);\n\n\t\t// in editor - always, in public - only if not empty\n\t\tif (\n\t\t\tBX.Landing.getMode() === \"edit\"\n\t\t\t|| (options.title || options.description)\n\t\t)\n\t\t{\n\t\t\titem.marker.addListener(\"click\", this.onMarkerClick.bind(this, item));\n\t\t}\n\t\tthis.onChange();\n\t}\n\n\tonMarkerClick(item): void\n\t{\n\t\tvoid (this.activeMarker && this.activeMarker.infoWindow.close());\n\t\titem.infoWindow.open(this.mapInstance, item.marker);\n\t\tthis.activeMarker = item;\n\t}\n\n\tonEditFormRemoveClick(event): void\n\t{\n\t\tif (event)\n\t\t{\n\t\t\tevent.infoWindow.close();\n\t\t\tthis.removeMarker(event);\n\t\t}\n\n\t\tthis.markers.remove(event);\n\t\tthis.onChange();\n\t}\n\n\tonEditFormApplyClick(event): void\n\t{\n\t\tevent.infoWindow.close();\n\t\tthis.onChange();\n\t}\n\n\tremoveMarker(event): void\n\t{\n\t\tevent.marker.setMap(null);\n\t\tthis.markers.remove(event);\n\t}\n\n\tclearMarkers(): void\n\t{\n\t\tthis.markers.forEach(marker => {\n\t\t\tmarker.marker.setMap(null);\n\t\t});\n\t\tthis.markers.clear();\n\t}\n\n\tsetZoom(zoom): void\n\t{\n\t\tthis.preventChangeEvent = true;\n\t\tthis.mapInstance.setZoom(zoom);\n\t}\n\n\tsetCenter(center): void\n\t{\n\t\tthis.preventChangeEvent = true;\n\t\tthis.mapInstance.setCenter(center);\n\t}\n\n\tgetMarkersValue(): {}\n\t{\n\t\treturn this.markers.map(function (item)\n\t\t{\n\t\t\treturn {\n\t\t\t\ttitle: item.form ? item.form.fields[0].getValue() : \"\",\n\t\t\t\tdescription: item.form ? item.form.fields[1].getValue() : \"\",\n\t\t\t\tshowByDefault: item.form ? !!item.form.fields[2].getValue()[0] : \"\",\n\t\t\t\tlatLng: item.marker.position.toJSON(),\n\t\t\t};\n\t\t});\n\t}\n\n\tgetValue(): {}\n\t{\n\t\treturn {\n\t\t\tcenter: this.mapInstance.getCenter() ? this.mapInstance.getCenter().toJSON() : {},\n\t\t\tzoom: this.mapInstance.getZoom(),\n\t\t\tmarkers: this.getMarkersValue(),\n\t\t};\n\t}\n}","import {Text, Dom, Runtime} from 'main.core';\nimport {BaseProvider} from './base_provider';\n\nexport class YandexMap extends BaseProvider\n{\n\tconstructor(options: {})\n\t{\n\t\tsuper(options);\n\t\tthis.setEventNamespace('BX.Landing.Provider.Map.YandexMap');\n\t\tthis.code = 'yandex';\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tinit()\n\t{\n\t\tthis.preventChangeEvent = true;\n\n\t\tconst controls = ['zoomControl', 'fullscreenControl', 'typeSelector', 'routeButtonControl'];\n\t\tif (this.options.fullscreenControl === false)\n\t\t{\n\t\t\tcontrols.splice(controls.indexOf('fullscreenControl'), 1);\n\t\t}\n\t\tif (this.options.mapTypeControl === false)\n\t\t{\n\t\t\tcontrols.splice(controls.indexOf('typeSelector'), 1);\n\t\t\tcontrols.splice(controls.indexOf('routeButtonControl'), 1);\n\t\t}\n\n\t\tthis.mapInstance = new ymaps.Map(this.mapContainer, {\n\t\t\tcenter: this.convertPointIn(this.mapOptions.center),\n\t\t\tzoom: this.mapOptions.zoom,\n\t\t\tbehaviors: this.options.zoomControl === false ? ['drag'] : ['default'],\n\t\t\tcontrols: controls,\n\t\t});\n\n\t\tthis.mapInstance.events.add('actionend', this.onChange);\n\t\tthis.mapInstance.events.add('click', event =>\n\t\t{\n\t\t\tthis.cache.delete('value');\n\t\t\tthis.onMapClickHandler(event);\n\t\t\tif (BX.Landing.getMode() === \"edit\")\n\t\t\t{\n\t\t\t\tthis.markers[this.markers.length - 1].marker.balloon.open();\n\t\t\t}\n\t\t});\n\n\t\tif (this.mapOptions.markers)\n\t\t{\n\t\t\tthis.mapOptions.markers.forEach(markerItem => {\n\t\t\t\tmarkerItem.editable = BX.Landing.getMode() === \"edit\";\n\t\t\t\tmarkerItem.draggable = BX.Landing.getMode() === \"edit\";\n\t\t\t\tthis.addMarker(markerItem);\n\t\t\t});\n\t\t}\n\n\t\tsuper.init();\n\t}\n\n\treinit(options: {})\n\t{\n\t\t// Yandex has't changes yet. If some settings will be added later - need implement reinit\n\t\tthis.preventChangeEvent = true;\n\t\tsuper.reinit();\n\t}\n\n\t/**\n\t * Check is provider API was loaded\n\t * @return {boolean}\n\t */\n\tisApiLoaded()\n\t{\n\t\treturn (\n\t\t\ttypeof ymaps !== \"undefined\"\n\t\t\t&& typeof ymaps.Map !== \"undefined\"\n\t\t);\n\t}\n\n\t/**\n\t * Convert point from Google format to Yandex\n\t * @param point\n\t * @return {[number,number]}\n\t */\n\tconvertPointIn(point: {lat: number, lng: number}): [number, number]\n\t{\n\t\treturn [point.lat, point.lng];\n\t}\n\n\t/**\n\t * Convert point from Yandex for export\n\t * @param point\n\t * @return {{lng: number, lat: number}}\n\t */\n\tconvertPointOut(point: [number, number]): {lat: number, lng: number}\n\t{\n\t\treturn {lat: point[0], lng: point[1]};\n\t}\n\n\t/**\n\t * Extract coords from map events (f.e. click)\n\t * @param event\n\t */\n\tgetPointByEvent(event): {lat: number, lng: number}\n\t{\n\t\treturn this.convertPointOut(event.get('coords'));\n\t}\n\n\t/**\n\t * Set api load handle function\n\t * @abstract\n\t */\n\thandleApiLoad()\n\t{\n\t\twindow.onYandexMapApiLoaded = () =>\n\t\t{\n\t\t\tthis.onApiLoadedHandler(this.getCode());\n\t\t};\n\t}\n\n\t/**\n\t * @inheritDoc\n\t * @param options\n\t */\n\taddMarker(options): void\n\t{\n\t\tconst item = {};\n\t\titem.form = BX.Landing.getMode() === \"edit\" ? this.createBalloonEditForm(options, item) : null;\n\t\titem.content = this.createBalloonContent(options);\n\t\titem.ballonId = 'ballonContent_' + Text.getRandom('6');\n\n\t\tconst isNoNeedBalloon = BX.Landing.getMode() !== \"edit\" && !options.title && !options.description;\n\n\t\tconst balloonTemplate = ymaps.templateLayoutFactory.createClass(\n\t\t\t'<div id=\"' + item.ballonId + '\"></div>',\n\t\t\t{\n\t\t\t\tbuild: function ()\n\t\t\t\t{\n\t\t\t\t\tballoonTemplate.superclass.build.call(this);\n\t\t\t\t\tconst container = document.querySelector('#' + item.ballonId);\n\t\t\t\t\tconst content = (options.editable && BX.Landing.getMode() === \"edit\")\n\t\t\t\t\t\t? item.form.layout\n\t\t\t\t\t\t: item.content;\n\t\t\t\t\tDom.append(content, container);\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t\titem.marker = new ymaps.Placemark(\n\t\t\tthis.convertPointIn(options.latLng),\n\t\t\t{},\n\t\t\t{\n\t\t\t\tballoonContentLayout: isNoNeedBalloon ? null: balloonTemplate,\n\t\t\t\tballoonPanelMaxMapArea: 0,\n\t\t\t\tdraggable: options.draggable,\n\t\t\t},\n\t\t);\n\t\tthis.mapInstance.geoObjects.add(item.marker);\n\n\t\tif (options.showByDefault)\n\t\t{\n\t\t\titem.marker.balloon.open();\n\t\t}\n\n\t\tthis.markers.add(item);\n\t\tthis.onChange();\n\t}\n\n\tonMarkerClick(item): void\n\t{\n\t\t// Yandex will do everything himself\n\t}\n\n\tonEditFormRemoveClick(event): void\n\t{\n\t\tif (event)\n\t\t{\n\t\t\tevent.marker.balloon.close();\n\t\t\tthis.removeMarker(event);\n\t\t}\n\n\t\tthis.markers.remove(event);\n\t\tthis.onChange();\n\t}\n\n\tonEditFormApplyClick(event): void\n\t{\n\t\tevent.marker.balloon.close();\n\t\tthis.onChange();\n\t}\n\n\tremoveMarker(event): void\n\t{\n\t\tthis.mapInstance.geoObjects.remove(event.marker);\n\n\t}\n\n\tclearMarkers(): void\n\t{\n\t\tthis.markers.forEach(marker => {\n\t\t\tthis.mapInstance.geoObjects.remove(marker.marker);\n\t\t});\n\t\tthis.markers.clear();\n\t}\n\n\tsetZoom(zoom: number): void\n\t{\n\t\tthis.mapInstance.setZoom(zoom);\n\t}\n\n\tsetCenter(center): void\n\t{\n\t\tthis.mapInstance.setCenter(this.convertPointIn(center));\n\t}\n\n\tgetMarkersValue(): {}\n\t{\n\t\treturn this.markers.map((item) => {\n\t\t\treturn {\n\t\t\t\ttitle: item.form ? item.form.fields[0].getValue() : \"\",\n\t\t\t\tdescription: item.form ? item.form.fields[1].getValue() : \"\",\n\t\t\t\tshowByDefault: item.form ? !!item.form.fields[2].getValue()[0] : \"\",\n\t\t\t\tlatLng: this.convertPointOut(item.marker.geometry.getCoordinates()),\n\t\t\t};\n\t\t});\n\t}\n\n\tgetValue(): {}\n\t{\n\t\treturn this.cache.remember('value', () =>\n\t\t{\n\t\t\treturn {\n\t\t\t\tcenter: this.mapInstance.getCenter() ? this.convertPointOut(this.mapInstance.getCenter()) : {},\n\t\t\t\tzoom: this.mapInstance.getZoom(),\n\t\t\t\tmarkers: this.getMarkersValue(),\n\t\t\t};\n\t\t});\n\t}\n\n\tonChange()\n\t{\n\t\tthis.cache.delete('value');\n\t\tsuper.onChange();\n\t}\n}","import {Type} from 'main.core';\nimport {BaseProvider} from './base_provider';\nimport {GoogleMap} from './google_map';\nimport {YandexMap} from './yandex_map';\n\nimport 'ui.fonts.opensans';\nimport './css/style.css'\n\n\nexport class Map\n{\n\tstatic +PROVIDERS = {\n\t\tgoogle: GoogleMap,\n\t\tyandex: YandexMap,\n\t};\n\tstatic +DEFAULT_PROVIDER = 'google';\n\tstatic +DATA_ATTRIBUTE = 'mapProvider';\n\n\t/**\n\t * If API not loaded already - create schedule\n\t * @type {{}}\n\t */\n\tstatic scheduled = {};\n\n\tconstructor()\n\t{\n\t}\n\n\t/**\n\t * Create map provider for current node\n\t * @param node\n\t * @param options\n\t * @return {*}\n\t */\n\tstatic create(node: HTMLElement, options: {}): BaseProvider\n\t{\n\t\t// handler for load api\n\t\toptions.onApiLoaded = Map.onApiLoaded;\n\n\t\t// get provider code\n\t\tlet providerCode = node.dataset[Map.DATA_ATTRIBUTE];\n\t\tif (\n\t\t\t!providerCode\n\t\t\t|| Object.keys(Map.PROVIDERS).indexOf(providerCode) === -1\n\t\t)\n\t\t{\n\t\t\tproviderCode = Map.DEFAULT_PROVIDER;\n\t\t}\n\n\t\t// init or set to schedule\n\t\tconst provider = new (Map.PROVIDERS[providerCode])(options);\n\t\tif (provider.isApiLoaded())\n\t\t{\n\t\t\tprovider.init();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tif (!Type.isArray(Map.scheduled[provider.getCode()]))\n\t\t\t{\n\t\t\t\tMap.scheduled[provider.getCode()] = [];\n\t\t\t}\n\n\t\t\tMap.scheduled[provider.getCode()].push(provider);\n\t\t}\n\n\t\treturn provider;\n\t}\n\n\tstatic onApiLoaded(providerCode: string)\n\t{\n\t\tif (Type.isArray(Map.scheduled[providerCode]))\n\t\t{\n\t\t\tMap.scheduled[providerCode].forEach(provider =>\n\t\t\t{\n\t\t\t\tprovider.init();\n\t\t\t});\n\t\t}\n\t}\n}"],"names":["BaseProvider","EventEmitter","constructor","options","code","onChangeHandler","Type","isFunction","onChange","onMapClickHandler","onMapClick","onAddMarkerHandler","onAddMarker","onApiLoadedHandler","onApiLoaded","onInitHandler","onProviderInit","mapOptions","prepareMapOptions","mapContainer","markers","BaseCollection","mapInstance","cache","Cache","MemoryCache","handleApiLoad","Runtime","debounce","bind","getDefaultMapOptions","center","getDefaultCenter","zoom","latLng","title","description","isPlainObject","preparedOptions","isPoint","isArray","length","firstMarker","point","Loc","getMessage","lat","lng","isObjectLike","Object","keys","getPointByEvent","event","Error","getCode","isApiLoaded","init","emit","reinit","preventChangeEvent","addMarker","onMarkerClick","item","removeMarker","clearMarkers","getValue","setValue","value","forEach","BX","Landing","Utils","isEmpty","setCenter","isNumber","setZoom","onEditFormApplyClick","onEditFormRemoveClick","createBalloonEditForm","form","UI","Form","BalloonForm","applyButton","Button","BaseButton","text","className","onClick","removeButton","layout","classList","remove","footer","Tag","render","addField","Field","Text","textOnly","content","Checkbox","compact","items","name","showByDefault","appendChild","createBalloonContent","AUBERGINE","DARK","NIGHT","RETRO","SILVER","themes","roads","landmarks","labels","GoogleMap","setEventNamespace","opts","google","maps","Map","zoomControl","isBoolean","mapTypeControl","mapTypeControlOptions","scaleControl","streetViewControl","rotateControl","fullscreenControl","styles","getStylesFromOptions","markerItem","editable","getMode","draggable","addListener","setOptions","theme","concat","window","onGoogleMapApiLoaded","marker","Marker","position","map","infoWindow","InfoWindow","open","activeMarker","add","close","setMap","clear","getMarkersValue","fields","toJSON","getCenter","getZoom","YandexMap","controls","splice","indexOf","ymaps","convertPointIn","behaviors","events","delete","balloon","convertPointOut","get","onYandexMapApiLoaded","ballonId","getRandom","isNoNeedBalloon","balloonTemplate","templateLayoutFactory","createClass","build","superclass","call","container","document","querySelector","Dom","append","Placemark","balloonContentLayout","balloonPanelMaxMapArea","geoObjects","geometry","getCoordinates","remember","create","node","providerCode","dataset","DATA_ATTRIBUTE","PROVIDERS","DEFAULT_PROVIDER","provider","scheduled","push","yandex"],"mappings":";;;;;;;;CAIO,MAAMA,YAAN,SAA2BC,6BAA3B,CACP;;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;GACCC,WAAW,CAACC,OAAD,EACX;KACC;;CAEF;CACA;CACA;;KACE,KAAKC,IAAL,GAAY,EAAZ;KAEA,KAAKC,eAAL,GAAuBC,cAAI,CAACC,UAAL,CAAgBJ,OAAO,CAACK,QAAxB,IAAoCL,OAAO,CAACK,QAA5C,GAAwD,MAAM,EAArF;KACA,KAAKC,iBAAL,GAAyBH,cAAI,CAACC,UAAL,CAAgBJ,OAAO,CAACO,UAAxB,IAAsCP,OAAO,CAACO,UAA9C,GAA4D,MAAM,EAA3F;KACA,KAAKC,kBAAL,GAA0BL,cAAI,CAACC,UAAL,CAAgBJ,OAAO,CAACS,WAAxB,IAAuCT,OAAO,CAACS,WAA/C,GAA8D,MAAM,EAA9F;KACA,KAAKC,kBAAL,GAA0BP,cAAI,CAACC,UAAL,CAAgBJ,OAAO,CAACW,WAAxB,IAAuCX,OAAO,CAACW,WAA/C,GAA8D,MAAM,EAA9F;KACA,KAAKC,aAAL,GAAqBT,cAAI,CAACC,UAAL,CAAgBJ,OAAO,CAACa,cAAxB,IAA0Cb,OAAO,CAACa,cAAlD,GAAoE,MAAM,EAA/F;KACA,KAAKb,OAAL,GAAeA,OAAf;KACA,KAAKc,UAAL,GAAkB,KAAKC,iBAAL,CAAuBf,OAAO,CAACc,UAA/B,CAAlB;KACA,KAAKE,YAAL,GAAoBhB,OAAO,CAACgB,YAA5B;KACA,KAAKC,OAAL,GAAe,IAAIC,gDAAJ,EAAf;KACA,KAAKC,WAAL,GAAmB,IAAnB;KAEA,KAAKC,KAAL,GAAa,IAAIC,eAAK,CAACC,WAAV,EAAb;KAEA,KAAKC,aAAL;KAEA,KAAKlB,QAAL,GAAgBmB,iBAAO,CAACC,QAAR,CAAiB,KAAKpB,QAAL,CAAcqB,IAAd,CAAmB,IAAnB,CAAjB,EAA2C,GAA3C,CAAhB;;;CAMF;CACA;CACA;;;GACCC,oBAAoB,GACpB;KACC,OAAO;OACNC,MAAM,EAAE,KAAKC,gBAAL,EADF;OAENC,IAAI,EAAE,EAFA;OAGNb,OAAO,EAAE,CACR;SACCc,MAAM,EAAE,KAAKF,gBAAL,EADT;;SAGCG,KAAK,EAAE,UAHR;SAICC,WAAW,EAAE;QALN;MAHV;;;CAeF;CACA;CACA;CACA;;;GACClB,iBAAiB,CAACD,UAAD,EACjB;KACC,IAAI,CAACX,cAAI,CAAC+B,aAAL,CAAmBpB,UAAnB,CAAL,EACA;OACC,OAAO,KAAKa,oBAAL,EAAP;;;KAGD,IAAIQ,eAAe,GAAGrB,UAAtB;;KACA,IAAI,CAAC,KAAKsB,OAAL,CAAaD,eAAe,CAACP,MAA7B,CAAL,EACA;OACCO,eAAe,CAACP,MAAhB,GAAyB,KAAKC,gBAAL,EAAzB;;OAEA,IACC1B,cAAI,CAACkC,OAAL,CAAavB,UAAU,CAACG,OAAxB,KACGH,UAAU,CAACG,OAAX,CAAmBqB,MAAnB,GAA4B,CAFhC,EAIA;SACC,MAAMC,WAAW,GAAGzB,UAAU,CAACG,OAAX,CAAmB,CAAnB,CAApB;;SAEA,IACCd,cAAI,CAAC+B,aAAL,CAAmBK,WAAnB,KACG,KAAKH,OAAL,CAAaG,WAAW,CAACR,MAAzB,CAFJ,EAIA;WACCI,eAAe,CAACP,MAAhB,GAAyBW,WAAW,CAACR,MAArC;;;;;KAKH,OAAOI,eAAP;;;CAIF;CACA;CACA;;;GACCN,gBAAgB,GAChB;KACC,IAAIW,KAAJ;;KACA,QAAQC,aAAG,CAACC,UAAJ,CAAe,aAAf,CAAR;OAEC,KAAK,IAAL;SACCF,KAAK,GAAG;WACPG,GAAG,EAAE,iBADE;WAEPC,GAAG,EAAE;UAFN;SAIA;;OACD,KAAK,IAAL;SACCJ,KAAK,GAAG;WACPG,GAAG,EAAE,SADE;WAEPC,GAAG,EAAE;UAFN;SAIA;;OACD;;SAECJ,KAAK,GAAG;WACPG,GAAG,EAAE,SADE;WAEPC,GAAG,EAAE,CAAC;UAFP;SAIA;;;KAGF,OAAOJ,KAAP;;;CAIF;CACA;CACA;CACA;;;GACCJ,OAAO,CAACI,KAAD,EACP;KACC,OAAOrC,cAAI,CAAC0C,YAAL,CAAkBL,KAAlB,KAA4BM,MAAM,CAACC,IAAP,CAAYP,KAAZ,EAAmBF,MAAnB,KAA8B,CAAjE;;;CAIF;CACA;CACA;;;GACCU,eAAe,CAACC,KAAD,EACf;KACC,MAAM,IAAIC,KAAJ,CAAU,iCAAV,CAAN;;;GAGDC,OAAO,GACP;KACC,OAAO,KAAKlD,IAAZ;;;CAIF;CACA;CACA;;;GACCmD,WAAW,GACX;KACC,MAAM,IAAIF,KAAJ,CAAU,iCAAV,CAAN;;;CAIF;CACA;CACA;CACA;;;GACCG,IAAI,GACJ;KACC,KAAKzC,aAAL;KACA,KAAK0C,IAAL,CAAU,QAAV;;;CAIF;CACA;CACA;;;GACCC,MAAM,CAACvD,OAAD,EACN;;KAEC,KAAKA,OAAL,GAAeA,OAAf;KACA,KAAKsD,IAAL,CAAU,QAAV;;;CAIF;CACA;CACA;;;GACC/B,aAAa,GACb;KACC,MAAM,IAAI2B,KAAJ,CAAU,iCAAV,CAAN;;;CAIF;CACA;;;GACC7C,QAAQ,GACR;KACC,KAAKH,eAAL,CAAqB,KAAKsD,kBAA1B;KACA,KAAKA,kBAAL,GAA0B,KAA1B;;;CAIF;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;;;GACCC,SAAS,CAACzD,OAAD,EACT;KACC,MAAM,IAAIkD,KAAJ,CAAU,iCAAV,CAAN;;;CAIF;CACA;CACA;;;GACCQ,aAAa,CAACC,IAAD,EACb;KACC,MAAM,IAAIT,KAAJ,CAAU,iCAAV,CAAN;;;CAIF;CACA;CACA;CACA;;;GACCU,YAAY,CAAC5D,OAAD,EACZ;KACC,MAAM,IAAIkD,KAAJ,CAAU,iCAAV,CAAN;;;CAIF;CACA;CACA;CACA;;;GACCW,YAAY,GACZ;KACC,MAAM,IAAIX,KAAJ,CAAU,iCAAV,CAAN;;;CAIF;CACA;CACA;;;GACCY,QAAQ,GACR;KACC,MAAM,IAAIZ,KAAJ,CAAU,iCAAV,CAAN;;;CAIF;CACA;CACA;CACA;;;GACCa,QAAQ,CAACC,KAAD,EAAQR,kBAAR,EACR;KACC,KAAKA,kBAAL,GAA0BA,kBAA1B;KAEA,KAAKK,YAAL;;KAEA,IAAI1D,cAAI,CAAC+B,aAAL,CAAmB8B,KAAnB,CAAJ,EACA;OACC,IAAI7D,cAAI,CAACkC,OAAL,CAAa2B,KAAK,CAAC/C,OAAnB,CAAJ,EACA;SACC+C,KAAK,CAAC/C,OAAN,CAAcgD,OAAd,CAAsB,KAAKR,SAA3B,EAAsC,IAAtC;;;OAGD,IAAI,CAACS,EAAE,CAACC,OAAH,CAAWC,KAAX,CAAiBC,OAAjB,CAAyBL,KAAK,CAACpC,MAA/B,CAAL,EACA;SACC,KAAK0C,SAAL,CAAeN,KAAK,CAACpC,MAArB;;;OAGD,IAAIoC,KAAK,CAAClC,IAAN,IAAc3B,cAAI,CAACoE,QAAL,CAAcP,KAAK,CAAClC,IAApB,CAAlB,EACA;SACC,KAAK0C,OAAL,CAAaR,KAAK,CAAClC,IAAnB;;;;;CAMJ;CACA;;;GACC2C,oBAAoB,CAACxB,KAAD,EACpB;KACC,MAAM,IAAIC,KAAJ,CAAU,iCAAV,CAAN;;;CAIF;CACA;CACA;;;GACCwB,qBAAqB,CAACzB,KAAD,EACrB;KACC,MAAM,IAAIC,KAAJ,CAAU,iCAAV,CAAN;;;CAIF;CACA;CACA;CACA;CACA;;;GACCyB,qBAAqB,CAAC3E,OAAD,EAAUiD,KAAV,EACrB;KACC,MAAM2B,IAAI,GAAG,IAAIV,EAAE,CAACC,OAAH,CAAWU,EAAX,CAAcC,IAAd,CAAmBC,WAAvB,CAAmC;OAC/C/C,KAAK,EAAES,aAAG,CAACC,UAAJ,CAAe,8BAAf;MADK,CAAb;KAIA,MAAMsC,WAAW,GAAG,IAAId,EAAE,CAACC,OAAH,CAAWU,EAAX,CAAcI,MAAd,CAAqBC,UAAzB,CAAoC;OACvDC,IAAI,EAAE1C,aAAG,CAACC,UAAJ,CAAe,yCAAf,CADiD;OAEvD0C,SAAS,EAAE,CAAC,QAAD,EAAW,gBAAX,EAA6B,WAA7B,CAF4C;OAGvDC,OAAO,EAAE,KAAKZ,oBAAL,CAA0B/C,IAA1B,CAA+B,IAA/B,EAAqCuB,KAArC;MAHU,CAApB;KAMA,MAAMqC,YAAY,GAAG,IAAIpB,EAAE,CAACC,OAAH,CAAWU,EAAX,CAAcI,MAAd,CAAqBC,UAAzB,CAAoC;OACxDC,IAAI,EAAE1C,aAAG,CAACC,UAAJ,CAAe,0CAAf,CADkD;OAExD0C,SAAS,EAAE,CAAC,QAAD,EAAW,eAAX,EAA4B,WAA5B,CAF6C;OAGxDC,OAAO,EAAE,KAAKX,qBAAL,CAA2BhD,IAA3B,CAAgC,IAAhC,EAAsCuB,KAAtC;MAHW,CAArB;KAMA+B,WAAW,CAACO,MAAZ,CAAmBC,SAAnB,CAA6BC,MAA7B,CAAoC,mBAApC;KACAH,YAAY,CAACC,MAAb,CAAoBC,SAApB,CAA8BC,MAA9B,CAAqC,mBAArC;KAEA,MAAMC,MAAM,GAAGC,aAAG,CAACC,MAAP,cAAc;;MAAd,CAEW;MAFX,CAGY;;GAHZ,GAERZ,WAAW,CAACO,MAFJ,EAGRD,YAAY,CAACC,MAHL,CAAZ;KAOAX,IAAI,CAACiB,QAAL,CACC,IAAI3B,EAAE,CAACC,OAAH,CAAWU,EAAX,CAAciB,KAAd,CAAoBC,IAAxB,CAA6B;OAC5B/D,KAAK,EAAES,aAAG,CAACC,UAAJ,CAAe,6BAAf,CADqB;OAE5BsD,QAAQ,EAAE,IAFkB;OAG5BC,OAAO,EAAEjG,OAAO,CAACgC;MAHlB,CADD;KAQA4C,IAAI,CAACiB,QAAL,CACC,IAAI3B,EAAE,CAACC,OAAH,CAAWU,EAAX,CAAciB,KAAd,CAAoBC,IAAxB,CAA6B;OAC5B/D,KAAK,EAAES,aAAG,CAACC,UAAJ,CAAe,mCAAf,CADqB;OAE5B0C,SAAS,EAAE,kCAFiB;OAG5Ba,OAAO,EAAEjG,OAAO,CAACiC;MAHlB,CADD;KAQA2C,IAAI,CAACiB,QAAL,CACC,IAAI3B,EAAE,CAACC,OAAH,CAAWU,EAAX,CAAciB,KAAd,CAAoBI,QAAxB,CAAiC;OAChCd,SAAS,EAAE,sCADqB;OAEhCe,OAAO,EAAE,IAFuB;OAGhCC,KAAK,EAAE,CACN;SAACC,IAAI,EAAE5D,aAAG,CAACC,UAAJ,CAAe,uCAAf,CAAP;SAAgE,SAAS;QADnE,CAHyB;OAMhCsB,KAAK,EAAE,CAAChE,OAAO,CAACsG,aAAT;MANR,CADD;KAWA1B,IAAI,CAACW,MAAL,CAAYgB,WAAZ,CAAwBb,MAAxB;KAEA,OAAOd,IAAP;;;CAIF;CACA;CACA;CACA;;;GACC4B,oBAAoB,CAACxG,OAAD,EACpB;KACC,OAAO2F,aAAG,CAACC,MAAX,gBAAkB;;sDAAlB,CAEkE;2DAFlE,CAG6E;;GAH7E,GAEoD5F,OAAO,CAACgC,KAF5D,EAGyDhC,OAAO,CAACiC,WAHjE;;;CAtYF;;CCLO,MAAMwE,SAAS,GAAG,CACxB;GACC,eAAe,UADhB;GAEC,WAAW,CACV;KAAC,SAAS;IADA;CAFZ,CADwB,EAOxB;GACC,eAAe,kBADhB;GAEC,WAAW,CACV;KAAC,SAAS;IADA;CAFZ,CAPwB,EAaxB;GACC,eAAe,oBADhB;GAEC,WAAW,CACV;KAAC,SAAS;IADA;CAFZ,CAbwB,EAmBxB;GACC,eAAe,wBADhB;GAEC,eAAe,iBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAnBwB,EA0BxB;GACC,eAAe,4BADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA1BwB,EAiCxB;GACC,eAAe,yBADhB;GAEC,eAAe,iBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAjCwB,EAwCxB;GACC,eAAe,oBADhB;GAEC,eAAe,iBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAxCwB,EA+CxB;GACC,eAAe,mBADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA/CwB,EAsDxB;GACC,eAAe,KADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAtDwB,EA6DxB;GACC,eAAe,KADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA7DwB,EAoExB;GACC,eAAe,KADhB;GAEC,eAAe,oBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CApEwB,EA2ExB;GACC,eAAe,UADhB;GAEC,eAAe,eAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA3EwB,EAkFxB;GACC,eAAe,UADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAlFwB,EAyFxB;GACC,eAAe,MADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAzFwB,EAgGxB;GACC,eAAe,MADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAhGwB,EAuGxB;GACC,eAAe,MADhB;GAEC,eAAe,oBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAvGwB,EA8GxB;GACC,eAAe,cADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA9GwB,EAqHxB;GACC,eAAe,cADhB;GAEC,eAAe,iBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CArHwB,EA4HxB;GACC,eAAe,cADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA5HwB,EAmIxB;GACC,eAAe,cADhB;GAEC,eAAe,oBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAnIwB,EA0IxB;GACC,eAAe,SADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA1IwB,EAiJxB;GACC,eAAe,SADhB;GAEC,eAAe,oBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAjJwB,EAwJxB;GACC,eAAe,cADhB;GAEC,eAAe,eAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAxJwB,EA+JxB;GACC,eAAe,iBADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA/JwB,EAsKxB;GACC,eAAe,OADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAtKwB,EA6KxB;GACC,eAAe,OADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA7KwB,CAAlB;;CCAA,MAAMC,IAAI,GAAG,CACnB;GACC,eAAe,UADhB;GAEC,WAAW,CACV;KAAC,SAAS;IADA;CAFZ,CADmB,EAOnB;GACC,eAAe,aADhB;GAEC,WAAW,CACV;KAAC,cAAc;IADL;CAFZ,CAPmB,EAanB;GACC,eAAe,kBADhB;GAEC,WAAW,CACV;KAAC,SAAS;IADA;CAFZ,CAbmB,EAmBnB;GACC,eAAe,oBADhB;GAEC,WAAW,CACV;KAAC,SAAS;IADA;CAFZ,CAnBmB,EAyBnB;GACC,eAAe,gBADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAzBmB,EAgCnB;GACC,eAAe,wBADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAhCmB,EAuCnB;GACC,eAAe,4BADhB;GAEC,WAAW,CACV;KAAC,cAAc;IADL;CAFZ,CAvCmB,EA6CnB;GACC,eAAe,yBADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA7CmB,EAoDnB;GACC,eAAe,KADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CApDmB,EA2DnB;GACC,eAAe,UADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA3DmB,EAkEnB;GACC,eAAe,UADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAlEmB,EAyEnB;GACC,eAAe,UADhB;GAEC,eAAe,oBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAzEmB,EAgFnB;GACC,eAAe,MADhB;GAEC,eAAe,eAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAhFmB,EAuFnB;GACC,eAAe,MADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAvFmB,EA8FnB;GACC,eAAe,eADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA9FmB,EAqGnB;GACC,eAAe,cADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CArGmB,EA4GnB;GACC,eAAe,gCADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA5GmB,EAmHnB;GACC,eAAe,YADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAnHmB,EA0HnB;GACC,eAAe,SADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA1HmB,EAiInB;GACC,eAAe,OADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAjImB,EAwInB;GACC,eAAe,OADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAxImB,CAAb;;CCAA,MAAMC,KAAK,GAAG,CACpB;GACC,eAAe,UADhB;GAEC,WAAW,CACV;KAAC,SAAS;IADA;CAFZ,CADoB,EAOpB;GACC,eAAe,kBADhB;GAEC,WAAW,CACV;KAAC,SAAS;IADA;CAFZ,CAPoB,EAapB;GACC,eAAe,oBADhB;GAEC,WAAW,CACV;KAAC,SAAS;IADA;CAFZ,CAboB,EAmBpB;GACC,eAAe,yBADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAnBoB,EA0BpB;GACC,eAAe,KADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA1BoB,EAiCpB;GACC,eAAe,UADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAjCoB,EAwCpB;GACC,eAAe,UADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAxCoB,EA+CpB;GACC,eAAe,MADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA/CoB,EAsDpB;GACC,eAAe,MADhB;GAEC,eAAe,iBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAtDoB,EA6DpB;GACC,eAAe,MADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA7DoB,EAoEpB;GACC,eAAe,cADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CApEoB,EA2EpB;GACC,eAAe,cADhB;GAEC,eAAe,iBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA3EoB,EAkFpB;GACC,eAAe,cADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAlFoB,EAyFpB;GACC,eAAe,SADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAzFoB,EAgGpB;GACC,eAAe,iBADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAhGoB,EAuGpB;GACC,eAAe,OADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAvGoB,EA8GpB;GACC,eAAe,OADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA9GoB,EAqHpB;GACC,eAAe,OADhB;GAEC,eAAe,oBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CArHoB,CAAd;;CCAA,MAAMC,KAAK,GAAG,CACpB;GACC,eAAe,UADhB;GAEC,WAAW,CACV;KAAC,SAAS;IADA;CAFZ,CADoB,EAOpB;GACC,eAAe,kBADhB;GAEC,WAAW,CACV;KAAC,SAAS;IADA;CAFZ,CAPoB,EAapB;GACC,eAAe,oBADhB;GAEC,WAAW,CACV;KAAC,SAAS;IADA;CAFZ,CAboB,EAmBpB;GACC,eAAe,gBADhB;GAEC,eAAe,iBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAnBoB,EA0BpB;GACC,eAAe,4BADhB;GAEC,eAAe,iBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA1BoB,EAiCpB;GACC,eAAe,4BADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAjCoB,EAwCpB;GACC,eAAe,mBADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAxCoB,EA+CpB;GACC,eAAe,KADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA/CoB,EAsDpB;GACC,eAAe,KADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAtDoB,EA6DpB;GACC,eAAe,UADhB;GAEC,eAAe,eAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA7DoB,EAoEpB;GACC,eAAe,UADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CApEoB,EA2EpB;GACC,eAAe,MADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA3EoB,EAkFpB;GACC,eAAe,eADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAlFoB,EAyFpB;GACC,eAAe,cADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAzFoB,EAgGpB;GACC,eAAe,cADhB;GAEC,eAAe,iBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAhGoB,EAuGpB;GACC,eAAe,gCADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAvGoB,EA8GpB;GACC,eAAe,gCADhB;GAEC,eAAe,iBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA9GoB,EAqHpB;GACC,eAAe,YADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CArHoB,EA4HpB;GACC,eAAe,cADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA5HoB,EAmIpB;GACC,eAAe,cADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAnIoB,EA0IpB;GACC,eAAe,cADhB;GAEC,eAAe,oBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA1IoB,EAiJpB;GACC,eAAe,iBADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAjJoB,EAwJpB;GACC,eAAe,OADhB;GAEC,eAAe,eAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAxJoB,EA+JpB;GACC,eAAe,OADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA/JoB,CAAd;;CCAA,MAAMC,MAAM,GAAG,CACrB;GACC,eAAe,UADhB;GAEC,WAAW,CACV;KAAC,SAAS;IADA;CAFZ,CADqB,EAOrB;GACC,eAAe,aADhB;GAEC,WAAW,CACV;KAAC,cAAc;IADL;CAFZ,CAPqB,EAarB;GACC,eAAe,kBADhB;GAEC,WAAW,CACV;KAAC,SAAS;IADA;CAFZ,CAbqB,EAmBrB;GACC,eAAe,oBADhB;GAEC,WAAW,CACV;KAAC,SAAS;IADA;CAFZ,CAnBqB,EAyBrB;GACC,eAAe,4BADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAzBqB,EAgCrB;GACC,eAAe,KADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAhCqB,EAuCrB;GACC,eAAe,KADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAvCqB,EA8CrB;GACC,eAAe,UADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA9CqB,EAqDrB;GACC,eAAe,UADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CArDqB,EA4DrB;GACC,eAAe,MADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA5DqB,EAmErB;GACC,eAAe,eADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAnEqB,EA0ErB;GACC,eAAe,cADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA1EqB,EAiFrB;GACC,eAAe,cADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAjFqB,EAwFrB;GACC,eAAe,YADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAxFqB,EA+FrB;GACC,eAAe,cADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KACC,SAAS;IAFA;CAHZ,CA/FqB,EAwGrB;GACC,eAAe,iBADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAxGqB,EA+GrB;GACC,eAAe,OADhB;GAEC,eAAe,UAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CA/GqB,EAsHrB;GACC,eAAe,OADhB;GAEC,eAAe,kBAFhB;GAGC,WAAW,CACV;KAAC,SAAS;IADA;CAHZ,CAtHqB,CAAf;;CCMA,MAAMC,MAAM,GAAG;GACrBL,SAAS,EAAEA,SADU;GAErBC,IAAI,EAAEA,IAFe;GAGrBC,KAAK,EAAEA,KAHc;GAIrBC,KAAK,EAAEA,KAJc;GAKrBC,MAAM,EAAEA;CALa,CAAf;;CCNA,MAAME,KAAK,GAAG;GACpB,IAAI,EADgB;GAEpB,OAAO,CACN;KACC,eAAe,MADhB;KAEC,WAAW,CACV;OAAC,cAAc;MADL;IAHN;CAFa,CAAd;AAYP,CAAO,MAAMC,SAAS,GAAG;GACxB,IAAI,EADoB;GAExB,OAAO,CACN;KACC,eAAe,gBADhB;KAEC,eAAe,UAFhB;KAGC,WAAW,CAAC;OAAC,cAAc;MAAhB;IAJN,EAMN;KACC,eAAe,KADhB;KAEC,WAAW,CAAC;OAAC,cAAc;MAAhB;IARN,EASN;KACC,eAAe,MADhB;KAEC,eAAe,aAFhB;KAGC,WAAW,CAAC;OAAC,cAAc;MAAhB;IAZN,EAcN;KACC,eAAe,SADhB;KAEC,WAAW,CAAC;OAAC,cAAc;MAAhB;IAhBN;CAFiB,CAAlB;AAuBP,CAAO,MAAMC,MAAM,GAAG;GACrB,IAAI,EADiB;GAErB,OAAO,CACN;KACC,eAAe,QADhB;KAEC,WAAW,CAAC;OAAC,cAAc;MAAhB;IAHN,EAKN;KACC,eAAe,4BADhB;KAEC,WAAW,CAAC;OAAC,cAAc;MAAhB;IAPN,EASN;KACC,eAAe,6BADhB;KAEC,WAAW,CAAC;OAAC,cAAc;MAAhB;IAXN;CAFc,CAAf;;CC9BA,MAAMC,SAAN,SAAwBrH,YAAxB,CACP;GACCE,WAAW,CAACC,OAAD,EACX;KACC,MAAMA,OAAN;KACA,KAAKmH,iBAAL,CAAuB,mCAAvB;KACA,KAAKlH,IAAL,GAAY,QAAZ;KACA,KAAK6G,MAAL,GAAcA,MAAd;;;CAIF;CACA;CACA;;;GACC9D,eAAe,CAACC,KAAD,EACf;KACC,MAAMT,KAAK,GAAGS,KAAK,CAAClB,MAApB;KACA,OAAO,KAAKK,OAAL,CAAaI,KAAb,IAAsBA,KAAtB,GAA8B,EAArC;;;CAIF;CACA;;;GACCa,IAAI,GACJ;KACC,KAAKG,kBAAL,GAA0B,IAA1B;KAEA,IAAI4D,IAAI,GAAG,KAAKpH,OAAhB;KAEA,KAAKmB,WAAL,GAAmB,IAAIkG,MAAM,CAACC,IAAP,CAAYC,GAAhB,CAAoB,KAAKvG,YAAzB,EAAuC;OACzDc,IAAI,EAAE,KAAKhB,UAAL,CAAgBgB,IADmC;OAEzDF,MAAM,EAAE,KAAKd,UAAL,CAAgBc,MAFiC;OAGzD4F,WAAW,EAAErH,cAAI,CAACsH,SAAL,CAAeL,IAAI,CAACI,WAApB,IAAmCJ,IAAI,CAACI,WAAxC,GAAsD,IAHV;OAIzDE,cAAc,EAAEvH,cAAI,CAACsH,SAAL,CAAeL,IAAI,CAACM,cAApB,IAAsCN,IAAI,CAACM,cAA3C,GAA4D,IAJnB;OAKzDC,qBAAqB,EAAExH,cAAI,CAAC+B,aAAL,CAAmBkF,IAAI,CAACO,qBAAxB,IAAiDP,IAAI,CAACO,qBAAtD,GAA8E,IAL5C;OAMzDC,YAAY,EAAEzH,cAAI,CAACsH,SAAL,CAAeL,IAAI,CAACQ,YAApB,IAAoCR,IAAI,CAACQ,YAAzC,GAAwD,IANb;OAOzDC,iBAAiB,EAAE1H,cAAI,CAACsH,SAAL,CAAeL,IAAI,CAACS,iBAApB,IAAyCT,IAAI,CAACS,iBAA9C,GAAkE,IAP5B;OAQzDC,aAAa,EAAE3H,cAAI,CAACsH,SAAL,CAAeL,IAAI,CAACU,aAApB,IAAqCV,IAAI,CAACU,aAA1C,GAA0D,IARhB;OASzDC,iBAAiB,EAAE5H,cAAI,CAACsH,SAAL,CAAeL,IAAI,CAACW,iBAApB,IAAyCX,IAAI,CAACW,iBAA9C,GAAkE,IAT5B;OAUzDC,MAAM,EAAE,KAAKC,oBAAL,CAA0Bb,IAA1B;MAVU,CAAnB;;KAaA,IAAI,KAAKtG,UAAL,CAAgBG,OAApB,EACA;OACC,KAAKH,UAAL,CAAgBG,OAAhB,CAAwBgD,OAAxB,CAAgC,UAAUiE,UAAV,EAChC;SACCA,UAAU,CAACC,QAAX,GAAsBjE,EAAE,CAACC,OAAH,CAAWiE,OAAX,OAAyB,MAA/C;SACAF,UAAU,CAACG,SAAX,GAAuBnE,EAAE,CAACC,OAAH,CAAWiE,OAAX,OAAyB,MAAhD;SACA,KAAK3E,SAAL,CAAeyE,UAAf;QAJD,EAKG,IALH;;;KAQD,KAAK/G,WAAL,CAAiBmH,WAAjB,CAA6B,gBAA7B,EAA+C,KAAKjI,QAApD;KACA,KAAKc,WAAL,CAAiBmH,WAAjB,CAA6B,gBAA7B,EAA+C,KAAKjI,QAApD;KACA,KAAKc,WAAL,CAAiBmH,WAAjB,CAA6B,cAA7B,EAA6C,KAAKjI,QAAlD;KACA,KAAKc,WAAL,CAAiBmH,WAAjB,CAA6B,OAA7B,EAAsC,KAAKhI,iBAA3C;KAEA,MAAM+C,IAAN;;;GAGDE,MAAM,CAACvD,OAAD,EACN;KACC,KAAKwD,kBAAL,GAA0B,IAA1B;KACA,KAAKrC,WAAL,CAAiBoH,UAAjB,CAA4B;OAC3BP,MAAM,EAAE,KAAKC,oBAAL,CAA0BjI,OAA1B;MADT;KAGA,MAAMuD,MAAN;;;GAGD0E,oBAAoB,CAACjI,OAAD,EACpB;KACC,OAAO,CAACA,OAAO,CAACwI,KAAR,IAAiBxI,OAAO,CAACwI,KAAR,IAAiB,KAAK1B,MAAvC,GAAgD,KAAKA,MAAL,CAAY9G,OAAO,CAACwI,KAApB,CAAhD,GAA6E,EAA9E,EACLC,MADK,CACE1B,KAAK,CAAC/G,OAAO,CAAC+G,KAAT,CAAL,IAAwB,EAD1B,EAC8BC,SAAS,CAAChH,OAAO,CAACgH,SAAT,CAAT,IAAgC,EAD9D,EACkEC,MAAM,CAACjH,OAAO,CAACiH,MAAT,CAAN,IAA0B,EAD5F,CAAP;;;CAKF;CACA;CACA;;;GACC7D,WAAW,GACX;KACC,OAAQ,OAAOiE,MAAP,KAAkB,WAA1B;;;CAIF;CACA;CACA;;;GACC9F,aAAa,GACb;KACCmH,MAAM,CAACC,oBAAP,GAA8B,MAC9B;OACC,KAAKjI,kBAAL,CAAwB,KAAKyC,OAAL,EAAxB;MAFD;;;CAOF;CACA;CACA;;;GACCM,SAAS,CAACzD,OAAD,EACT;KACC,IAAI2D,IAAI,GAAG,EAAX;KACAA,IAAI,CAACiF,MAAL,GAAc,IAAIvB,MAAM,CAACC,IAAP,CAAYuB,MAAhB,CAAuB;OACpCC,QAAQ,EAAE9I,OAAO,CAAC+B,MADkB;OAEpCgH,GAAG,EAAE,KAAK5H,WAF0B;OAGpCkH,SAAS,EAAErI,OAAO,CAACqI;MAHN,CAAd;KAMA1E,IAAI,CAACiB,IAAL,GAAYV,EAAE,CAACC,OAAH,CAAWiE,OAAX,OAAyB,MAAzB,GAAkC,KAAKzD,qBAAL,CAA2B3E,OAA3B,EAAoC2D,IAApC,CAAlC,GAA8E,IAA1F;KACAA,IAAI,CAACsC,OAAL,GAAe,KAAKO,oBAAL,CAA0BxG,OAA1B,CAAf;KAEA2D,IAAI,CAACqF,UAAL,GAAkB,IAAI3B,MAAM,CAACC,IAAP,CAAY2B,UAAhB,CAA2B;OAC5ChD,OAAO,EAAEjG,OAAO,CAACmI,QAAR,IAAoBjE,EAAE,CAACC,OAAH,CAAWiE,OAAX,OAAyB,MAA7C,GAAsDzE,IAAI,CAACiB,IAAL,CAAUW,MAAhE,GAAyE5B,IAAI,CAACsC;MADtE,CAAlB;;KAIA,IAAIjG,OAAO,CAACsG,aAAR,IAAyBpC,EAAE,CAACC,OAAH,CAAWiE,OAAX,OAAyB,MAAtD,EACA;OACCzE,IAAI,CAACqF,UAAL,CAAgBE,IAAhB,CAAqB,KAAK/H,WAA1B,EAAuCwC,IAAI,CAACiF,MAA5C;OACA,KAAKO,YAAL,GAAoBxF,IAApB;;;KAGD,KAAK1C,OAAL,CAAamI,GAAb,CAAiBzF,IAAjB,EArBD;;KAwBC,IACCO,EAAE,CAACC,OAAH,CAAWiE,OAAX,OAAyB,MAAzB,IACIpI,OAAO,CAACgC,KAAR,IAAiBhC,OAAO,CAACiC,WAF9B,EAIA;OACC0B,IAAI,CAACiF,MAAL,CAAYN,WAAZ,CAAwB,OAAxB,EAAiC,KAAK5E,aAAL,CAAmBhC,IAAnB,CAAwB,IAAxB,EAA8BiC,IAA9B,CAAjC;;;KAED,KAAKtD,QAAL;;;GAGDqD,aAAa,CAACC,IAAD,EACb;KACC,MAAM,KAAKwF,YAAL,IAAqB,KAAKA,YAAL,CAAkBH,UAAlB,CAA6BK,KAA7B,EAA3B;KACA1F,IAAI,CAACqF,UAAL,CAAgBE,IAAhB,CAAqB,KAAK/H,WAA1B,EAAuCwC,IAAI,CAACiF,MAA5C;KACA,KAAKO,YAAL,GAAoBxF,IAApB;;;GAGDe,qBAAqB,CAACzB,KAAD,EACrB;KACC,IAAIA,KAAJ,EACA;OACCA,KAAK,CAAC+F,UAAN,CAAiBK,KAAjB;OACA,KAAKzF,YAAL,CAAkBX,KAAlB;;;KAGD,KAAKhC,OAAL,CAAawE,MAAb,CAAoBxC,KAApB;KACA,KAAK5C,QAAL;;;GAGDoE,oBAAoB,CAACxB,KAAD,EACpB;KACCA,KAAK,CAAC+F,UAAN,CAAiBK,KAAjB;KACA,KAAKhJ,QAAL;;;GAGDuD,YAAY,CAACX,KAAD,EACZ;KACCA,KAAK,CAAC2F,MAAN,CAAaU,MAAb,CAAoB,IAApB;KACA,KAAKrI,OAAL,CAAawE,MAAb,CAAoBxC,KAApB;;;GAGDY,YAAY,GACZ;KACC,KAAK5C,OAAL,CAAagD,OAAb,CAAqB2E,MAAM,IAAI;OAC9BA,MAAM,CAACA,MAAP,CAAcU,MAAd,CAAqB,IAArB;MADD;KAGA,KAAKrI,OAAL,CAAasI,KAAb;;;GAGD/E,OAAO,CAAC1C,IAAD,EACP;KACC,KAAK0B,kBAAL,GAA0B,IAA1B;KACA,KAAKrC,WAAL,CAAiBqD,OAAjB,CAAyB1C,IAAzB;;;GAGDwC,SAAS,CAAC1C,MAAD,EACT;KACC,KAAK4B,kBAAL,GAA0B,IAA1B;KACA,KAAKrC,WAAL,CAAiBmD,SAAjB,CAA2B1C,MAA3B;;;GAGD4H,eAAe,GACf;KACC,OAAO,KAAKvI,OAAL,CAAa8H,GAAb,CAAiB,UAAUpF,IAAV,EACxB;OACC,OAAO;SACN3B,KAAK,EAAE2B,IAAI,CAACiB,IAAL,GAAYjB,IAAI,CAACiB,IAAL,CAAU6E,MAAV,CAAiB,CAAjB,EAAoB3F,QAApB,EAAZ,GAA6C,EAD9C;SAEN7B,WAAW,EAAE0B,IAAI,CAACiB,IAAL,GAAYjB,IAAI,CAACiB,IAAL,CAAU6E,MAAV,CAAiB,CAAjB,EAAoB3F,QAApB,EAAZ,GAA6C,EAFpD;SAGNwC,aAAa,EAAE3C,IAAI,CAACiB,IAAL,GAAY,CAAC,CAACjB,IAAI,CAACiB,IAAL,CAAU6E,MAAV,CAAiB,CAAjB,EAAoB3F,QAApB,GAA+B,CAA/B,CAAd,GAAkD,EAH3D;SAIN/B,MAAM,EAAE4B,IAAI,CAACiF,MAAL,CAAYE,QAAZ,CAAqBY,MAArB;QAJT;MAFM,CAAP;;;GAWD5F,QAAQ,GACR;KACC,OAAO;OACNlC,MAAM,EAAE,KAAKT,WAAL,CAAiBwI,SAAjB,KAA+B,KAAKxI,WAAL,CAAiBwI,SAAjB,GAA6BD,MAA7B,EAA/B,GAAuE,EADzE;OAEN5H,IAAI,EAAE,KAAKX,WAAL,CAAiByI,OAAjB,EAFA;OAGN3I,OAAO,EAAE,KAAKuI,eAAL;MAHV;;;CAxMF;;CCHO,MAAMK,SAAN,SAAwBhK,YAAxB,CACP;GACCE,WAAW,CAACC,OAAD,EACX;KACC,MAAMA,OAAN;KACA,KAAKmH,iBAAL,CAAuB,mCAAvB;KACA,KAAKlH,IAAL,GAAY,QAAZ;;;CAIF;CACA;;;GACCoD,IAAI,GACJ;KACC,KAAKG,kBAAL,GAA0B,IAA1B;KAEA,MAAMsG,QAAQ,GAAG,CAAC,aAAD,EAAgB,mBAAhB,EAAqC,cAArC,EAAqD,oBAArD,CAAjB;;KACA,IAAI,KAAK9J,OAAL,CAAa+H,iBAAb,KAAmC,KAAvC,EACA;OACC+B,QAAQ,CAACC,MAAT,CAAgBD,QAAQ,CAACE,OAAT,CAAiB,mBAAjB,CAAhB,EAAuD,CAAvD;;;KAED,IAAI,KAAKhK,OAAL,CAAa0H,cAAb,KAAgC,KAApC,EACA;OACCoC,QAAQ,CAACC,MAAT,CAAgBD,QAAQ,CAACE,OAAT,CAAiB,cAAjB,CAAhB,EAAkD,CAAlD;OACAF,QAAQ,CAACC,MAAT,CAAgBD,QAAQ,CAACE,OAAT,CAAiB,oBAAjB,CAAhB,EAAwD,CAAxD;;;KAGD,KAAK7I,WAAL,GAAmB,IAAI8I,KAAK,CAAC1C,GAAV,CAAc,KAAKvG,YAAnB,EAAiC;OACnDY,MAAM,EAAE,KAAKsI,cAAL,CAAoB,KAAKpJ,UAAL,CAAgBc,MAApC,CAD2C;OAEnDE,IAAI,EAAE,KAAKhB,UAAL,CAAgBgB,IAF6B;OAGnDqI,SAAS,EAAE,KAAKnK,OAAL,CAAawH,WAAb,KAA6B,KAA7B,GAAqC,CAAC,MAAD,CAArC,GAAgD,CAAC,SAAD,CAHR;OAInDsC,QAAQ,EAAEA;MAJQ,CAAnB;KAOA,KAAK3I,WAAL,CAAiBiJ,MAAjB,CAAwBhB,GAAxB,CAA4B,WAA5B,EAAyC,KAAK/I,QAA9C;KACA,KAAKc,WAAL,CAAiBiJ,MAAjB,CAAwBhB,GAAxB,CAA4B,OAA5B,EAAqCnG,KAAK,IAC1C;OACC,KAAK7B,KAAL,CAAWiJ,MAAX,CAAkB,OAAlB;OACA,KAAK/J,iBAAL,CAAuB2C,KAAvB;;OACA,IAAIiB,EAAE,CAACC,OAAH,CAAWiE,OAAX,OAAyB,MAA7B,EACA;SACC,KAAKnH,OAAL,CAAa,KAAKA,OAAL,CAAaqB,MAAb,GAAsB,CAAnC,EAAsCsG,MAAtC,CAA6C0B,OAA7C,CAAqDpB,IAArD;;MANF;;KAUA,IAAI,KAAKpI,UAAL,CAAgBG,OAApB,EACA;OACC,KAAKH,UAAL,CAAgBG,OAAhB,CAAwBgD,OAAxB,CAAgCiE,UAAU,IAAI;SAC7CA,UAAU,CAACC,QAAX,GAAsBjE,EAAE,CAACC,OAAH,CAAWiE,OAAX,OAAyB,MAA/C;SACAF,UAAU,CAACG,SAAX,GAAuBnE,EAAE,CAACC,OAAH,CAAWiE,OAAX,OAAyB,MAAhD;SACA,KAAK3E,SAAL,CAAeyE,UAAf;QAHD;;;KAOD,MAAM7E,IAAN;;;GAGDE,MAAM,CAACvD,OAAD,EACN;;KAEC,KAAKwD,kBAAL,GAA0B,IAA1B;KACA,MAAMD,MAAN;;;CAIF;CACA;CACA;;;GACCH,WAAW,GACX;KACC,OACC,OAAO6G,KAAP,KAAiB,WAAjB,IACG,OAAOA,KAAK,CAAC1C,GAAb,KAAqB,WAFzB;;;CAOF;CACA;CACA;CACA;;;GACC2C,cAAc,CAAC1H,KAAD,EACd;KACC,OAAO,CAACA,KAAK,CAACG,GAAP,EAAYH,KAAK,CAACI,GAAlB,CAAP;;;CAIF;CACA;CACA;CACA;;;GACC2H,eAAe,CAAC/H,KAAD,EACf;KACC,OAAO;OAACG,GAAG,EAAEH,KAAK,CAAC,CAAD,CAAX;OAAgBI,GAAG,EAAEJ,KAAK,CAAC,CAAD;MAAjC;;;CAIF;CACA;CACA;;;GACCQ,eAAe,CAACC,KAAD,EACf;KACC,OAAO,KAAKsH,eAAL,CAAqBtH,KAAK,CAACuH,GAAN,CAAU,QAAV,CAArB,CAAP;;;CAIF;CACA;CACA;;;GACCjJ,aAAa,GACb;KACCmH,MAAM,CAAC+B,oBAAP,GAA8B,MAC9B;OACC,KAAK/J,kBAAL,CAAwB,KAAKyC,OAAL,EAAxB;MAFD;;;CAOF;CACA;CACA;;;GACCM,SAAS,CAACzD,OAAD,EACT;KACC,MAAM2D,IAAI,GAAG,EAAb;KACAA,IAAI,CAACiB,IAAL,GAAYV,EAAE,CAACC,OAAH,CAAWiE,OAAX,OAAyB,MAAzB,GAAkC,KAAKzD,qBAAL,CAA2B3E,OAA3B,EAAoC2D,IAApC,CAAlC,GAA8E,IAA1F;KACAA,IAAI,CAACsC,OAAL,GAAe,KAAKO,oBAAL,CAA0BxG,OAA1B,CAAf;KACA2D,IAAI,CAAC+G,QAAL,GAAgB,mBAAmB3E,cAAI,CAAC4E,SAAL,CAAe,GAAf,CAAnC;KAEA,MAAMC,eAAe,GAAG1G,EAAE,CAACC,OAAH,CAAWiE,OAAX,OAAyB,MAAzB,IAAmC,CAACpI,OAAO,CAACgC,KAA5C,IAAqD,CAAChC,OAAO,CAACiC,WAAtF;KAEA,MAAM4I,eAAe,GAAGZ,KAAK,CAACa,qBAAN,CAA4BC,WAA5B,CACvB,cAAcpH,IAAI,CAAC+G,QAAnB,GAA8B,UADP,EAEvB;OACCM,KAAK,EAAE,YACP;SACCH,eAAe,CAACI,UAAhB,CAA2BD,KAA3B,CAAiCE,IAAjC,CAAsC,IAAtC;SACA,MAAMC,SAAS,GAAGC,QAAQ,CAACC,aAAT,CAAuB,MAAM1H,IAAI,CAAC+G,QAAlC,CAAlB;SACA,MAAMzE,OAAO,GAAIjG,OAAO,CAACmI,QAAR,IAAoBjE,EAAE,CAACC,OAAH,CAAWiE,OAAX,OAAyB,MAA9C,GACbzE,IAAI,CAACiB,IAAL,CAAUW,MADG,GAEb5B,IAAI,CAACsC,OAFR;SAGAqF,aAAG,CAACC,MAAJ,CAAWtF,OAAX,EAAoBkF,SAApB;;MAVqB,CAAxB;KAcAxH,IAAI,CAACiF,MAAL,GAAc,IAAIqB,KAAK,CAACuB,SAAV,CACb,KAAKtB,cAAL,CAAoBlK,OAAO,CAAC+B,MAA5B,CADa,EAEb,EAFa,EAGb;OACC0J,oBAAoB,EAAEb,eAAe,GAAG,IAAH,GAASC,eAD/C;OAECa,sBAAsB,EAAE,CAFzB;OAGCrD,SAAS,EAAErI,OAAO,CAACqI;MANP,CAAd;KASA,KAAKlH,WAAL,CAAiBwK,UAAjB,CAA4BvC,GAA5B,CAAgCzF,IAAI,CAACiF,MAArC;;KAEA,IAAI5I,OAAO,CAACsG,aAAZ,EACA;OACC3C,IAAI,CAACiF,MAAL,CAAY0B,OAAZ,CAAoBpB,IAApB;;;KAGD,KAAKjI,OAAL,CAAamI,GAAb,CAAiBzF,IAAjB;KACA,KAAKtD,QAAL;;;GAGDqD,aAAa,CAACC,IAAD,EACb;;;GAIAe,qBAAqB,CAACzB,KAAD,EACrB;KACC,IAAIA,KAAJ,EACA;OACCA,KAAK,CAAC2F,MAAN,CAAa0B,OAAb,CAAqBjB,KAArB;OACA,KAAKzF,YAAL,CAAkBX,KAAlB;;;KAGD,KAAKhC,OAAL,CAAawE,MAAb,CAAoBxC,KAApB;KACA,KAAK5C,QAAL;;;GAGDoE,oBAAoB,CAACxB,KAAD,EACpB;KACCA,KAAK,CAAC2F,MAAN,CAAa0B,OAAb,CAAqBjB,KAArB;KACA,KAAKhJ,QAAL;;;GAGDuD,YAAY,CAACX,KAAD,EACZ;KACC,KAAK9B,WAAL,CAAiBwK,UAAjB,CAA4BlG,MAA5B,CAAmCxC,KAAK,CAAC2F,MAAzC;;;GAID/E,YAAY,GACZ;KACC,KAAK5C,OAAL,CAAagD,OAAb,CAAqB2E,MAAM,IAAI;OAC9B,KAAKzH,WAAL,CAAiBwK,UAAjB,CAA4BlG,MAA5B,CAAmCmD,MAAM,CAACA,MAA1C;MADD;KAGA,KAAK3H,OAAL,CAAasI,KAAb;;;GAGD/E,OAAO,CAAC1C,IAAD,EACP;KACC,KAAKX,WAAL,CAAiBqD,OAAjB,CAAyB1C,IAAzB;;;GAGDwC,SAAS,CAAC1C,MAAD,EACT;KACC,KAAKT,WAAL,CAAiBmD,SAAjB,CAA2B,KAAK4F,cAAL,CAAoBtI,MAApB,CAA3B;;;GAGD4H,eAAe,GACf;KACC,OAAO,KAAKvI,OAAL,CAAa8H,GAAb,CAAkBpF,IAAD,IAAU;OACjC,OAAO;SACN3B,KAAK,EAAE2B,IAAI,CAACiB,IAAL,GAAYjB,IAAI,CAACiB,IAAL,CAAU6E,MAAV,CAAiB,CAAjB,EAAoB3F,QAApB,EAAZ,GAA6C,EAD9C;SAEN7B,WAAW,EAAE0B,IAAI,CAACiB,IAAL,GAAYjB,IAAI,CAACiB,IAAL,CAAU6E,MAAV,CAAiB,CAAjB,EAAoB3F,QAApB,EAAZ,GAA6C,EAFpD;SAGNwC,aAAa,EAAE3C,IAAI,CAACiB,IAAL,GAAY,CAAC,CAACjB,IAAI,CAACiB,IAAL,CAAU6E,MAAV,CAAiB,CAAjB,EAAoB3F,QAApB,GAA+B,CAA/B,CAAd,GAAkD,EAH3D;SAIN/B,MAAM,EAAE,KAAKwI,eAAL,CAAqB5G,IAAI,CAACiF,MAAL,CAAYgD,QAAZ,CAAqBC,cAArB,EAArB;QAJT;MADM,CAAP;;;GAUD/H,QAAQ,GACR;KACC,OAAO,KAAK1C,KAAL,CAAW0K,QAAX,CAAoB,OAApB,EAA6B,MACpC;OACC,OAAO;SACNlK,MAAM,EAAE,KAAKT,WAAL,CAAiBwI,SAAjB,KAA+B,KAAKY,eAAL,CAAqB,KAAKpJ,WAAL,CAAiBwI,SAAjB,EAArB,CAA/B,GAAoF,EADtF;SAEN7H,IAAI,EAAE,KAAKX,WAAL,CAAiByI,OAAjB,EAFA;SAGN3I,OAAO,EAAE,KAAKuI,eAAL;QAHV;MAFM,CAAP;;;GAUDnJ,QAAQ,GACR;KACC,KAAKe,KAAL,CAAWiJ,MAAX,CAAkB,OAAlB;KACA,MAAMhK,QAAN;;;CA7OF;;CCKO,MAAMkH,GAAN,CACP;;CASA;CACA;CACA;GAGCxH,WAAW,GACX;;CAID;CACA;CACA;CACA;CACA;;;GACc,OAANgM,MAAM,CAACC,IAAD,EAAoBhM,OAApB,EACb;;KAECA,OAAO,CAACW,WAAR,GAAsB4G,GAAG,CAAC5G,WAA1B,CAFD;;KAKC,IAAIsL,YAAY,GAAGD,IAAI,CAACE,OAAL,CAAa3E,GAAG,CAAC4E,cAAjB,CAAnB;;KACA,IACC,CAACF,YAAD,IACGnJ,MAAM,CAACC,IAAP,CAAYwE,GAAG,CAAC6E,SAAhB,EAA2BpC,OAA3B,CAAmCiC,YAAnC,MAAqD,CAAC,CAF1D,EAIA;OACCA,YAAY,GAAG1E,GAAG,CAAC8E,gBAAnB;MAXF;;;KAeC,MAAMC,QAAQ,GAAG,IAAK/E,GAAG,CAAC6E,SAAJ,CAAcH,YAAd,CAAL,CAAkCjM,OAAlC,CAAjB;;KACA,IAAIsM,QAAQ,CAAClJ,WAAT,EAAJ,EACA;OACCkJ,QAAQ,CAACjJ,IAAT;MAFD,MAKA;OACC,IAAI,CAAClD,cAAI,CAACkC,OAAL,CAAakF,GAAG,CAACgF,SAAJ,CAAcD,QAAQ,CAACnJ,OAAT,EAAd,CAAb,CAAL,EACA;SACCoE,GAAG,CAACgF,SAAJ,CAAcD,QAAQ,CAACnJ,OAAT,EAAd,IAAoC,EAApC;;;OAGDoE,GAAG,CAACgF,SAAJ,CAAcD,QAAQ,CAACnJ,OAAT,EAAd,EAAkCqJ,IAAlC,CAAuCF,QAAvC;;;KAGD,OAAOA,QAAP;;;GAGiB,OAAX3L,WAAW,CAACsL,YAAD,EAClB;KACC,IAAI9L,cAAI,CAACkC,OAAL,CAAakF,GAAG,CAACgF,SAAJ,CAAcN,YAAd,CAAb,CAAJ,EACA;OACC1E,GAAG,CAACgF,SAAJ,CAAcN,YAAd,EAA4BhI,OAA5B,CAAoCqI,QAAQ,IAC5C;SACCA,QAAQ,CAACjJ,IAAT;QAFD;;;;CA9DH;CADakE,IAEJ6E,YAAY;GACnB/E,MAAM,EAAEH,SADW;GAEnBuF,MAAM,EAAE5C;CAFW;CAFRtC,IAMJ8E,mBAAmB;CANf9E,IAOJ4E,iBAAiB;CAPb5E,IAaLgF,YAAY;;;;;;;;"}