403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/video-player/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/video-player/dist/video-player.bundle.js.map
{"version":3,"file":"video-player.bundle.js","sources":["../src/global-settings.js","../src/player-manager.js","../src/player.js","../src/index.js"],"sourcesContent":["import { type JsonObject, type JsonValue, Type } from 'main.core';\n\nexport class GlobalSettings\n{\n\t#options: JsonObject = null;\n\t#localStorageKey: string = null;\n\t#batchStarted: boolean = false;\n\n\tconstructor(localStorageKey: string)\n\t{\n\t\tthis.#localStorageKey = localStorageKey;\n\t}\n\n\t#init()\n\t{\n\t\tif (this.#options === null)\n\t\t{\n\t\t\tthis.#options = JSON.parse(window.localStorage.getItem(this.#localStorageKey)) || {};\n\t\t}\n\t}\n\n\tget(option: string, defaultValue?: any): any\n\t{\n\t\tthis.#init();\n\n\t\tif (!Type.isUndefined(this.#options[option]))\n\t\t{\n\t\t\treturn this.#options[option];\n\t\t}\n\n\t\tif (!Type.isUndefined(defaultValue))\n\t\t{\n\t\t\treturn defaultValue;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tset(option: string, value: JsonValue): void\n\t{\n\t\tthis.#init();\n\n\t\tthis.#options[option] = value;\n\n\t\tif (!this.#batchStarted)\n\t\t{\n\t\t\tthis.#batchStarted = true;\n\t\t\tqueueMicrotask(() => {\n\t\t\t\tthis.#batchStarted = false;\n\t\t\t\twindow.localStorage.setItem(this.#localStorageKey, JSON.stringify(this.#options));\n\t\t\t});\n\t\t}\n\t}\n}\n","import { Type, Event, Runtime, Reflection } from 'main.core';\nimport { BaseEvent } from 'main.core.events';\nimport type { Player } from './player';\n\nexport class PlayerManager\n{\n\tstatic #isStarted: false;\n\tstatic #players: Array<Player> = [];\n\n\tstatic addPlayer(player)\n\t{\n\t\tthis.#players.push(player);\n\n\t\tthis.#bindPlayerEvents(player);\n\n\t\tif (player.autostart || player.lazyload)\n\t\t{\n\t\t\tthis.#init();\n\t\t}\n\t}\n\n\tstatic removePlayer(playerToRemove)\n\t{\n\t\tthis.#players = this.#players.filter((player: Player) => player !== playerToRemove);\n\t}\n\n\tstatic #init(): void\n\t{\n\t\tif (this.#isStarted)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#isStarted = true;\n\n\t\tEvent.ready(() => {\n\t\t\tEvent.bind(window, 'scroll', Runtime.throttle(this.#handleScroll, 300, this));\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.#handleScroll();\n\t\t\t}, 50);\n\n\t\t\t/** @type {BX.SidePanel.Manager} */\n\t\t\tconst sliderManager = Reflection.getClass('top.BX.SidePanel.Instance');\n\t\t\tif (window !== window.top && sliderManager !== null)\n\t\t\t{\n\t\t\t\t// When players are inside an iframe\n\t\t\t\tconst currentSlider = sliderManager.getSliderByWindow(window);\n\t\t\t\tif (currentSlider)\n\t\t\t\t{\n\t\t\t\t\tEvent.EventEmitter.subscribe(currentSlider, 'SidePanel.Slider:onCloseComplete', () => {\n\t\t\t\t\t\tthis.#players.forEach((player: Player) => {\n\t\t\t\t\t\t\tplayer.pause();\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic #bindPlayerEvents(player)\n\t{\n\t\tconst events = player.getEventList();\n\t\tfor (const eventName of events)\n\t\t{\n\t\t\tEvent.EventEmitter.subscribe(player, eventName, () => {\n\t\t\t\tEvent.EventEmitter.emit(this, `PlayerManager.${eventName}`, new BaseEvent({ compatData: [player] }));\n\t\t\t});\n\t\t}\n\t}\n\n\tstatic #handleScroll(): void\n\t{\n\t\tif (this.#players.length === 0)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tlet topVisiblePlayer = null;\n\n\t\tconst players = [...this.#players];\n\t\tfor (const [index, player] of players.entries())\n\t\t{\n\t\t\tif (!document.getElementById(player.id))\n\t\t\t{\n\t\t\t\tthis.#players.splice(index, 1);\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (player.lazyload && !player.isInited() && this.isVisibleOnScreen(player.id, 2))\n\t\t\t{\n\t\t\t\tplayer.init();\n\t\t\t}\n\n\t\t\tif (!player.autostart)\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (this.isVisibleOnScreen(player.id, 1))\n\t\t\t{\n\t\t\t\tif (topVisiblePlayer === null)\n\t\t\t\t{\n\t\t\t\t\ttopVisiblePlayer = player;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (topVisiblePlayer !== null && !topVisiblePlayer.isPlayed() && !topVisiblePlayer.hasStarted)\n\t\t{\n\t\t\tif (!topVisiblePlayer.isInited())\n\t\t\t{\n\t\t\t\ttopVisiblePlayer.autostart = true;\n\t\t\t}\n\t\t\telse if (topVisiblePlayer.isReady() && !topVisiblePlayer.isEnded())\n\t\t\t{\n\t\t\t\tfor (const [, player] of players.entries())\n\t\t\t\t{\n\t\t\t\t\tif (player === topVisiblePlayer || !player.autostart)\n\t\t\t\t\t{\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (player.isPlaying())\n\t\t\t\t\t{\n\t\t\t\t\t\tplayer.pause();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ttopVisiblePlayer.mute(true);\n\t\t\t\ttopVisiblePlayer.play();\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic getElementCoords(element: HTMLElement): Object\n\t{\n\t\tconst VISIBLE_OFFSET = 0.25;\n\n\t\tconst box = element.getBoundingClientRect();\n\n\t\tconst elementHeight = box.bottom - box.top;\n\t\tconst top = box.top + VISIBLE_OFFSET * elementHeight;\n\t\tconst bottom = box.bottom - VISIBLE_OFFSET * elementHeight;\n\n\t\tconst elementWidth = box.right - box.left;\n\t\tconst left = box.left + VISIBLE_OFFSET * elementWidth;\n\t\tconst right = box.right - VISIBLE_OFFSET * elementWidth;\n\n\t\treturn {\n\t\t\ttop: top + window.pageYOffset,\n\t\t\tbottom: bottom + window.pageYOffset,\n\t\t\tleft: left + window.pageXOffset,\n\t\t\tright: right + window.pageXOffset,\n\t\t\toriginTop: top,\n\t\t\toriginLeft: left,\n\t\t\toriginBottom: bottom,\n\t\t\toriginRight: right,\n\t\t};\n\t}\n\n\tstatic isVisibleOnScreen(id: string, screens: number): boolean\n\t{\n\t\tlet visible = false;\n\n\t\tconst element = document.getElementById(id);\n\t\tif (element === null)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst coords = this.getElementCoords(element);\n\t\tconst clientHeight = document.documentElement.clientHeight;\n\n\t\tlet windowTop = window.pageYOffset || document.documentElement.scrollTop;\n\t\tlet windowBottom = windowTop + clientHeight;\n\n\t\tconst numberOfScreens = screens ? parseInt(screens, 10) : 1;\n\n\t\tif (numberOfScreens > 1)\n\t\t{\n\t\t\twindowTop -= clientHeight * (numberOfScreens - 1);\n\t\t\twindowBottom += clientHeight * (numberOfScreens - 1);\n\t\t}\n\n\t\tconst topVisible = coords.top > windowTop && coords.top < windowBottom;\n\t\tconst bottomVisible = coords.bottom < windowBottom && coords.bottom > windowTop;\n\n\t\tconst onScreen = topVisible || bottomVisible;\n\n\t\tif (onScreen && screens > 1)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tif (!onScreen)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst playerElement = document.getElementById(id);\n\t\tconst playerCenterX = coords.originLeft + (coords.originRight - coords.originLeft) / 2;\n\t\tconst playerCenterY = coords.originTop + (coords.originBottom - coords.originTop) / 2 + 20;\n\n\t\tconst currentPlayerCenterElement = document.elementFromPoint(playerCenterX, playerCenterY);\n\n\t\tif (\n\t\t\tcurrentPlayerCenterElement !== null\n\t\t\t&& (\n\t\t\t\tcurrentPlayerCenterElement === playerElement\n\t\t\t\t|| currentPlayerCenterElement.parentNode === playerElement\n\t\t\t\t|| currentPlayerCenterElement.parentNode.parentNode === playerElement\n\t\t\t)\n\t\t)\n\t\t{\n\t\t\tvisible = true;\n\t\t}\n\n\t\treturn (onScreen && visible);\n\t}\n\n\tstatic getPlayerById(id): Player | null\n\t{\n\t\tif (!Type.isStringFilled(id))\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\tfor (const player of this.#players)\n\t\t{\n\t\t\tif (player.id === id)\n\t\t\t{\n\t\t\t\treturn player;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n}\n","/* eslint-disable @bitrix24/bitrix24-rules/no-native-dom-methods */\nimport { Dom, Type, Event, Reflection, Loc, type JsonObject } from 'main.core';\nimport { BaseEvent } from 'main.core.events';\nimport { videojs } from 'ui.video-js';\nimport { GlobalSettings } from './global-settings';\nimport { PlayerManager } from './player-manager';\n\nlet langSetup = false;\nvideojs.hook('beforesetup', (videoEl, options) => {\n\tDom.addClass(videoEl, 'ui-video-player ui-icon-set__scope');\n\tif (videoEl.tagName.toLowerCase() === 'audio')\n\t{\n\t\tDom.addClass(videoEl, 'vjs-audio-only-mode');\n\t}\n\n\tif (langSetup === false)\n\t{\n\t\tvideojs.addLanguage('video-player', {\n\t\t\tPlay: Loc.getMessage('VIDEO_PLAYER_PLAY'),\n\t\t\tPause: Loc.getMessage('VIDEO_PLAYER_PAUSE'),\n\t\t\tReplay: Loc.getMessage('VIDEO_PLAYER_REPLAY'),\n\t\t\t'Current Time': Loc.getMessage('VIDEO_PLAYER_CURRENT_TIME'),\n\t\t\tDuration: Loc.getMessage('VIDEO_PLAYER_DURATION'),\n\t\t\t'Remaining Time': Loc.getMessage('VIDEO_PLAYER_REMAINING_TIME'),\n\t\t\tLoaded: Loc.getMessage('VIDEO_PLAYER_LOADED'),\n\t\t\tProgress: Loc.getMessage('VIDEO_PLAYER_PROGRESS'),\n\t\t\t'Progress Bar': Loc.getMessage('VIDEO_PLAYER_PROGRESS_BAR'),\n\t\t\tFullscreen: Loc.getMessage('VIDEO_PLAYER_FULLSCREEN'),\n\t\t\t'Exit Fullscreen': Loc.getMessage('VIDEO_PLAYER_EXIT_FULLSCREEN'),\n\t\t\tMute: Loc.getMessage('VIDEO_PLAYER_MUTE'),\n\t\t\tUnmute: Loc.getMessage('VIDEO_PLAYER_UNMUTE'),\n\t\t\t'Playback Rate': Loc.getMessage('VIDEO_PLAYER_PLAYBACK_RATE'),\n\t\t\t'Volume Level': Loc.getMessage('VIDEO_PLAYER_VOLUME_LEVEL'),\n\t\t\t'You aborted the media playback': Loc.getMessage('VIDEO_PLAYER_ABORTED_PLAYBACK'),\n\t\t\t'A network error caused the media download to fail part-way.': Loc.getMessage('VIDEO_PLAYER_NETWORK_ERROR'),\n\t\t\t'The media could not be loaded, either because the server or network failed or because the format is not supported.': Loc.getMessage('VIDEO_PLAYER_FORMAT_NOT_SUPPORTED'),\n\t\t\t'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.': Loc.getMessage('VIDEO_PLAYER_PLAYBACK_WAS_ABORTED'),\n\t\t\t'No compatible source was found for this media.': Loc.getMessage('VIDEO_PLAYER_NO_COMPATIBLE_SOURCE'),\n\t\t\t'The media is encrypted and we do not have the keys to decrypt it.': Loc.getMessage('VIDEO_PLAYER_MEDIA_IS_ENCRYPTED'),\n\t\t\t'Play Video': Loc.getMessage('VIDEO_PLAYER_PLAY_VIDEO'),\n\t\t\t'Exit Picture-in-Picture': Loc.getMessage('VIDEO_PLAYER_EXIT_PICTURE_IN_PICTURE'),\n\t\t\t'Picture-in-Picture': Loc.getMessage('VIDEO_PLAYER_PICTURE_IN_PICTURE'),\n\t\t});\n\n\t\tlangSetup = true;\n\t}\n\n\treturn options;\n});\n\nexport class Player\n{\n\tid: string = null;\n\tmuted: boolean = false;\n\thasStarted: boolean = false;\n\tvjsPlayer: boolean = null;\n\tisAudio: boolean = false;\n\n\tstatic #globalSettings = new GlobalSettings('bx-video-player-settings');\n\n\tconstructor(id, params)\n\t{\n\t\tthis.id = id;\n\t\tthis.#fillParameters(params);\n\n\t\tPlayerManager.addPlayer(this);\n\n\t\tthis.#fireEvent('onCreate');\n\t}\n\n\tisReady(): boolean\n\t{\n\t\t// eslint-disable-next-line no-underscore-dangle\n\t\treturn this.vjsPlayer && this.vjsPlayer.isReady_;\n\t}\n\n\tplay(): void\n\t{\n\t\tthis.setPlayedState();\n\t\tthis.hasStarted = true;\n\t\ttry\n\t\t{\n\t\t\tthis.vjsPlayer.play();\n\t\t}\n\t\tcatch\n\t\t{\n\t\t\t// fail silently\n\t\t}\n\n\t\tthis.#fireEvent('onPlay');\n\t}\n\n\tpause(): void\n\t{\n\t\ttry\n\t\t{\n\t\t\tthis.vjsPlayer.pause();\n\t\t}\n\t\tcatch\n\t\t{\n\t\t\t// fail silently\n\t\t}\n\n\t\tthis.#fireEvent('onPause');\n\t}\n\n\ttoggle(): void\n\t{\n\t\tif (this.isPlaying())\n\t\t{\n\t\t\tthis.pause();\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.play();\n\t\t}\n\t}\n\n\tisPlaying(): boolean\n\t{\n\t\tif (this.vjsPlayer)\n\t\t{\n\t\t\treturn this.isReady() && !this.vjsPlayer.paused();\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tisEnded(): boolean\n\t{\n\t\tif (this.vjsPlayer)\n\t\t{\n\t\t\treturn this.vjsPlayer.ended();\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tsetPlayedState(): void\n\t{\n\t\tconst storageHash = this.#getStorageHash();\n\n\t\tconst localStorage = Reflection.getClass('BX.localStorage');\n\t\tif (localStorage)\n\t\t{\n\t\t\tlocalStorage.set(storageHash, 'played', 14 * 24 * 3600);\n\t\t}\n\t}\n\n\tisPlayed(): boolean\n\t{\n\t\tconst storageHash = this.#getStorageHash();\n\t\t/** @type {BX.localStorage} */\n\t\tconst localStorage = Reflection.getClass('BX.localStorage');\n\t\tif (localStorage)\n\t\t{\n\t\t\treturn localStorage.get(storageHash) === 'played';\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t#getStorageHash(): string\n\t{\n\t\tlet storageHash = this.id;\n\t\tif (Type.isArrayFilled(this.params.sources) && this.params.sources[0].src)\n\t\t{\n\t\t\tstorageHash = this.params.sources[0].src;\n\t\t}\n\n\t\treturn `player_${storageHash}`;\n\t}\n\n\tgetElement(): HTMLElement | null\n\t{\n\t\treturn document.getElementById(this.id);\n\t}\n\n\tcreateElement(): HTMLElement | null\n\t{\n\t\tlet node = this.getElement();\n\t\tif (node)\n\t\t{\n\t\t\treturn node;\n\t\t}\n\n\t\tif (!this.id)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\tlet tagName = 'video';\n\n\t\tconst classes = ['video-js', 'ui-video-player', 'ui-icon-set__scope'];\n\t\tif (this.isAudio)\n\t\t{\n\t\t\ttagName = 'audio';\n\t\t\tclasses.push('vjs-audio-only-mode');\n\t\t}\n\n\t\tlet className = classes.join(' ');\n\n\t\tif (this.skin)\n\t\t{\n\t\t\tclassName += ` ${this.skin}`;\n\t\t}\n\n\t\tconst attrs = {\n\t\t\tid: this.id,\n\t\t\tclassName,\n\t\t\twidth: this.width,\n\t\t\theight: this.height,\n\t\t\tcontrols: true,\n\t\t};\n\n\t\tif (this.muted)\n\t\t{\n\t\t\tattrs.muted = true;\n\t\t}\n\n\t\tnode = Dom.create(tagName, { attrs });\n\n\t\tif (Type.isArrayFilled(this.params.sources))\n\t\t{\n\t\t\tfor (const source of this.params.sources)\n\t\t\t{\n\t\t\t\tif (!source.src || !source.type)\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst sourceTag = Dom.create('source', {\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tsrc: source.src,\n\t\t\t\t\t\ttype: source.type,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\tDom.append(sourceTag, node);\n\t\t\t}\n\t\t}\n\n\t\treturn node;\n\t}\n\n\t#fillParameters(options: JsonObject)\n\t{\n\t\tconst defaults = this.#getDefaultOptions();\n\t\tconst params = Type.isPlainObject(options) ? { ...defaults, ...options } : defaults;\n\t\tif (Type.isArrayFilled(params.techOrder))\n\t\t{\n\t\t\t// Compatibility\n\t\t\tparams.techOrder = params.techOrder.filter((tech: string) => tech !== 'flash');\n\t\t}\n\n\t\tthis.autostart = params.autostart || false;\n\n\t\tif (params.playbackRate)\n\t\t{\n\t\t\tparams.playbackRate = parseFloat(params.playbackRate);\n\t\t\tif (params.playbackRate !== 1)\n\t\t\t{\n\t\t\t\tif (params.playbackRate <= 0)\n\t\t\t\t{\n\t\t\t\t\tparams.playbackRate = 1;\n\t\t\t\t}\n\n\t\t\t\tif (params.playbackRate > 3)\n\t\t\t\t{\n\t\t\t\t\tparams.playbackRate = 3;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (params.playbackRate !== 1)\n\t\t\t{\n\t\t\t\tthis.playbackRate = params.playbackRate;\n\t\t\t}\n\t\t}\n\n\t\tthis.volume = BX.Type.isNumber(params.volume) ? params.volume : null;\n\n\t\tthis.startTime = params.startTime || 0;\n\t\tthis.onInit = params.onInit;\n\t\tthis.lazyload = params.lazyload;\n\t\tthis.skin = params.skin || '';\n\t\tthis.isAudio = params.isAudio || false;\n\n\t\tif (this.isAudio)\n\t\t{\n\t\t\tparams.width = params.width || 400;\n\t\t\tparams.height = params.height || 30;\n\t\t\tparams.audioOnlyMode = true;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tparams.width = Math.max(params.width || 560, 400);\n\t\t\tparams.height = Math.max(params.height || 315, 130);\n\t\t}\n\n\t\tthis.width = params.width;\n\t\tthis.height = params.height;\n\t\tthis.duration = params.duration || null;\n\t\tthis.muted = params.muted || false;\n\n\t\tthis.params = params;\n\t}\n\n\t#getDefaultOptions(): JsonObject\n\t{\n\t\treturn {\n\t\t\tcontrols: true,\n\t\t\tplaybackRates: [0.5, 1, 1.25, 1.5, 1.75, 2],\n\t\t\tlanguage: 'video-player',\n\t\t\tuserActions: {\n\t\t\t\tclick: this.#handleClick.bind(this),\n\t\t\t\thotkeys: this.#handleKeyDown.bind(this),\n\t\t\t},\n\t\t};\n\t}\n\n\tsetSource(source): void\n\t{\n\t\tif (!source)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.vjsPlayer.src(source);\n\t\tthis.#fireEvent('onSetSource');\n\t}\n\n\tgetSource(): string\n\t{\n\t\treturn this.vjsPlayer.src();\n\t}\n\n\tinit(): void\n\t{\n\t\tif (this.vjsPlayer !== null)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#fireEvent('onBeforeInit');\n\n\t\tthis.vjsPlayer = videojs(this.id, this.params);\n\n\t\tif (this.isAudio)\n\t\t{\n\t\t\tthis.#hideAudioControls();\n\t\t\tthis.#setInitialVolume();\n\t\t}\n\n\t\tthis.vjsPlayer.one('loadedmetadata', (event) => {\n\t\t\tif (!this.isAudio && !(this.vjsPlayer.videoWidth() > 0 && this.vjsPlayer.videoHeight() > 0))\n\t\t\t{\n\t\t\t\t// Throw an error if a video doesn't have dimensions\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.stopImmediatePropagation();\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.vjsPlayer.error(4);\n\t\t\t\t}, 0);\n\t\t\t}\n\t\t\telse if (this.duration > 0)\n\t\t\t{\n\t\t\t\tthis.vjsPlayer.duration(this.duration);\n\t\t\t}\n\t\t});\n\n\t\tthis.vjsPlayer.on('fullscreenchange', () => {\n\t\t\tthis.vjsPlayer.focus();\n\t\t});\n\n\t\tthis.#proxyEvents();\n\n\t\tthis.vjsPlayer.ready(() => {\n\t\t\tconst controlBar = this.vjsPlayer.getChild('ControlBar');\n\t\t\tconst playbackButton = controlBar.getChild('PlaybackRateMenuButton');\n\t\t\tif (playbackButton)\n\t\t\t{\n\t\t\t\t// eslint-disable-next-line no-underscore-dangle\n\t\t\t\tvideojs.off(playbackButton.menuButton_.el(), 'mouseenter');\n\t\t\t\tvideojs.off(playbackButton.el(), 'mouseleave');\n\t\t\t}\n\n\t\t\tthis.vjsPlayer.one('play', this.#handlePlayOnce.bind(this));\n\n\t\t\tif (Type.isFunction(this.onInit))\n\t\t\t{\n\t\t\t\tthis.onInit(this);\n\t\t\t}\n\n\t\t\tthis.#fireEvent('onAfterInit');\n\t\t});\n\n\t\tif (this.autostart && !this.lazyload)\n\t\t{\n\t\t\tthis.vjsPlayer.one('canplay', () => {\n\t\t\t\tif (!this.hasStarted)\n\t\t\t\t{\n\t\t\t\t\tthis.play();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tisInited(): boolean\n\t{\n\t\treturn this.vjsPlayer !== null;\n\t}\n\n\tgetEventList(): Array<string>\n\t{\n\t\treturn [\n\t\t\t'Player:onBeforeInit',\n\t\t\t'Player:onAfterInit',\n\t\t\t'Player:onCreate',\n\t\t\t'Player:onSetSource',\n\t\t\t'Player:onKeyDown',\n\t\t\t'Player:onPlay',\n\t\t\t'Player:onPause',\n\t\t\t'Player:onClick',\n\t\t\t'Player:onError',\n\t\t\t'Player:onEnded',\n\t\t\t'Player:onEnterPictureInPicture',\n\t\t\t'Player:onLeavePictureInPicture',\n\t\t];\n\t}\n\n\tmute(mute: boolean | undefined): boolean\n\t{\n\t\treturn this.vjsPlayer?.muted(mute);\n\t}\n\n\tisMuted(): boolean\n\t{\n\t\treturn this.vjsPlayer?.muted();\n\t}\n\n\tfocus(): void\n\t{\n\t\tthis.vjsPlayer?.focus();\n\t}\n\n\tmoveBackward(skipTime: number): void\n\t{\n\t\tconst currentVideoTime = this.vjsPlayer.currentTime();\n\t\tconst liveTracker = this.vjsPlayer.liveTracker;\n\n\t\tconst seekableStart = liveTracker && liveTracker.isLive() && liveTracker.seekableStart();\n\t\tlet newTime = 0;\n\n\t\tif (seekableStart && (currentVideoTime - skipTime <= seekableStart))\n\t\t{\n\t\t\tnewTime = seekableStart;\n\t\t}\n\t\telse if (currentVideoTime >= skipTime)\n\t\t{\n\t\t\tnewTime = currentVideoTime - skipTime;\n\t\t}\n\n\t\tthis.vjsPlayer.currentTime(newTime);\n\t}\n\n\tmoveForward(skipTime: number): void\n\t{\n\t\tif (!Type.isNumber(this.vjsPlayer.duration()))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentVideoTime = this.vjsPlayer.currentTime();\n\t\tconst liveTracker = this.vjsPlayer.liveTracker;\n\t\tconst duration = (liveTracker && liveTracker.isLive()) ? liveTracker.seekableEnd() : this.vjsPlayer.duration();\n\t\tconst newTime = currentVideoTime + skipTime <= duration ? currentVideoTime + skipTime : duration;\n\n\t\tthis.vjsPlayer.currentTime(newTime);\n\t}\n\n\tincreasePlaybackRate(): void\n\t{\n\t\tconst playbackRates: Number[] = this.vjsPlayer.playbackRates();\n\t\tconst currentPlayback = this.vjsPlayer.playbackRate();\n\n\t\tconst nextPlayback = playbackRates.find((value) => {\n\t\t\treturn value > currentPlayback;\n\t\t});\n\n\t\tif (nextPlayback)\n\t\t{\n\t\t\tthis.vjsPlayer.playbackRate(nextPlayback);\n\t\t}\n\t}\n\n\tdecreasePlaybackRate(): void\n\t{\n\t\tconst playbackRates = [...this.vjsPlayer.playbackRates()].reverse();\n\t\tconst currentPlayback = this.vjsPlayer.playbackRate();\n\n\t\tconst prevPlayback = playbackRates.find((value) => {\n\t\t\treturn value < currentPlayback;\n\t\t});\n\n\t\tif (prevPlayback)\n\t\t{\n\t\t\tthis.vjsPlayer.playbackRate(prevPlayback);\n\t\t}\n\t}\n\n\t#hideAudioControls(): void\n\t{\n\t\tthis.vjsPlayer.removeChild('BigPlayButton');\n\t\tthis.vjsPlayer.removeChild('TextTrackSettings');\n\t\tthis.vjsPlayer.removeChild('PosterImage');\n\t\tthis.vjsPlayer.controlBar.removeChild('FullscreenToggle');\n\t\tthis.vjsPlayer.controlBar.removeChild('PictureInPictureToggle');\n\t\tthis.vjsPlayer.controlBar.removeChild('ChaptersButton');\n\t\tthis.vjsPlayer.controlBar.removeChild('DescriptionsButton');\n\n\t\tif (this.skin === 'vjs-audio-wave-skin' || this.skin === 'vjs-viewer-audio-player-skin')\n\t\t{\n\t\t\tthis.vjsPlayer.removeChild('VolumePanel');\n\t\t\tthis.vjsPlayer.controlBar.removeChild('VolumePanel');\n\t\t\tthis.vjsPlayer.controlBar.removeChild('CurrentTimeDisplay');\n\t\t\tthis.vjsPlayer.controlBar.removeChild('PlaybackRateMenuButton');\n\t\t}\n\t}\n\n\t#handlePlayOnce(): void\n\t{\n\t\tif (this.playbackRate !== 1)\n\t\t{\n\t\t\tthis.vjsPlayer.playbackRate(this.playbackRate);\n\t\t}\n\n\t\tthis.#setInitialVolume();\n\n\t\tif (this.startTime > 0)\n\t\t{\n\t\t\ttry\n\t\t\t{\n\t\t\t\tthis.vjsPlayer.currentTime(this.startTime);\n\t\t\t}\n\t\t\tcatch\n\t\t\t{\n\t\t\t\t// Fail silently\n\t\t\t}\n\t\t}\n\n\t\tthis.vjsPlayer.on('volumechange', () => {\n\t\t\tthis.constructor.#globalSettings.set('volume', this.vjsPlayer.volume());\n\t\t});\n\t}\n\n\t#setInitialVolume(): void\n\t{\n\t\tconst hasVolumePanel = !BX.Type.isNil(this.vjsPlayer.controlBar.getChild('VolumePanel'));\n\t\tif (hasVolumePanel)\n\t\t{\n\t\t\tconst volume = this.volume === null ? this.constructor.#globalSettings.get('volume', 0.8) : this.volume;\n\t\t\tthis.vjsPlayer.volume(volume);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst volume = this.volume === null ? 0.8 : this.volume;\n\t\t\tthis.vjsPlayer.volume(volume);\n\t\t}\n\t}\n\n\t#handleClick(event: MouseEvent): void\n\t{\n\t\tthis.toggle();\n\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t}\n\n\t#handleKeyDown(event: KeyboardEvent): void\n\t{\n\t\tconst beforeKeyDownEvent = new BaseEvent({ event });\n\t\tthis.#fireEvent('onBeforeKeyDown', beforeKeyDownEvent);\n\t\tif (beforeKeyDownEvent.isDefaultPrevented())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tswitch (event.code)\n\t\t{\n\t\t\tcase 'KeyK':\n\t\t\tcase 'Space':\n\t\t\t{\n\t\t\t\tthis.toggle();\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase 'KeyF':\n\t\t\t{\n\t\t\t\tif (!this.isAudio)\n\t\t\t\t{\n\t\t\t\t\tif (this.vjsPlayer.isFullscreen())\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.vjsPlayer.exitFullscreen();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.vjsPlayer.requestFullscreen();\n\t\t\t\t\t}\n\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase 'KeyJ':\n\t\t\t{\n\t\t\t\tthis.moveBackward(10);\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase 'KeyL':\n\t\t\t{\n\t\t\t\tthis.moveForward(10);\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase 'ArrowLeft':\n\t\t\t{\n\t\t\t\tthis.moveBackward(5);\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase 'ArrowRight':\n\t\t\t{\n\t\t\t\tthis.moveForward(5);\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase 'KeyM':\n\t\t\t{\n\t\t\t\tif (this.isMuted())\n\t\t\t\t{\n\t\t\t\t\tthis.mute(false);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.mute(true);\n\t\t\t\t}\n\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase 'Comma':\n\t\t\t{\n\t\t\t\tthis.decreasePlaybackRate();\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase 'Period':\n\t\t\t{\n\t\t\t\tthis.increasePlaybackRate();\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\t// nothing\n\t\t\t}\n\t\t}\n\n\t\tthis.#fireEvent('onKeyDown', new BaseEvent({ event }));\n\t}\n\n\t#fireEvent(eventName: string, event): void\n\t{\n\t\tif (Type.isStringFilled(eventName))\n\t\t{\n\t\t\tconst fullName = `Player:${eventName}`;\n\n\t\t\tconst compatEvent = event || new BaseEvent();\n\t\t\tcompatEvent.setCompatData([this, fullName]);\n\n\t\t\tEvent.EventEmitter.emit(this, fullName, compatEvent);\n\t\t}\n\t}\n\n\t#proxyEvents()\n\t{\n\t\tthis.vjsPlayer.on('play', () => {\n\t\t\tthis.#fireEvent('onPlay');\n\t\t\tthis.hasStarted = true;\n\t\t});\n\n\t\tthis.vjsPlayer.on('pause', () => {\n\t\t\tthis.#fireEvent('onPause');\n\t\t});\n\n\t\tthis.vjsPlayer.on('click', () => {\n\t\t\tthis.#fireEvent('onClick');\n\t\t});\n\n\t\tthis.vjsPlayer.on('ended', () => {\n\t\t\tthis.#fireEvent('onEnded');\n\t\t});\n\n\t\tthis.vjsPlayer.on('loadedmetadata', () => {\n\t\t\tthis.#fireEvent('onLoadedMetadata');\n\t\t});\n\n\t\tthis.vjsPlayer.on('error', () => {\n\t\t\tthis.#fireEvent('onError');\n\t\t});\n\n\t\tthis.vjsPlayer.on('enterpictureinpicture', () => {\n\t\t\tthis.#fireEvent('onEnterPictureInPicture');\n\t\t});\n\n\t\tthis.vjsPlayer.on('leavepictureinpicture', () => {\n\t\t\tconst event = new BaseEvent();\n\t\t\tthis.#fireEvent('onLeavePictureInPicture', event);\n\n\t\t\tif (!event.isDefaultPrevented())\n\t\t\t{\n\t\t\t\tconst visible = PlayerManager.isVisibleOnScreen(this.id, 1);\n\t\t\t\tif (!visible)\n\t\t\t\t{\n\t\t\t\t\tthis.pause();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tdestroy()\n\t{\n\t\tPlayerManager.removePlayer(this);\n\n\t\tif (this.vjsPlayer !== null)\n\t\t{\n\t\t\tthis.vjsPlayer.dispose();\n\t\t}\n\n\t\tthis.vjsPlayer = null;\n\t}\n}\n","import { Reflection } from 'main.core';\nimport { Player } from './player';\nimport { PlayerManager } from './player-manager';\n\nimport './css/player.css';\nimport './css/audio-wave-skin.css';\n\n// compatibility\nconst filemanNS = Reflection.namespace('BX.Fileman');\nfilemanNS.Player = Player;\nfilemanNS.PlayerManager = PlayerManager;\n\nexport {\n\tPlayer,\n\tPlayerManager,\n};\n"],"names":["GlobalSettings","constructor","localStorageKey","get","option","defaultValue","Type","isUndefined","set","value","queueMicrotask","window","localStorage","setItem","JSON","stringify","parse","getItem","PlayerManager","addPlayer","player","push","autostart","lazyload","removePlayer","playerToRemove","filter","getElementCoords","element","VISIBLE_OFFSET","box","getBoundingClientRect","elementHeight","bottom","top","elementWidth","right","left","pageYOffset","pageXOffset","originTop","originLeft","originBottom","originRight","isVisibleOnScreen","id","screens","visible","document","getElementById","coords","clientHeight","documentElement","windowTop","scrollTop","windowBottom","numberOfScreens","parseInt","topVisible","bottomVisible","onScreen","playerElement","playerCenterX","playerCenterY","currentPlayerCenterElement","elementFromPoint","parentNode","getPlayerById","isStringFilled","Event","ready","bind","Runtime","throttle","setTimeout","sliderManager","Reflection","getClass","currentSlider","getSliderByWindow","EventEmitter","subscribe","forEach","pause","events","getEventList","eventName","emit","BaseEvent","compatData","length","topVisiblePlayer","players","index","entries","splice","isInited","init","isPlayed","hasStarted","isReady","isEnded","isPlaying","mute","play","langSetup","videojs","hook","videoEl","options","Dom","addClass","tagName","toLowerCase","addLanguage","Play","Loc","getMessage","Pause","Replay","Duration","Loaded","Progress","Fullscreen","Mute","Unmute","Player","params","muted","vjsPlayer","isAudio","isReady_","setPlayedState","toggle","paused","ended","storageHash","getElement","createElement","node","classes","className","join","skin","attrs","width","height","controls","create","isArrayFilled","sources","source","src","type","sourceTag","append","setSource","getSource","one","event","videoWidth","videoHeight","stopPropagation","stopImmediatePropagation","error","duration","on","focus","controlBar","getChild","playbackButton","off","menuButton_","el","isFunction","onInit","isMuted","moveBackward","skipTime","currentVideoTime","currentTime","liveTracker","seekableStart","isLive","newTime","moveForward","isNumber","seekableEnd","increasePlaybackRate","playbackRates","currentPlayback","playbackRate","nextPlayback","find","decreasePlaybackRate","reverse","prevPlayback","destroy","dispose","defaults","isPlainObject","techOrder","tech","parseFloat","volume","BX","startTime","audioOnlyMode","Math","max","language","userActions","click","hotkeys","removeChild","hasVolumePanel","isNil","preventDefault","beforeKeyDownEvent","isDefaultPrevented","code","isFullscreen","exitFullscreen","requestFullscreen","fullName","compatEvent","setCompatData","filemanNS","namespace"],"mappings":";;;;;;CAAkE;CAAA;CAAA;CAAA;AAElE,CAAO,MAAMA,cAAc,CAC3B;GAKCC,WAAW,CAACC,eAAuB,EACnC;KAAA;OAAA;;KAAA;OAAA;OAAA,OALuB;;KAAI;OAAA;OAAA,OACA;;KAAI;OAAA;OAAA,OACN;;KAIxB,4CAAI,wCAAoBA,eAAe;;GAWxCC,GAAG,CAACC,MAAc,EAAEC,YAAkB,EACtC;KACC,4CAAI;KAEJ,IAAI,CAACC,cAAI,CAACC,WAAW,CAAC,4CAAI,sBAAUH,MAAM,CAAC,CAAC,EAC5C;OACC,OAAO,4CAAI,sBAAUA,MAAM,CAAC;;KAG7B,IAAI,CAACE,cAAI,CAACC,WAAW,CAACF,YAAY,CAAC,EACnC;OACC,OAAOA,YAAY;;KAGpB,OAAO,IAAI;;GAGZG,GAAG,CAACJ,MAAc,EAAEK,KAAgB,EACpC;KACC,4CAAI;KAEJ,4CAAI,sBAAUL,MAAM,CAAC,GAAGK,KAAK;KAE7B,IAAI,yCAAC,IAAI,+BAAc,EACvB;OACC,4CAAI,kCAAiB,IAAI;OACzBC,cAAc,CAAC,MAAM;SACpB,4CAAI,kCAAiB,KAAK;SAC1BC,MAAM,CAACC,YAAY,CAACC,OAAO,yCAAC,IAAI,uCAAmBC,IAAI,CAACC,SAAS,yCAAC,IAAI,sBAAU,CAAC;QACjF,CAAC;;;CAGL;CAAC,kBAvCA;GACC,IAAI,4CAAI,0BAAc,IAAI,EAC1B;KACC,4CAAI,wBAAYD,IAAI,CAACE,KAAK,CAACL,MAAM,CAACC,YAAY,CAACK,OAAO,yCAAC,IAAI,sCAAkB,CAAC,IAAI,EAAE;;CAEtF;;CClB4C;CAAA;CAAA;CAAA;CAAA;AAG7C,CAAO,MAAMC,aAAa,CAC1B;GAIC,OAAOC,SAAS,CAACC,MAAM,EACvB;KACC,4CAAI,sBAAUC,IAAI,CAACD,MAAM,CAAC;KAE1B,4CAAI,wCAAmBA,MAAM;KAE7B,IAAIA,MAAM,CAACE,SAAS,IAAIF,MAAM,CAACG,QAAQ,EACvC;OACC,4CAAI;;;GAIN,OAAOC,YAAY,CAACC,cAAc,EAClC;KACC,4CAAI,wBAAY,4CAAI,sBAAUC,MAAM,CAAEN,MAAc,IAAKA,MAAM,KAAKK,cAAc,CAAC;;GAiHpF,OAAOE,gBAAgB,CAACC,OAAoB,EAC5C;KACC,MAAMC,cAAc,GAAG,IAAI;KAE3B,MAAMC,GAAG,GAAGF,OAAO,CAACG,qBAAqB,EAAE;KAE3C,MAAMC,aAAa,GAAGF,GAAG,CAACG,MAAM,GAAGH,GAAG,CAACI,GAAG;KAC1C,MAAMA,GAAG,GAAGJ,GAAG,CAACI,GAAG,GAAGL,cAAc,GAAGG,aAAa;KACpD,MAAMC,MAAM,GAAGH,GAAG,CAACG,MAAM,GAAGJ,cAAc,GAAGG,aAAa;KAE1D,MAAMG,YAAY,GAAGL,GAAG,CAACM,KAAK,GAAGN,GAAG,CAACO,IAAI;KACzC,MAAMA,IAAI,GAAGP,GAAG,CAACO,IAAI,GAAGR,cAAc,GAAGM,YAAY;KACrD,MAAMC,KAAK,GAAGN,GAAG,CAACM,KAAK,GAAGP,cAAc,GAAGM,YAAY;KAEvD,OAAO;OACND,GAAG,EAAEA,GAAG,GAAGvB,MAAM,CAAC2B,WAAW;OAC7BL,MAAM,EAAEA,MAAM,GAAGtB,MAAM,CAAC2B,WAAW;OACnCD,IAAI,EAAEA,IAAI,GAAG1B,MAAM,CAAC4B,WAAW;OAC/BH,KAAK,EAAEA,KAAK,GAAGzB,MAAM,CAAC4B,WAAW;OACjCC,SAAS,EAAEN,GAAG;OACdO,UAAU,EAAEJ,IAAI;OAChBK,YAAY,EAAET,MAAM;OACpBU,WAAW,EAAEP;MACb;;GAGF,OAAOQ,iBAAiB,CAACC,EAAU,EAAEC,OAAe,EACpD;KACC,IAAIC,OAAO,GAAG,KAAK;KAEnB,MAAMnB,OAAO,GAAGoB,QAAQ,CAACC,cAAc,CAACJ,EAAE,CAAC;KAC3C,IAAIjB,OAAO,KAAK,IAAI,EACpB;OACC,OAAO,KAAK;;KAGb,MAAMsB,MAAM,GAAG,IAAI,CAACvB,gBAAgB,CAACC,OAAO,CAAC;KAC7C,MAAMuB,YAAY,GAAGH,QAAQ,CAACI,eAAe,CAACD,YAAY;KAE1D,IAAIE,SAAS,GAAG1C,MAAM,CAAC2B,WAAW,IAAIU,QAAQ,CAACI,eAAe,CAACE,SAAS;KACxE,IAAIC,YAAY,GAAGF,SAAS,GAAGF,YAAY;KAE3C,MAAMK,eAAe,GAAGV,OAAO,GAAGW,QAAQ,CAACX,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC;KAE3D,IAAIU,eAAe,GAAG,CAAC,EACvB;OACCH,SAAS,IAAIF,YAAY,IAAIK,eAAe,GAAG,CAAC,CAAC;OACjDD,YAAY,IAAIJ,YAAY,IAAIK,eAAe,GAAG,CAAC,CAAC;;KAGrD,MAAME,UAAU,GAAGR,MAAM,CAAChB,GAAG,GAAGmB,SAAS,IAAIH,MAAM,CAAChB,GAAG,GAAGqB,YAAY;KACtE,MAAMI,aAAa,GAAGT,MAAM,CAACjB,MAAM,GAAGsB,YAAY,IAAIL,MAAM,CAACjB,MAAM,GAAGoB,SAAS;KAE/E,MAAMO,QAAQ,GAAGF,UAAU,IAAIC,aAAa;KAE5C,IAAIC,QAAQ,IAAId,OAAO,GAAG,CAAC,EAC3B;OACC,OAAO,IAAI;;KAGZ,IAAI,CAACc,QAAQ,EACb;OACC,OAAO,KAAK;;KAGb,MAAMC,aAAa,GAAGb,QAAQ,CAACC,cAAc,CAACJ,EAAE,CAAC;KACjD,MAAMiB,aAAa,GAAGZ,MAAM,CAACT,UAAU,GAAG,CAACS,MAAM,CAACP,WAAW,GAAGO,MAAM,CAACT,UAAU,IAAI,CAAC;KACtF,MAAMsB,aAAa,GAAGb,MAAM,CAACV,SAAS,GAAG,CAACU,MAAM,CAACR,YAAY,GAAGQ,MAAM,CAACV,SAAS,IAAI,CAAC,GAAG,EAAE;KAE1F,MAAMwB,0BAA0B,GAAGhB,QAAQ,CAACiB,gBAAgB,CAACH,aAAa,EAAEC,aAAa,CAAC;KAE1F,IACCC,0BAA0B,KAAK,IAAI,KAElCA,0BAA0B,KAAKH,aAAa,IACzCG,0BAA0B,CAACE,UAAU,KAAKL,aAAa,IACvDG,0BAA0B,CAACE,UAAU,CAACA,UAAU,KAAKL,aAAa,CACrE,EAEF;OACCd,OAAO,GAAG,IAAI;;KAGf,OAAQa,QAAQ,IAAIb,OAAO;;GAG5B,OAAOoB,aAAa,CAACtB,EAAE,EACvB;KACC,IAAI,CAACvC,cAAI,CAAC8D,cAAc,CAACvB,EAAE,CAAC,EAC5B;OACC,OAAO,IAAI;;KAGZ,KAAK,MAAMzB,MAAM,4CAAI,IAAI,uBACzB;OACC,IAAIA,MAAM,CAACyB,EAAE,KAAKA,EAAE,EACpB;SACC,OAAOzB,MAAM;;;KAIf,OAAO,IAAI;;CAEb;CAAC,oBApNA;GACC,4CAAI,IAAI,2BACR;KACC;;GAGD,4CAAI,4BAAc,IAAI;GAEtBiD,eAAK,CAACC,KAAK,CAAC,MAAM;KACjBD,eAAK,CAACE,IAAI,CAAC5D,MAAM,EAAE,QAAQ,EAAE6D,iBAAO,CAACC,QAAQ,yCAAC,IAAI,iCAAgB,GAAG,EAAE,IAAI,CAAC,CAAC;KAE7EC,UAAU,CAAC,MAAM;OAChB,4CAAI;MACJ,EAAE,EAAE,CAAC;;;KAGN,MAAMC,aAAa,GAAGC,oBAAU,CAACC,QAAQ,CAAC,2BAA2B,CAAC;KACtE,IAAIlE,MAAM,KAAKA,MAAM,CAACuB,GAAG,IAAIyC,aAAa,KAAK,IAAI,EACnD;;OAEC,MAAMG,aAAa,GAAGH,aAAa,CAACI,iBAAiB,CAACpE,MAAM,CAAC;OAC7D,IAAImE,aAAa,EACjB;SACCT,eAAK,CAACW,YAAY,CAACC,SAAS,CAACH,aAAa,EAAE,kCAAkC,EAAE,MAAM;WACrF,4CAAI,sBAAUI,OAAO,CAAE9D,MAAc,IAAK;aACzCA,MAAM,CAAC+D,KAAK,EAAE;YACd,CAAC;UACF,CAAC;;;IAGJ,CAAC;CACH;CAAC,4BAEwB/D,MAAM,EAC/B;GACC,MAAMgE,MAAM,GAAGhE,MAAM,CAACiE,YAAY,EAAE;GACpC,KAAK,MAAMC,SAAS,IAAIF,MAAM,EAC9B;KACCf,eAAK,CAACW,YAAY,CAACC,SAAS,CAAC7D,MAAM,EAAEkE,SAAS,EAAE,MAAM;OACrDjB,eAAK,CAACW,YAAY,CAACO,IAAI,CAAC,IAAI,EAAG,iBAAgBD,SAAU,EAAC,EAAE,IAAIE,0BAAS,CAAC;SAAEC,UAAU,EAAE,CAACrE,MAAM;QAAG,CAAC,CAAC;MACpG,CAAC;;CAEJ;CAAC,0BAGD;GACC,IAAI,4CAAI,sBAAUsE,MAAM,KAAK,CAAC,EAC9B;KACC;;GAGD,IAAIC,gBAAgB,GAAG,IAAI;GAE3B,MAAMC,OAAO,GAAG,CAAC,2CAAG,IAAI,qBAAS,CAAC;GAClC,KAAK,MAAM,CAACC,KAAK,EAAEzE,MAAM,CAAC,IAAIwE,OAAO,CAACE,OAAO,EAAE,EAC/C;KACC,IAAI,CAAC9C,QAAQ,CAACC,cAAc,CAAC7B,MAAM,CAACyB,EAAE,CAAC,EACvC;OACC,4CAAI,sBAAUkD,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;OAE9B;;KAGD,IAAIzE,MAAM,CAACG,QAAQ,IAAI,CAACH,MAAM,CAAC4E,QAAQ,EAAE,IAAI,IAAI,CAACpD,iBAAiB,CAACxB,MAAM,CAACyB,EAAE,EAAE,CAAC,CAAC,EACjF;OACCzB,MAAM,CAAC6E,IAAI,EAAE;;KAGd,IAAI,CAAC7E,MAAM,CAACE,SAAS,EACrB;OACC;;KAGD,IAAI,IAAI,CAACsB,iBAAiB,CAACxB,MAAM,CAACyB,EAAE,EAAE,CAAC,CAAC,EACxC;OACC,IAAI8C,gBAAgB,KAAK,IAAI,EAC7B;SACCA,gBAAgB,GAAGvE,MAAM;;;;GAK5B,IAAIuE,gBAAgB,KAAK,IAAI,IAAI,CAACA,gBAAgB,CAACO,QAAQ,EAAE,IAAI,CAACP,gBAAgB,CAACQ,UAAU,EAC7F;KACC,IAAI,CAACR,gBAAgB,CAACK,QAAQ,EAAE,EAChC;OACCL,gBAAgB,CAACrE,SAAS,GAAG,IAAI;MACjC,MACI,IAAIqE,gBAAgB,CAACS,OAAO,EAAE,IAAI,CAACT,gBAAgB,CAACU,OAAO,EAAE,EAClE;OACC,KAAK,MAAM,GAAGjF,MAAM,CAAC,IAAIwE,OAAO,CAACE,OAAO,EAAE,EAC1C;SACC,IAAI1E,MAAM,KAAKuE,gBAAgB,IAAI,CAACvE,MAAM,CAACE,SAAS,EACpD;WACC;;SAGD,IAAIF,MAAM,CAACkF,SAAS,EAAE,EACtB;WACClF,MAAM,CAAC+D,KAAK,EAAE;;;OAIhBQ,gBAAgB,CAACY,IAAI,CAAC,IAAI,CAAC;OAC3BZ,gBAAgB,CAACa,IAAI,EAAE;;;CAG1B;CAAC,sBAlIWtF,aAAa;GAAA;CAAA;CAAA,sBAAbA,aAAa;GAAA;CAAA;CAAA,sBAAbA,aAAa;GAAA;CAAA;CAAA,sBAAbA,aAAa;GAAA;GAAA;CAAA;CAAA,sBAAbA,aAAa;GAAA;GAAA,OAGQ;CAAE;;CCPpC;AACA,CAMA,IAAIuF,SAAS,GAAG,KAAK;AACrBC,mBAAO,CAACC,IAAI,CAAC,aAAa,EAAE,CAACC,OAAO,EAAEC,OAAO,KAAK;GACjDC,aAAG,CAACC,QAAQ,CAACH,OAAO,EAAE,oCAAoC,CAAC;GAC3D,IAAIA,OAAO,CAACI,OAAO,CAACC,WAAW,EAAE,KAAK,OAAO,EAC7C;KACCH,aAAG,CAACC,QAAQ,CAACH,OAAO,EAAE,qBAAqB,CAAC;;GAG7C,IAAIH,SAAS,KAAK,KAAK,EACvB;KACCC,kBAAO,CAACQ,WAAW,CAAC,cAAc,EAAE;OACnCC,IAAI,EAAEC,aAAG,CAACC,UAAU,CAAC,mBAAmB,CAAC;OACzCC,KAAK,EAAEF,aAAG,CAACC,UAAU,CAAC,oBAAoB,CAAC;OAC3CE,MAAM,EAAEH,aAAG,CAACC,UAAU,CAAC,qBAAqB,CAAC;OAC7C,cAAc,EAAED,aAAG,CAACC,UAAU,CAAC,2BAA2B,CAAC;OAC3DG,QAAQ,EAAEJ,aAAG,CAACC,UAAU,CAAC,uBAAuB,CAAC;OACjD,gBAAgB,EAAED,aAAG,CAACC,UAAU,CAAC,6BAA6B,CAAC;OAC/DI,MAAM,EAAEL,aAAG,CAACC,UAAU,CAAC,qBAAqB,CAAC;OAC7CK,QAAQ,EAAEN,aAAG,CAACC,UAAU,CAAC,uBAAuB,CAAC;OACjD,cAAc,EAAED,aAAG,CAACC,UAAU,CAAC,2BAA2B,CAAC;OAC3DM,UAAU,EAAEP,aAAG,CAACC,UAAU,CAAC,yBAAyB,CAAC;OACrD,iBAAiB,EAAED,aAAG,CAACC,UAAU,CAAC,8BAA8B,CAAC;OACjEO,IAAI,EAAER,aAAG,CAACC,UAAU,CAAC,mBAAmB,CAAC;OACzCQ,MAAM,EAAET,aAAG,CAACC,UAAU,CAAC,qBAAqB,CAAC;OAC7C,eAAe,EAAED,aAAG,CAACC,UAAU,CAAC,4BAA4B,CAAC;OAC7D,cAAc,EAAED,aAAG,CAACC,UAAU,CAAC,2BAA2B,CAAC;OAC3D,gCAAgC,EAAED,aAAG,CAACC,UAAU,CAAC,+BAA+B,CAAC;OACjF,6DAA6D,EAAED,aAAG,CAACC,UAAU,CAAC,4BAA4B,CAAC;OAC3G,oHAAoH,EAAED,aAAG,CAACC,UAAU,CAAC,mCAAmC,CAAC;OACzK,6HAA6H,EAAED,aAAG,CAACC,UAAU,CAAC,mCAAmC,CAAC;OAClL,gDAAgD,EAAED,aAAG,CAACC,UAAU,CAAC,mCAAmC,CAAC;OACrG,mEAAmE,EAAED,aAAG,CAACC,UAAU,CAAC,iCAAiC,CAAC;OACtH,YAAY,EAAED,aAAG,CAACC,UAAU,CAAC,yBAAyB,CAAC;OACvD,yBAAyB,EAAED,aAAG,CAACC,UAAU,CAAC,sCAAsC,CAAC;OACjF,oBAAoB,EAAED,aAAG,CAACC,UAAU,CAAC,iCAAiC;MACtE,CAAC;KAEFZ,SAAS,GAAG,IAAI;;GAGjB,OAAOI,OAAO;CACf,CAAC,CAAC;CAAC;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AAEH,CAAO,MAAMiB,MAAM,CACnB;GASC7H,WAAW,CAAC4C,EAAE,EAAEkF,OAAM,EACtB;KAAA;OAAA;;KAAA;OAAA;;KAAA;OAAA;;KAAA;OAAA;;KAAA;OAAA;;KAAA;OAAA;;KAAA;OAAA;;KAAA;OAAA;;KAAA;OAAA;;KAAA;OAAA;;KAAA,KATAlF,EAAE,GAAW,IAAI;KAAA,KACjBmF,KAAK,GAAY,KAAK;KAAA,KACtB7B,UAAU,GAAY,KAAK;KAAA,KAC3B8B,SAAS,GAAY,IAAI;KAAA,KACzBC,OAAO,GAAY,KAAK;KAMvB,IAAI,CAACrF,EAAE,GAAGA,EAAE;KACZ,4CAAI,oCAAiBkF,OAAM;KAE3B7G,aAAa,CAACC,SAAS,CAAC,IAAI,CAAC;KAE7B,4CAAI,0BAAY,UAAU;;GAG3BiF,OAAO,GACP;;KAEC,OAAO,IAAI,CAAC6B,SAAS,IAAI,IAAI,CAACA,SAAS,CAACE,QAAQ;;GAGjD3B,IAAI,GACJ;KACC,IAAI,CAAC4B,cAAc,EAAE;KACrB,IAAI,CAACjC,UAAU,GAAG,IAAI;KACtB,IACA;OACC,IAAI,CAAC8B,SAAS,CAACzB,IAAI,EAAE;MACrB,CACD,MACA;;;KAIA,4CAAI,0BAAY,QAAQ;;GAGzBrB,KAAK,GACL;KACC,IACA;OACC,IAAI,CAAC8C,SAAS,CAAC9C,KAAK,EAAE;MACtB,CACD,MACA;;;KAIA,4CAAI,0BAAY,SAAS;;GAG1BkD,MAAM,GACN;KACC,IAAI,IAAI,CAAC/B,SAAS,EAAE,EACpB;OACC,IAAI,CAACnB,KAAK,EAAE;MACZ,MAED;OACC,IAAI,CAACqB,IAAI,EAAE;;;GAIbF,SAAS,GACT;KACC,IAAI,IAAI,CAAC2B,SAAS,EAClB;OACC,OAAO,IAAI,CAAC7B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC6B,SAAS,CAACK,MAAM,EAAE;;KAGlD,OAAO,KAAK;;GAGbjC,OAAO,GACP;KACC,IAAI,IAAI,CAAC4B,SAAS,EAClB;OACC,OAAO,IAAI,CAACA,SAAS,CAACM,KAAK,EAAE;;KAG9B,OAAO,KAAK;;GAGbH,cAAc,GACd;KACC,MAAMI,WAAW,2CAAG,IAAI,qCAAkB;KAE1C,MAAM5H,YAAY,GAAGgE,oBAAU,CAACC,QAAQ,CAAC,iBAAiB,CAAC;KAC3D,IAAIjE,YAAY,EAChB;OACCA,YAAY,CAACJ,GAAG,CAACgI,WAAW,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;;;GAIzDtC,QAAQ,GACR;KACC,MAAMsC,WAAW,2CAAG,IAAI,qCAAkB;;KAE1C,MAAM5H,YAAY,GAAGgE,oBAAU,CAACC,QAAQ,CAAC,iBAAiB,CAAC;KAC3D,IAAIjE,YAAY,EAChB;OACC,OAAOA,YAAY,CAACT,GAAG,CAACqI,WAAW,CAAC,KAAK,QAAQ;;KAGlD,OAAO,IAAI;;GAcZC,UAAU,GACV;KACC,OAAOzF,QAAQ,CAACC,cAAc,CAAC,IAAI,CAACJ,EAAE,CAAC;;GAGxC6F,aAAa,GACb;KACC,IAAIC,IAAI,GAAG,IAAI,CAACF,UAAU,EAAE;KAC5B,IAAIE,IAAI,EACR;OACC,OAAOA,IAAI;;KAGZ,IAAI,CAAC,IAAI,CAAC9F,EAAE,EACZ;OACC,OAAO,IAAI;;KAGZ,IAAImE,OAAO,GAAG,OAAO;KAErB,MAAM4B,OAAO,GAAG,CAAC,UAAU,EAAE,iBAAiB,EAAE,oBAAoB,CAAC;KACrE,IAAI,IAAI,CAACV,OAAO,EAChB;OACClB,OAAO,GAAG,OAAO;OACjB4B,OAAO,CAACvH,IAAI,CAAC,qBAAqB,CAAC;;KAGpC,IAAIwH,SAAS,GAAGD,OAAO,CAACE,IAAI,CAAC,GAAG,CAAC;KAEjC,IAAI,IAAI,CAACC,IAAI,EACb;OACCF,SAAS,IAAK,IAAG,IAAI,CAACE,IAAK,EAAC;;KAG7B,MAAMC,KAAK,GAAG;OACbnG,EAAE,EAAE,IAAI,CAACA,EAAE;OACXgG,SAAS;OACTI,KAAK,EAAE,IAAI,CAACA,KAAK;OACjBC,MAAM,EAAE,IAAI,CAACA,MAAM;OACnBC,QAAQ,EAAE;MACV;KAED,IAAI,IAAI,CAACnB,KAAK,EACd;OACCgB,KAAK,CAAChB,KAAK,GAAG,IAAI;;KAGnBW,IAAI,GAAG7B,aAAG,CAACsC,MAAM,CAACpC,OAAO,EAAE;OAAEgC;MAAO,CAAC;KAErC,IAAI1I,cAAI,CAAC+I,aAAa,CAAC,IAAI,CAACtB,MAAM,CAACuB,OAAO,CAAC,EAC3C;OACC,KAAK,MAAMC,MAAM,IAAI,IAAI,CAACxB,MAAM,CAACuB,OAAO,EACxC;SACC,IAAI,CAACC,MAAM,CAACC,GAAG,IAAI,CAACD,MAAM,CAACE,IAAI,EAC/B;WACC;;SAGD,MAAMC,SAAS,GAAG5C,aAAG,CAACsC,MAAM,CAAC,QAAQ,EAAE;WACtCJ,KAAK,EAAE;aACNQ,GAAG,EAAED,MAAM,CAACC,GAAG;aACfC,IAAI,EAAEF,MAAM,CAACE;;UAEd,CAAC;SAEF3C,aAAG,CAAC6C,MAAM,CAACD,SAAS,EAAEf,IAAI,CAAC;;;KAI7B,OAAOA,IAAI;;GA8EZiB,SAAS,CAACL,MAAM,EAChB;KACC,IAAI,CAACA,MAAM,EACX;OACC;;KAGD,IAAI,CAACtB,SAAS,CAACuB,GAAG,CAACD,MAAM,CAAC;KAC1B,4CAAI,0BAAY,aAAa;;GAG9BM,SAAS,GACT;KACC,OAAO,IAAI,CAAC5B,SAAS,CAACuB,GAAG,EAAE;;GAG5BvD,IAAI,GACJ;KACC,IAAI,IAAI,CAACgC,SAAS,KAAK,IAAI,EAC3B;OACC;;KAGD,4CAAI,0BAAY,cAAc;KAE9B,IAAI,CAACA,SAAS,GAAGvB,kBAAO,CAAC,IAAI,CAAC7D,EAAE,EAAE,IAAI,CAACkF,MAAM,CAAC;KAE9C,IAAI,IAAI,CAACG,OAAO,EAChB;OACC,4CAAI;OACJ,4CAAI;;KAGL,IAAI,CAACD,SAAS,CAAC6B,GAAG,CAAC,gBAAgB,EAAGC,KAAK,IAAK;OAC/C,IAAI,CAAC,IAAI,CAAC7B,OAAO,IAAI,EAAE,IAAI,CAACD,SAAS,CAAC+B,UAAU,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC/B,SAAS,CAACgC,WAAW,EAAE,GAAG,CAAC,CAAC,EAC3F;;SAECF,KAAK,CAACG,eAAe,EAAE;SACvBH,KAAK,CAACI,wBAAwB,EAAE;SAEhCzF,UAAU,CAAC,MAAM;WAChB,IAAI,CAACuD,SAAS,CAACmC,KAAK,CAAC,CAAC,CAAC;UACvB,EAAE,CAAC,CAAC;QACL,MACI,IAAI,IAAI,CAACC,QAAQ,GAAG,CAAC,EAC1B;SACC,IAAI,CAACpC,SAAS,CAACoC,QAAQ,CAAC,IAAI,CAACA,QAAQ,CAAC;;MAEvC,CAAC;KAEF,IAAI,CAACpC,SAAS,CAACqC,EAAE,CAAC,kBAAkB,EAAE,MAAM;OAC3C,IAAI,CAACrC,SAAS,CAACsC,KAAK,EAAE;MACtB,CAAC;KAEF,4CAAI;KAEJ,IAAI,CAACtC,SAAS,CAAC3D,KAAK,CAAC,MAAM;OAC1B,MAAMkG,UAAU,GAAG,IAAI,CAACvC,SAAS,CAACwC,QAAQ,CAAC,YAAY,CAAC;OACxD,MAAMC,cAAc,GAAGF,UAAU,CAACC,QAAQ,CAAC,wBAAwB,CAAC;OACpE,IAAIC,cAAc,EAClB;;SAEChE,kBAAO,CAACiE,GAAG,CAACD,cAAc,CAACE,WAAW,CAACC,EAAE,EAAE,EAAE,YAAY,CAAC;SAC1DnE,kBAAO,CAACiE,GAAG,CAACD,cAAc,CAACG,EAAE,EAAE,EAAE,YAAY,CAAC;;OAG/C,IAAI,CAAC5C,SAAS,CAAC6B,GAAG,CAAC,MAAM,EAAE,4CAAI,oCAAiBvF,IAAI,CAAC,IAAI,CAAC,CAAC;OAE3D,IAAIjE,cAAI,CAACwK,UAAU,CAAC,IAAI,CAACC,MAAM,CAAC,EAChC;SACC,IAAI,CAACA,MAAM,CAAC,IAAI,CAAC;;OAGlB,4CAAI,0BAAY,aAAa;MAC7B,CAAC;KAEF,IAAI,IAAI,CAACzJ,SAAS,IAAI,CAAC,IAAI,CAACC,QAAQ,EACpC;OACC,IAAI,CAAC0G,SAAS,CAAC6B,GAAG,CAAC,SAAS,EAAE,MAAM;SACnC,IAAI,CAAC,IAAI,CAAC3D,UAAU,EACpB;WACC,IAAI,CAACK,IAAI,EAAE;;QAEZ,CAAC;;;GAIJR,QAAQ,GACR;KACC,OAAO,IAAI,CAACiC,SAAS,KAAK,IAAI;;GAG/B5C,YAAY,GACZ;KACC,OAAO,CACN,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,gCAAgC,EAChC,gCAAgC,CAChC;;GAGFkB,IAAI,CAACA,IAAyB,EAC9B;KAAA;KACC,0BAAO,IAAI,CAAC0B,SAAS,qBAAd,gBAAgBD,KAAK,CAACzB,IAAI,CAAC;;GAGnCyE,OAAO,GACP;KAAA;KACC,2BAAO,IAAI,CAAC/C,SAAS,qBAAd,iBAAgBD,KAAK,EAAE;;GAG/BuC,KAAK,GACL;KAAA;KACC,wBAAI,CAACtC,SAAS,qBAAd,iBAAgBsC,KAAK,EAAE;;GAGxBU,YAAY,CAACC,QAAgB,EAC7B;KACC,MAAMC,gBAAgB,GAAG,IAAI,CAAClD,SAAS,CAACmD,WAAW,EAAE;KACrD,MAAMC,WAAW,GAAG,IAAI,CAACpD,SAAS,CAACoD,WAAW;KAE9C,MAAMC,aAAa,GAAGD,WAAW,IAAIA,WAAW,CAACE,MAAM,EAAE,IAAIF,WAAW,CAACC,aAAa,EAAE;KACxF,IAAIE,OAAO,GAAG,CAAC;KAEf,IAAIF,aAAa,IAAKH,gBAAgB,GAAGD,QAAQ,IAAII,aAAc,EACnE;OACCE,OAAO,GAAGF,aAAa;MACvB,MACI,IAAIH,gBAAgB,IAAID,QAAQ,EACrC;OACCM,OAAO,GAAGL,gBAAgB,GAAGD,QAAQ;;KAGtC,IAAI,CAACjD,SAAS,CAACmD,WAAW,CAACI,OAAO,CAAC;;GAGpCC,WAAW,CAACP,QAAgB,EAC5B;KACC,IAAI,CAAC5K,cAAI,CAACoL,QAAQ,CAAC,IAAI,CAACzD,SAAS,CAACoC,QAAQ,EAAE,CAAC,EAC7C;OACC;;KAGD,MAAMc,gBAAgB,GAAG,IAAI,CAAClD,SAAS,CAACmD,WAAW,EAAE;KACrD,MAAMC,WAAW,GAAG,IAAI,CAACpD,SAAS,CAACoD,WAAW;KAC9C,MAAMhB,QAAQ,GAAIgB,WAAW,IAAIA,WAAW,CAACE,MAAM,EAAE,GAAIF,WAAW,CAACM,WAAW,EAAE,GAAG,IAAI,CAAC1D,SAAS,CAACoC,QAAQ,EAAE;KAC9G,MAAMmB,OAAO,GAAGL,gBAAgB,GAAGD,QAAQ,IAAIb,QAAQ,GAAGc,gBAAgB,GAAGD,QAAQ,GAAGb,QAAQ;KAEhG,IAAI,CAACpC,SAAS,CAACmD,WAAW,CAACI,OAAO,CAAC;;GAGpCI,oBAAoB,GACpB;KACC,MAAMC,aAAuB,GAAG,IAAI,CAAC5D,SAAS,CAAC4D,aAAa,EAAE;KAC9D,MAAMC,eAAe,GAAG,IAAI,CAAC7D,SAAS,CAAC8D,YAAY,EAAE;KAErD,MAAMC,YAAY,GAAGH,aAAa,CAACI,IAAI,CAAExL,KAAK,IAAK;OAClD,OAAOA,KAAK,GAAGqL,eAAe;MAC9B,CAAC;KAEF,IAAIE,YAAY,EAChB;OACC,IAAI,CAAC/D,SAAS,CAAC8D,YAAY,CAACC,YAAY,CAAC;;;GAI3CE,oBAAoB,GACpB;KACC,MAAML,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC5D,SAAS,CAAC4D,aAAa,EAAE,CAAC,CAACM,OAAO,EAAE;KACnE,MAAML,eAAe,GAAG,IAAI,CAAC7D,SAAS,CAAC8D,YAAY,EAAE;KAErD,MAAMK,YAAY,GAAGP,aAAa,CAACI,IAAI,CAAExL,KAAK,IAAK;OAClD,OAAOA,KAAK,GAAGqL,eAAe;MAC9B,CAAC;KAEF,IAAIM,YAAY,EAChB;OACC,IAAI,CAACnE,SAAS,CAAC8D,YAAY,CAACK,YAAY,CAAC;;;GA2P3CC,OAAO,GACP;KACCnL,aAAa,CAACM,YAAY,CAAC,IAAI,CAAC;KAEhC,IAAI,IAAI,CAACyG,SAAS,KAAK,IAAI,EAC3B;OACC,IAAI,CAACA,SAAS,CAACqE,OAAO,EAAE;;KAGzB,IAAI,CAACrE,SAAS,GAAG,IAAI;;CAEvB;CAAC,4BA7lBA;GACC,IAAIO,WAAW,GAAG,IAAI,CAAC3F,EAAE;GACzB,IAAIvC,cAAI,CAAC+I,aAAa,CAAC,IAAI,CAACtB,MAAM,CAACuB,OAAO,CAAC,IAAI,IAAI,CAACvB,MAAM,CAACuB,OAAO,CAAC,CAAC,CAAC,CAACE,GAAG,EACzE;KACChB,WAAW,GAAG,IAAI,CAACT,MAAM,CAACuB,OAAO,CAAC,CAAC,CAAC,CAACE,GAAG;;GAGzC,OAAQ,UAAShB,WAAY,EAAC;CAC/B;CAAC,0BA0Ee3B,OAAmB,EACnC;GACC,MAAM0F,QAAQ,2CAAG,IAAI,2CAAqB;GAC1C,MAAMxE,MAAM,GAAGzH,cAAI,CAACkM,aAAa,CAAC3F,OAAO,CAAC,GAAG;KAAE,GAAG0F,QAAQ;KAAE,GAAG1F;IAAS,GAAG0F,QAAQ;GACnF,IAAIjM,cAAI,CAAC+I,aAAa,CAACtB,MAAM,CAAC0E,SAAS,CAAC,EACxC;;KAEC1E,MAAM,CAAC0E,SAAS,GAAG1E,MAAM,CAAC0E,SAAS,CAAC/K,MAAM,CAAEgL,IAAY,IAAKA,IAAI,KAAK,OAAO,CAAC;;GAG/E,IAAI,CAACpL,SAAS,GAAGyG,MAAM,CAACzG,SAAS,IAAI,KAAK;GAE1C,IAAIyG,MAAM,CAACgE,YAAY,EACvB;KACChE,MAAM,CAACgE,YAAY,GAAGY,UAAU,CAAC5E,MAAM,CAACgE,YAAY,CAAC;KACrD,IAAIhE,MAAM,CAACgE,YAAY,KAAK,CAAC,EAC7B;OACC,IAAIhE,MAAM,CAACgE,YAAY,IAAI,CAAC,EAC5B;SACChE,MAAM,CAACgE,YAAY,GAAG,CAAC;;OAGxB,IAAIhE,MAAM,CAACgE,YAAY,GAAG,CAAC,EAC3B;SACChE,MAAM,CAACgE,YAAY,GAAG,CAAC;;;KAIzB,IAAIhE,MAAM,CAACgE,YAAY,KAAK,CAAC,EAC7B;OACC,IAAI,CAACA,YAAY,GAAGhE,MAAM,CAACgE,YAAY;;;GAIzC,IAAI,CAACa,MAAM,GAAGC,EAAE,CAACvM,IAAI,CAACoL,QAAQ,CAAC3D,MAAM,CAAC6E,MAAM,CAAC,GAAG7E,MAAM,CAAC6E,MAAM,GAAG,IAAI;GAEpE,IAAI,CAACE,SAAS,GAAG/E,MAAM,CAAC+E,SAAS,IAAI,CAAC;GACtC,IAAI,CAAC/B,MAAM,GAAGhD,MAAM,CAACgD,MAAM;GAC3B,IAAI,CAACxJ,QAAQ,GAAGwG,MAAM,CAACxG,QAAQ;GAC/B,IAAI,CAACwH,IAAI,GAAGhB,MAAM,CAACgB,IAAI,IAAI,EAAE;GAC7B,IAAI,CAACb,OAAO,GAAGH,MAAM,CAACG,OAAO,IAAI,KAAK;GAEtC,IAAI,IAAI,CAACA,OAAO,EAChB;KACCH,MAAM,CAACkB,KAAK,GAAGlB,MAAM,CAACkB,KAAK,IAAI,GAAG;KAClClB,MAAM,CAACmB,MAAM,GAAGnB,MAAM,CAACmB,MAAM,IAAI,EAAE;KACnCnB,MAAM,CAACgF,aAAa,GAAG,IAAI;IAC3B,MAED;KACChF,MAAM,CAACkB,KAAK,GAAG+D,IAAI,CAACC,GAAG,CAAClF,MAAM,CAACkB,KAAK,IAAI,GAAG,EAAE,GAAG,CAAC;KACjDlB,MAAM,CAACmB,MAAM,GAAG8D,IAAI,CAACC,GAAG,CAAClF,MAAM,CAACmB,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC;;GAGpD,IAAI,CAACD,KAAK,GAAGlB,MAAM,CAACkB,KAAK;GACzB,IAAI,CAACC,MAAM,GAAGnB,MAAM,CAACmB,MAAM;GAC3B,IAAI,CAACmB,QAAQ,GAAGtC,MAAM,CAACsC,QAAQ,IAAI,IAAI;GACvC,IAAI,CAACrC,KAAK,GAAGD,MAAM,CAACC,KAAK,IAAI,KAAK;GAElC,IAAI,CAACD,MAAM,GAAGA,MAAM;CACrB;CAAC,+BAGD;GACC,OAAO;KACNoB,QAAQ,EAAE,IAAI;KACd0C,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;KAC3CqB,QAAQ,EAAE,cAAc;KACxBC,WAAW,EAAE;OACZC,KAAK,EAAE,4CAAI,8BAAc7I,IAAI,CAAC,IAAI,CAAC;OACnC8I,OAAO,EAAE,4CAAI,kCAAgB9I,IAAI,CAAC,IAAI;;IAEvC;CACF;CAAC,+BAiMD;GACC,IAAI,CAAC0D,SAAS,CAACqF,WAAW,CAAC,eAAe,CAAC;GAC3C,IAAI,CAACrF,SAAS,CAACqF,WAAW,CAAC,mBAAmB,CAAC;GAC/C,IAAI,CAACrF,SAAS,CAACqF,WAAW,CAAC,aAAa,CAAC;GACzC,IAAI,CAACrF,SAAS,CAACuC,UAAU,CAAC8C,WAAW,CAAC,kBAAkB,CAAC;GACzD,IAAI,CAACrF,SAAS,CAACuC,UAAU,CAAC8C,WAAW,CAAC,wBAAwB,CAAC;GAC/D,IAAI,CAACrF,SAAS,CAACuC,UAAU,CAAC8C,WAAW,CAAC,gBAAgB,CAAC;GACvD,IAAI,CAACrF,SAAS,CAACuC,UAAU,CAAC8C,WAAW,CAAC,oBAAoB,CAAC;GAE3D,IAAI,IAAI,CAACvE,IAAI,KAAK,qBAAqB,IAAI,IAAI,CAACA,IAAI,KAAK,8BAA8B,EACvF;KACC,IAAI,CAACd,SAAS,CAACqF,WAAW,CAAC,aAAa,CAAC;KACzC,IAAI,CAACrF,SAAS,CAACuC,UAAU,CAAC8C,WAAW,CAAC,aAAa,CAAC;KACpD,IAAI,CAACrF,SAAS,CAACuC,UAAU,CAAC8C,WAAW,CAAC,oBAAoB,CAAC;KAC3D,IAAI,CAACrF,SAAS,CAACuC,UAAU,CAAC8C,WAAW,CAAC,wBAAwB,CAAC;;CAEjE;CAAC,4BAGD;GACC,IAAI,IAAI,CAACvB,YAAY,KAAK,CAAC,EAC3B;KACC,IAAI,CAAC9D,SAAS,CAAC8D,YAAY,CAAC,IAAI,CAACA,YAAY,CAAC;;GAG/C,4CAAI;GAEJ,IAAI,IAAI,CAACe,SAAS,GAAG,CAAC,EACtB;KACC,IACA;OACC,IAAI,CAAC7E,SAAS,CAACmD,WAAW,CAAC,IAAI,CAAC0B,SAAS,CAAC;MAC1C,CACD,MACA;;;;GAKD,IAAI,CAAC7E,SAAS,CAACqC,EAAE,CAAC,cAAc,EAAE,MAAM;KACvC,4CAAI,CAACrK,WAAW,oCAAiBO,GAAG,CAAC,QAAQ,EAAE,IAAI,CAACyH,SAAS,CAAC2E,MAAM,EAAE,CAAC;IACvE,CAAC;CACH;CAAC,8BAGD;GACC,MAAMW,cAAc,GAAG,CAACV,EAAE,CAACvM,IAAI,CAACkN,KAAK,CAAC,IAAI,CAACvF,SAAS,CAACuC,UAAU,CAACC,QAAQ,CAAC,aAAa,CAAC,CAAC;GACxF,IAAI8C,cAAc,EAClB;KACC,MAAMX,MAAM,GAAG,IAAI,CAACA,MAAM,KAAK,IAAI,GAAG,4CAAI,CAAC3M,WAAW,oCAAiBE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,CAACyM,MAAM;KACvG,IAAI,CAAC3E,SAAS,CAAC2E,MAAM,CAACA,MAAM,CAAC;IAC7B,MAED;KACC,MAAMA,MAAM,GAAG,IAAI,CAACA,MAAM,KAAK,IAAI,GAAG,GAAG,GAAG,IAAI,CAACA,MAAM;KACvD,IAAI,CAAC3E,SAAS,CAAC2E,MAAM,CAACA,MAAM,CAAC;;CAE/B;CAAC,uBAEY7C,KAAiB,EAC9B;GACC,IAAI,CAAC1B,MAAM,EAAE;GAEb0B,KAAK,CAAC0D,cAAc,EAAE;GACtB1D,KAAK,CAACG,eAAe,EAAE;CACxB;CAAC,yBAEcH,KAAoB,EACnC;GACC,MAAM2D,kBAAkB,GAAG,IAAIlI,0BAAS,CAAC;KAAEuE;IAAO,CAAC;GACnD,4CAAI,0BAAY,iBAAiB,EAAE2D,kBAAkB;GACrD,IAAIA,kBAAkB,CAACC,kBAAkB,EAAE,EAC3C;KACC;;GAGD,QAAQ5D,KAAK,CAAC6D,IAAI;KAEjB,KAAK,MAAM;KACX,KAAK,OAAO;OACZ;SACC,IAAI,CAACvF,MAAM,EAAE;SACb0B,KAAK,CAAC0D,cAAc,EAAE;SACtB1D,KAAK,CAACG,eAAe,EAAE;SAEvB;;KAGD,KAAK,MAAM;OACX;SACC,IAAI,CAAC,IAAI,CAAChC,OAAO,EACjB;WACC,IAAI,IAAI,CAACD,SAAS,CAAC4F,YAAY,EAAE,EACjC;aACC,IAAI,CAAC5F,SAAS,CAAC6F,cAAc,EAAE;YAC/B,MAED;aACC,IAAI,CAAC7F,SAAS,CAAC8F,iBAAiB,EAAE;;WAGnChE,KAAK,CAAC0D,cAAc,EAAE;WACtB1D,KAAK,CAACG,eAAe,EAAE;;SAGxB;;KAGD,KAAK,MAAM;OACX;SACC,IAAI,CAACe,YAAY,CAAC,EAAE,CAAC;SACrBlB,KAAK,CAAC0D,cAAc,EAAE;SACtB1D,KAAK,CAACG,eAAe,EAAE;SAEvB;;KAGD,KAAK,MAAM;OACX;SACC,IAAI,CAACuB,WAAW,CAAC,EAAE,CAAC;SACpB1B,KAAK,CAAC0D,cAAc,EAAE;SACtB1D,KAAK,CAACG,eAAe,EAAE;SAEvB;;KAGD,KAAK,WAAW;OAChB;SACC,IAAI,CAACe,YAAY,CAAC,CAAC,CAAC;SACpBlB,KAAK,CAAC0D,cAAc,EAAE;SACtB1D,KAAK,CAACG,eAAe,EAAE;SAEvB;;KAGD,KAAK,YAAY;OACjB;SACC,IAAI,CAACuB,WAAW,CAAC,CAAC,CAAC;SACnB1B,KAAK,CAAC0D,cAAc,EAAE;SACtB1D,KAAK,CAACG,eAAe,EAAE;SAEvB;;KAGD,KAAK,MAAM;OACX;SACC,IAAI,IAAI,CAACc,OAAO,EAAE,EAClB;WACC,IAAI,CAACzE,IAAI,CAAC,KAAK,CAAC;UAChB,MAED;WACC,IAAI,CAACA,IAAI,CAAC,IAAI,CAAC;;SAGhBwD,KAAK,CAAC0D,cAAc,EAAE;SACtB1D,KAAK,CAACG,eAAe,EAAE;SAEvB;;KAGD,KAAK,OAAO;OACZ;SACC,IAAI,CAACgC,oBAAoB,EAAE;SAC3BnC,KAAK,CAAC0D,cAAc,EAAE;SACtB1D,KAAK,CAACG,eAAe,EAAE;SAEvB;;KAGD,KAAK,QAAQ;OACb;SACC,IAAI,CAAC0B,oBAAoB,EAAE;SAC3B7B,KAAK,CAAC0D,cAAc,EAAE;SACtB1D,KAAK,CAACG,eAAe,EAAE;SAEvB;;KAGD;;;GAKD,4CAAI,0BAAY,WAAW,EAAE,IAAI1E,0BAAS,CAAC;KAAEuE;IAAO,CAAC;CACtD;CAAC,qBAEUzE,SAAiB,EAAEyE,KAAK,EACnC;GACC,IAAIzJ,cAAI,CAAC8D,cAAc,CAACkB,SAAS,CAAC,EAClC;KACC,MAAM0I,QAAQ,GAAI,UAAS1I,SAAU,EAAC;KAEtC,MAAM2I,WAAW,GAAGlE,KAAK,IAAI,IAAIvE,0BAAS,EAAE;KAC5CyI,WAAW,CAACC,aAAa,CAAC,CAAC,IAAI,EAAEF,QAAQ,CAAC,CAAC;KAE3C3J,eAAK,CAACW,YAAY,CAACO,IAAI,CAAC,IAAI,EAAEyI,QAAQ,EAAEC,WAAW,CAAC;;CAEtD;CAAC,yBAGD;GACC,IAAI,CAAChG,SAAS,CAACqC,EAAE,CAAC,MAAM,EAAE,MAAM;KAC/B,4CAAI,0BAAY,QAAQ;KACxB,IAAI,CAACnE,UAAU,GAAG,IAAI;IACtB,CAAC;GAEF,IAAI,CAAC8B,SAAS,CAACqC,EAAE,CAAC,OAAO,EAAE,MAAM;KAChC,4CAAI,0BAAY,SAAS;IACzB,CAAC;GAEF,IAAI,CAACrC,SAAS,CAACqC,EAAE,CAAC,OAAO,EAAE,MAAM;KAChC,4CAAI,0BAAY,SAAS;IACzB,CAAC;GAEF,IAAI,CAACrC,SAAS,CAACqC,EAAE,CAAC,OAAO,EAAE,MAAM;KAChC,4CAAI,0BAAY,SAAS;IACzB,CAAC;GAEF,IAAI,CAACrC,SAAS,CAACqC,EAAE,CAAC,gBAAgB,EAAE,MAAM;KACzC,4CAAI,0BAAY,kBAAkB;IAClC,CAAC;GAEF,IAAI,CAACrC,SAAS,CAACqC,EAAE,CAAC,OAAO,EAAE,MAAM;KAChC,4CAAI,0BAAY,SAAS;IACzB,CAAC;GAEF,IAAI,CAACrC,SAAS,CAACqC,EAAE,CAAC,uBAAuB,EAAE,MAAM;KAChD,4CAAI,0BAAY,yBAAyB;IACzC,CAAC;GAEF,IAAI,CAACrC,SAAS,CAACqC,EAAE,CAAC,uBAAuB,EAAE,MAAM;KAChD,MAAMP,KAAK,GAAG,IAAIvE,0BAAS,EAAE;KAC7B,4CAAI,0BAAY,yBAAyB,EAAEuE,KAAK;KAEhD,IAAI,CAACA,KAAK,CAAC4D,kBAAkB,EAAE,EAC/B;OACC,MAAM5K,OAAO,GAAG7B,aAAa,CAAC0B,iBAAiB,CAAC,IAAI,CAACC,EAAE,EAAE,CAAC,CAAC;OAC3D,IAAI,CAACE,OAAO,EACZ;SACC,IAAI,CAACoC,KAAK,EAAE;;;IAGd,CAAC;CACH;CAAC,sBAjsBW2C,MAAM;GAAA;GAAA,OAQO,IAAI9H,cAAc,CAAC,0BAA0B;CAAC;;CCnDxE;CACA,MAAMmO,SAAS,GAAGvJ,oBAAU,CAACwJ,SAAS,CAAC,YAAY,CAAC;CACpDD,SAAS,CAACrG,MAAM,GAAGA,MAAM;CACzBqG,SAAS,CAACjN,aAAa,GAAGA,aAAa;;;;;;;;;"}

Youez - 2016 - github.com/yon3zu
LinuXploit